@charset "utf-8";

/*====================================================================================================
  #SUBPAGE
====================================================================================================*/
#subpage .main_content {
  position: relative;
  width: 100%;
}
#subpage .content_wrap {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-bottom: var(--content-margin);
}

/*---------------------------------------------------------------------------
  .mainimg
---------------------------------------------------------------------------*/
#subpage .mainimg {
	margin: 0 auto;
	width: 96%;
	max-width: 2400px;
	margin-bottom: var(--content-margin);
}
#subpage .mainimg img {
	width: 100%;
	height: auto;
	border-radius: 30px;
	object-fit: cover;
}

/*---------------------------------------------------------------------------
  .nendo_list
---------------------------------------------------------------------------*/
#subpage ul.nendo_list {
	margin-bottom: 40px;
}

/*====================================================================================================
  KAERU
====================================================================================================*/
/*---------------------------------------------------------------------------
  KAIGYOU
---------------------------------------------------------------------------*/

#subpage p.indention {
	clear:both;
	margin: 0 2%;
	height:3rem;
	text-indent: -9999px;
	background:none;
}

/*---------------------------------------------------------------------------
  MIDASHI
---------------------------------------------------------------------------*/

#subpage h3 {
	clear:both;
	text-align: center;
	font-family: "Zen Old Mincho", serif;
	font-weight: 900;
	color: var(--color-heading);
	display: flex;
	justify-content: center;
	font-size: clamp(2rem, 1.879rem + 0.52vw, 2.5rem); /* 375px:32px, 1920px:40px */
	align-items: center;
	gap: 8px;
	margin-bottom: 2.5rem; /* 24px */
}
#subpage h3::before {
  content: "";
  display: block;
  width: 52px;
  height: 27px;
  background-image: url(../../image/h2-deco.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

#subpage h4.mid {
	clear:both;
	text-align: center;
	color: var(--color-heading);
	font-family: "Zen Old Mincho", serif;
	font-weight: 900;
	font-size: clamp(1.75rem, 1.689rem + 0.26vw, 2rem); /* 375px:28px, 1920px:32px */
	line-height: 1.6;
	border-top: 2px solid var(--color-brown);
	border-bottom: 4px solid var(--color-brown);
	padding: 1.5rem 1rem;
	margin-bottom: 2.5rem;
}
#subpage h4:not([class]) {
	clear:both;
	font-family: "Zen Old Mincho", serif;
	font-weight: 900;
	font-size: clamp(1.5rem, 1.439rem + 0.26vw, 1.75rem); /* 375px:25px, 1920px:28px */
	color: var(--color-heading);
	background: var(--color-secondary);
	padding-left: 0.5em;
	margin-bottom: 2rem;
}
#subpage > :where(h3, h4):first-child { margin-top:0;}

/*---------------------------------------------------------------------------
  COMMENT
---------------------------------------------------------------------------*/

#subpage .comment1 {
	clear:both;
	margin:0 2% 20px;
	text-align:justify;
}
#subpage .comment2 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	background:#f5f5f5;
}
#subpage .comment3 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	background:#FEF4F5;
}
#subpage .comment4 {
	clear:both;
	margin:2.5rem 5%;
	padding:1.25rem;
	border:solid 2px var(--green);
	background:#E5F6F1;
	border-radius:20px / 30px;
}

/*---------------------------------------------------------------------------
  HYOU
---------------------------------------------------------------------------*/

#subpage table.hyou {
	clear:both;
	margin:1.5rem auto 0;
	max-width:1100px;
	width:100%;
	border-collapse:collapse;
	border-top:solid 1px #cccccc;
	border-left:solid 1px #cccccc;
}
#subpage table.hyou th,
#subpage table.hyou td {
	padding:0.75rem 1.25rem;
	font-size:1.25rem;
	border-right:solid 1px #cccccc;
	border-bottom:solid 1px #cccccc;
}
#subpage table.hyou th {
	font-weight:700;
	background:var(--color-secondary);
}
#subpage table.hyou .sm_mid {
	display:none;
}

