@charset 'utf-8';
/* adiva-template v6.0 | (c) adiva | adiva.jp | MIT licensed */

/* Color
/* -------------------------------------------------------------------------------- */
:root {

  --color-theme1: #FF9900;
  --color-theme2: #cc6600;
  --color-theme3: #cc3333;
  --color-theme4: #ffffcc;
  --color-theme5: #999966;
  --color-theme6: #006633;

	/* Global */
  --bgColor: var(--color-white);
  --fgColor: var(--color-black70);

	/* Header */
  --headerBgColor: var(--color-white90);
  --headerFgColor: var(--color-black70);

	--titleColor: var(--color-theme1-dark);

/*  --headerSubBgColor: var(--color-theme5-xlight);*/
  --headerSubBgColor: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
  --headerSubFgColor: var(--color-black70);

	/* Sidebar */
  /*--sidePrimaryBgColor: var(--color-theme6);*/
  /*--sidePrimaryBgColor: var(--color-black20);*/
/*	--sidePrimaryBgColor: url(../../images/washi_02.png);*/
/*	--sidePrimaryBgColor: #fff url(../../images/wagara_01.png) left top repeat;*/
	--sidePrimaryBgColor: var(--color-black40);
  --sidePrimaryFgColor: var(--color-white90);
/*  --sidePrimaryFgColor: var(--fgColor);*/
  --navTextShadow: none;

  /* --sidePrimaryBgColorSp: var(--sidePrimaryBgColor);
  --sidePrimaryFgColorSp: var(--sidePrimaryFgColor); */
	--sidePrimaryBgColorSp: var(--color-black50);
	--sidePrimaryFgColorSp: var(--color-white90);
  --navTextShadowSp: none;
/*  --navTextShadow: 0 2px 0px rgba(0, 0, 0, 0.5);*/
/*  --navTextShadow: 0 2px 0px rgba(255, 255, 255, 0.5);*/

  --sideSecondaryBgColor: var(--color-white);
  --sideSecondaryFgColor: inherit;

	/* Contents */
  --contentsBgColor: var(--color-white);

	/* Footer */
  /*--footerBgColor: var(--color-theme5);*/
	--footerBgColor: url(../../images/wagara.png);
  --footerFgColor: var(--color-black50);
}

/* Font Color
	------------------ */


/* Bg Color
	------------------ */
.bg-contents {
	background:var(--contentsBgColor);
}


/* Scroll Bar
	------------------	*/
/*::-webkit-scrollbar {
	width: 12px;
	height: 12px;
}
 
::-webkit-scrollbar-track {
	background: #111;
}
 
::-webkit-scrollbar-thumb {
	background: #444;
	border-radius:6px;
}*/



/* Framework
/* -------------------------------------------------------------------------------- */
:root {
	--headerHeight: 120px;
	--titleHeightPc: 70%;

/*	--maxContentsWidth: 1620px;*/
	--maxContentsWidth: 100%;

	--sectionMaxWidthWide: 1060px;
	--sectionMaxWidthtNarrow: 880px;
	--sectionMaxWidthThin: 700px;

	--innerPaddingWidth: clamp(20px, -8.912px + 6.72vw, 100px);
	--innerPaddingHeight: 60px;

	--boxPaddingWidth: calc(var(--gridSize) * 5);
}
/*@media only screen and (max-width: 1620px) {
	:root {
		--innerPaddingWidth: 3.7vw;
		--innerPaddingHeight: 3.7vw;
	}
}*/
@media only screen and (max-width: 1368px) {
	:root {
		--headerHeight: 100px;
	}
}
@media only screen and (max-width: 960px) {
	:root {
		--headerHeight: 80px;
		--innerPaddingHeight: 48px;
	}
}
@media only screen and (max-width: 430px) {
	:root {
		--headerHeight: 60px;
		--innerPaddingHeight: 30px;
	}
}

/*
 * Global
 * ================================================================================
 */

