/*
Theme Name: Cocoon Child
Template: cocoon-master
*/

/* === 神明書院 style.css === */

:root {
  --c-bg:#F7F4EF;--c-bg-alt:#EDE9E1;--c-bg-dark:#1A2B3C;
  --c-primary:#1A2B3C;--c-accent:#B8912A;--c-accent-pale:rgba(184,145,42,0.10);
  --c-text:#2D2D2D;--c-text-sub:#6B6B6B;--c-text-inv:#F7F4EF;
  --c-border:#D5CFBF;--c-white:#FFFFFF;
  --f-serif:'Noto Serif JP','Yu Mincho','游明朝','Hiragino Mincho ProN',serif;
  --f-sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Meiryo',sans-serif;
  --fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;
  --fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;
  --sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--sp-24:6rem;
  --max-w:1100px;--max-w-narrow:720px;--gutter:1.25rem;
  --radius-sm:2px;--radius-md:6px;--radius-lg:12px;
  --shadow-sm:0 1px 4px rgba(0,0,0,.07);--shadow-md:0 4px 20px rgba(0,0,0,.10);--shadow-lg:0 8px 40px rgba(0,0,0,.13);
  --ease:cubic-bezier(.4,0,.2,1);--duration:.3s;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%;}
body{font-family:var(--f-serif) !important;font-size:var(--fs-base);font-weight:400;line-height:1.85;color:var(--c-text);background-color:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:color var(--duration) var(--ease),opacity var(--duration) var(--ease);}
ul,ol{list-style:none;}
button{cursor:pointer;border:none;background:transparent;font-family:inherit;color:inherit;}
h1,h2,h3,h4{font-family:var(--f-serif);font-weight:500;line-height:1.55;letter-spacing:.03em;color:var(--c-primary);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);}
.sp-br{display:block;}.pc-br{display:none;}
@media(min-width:768px){.sp-br{display:none;}.pc-br{display:block;}}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85em 1.8em;font-family:var(--f-sans);font-size:var(--fs-base);font-weight:500;letter-spacing:.06em;line-height:1;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration) var(--ease),color var(--duration) var(--ease),border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease);}
.btn-lg{padding:1.1em 2.4em;font-size:var(--fs-md);min-width:220px;}
.btn-primary{background-color:var(--c-primary);color:var(--c-text-inv);border:1.5px solid var(--c-primary);}
.btn-primary:hover,.btn-primary:focus-visible{background-color:#2a3f54;border-color:#2a3f54;transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn-outline{background-color:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary);}
.btn-outline:hover,.btn-outline:focus-visible{background-color:var(--c-primary);color:var(--c-text-inv);transform:translateY(-2px);}
.btn-nav{padding:.55em 1.2em;font-size:var(--fs-sm);background-color:var(--c-primary);color:var(--c-text-inv);border:1.5px solid var(--c-primary);}
.btn-nav:hover{background-color:transparent;color:var(--c-primary);}
.btn-contact{background-color:var(--c-bg);color:var(--c-primary);border:1.5px solid var(--c-bg);}
.btn-contact:hover,.btn-contact:focus-visible{background-color:var(--c-white);border-color:var(--c-white);transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,.20);}

/* プレースホルダー */
.img-placeholder{background-color:var(--c-bg-alt);border:1.5px dashed var(--c-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--c-text-sub);font-size:var(--fs-sm);line-height:1.7;padding:var(--sp-8);}
.img-placeholder--hero{width:100%;min-height:300px;aspect-ratio:3/4;}
@media(min-width:1024px){.img-placeholder--hero{aspect-ratio:auto;min-height:580px;height:100%;}}
.img-placeholder--access{width:100%;aspect-ratio:4/3;}
.img-placeholder--sm{aspect-ratio:16/7;margin-top:var(--sp-4);}
.map-placeholder{width:100%;height:280px;background-color:var(--c-bg-alt);border:1.5px dashed var(--c-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--c-text-sub);font-size:var(--fs-sm);}
.hero-image img,.access-photos img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md);}

/* アニメーション */
.js-fade{opacity:0;transform:translateY(24px);transition:opacity .65s var(--ease),transform .65s var(--ease);}
.js-fade.is-visible{opacity:1;transform:translateY(0);}
.js-fade:nth-child(2){transition-delay:.12s;}
.js-fade:nth-child(3){transition-delay:.24s;}
@media(prefers-reduced-motion:reduce){.js-fade{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}*{animation-duration:.01ms!important;transition-duration:.01ms!important;}}

/* セクション共通 */
.section{padding:var(--sp-16) 0;}
@media(min-width:768px){.section{padding:var(--sp-24) 0;}}
.section-header{text-align:center;margin-bottom:var(--sp-12);}
.section-eyebrow{display:block;font-family:var(--f-sans);font-size:var(--fs-xs);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--c-accent);margin-bottom:var(--sp-3);}
.section-title{font-family:var(--f-serif);font-size:var(--fs-2xl);font-weight:500;color:var(--c-primary);line-height:1.6;}
@media(min-width:768px){.section-title{font-size:var(--fs-3xl);}}
.section-lead{margin-top:var(--sp-5);font-size:var(--fs-md);color:var(--c-text-sub);line-height:1.9;}
.section-header::after{content:'';display:block;width:32px;height:1.5px;background-color:var(--c-accent);margin:var(--sp-5) auto 0;border-radius:1px;}

/* ヘッダー */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease);}
.site-header.is-scrolled{background-color:rgba(247,244,239,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);}
.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);height:72px;}
.site-logo{display:flex;flex-direction:column;line-height:1.15;gap:1px;}
.logo-ja{font-family:var(--f-serif);font-size:var(--fs-xl);font-weight:500;color:var(--c-primary);letter-spacing:.1em;}
.logo-en{font-family:var(--f-sans);font-size:var(--fs-xs);font-weight:300;letter-spacing:.18em;color:var(--c-text-sub);}
.site-nav{display:none;align-items:center;gap:var(--sp-6);}
@media(min-width:1024px){.site-nav{display:flex;}}
.nav-list{display:flex;align-items:center;gap:var(--sp-6);}
.nav-list a{font-size:var(--fs-sm);font-weight:400;color:var(--c-text);letter-spacing:.04em;position:relative;padding-bottom:3px;}
.nav-list a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--duration) var(--ease);}
.nav-list a:hover::after,.nav-list a:focus-visible::after{transform:scaleX(1);}
.hamburger{width:36px;height:36px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:4px;border-radius:var(--radius-md);}
.hamburger span{display:block;width:22px;height:1.5px;background-color:var(--c-primary);transition:transform var(--duration) var(--ease),opacity var(--duration) var(--ease);}
.hamburger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
@media(min-width:1024px){.hamburger{display:none;}}
.mobile-nav-overlay{position:fixed;inset:0;background-color:var(--c-bg);z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--sp-8);opacity:0;visibility:hidden;transition:opacity var(--duration) var(--ease),visibility var(--duration) var(--ease);}
.mobile-nav-overlay.is-open{opacity:1;visibility:visible;}
.mobile-nav{text-align:center;width:100%;max-width:320px;}
.mobile-nav ul{margin-bottom:var(--sp-8);}
.mobile-nav li{border-bottom:1px solid var(--c-border);}
.mobile-nav li:first-child{border-top:1px solid var(--c-border);}
.mobile-nav a{display:block;padding:var(--sp-5) 0;font-family:var(--f-serif);font-size:var(--fs-lg);color:var(--c-primary);letter-spacing:.06em;transition:color var(--duration) var(--ease);}
.mobile-nav a:hover{color:var(--c-accent);}
.btn-mobile-cta{width:100%;}