/* 2RETU */
#subpage table.hyou2 th { width:30%;}
#subpage table.hyou2 td { width:70%;}
#subpage table.hyou2+table.hyou2 { border-top:none; margin-top:0;}
#subpage table.hyou2 td table {
	border-collapse:collapse;
	display:block;
	max-height:300px;
	overflow:auto;
}
#subpage table.hyou2 td table th,
#subpage table.hyou2 td table td { width:auto;}

/* 3RETU */
#subpage table.hyou3 { margin:0 2%;}
#subpage table.hyou3 th,
#subpage table.hyou3 td { width:33%; }
#subpage table.hyou3+table.hyou3 { border-top:none; }

/* 4RETU */
#subpage table.hyou4 { margin:0 2%;}
#subpage table.hyou4 th,
#subpage table.hyou4 td { width:25%; }
#subpage table.hyou4+table.hyou4 { border-top:none; }

/* 5RETU */
#subpage table.hyou5 { margin:0 2%;}
#subpage table.hyou5 th,
#subpage table.hyou5 td { width:20%;}
#subpage table.hyou5+table.hyou5 { border-top:none; }

/* FREE */
#subpage .pc_table { display:block;}
#subpage .sm_table { display:none;}
#subpage .pc_table table,
#subpage .sm_table table {
	clear:both;
	margin:10px 2%;
	width:96%;
	border-collapse:collapse;
	border-top:1px solid #DDD;
	border-left:1px solid #DDD;
}
#subpage .pc_table table td,
#subpage .sm_table table td {
	padding:5px 10px;
	background:#FFF;
	border-right:1px solid #DDD;
	border-bottom:1px solid #DDD;
}
#subpage .pc_table thead td,
#subpage .sm_table thead td { background:#EEE;}

/* FIX */
#subpage .fix_table {}
#subpage .fix_table table {
	clear:both;
	margin:10px 2%;
	width:96%;
	border-collapse:collapse;
	border-top:1px solid #DDD;
	border-left:1px solid #DDD;
}
#subpage .fix_table table th,
#subpage .fix_table table td {
	padding:5px 10px;
	border-right:1px solid #DDD;
	border-bottom:1px solid #DDD;
}
#subpage .fix_table table th {
	background:#EEE;
	font-weight:bold;
	text-align:center;
}
#subpage .fix_table table td { background:#FFF;}

/*---------------------------------------------------------------------------
  LIST
---------------------------------------------------------------------------*/

/* ul */
#subpage ul.list-ul {
	clear:both;
	margin:0 2%;
	padding:5px 0;
}
#subpage ul.list-ul li {
	position:relative;
	padding: 0 0 0 20px;
}

#subpage ul.list-ul li:before {
	content:"";
	position:absolute;
	display:block;
	width:7px;
	aspect-ratio:1;
	background-color: var(--color-font);
	border-radius:50%;
	inset:0.5lh auto auto 0;
	translate:0 -50%;
}

/* ol　数字リスト */
#subpage *:not(.list-ol):has( + .list-ol) {
	counter-reset:num;
}
#subpage .list-ol {
	counter-increment:num;
	clear:both;
	margin:0 2%;
	padding:5px 0;
}
#subpage .list-ol div {
	padding-left:1.375rem;
	text-indent:-1.125rem;
}
#subpage .list-ol div:before {
	content:counter(num)".";
	padding-right:0.375em;
	font-weight: 800;
	color: var(--color-brown);
}

/*---------------------------------------------------------------------------
  LINK
---------------------------------------------------------------------------*/

#subpage .link {
	position:relative;
	clear:both;
	margin:0 2%;
	padding: 0 0 10px 1.25em;
}
#subpage .link a {
	color: var(--color-font);
	font-weight: 700;
}
#subpage .link.right { width:fit-content; margin-inline:auto 2%;}
#subpage .link:before {
	content:"";
	position:absolute;
	display:block;
	width:1em;
	aspect-ratio:1;
	background:url(../image/link_arrow.svg) no-repeat center / contain;
	inset:0.5lh auto auto 0;
	translate:0 -40%;
}
#subpage .file {
	clear:both;
	margin:0 2%;
	padding: 0 0 10px;
}
#subpage .file img { padding-right:10px;}

