@charset "utf-8";

/* check overflow */
/* {
	border: 1px solid red;
}**/

/* A Modern CSS Reset */
*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}

:root {
	--main-text: #111;
	--link-text: #111;

	--color-green: #007c8e;/*rgba(0, 124, 142,1)*/

	--font-min: "Zen Old Mincho", serif;
/*
	--scrollbar: 0;*/
}

@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
}
@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/NotoSansJP-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}
@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/NotoSansJP-Medium.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}
@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/ZenOldMincho-Bold.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/ZenOldMincho-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/ZenOldMincho-Medium.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/ZenOldMincho-Regular.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

html {
	font-size: 62.5%;
}
body,h1,h2,h3,h4,h5,h6,
p,th,td,dt,dd,li {
	font-size: 1.6rem;
	font-family: "Helvetica Neue", Arial, "Noto Sans JP","Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	line-height: 1.7;
	color: var(--main-text);
}
@media screen and (max-width: 1024px) {
	body,h1,h2,h3,h4,h5,h6,
	p,th,td,dt,dd,li {
		font-size: 1.4rem;
	}
}
h1,h2,h3,h4,h5,h6,
/*dt,th,*/b,strong {
	font-weight: 700;
}

body {
	display: flex;
	flex-flow: column;
	/*width: calc(100vw - var(--scrollbar));*/
	width: 100%;
	min-height: 100vh;
	overflow-x: clip;
}
main {
	flex: 1;
}
ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
table {
	border-collapse: collapse;
}
a,
a:link,
a:visited {
	color: var(--link-text);
	text-decoration: none;
}
#breadcrumbs a,
#pagetop a,
a#fancybox-close,
a#fancybox-next,
a#fancybox-prev {
	border: none;
}
@media (hover: hover) {
	/* リンクの場合 */
	a:any-link:hover {
		opacity: .7;
		color: var(--main-text);
	}
	/* ボタンの場合 */
	button:enabled:hover {
		opacity: .7;
		color: var(--main-text);
	}
	/* 特定できない場合 
	.button:where(:any-link, :enabled, summary):hover {
	}*/
}


/**
	header
**/
header {
	position: relative;
	z-index: 2;
	height: 100px;

	margin: 0 auto;
	width: min(1480px, 100%);
}
header.fixed {
	position: sticky;
	top: 0;
	z-index: 2;
	/* background: var(--color-green); */
}
header .inner {
	position: relative;

	display: flex;
	justify-content: space-between;
	align-items: center;
	/*margin: 0 auto;*/
	/*padding-left: 100px;
	padding-left: 5%;*/
	/*width: min(1480px, 100%);*/

	margin-right: calc(50% - 50vw);
	height: 100%;
}
header.fixed .inner {
	margin-left: calc(50% - 50vw);
	padding-left: 20px;
	background: var(--color-green);
}

/*@media screen and (min-width: 1680px) {
	header .inner {
		padding: 0 0 0 100px;
		width: 100%;
	}
}*/
@media screen and (max-width: 1480px) {
	header .inner {
		padding: 0 0 0 20px;
	}
}
/*@media screen and (min-width: 1020px) and (max-width: 1280px) {
	header {
		padding-right: .5em;
		padding-left: .5em;
	}
}*/
@media screen and (max-width: 767px) {
	header {
		height: 80px;
	}
}


/**
	logo
**/
header .logo {
	width: auto;
	height: 64px;
}

@media screen and (max-width: 440px) {
	header .logo {
		width: 240px;
		height: auto;
	}
}

/**
	navigation
**/
.menu-global-container {
	margin: 0 36px 0 auto;
	width: fit-content;
}
#menu-global {
	position: relative;
	display: flex;
}
#menu-global a,
#menu-global a:visited,
#menu-global a:active,
#menu-global a:hover {
	border:none;
}
#menu-global li {
	position: relative;
	text-transform: uppercase;
}
#menu-global li#menu-item-83 {
	display: none;
}
#menu-global a {
	display: flex;
	align-items: center;
	padding: 0 20px;
	height: 100px;
	color: #fff;
	line-height: 1.3;
}
#menu-global .sub-menu {
	flex-direction: column;
	justify-content: start;
	position: absolute;
	top: 99%;
	left: 50%;
	/* width: 100%; */
	width: 140px;
	background: rgba(0, 124, 142,.9);
	opacity: 0;
	transform: translateY(8%) translateX(-50%);
	transition: all .3s ease;
	visibility: hidden;
	text-align: center;
}
#menu-global > .menu-item:hover .sub-menu {
	opacity: 1;
	transform: translateY(0%) translateX(-50%);
	visibility: visible;
	z-index: 999;
	top: 99%;
	left: 50%;
	/* width: 140px; */
}
#menu-global > .menu-item .sub-menu a,
#menu-global > .menu-item:hover .sub-menu a {
	display: block;
	padding: 1em 0;
	/* height: unset; */
	height: auto;
	text-align: center;
}