/* Font
/* -------------------------------------------------------------------------------- */
html {
/*	font-size: 100%*/
/* 16px(1368px) - 18px(1600px) */
font-size: clamp(1rem, 0.263rem + 0.86vw, 1.125rem);
}
body {
	line-height:1.6;
}
body,
button,
input,
select,
textarea {
/*	font-family: Arial, Helvetica, 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, sans-serif;*/
/*	font-family: 'Noto Sans', 'Helvetica Neue', 'Segoe UI', sans-serif;*/
/*  font-family: 'Noto Sans JP',  游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', sans-serif;*/
	font-family: "Jost", sans-serif;
	font-weight: 400;
	color: var(--fgColor);
}



/*
 * Layout
 * ================================================================================
 */
html {
	overflow-y:scroll;
}

#container {
	display:flex;
	align-items:stretch;
	justify-content:space-between;
	flex-direction:column;
	min-height:100dvh;
	padding-top:var(--headerHeight);
/*	overflow:hidden;*/
}

.wrapper {
	max-width:var(--maxContentsWidth);
	width:100%;
	margin:0 auto;
	padding:0;
}
@media only screen and (max-width: 960px) {
	.reverse-sp {
		display:flex;
		align-items:stretch;
		justify-content:space-between;
		flex-direction:column-reverse;
	}
}

.inner {
	padding:var(--innerPaddingHeight) var(--innerPaddingWidth);
}
@media only screen and (min-width: 961px) {
	.inner.inner--side {
/*		padding:var(--innerPaddingHeight) 2rem;*/
		padding:2rem;
	}
}

.section-wide {
	margin: 0 auto;
	max-width: var(--sectionMaxWidthWide);
}
.section-narrow {
	margin: 0 auto;
	max-width: var(--sectionMaxWidthtNarrow);
}
.section-thin {
	margin: 0 auto;
	max-width: var(--sectionMaxWidthThin);
}

.paddingbox {
	padding-left: var(--boxPaddingWidth);
	padding-right: var(--boxPaddingWidth);
}
@media only screen and (max-width: 960px) {
	.paddingbox {
		padding-left: 0;
		padding-right: 0;
	}
}


/* Header
	------------------ */
#header {
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:var(--headerHeight);
	z-index:1000;
	transition: all 0.2s 0s ease;
	border-bottom:rgba(0,0,0,0.5) solid 1px;
}
@media only screen and (min-width: 961px) {
	#header.resize {
		height:calc(var(--headerHeight) * 0.7);
	}
}

#header .wrapper {
	display:flex;
	align-items: center;
	justify-content: flex-start;
	height:100%;
}
.header-main {
	display:flex;
	align-items: center;
	justify-content: flex-start;
	height: var(--titleHeightPc);
}
.header-sub {
	display:flex;
	align-items: center;
	justify-content: flex-start;
	height: calc(100% - var(--titleHeightPc));

	background:var(--headerSubBgColor);
	color:var(--headerSubFgColor);
	font-weight:500;
}
@media only screen and (max-width: 960px) {
	#header > .wrapper {
		padding:0;
	}
}

#header .inner {
	display:flex;
	align-items: center;
	justify-content: space-between;
	width:100%;
	height:100%;
	padding-top:0;
	padding-bottom:0;
}
@media only screen and (min-width: 961px) {
	#header .inner {
		padding-left:2%;
		padding-right:2%;
	}
}

#header-title {
	flex-shrink:0;
	display:flex;
	align-items: center;
	height:66.6%;
	margin-top:0;
	margin-bottom:0;
	font-weight:700;
	font-size:3rem;
	transition: font-size 0.2s 0s ease;
	color:var(--titleColor);
	letter-spacing: -0.05em;
}
#header-subtitle {
	font-size:1.375rem;
	line-height:1.2;
}
.header-sub .inner {
	font-size:0.98rem;
}
.header-sub .inner br {
	display:none;
}

