@charset "UTF-8";
@import url("style_menu.css");


/* //////// 共通設定　*/
body {
	position: relative;
}
.skip-link {
	position: absolute;
	top: -60px;
	left: 0;
	background: #000;
	color: #fff;
	padding: 8px 16px;
	z-index: 1000;
	text-decoration: none;
	transition: top 0.3s;
}
.skip-link:focus {
	top: 0;
}
img {
	width: 100%;
	height: auto;
}
a[href*="tel:"] {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}
.abox {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 4;
}
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.sp-only {
	display: none !important;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.brsp, .brtab {
	display: none;
}

@media screen and (max-width: 834px) {
	.brtab {
		display: block;
	}
	.pc-only {
		display: none;
	}
	.sp-only {
		display: block !important;
	}
}
@media screen and (max-width: 480px) {
	.br-pc-tab {
		display: none;
	}
}

@media screen and (max-width: 600px) {
	.brpc {
		display: none;
	}
	.brsp {
		display: block;
	}
}
.fin {
	opacity: 0;
	transform: translate(0, 5px);
	transition-duration: 1.4s;
	transition-property: all;
}
.fin.sin {
	opacity: 1;
	transform: translate(0, 0);
}

/* //////// リンク画像hover時　拡大　*/

.scale-image .bg {
	position: relative;
	overflow: hidden;
}
.scale-image .bg img {
	opacity: 1;
	transform: scale(1);
	transition: all .8s;
}
@media (hover: hover) {
	.scale-image:hover .bg img {
		opacity: 0.9;
		transform: scale(1.08);
		transition: all .8s;
	}
}


/* //////// リンク画像装飾　*/


/* ////////  header */

header {
	width: calc(100% - 32px);
	height: 80px;
	position: fixed;
	top: 16px;
	left: 16px;
	z-index: 1002;
}
.header-content {
	width: 100%;
	height: 100%;
	position: relative;
	border: solid 1px #000;
	background: #FFF;
	z-index: 1;
}
.header-content .header-logo {
	width: 240px;
	position: absolute;
	left: 15px;
	top: 15px;
}
header .header-logo .logo {
	width: 140px;
	display: inline-block;
}
header .header-logo p {
	font-family: var(--en-font);
	font-size: 12px;
	display: inline-block;
	white-space: nowrap;
	position: absolute;
	top: 11px;
	left: 155px;
	line-height: 1.2em;
}

@media screen and (max-width: 834px) {
	header {
		width: 100%;
		height: 60px;
		position: fixed;
		box-sizing: border-box;
		top: 0;
		left: 0;
		z-index: 1001;
	}
	.header-content {
		width: 100%;
		height: 100%;
		position: relative;
		border: solid 1px #000;
		background: #FFF;
		z-index: 1;
	}
	.header-content .header-logo {
		width: 120px;
		position: absolute;
		left: 10px;
		top: 17px;
	}
	header .header-logo .logo {
		width: 70px;
		display: inline-block;
	}
	header .header-logo p {
		font-family: var(--en-font);
		font-size: 9px;
		display: inline-block;
		white-space: nowrap;
		position: absolute;
		top: 2px;
		left: 78px;
		line-height: 1.2em;
	}
}
@media screen and (max-width: 480px) {
	.header-content .header-logo {
		width: 90px;
		position: absolute;
		left: 10px;
		top: 11px;
	}
	header .header-logo .logo {
		width: 52px;
		display: inline-block;
	}
	header .header-logo p {
		font-family: var(--en-font);
		font-size: 8px;
		display: inline-block;
		white-space: nowrap;
		position: absolute;
		top: 23px;
		left: 0;
		line-height: 1.2em;
	}
}


/* ////////  footer */

footer {
	position: relative;
	width: 100%;
	height: 100%;
	
}
.copyright {
	text-align: center;
	line-height: 1.4em;
	font-size: 11px;
	color: var(--main-color);
	background: #F1F2EA;
	padding: 20px 0;
}
.pagetop {
	all: unset;
	/* リセット */
	cursor: pointer;
	position: fixed;
	width: 64px;
	height: 64px;
	background: #F8B500 url("../img/common_img/pagetop.svg") no-repeat center 14px;
	background-size: 30px 20px;
	right: 16px;
	bottom: 16px;
	z-index: 3;
	border: solid 1px #000;
}
.pagetop:after {
	content: "TO TOP";
	font-family: var(--en-font);
	font-size: 10px;
	font-weight: 600;
	text-align: center;
	width: 100%;
}

@media (hover: hover) {

}

@media screen and (max-width: 834px) {
	.pagetop {
		all: unset;
		/* リセット */
		cursor: pointer;
		position: fixed;
		width: 34px;
		height: 34px;
		background: #F8B500 url("../img/common_img/pagetop.svg") no-repeat center 8px;
		background-size: 14px 10px;
		right: 8px;
		bottom: 8px;
		z-index: 3;
		border: solid 1px #000;
	}
	.pagetop:after {
		content: "TO TOP";
		font-family: var(--en-font);
		font-size: 6px;
		font-weight: 600;
		text-align: center;
		width: 100%;
		top: 12px;
	}
}



/* //////// タイトル装飾　*/


@media screen and (max-width: 834px) {
}


/* //////// ボタン　*/

@media screen and (max-width: 834px) {
}

@media (hover: hover) {
}



/* //////// 基本レイアウト設定　*/

main {
	padding: 80px 0 0;
}

@media screen and (max-width: 834px) {
	main {
		padding: 60px 0 0;
	}
}

.content {
	width: 90%;
	margin: 0 auto;
	max-width: 1120px;
}


@media screen and (max-width: 834px) {
}


/* //////// スマートフォン時　横スクロール設定　*/

@media screen and (max-width: 500px) {
	.scroll-box > div {
		min-width: 600px;
	}
	.scroll-box:before {
		content: "横スクロールできます";
		position: absolute;
		left: 50%;
		bottom: 5px;
		transform: translate(-50%, 0);
		opacity: 1;
		transition: all .5s;
		background: rgba(0, 0, 0, 0.2);
		z-index: 2;
		color: #FFF;
		font-size: 11px;
		line-height: 1.6em;
		padding: 3px 12px;
		white-space: nowrap;
	}
	.scroll-box.on:before {
		opacity: 0;
	}
	.scroll-box {
		overflow-x: auto;
		padding-bottom: 40px;
		-webkit-overflow-scrolling: touch;
		position: relative;
		margin-bottom: 30px;
	}
	.scroll-box::-webkit-scrollbar {
		height: 6px;
	}
	.scroll-box::-webkit-scrollbar-track {
		background: #eee;
		border-radius: 3px;
	}
	.scroll-box::-webkit-scrollbar-thumb {
		background: #E2E2E2;
		border: none;
		border-radius: 3px;
	}
}

@media screen and (max-width: 1100px) {
	.scroll-box-wide > div {
		min-width: 1120px;
	}
	.scroll-box-wide:before {
		content: "横スクロールできます";
		position: absolute;
		left: 50%;
		bottom: 5px;
		transform: translate(-50%, 0);
		opacity: 1;
		transition: all .5s;
		background: rgba(0, 0, 0, 0.2);
		z-index: 2;
		color: #FFF;
		font-size: 11px;
		line-height: 1.6em;
		padding: 3px 12px;
		white-space: nowrap;
	}
	.scroll-box-wide.on:before {
		opacity: 0;
	}
	.scroll-box-wide {
		overflow-x: auto;
		padding-bottom: 40px;
		-webkit-overflow-scrolling: touch;
		position: relative;
		margin-bottom: 30px;
	}
	.scroll-box-wide::-webkit-scrollbar {
		height: 6px;
	}
	.scroll-box-widex::-webkit-scrollbar-track {
		background: #eee;
		border-radius: 3px;
	}
	.scroll-box-wide::-webkit-scrollbar-thumb {
		background: #E2E2E2;
		border: none;
		border-radius: 3px;
	}
}
@media screen and (max-width: 834px) {
	.scroll-box-wide > div {
		min-width: 900px;
	}
	.scroll-box-wide:before {
		content: "横スクロールできます";
		position: absolute;
		left: 50%;
		bottom: 5px;
		transform: translate(-50%, 0);
		opacity: 1;
		transition: all .5s;
		background: rgba(0, 0, 0, 0.2);
		z-index: 2;
		color: #FFF;
		font-size: 11px;
		line-height: 1.6em;
		padding: 3px 12px;
		white-space: nowrap;
	}
	.scroll-box-wide.on:before {
		opacity: 0;
	}
	.scroll-box-wide {
		overflow-x: auto;
		padding-bottom: 0px;
		-webkit-overflow-scrolling: touch;
		position: relative;
		margin-bottom: 30px;
	}
	.scroll-box-wide::-webkit-scrollbar {
		height: 6px;
	}
	.scroll-box-wide::-webkit-scrollbar-track {
		background: #eee;
		border-radius: 3px;
	}
	.scroll-box-wide::-webkit-scrollbar-thumb {
		background: #E2E2E2;
		border: none;
		border-radius: 3px;
	}
}


.hover-line {
	position: relative;
}
.hover-line::before {
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 1px;
	background: #000;
}
.hover-line::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: #F8B500;
	transform: scaleX(0);
	transform-origin: right;
	transition: all 0.3s ease;
	transition-property: transform;
	z-index: 2;
	}

