@charset "utf-8";
/* ====================================================
foundation
==================================================== */

/* reset
---------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
	display:block;
}
ul {
	list-style:none;
}
blockquote, q {
	quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content:none;
}
em {
	font-style: normal;
}
strong {
	font-weight: inherit;
}
a {
	margin:0;
	padding:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}
del {
	text-decoration: line-through;
}
abbr[title], dfn[title] {
	border-bottom:1px dotted;
	cursor:help;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
input, select {
	vertical-align:middle;
}
ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}
mark {
	background: linear-gradient(transparent 50%, #ffff66 50%);
}
hr {
	display:block;
	height:1px;
	border:0;
	border-top:1px solid #ccc;
	margin:1em 0;
	padding:0;
}


/* base
---------------------------------------------------- */
:root {
	--color-wht: #fff;
	--color-blk: #333;
	--color-gry: #ccc;
	--color-green: #2E7B39;
	--color-light-green: #EAF0E9;
	--color-light-yellow: #FFF9EC;
	--color-yellow: #ffb400;
	--color-orange: #FF5500;
	--color-red: #FF2600;
	--color-blue: #0076B8;
	--color-skyblue: #238fce;
	--text-shadow: 2px 3px 4px rgba(0, 0, 0, 0.4);
	--headerHeight: 60px;
}
@media screen and (min-width: 768px) {
	:root {
		--headerHeight: 80px;
	}
}
html {
	overflow-y: scroll;
	width: 100%;
	height: 100%;
	font-size: 62.5%;
}
body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	width: 100%;
	min-height: 100vh;
	background: var(--color-wht);
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 15px;
	font-weight: 500;
	color: var(--color-wht);
	-webkit-text-size-adjust: 100%;
	line-height: 1.75;
}
body:not(.page-template-page-form) .grecaptcha-badge {
	visibility: hidden;
	z-index: -3;
}
body.page-template-page-form .grecaptcha-badge {
	z-index: 3;
}

/* link */
a {
	word-break: break-all;
	text-decoration: none;
	color: var(--color-wht);
}
a:focus {
	outline: none;
}
@media (hover: hover) and (pointer: fine) {
	a:hover {
		opacity: 0.8;
		transition: 0.3s ease;
	}
}

/* image */
.img__wrap {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
}
.img__wrap a {
	display: block;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	border: 0;
}
.img__wrap img{
	transition-duration: 0.3s;
}
@media (hover: hover) and (pointer: fine) {
	.img__wrap a:hover {
		opacity: 1;
	}
	.img__wrap:hover img{
		transform: scale(1.1);
		transition-duration: 0.3s;
	}
}

/* form */
input,
select,
textarea,
button {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	border-radius: 0;
	outline: none;
	font: inherit;
	font-size: 16px;
}
input,
select,
textarea {
	display: block;
	width: 100%;
	padding: 8px;
	background: var(--color-wht);
	border: 1px var(--color-gry) solid;
}
textarea {
	resize: vertical;
}
input:focus,
select:focus,
textarea:focus {
	border: 1px solid var(--color-green);
	outline: none;
}
button:focus {
	outline:0;
}


/* ====================================================
layout
==================================================== */
/* header
---------------------------------------------------- */
.l-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99;
	width: 100%;
	height: var(--headerHeight);
	padding-left: 5%;
	padding-right: 5%;
	transition: background-color 0.5s ease, -webkit-backdrop-filter 0.5s ease;
	transition: background-color 0.5s ease, backdrop-filter 0.5s ease;
	transition: background-color 0.5s ease, backdrop-filter 0.5s ease, -webkit-backdrop-filter 0.5s ease;
}
.l-header.fixed {
	background-color: rgba(255, 255, 255, 0.2);
	-webkit-backdrop-filter: blur(10px);
	        backdrop-filter: blur(10px)
}
.header__logo {
	font-size: min(6vw, 24px);
	font-weight: 700;
}


