@charset "UTF-8";
/* =========================================================
 * parts.css — 部品
 *   パンくず／タグ・カテゴリー／ページネーション
 *   ヒーロー（.editorial-hero）／画像ライトボックス（.gallery）／フッターカルーセル（.carousel）
 * ========================================================= */


/*================================================
　　breadcrumb   
 ================================================*/
.breadcrumb {margin: 0 1em;}
.breadcrumb ol {
    font-size:0.9em;
    margin: 1em 0 ;
    padding: 0;
}
.breadcrumb ol li {
    display: inline;
    list-style: none;
    color: var(--color-c);
    font-weight: bold;
    margin-right: -10px;
    background: rgb(255 255 255 / 5%);
    padding: 0.5em 0.8em 0.5em 0;
    border-radius: 5px;
}
.breadcrumb ol li:first-child:before {
    content: none;
}
.breadcrumb ol li > a{
    color: var(--color-c);
    margin-right: 5px;
    text-decoration: none;  
}
.breadcrumb ol li a:hover {
    text-decoration: underline;
    color: var(--color-d);
    opacity: 0.8;
}
@media print, screen and (max-width: 540px) {
    .breadcrumb ol li span.e-title{
        display: block;
    }   
}
/*================================================
 *　tagcloud
 ================================================*/
.tagcloud, .tags{
    list-style: none;
    margin: 0;
    overflow: hidden;
    padding: 0.0em 0 0;
    display: inline-block;
    clear: both;
}
.tagcloud li, .tags li{
    display: inline-block;
    padding: 0;
    margin: 0 0.2em 0.2em 0;
}
.tagcloud a, .tags a{
 background:var(--color-b);
 color:#fff;
 padding:4px 8px 3px;
 margin:3px;
 border-radius:5px;
 text-decoration:none;
 font-size:12px;
 line-height: 1em;
 font-weight:600;
 white-space: nowrap;
}
.tagcloud a:hover, .tags a:hover{
 opacity: 0.8;
 font-weight:400;
}
.tagcloud a:before, .tags a:before{
 font-family:"Font Awesome 6 Free";
 content:"\f02b"; 
 font-weight:600;
 color:#fff;
 padding-right:6px;
}
.tagcloud a span, .tags a span{
 padding-left:0.5em;
 color:#fff;
}
.tagcloud li.rrr a, .tags li.rrr a{
 background:#ff0000;
}

/*================================================
 *　catcloud
 ================================================*/
.catcloud, .post-categories{
    list-style: none;
    margin: 0;
    overflow: hidden;
    padding: 0.0em 0 0;
    display: inline-block;
    clear: both;
}
.catcloud li, .post-categories li{
    display: inline-block;
    padding: 0;
    margin: 0 0.2em 0.2em 0;
}
.catcloud a, .post-categories a{
 background:var(--color-a);
 color:#fff;
 padding:4px 8px 3px;
 margin:3px;
 border-radius:5px;
 text-decoration:none;
 font-size:12px;
 line-height: 1em;
 font-weight:600;
 white-space: nowrap;
}
.catcloud a:hover, .post-categories a:hover{
 opacity: 0.8;
 font-weight:400;
}
.catcloud a:before, .post-categories a:before{
 font-family:"Font Awesome 6 Free";
 content:"\f35a"; 
 font-weight:600;
 color:#fff;
 padding-right:6px;
}
.catcloud a span, .post-categories a span{
 padding-left:0.5em;
 color:#fff;
}

/*================================================
 *　pagination
 ================================================*/
.pagination {
  margin: 0 auto 2em;
  padding: 0em 0;
  text-align: center;
  display: block;
}
.pagination a {
  font-size: 1em;
  line-height: 2em;
  text-align: center;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0;
  display: inline-block;
  height: 2em;
  width: 2em;
  border-radius: 50%;
  background: var(--color-a);
  transition: .3s
}
.pagination a:hover {
 opacity: 0.8;
}
.pagination span {
  font-size: 1em;
  line-height: 2em;
  text-align: center;
  letter-spacing: 0;
  display: inline-block;
  height: 2em;
  width: 2em;
  border-radius: 50%;
  background: var(--color-a);
}
.pagination span.dots {
  background: 0
}
.pagination span.current {
  background: var(--color-c);
  color: #fff
}
/*================================================
　footer カルーセル（.carousel を本文・ウィジェットに置いたときだけ有効）
 ================================================*/