@media (hover: hover) {
	.hover-line:hover::after {
		transform: scaleX(1);
		transform-origin: left;
	}
}

.recruit-shared-links {
	padding: 80px 0;
}
.recruit-shared-links h2 {
	text-align: center;
	font-family: var(--en-font);
	font-weight: 600;
	padding-bottom: 30px;
}
.recruit-shared-links ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
    justify-content: center;
    gap: 3%;
}
.recruit-shared-links ul li {
    width: 31.33%;
	padding: 10px 0;
	margin-bottom: 20px;
    position: relative;
}
.recruit-shared-links ul li p {
    text-align: center;
    font-size: 1rem;
    padding: 5px 0;
}
.recruit-shared-links ul li p:after {
    width: 14px;
    height: 14px;
    background-image: url(../img/common_img/link-arrow.svg);
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
}
.recruit-shared-links ul li.window p:after {
	width: 10px;
    height: 10px;
	background-image: url(../img/common_img/new-window.svg);
}
@media screen and (max-width: 834px) {
	.recruit-shared-links {
		padding: 50px 0;
	}
	.recruit-shared-links h2 {
		padding-bottom: 10px;
	}
	.recruit-shared-links ul {
		max-width: 400px;
		margin: 0 auto;
	}
	.recruit-shared-links ul li {
		width: 100%;
		padding: 5px 0;
		margin-bottom: 0;
		position: relative;
	}
}