@media only screen and (min-width: 961px) {
	#header.resize #header-title {
		font-size:2.5rem;
	}
	#header.resize #header-subtitle {
		font-size:0.875rem;
	}
	#header.resize .header-sub .inner {
		font-size:0.75rem;
	}
}
@media only screen and (max-width: 960px) {
	#header .header-main {
		height:100%;
	}
	#header .header-sub {
		display:none;
	}

	#header-title {
		font-size:2.5rem;
	}

	#header-subtitle {
		display:none;
	}
}
@media only screen and (max-width: 430px) {
	#header-title {
		font-size:2.5rem;
	}
}

#header-logo {
	display:block;
	max-height:100%;
}
#header-logo.invert {
	filter: invert(100%);
}


/* Nav
	------------------ */
#sidebar-primary {
	height:100%;
}
#nav {
	position:-webkit-sticky; 
	position:sticky; 
	top: var(--headerHeight);
}


/* Main
	------------------ */
/*#main {
	flex-grow:1;
}*/

@media only screen and (min-width: 961px) {
	#main .wrapper {
		display:grid;
		grid-template-columns: 280px 1fr;
		height:100%;
	}
}
@media only screen and (min-width: 1369px) {
	#main .wrapper {
		grid-template-columns: 360px 1fr;
	}
}

#contents {
	min-height: calc(100vh - var(--headerHeight));
	min-height: calc(100svh - var(--headerHeight));
}


/* Footer
	------------------ */
/*#footer .inner {
	padding:60px 2%;
}*/

#copyright {
	margin-top:60px;
	text-align:center;
}





/*
 * Style
 * ================================================================================
 */
#bg {
	position:fixed;
	top: 0;
	width:100vw;
	height:100vh;
/*	background-image:url(../../images/bg.jpg);*/
	background-repeat:no-repeat;
	background-position:right center;
	background-size:cover;
	background-color:var(--bgColor);
	color:var(--fgColor);
}
body:not(.landing) #bg {
	background-image:url(../../images/bg-page.jpg);
}

/* Header
	------------------ */
#header {
	background-color:var(--headerBgColor);
	color:var(--headerFgColor);
/* border-top:var(--color-blue) solid 6px;*/
/* border-bottom:#c4c4c4 solid 1px;*/
}


/* Main
	------------------ */


/* Footer
	------------------ */
#footer {
	color: var(--footerFgColor);
	background:var(--footerBgColor);
	background-size:cover;
}


/* Nav
	------------------ */
#sidebar-primary {
	background:var(--sidePrimaryBgColor);
	background-attachment: fixed;
	background-size: 360px;
	color: var(--sidePrimaryFgColor);
}
@media only screen and (max-width: 960px) {
	#sidebar-primary {
		display:block;
		position:fixed;
		top:0;
		left:0;
		width:100%;
		height:100vh;
		height:100dvh;
		padding-top:var(--headerHeight);
		background:var(--sidePrimaryBgColorSp);
		color: var(--sidePrimaryFgColorSp);
		overflow-y:scroll;
		z-index:999;
	}
}
#sidebar-secondary {
	background-color:var(--sideSecondaryBgColor);
	color: var(--sideSecondaryFgColor);
}

#nav {
/*	background-color:var(--sidePrimaryBgColor);*/
}

#nav > ul {
}

#nav > ul > li {
	border-bottom:1px solid currentcolor;
}

#nav > ul .accordion-button, 
#nav > ul a {
	display: block;
	width:100%;
	text-decoration: none;
	padding:0.75em 0.5em;
	border-bottom: transparent solid 1px;
	text-align:right;
	font-size:1.125rem;
	line-height:1.2;
	/*color: inherit;*/
	color: inherit;
	text-shadow: var(--navTextShadow);
	box-sizing:border-box;
	/* opacity:1; */
}
#nav > ul .accordion-button:hover, 
#nav > ul a:hover {
	color:var(--color-theme1);
	transition: color .2s ease;
}

#nav > ul > li > a:first-child, 
#nav > ul > li > .accordion-button:first-child {
	font-weight:500;
}

#nav > ul > li > a:after, 
#nav > ul > li > .accordion-button:after {
	display:inline-block;
	font:var(--fa-font-solid);
	content: "\f107";
	margin-left:0.5em;
}
#nav > ul > li > a:after {
	color:transparent;
}
#nav > ul > li > .accordion-button:after {

}
#nav > ul > li > .accordion-button.act:after {
	transform: rotate(180deg);
}