/* gnav
---------------------------------------------------- */
.js-open body {
	overflow: hidden;
}
.l-gnav {
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99;
	width: 100%;
	height: 100vh;
	transition: opacity ease 0.3s, visibility ease 0.3s;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.9);
}
.js-open .l-gnav {
	opacity: 1;
	visibility: visible;
	transition: opacity ease 0.3s, visibility ease 0.3s;
	overflow-y: scroll;
	-ms-overflow-style: none;
	scrollbar-width: none;
	padding-bottom: constant(safe-area-inset-bottom);
	padding-bottom: env(safe-area-inset-bottom);
}
.js-open .l-gnav::-webkit-scrollbar {
	display: none;
}
.gnav__logo {
	position: absolute;
	top: 0;
	left: 3%;
	display: flex;
	align-items: center;
	width: calc(94% - 156px);
}
.gnav__wrap {
	opacity: 0;
	display: flex;
	flex-direction: column;
	row-gap: 32px;
	width: 90%;
	margin: 80px auto 120px;
	-webkit-overflow-scrolling: touch;
}
.js-open .gnav__wrap {
	opacity: 1;
	transition: opacity ease 0.5s 0.1s;
}
.gnav__title {
	font-size: 24px;
	color: rgba(255, 255, 255, 0.4);
}
.gnav__list {
	display: flex;
	flex-direction: column;
	gap: 24px;
	font-size: 21px;
	text-align: center;
}
.gnav__listitem {
	position: relative;
}
.gnav__link {
	color: var(--color-wht);
}
.gnav__link {
	display: block;
	padding: 8px 0;
	line-height: 1.4;
}


/* btn toggle */
.menu-btn__wrap {
	all: unset;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	align-self: center;
	width: 48px;
	height: 32px;
	background-color: transparent;
	border: 1px solid var(--color-wht);
	border-radius: 100px;
	outline: none;
	cursor: pointer;
}
.menu-btn--bar__wrap {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 100;
}
.menu-btn--bar {
	position: relative;
	display: block;
	height: 1px;
	width: 16px;
	background: var(--color-wht);
}
.menu-btn--bar:nth-child(1) {
	top: 0;
}
.menu-btn--bar:nth-child(2) {
	margin: 4px 0;
}
.menu-btn--bar:nth-child(3) {
	top: 0;
}
.js-open .menu-btn__wrap {
	position: relative;
	z-index: 100;
	background-color:  var(--color-wht);
	border: 1px solid var(--color-wht);
}
.js-open .menu-btn--bar {
	background: var(--color-green);
}
.js-open .menu-btn--bar:nth-child(1) {
	top: 5px;
	transform: rotate(45deg);
}
.js-open .menu-btn--bar:nth-child(2) {
	transform: translateY(-50%);
	opacity: 0;
}
.js-open .menu-btn--bar:nth-child(3) {
	top: -5px;
	transform: rotate(-45deg);
}
.menu-btn--caption {
	margin-top: 4px;
	color: var(--color-wht);
	font-size: 12px;
}

@media screen and (min-width: 1280px) {
	.l-gnav {
		opacity: 1;
		visibility: visible;
		position: unset;
		top: 0;
		left: 0;
		z-index: 99;
		width: unset;
		height: unset;
		transition: none;
		overflow: hidden;
		background: transparent;
	}
	.gnav__wrap {
		opacity: 1;
		width: auto;
		margin: unset;
	}
	.gnav__list {
		flex-direction: row;
		gap: 24px;
		font-size: inherit;
	}
	.menu-btn__wrap {
		display: none;
	}
}



/* main
---------------------------------------------------- */
.l-main {
	display: block;
}



/* breadcrumbs
---------------------------------------------------- */


/* ====================================================
object
==================================================== */
/* component // 共通コンポーネント
---------------------------------------------------- */
/* inner */
.inner {
	width: 90%;
	margin: 0 auto;
}
.inner--xs {
	max-width: 640px;
}
.inner--s {
	max-width: 800px;
}
.inner--m {
	max-width: 1000px;
}
.inner--l {
	max-width: 1200px;
}
.inner--xl {
	max-width: 1600px;
}