/* ヒーロー */
.hero{min-height:100svh;padding-top:72px;position:relative;display:flex;flex-direction:column;background-color:var(--c-bg);}
.hero-inner{flex:1;display:grid;grid-template-columns:1fr;max-width:var(--max-w);margin:0 auto;padding:var(--sp-12) var(--gutter);width:100%;gap:var(--sp-10);align-items:center;}
@media(min-width:1024px){.hero-inner{grid-template-columns:55fr 45fr;gap:var(--sp-16);padding:var(--sp-16) var(--gutter);min-height:calc(100svh - 72px);}}
.hero-content{order:2;}.hero-image{order:1;}
@media(min-width:1024px){.hero-content{order:1;}.hero-image{order:2;}}
.hero-badge{display:inline-block;font-size:var(--fs-xs);letter-spacing:.13em;color:var(--c-accent);border:1px solid var(--c-accent);padding:.3em .85em;border-radius:var(--radius-sm);margin-bottom:var(--sp-6);background-color:var(--c-accent-pale);}
.hero-title{margin-bottom:var(--sp-6);}
.hero-title-sub{display:block;font-family:var(--f-serif);font-size:var(--fs-md);font-weight:400;color:var(--c-text-sub);letter-spacing:.04em;margin-bottom:var(--sp-3);}
.hero-title-main{display:block;font-family:var(--f-serif);font-size:clamp(1.6rem,4.5vw,2.5rem);font-weight:500;color:var(--c-primary);line-height:1.6;letter-spacing:.03em;}
.hero-desc{font-size:var(--fs-md);color:var(--c-text-sub);line-height:1.95;margin-bottom:var(--sp-8);}
.hero-cta{margin-bottom:var(--sp-8);}
.hero-trust{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--c-text-sub);letter-spacing:.04em;}
.hero-trust .sep{color:var(--c-border);font-weight:300;}
.hero-scroll{display:none;position:absolute;bottom:var(--sp-8);left:50%;transform:translateX(-50%);flex-direction:column;align-items:center;gap:var(--sp-2);}
@media(min-width:1024px){.hero-scroll{display:flex;}}
.hero-scroll-text{font-size:var(--fs-xs);letter-spacing:.18em;color:var(--c-text-sub);text-transform:uppercase;}
.hero-scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--c-text-sub) 0%,transparent 100%);animation:heroScrollLine 2s ease infinite;transform-origin:top;}
@keyframes heroScrollLine{0%{transform:scaleY(0);opacity:1;transform-origin:top;}50%{transform:scaleY(1);opacity:1;transform-origin:top;}100%{transform:scaleY(1);opacity:0;transform-origin:bottom;}}

/* 強みセクション */
.strengths{background-color:var(--c-white);}
.strengths-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-6);}
@media(min-width:768px){.strengths-grid{grid-template-columns:repeat(3,1fr);}}
.strength-card{position:relative;border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden;background-color:var(--c-white);transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease);}
.strength-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.strength-card::before{content:'';position:absolute;left:0;top:var(--sp-8);bottom:var(--sp-8);width:2px;background:linear-gradient(to bottom,var(--c-accent),transparent);opacity:0;transition:opacity var(--duration) var(--ease);}
.strength-card:hover::before{opacity:1;}
.strength-card-inner{padding:var(--sp-8);}
.strength-num{font-family:var(--f-sans);font-size:var(--fs-xs);font-weight:300;letter-spacing:.2em;color:var(--c-accent);margin-bottom:var(--sp-3);}
.strength-icon{width:40px;height:40px;color:var(--c-accent);margin-bottom:var(--sp-5);}
.strength-title{font-family:var(--f-serif);font-size:var(--fs-lg);font-weight:500;color:var(--c-primary);line-height:1.6;margin-bottom:var(--sp-4);}
.strength-body{font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.95;}

/* おすすめセクション */
.recommended{background-color:var(--c-bg);}
.recommended-inner{max-width:var(--max-w-narrow);margin:0 auto;}
.recommended-list{border-top:1px solid var(--c-border);margin-bottom:var(--sp-8);}
.recommended-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5) 0;border-bottom:1px solid var(--c-border);font-family:var(--f-serif);font-size:var(--fs-lg);color:var(--c-primary);line-height:1.55;letter-spacing:.02em;}
.check-mark{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--c-accent);background-color:var(--c-accent-pale);position:relative;}
.check-mark::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-48%,-55%) rotate(-45deg);width:9px;height:5px;border-left:1.5px solid var(--c-accent);border-bottom:1.5px solid var(--c-accent);}
.recommended-note{padding:var(--sp-6) var(--sp-8);background-color:var(--c-white);border-left:3px solid var(--c-accent);border-radius:0 var(--radius-md) var(--radius-md) 0;}
.recommended-note p{font-size:var(--fs-md);color:var(--c-text-sub);line-height:1.95;}