header .contact a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 270px;
	height: 100px;
	color: #fff;
	background: #007171;
}
header .contact a:hover,
header .contact a:visited {
	color: #fff;
}
header .contact a span {
	position: relative;
	display: inline-block;
	width: 138px;
	text-align: right;
	line-height: 1.3;
}
header .contact a span::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 27px;
	height: 19px;
	background: url('../images/common/icon_mail.png') no-repeat center / contain;
}

.drawerBtn {
	display: none;
}


@media screen and (max-width: 1280px) {
	/*header .inner {
		padding: 0;
		height: 50px;
	}*/
	/*header .logo {
		width: 160px;
	}*/
	header .contact {
		display: none;
	}
	.drawerBtn {
		display: block;
	}
	.drawerBtn {
		position: absolute;
		top:0;
		right: 0;
		z-index: 9;
		width: 100px;
		height: 100px;
		cursor: pointer;
		background: #007171;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.drawerBtn > div {
		width: 32px;
		height: auto;
	}
	.drawerBtn span {
		display: block;
		width: 100%;
		width: 32px;
		height: 2px;
		background: #fff;
		transition: .3s;
		border-radius: 2px;
		/*transform-origin: center center;*/

    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%); 
	}
	.drawerBtn span:nth-of-type(1) {
		transform: translate(-50%, -12px);
	}
	.drawerBtn span:nth-of-type(3) {
		transform: translate(-50%, 12px);
	}
	/*.drawerBtn span + span {
		margin-top: 12px;
	}*/
	.drawerBtn.on span:nth-of-type(1) {
		/*transform: rotate(135deg) translate(6px, -6px);*/
		/*transform: rotate(45deg);*/
		transform: rotate(45deg) translate(-50%,0);
    transform-origin: 0% 50%; 
	}
	.drawerBtn.on span:nth-of-type(2) {
		opacity: 0;
	}
	.drawerBtn.on span:nth-of-type(3) {
		/*transform: rotate(-135deg) translate(6.5px, 6px);*/
		/*transform: rotate(-45deg);*/
    transform: rotate(-45deg) translate(-50%,0);
    transform-origin: 0% 50%; 
	}
	.menu-global-container {
		position: fixed;
		display: block;
		visibility: hidden;
		margin: unset;
		width: 300px;
		height: 100%;
		top: 100px;
		right: 0;
		z-index: 10;
		background: #e0e0e0;
		transition: all .3s;
		transform: translateX(300px);

	height: calc(100dvh - 100px);         /* 画面いっぱい */
	overflow-y: auto;      /* 縦スクロールを許可 */
	/*-webkit-overflow-scrolling: touch;  iOSでスムーズスクロール */
	}
	.menu-global-container.on {
		visibility: visible;
		transition: all .3s;
		transform: translateX(0);
	}
	#menu-global {
		display: block;
		/* max-height: 100%; */
		overflow-y: auto;
	}
	.overlay {
		display: none;
		position: fixed;
		top: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.6);
		/*height: calc(100vh + 80px);
		position: absolute;*/
		/*top: -85px;*/
		z-index: 9;
	}
	.overlay.on {
		display: block;
		animation: show 0.2s linear 0s;
	}


	#menu-global li#menu-item-83 {
		display: block;
	}
	#menu-global a {
		display: flex;
		margin: .5em 0;
		padding-left: 1em;
		width: 100%;
		height: 60px;
		color: var(--color-green);
	}
	#menu-global .menu-item-has-children.on .sub-menu {
		position: relative;
		display: block;
		top: unset;
		left: unset;
		padding: 0;
		width: 100%;
		background:none;
		transform: unset;
		text-align: left;
	}
	#menu-global li {
		position: relative;
	}
	#menu-global li.menu-item-has-children::before,
	#menu-global li.menu-item-has-children::after {
		display: block;
		position: absolute;
		background: var(--main-text);
		content: '';
		width: 15px;
		height: 1px;
		top: 28px;
		/* right: 12px; */
		right: 16px;
	}
	/*#menu-global li.menu-item-has-children::before {
		transform: translateY(-50%);
	}*/
	#menu-global li.menu-item-has-children::after {
		transform: translateY(-50%) rotate(90deg);
		transition: all .3s;
		-webkit-transition: all .3s;
		-moz-transition: all .3s;
		-o-transition: all .3s;
	}
	#menu-global li.menu-item-has-children.on::after {
		transform: translateY(-50%) rotate(0deg) !important;
	}
	#menu-global li.menu-item-has-children ul {
		display: none;
		padding: 10px 0;
		width: 330px;
		background: #ff9696;
		transition: all .3s;
		-webkit-transition: all .3s;
		-moz-transition: all .3s;
		-o-transition: all .3s;
	}
	#menu-global li.menu-item-has-children.on ul {
		display: block;
		transition: all .3s;
		-webkit-transition: all .3s;
		-moz-transition: all .3s;
		-o-transition: all .3s;
	}
	#menu-global li:not(.menu-item-has-children)::after,
	#menu-global li.menu-item-has-children.on li::after {
		content: '';
		display: block;
		position: absolute;
		top: 42%;
		right: 20px;
		width: 9px;
		height: 9px;
		border-top: solid 1px var(--main-text);
		border-right: solid 1px var(--main-text);
		transform: rotate(45deg);
		pointer-events: none;
	}

		/* hoverで出す仕様を無効化 */
	/* #menu-global > .menu-item:hover .sub-menu {
		display: none !important;
	} */

	/* onクラスで表示維持 */
	#menu-global li.menu-item-has-children.on ul {
		display: block !important;
	}
	#menu-global > .menu-item:hover .sub-menu a {
		padding-left: 2em;
		text-align:left;
	}
}