/* LINK PLURAL�@*************************/
/* LINK BOX2 */ #subpage .link2 { clear:none; float:left; width:46%;}
/* LINK BOX3 */ #subpage .link3 { clear:none; float:left; width:29.3%;}
/* LINK BOX4 */ #subpage .link4 { clear:none; float:left; width:21%;}

/* FILE PLURAL�@*************************/
/* FILE BOX2 */ #subpage .file2 { clear:none; float:left; width:46%;}
/* FILE BOX3 */ #subpage .file3 { clear:none; float:left; width:29.3%;}
/* FILE BOX4 */ #subpage .file4 { clear:none; float:left; width:21%;}

/* FILELINK */ #subpage .pdf { margin-top: 1rem;}
/* FILELINK */ #subpage .pdf a { margin-left: 0.5rem;}


/*---------------------------------------------------------------------------
  EMBEDDED
---------------------------------------------------------------------------*/

#subpage .embedded {
  position:relative;
	clear:both;
	margin: 0 2%;
	padding:0 0 20px;
}
#subpage .embedded iframe { width: 100%;}


/*---------------------------------------------------------------------------
  PHOTO
---------------------------------------------------------------------------*/

/* #subpage .photo img { border-radius: 20px;} */

#subpage .photo-l {	float:left;}
#subpage .photo-r {	float:right;}
#subpage .photo-c { clear:both; text-align:center;}
#subpage .photo-l img { margin:0 20px 0 0;}
#subpage .photo-r img { margin:0 0 0 20px;}
#subpage .photo-c img { margin:0 0 10px;}
#subpage .photo-l p,
#subpage .photo-r p,
#subpage .photo-c p { margin: 0 0 5px;}
#subpage .caption { font-size:80%; text-align:center;}

/* PHOTO BOX　*************************/
#subpage ul.photo_box { float:left; margin:2%;}
#subpage ul.photo_box li {}
#subpage ul.photo_box li.photo { margin:0 0 5px;}
#subpage ul.photo_box li.cap {}
#subpage ul.photo_box li.youtube { position: relative;}
#subpage ul.photo_box li.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}
#subpage ul.photo_box img { width:100%; max-width:100%;}
/* PHOTO BOX1 */ #subpage ul.g1 {width:800px; float:none; margin-inline:auto;}
/* PHOTO BOX2 */ #subpage ul.g2 {width:calc(100% / 2 - 4%);}
/* PHOTO BOX3 */ #subpage ul.g3 {width:calc(100% / 3 - 4%);}
/* PHOTO BOX4 */ #subpage ul.g4 {width:calc(100% / 4 - 4%);}
/* PHOTO BOX5 */ #subpage ul.g5 {width:calc(100% / 5 - 4%);}
#subpage ul.g1 img { width:100%; height:auto; text-align:center;}
#subpage ul.g2 img { width:100%; height:auto;}
#subpage ul.g3 img { width:100%; height:auto;}
#subpage ul.g4 img { width:100%; height:auto;}
#subpage ul.g5 img { width:100%; height:auto;}

#subpage ul.g1.photo_box .photo { text-align: center;}
#subpage ul.g1.photo_box .photo img { width: auto;}

/*---------------------------------------------------------------------------
  BOX
---------------------------------------------------------------------------*/

#subpage .box1 h4:not([class]),
#subpage .box2 h4:not([class]) {
	clear:none;
	border:none;
	margin:5px 0 5px;
	padding:0;
	font-family: "Zen Old Mincho", serif;
	font-weight: 900;
	font-size: clamp(1.25rem, 1.189rem + 0.26vw, 1.5rem); /* 375px:20px, 1920px:24px */
	color: var(--color-brown);
	background: none;
}