#nav .accordion-content {
	padding-bottom:1.5em;
}

#nav .accordion-content a {
	padding:0.5em 0.5em;
}

@media only screen and (max-width: 960px) {
	#nav > ul .accordion-button, 
	#nav > ul a {
		padding:0.75em 0.5em;
		font-size:1.125rem;
		color: var(--sidePrimaryFgColorSp);
		text-shadow: var(--navTextShadowSp);
	}
}


/* Footer Nav
	------------------ */
#footer-nav .accordion-content {
	display:block !important;
}
#footer-nav > ul .accordion-button, 
#footer-nav > ul  a {
  display: block;
  padding: var(--gridSize2);
	line-height:1.2;
	font-weight:700;
}
#footer-nav > ul .accordion-button {
  cursor: default;
  pointer-events: none;
}
#footer-nav > ul  a {
	text-decoration:underline;
}
#footer-nav .accordion-content a {
	font-size:90%;
	font-weight:400;
}
#footer-nav ul {
  display: flex;
  justify-content: center;
	flex-wrap:wrap;
	gap: var(--gridSize2) var(--gridSize8);
}

@media only screen and (max-width: 960px) {

	#footer-nav ul {
		flex-direction:column;
	}
}
#footer-nav {
	padding-top: var(--gridSizeLv2);
  border-top: currentcolor solid 1px;
}


/* Nav Button
	------------------ */
#nav-btn {
	flex-shrink:0;
	margin-right:-7px;
	width:44px;
	height:44px;
	cursor:pointer;
display:none;
}
#nav-icon {
	display:block;
	position:absolute;
	top:50%;
	left:50%;
	width:32px;
	height:4px;
	margin:-2px 0 0 -18px;
	transition: 0.2s;
	background:var(--headerFgColor);
}
#nav-icon:before,
#nav-icon:after {
	display:block;
	content:'';
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	transition: 0.3s;
	background:var(--headerFgColor);
}
#nav-icon:before {
	margin-top:-11px;
}
#nav-icon:after {
	margin-top:11px;
}
#nav-icon.close {
	background:transparent;
}
#nav-icon.close:before,
#nav-icon.close:after {
	margin-top:0;
}
#nav-icon.close:before {
	transform:rotate(-45deg);
	-webkit-transform:rotate(-45deg);
}
#nav-icon.close:after {
	transform:rotate(-135deg);
	-webkit-transform:rotate(-135deg);
}





/*
 * Compornent
 * ================================================================================
 */
ul.disc {
  list-style-type: disc;
  margin: 0;
  padding-left: 1em;
}

.bg-blur {
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);
}

#contents a, 
a.sitelink {
/*  filter: hue-rotate(180deg);*/
	text-decoration:underline;
}

.ta-justify, 
#contents p {
	text-align: justify;
}


/* Line
	------------------ */
.line.dashed {
	height:1px;
  background-image : linear-gradient(to right, #999, #999 4px, transparent 4px, transparent 8px);
  background-size: 8px 1px;
  background-position: left bottom;
  background-repeat: repeat-x;
}


/* Label
	------------------ */
h2, h3, h4, h5, h6 {
	margin:0;
	font-size: 100%;
	font-weight:normal;
	line-height:normal;
}

/* h2 */
h2 {
	margin-bottom:2em;
	font-size:160%;
	padding-bottom:0.5em;
	color: currentcolor;
	border-bottom: currentcolor solid 1px;
	font-weight: 500;
}
.fc-gold {
  background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
  -webkit-background-clip: text;
  color: transparent; /* 必須 */
}
h2.fc-gold:after {
  content: "";
  position: absolute;
	bottom:0;
	left:0;
	width: 100%;
  height: 1px; /* 枠線の太さ */
  background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);

}
/* h3 */
/* h3 {
	margin-bottom:1em;
	font-size:120%;
	font-weight:500;
	padding:0.5em var(--boxPaddingWidth);
	background:var(--color-black60);
	color: var(--color-white);
	border-radius:var(--gridSize2);
} */