@media screen and (max-width: 767px) {
	header .inner {
		height: 80px;
	}
	.drawerBtn {
		width: 80px;
		height: 80px;
	}
	.menu-global-container {
		top: 80px;
		/*padding-bottom: 100px;*/
		height: calc(100dvh - 80px);
	}
}

/**
pagetop
**/
.pagetop {
	position: fixed;
	display: none;
	/*display: flex;*/
	justify-content: center;
	align-items: center;
	/* right: 10%;
	bottom: 17%; */
	right: 2%;
	bottom: 5%;
	border: 1px solid var(--color-green);
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #fff;
	transition: .15s ease-in-out;
	z-index: 2;
}
.pagetop a {
	color: var(--color-green);
}
@media screen and (max-width: 767px) {
	.pagetop {
		right: .5em;
		bottom: 2em;
	}
}

/**
	footer
**/
footer {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 150px;
}
footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(204deg, #008080 0%, #223131 100%);
}
footer figure {
	margin-bottom: 10px;
	width: 310px;
}
footer address {
	font-size: 1rem;
	font-family: var(--font-min);
	font-style: normal;
}

@media screen and (max-width: 1024px) {
	footer {
		height: 120px;
	}
	footer figure {
		width: 280px;
	}
}

@media screen and (max-width: 440px) {
	footer {
		height: 90px;
	}
	footer figure {
		width: 178px;
	}
}

/**
	General Settings
**/
/*#breadcrumbs {
	margin: 32px auto;
	width: min(1280px, 98%);
	font-size: 1.4rem;
}*/