@media screen and (max-width: 999.9px){
/* カルーセルの外枠 */
.carousel {
    position: fixed;
    bottom: 10px;
    left: -web-kids-calc(50% - 130px);
    left: calc(50% - 130px);
  width: 260px;
  height: 80px;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
  z-index:2;
}
/* カルーセル内の画像 */
.carousel img {
  width: 260px;
  height: 80px;
max-width:260px;
  margin: 0;
  padding: 0 10px 0 0;
  display: block;
}
/* スクロールアニメーションのキーフレーム */
@keyframes scroll {
  0% { margin-left: 0; }      
  20% { margin-left: -260px; }
  25% { margin-left: -260px; }
  45% { margin-left: 0px; }
  50% { margin-left: 0px; }
  70% { margin-left: -260px; }
  75% { margin-left: -260px; }
  95% { margin-left: 0%; }
  100% { margin-left: 0%; }
}
/* カルーセルの子要素にスクロールアニメーションを設定 */
.carousel > :first-child {
  animation-name: scroll;
  animation-duration: 30s;
  animation-delay: 0s;
  animation-iteration-count: infinite;
}
}

@media print, screen and (min-width: 1000px){
/* カルーセルの外枠  右MENUなら  50% - 260px - 130px  */
.carousel {
    position: fixed;
    bottom: 10px;
    left: -web-kids-calc(50% - 260px + 130px);
    left: calc(50% - 260px + 130px);
  width: 520px;
  height: 80px;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
  z-index:2;
}
/* カルーセル内の画像 */
.carousel img {
  width: 260px;
  height: 80px;
  margin: 0;
  padding: 0 20px 0 0;
  display: block;
}
}

/* =========================================================
 * Editorial hero
 * ========================================================= */