#subpage .box1 h4:not([class]):empty,
#subpage .box2 h4:not([class]):empty {
	display: none;
}

/* BOX1 */
#subpage .box1 {
	clear:both;
	margin:20px 2%;
	width:96%;
}
#subpage .box1 .photo-c img {max-width:800px; height:auto; width:100%;}
#subpage .box1 .photo-l img {max-width:400px; height:auto;}
#subpage .box1 .photo-r img {max-width:400px; height:auto;}
#subpage .box1:after { /*float_clear*/ display:block; clear:both;	content:"";}
#subpage .box1 h4 {}
#subpage .box1 .come {/*overflow:hidden; �܂�Ԃ���*/}

/* BOX2 */
#subpage .box2 {
	float:left;
	margin:20px 2%;
	width:46%;
}
#subpage .box2 h4 {}
#subpage .box2 .come {/*overflow:hidden; �܂�Ԃ���*/}
#subpage .box2 .photo-l img {max-width:210px; height:auto;}
#subpage .box2 .photo-r img {max-width:210px; height:auto;}

/*---------------------------------------------------------------------------
  BUTTON
---------------------------------------------------------------------------*/

#subpage .btn {
	float:left;
	text-align: center;
}
#subpage .btn a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  width: fit-content;
  min-width: 200px;
  padding: clamp(8px, 1.5vw, 16px) clamp(20px, 4vw, 40px);
  border: 2px solid var(--color-brown);
  border-radius: 15px;
  color: var(--color-heading);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-sizing: border-box;
  overflow: hidden;
  background-image: linear-gradient(to right, var(--color-orange) 50%, var(--color-primary) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease-in-out; /* hover時色変わりのスピード */
}
#subpage .btn a:after  { 
  content: "";
  display: block;
  width: 17px;
  height: 13px;
  background-image: url(../image/link-btn-arrow.svg); 
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.3s ease-in-out;
}
#subpage .btn a:hover {
	background-position: left center;
}
#subpage .btn a:hover:after {
	transform: translateX(4px);
}


/* BUTTON BOX1 */ #subpage .b1 { clear: both; float:none; margin:0 auto 1rem; width:36.25%;}
/* BUTTON BOX2 */ #subpage .b2 { float:left; width:calc(100% / 2 - 4%); margin-bottom: 1rem;}
/* BUTTON BOX3 */ #subpage .b3 { float:left; width:calc(100% / 3 - 4%); margin-bottom: 1rem;}

/*---------------------------------------------------------------------------
  COLUMNBOX
---------------------------------------------------------------------------*/
#subpage .column {}
#subpage .column:after { /*float_clear*/ display:block; clear:both; content:"";}
#subpage .column .col2 { float: left; margin: 2%; width: 46%;}
#subpage .column .col3 { float: left; margin: 2%; width: 29.3%;}
#subpage .column .col2:nth-child(2+1),
#subpage .column .col3:nth-child(3+1) { clear:both;}

/*---------------------------------------------------------------------------
  FLOW
---------------------------------------------------------------------------*/

#subpage ul.flow_box {}
#subpage ul.flow_box:after { /*float_clear*/ display:block; clear:both; content:"";}
#subpage ul.flow_box li {
	position:relative;
	float:left;
	margin:2.5% 2%;
	padding:15px;
	color: var(--color-font);
	font-weight: 700;
	text-align:center;
	background: var(--color-primary);
	border-radius: 5px; /* CSS3 */
	-webkit-border-radius: 5px; /* Safari,Google Chrome */
	-moz-border-radius: 5px;/* Firefox */
	border: 1px solid var(--color-heading);
}
#subpage ul.flow_box li a { color: var(--color-font); text-decoration: none;}
#subpage ul.flow_box li a:hover {
	opacity: 0.9;
	border-radius: 5px; /* CSS3 */
	-webkit-border-radius: 5px; /* Safari,Google Chrome */
	-moz-border-radius: 5px;/* Firefox */
}
#subpage ul.flow_box li+li:before {
	position:absolute;
	top:0;
	left:-28px;
	display:block;
	clear:both;
	content:"";
	width:15px;
	height:100%;
	background:url(../image/flow_bg_pc.png) no-repeat center center;
}
#subpage .flow1 { position:relative; margin-inline: auto; width: 80%;}
#subpage .flow1 li { float: none; width:96%;}
#subpage .flow1+.flow1:before {
	position:absolute;
	top:-15px;
	left:0;
	display:block;
	clear:both;
	content:"";
	width:100%;
	height:30px;
	background:url(../image/flow_bg_sm.png) no-repeat center center;
}
#subpage .flow2 li { width:46%;}
#subpage .flow3 li { width:29.3%;}
#subpage .flow4 li { width:21%;}