h3 {
  display: flex;
	align-items: center;
	justify-content: center;
	margin-right:auto;
	margin-left:auto;
	margin-bottom:1em;
	font-size:160%;
	font-weight:500;
	gap:0.5em;
	line-height: 1.1;
	text-align: center;
}

h3:before, h3:after {
  content: '';
  display: block;
  width: 15%;
  height: 2px;
  border-top: solid 1px currentColor;
  border-bottom: solid 1px currentColor;
}

h3:before {
  left:0;
}
h3:after {
  right: 0;
}




/* h4 */
h4 {
	display:inline-block;
	padding-bottom:0.25em;
	margin-bottom:0.5em;
	font-size:120%;
	font-weight:500;
	color:var(--color-black90);
	border-bottom:currentcolor dotted 3px;
}

/* h5 */
h5 {
	margin-bottom:0.5em;
	padding:0.5em calc(var(--boxPaddingWidth) - 5px);
	border-left:currentcolor solid 5px;
	font-weight:700;
	color: currentcolor;
}

/* h6 */
h6 {
	font-weight:700;
	color: currentcolor;
	margin-bottom:0.5em;
}

h2 + p, 
h3 + p, 
h4 + p, 
h5 + p, 
h6 + p, 
p:first-child {
	margin-top:0;
}

/* スマホ用調整 */
@media only screen and (max-width: 430px) {
	h2 {

	}
	h3 {

	}
	h4 {

	}
	h5 {

	}
	h6 {

	}
}


/* Table
	------------------ */
table {
	border-collapse: collapse; /* セルの線を重ねる */
}
th,td {
	padding:0.5em 2em;
	border:var(--color-bbb) solid 1px; /* 枠線指定 */
}
th {
	background-color:var(--color-black50);
	color:var(--color-white);
	font-weight:500;
}
td {
	background-color:var(--color-white60);
}
.table-wrapper {
	max-width:100%;
}
.table-wrapper > table {
	min-width:100%;
}
@media only screen and (max-width: 960px) {
	.table-wrapper {
		overflow-x:auto;
	}
	.table-wrapper > table {
		white-space: nowrap;
	}
}

/*table tr:first-child > th:first-child, 
table tr:first-child > td:first-child {
	border-top-left-radius: var(--gridSize2);
}
table tr:first-child > th:last-child, 
table tr:first-child > td:last-child {
	border-top-right-radius: var(--gridSize2);
}
table tr:last-child > td:first-child {
	border-bottom-left-radius: var(--gridSize2);
}
table tr:last-child > td:last-child {
	border-bottom-right-radius: var(--gridSize2);
}*/




/* List Table
	------------------ */
.listtable {
	display:grid;
	grid-template-columns: auto auto;
	margin-top:1rem;
/* place-items: center;*/
}
.listtable.left {
	place-content:start start;
}
.listtable.center {
	place-content: start center;
}
.listtable.right {
	place-content:start end;
}
.listtable.col2 {
	grid-template-columns: auto auto;
}
.listtable.col3 {
	grid-template-columns: auto auto auto;
}
.listtable.col4 {
	grid-template-columns: auto auto auto auto;
}

.listtable dt,
.listtable dd {
  display: flex;
  align-items: center;
  justify-content: center;
	padding:0.5em 2em;
	margin-bottom:-1px;
	margin-right:-1px;
	border:var(--color-bbb) solid 1px;
	line-height:1.1;
/*place-self: center;*/
}
.listtable dt {
	background-color:var(--color-black50);
	color:var(--color-white);
}
.listtable dd {
	background-color:var(--color-white60);
}
.listtable .left {
  justify-content: flex-start;
}
.listtable .center {
  justify-content: center;
}
.listtable .right {
  justify-content: flex-end;
}

@media only screen and (max-width: 960px) {
	.listtable.responsible {
		grid-template-columns: 1fr !important;
	}
}
@media only screen and (max-width: 430px) {

}


/* Link Button
	------------------ */