body:not(.home):not(.error404) main {
	position: relative;
	z-index: 1;
	margin-top: -100px;
	height: auto;
}
body:not(.home) main .sec_mv {
	height: 360px;
	background: url('../images/common/bg_lower.jpg'), linear-gradient(204deg, #348B99 0%, #023D47 100%);
	background-repeat:  no-repeat, repeat;
	background-position: center;
	background-size: cover, auto;
}
body:not(.home) main .sec_mv .inner {
	margin: 0 auto;
	padding-top: 180px;
	width: min(1280px, 100%);
}
@media screen and (min-width: 1920px) {
	body:not(.home) main .sec_mv {
		background-size: 1920px 412px, auto;
	}
}
@media screen and (max-width: 1680px) {
	body:not(.home) main .sec_mv {
		background-size: 1680px 360px, auto;
	}
}
@media screen and (max-width: 767px) {
	body:not(.home):not(.error404) main {
		margin-top: -80px;
	}
}

body:not(.home) main .sec_mv h1,
.single .sec_mv .category {
	position: relative;
	display: flex;
	align-items: baseline;
	column-gap: 24px;
	padding-left: 10px;
	line-height: 1;
}
body:not(.home) main .sec_mv h1::after,
.single .sec_mv .category::after {
	content: "";
	position: absolute;
	bottom: -26px;
	left: 0;
	width: 619px;
	height: 50px;
	background: url('../images/common/white_dot.png') no-repeat center / contain;
}
body:not(.home) main .sec_mv h1 span,
.single .sec_mv .category span {
	position: relative;
	z-index: 1;
}
body:not(.home) main .sec_mv h1 .en,
.single .sec_mv .category .en {
	font-size: 8rem;
	font-weight: 600;
	font-family: var(--font-min);
	color: var(--color-green);
}
body:not(.home) main .sec_mv h1 .ja,
.single .sec_mv .category .ja {
	font-size: 3rem;
	font-weight: 700;
	color: #fff;
}
@media screen and (max-width: 1340px) {
	body:not(.home) main .sec_mv h1,
	.single .sec_mv .category {
		margin-left: 20px;
	}
}
@media screen and (max-width: 767px) {
	body:not(.home) main .sec_mv h1,
	.single .sec_mv .category {
		flex-direction: column;
		row-gap: 8px;
	}
	body:not(.home) main .sec_mv h1 .en,
	.single .sec_mv .category .en {
		font-size: 5rem;
	}
}
@media screen and (max-width: 620px) {
	body:not(.home) main .sec_mv h1::after,
	.single .sec_mv .category::after {
		width: 90%;
	}
}
@media screen and (max-width: 539px) {
	body:not(.home) main .sec_mv h1 .ja,
	.single .sec_mv .category .ja {
		font-size: 2rem;
	}
}

/*main h2 {
	font-size: 2.6rem;
}
main h3 {
	font-size: 2rem;
}*/

/**
	Shared Style
**/

/**
 * 箇条書き
**/
ul.disc li,
ul.kome li {
	position: relative;
	padding-left: 1em;
}
ul.disc li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
	width: 1em;
}
ul.kome li::before {
	content: "※";
	position: absolute;
	top: 0;
	left: 0;
	width: 1em;
}

/**
 * 番号付きフロー
**/
ul.flow_num {
	counter-reset: number;
}
ul.flow_num li {
	position: relative;
	margin-left: 20px;
	padding: 8px 0 40px 40px;
	border-left: 2px dotted blue;
}
ul.flow_num li::before {
	counter-increment: number 1;
	content: counter(number);
	background: blue;
	width: 40px;
	height: 40px;
	text-align: center;
	font-size: 1.8rem;
	font-family: 'Roboto Condensed', Arial, Helvetica, "sans-serif";
	line-height: 40px;
	border-radius: 50%;
	color: #fff;
	position: absolute;
	top: 0;
	left: -20px;
}
@media screen and (max-width: 767px) {
	ul.flow_num li {
		margin-left: 15px;
		padding: 4px 0 40px 30px;
	}
	ul.flow_num li::before {
		width: 30px;
		height: 30px;
		font-size: 1.6rem;
		line-height: 30px;
		left: -15px;
	}
}

/**
 * FAQアコーディオン
**/
dl.acrd {
	margin: 1em auto 3em;
}
dl.acrd dt,
dl.acrd dd {
	position: relative;
	padding-left: 1.25em;
}
/*dl.acrd.faq dt,
dl.acrd.faq dd {
	padding-left: 1.25em;
}*/
dl.acrd dt {
	margin: 1em 0 .25em;
	padding-bottom: .25em;
	padding-right: 1.25em;
	border-bottom: 1px solid rgba(0,0,0,.2);
	cursor: pointer;
}
dl.acrd.faq dt::before {
	position: absolute;
	content: "Q";
	width: 1em;
	height: 1em;
	top: 0;
	left: 0;
	color: var(--color-green);
}
dl.acrd dt::after {
	position: absolute;
	content: "▼";
	width: 1em;
	height: 1em;
	right: 0;
	top: 0;
	color: var(--color-green);
}
dl.acrd dt.on::after {
	content: "▲";
}
dl.acrd dd {
	display: none;
}
dl.acrd.faq dt.on + dd::before {
	position: absolute;
	content: "A";
	width: 1em;
	height: 1em;
	top: 0;
	left: 0;
	color: var(--color-green);
}

/**
	テーブルのスタイルを上書き
**/
.wp-block-table th,
.wp-block-table td {
	border: none;
}
.wp-block-table table {
	border-top: 1px solid #ccc;
	border-left: 1px solid #ccc;
}
.wp-block-table th,
.wp-block-table td {
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}


/*
	404 Not Found
*/
.error404 header {
	background: linear-gradient(204deg, #348B99 0%, #023D47 100%);
}
.error404 main {
	margin: 0 auto;
	padding-top: 40px;
	width: min(1024px, 90%);
}