/* お稽古内容セクション */
.lessons{background-color:var(--c-white);}
.lessons-types{display:grid;grid-template-columns:1fr;gap:var(--sp-6);margin-bottom:var(--sp-12);}
@media(min-width:640px){.lessons-types{grid-template-columns:1fr 1fr;}}
.lesson-type{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);background-color:var(--c-bg);transition:box-shadow var(--duration) var(--ease);}
.lesson-type:hover{box-shadow:var(--shadow-md);}
.lesson-type-header{background-color:var(--c-primary);padding:var(--sp-6) var(--sp-8);}
.lesson-badge{display:inline-block;font-size:var(--fs-xs);letter-spacing:.15em;color:rgba(247,244,239,.7);border:1px solid rgba(247,244,239,.3);padding:.2em .7em;border-radius:var(--radius-sm);margin-bottom:var(--sp-3);}
.lesson-type-header h3{font-family:var(--f-serif);font-size:var(--fs-xl);font-weight:500;color:var(--c-text-inv);line-height:1.5;}
.lesson-type>p{padding:var(--sp-6) var(--sp-8);font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.9;}
.lessons-features{border-top:1px solid var(--c-border);padding-top:var(--sp-12);}
.lessons-features-heading{font-family:var(--f-serif);font-size:var(--fs-xl);font-weight:500;color:var(--c-primary);text-align:center;margin-bottom:var(--sp-8);}
.lessons-features-list{display:grid;grid-template-columns:1fr;gap:var(--sp-6);}
@media(min-width:768px){.lessons-features-list{grid-template-columns:1fr 1fr;}}
.lessons-features-list li{display:flex;align-items:flex-start;gap:var(--sp-4);}
.feature-check{flex-shrink:0;width:20px;height:20px;margin-top:.15em;color:var(--c-accent);}
.lessons-features-list strong{display:block;font-size:var(--fs-md);font-weight:500;color:var(--c-primary);margin-bottom:var(--sp-1);}
.lessons-features-list p{font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.85;}

/* 教室案内セクション */
.access{background-color:var(--c-bg-alt);}
.access-body{display:grid;grid-template-columns:1fr;gap:var(--sp-8);margin-bottom:var(--sp-8);}
@media(min-width:768px){.access-body{grid-template-columns:1fr 1fr;align-items:start;gap:var(--sp-12);}}
.access-dl{background-color:var(--c-white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);}
.access-row{display:grid;grid-template-columns:5.5rem 1fr;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--c-border);align-items:baseline;}
.access-row:last-child{border-bottom:none;}
.access-row dt{font-size:var(--fs-xs);font-weight:500;color:var(--c-text-sub);letter-spacing:.04em;padding-top:.1em;}
.access-row dd{font-size:var(--fs-base);color:var(--c-text);line-height:1.75;}
.access-sub{display:block;font-size:var(--fs-xs);color:var(--c-text-sub);margin-top:var(--sp-1);}

/* 料金セクション */
.pricing{background-color:var(--c-white);}
.pricing-table-wrap{overflow-x:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);margin-bottom:var(--sp-8);}
.pricing-table{width:100%;min-width:480px;border-collapse:collapse;}
.pricing-table caption{display:none;}
.pricing-table th{background-color:var(--c-primary);color:var(--c-text-inv);font-family:var(--f-serif);font-weight:400;font-size:var(--fs-sm);letter-spacing:.06em;padding:var(--sp-4) var(--sp-6);text-align:left;white-space:nowrap;}
.pricing-table td{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--c-border);vertical-align:middle;line-height:1.65;color:var(--c-text);font-size:var(--fs-base);}
.pricing-table tr:last-child td{border-bottom:none;}
.pricing-table tr:nth-child(even) td{background-color:var(--c-bg);}
.td-price{font-family:var(--f-serif);font-size:var(--fs-xl);font-weight:500;color:var(--c-primary);white-space:nowrap;}
.td-unit{font-family:var(--f-sans);font-size:var(--fs-sm);font-weight:400;color:var(--c-text-sub);}
.td-note{display:block;font-size:var(--fs-xs);color:var(--c-text-sub);font-family:var(--f-sans);}
.pricing-notes{display:grid;grid-template-columns:1fr;gap:var(--sp-4);margin-bottom:var(--sp-8);}
@media(min-width:640px){.pricing-notes{grid-template-columns:1fr 1fr;}}
.pricing-note{padding:var(--sp-6);background-color:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-md);}
.pricing-note h3{font-family:var(--f-sans);font-size:var(--fs-md);font-weight:500;color:var(--c-primary);margin-bottom:var(--sp-2);}
.pricing-note p{font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.85;}
.pricing-more{text-align:center;}
.pricing-more p{font-size:var(--fs-sm);color:var(--c-text-sub);margin-bottom:var(--sp-4);}

/* FAQ */
.faq{background-color:var(--c-bg);}
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--c-border);}
.faq-item:first-child{border-top:1px solid var(--c-border);}
.faq-q{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-5);padding:var(--sp-6) 0;cursor:pointer;list-style:none;font-family:var(--f-serif);font-size:var(--fs-md);color:var(--c-primary);line-height:1.6;user-select:none;transition:color var(--duration) var(--ease);}
.faq-q::-webkit-details-marker{display:none;}.faq-q::marker{display:none;}
.faq-q:hover{color:var(--c-accent);}
.faq-icon{order:-1;flex-shrink:0;width:22px;height:22px;border:1px solid var(--c-border);border-radius:50%;position:relative;transition:border-color var(--duration) var(--ease),background-color var(--duration) var(--ease);}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--c-primary);transition:transform var(--duration) var(--ease),opacity var(--duration) var(--ease),background-color var(--duration) var(--ease);}
.faq-icon::before{width:10px;height:1.5px;}.faq-icon::after{width:1.5px;height:10px;}
details[open] .faq-icon{border-color:var(--c-accent);background-color:var(--c-accent-pale);}
details[open] .faq-icon::before,details[open] .faq-icon::after{background-color:var(--c-accent);}
details[open] .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.faq-a{padding-bottom:var(--sp-6);padding-right:calc(22px + var(--sp-5));overflow:hidden;}
.faq-a p{font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.95;}

/* お問い合わせセクション */
.contact{background-color:var(--c-bg-dark);background-image:radial-gradient(ellipse at 20% 80%,rgba(184,145,42,.06) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(184,145,42,.04) 0%,transparent 60%);}
.contact .section-eyebrow{color:rgba(247,244,239,.5);}
.contact .section-title{color:var(--c-text-inv);}
.contact .section-header::after{background-color:rgba(184,145,42,.5);}
.contact-inner{max-width:660px;margin:0 auto;text-align:center;}
.contact-body{font-size:var(--fs-md);color:rgba(247,244,239,.75);line-height:2.1;margin-bottom:var(--sp-8);}
.contact-body strong{color:var(--c-text-inv);font-weight:500;}
.contact-cta{margin-bottom:var(--sp-6);}
.contact-privacy{font-size:var(--fs-xs);color:rgba(247,244,239,.4);letter-spacing:.04em;}

/* フッター */
.site-footer{background-color:#111922;padding:var(--sp-12) 0 var(--sp-8);}
.footer-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);text-align:center;}
.footer-brand{margin-bottom:var(--sp-8);}
.footer-logo-ja{font-family:var(--f-serif);font-size:var(--fs-xl);font-weight:500;color:var(--c-text-inv);letter-spacing:.1em;margin-bottom:var(--sp-1);}
.footer-logo-en{font-size:var(--fs-xs);font-weight:300;letter-spacing:.2em;color:rgba(247,244,239,.4);margin-bottom:var(--sp-3);}
.footer-tagline{font-size:var(--fs-sm);color:rgba(247,244,239,.5);letter-spacing:.04em;}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-8);}
.footer-nav a{font-size:var(--fs-xs);letter-spacing:.06em;color:rgba(247,244,239,.5);transition:color var(--duration) var(--ease);}
.footer-nav a:hover{color:var(--c-text-inv);}
.footer-copy{font-size:var(--fs-xs);color:rgba(247,244,239,.3);letter-spacing:.05em;}