.editorial-hero{
	position:relative;
	min-height:min(100vh,820px);
	overflow:hidden;
	isolation:isolate;
	color:#fff;
}
.editorial-hero .hero-background,
.editorial-hero .hero-background img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}
.editorial-hero .hero-background img{object-fit:cover;}
.editorial-hero .hero-dark-layer{
	position:absolute;
	inset:0;
	background:
		linear-gradient(90deg,var(--color-a) 0%,var(--color-b) 41%,var(--color-c) 72%),
		linear-gradient(to top,rgba(0,28,24,.62),transparent 45%);
}
.editorial-hero .hero-grid-pattern{
	position:absolute;
	inset:0;
	opacity:.17;
	background-image:
		linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),
		linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px);
	background-size:70px 70px;
	-webkit-mask-image:linear-gradient(to right,#000,transparent 64%);
	mask-image:linear-gradient(to right,#000,transparent 64%);
}
.editorial-hero .editorial-copy{
	position:relative;
	z-index:5;
	width:min(660px,62%);
	padding:clamp(110px,13vh,160px) 4.5vw 100px;
}
.editorial-hero .editorial-kicker,
.editorial-hero .editorial-copy h1 span,
.editorial-hero .editorial-copy h1 strong,
.editorial-hero .editorial-lead,
.editorial-hero .editorial-actions{opacity:0;}
.editorial-hero .editorial-kicker{
	margin:0 0 24px;
	font-size:.8rem;
	font-weight:800;
	letter-spacing:.25em;
	transform:translateY(18px);
}
.editorial-hero .editorial-copy h1{
	margin:0;
	line-height:1.08;
	font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
	font-weight:500;
}
.editorial-hero .editorial-copy h1 span{
	display:block;
	margin-bottom:1rem;
	font-size:clamp(1.5rem,2.6vw,2.6rem);
	letter-spacing:.12em;
	transform:translateX(-28px);
}
.editorial-hero .editorial-copy h1 strong{
	position:relative;
	display:block;
	overflow:hidden;
	font-size:clamp(1.5rem,2.6vw,2.6rem);
	letter-spacing:-.04em;
	color:#fff;
	text-shadow:0 8px 30px rgba(0,0,0,.26);
	transform:translateY(38px);
}
.editorial-hero .editorial-copy h1 strong::after{
	content:"";
	position:absolute;
	inset:-20%;
	background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.85) 45%,transparent 70%);
	transform:translateX(-170%) skewX(-25deg);
	pointer-events:none;
}
.editorial-hero .editorial-lead{
	max-width:590px;
	margin:28px 0 0;
	font-size:clamp(.98rem,1.35vw,1.2rem);
	line-height:2;
	letter-spacing:.08em;
	transform:translateY(24px);
}
.editorial-hero .editorial-actions{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:30px;
	transform:translateY(22px);
}
.editorial-hero .editorial-actions a{
	min-height:54px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:11px 24px;
	border-radius:4px;
	text-decoration:none;
	font-weight:800;
	transition:.23s ease;
}
.editorial-hero .editorial-actions a:hover{transform:translateY(-3px);}
.editorial-hero .editorial-primary{background:#e9c84b;color:#153d31;}
.editorial-hero .editorial-secondary{
	border:1px solid rgba(255,255,255,.65);
	background:rgba(4,50,42,.5);
	color:#fff;
}

/* Hero animation */
.editorial-hero.is-visible .editorial-kicker{animation:yokoHeroFadeUp .8s ease .25s forwards;}
.editorial-hero.is-visible .editorial-copy h1 span{animation:yokoHeroSlide .9s ease .52s forwards;}
.editorial-hero.is-visible .editorial-copy h1 strong{
	animation:yokoHeroFadeUp 1s cubic-bezier(.18,.78,.22,1) .75s forwards,yokoHeroGold 1.3s ease 1.8s forwards;
}
.editorial-hero.is-visible .editorial-copy h1 strong::after{animation:yokoHeroShine 1.2s ease 2s forwards;}
.editorial-hero.is-visible .editorial-lead{animation:yokoHeroFadeUp .85s ease 1.08s forwards;}
.editorial-hero.is-visible .editorial-actions{animation:yokoHeroFadeUp .8s ease 1.34s forwards;}

@keyframes yokoHeroFadeUp{to{opacity:1;transform:none;}}
@keyframes yokoHeroSlide{to{opacity:1;transform:none;}}
@keyframes yokoHeroGold{
0%{color:#fff;text-shadow:0 8px 30px rgba(0,0,0,.26);}
45%{color:#fff8b8;text-shadow:0 0 12px rgba(255,240,120,.65),0 8px 30px rgba(0,0,0,.26);}
100%{color:#ffd84d;text-shadow:0 0 18px rgba(255,221,70,.45),0 8px 30px rgba(0,0,0,.26);}
}
@keyframes yokoHeroShine{
0%{transform:translateX(-170%) skewX(-25deg);opacity:0;}
15%,85%{opacity:1;}
100%{transform:translateX(170%) skewX(-25deg);opacity:0;}
}

@media screen and (max-width:999.9px){
.editorial-hero{min-height:100svh;}
.editorial-hero .hero-background img{object-position:center;}
.editorial-hero .hero-dark-layer{
	background:
		linear-gradient(to bottom,rgba(2,35,32,.62),rgba(2,35,32,.18) 48%,rgba(2,30,28,.68)),
		linear-gradient(90deg,rgba(2,35,32,.4),transparent);
}
.editorial-hero .editorial-copy{
	width:100%;
	padding:105px 6vw 120px;
	text-align:center;
}
.editorial-hero .editorial-lead{
	margin-left:auto;
	margin-right:auto;
}
.editorial-hero .editorial-actions{justify-content:center;}
}

@media screen and (max-width:540px){
.editorial-hero .editorial-copy{padding:90px 20px;}
.editorial-hero .editorial-actions{
	display:grid;
	justify-items:center;
}
.editorial-hero .editorial-actions a{width:min(330px,90vw);}
}

/* =========================================================
 * Reduced motion
 * ========================================================= */
@media(prefers-reduced-motion:reduce){
.editorial-hero .editorial-kicker,
.editorial-hero .editorial-copy h1 span,
.editorial-hero .editorial-copy h1 strong,
.editorial-hero .editorial-lead,
.editorial-hero .editorial-actions{
	opacity:1!important;
	transform:none!important;
	animation:none!important;
	transition:none!important;
}
.editorial-hero .editorial-copy h1 strong::after{display:none;}
}
/* =========================================================
 * 画像ライトボックス（.gallery 内の画像クリックで拡大）
 * JS: assets/js/theme.js
 * ========================================================= */
#case-lightbox{position:fixed; inset:0; z-index:999999; display:none;}
#case-lightbox.is-open{display:block;}
#case-lightbox .lb-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.7);}
#case-lightbox .lb-inner{position:absolute; inset:0; display:grid; place-items:center; padding:24px;}
#case-lightbox .lb-img{
  max-width:min(1200px, 92vw);
  max-height:86vh;
  width:auto;
  height:auto;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
}
#case-lightbox .lb-close{
  position:absolute;
  top:16px;
  right:16px;
  width:44px;
  height:44px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  font-size:28px;
  line-height:44px;
  cursor:pointer;
}
/* ライトボックス表示中はスクロール禁止 */
html.lb-noscroll, html.lb-noscroll body{overflow:hidden;}


/*================================================
 * 固定ページの見出し・本文幅（index.php が自動出力）
================================================*/
#main.is-front .inner{padding-top:0;}
.ms-page-hero{background:var(--color-g);margin:-2.5em -5vw 2.5em;padding:3em 5vw 2.5em;border-bottom:1px solid var(--ms-line);}
.ms-page-hero .ms-wrap{max-width:960px;}
.ms-page-hero h1{font-size:clamp(1.5em,3.4vw,2.2em);line-height:1.45;color:var(--color-a);margin:.1em 0 .5em;padding:0;border:0;background:none;text-align:left;}
.ms-body{max-width:960px;margin:0 auto;}
.ms-body h2{margin-top:2.2em;}

/*================================================
 * CTA（カスタマイザー／ACF の値から自動出力）
================================================*/
.ms-cta{background:var(--color-a);color:#fff;border-radius:20px;padding:2.5em 2em;text-align:center;margin:3em 0 1em;position:relative;overflow:hidden;}
.ms-cta::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none;}
#main .ms-cta .t{font-size:clamp(1.2em,2.6vw,1.6em);font-weight:700;color:#fff;margin-bottom:.4em;line-height:1.5;}
#main .ms-cta p{color:#dfe6ef;}
#main .ms-cta p:not(.t):not(.ms-tel){text-align:left;display:inline-block;max-width:100%;}
.ms-cta .ms-btns{justify-content:center;}
#main .ms-cta a.ms-btn.ghost{background:transparent;color:#fff;border-color:#fff;}
#main .ms-cta a.ms-btn.ghost:hover{background:#fff;color:var(--color-a);}
#main .ms-cta .ms-tel{display:block;font-size:.85em;margin:0;text-align:center;}
.ms-after{margin-top:1em;}

/*================================================
 * あわせて読みたい（index.php が自動出力）
================================================*/
.ms-related{margin:2.5em 0 1em;}
#main .ms-related-t{font-weight:700;color:var(--color-a);font-size:1.15em;margin-bottom:.8em;padding-left:.7em;border-left:5px solid var(--color-c);line-height:1.4;}
.ms-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:1em;}
#main a.ms-rel{display:block;position:relative;background:#fff;border:1px solid var(--ms-line);border-radius:12px;padding:1em 2.6em 1em 1.2em;text-decoration:none;color:var(--color-d);font-weight:400;transition:border-color .15s,transform .15s,box-shadow .15s;}
#main a.ms-rel:hover{border-color:var(--color-c);transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.08);}
#main a.ms-rel::after{content:"\f054";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;right:1.1em;top:50%;transform:translateY(-50%);color:var(--color-c);font-size:.85em;}
#main a.ms-rel .k{display:inline-block;font-size:.72em;font-weight:700;color:#fff;background:var(--color-a);border-radius:4px;padding:.1em .6em;margin-bottom:.4em;}
#main a.ms-rel b{display:block;color:var(--color-a);line-height:1.5;}
#main a.ms-rel .d{display:block;font-size:.85em;color:var(--ms-mute);line-height:1.6;margin-top:.2em;}
@media (max-width:640px){.ms-related-grid{grid-template-columns:1fr;}}

/*================================================
 * 2段階フォーム（Contact Form 7 ／ theme.js の 11）
================================================*/
.ms-form{max-width:760px;margin:0 auto;}
.ms-stepbar{display:flex;gap:.5em;margin:0 0 1.5em;list-style:none;padding:0 !important;}
.ms-stepbar li{flex:1;text-align:center;padding:.6em;border-radius:8px;background:#eceae4;color:var(--ms-mute);font-weight:700;font-size:.85em;margin:0;}
.ms-stepbar li::marker{content:none;}
.ms-stepbar li.on{background:var(--color-a);color:#fff;}
.ms-stepbar p{margin-bottom:0 !important;}
.ms-fs{border:0;margin:0;padding:0;}
.ms-fs legend{font-weight:700;color:var(--color-a);font-size:1.15em;margin-bottom:.8em;}
.ms-fs legend small{display:block;font-weight:400;font-size:.75em;color:var(--ms-mute);}
.ms-q{background:#fff;border:1px solid var(--ms-line);border-radius:12px;padding:.9em 1.2em;margin-bottom:1em;}
.ms-q label,.ms-q .ql{display:block;font-weight:700;color:var(--color-a);margin-bottom:.5em;}
.ms-q p{margin-bottom:0 !important;}
.ms-q .req,.ms-q .opt{display:inline-block;font-size:.7em;padding:.1em .6em;border-radius:4px;margin-left:.5em;vertical-align:middle;}
.ms-q .req{background:var(--color-c);color:#fff;}
.ms-q .opt{background:#e5e7eb;color:var(--ms-mute);}
.ms-q input[type=text],.ms-q input[type=tel],.ms-q input[type=email],.ms-q select,.ms-q textarea{width:100%;padding:.8em;border:1px solid #cfd4dc;border-radius:8px;font-size:16px;background:#fff;}
.ms-q textarea{height:7em;}
.ms-q .wpcf7-list-item{display:inline-block;margin:0 .5em .5em 0;}
.ms-q .wpcf7-list-item label{display:inline-flex;align-items:center;gap:.4em;border:1px solid #cfd4dc;border-radius:999px;padding:.45em 1em;cursor:pointer;font-size:.95em;background:#fff;font-weight:400;color:var(--color-d);margin:0;}
.ms-q .wpcf7-list-item label:has(input:checked){border-color:var(--color-c);background:color-mix(in srgb,var(--color-c) 8%,#fff);}
.ms-q .wpcf7-list-item input:checked + span{color:var(--color-c);font-weight:700;}
.ms-q .hint,.ms-form .hint{font-size:.82em;color:var(--ms-mute);margin:.4em 0 0;}
.ms-form .hint.center{text-align:center;}
.ms-q .ms-err{color:var(--color-c);}
.ms-next,.ms-back{display:inline-block;border:0;border-radius:999px;padding:1em 2.4em;font:inherit;font-weight:700;cursor:pointer;}
.ms-next{background:var(--color-e);color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.18);}
.ms-back{background:#eceae4;color:var(--color-d);margin-right:.6em;}
.ms-form .wpcf7-submit{background:var(--color-e) !important;border:0 !important;border-radius:999px !important;padding:1em 2.4em !important;font-weight:700 !important;color:#fff !important;font-size:1em !important;cursor:pointer;}
.ms-form .ms-actions{text-align:center;margin-top:1.5em;}
body:has(.ms-form) .fixedf{display:none;}