#subpage .flow1a { position:relative;}
#subpage .flow1a+.flow1a {margin-top:3%;}

#subpage .flow1a li+li:before { display:none !important;}
#subpage .flow1a li:nth-child(1) { width:32%; background:var(--color-primary);}
#subpage .flow1a li:nth-child(2) { width:60%; padding:0; text-align: left; color: #343434; background: none; border: none;}
#subpage .flow1a+.flow1a:before {
	position:absolute;
	top:-25px;
	left:0;
	display:block;
	clear:both;
	content:"";
	width:36%;
	height:30px;
	background:url(../image/flow_bg_sm.png) no-repeat center center;
}

/*---------------------------------------------------------------------------
  FAQ
---------------------------------------------------------------------------*/

#subpage .faq {
  clear: both;
  margin: 1rem auto;
  padding: 3%;
  border-bottom: thin solid #ccc;
}

/* summary の標準マーカー削除（全ブラウザ） */
#subpage .faq_question {
  list-style: none;
}
.faq_question::-webkit-details-marker {
  display: none;
}

/* ------------------------------
  質問
------------------------------ */
#subpage .faq_question {
  position: relative;
  padding: 0 3rem 1.5rem 3rem;
  font-weight: bold;
  color: var(--color-brown);
  cursor: pointer;
}

/* Q / A 共通 */
#subpage .faq_question::after,
#subpage .faq_answer::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 2rem;
  height: 2rem;
  line-height: 1.6;
  text-align: center;
  border-radius: 50%;
  font-weight: bold;
  font-size: 18px;
  color: var(--color-base);
}

/* Q */
#subpage .faq_question::after {
  content: "Q";
  background-color: var(--color-brown);
}

/* ------------------------------
  回答（スムーズアニメーション）
------------------------------ */
#subpage .faq_answer {
  position: relative;
  padding: 0 0 1rem 3rem;
  color: var(--color-font);

  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-4px);

  transition:
    max-height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1),
    opacity 0.35s ease 0.15s,
    transform 0.35s ease 0.15s;
}

/* open時 */
#subpage .faq[open] .faq_answer {
  max-height: 1200px; /* FAQの最大高さより大きければOK */
  opacity: 1;
  transform: translateY(0);
}

/* 閉じるときは少し速く */
#subpage .faq:not([open]) .faq_answer {
  transition:
    max-height 0.35s ease,
    opacity 0.2s ease,
    transform 0.2s ease;
}

/* A */
#subpage .faq_answer::after {
  content: "A";
  background-color: var(--color-beige);
}

/* ------------------------------
  開閉アイコン（＋／−）
------------------------------ */
#subpage .faq_icon {
  position: absolute;
  top: 0;
  right: 0;
  width: 2rem;
  height: 2rem;
  background-color: #aaa;
  border-radius: 50%;
}

#subpage .faq_icon::before,
#subpage .faq_icon::after {
  content: "";
  width: 16px;
  border: 2px solid var(--color-base);
  background-color: var(--color-base);
  border-radius: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}

/* 縦線（＋の縦） */
#subpage .faq_icon::before {
  rotate: -90deg;
  transition: rotate 0.3s ease;
}

/* open時：− */
#subpage .faq[open] .faq_icon::before {
  rotate: 0deg;
}