/* アクセシビリティ */
:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px;border-radius:var(--radius-sm);}
@media(forced-colors:active){.btn{border:2px solid ButtonText;}}

/* コンタクトページ */
.contact-page-hero{background-color:var(--c-bg-dark);background-image:radial-gradient(ellipse at 20% 80%,rgba(184,145,42,.06) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(184,145,42,.04) 0%,transparent 60%);padding:calc(72px + var(--sp-16)) 0 var(--sp-12);text-align:center;}
.contact-page-hero .section-eyebrow{color:rgba(247,244,239,.5);}
.contact-page-title{font-family:var(--f-serif);font-size:var(--fs-3xl);font-weight:500;color:var(--c-text-inv);margin-bottom:var(--sp-5);}
.contact-page-lead{font-size:var(--fs-md);color:rgba(247,244,239,.75);line-height:2;}
.contact-page-form{padding:var(--sp-16) 0 var(--sp-24);background-color:var(--c-bg);}
.contact-page-form .container{max-width:640px;}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 textarea{width:100%;padding:.85em 1em;border:1.5px solid var(--c-border);border-radius:var(--radius-md);font-family:var(--f-sans);font-size:var(--fs-base);color:var(--c-text);background-color:var(--c-white);transition:border-color var(--duration) var(--ease);outline:none;}
.wpcf7 input[type=text]:focus,.wpcf7 input[type=email]:focus,.wpcf7 input[type=tel]:focus,.wpcf7 textarea:focus{border-color:var(--c-accent);}
.wpcf7 textarea{min-height:180px;resize:vertical;}
.wpcf7 label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--c-text);margin-bottom:var(--sp-2);}
.wpcf7 .wpcf7-form-control-wrap{display:block;margin-bottom:var(--sp-5);}
.wpcf7 input[type=submit]{display:inline-flex;align-items:center;justify-content:center;padding:1.1em 2.4em;font-family:var(--f-sans);font-size:var(--fs-md);font-weight:500;letter-spacing:.06em;background-color:var(--c-primary);color:var(--c-text-inv);border:1.5px solid var(--c-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration) var(--ease),transform var(--duration) var(--ease);min-width:220px;}
.wpcf7 input[type=submit]:hover{background-color:#2a3f54;transform:translateY(-2px);}
.wpcf7-response-output{margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-md);font-size:var(--fs-sm);border:none!important;}
.wpcf7 .wpcf7-mail-sent-ok{background-color:#eaf5ea;color:#2d6a2d;}
.wpcf7 .wpcf7-validation-errors,.wpcf7 .wpcf7-mail-sent-ng{background-color:#fdf0f0;color:#8b2020;}


/* === COCOON ELEMENT OVERRIDES === */
/* Cocoonネイティブのヘッダー・フッター・ナビを非表示 */
#header-container,
#header-container-in,
.navi,
.navi-in,
.header-logo-link,
#breadcrumb,
.breadcrumb,
.article-header .entry-title,
.article-footer,
.recommended,
#footer.footer-container,
.footer-inner .footer-logo,
.footer-inner .footer-menu,
.admin-panel.apdt-pc-only,
.go-to-top,
.mobile-footer-menu-buttons {
  display: none !important;
}

/* Cocoon #container のパディング/マージンをリセット */
body { padding-top: 0 !important; }
#container { padding-top: 0 !important; }
#content { padding-top: 0 !important; }
.content-in { padding-top: 0 !important; }

/* ページタイトル「Home」を非表示 */
.article-header { display: none !important; }

/* entry-content の余分な padding をリセット */
.entry-content { padding: 0 !important; margin: 0 !important; }
.main { padding: 0 !important; margin: 0 !important; }
#main { max-width: 100% !important; width: 100% !important; }
#content { max-width: 100% !important; }
.content-in { max-width: 100% !important; }

/* 重複したsite-headerを非表示（2番目以降） */
body > .site-header ~ .site-header { display: none !important; }
body > .site-header ~ .mobile-nav-overlay { display: none !important; }

/* Cocoonフッターも非表示 */
#footer { display: none !important; }

/* カスタムサイトフッターを正しく表示 */
.site-footer { display: block !important; }
/* === END COCOON OVERRIDES === */

/* === LAYOUT FIX: Remove blank top space === */
/* Cocoon wraps everything in #container with top margin for its header */
#container {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* #content holds the main article */
#content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* The article post wrapper */
.content-in.wrap {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* For logged-in users with admin bar */
body.admin-bar #container {
  margin-top: 0 !important;
}
/* Remove Cocoon's default body top padding for sticky header */
body {
  margin-top: 0 !important;
}
/* Recommended widget (also hidden but may have residual space) */
.recommended { display: none !important; }
/* === END LAYOUT FIX === */

/* === HERO SPACING FIX === */
/* Remove extra padding from hero-inner (was 64px - already accounted for in .hero) */
.hero-inner {
  padding-top: 0 !important;
}
/* Remove Cocoon article wrapper top margin */
#post-12,
.article.hentry {
  margin-top: 0 !important;
}
/* Hero only needs enough top padding for the fixed header */
.hero {
  padding-top: 80px !important;
}
/* For admin bar users (logged in) */
body.admin-bar .hero {
  padding-top: 80px !important;
}
/* Also fix sidebar area */
#sidebar { display: none !important; }
/* Remove Cocoon default article padding */
.article { padding: 0 !important; }
/* === END HERO SPACING FIX === */

/* === TOC & JS-FADE FIX === */
/* Cocoon自動目次を非表示 */
.toc, #toc, .table-of-contents { display: none !important; }

/* js-fadeを強制的に表示（IntersectionObserver未起動時のフォールバック） */
.js-fade {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}
.js-fade.is-visible {
  opacity: 1 !important;
  transform: none !important;
}
/* === END TOC & JS-FADE FIX === */

/* === RECOMMENDED SECTION FIX === */
/* Cocoon has a .recommended class for its own widget - conflict with our #recommended section */
/* Override: show our custom recommended section */
section#recommended,
section.recommended {
  display: block !important;
}
/* But hide Cocoon's .recommended widget (it's a div, not a section) */
div.recommended.cf {
  display: none !important;
}
/* Also fix the Cocoon left side border on content area */
#content {
  border: none !important;
}
/* Remove grid lines / dots from Cocoon background */
body {
  background-image: none !important;
}
/* === END RECOMMENDED FIX === */

/* === FULL WIDTH FIX === */
/* Cocoon sets margin-left on #container for its sidebar - override to full width */
#container {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
#content {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.content-in {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
#main {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  float: none !important;
}
.article {
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.entry-content {
  max-width: 100% !important;
}
/* === END FULL WIDTH FIX === */

/* === HERO TEXT WRAP FIX === */
/* The hero title was wrapping - hero-inner needs max-width constraint */
/* The container is now 100% width which is correct for sections */
/* But hero-content text was going too wide */
.hero-title-main {
  white-space: nowrap;
}
@media (max-width: 600px) {
  .hero-title-main { white-space: normal; }
}

/* Fix the left border/line - Cocoon adds a border to the article */
.article, #post-12, .hentry {
  border: none !important;
  box-shadow: none !important;
}