.layout-main {
	padding: 120px 0 0;
	position: relative;
}
.layout-main:before {
	width: 100%;
	height: 200px;
	background: #F5F2DA;
	z-index: -1;
	top: 0;
	left: 0;
}
.layout-main .page-ttl {
	padding: 0;
	margin-bottom: 40px;
}
.layout-main .page-ttl .parent-ttl {
	text-align: center;
    font-size: 1rem;
    font-weight: 500;
    padding-bottom: 10px;
    margin-bottom: 10px;
    position: relative;
}
.layout-main .page-ttl .parent-ttl::after {
    width: 72px;
    height: 2px;
    background: var(--sub-color);
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
}
.layout-main .page-ttl h1 {
	text-align: center;
	font-size: 1.6rem;
	font-weight: 500;
}
.layout-main .page-ttl h1 span {
	display: block;
	font-size: 0.9rem;
}

@media screen and (max-width: 834px) {
	.layout-main {
		padding: 80px 0 0;
		position: relative;
	}
	.layout-main:before {
		width: 100%;
		height: 152px;
		background: #F5F2DA;
		z-index: -1;
		top: 0;
		left: 0;
	}
	.layout-main .page-ttl {
		padding: 0;
		margin-bottom: 40px;
	}
	.layout-main .page-ttl .parent-ttl {
		text-align: center;
		font-size: 0.8rem;
		font-weight: 500;
		padding-bottom: 10px;
		margin-bottom: 20px;
		position: relative;
	}
	.layout-main .page-ttl .parent-ttl::after {
		width: 72px;
		height: 2px;
		background: var(--sub-color);
		left: 50%;
		bottom: 0;
		transform: translateX(-50%);
	}
	.layout-main .page-ttl h1 {
		text-align: center;
		font-size: 1.1rem;
		line-height: 1.6em;
		font-weight: 500;
	}
	.layout-main .page-ttl h1 span {
		display: block;
		font-size: 0.8rem;
	}
}