.linkbtn {
	box-sizing:border-box;
  position: relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin:1rem 0;
	padding:0.5em 3.0em;
	min-height:2.4em;
	border-radius:var(--gridSize2);
	background-color:var(--color-theme1);
	text-decoration:none !important;
	color:#fff !important;
	font-weight:500;
	line-height:1.1;
}

.linkbtn::before {
	font:var(--fa-font-solid);
  position: absolute;
  top:50%;
  transform:translate(-50%, -50%);
}
.linkbtn.site::before {
	content: "\f0c1";
  left:calc(100% - 1.5em);
}
.linkbtn.file::before {
	font:var(--fa-font-regular);
	content: "\f15b";
  left:1.5em;
}
.linkbtn.arrow-left::before {
	content: "\f104";
  left:1.5em;
}
.linkbtn.arrow-right::before {
	content: "\f105";
  left:auto;
  left:calc(100% - 1.5em);
}
.linkbtn.arrow-down::before {
	content: "\f107";
  left:calc(100% - 1.5em);
}

/* SNS */
.linkbtn.sns::before {
	font: var(--fa-font-brands);
	content: "\f075";
	left: 1.5em;
}

.linkbtn.sns.twitter {
	background:rgb(0, 0, 0);
}
.linkbtn.sns.twitter::before {
	content: "\e61b";
}

.linkbtn.sns.bluesky {
	background:rgb(32, 139, 254);
}
.linkbtn.sns.bluesky::before {
	content: "\e671";
}

.linkbtn.sns.youtube {
	background: rgb(255, 0, 51);
}
.linkbtn.sns.youtube::before {
	content: "\f167";
}

.linkbtn.sns.facebook {
	background: #0866ff;
}
.linkbtn.sns.facebook::before {
	content: "\f39e";
}

.linkbtn.sns.instagram {
	background: linear-gradient(135deg, rgba(88, 85, 164, 1) 10%, rgba(226, 35, 68, 1) 60%, rgba(245, 191, 91, 1) 90%);
}
.linkbtn.sns.instagram::before {
	content: "\f16d";
}

.linkbtn.sns.threads {
	background: rgb(0, 0, 0);
}
.linkbtn.sns.threads::before {
	content: "\e618";
}


/* To Top
	------------------ */
.totop {
	display:flex;
	align-items:center;
	justify-content:center;
	position:fixed;
	bottom:20px;
	right:20px;
	width:44px;
	height:44px;
	background:var(--color-black30);
	border-radius:4px;
	color:var(--color-white);
	font-size:20px;
	z-index: 100;
}
.totop:before {
	font:var(--fa-font-solid);
	content: "\f106";
}


/* Form
	------------------ */





/*
 * Responsive
 * ================================================================================
 */
.anchor {
	display:block;
	margin-top: calc(var(--headerHeight) * -1);
	padding-bottom:var(--headerHeight);
}
@media only screen and (min-width: 961px) {

}

@media only screen and (max-width: 960px) {
	.landing #bg {
		position: relative;
		width: 100%;
		height:auto;
		aspect-ratio: 16 / 9;
	}
	body:not(.landing) #bg {
		display:none;
	}

	#contents {
		min-height: auto;
	}
}





/*
 * Animation
 * ================================================================================
 */
.fade-slide-in,
.fade-in,
.slide-left,
.slide-right {
  opacity: 0;
  transition: all 0.8s ease;
}

.fade-in {
  transition: all 2s 0.5s ease;
}
.fade-slide-in {
  transform: translateY(100px); /* 初期は少し下にずらす */
}
.slide-left {
  transform: translateX(-100px); /* 左からスライド */
}
.slide-right {
  transform: translateX(100px); /* 左からスライド */
}

.fade-slide-in.visible,
.fade-in.visible,
.slide-left.visible,
.slide-right.visible {
  opacity: 1;
  transform: translate(0, 0);
}


/* 
/* -------------------------------------------------------------------------------- */

/* テスト用 */
/*#footer-sns {
	display:none;
}*/


.video-wrap {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%; /* 16:9 */
  overflow: hidden;
}

.video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}