/* Cocoon adds a border-left to #main on some layouts */
#main {
  border: none !important;
}

/* Fix entry-content left border */
.entry-content {
  border: none !important;
}
/* === END HERO TEXT WRAP FIX === */

/* === HERO LAYOUT FIX === */
/* Remove white-space nowrap - it breaks layout */
.hero-title-main {
  white-space: normal !important;
}
/* Fix hero-inner to be proper two-column */
.hero-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 3rem !important;
  padding: 0 2rem !important;
}
.hero-content {
  flex: 1 1 55% !important;
  min-width: 0 !important;
}
.hero-image {
  flex: 1 1 40% !important;
  min-width: 0 !important;
  max-width: 45% !important;
}
/* Fix img-placeholder to not overflow */
.img-placeholder--hero {
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 4/5 !important;
  height: auto !important;
}
/* === END HERO LAYOUT FIX === */

/* === CONTACT PAGE FIXES === */
.page-id-18 .entry-content { background: none !important; padding: 0 !important; max-width: 100% !important; }
.page-id-18 #content, .page-id-18 .article { background: none !important; }
.page-id-18 .entry-title, .page-id-18 .article-header { display: none !important; }
.contact-page-hero { background: var(--c-bg-dark) !important; padding: 120px 0 80px !important; width: 100% !important; }
.contact-page-hero .container { max-width: 800px; margin: 0 auto; padding: 0 2rem; text-align: center; }
.contact-page-title { font-size: clamp(1.75rem, 4vw, 2.5rem); color: #fff !important; margin-bottom: 1.5rem; }
.contact-page-lead { color: rgba(255,255,255,0.8); line-height: 1.9; font-size: 1rem; }
.contact-page-form { background: var(--c-bg) !important; padding: 80px 0 !important; width: 100% !important; }
.contact-page-form .container { max-width: 720px; margin: 0 auto; padding: 0 2rem; }
.page-id-18 .wpcf7 input[type="text"], .page-id-18 .wpcf7 input[type="email"], .page-id-18 .wpcf7 textarea, .page-id-18 .wpcf7 select { width: 100%; padding: .875rem 1rem; border: 1.5px solid var(--c-border); border-radius: 6px; font-size: 1rem; background: #fff; }
.page-id-18 .wpcf7 input[type="submit"] { display: inline-block; padding: 1rem 3rem; background: var(--c-primary); color: #fff; border: none; border-radius: 6px; font-size: 1rem; cursor: pointer; }
.section-eyebrow { display: block; font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 1rem; }
.page-id-18 .section-eyebrow { color: var(--c-accent) !important; }
/* === END CONTACT PAGE FIXES === */


/* === CONTACT PAGE #main FIX === */
.page-id-18 #main { background: transparent !important; box-shadow: none !important; border: none !important; }
.page-id-18 #main::before, .page-id-18 #main::after { display: none !important; }
.page-id-18 .content-in { background: transparent !important; }
.page-id-18 .contact-page-hero { margin: 0 !important; border-radius: 0 !important; }
.page-id-18 .contact-page-form { margin: 0 !important; }
/* === END CONTACT PAGE #main FIX === */


/* === CONTAINER GRID BG FIX === */
.contact-page-hero .container, .contact-page-form .container { background: transparent !important; background-image: none !important; }
/* Also fix on homepage sections */
.section .container, .hero-inner, .strengths .container, .recommended .container, .lessons .container, .access .container, .pricing .container, .faq .container, .contact .container { background: transparent !important; background-image: none !important; }
/* Fix Cocoon outer #container grid */
#container.container { background-color: transparent !important; background-image: none !important; }
/* === END CONTAINER GRID BG FIX === */


/* === SECTION TITLE REDESIGN: Cocoon h2 override === */
/* Remove Cocoon capsule/pill style from all section titles */
h2.section-title {
    background: none !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 0 .25rem !important;
    margin-bottom: 0 !important;
    font-family: var(--f-serif) !important;
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    font-weight: 400 !important;
    color: var(--c-primary) !important;
    text-align: center !important;
    letter-spacing: .05em !important;
    line-height: 1.6 !important;
    display: block !important;
    position: relative !important;
}
h2.section-title::before, h2.section-title::after { display: none !important; }
/* === END SECTION TITLE REDESIGN === */




/* === FAQ レイアウト修正 ===
   Cocoon が .faq-item に display:flex を適用するため質問が圧縮される問題を修正 */
details.faq-item {
    display: block !important;
}


/* ============================================
   お稽古の特長 — リデザイン
   ============================================ */

/* wpautop が挿入する空の <p> を非表示 */
.lessons-features-list p:empty {
    display: none !important;
}

/* セクションコンテナ */
.lessons-features {
    border-top: none !important;
    background: rgba(247,244,239,.45);
    border-radius: 8px;
    padding: var(--sp-10) var(--sp-8) !important;
    margin-top: var(--sp-10);
}

/* 見出し */
.lessons-features-heading {
    font-family: var(--f-serif) !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
    color: var(--c-primary) !important;
    text-align: center !important;
    letter-spacing: .1em !important;
    margin-bottom: var(--sp-8) !important;
    padding-bottom: var(--sp-4) !important;
    position: relative !important;
}
.lessons-features-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2rem;
    height: 1px;
    background: var(--c-accent);
}

/* 2カラムグリッド */
.lessons-features-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--sp-5) !important;
}

/* 各カード */
.lessons-features-list li {
    background: #fff;
    border: 1px solid var(--c-border);
    border-top: 2.5px solid var(--c-accent) !important;
    border-radius: 4px;
    padding: var(--sp-5) !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: var(--sp-3) !important;
    box-shadow: 0 2px 10px rgba(26,43,60,.05);
}