.recommend-links {
	padding: 80px 0 0;
}
.recommend-links .ttl {
	position: relative;
	margin-bottom: 30px;
}
.recommend-links .ttl span {
    display: inline-block;
	position: relative;
    background: #F5F2DA;
    font-size: 1.2rem;
    font-weight: 500;
    padding: 8px 15px;
    line-height: 1.2em;
    border-radius: 4px;
	left: 50%;
	transform: translateX(-50%);
}
.recommend-links p:not([class]) {
	text-align: center;
	padding-bottom: 20px;
}
.recommend-links ul {
	display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 3%;
}
.recommend-links ul li {
    width: 31.33%;
	margin-bottom: 40px;
    position: relative;
}
.recommend-links ul li .txt p {
    text-align: center;
    font-size: 0.9rem;
    padding: 15px 0;
	line-height: 1.3em;
}
.recommend-links ul li .txt p span {
	font-size: 0.8rem;
}
.recommend-links ul li .txt {
    position: relative;
}
.recommend-links ul li .txt:after {
    width: 14px;
    height: 14px;
    background-image: url(../img/common_img/link-arrow.svg);
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
}
.recommend-links ul li.window .txt:after {
	width: 12px;
    height: 12px;
	background-image: url(../img/common_img/new-window.svg);
}
@media screen and (max-width: 834px) {
	.recommend-links {
		padding: 30px 0 0;
	}
	.recommend-links .ttl {
		position: relative;
		margin-bottom: 30px;
	}
	.recommend-links .ttl span {
		display: inline-block;
		position: relative;
		background: #F5F2DA;
		font-size: 1.2rem;
		font-weight: 500;
		padding: 8px 15px;
		line-height: 1.2em;
		border-radius: 4px;
		left: 50%;
		transform: translateX(-50%);
	}
	.recommend-links ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 4%;
		max-width: 600px;
		margin: 0 auto;
	}
	.recommend-links ul li {
		width: 48%;
		margin-bottom: 30px;
		position: relative;
	}
}
@media screen and (max-width: 600px) {
	.recommend-links ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0;
		max-width: 300px;
		margin: 0 auto;
	}
	.recommend-links ul li {
		width: 100%;
		margin-bottom: 30px;
		position: relative;
	}
}


.sub-block-wrap {
	padding: 50px 0;
}
.small-block-ttl {
	position: relative;
	margin-bottom: 20px;
}
.small-block-ttl span {
    display: inline-block;
	position: relative;
    background: #F5F2DA;
    font-size: 1.2rem;
    font-weight: 500;
    padding: 8px 15px;
    line-height: 1.2em;
    border-radius: 4px;
}
.small-block-ttl ~ p {
	font-size: 1.2rem;
	margin-bottom: 20px;
}
@media screen and (max-width: 834px) {
	.sub-block-wrap {
		padding: 30px 0;
	}
	.small-block-ttl {
		position: relative;
		margin-bottom: 10px;
	}
	.small-block-ttl span {
		display: inline-block;
		position: relative;
		background: #F5F2DA;
		font-size: 1.1rem;
		font-weight: 500;
		padding: 8px 15px;
		line-height: 1.2em;
		border-radius: 4px;
	}
	.small-block-ttl ~ p {
		font-size: 1rem;
		margin-bottom: 20px;
	}
}

.bottom-entry-button-wrap {
	position: relative;
	width: 90%;
	max-width: 550px;
	margin: 0 auto 80px;
}
.bottom-entry-button-wrap > p span {
	position: relative;
	text-align: center;
	display: inline-block;
	padding: 0 60px;
	left: 50%;
	transform: translateX(-50%);
}
.bottom-entry-button-wrap > p span::before {
	width: 2px;
	height: 23px;
	background: var(--sub-color);
	left: 0;
	top: 52%;
	transform: translateY(-50%) rotate(-30deg);
}
.bottom-entry-button-wrap > p span::after {
	width: 2px;
	height: 23px;
	background: var(--sub-color);
	right: 0;
	top: 52%;
	transform: translateY(-50%) rotate(30deg);
}
.bottom-entry-button-wrap .button {
  position: relative;
  top: 15px;
  width: 100%;
  height: 60px;
  font-size: 1.3rem;
  text-decoration: none;
  color: #111;
  background: #1E3190;
  transition: color 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}
.bottom-entry-button-wrap .button p {
  color: #fff;
  position: relative;
  z-index: 2;
  font-family: var(--en-font);
  font-size: 1rem;
  font-weight: 500;
  position: relative;
  display: inline-block;
}
.bottom-entry-button-wrap .button p:after {
	width: 10px;
	height: 10px;
	background-image: url(../img/common_img/new-window-white.svg);
	right: -20px;
	top: 45%;
	transform: translateY(-50%);
}
.bottom-entry-button-wrap .button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #3b4da8;
  transform: scaleX(0);
  transform-origin: right;
  transition: all 0.3s ease;
  transition-property: transform;
}
.bottom-entry-button-wrap ul li:nth-child(2) .button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fcc42a;
  transform: scaleX(0);
  transform-origin: right;
  transition: all 0.3s ease;
  transition-property: transform;
}
@media (hover: hover) {
	.bottom-entry-button-wrap .button:hover::before,
	.bottom-entry-button-wrap ul li:nth-child(2) .button:hover::before  {
	transform: scaleX(1);
	transform-origin: left;
	}
}

.bottom-entry-button-wrap ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.bottom-entry-button-wrap ul li {
	width: 49%;
}
.bottom-entry-button-wrap ul li:nth-child(2) .button {
	background: #F8B500;
}
@media screen and (max-width: 500px) {
	.bottom-entry-button-wrap ul li {
		width: 100%;
		margin-bottom: 5px;
	}
}