/* section */
.contents__wrap {
	display: flex;
	flex-direction: column;
	row-gap: 80px;
	margin-bottom: 80px;
}
.sec__wrap {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.roles__wrap,
.guide__wrap{
	font-family: "Kodchasan", "Zen Maru Gothic", sans-serif;
}
.sec__title {
	margin-bottom: 24px;
	font-size: 27px;
}
.sec__title span:not(.catchcopy, .catchcopy__inner) {
	display: block;
}
.catchcopy,
.catchcopy__inner {
	display: flex;
	flex-wrap: wrap;
}
.catchcopy {
	flex-direction: column;
}
.catchcopy__inner span {
	width: fit-content;
}
.sec__title .decoration {
	overflow: hidden;
	display: flex;
	align-items: center;
	-moz-column-gap: 1em;
	     column-gap: 1em;
	font-size: 20px;
	font-family: "Kodchasan", sans-serif;
	font-weight: 900;
}
.sec__title .decoration::after {
	content: "";
	display: inline-block;
	width: 100%;
	height: 1px;
	background-color: var(--color-wht);
}
.sec__wrap h3 {
	margin-bottom: 4px;
	font-size: 18px;
}
.sec__wrap ul + h3,
.sec__wrap p + h3 {
	margin-top: 24px;
}
.sec__contents p + p {
	margin-top: 8px;
}
.sec__wrap ul {
	list-style-type: disc;
	margin-left: 1.5em;
	margin-top: 16px;
	margin-bottom: 16px;
}
.sec__wrap ul span {
	font-size: 16px;
	font-weight: 700;
}
.roles__wrap ul li + li {
	margin-top: 16px;
}
.sec__wrap dl {
	display: grid;
	grid-template-columns: 6em 1fr;
	margin-top: 16px;
	margin-bottom: 16px;
}
.sec__wrap dl ul {
	margin-top: 0;
}
.sec__wrap dl + dl {
	margin-top: 16px;
}
@media screen and (min-width: 1024px) {
	.contents__wrap {
		row-gap: 120px;
	}
	.sec__wrap:not(.concept__wrap) {
		display: grid;
		grid-template-columns: 320px 1fr;
	}
	.concept__wrap {
		text-align: center;
	}
	.catchcopy {
		align-items: center;
		padding-left: 0.5em;
	}
	.sec__title .decoration {
		display: block;
	}
	.sec__title .decoration::after {
		display: none;
	}
}

/* anc-point */
.anc-point {
	margin-top: calc(var(--headerHeight) * -1);
	padding-top: calc(var(--headerHeight) + 40px);;
}

/*target blank*/
/* .news .article__content a[target="_blank"]::after {
	display: inline-block;
	content: "";
	background-color: var(--color-green);
	width: 1em;
	height: 1em;
	margin-left: 4px;
	-webkit-mask: url(../img/common/icon_blank.svg);
	mask: url(../img/common/icon_blank.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	vertical-align: middle;
} */

/* display */
.hide {
	display: none;
}
.show {
	display: block;
}

/* ====================================================
project
==================================================== */
/* home
---------------------------------------------------- */
/* mv */
.bg__wrap {
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100vw;
	height: 100vh;
}
.bg__contents::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.3);
	transition: background-color 0.5s ease;
}
.bg__contents.js-bg::after {
	background-color: rgba(0, 0, 0, 0.7);
}
/* .bg__img img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
} */
.bg__img.slide__01 {
	background-image: url(../img/home/mv01_port.webp);
	background-repeat: no-repeat;
	background-size: cover;
}
.bg__img.slide__02 {
	background-image: url(../img/home/mv02_port.webp);
	background-repeat: no-repeat;
	background-size: cover;
}
.bg__img.slide__03 {
	background-image: url(../img/home/mv03_port.webp);
	background-repeat: no-repeat;
	background-size: cover;
}
.bg__img.slide__04 {
	background-image: url(../img/home/mv04_port.webp);
	background-repeat: no-repeat;
	background-size: cover;
}
@media screen and (orientation: landscape) {
	.bg__img.slide__01 {
		background-image: url(../img/home/mv01_land.webp);
	}
	.bg__img.slide__02 {
		background-image: url(../img/home/mv02_land.webp);
	}
	.bg__img.slide__03 {
		background-image: url(../img/home/mv03_land.webp);
	}
	.bg__img.slide__04 {
		background-image: url(../img/home/mv04_land.webp);
	}
}


.mv__wrap {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	width: 90%;
	height: 100svh;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 80px;
}
.mv__title {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 40px;
	font-size: clamp(32px, 6vw, 48px);
	line-height: 1.4;
	word-break: auto-phrase;
}
.mv__title span {
	display: block;
	width: fit-content;
}
.mv_txt {
	max-width: 860px;
	font-size: clamp(16px, 3vw, 18px);
	font-weight: 500;
}
.mv_txt p + p {
	margin-top: 8px;
}

@media screen and (min-width: 768px) {
	.mv__wrap {
		justify-content: center;
		padding-bottom: 0;
	}

}



/* 404
---------------------------------------------------- */