/* チェックアイコン — ゴールド円形バッジ */
.feature-check {
    flex-shrink: 0 !important;
    width: 28px !important;
    height: 28px !important;
    margin-top: .1em !important;
    background: var(--c-accent) !important;
    border-radius: 50% !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.feature-check svg {
    width: 13px !important;
    height: 13px !important;
}

/* 特長タイトル */
.lessons-features-list strong {
    font-family: var(--f-serif) !important;
    font-size: var(--fs-md) !important;
    font-weight: 600 !important;
    color: var(--c-primary) !important;
    display: block !important;
    margin-bottom: var(--sp-2) !important;
    letter-spacing: .02em !important;
}

/* 説明文 */
.lessons-features-list p {
    font-size: var(--fs-sm) !important;
    color: var(--c-text-sub) !important;
    line-height: 1.9 !important;
    margin: 0 !important;
}

/* モバイル: 1カラム */
@media (max-width: 640px) {
    .lessons-features-list {
        grid-template-columns: 1fr !important;
    }
    .lessons-features {
        padding: var(--sp-8) var(--sp-5) !important;
    }
}


/* ============================================
   選ばれる理由カード — h3 Cocoon修正 + リデザイン
   ============================================ */

/* Cocoon h3 カプセル・フォント完全除去 */
h3.strength-title::before,
h3.strength-title::after {
    display: none !important;
    content: '' !important;
    background: none !important;
}
h3.strength-title {
    padding: 0 !important;
    margin: 0 0 var(--sp-4) !important;
    font-family: var(--f-serif) !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    color: var(--c-primary) !important;
    line-height: 1.7 !important;
    letter-spacing: .02em !important;
    background: none !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* アイコン — ゴールドの円形バッジに */
.strength-icon {
    width: 52px !important;
    height: 52px !important;
    background: rgba(184,145,42,.1) !important;
    border-radius: 50% !important;
    padding: 13px !important;
    box-sizing: border-box !important;
    color: var(--c-accent) !important;
    margin-bottom: var(--sp-4) !important;
}

/* タイトル上の区切り線でアイコンとタイトルをつなぐ */
h3.strength-title {
    border-top: 1px solid rgba(213,207,191,.7) !important;
    padding-top: var(--sp-5) !important;
    margin-top: var(--sp-1) !important;
}

/* カード番号スタイルを整える */
.strength-num {
    font-size: .7rem !important;
    letter-spacing: .25em !important;
    color: var(--c-accent) !important;
    margin-bottom: var(--sp-4) !important;
    opacity: .8;
}

/* SCROLLインジケーター非表示 */
.hero-scroll { display: none !important; }

/* recommended-note p の余分な margin-bottom を除去 */
.recommended-note p { margin-bottom: 0 !important; }


/* ============================================================
   スマートフォン最適化 — max-width: 767px
   ============================================================ */
@media (max-width: 767px) {

    /* ---- 基本レイアウト ---- */
    .section {
        padding: var(--sp-12) 0;
    }
    .section-header {
        margin-bottom: var(--sp-8);
    }
    h2.section-title {
        font-size: clamp(1.3rem, 5vw, 1.75rem) !important;
    }
    .section-lead {
        font-size: var(--fs-base) !important;
    }

    /* ---- ヒーローセクション ---- */
    .hero-inner {
        padding: var(--sp-8) var(--gutter) var(--sp-10);
        gap: var(--sp-6);
    }
    /* モバイルは画像を横長に変更（縦長だと大きすぎる） */
    .img-placeholder--hero {
        aspect-ratio: 4 / 3;
        min-height: 180px;
    }
    .hero-title-main {
        font-size: clamp(1.5rem, 6vw, 2rem);
    }
    /* CTAボタン全幅 */
    .hero-cta {
        margin-bottom: var(--sp-6);
    }
    .hero-cta .btn,
    .hero-cta .btn-lg {
        width: 100%;
        max-width: 100%;
    }

    /* ---- 選ばれる理由 ---- */
    .strength-card-inner {
        padding: var(--sp-6) var(--sp-5);
    }
    h3.strength-title {
        font-size: 1rem !important;
        line-height: 1.65 !important;
    }
    .strength-body {
        font-size: var(--fs-sm) !important;
    }

    /* ---- こんなお子さまに ---- */
    .recommended-note {
        padding: var(--sp-5) var(--sp-5) !important;
    }
    .recommended-note p {
        font-size: var(--fs-base) !important;
    }

    /* ---- お稽古内容 ---- */
    .lessons-types {
        grid-template-columns: 1fr;
    }
    .lesson-type {
        padding: var(--sp-6);
    }
    .lessons-features {
        padding: var(--sp-8) var(--sp-5) !important;
    }
    .lessons-features-list {
        grid-template-columns: 1fr !important;
    }

    /* ---- 教室案内 ---- */
    .access-body {
        gap: var(--sp-6);
    }
    .access-info-table th,
    .access-info-table td {
        padding: var(--sp-3) var(--sp-2);
        font-size: var(--fs-sm);
        display: block;
        width: 100%;
    }
    .access-info-table tr {
        display: block;
        border-bottom: 1px solid var(--c-border);
        padding: var(--sp-3) 0;
    }
    .access-info-table th {
        border: none;
        padding-bottom: var(--sp-1);
        font-size: var(--fs-xs);
        letter-spacing: .06em;
        color: var(--c-accent);
    }
    .access-info-table td {
        border: none;
        padding-top: 0;
    }

    /* ---- 料金 ---- */
    .pricing-table-wrap {
        -webkit-overflow-scrolling: touch;
    }
    .pricing-notes {
        grid-template-columns: 1fr;
    }
    .pricing-note {
        padding: var(--sp-5);
    }

    /* ---- よくある質問 ---- */
    .faq-q {
        padding: var(--sp-4) 0;
        font-size: var(--fs-base) !important;
        gap: var(--sp-3) !important;
    }
    .faq-a {
        font-size: var(--fs-sm) !important;
    }

    /* ---- お問い合わせページ ---- */
    .contact-page-hero .container {
        padding-top: var(--sp-8);
        padding-bottom: var(--sp-8);
    }
    .contact-page-lead br {
        display: none;
    }
    /* CF7フォーム全幅 */
    .wpcf7-form-control-wrap,
    .wpcf7-text,
    .wpcf7-email,
    .wpcf7-textarea,
    .wpcf7-submit {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ---- お問い合わせページ ---- */
    .contact-page-form {
        padding: var(--sp-10) 0 !important;
    }
    .contact-page-hero {
        padding-top: var(--sp-8) !important;
        padding-bottom: var(--sp-8) !important;
    }
    .contact-page-lead {
        font-size: var(--fs-base) !important;
    }
    .contact-page-lead br {
        display: none;
    }
    .wpcf7-form-control-wrap {
        display: block !important;
    }
    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 textarea,
    .wpcf7 input[type="submit"] {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

        /* ---- フッター ---- */
    .footer-nav {
        gap: var(--sp-2) var(--sp-4);
    }
    .footer-nav a {
        font-size: var(--fs-xs);
    }
}

/* ---- 超小型画面 (320px) ---- */
@media (max-width: 374px) {
    :root {
        --gutter: 1rem;
    }
    .section {
        padding: var(--sp-10) 0;
    }
    .hero-title-main {
        font-size: 1.4rem;
    }
}


/* ============================================
   Contact セクション — タイトル色修正 + 整理
   ============================================ */

/* 濃紺背景ではタイトルを白に（h2 override が上書きしている問題を修正） */
.contact h2.section-title,
.contact .section-title {
    color: var(--c-text-inv) !important;
    font-size: clamp(1.3rem, 3vw, 1.875rem) !important;
}
.contact h2.section-title::before,
.contact h2.section-title::after,
.contact .section-title::before,
.contact .section-title::after {
    display: none !important;
}

/* セクション全体の余白を適切に */
.contact .section-header {
    margin-bottom: var(--sp-6);
}

/* ボディテキストの余計な改行をなくす */
.contact-body {
    line-height: 2 !important;
    margin-bottom: var(--sp-8) !important;
    font-size: var(--fs-base) !important;
}


/* ボタンをよりすっきり */
.contact-cta {
    margin-bottom: var(--sp-6);
}
.btn-contact {
    min-width: 200px;
    font-size: var(--fs-base) !important;
    padding: 0.9em 2.4em !important;
    letter-spacing: .1em;
}

/* プライバシーノートを小さく */
.contact-privacy {
    font-size: var(--fs-xs) !important;
    opacity: .55 !important;
}


/* ---- プライバシーポリシーリンク (フッター) ---- */
.shinmei-footer-privacy {
    text-align: center;
    padding: 0 0 1.25rem;
    font-size: 0.7rem;
    letter-spacing: .06em;
}
.shinmei-footer-privacy a {
    color: rgba(255,255,255,.35);
    text-decoration: none;
    transition: color .2s;
}
.shinmei-footer-privacy a:hover {
    color: rgba(255,255,255,.65);
    text-decoration: underline;
}

/* ---- プライバシーポリシーページ ---- */
.privacy-policy-page h1 {
    font-size: clamp(1.4rem, 3vw, 1.75rem);
    border-bottom: 2px solid var(--c-accent);
    padding-bottom: .5rem;
    margin-bottom: 2rem;
    color: var(--c-primary);
}
.privacy-policy-page h2 {
    background: none !important;
    border: none !important;
    border-left: 3px solid var(--c-accent) !important;
    padding: .35rem 0 .35rem .75rem !important;
    margin-top: 2.5rem !important;
    font-size: 1.1rem !important;
    color: var(--c-primary) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.privacy-policy-page h2::before,
.privacy-policy-page h2::after { display: none !important; }
.privacy-policy-page ul {
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}
.privacy-policy-page a { color: var(--c-accent); }

/* ---- 全体フォント統一 (Noto Serif JP) ---- */
body,p,li,a,span,div,
nav,button,input,textarea,select,label,
.btn,.btn-contact,.btn-lg,
.site-nav a,.mobile-nav a,
.footer-nav a,.footer-copy,
.strength-body,.faq-q,.faq-a,
.lesson-item,.access-body,
.contact-body,.section-eyebrow {
  font-family: var(--f-serif) !important;
}

/* ---- 教室案内 2教室レイアウト ---- */
.access-body {
  display: flex;
  flex-direction: column;
  gap: var(--sp-8);
}
.access-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-8);
  align-items: start;
}
.access-classroom {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: var(--sp-8);
}
.access-classroom-name {
  font-family: var(--f-serif) !important;
  font-size: var(--fs-lg) !important;
  font-weight: 600 !important;
  color: var(--c-primary) !important;
  border-bottom: 2px solid var(--c-accent) !important;
  padding-bottom: var(--sp-3) !important;
  margin-bottom: var(--sp-6) !important;
  background: none !important;
  border-left: none !important;
  border-radius: 0 !important;
}
.access-classroom-name::before,
.access-classroom-name::after { display: none !important; }
.access-rows { display: flex; flex-direction: column; gap: var(--sp-5); }
.access-row { display: flex; flex-direction: column; gap: var(--sp-2); }
.access-label {
  font-size: var(--fs-xs);
  color: var(--c-accent);
  letter-spacing: .1em;
  font-weight: 600;
}
.access-val {
  font-size: var(--fs-base);
  color: var(--c-primary);
  line-height: 1.7;
}
.access-schedule {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.access-schedule li {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
}
.access-day {
  min-width: 3em;
  font-weight: 600;
  color: var(--c-primary);
}
.access-time {
  color: var(--c-text-sub);
}
@media (max-width: 767px) {
  .access-info { grid-template-columns: 1fr; gap: var(--sp-6); }
  .access-classroom { padding: var(--sp-6); }
}

/* ---- 教室案内 地図・フッター ---- */
.access-map {
  margin-top: var(--sp-6);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--c-border);
}
.access-map iframe {
  display: block;
  width: 100%;
  height: 260px;
  border: 0;
}
.access-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-5);
  padding-top: var(--sp-8);
  border-top: 1px solid var(--c-border);
  text-align: center;
}
.access-note {
  font-size: var(--fs-sm);
  color: var(--c-text-sub);
  margin: 0;
}
.access-schedule-btn {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  padding: .75em 2em;
  border: 1.5px solid var(--c-accent);
  border-radius: 2em;
  color: var(--c-accent) !important;
  font-size: var(--fs-base);
  letter-spacing: .05em;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.access-schedule-btn:hover {
  background: var(--c-accent);
  color: #fff !important;
}
@media (max-width: 767px) {
  .access-footer { grid-column: 1; }
  .access-map iframe { height: 200px; }
}

/* ======================================
   お稽古日程ページ (page-id-48)
====================================== */

/* ページタイトル H1 */
.page-id-48 .article-header {
  display: block !important;
  text-align: center;
  padding: var(--sp-10) 0 var(--sp-6);
}
.page-id-48 .entry-title {
  display: block !important;
  font-family: var(--f-serif) !important;
  font-size: var(--fs-2xl) !important;
  font-weight: 600 !important;
  color: var(--c-primary) !important;
  text-align: center !important;
  border-bottom: 2px solid var(--c-accent) !important;
  padding-bottom: var(--sp-4) !important;
  margin-bottom: var(--sp-8) !important;
  background: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.page-id-48 .entry-title::before,
.page-id-48 .entry-title::after { display: none !important; }

/* イントロ文 */
.schedule-intro {
  text-align: center;
  color: var(--c-text-sub);
  font-family: var(--f-serif);
  margin-bottom: var(--sp-10);
  line-height: 1.9;
}

/* 2カラムレイアウト */
.schedule-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-8);
  align-items: start;
}

/* 教室カード */
.schedule-classroom {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: var(--sp-8);
}

/* 教室名 見出し */
.schedule-classroom-name {
  font-family: var(--f-serif) !important;
  font-size: var(--fs-lg) !important;
  font-weight: 600 !important;
  color: var(--c-primary) !important;
  border-bottom: 2px solid var(--c-accent) !important;
  padding-bottom: var(--sp-3) !important;
  margin-bottom: var(--sp-6) !important;
  background: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.schedule-classroom-name::before,
.schedule-classroom-name::after { display: none !important; }

/* カレンダー画像 */
.schedule-calendar {
  margin-bottom: var(--sp-6);
  display: flex;
  justify-content: center;
}
.schedule-calendar img {
  display: block;
  max-width: 380px;
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--c-border);
}

/* 時間帯テキスト */
.schedule-time {
  font-family: var(--f-serif);
  font-size: var(--fs-sm);
  color: var(--c-text);
  line-height: 2;
}

/* モバイル: 縦積み */
@media (max-width: 767px) {
  .schedule-body { grid-template-columns: 1fr; }
  .schedule-classroom { padding: var(--sp-6); }
}
/* 日付・メタ情報を非表示 */
.page-id-48 .post-date,
.page-id-48 .post-update,
.page-id-48 .article-meta,
.page-id-48 .author-info,
.page-id-48 .cat-label { display: none !important; }


/* ======================================
   指導者紹介 (page-id-33) / お稽古内容 (page-id-192)
   共通スタイル
====================================== */

/* ページタイトル H1 表示 */
.page-id-33 .article-header,
.page-id-192 .article-header {
  display: block !important;
  text-align: center;
  padding: var(--sp-10) 0 var(--sp-6);
}
.page-id-33 .entry-title,
.page-id-192 .entry-title {
  display: block !important;
  font-family: var(--f-serif) !important;
  font-size: var(--fs-2xl) !important;
  font-weight: 600 !important;
  color: var(--c-primary) !important;
  text-align: center !important;
  border-bottom: 2px solid var(--c-accent) !important;
  padding-bottom: var(--sp-4) !important;
  margin-bottom: var(--sp-8) !important;
  background: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.page-id-33 .entry-title::before,.page-id-33 .entry-title::after,
.page-id-192 .entry-title::before,.page-id-192 .entry-title::after { display: none !important; }

/* 日付・メタ非表示 */
.page-id-33 .post-date,.page-id-33 .post-update,
.page-id-192 .post-date,.page-id-192 .post-update { display: none !important; }

/* 本文フォント統一 */
.page-id-33 .entry-content,
.page-id-192 .entry-content {
  font-family: var(--f-serif) !important;
  color: var(--c-text);
  line-height: 2;
  font-size: var(--fs-base);
}

/* H2 / H3 ：Cocoonのカプセルを除去してアクセントラインに */
.page-id-33 .entry-content h2,
.page-id-33 .entry-content h3,
.page-id-192 .entry-content h2,
.page-id-192 .entry-content h3 {
  font-family: var(--f-serif) !important;
  font-size: var(--fs-xl) !important;
  font-weight: 600 !important;
  color: var(--c-primary) !important;
  border-bottom: 2px solid var(--c-accent) !important;
  border-left: none !important;
  border-top: none !important;
  border-right: none !important;
  padding: 0 0 var(--sp-3) 0 !important;
  margin-top: var(--sp-12) !important;
  margin-bottom: var(--sp-6) !important;
  background: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.page-id-33 .entry-content h2::before,.page-id-33 .entry-content h2::after,
.page-id-33 .entry-content h3::before,.page-id-33 .entry-content h3::after,
.page-id-192 .entry-content h2::before,.page-id-192 .entry-content h2::after,
.page-id-192 .entry-content h3::before,.page-id-192 .entry-content h3::after { display: none !important; }

/* ======================================
   指導者紹介 固有スタイル
====================================== */

/* OLリスト（大切にしていること）→ 箇条書き記号を非表示にしてカード風に */
.page-id-33 .entry-content .wp-block-list {
  list-style: none !important;
  padding-left: 0 !important;
  margin-bottom: var(--sp-6) !important;
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: var(--sp-6) var(--sp-8) !important;
}
.page-id-33 .entry-content .wp-block-list li {
  font-family: var(--f-serif);
  line-height: 2;
}
.page-id-33 .entry-content .wp-block-list li strong {
  display: block;
  font-size: var(--fs-lg);
  color: var(--c-primary);
  margin-bottom: var(--sp-2);
}
/* marker-under をアクセントカラーに */
.page-id-33 .entry-content .marker-under {
  background: linear-gradient(transparent 60%, rgba(196,160,80,0.3) 60%) !important;
  text-decoration: none !important;
}

/* 指導者プロフィールカード */
.page-id-33 .entry-content .wp-block-group {
  background: var(--c-white) !important;
  border: 1px solid var(--c-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: var(--sp-8) !important;
  margin-bottom: var(--sp-6) !important;
  font-family: var(--f-serif) !important;
  align-items: flex-start !important;
  flex-direction: column !important;
}
.page-id-33 .entry-content .wp-block-group p {
  font-family: var(--f-serif) !important;
  color: var(--c-text) !important;
  margin: 0 !important;
  line-height: 2 !important;
}
.page-id-33 .entry-content .wp-block-group .fz-20px {
  font-size: var(--fs-xl) !important;
  color: var(--c-primary) !important;
}
.page-id-33 .entry-content .bold-red {
  color: var(--c-accent) !important;
}

/* ======================================
   お稽古内容 固有スタイル
====================================== */
.page-id-192 .entry-content p {
  font-family: var(--f-serif) !important;
  line-height: 2;
  color: var(--c-text);
}
.page-id-192 .entry-content hr {
  border-color: var(--c-border);
  margin: var(--sp-10) 0;
}

/* 指導者紹介・お稽古内容 余白調整 */
.page-id-33 .article-body,
.page-id-192 .article-body {
  padding-top: 0 !important;
}
.page-id-33 .entry-content > *:first-child,
.page-id-192 .entry-content > *:first-child {
  margin-top: 0 !important;
}
/* marker-under をサイトアクセントカラーに統一 */
.page-id-192 .entry-content .marker-under,
.page-id-192 .entry-content mark {
  background: linear-gradient(transparent 60%, rgba(196,160,80,0.3) 60%) !important;
  color: inherit !important;
}
/* 空のpタグの余白を抑制 */
.page-id-33 .entry-content > p:empty,
.page-id-192 .entry-content > p:empty {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}
