:root{
  --cream:#FBF5F0;--blush:#F8E9EE;--blush-2:#F2DBE3;--white:#FFFCFA;
  --ink:#493742;--ink-soft:#7C6873;
  --plum:#7C4A63;--plum-deep:#5A3348;--plum-rich:#48283A;
  --rose:#C67E97;--rose-soft:#E6B3C4;--gold:#C0A15C;
  --line:rgba(73,55,66,.14);--maxw:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New",sans-serif;color:var(--ink);background:var(--cream);line-height:1.9;font-weight:400;-webkit-font-smoothing:antialiased;letter-spacing:.02em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.serif{font-family:"Zen Old Mincho",serif}
.latin{font-family:"Marcellus",serif;letter-spacing:.04em}
.eyebrow{font-family:"Marcellus",serif;font-size:.72rem;letter-spacing:.32em;color:var(--rose);text-transform:uppercase;display:inline-block;margin-bottom:1.1rem}
.eyebrow.on-dark{color:var(--rose-soft)}
.pad{padding:110px 0}
.lede{font-size:1.02rem;color:var(--ink-soft);line-height:2.1}
.lede.on-dark{color:rgba(243,231,236,.78)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font-weight:500;font-size:1rem;letter-spacing:.08em;padding:16px 34px;border-radius:999px;background:var(--plum);color:#FCF4F7;border:1px solid var(--plum);transition:background .25s,transform .25s,box-shadow .25s;box-shadow:0 6px 20px rgba(124,74,99,.18)}
.btn:hover{background:var(--plum-deep);transform:translateY(-2px);box-shadow:0 10px 26px rgba(124,74,99,.26)}
.btn.ghost{background:transparent;color:var(--plum);border-color:rgba(124,74,99,.4);box-shadow:none}
.btn.line{background:#3FA76C;border-color:#3FA76C;color:#fff;box-shadow:0 6px 20px rgba(63,167,108,.3)}
.btn.line:hover{background:#369160;border-color:#369160}
.btn.line.on-dark{background:#3FA76C;border-color:#3FA76C;color:#fff}
.btn.line.on-dark:hover{background:#48b578;border-color:#48b578}
.btn.btn-school{background:var(--plum-rich);border-color:var(--plum-rich);color:#FCF4F7;box-shadow:0 6px 20px rgba(72,40,58,.25)}
.btn.btn-school:hover{background:#5A3348;border-color:#5A3348}
.btn.btn-salon{background:var(--rose);border-color:var(--rose);color:#fff;box-shadow:0 6px 20px rgba(198,126,151,.3)}
.btn.btn-salon:hover{background:#b96f89;border-color:#b96f89}
.btn.ghost:hover{background:rgba(124,74,99,.06)}
.btn.ghost.on-dark{color:#FCF4F7;border-color:rgba(252,244,247,.45)}
.btn.ghost.on-dark:hover{background:rgba(252,244,247,.08)}
.btn:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.text-link{display:inline-block;margin-top:22px;color:var(--plum);font-weight:500;font-size:.94rem;letter-spacing:.06em;border-bottom:1px solid var(--rose);padding-bottom:3px}
.text-link:hover{color:var(--plum-deep)}

/* nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px 32px;transition:background .3s,padding .3s,box-shadow .3s}
header.nav.scrolled{background:rgba(251,245,240,.92);padding-top:12px;padding-bottom:12px;backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.nav .brand{font-family:"Marcellus",serif;font-size:1.3rem;letter-spacing:.24em;color:var(--plum)}
.nav .brand small{display:block;font-size:.48rem;letter-spacing:.32em;color:var(--rose);margin-top:2px}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{color:var(--ink);font-size:.87rem;letter-spacing:.1em;opacity:.82;transition:opacity .2s}
.nav-links a:hover,.nav-links a.on{opacity:1;color:var(--plum)}
.nav-cta{font-weight:500;font-size:.85rem;padding:9px 20px;border:1px solid #3FA76C;border-radius:999px;color:#fff;background:#3FA76C}
.nav-cta:hover{background:#369160;border-color:#369160;color:#fff!important}
.nav-toggle{display:none}

/* nav over dark hero (home top) */
header.nav.over-dark:not(.scrolled) .brand{color:#F6F0E8}
header.nav.over-dark:not(.scrolled) .brand small{color:var(--rose-soft)}
header.nav.over-dark:not(.scrolled) .nav-links a{color:#F6F0E8}
header.nav.over-dark:not(.scrolled) .nav-cta{color:#fff;border-color:#3FA76C;background:#3FA76C}
header.nav.over-dark:not(.scrolled) .nav-cta:hover{background:#369160}
header.nav.over-dark:not(.scrolled) .nav-toggle{color:#F6F0E8}

/* brand logo images */
.nav .brand{display:flex;align-items:center;line-height:0}
.nav .brand img{height:38px;width:auto;display:block}
.nav .brand .logo-l{display:none}
header.nav.over-dark:not(.scrolled) .logo-d{display:none}
header.nav.over-dark:not(.scrolled) .logo-l{display:block}
.foot-brand .logo-foot{height:76px;width:auto;display:block;margin-bottom:16px}

/* ===== HOME HERO (bright, cross-fading machine background) ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:linear-gradient(160deg,#FDF6F1,#F2DBE3)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hslide{position:absolute;inset:0;opacity:0;animation:heroFade 24s infinite}
.hslide.s1{background:linear-gradient(100deg,rgba(251,245,240,.94) 0%,rgba(251,245,240,.74) 40%,rgba(251,245,240,.42) 64%,rgba(248,233,238,.2) 100%),url('/assets/hero-1.webp') center/cover;animation-delay:0s}
.hslide.s2{background:linear-gradient(100deg,rgba(251,245,240,.94) 0%,rgba(251,245,240,.74) 40%,rgba(251,245,240,.42) 64%,rgba(248,233,238,.2) 100%),url('/assets/hero-2.webp') center/cover;animation-delay:8s}
.hslide.s3{background:linear-gradient(100deg,rgba(251,245,240,.94) 0%,rgba(251,245,240,.74) 40%,rgba(251,245,240,.42) 64%,rgba(248,233,238,.2) 100%),url('/assets/hero-3.webp') center/cover;animation-delay:16s}
@keyframes heroFade{0%{opacity:0}4%{opacity:1}30%{opacity:1}36%{opacity:0}100%{opacity:0}}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(251,245,240,.82) 0%,rgba(251,245,240,.38) 9%,transparent 17%),linear-gradient(90deg,rgba(251,245,240,.55) 0%,transparent 48%),linear-gradient(0deg,rgba(251,245,240,.35),transparent 45%)}
.hero-content{position:relative;z-index:2;color:var(--ink);max-width:640px}
.hero-content h1{font-family:"Marcellus",serif;color:var(--plum);font-size:clamp(3.6rem,11vw,7.5rem);line-height:.92;letter-spacing:.05em;font-weight:400}
.hero-logo{width:min(360px,72vw);height:auto;display:block;margin:0 0 .3rem -2px}
/* 2026-09-02 VERY要望: 40代以上向けに「専門サロン＆スクール」「大阪・豊中〜」を濃く・1段階大きく（深部から〜は据置） */
.hero-sub{color:#5A3348;letter-spacing:.24em;font-size:clamp(1.02rem,2.6vw,1.25rem);font-weight:500;margin:.6rem 0 0}
.hero-lead{font-family:"Zen Old Mincho",serif;color:var(--ink);font-size:clamp(1.4rem,3.4vw,2rem);line-height:1.7;margin:1.8rem 0 .6rem;font-weight:500;text-shadow:0 1px 12px rgba(251,245,240,.95)}
.hero-sub{text-shadow:0 1px 10px rgba(251,245,240,.9)}
.hero-lead-sub{color:var(--ink);font-size:1.15rem;line-height:1.9;margin-bottom:2.4rem;font-weight:600;text-shadow:0 1px 10px rgba(251,245,240,.95)}
.hero-cta .btn.ghost{background:rgba(255,252,250,.78);backdrop-filter:blur(3px);border-color:rgba(124,74,99,.55)}
.hero-cta .btn.ghost:hover{background:rgba(255,252,250,.95)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.trust-strip{border-top:1px solid var(--line);background:var(--white)}
.trust-strip .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 40px;padding:22px 24px}
.trust-strip span{font-size:.87rem;letter-spacing:.1em;color:var(--plum);position:relative}
.trust-strip span:not(:last-child)::after{content:"";position:absolute;right:-20px;top:50%;width:1px;height:12px;background:var(--line);transform:translateY(-50%)}

/* ===== PAGE HERO (sub pages) ===== */
.page-hero{padding:170px 0 70px;background:linear-gradient(160deg,#FDF6F1,#F8E9EE);text-align:center}
.page-hero h1{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(2rem,6vw,3rem);color:var(--plum);letter-spacing:.05em;line-height:1.4}
.page-hero .ph-lead{max-width:600px;margin:22px auto 0}
.page-hero.school-hero{background:linear-gradient(160deg,#5A3348,#48283A);padding-bottom:80px}
.page-hero.school-hero h1{color:#FCF4F7}

/* ===== HOME sections ===== */
.intro{background:var(--white)}
.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.intro-grid h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.7rem,4.5vw,2.4rem);line-height:1.5}
.paths{background:var(--cream)}
.paths-head{text-align:center;max-width:600px;margin:0 auto 48px}
.paths-head p{font-family:"Zen Old Mincho",serif;font-size:clamp(1.4rem,3.4vw,1.9rem);color:var(--ink);line-height:1.6}
.paths-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.path-card{position:relative;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.path-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(124,74,99,.14)}
.pc-img{aspect-ratio:16/10;display:flex;align-items:flex-end;padding:16px}
.pc-icon{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:28px;overflow:hidden}
.pc-icon img{height:100%;width:100%;object-fit:contain}
.path-card.school .pc-icon img{transform:scale(.68)}

.path-card.salon .pc-icon{background:linear-gradient(150deg,#F8E9EE,#EFD2DC)}
.path-card.school .pc-icon{background:linear-gradient(150deg,#5A3348,#3A2030)}
.path-card.salon .pc-img{background:radial-gradient(70% 70% at 60% 30%,rgba(255,225,190,.6),transparent 62%),linear-gradient(150deg,#F3DCE4,#E4BFCE)}
.path-card.school .pc-img{background:radial-gradient(70% 70% at 60% 30%,rgba(230,179,196,.35),transparent 62%),linear-gradient(150deg,#5A3348,#3A2030)}
.pc-img span{font-size:.72rem;letter-spacing:.12em}
.path-card.salon .pc-img span{color:rgba(90,51,72,.5)}
.path-card.school .pc-img span{color:rgba(252,244,247,.55)}
.pc-body{padding:32px 34px;flex:1;display:flex;flex-direction:column}
.path-card.salon .pc-body{background:linear-gradient(160deg,#FAECF0,#F3DCE4)}
.path-card.school .pc-body{background:linear-gradient(160deg,#5A3348,#48283A)}
.path-card .plabel{font-family:"Marcellus",serif;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase}
.path-card.salon .plabel{color:var(--rose)}
.path-card.school .plabel{color:var(--rose-soft)}
.path-card h3{font-family:"Zen Old Mincho",serif;font-size:1.6rem;font-weight:500;margin:22px 0 8px}
.path-card.school h3{color:#FCF4F7}
.path-card p{font-size:.96rem;line-height:1.9;margin-bottom:20px}
.path-card.salon p{color:var(--ink-soft)}
.path-card.school p{color:rgba(252,244,247,.72)}
.path-link{font-size:.9rem;letter-spacing:.08em;font-weight:500;margin-top:auto;padding-top:16px}
.path-card.salon .path-link{color:var(--plum)}
.path-card.school .path-link{color:var(--rose-soft)}
.feature-split{background:var(--white)}
.fs-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.fs-grid h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.5;margin-bottom:16px}
.fs-figure{aspect-ratio:5/4;border-radius:8px;overflow:hidden;background:linear-gradient(150deg,#F3DCE4,#E4BFCE)}
.fs-figure img{width:100%;height:100%;object-fit:cover;display:block}
.fs-ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:18px;color:rgba(90,51,72,.5);font-size:.72rem;letter-spacing:.14em}
.staff-teaser{background:var(--blush)}
.staff-teaser h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.5;margin-bottom:16px}

/* ===== CTA band ===== */
.cta-band{background:var(--plum-rich);color:#F3E7EC;text-align:center;position:relative;overflow:hidden;padding:100px 0}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(48% 46% at 50% 52%,rgba(230,179,196,.22),transparent 68%)}
.cta-band .inner{position:relative;z-index:1;max-width:620px;margin:0 auto}
.cta-band h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.7rem,4.5vw,2.4rem);color:#FCF4F7;line-height:1.5;margin-bottom:16px}
.cta-band p{color:rgba(243,231,236,.75);margin-bottom:32px}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.line-note{margin-top:20px;font-size:.85rem;color:rgba(243,231,236,.5);letter-spacing:.08em}

/* ===== INDIBA page ===== */
.indiba-lead{max-width:760px;margin:0 auto;text-align:center}
.indiba-feats{background:var(--white)}
.if-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.if-card{background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:38px 30px}
.if-label{font-family:"Marcellus",serif;font-size:.68rem;letter-spacing:.2em;color:var(--rose);text-transform:uppercase}
.if-card h3{font-family:"Zen Old Mincho",serif;font-size:1.25rem;font-weight:500;margin:12px 0 10px}
.if-card p{color:var(--ink-soft);font-size:.96rem;line-height:1.95}
.foryou{background:var(--blush)}
.foryou h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.5;margin-bottom:14px}
.chip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:44px}
.chip{border:1px solid rgba(124,74,99,.2);border-radius:6px;padding:28px 26px;background:rgba(255,252,250,.6)}
.chip .t{font-family:"Zen Old Mincho",serif;font-size:1.1rem;color:var(--plum);margin-bottom:.5rem}
.chip .d{font-size:.94rem;color:var(--ink-soft);line-height:1.9}
.foryou-note{margin-top:30px;font-size:.85rem;color:var(--ink-soft)}

/* INDIBA: flow + tip */
.indiba-mark{width:120px;height:auto;margin-top:22px;opacity:.7}
.treat-sec{background:var(--cream)}
.treat-collage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:520px;margin:0 auto;border-radius:10px;overflow:hidden;box-shadow:0 16px 40px rgba(124,74,99,.12)}
.treat-collage>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.tc-logo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.tc-logo img{width:150px;height:auto;background:rgba(251,245,240,.92);padding:16px 20px;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.flow-sec{background:var(--white)}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.flow-step{border-top:2px solid var(--rose-soft);padding:22px 6px 0}
.flow-no{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;color:var(--rose);font-size:1.05rem;letter-spacing:.14em;font-variant-numeric:lining-nums}
.flow-step h4{font-family:"Zen Old Mincho",serif;font-size:1.08rem;font-weight:500;margin:8px 0 8px}
.flow-step p{font-size:.92rem;color:var(--ink-soft);line-height:1.85}
.tip-note{font-size:.85rem;color:var(--ink-soft);margin-top:14px}

/* access: salon photos */
.salon-photos{background:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px;margin:0 auto}
.gi{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.gi.cover img{width:100%;height:100%;object-fit:cover;display:block}
.gi.contain{background:var(--white);display:flex;align-items:center;justify-content:center;padding:14px}
.gi.contain img{max-width:100%;max-height:76%;object-fit:contain}
.gi.contain figcaption{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-family:"Marcellus",serif;color:var(--plum);font-size:.72rem;letter-spacing:.08em}

/* commitment: products (Maison-style) */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:900px;margin:0 auto}
.prod-card{text-align:center}
.prod-img{aspect-ratio:1/1;border-radius:8px;background:linear-gradient(150deg,#F5E4EA,#EAD0DA);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.prod-img span{font-size:.72rem;letter-spacing:.14em;color:rgba(124,74,99,.45)}
.prod-img img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.prod-card h3{font-family:"Zen Old Mincho",serif;font-size:1.05rem;font-weight:500;margin-bottom:6px}
.prod-card p{font-size:.9rem;color:var(--ink-soft)}

/* commitment: teachers who treat */
.teach-sec{background:var(--plum-rich);color:#F3E7EC}
.ts-inner{max-width:760px;margin:0 auto;text-align:center}
.ts-inner h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.9rem,5vw,2.8rem);color:#FCF4F7;margin:6px 0 24px}
.ts-lead{color:rgba(243,231,236,.82);font-size:1.02rem;line-height:2;margin-bottom:16px;text-align:left}
@media(max-width:760px){.ts-lead{text-align:center}}
.ts-lead b{color:#FCF4F7;font-weight:500}
.ts-punch{font-size:clamp(1.2rem,3.2vw,1.6rem);color:var(--rose-soft);margin:26px 0 0;letter-spacing:.02em}
.ts-badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.ts-badge{font-size:.87rem;letter-spacing:.04em;color:var(--plum-rich);font-weight:500;border:1px solid var(--rose-soft);border-radius:999px;padding:9px 22px;background:var(--rose-soft)}

/* ===== MENU filter + tags ===== */
.menu-filter{margin-bottom:44px;text-align:center}
.mf-label{display:block;font-size:.87rem;color:var(--ink-soft);letter-spacing:.1em;margin-bottom:14px}
.mf-chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
.mfilter-chip{font-family:inherit;font-size:.84rem;letter-spacing:.04em;color:var(--plum);background:transparent;border:1px solid rgba(124,74,99,.3);border-radius:999px;padding:8px 18px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.mfilter-chip:hover{background:rgba(124,74,99,.06)}
.mfilter-chip.active{background:var(--plum);color:#FCF4F7;border-color:var(--plum)}
.menu-row.hide,.menu-block.hide,.menu-band.hide{display:none}
.mtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mtag{font-size:.68rem;letter-spacing:.03em;color:var(--rose);background:rgba(230,179,196,.2);border-radius:999px;padding:2px 9px}
.menu-empty{display:none;text-align:center;color:var(--ink-soft);font-size:.94rem;padding:20px 0}

/* ===== MENU ===== */
.menu{background:var(--white)}
.menu-block{margin-bottom:52px}
.menu-block h3{font-family:"Zen Old Mincho",serif;font-size:1.3rem;font-weight:500;padding-bottom:14px;margin-bottom:8px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:14px}
.menu-block h3 .en{font-family:"Marcellus",serif;font-size:.72rem;letter-spacing:.22em;color:var(--gold)}
.menu-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;border-bottom:1px dashed var(--line)}
.menu-row .name{font-size:1rem}
.menu-row .name small{display:block;color:var(--ink-soft);font-size:.87rem;margin-top:3px;font-weight:300}
.menu-row .price{font-weight:500;font-size:1.15rem;white-space:nowrap;color:var(--plum);letter-spacing:.02em}
.badge{display:inline-block;font-size:.66rem;letter-spacing:.08em;background:var(--rose);color:#fff;padding:2px 9px;border-radius:999px;margin-right:8px;vertical-align:middle}
.menu-note{font-size:.85rem;color:var(--ink-soft);margin-top:10px}

/* ===== SCHOOL ===== */
.school-intro{background:var(--cream)}
.si-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.si-figure{aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:radial-gradient(60% 60% at 40% 30%,rgba(230,179,196,.4),transparent 65%),linear-gradient(150deg,#F3DCE4,#E4BFCE)}
.si-figure img{width:100%;height:100%;object-fit:cover;display:block}
.si-ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:18px;color:rgba(90,51,72,.5);font-size:.72rem;letter-spacing:.12em}
.sfeat-sec{background:var(--white)}
.sfeat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sfeat{padding:8px 22px;text-align:center;border-top:2px solid var(--rose-soft);padding-top:30px}
.sfeat .sfl{font-family:"Zen Old Mincho",serif;font-size:1.12rem;color:var(--plum);display:block;margin-bottom:10px}
.sfeat p{font-size:.94rem;color:var(--ink-soft);line-height:1.9}
.smenu-sec{background:var(--plum-rich);color:#F3E7EC}
.smenu{max-width:760px;margin:0 auto}
.smenu-title{text-align:center;font-family:"Zen Old Mincho",serif;font-size:1.4rem;color:#FCF4F7;margin-bottom:6px}
.smenu-sub{text-align:center;font-family:"Marcellus",serif;font-size:.72rem;letter-spacing:.28em;color:var(--rose-soft);text-transform:uppercase;margin-bottom:34px}
.smenu-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;border-bottom:1px dashed rgba(243,231,236,.18)}
.smenu-row .name{font-size:1.02rem;color:#FCF4F7}
.smenu-row .name small{display:block;color:rgba(243,231,236,.88);font-size:.85rem;margin-top:4px;font-weight:400}
.smenu-row .sbadge{display:inline-block;font-size:.64rem;letter-spacing:.08em;background:var(--rose-soft);color:var(--plum-rich);padding:2px 9px;border-radius:999px;margin-right:8px;vertical-align:middle}
.smenu-row .price{font-weight:500;font-size:1.15rem;white-space:nowrap;color:#FCF4F7;letter-spacing:.02em}
.smenu-row .price .kari{font-weight:300;font-size:.72rem;color:rgba(243,231,236,.75);margin-left:2px}
.smenu-note{text-align:center;font-size:.85rem;color:rgba(243,231,236,.55);margin-top:22px;line-height:1.8}
.school-video{text-align:center;margin-top:44px}
/* school: goal design */
.school-goal{background:var(--plum-rich);color:#F3E7EC}
.sg-head{text-align:center;max-width:640px;margin:0 auto 52px}
.sg-head h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.7rem,4.5vw,2.5rem);color:#FCF4F7;margin:6px 0 16px}
.sg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:860px;margin:0 auto}
.sg-item{display:flex;gap:18px;align-items:flex-start;border:1px solid rgba(230,179,196,.24);border-radius:8px;padding:24px 26px;background:rgba(230,179,196,.05)}
.sg-no{font-family:"Zen Old Mincho",serif;color:var(--rose-soft);font-size:1.9rem;line-height:1;flex-shrink:0;font-weight:500}
.sg-item p{font-size:.98rem;line-height:1.8;color:rgba(243,231,236,.82)}
.sg-item b{color:#FCF4F7;font-weight:500}
/* school: feature icons */
/* school: feature numerals + flourish */

.sfeat-flo{width:66px;height:auto;display:block;margin:8px 0 18px;opacity:.85}
.sfeat-icon{color:var(--rose);margin-bottom:14px}

/* page-hero flourish watermark (subtle texture) */
.page-hero{position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;top:8%;right:-6%;width:min(560px,60%);aspect-ratio:6823/1695;background:url('/assets/flourish-texture.png') center/contain no-repeat;opacity:.5;pointer-events:none;z-index:0}
.page-hero .wrap{position:relative;z-index:1}
/* school: method */
.method-sec{background:var(--cream)}
.method-box{display:flex;gap:30px;align-items:center;max-width:880px;margin:0 auto;background:linear-gradient(135deg,#FBEFF3,#F6E3EA);border:1.5px solid var(--rose-soft);border-radius:12px;padding:38px 44px;box-shadow:0 14px 38px rgba(198,126,151,.16)}
.method-icon{flex-shrink:0;color:var(--rose);display:flex;flex-direction:column;align-items:center;gap:14px}
.method-icon .mi-book{width:74px;height:auto;display:block}
.method-icon .mi-logo{width:86px;height:auto;display:block;opacity:.9}
.method-box h3{font-family:"Zen Old Mincho",serif;font-size:1.3rem;font-weight:500;margin-bottom:10px;color:var(--plum)}
.method-box p{font-size:1rem;color:var(--ink-soft);line-height:1.95}
/* school: course goal line */
.smenu-row .goal{display:block;color:#F0C9D6;font-size:.84rem;margin-top:7px;letter-spacing:.02em}

/* ===== ABOUT / STAFF ===== */
.about-lead{background:var(--white)}
.staff{background:var(--cream)}
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.staff-grid.two{grid-template-columns:repeat(2,1fr);max-width:820px;margin:0 auto}
.portrait-deco{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#F8E9EE,#F0D9E1);border-bottom:1px solid var(--line)}
.portrait-deco img.pd-logo{width:58%;height:auto;opacity:.85}

.if-grid.if-2{grid-template-columns:repeat(2,1fr)}
.card .cred{margin-top:14px;font-size:.85rem;color:var(--rose);letter-spacing:.04em;border-top:1px solid var(--line);padding-top:12px}
.card{background:var(--white);border-radius:8px;overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 30px rgba(124,74,99,.06)}
.card .portrait{aspect-ratio:3/4;position:relative;background:linear-gradient(160deg,#F3DCE4,#E4BFCE);display:flex;align-items:flex-end}
.card .portrait span{padding:14px;color:rgba(90,51,72,.5);font-size:.66rem;letter-spacing:.14em}
.card .body{padding:26px 24px 30px}
.card .yrs{font-weight:500;color:var(--rose);font-size:.76rem;letter-spacing:.14em}
.card h4{font-family:"Zen Old Mincho",serif;font-size:1.3rem;font-weight:500;margin:6px 0 2px}
.card .kana{font-size:.72rem;color:var(--ink-soft);letter-spacing:.16em}
.card .role{margin-top:12px;font-size:.9rem;color:var(--ink-soft);line-height:1.9}
.staff-note{text-align:center;margin-top:36px;font-size:.85rem;color:var(--ink-soft)}

/* ===== ACCESS ===== */
.info{background:var(--white)}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.info-table{width:100%;border-collapse:collapse}
.info-table th,.info-table td{text-align:left;padding:15px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:1rem}
.info-table th{width:8em;font-family:"Zen Old Mincho",serif;font-weight:500;color:var(--ink);letter-spacing:.05em}
.info-table td{color:var(--ink-soft)}
.map-ph{aspect-ratio:4/3;border-radius:8px;background:radial-gradient(40% 40% at 50% 50%,rgba(230,179,196,.35),transparent 70%),linear-gradient(160deg,#F5E4EA,#EAD3DC);display:grid;place-items:center;color:var(--ink-soft);font-size:.85rem;letter-spacing:.12em;border:1px solid var(--line)}
.access-note{font-size:.85rem;color:var(--ink-soft);margin-top:18px;line-height:1.9}
.contact{background:var(--blush);text-align:center;position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 62% at 50% 25%,rgba(255,224,190,.5),transparent 62%)}
.contact .inner{position:relative;z-index:1;max-width:620px;margin:0 auto}
.contact h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.7rem,4.5vw,2.3rem);color:var(--plum);margin-bottom:14px}
.contact p{color:var(--ink-soft);margin-bottom:30px}
.contact-sns{display:flex;gap:18px;justify-content:center;margin-top:26px}
.contact .line-note{color:var(--ink-soft)}

/* ===== LEGAL ===== */
.legal{background:var(--white)}
.legal .wrap{max-width:760px}
.legal-lead{color:var(--ink-soft);margin-bottom:32px}
.legal h3{font-family:"Zen Old Mincho",serif;font-size:1.1rem;font-weight:500;margin:28px 0 8px;color:var(--plum)}
.legal p{color:var(--ink-soft);font-size:1rem}
.legal-note{margin-top:36px;font-size:.85rem;color:var(--ink-soft)}
.legal-table{width:100%;border-collapse:collapse}
.legal-table th,.legal-table td{text-align:left;padding:15px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:.93rem}
.legal-table th{width:10em;font-family:"Zen Old Mincho",serif;font-weight:500;color:var(--ink)}
.legal-table td{color:var(--ink-soft)}

/* ===== FOOTER ===== */
footer{background:var(--plum-rich);color:#F0E4E9;padding:64px 0 40px}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:36px}
.foot-brand{max-width:26em}
.foot-brand .latin{font-size:1.5rem;letter-spacing:.24em;color:#FCF4F7}
.foot-brand small{display:block;font-size:.6rem;letter-spacing:.3em;color:var(--rose-soft);margin-top:6px}
.foot-brand p{font-size:.87rem;margin-top:16px;line-height:1.9;color:#EADCE2}
.foot-sns{display:flex;gap:14px;margin-top:18px}
.foot-sns img{opacity:.85;transition:opacity .2s}
.foot-sns a:hover img{opacity:1}
.foot-links{display:flex;gap:44px;font-size:.84rem}
.foot-links a{display:block;padding:5px 0;color:#F0E4E9;opacity:1}
.foot-links a:hover{opacity:1;color:var(--rose-soft)}
.copy{margin-top:44px;padding-top:24px;border-top:1px solid rgba(243,231,236,.14);font-size:.72rem;letter-spacing:.06em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.copy .cred{color:rgba(243,231,236,.5)}

/* ===== reveal ===== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.btn:hover,.path-card:hover{transform:none}.hslide{animation:none}.hslide.s1{opacity:1}.hslide.s2,.hslide.s3{opacity:0}}

/* credential badges */
.cred-badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.cred-badge{font-size:.85rem;letter-spacing:.05em;color:#FCF4F7;font-weight:500;border:1px solid var(--plum);border-radius:999px;padding:8px 20px;background:var(--plum)}

/* map embed */
.map-embed{aspect-ratio:4/3;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
.map-link{display:inline-block;margin-top:14px;color:var(--plum);font-weight:500;font-size:.92rem;letter-spacing:.04em;border-bottom:1px solid var(--rose);padding-bottom:3px}
.map-link:hover{color:var(--plum-deep)}

/* ===== responsive ===== */
@media(max-width:900px){
  .hero-grid,.intro-grid,.fs-grid,.si-grid,.info-grid{grid-template-columns:1fr;gap:40px}
  .hero-machine{aspect-ratio:4/3;max-height:420px}
  .paths-grid,.if-grid,.sfeat-grid,.sg-grid,.sp-grid,.prod-grid,.if-grid.if-2,.staff-grid.two{grid-template-columns:1fr;max-width:340px;margin:0 auto}
  .flow-grid{grid-template-columns:1fr 1fr;gap:16px}
  .gallery-grid{grid-template-columns:1fr 1fr;gap:12px}
  .treat-grid{grid-template-columns:1fr 1fr}
  .mach-row{grid-template-columns:1fr;max-width:360px}
  .method-box{flex-direction:column;text-align:center;gap:26px;padding:48px 24px 46px;max-width:none}
  .method-icon{padding:6px 0 4px}
  .staff-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto}
  .pad{padding:80px 0}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:rgba(251,245,240,.99);padding:0 0 0;box-shadow:0 22px 40px rgba(124,74,99,.18);gap:0;border-top:1px solid var(--line)}
  body.nav-open .nav-links{display:flex}
  body.nav-open{overflow:hidden}
  .nav-links a{width:100%;text-align:left;padding:17px 22px;border-bottom:1px solid var(--line);font-size:.96rem;letter-spacing:.12em;border-radius:0;margin:0;box-sizing:border-box}
  .nav-links a.nav-cta{border-bottom:none;border-radius:0;margin:0;padding:18px 26px;text-align:center;justify-content:center;display:flex}
  .nav-toggle{display:block;background:none;border:none;color:var(--plum);font-size:1.4rem;cursor:pointer}
  .page-hero{padding-top:130px}
}
@media(max-width:560px){
  .wrap{padding:0 22px}
  header.nav{padding:16px 20px}
  .hero-cta,.cta-row{flex-direction:column;align-items:center;width:100%}
  .hero-cta .btn,.cta-row .btn{width:100%;max-width:320px;justify-content:center}
  .contact-sns{margin-top:22px}
  .foot-links{gap:28px}
  /* hero: 機械フル背景・文字は左右余白＆読みやすさ確保 */
  .hero{align-items:center}
  .hero-content{padding:104px 22px 44px}
  .hero-logo{width:min(200px,52vw)}
  .hero-content h1{font-size:clamp(3rem,15vw,4.4rem)}
  .hero-lead{font-size:1.3rem;margin:1.4rem 0 .5rem}
  .hero-lead-sub{font-size:1.06rem}
  .hero-scrim{background:linear-gradient(180deg,rgba(251,245,240,.9) 0%,rgba(251,245,240,.6) 40%,rgba(251,245,240,.32) 72%,rgba(248,233,238,.18) 100%)}
  .hslide.s1{background:linear-gradient(180deg,rgba(251,245,240,.42),rgba(251,245,240,.12)),url('/assets/hero-1m.webp') center/cover}
  .hslide.s2{background:linear-gradient(180deg,rgba(251,245,240,.42),rgba(251,245,240,.12)),url('/assets/hero-2m.webp') center/cover}
  .hslide.s3{background:linear-gradient(180deg,rgba(251,245,240,.42),rgba(251,245,240,.12)),url('/assets/hero-3m.webp') center/cover}
}

/* ===== typography: 改行制御（2026/08/07） ===== */
/* 1) 見出し＝行長を均す（Chrome114+ / Safari17.5+ / FF121+） */
h1,h2,h3,h4,
.paths-head p,.hero-lead,.smenu-title,.method-box h3,
.ts-inner h2,.sg-head h2,.cta-band h2,.contact h2,.foryou h2{
  text-wrap:balance;
}
/* 2) 本文＝末尾行の孤立を回避 */
p,li,dd,td,small,figcaption,
.lede,.d,.goal,.ts-lead,.hero-lead-sub,.card p,.info-table td{
  text-wrap:pretty;
}
/* 3) 全ブラウザ確定制御用ユーティリティ（決めコピー専用） */
.nb{display:inline-block}

/* ===== footer: スマホの泣き別れ解消 ===== */
.foot-links a{white-space:nowrap}
@media(max-width:560px){
  .foot-links{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;width:100%}
  .foot-links>div{display:contents}
  .foot-links a{padding:7px 0}
}
.nw{white-space:nowrap}
.fs-figure.fs-wide{aspect-ratio:5/4;background:#fff}

/* ===== 2026/08/07 追補 ===== */
/* スクール冒頭：4枚を1枚に見せるコラージュ */
.si-figure.si-collage{display:grid;grid-template-columns:1fr 1fr;gap:0;aspect-ratio:4/3}
.si-figure.si-collage img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
/* アクセス：ギャラリーをコンパクトに（Maison du Lait方式） */
.gallery-compact{max-width:660px;gap:10px}
.gallery-compact .gi{border-radius:6px}
.gallery-compact .gi.contain{padding:10px}
.gallery-compact .gi.contain figcaption{font-size:.62rem;bottom:6px}
@media(max-width:560px){
  .gallery-compact{grid-template-columns:repeat(3,1fr);gap:8px}
  .gallery-compact .gi.contain figcaption{font-size:.52rem}
  /* メソッドBOX：左右の抜けをもう少し確保 */
}
/* ゴール：3段ラダー */
.sg-grid.sg-3{grid-template-columns:repeat(3,1fr);max-width:960px}
.sg-3 .sg-item{flex-direction:column;gap:12px;padding:28px 26px 30px}
.sg-step{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding-bottom:13px;border-bottom:1px solid rgba(230,179,196,.32);align-self:stretch}
.sg-num{font-family:"Marcellus",serif;font-style:normal;font-weight:400;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-soft);line-height:1}
@media(max-width:900px){
  .sg-grid.sg-3{grid-template-columns:1fr;max-width:min(420px,100%);margin-inline:auto}
}
/* h1（ヒーローロゴ）：見た目は従来どおり */
.hero-content h1{margin:0;line-height:0}
/* コントラスト：eyebrow を AA まで濃く */
.eyebrow{color:#A85C77}
.eyebrow.on-dark{color:var(--rose-soft)}
/* タップ領域：44px 確保（display は既存指定を壊さない） */
@media(max-width:900px){
  .nav-toggle{min-width:44px;min-height:44px;line-height:44px;padding:0;text-align:center}
  .text-link,.path-link{min-height:44px;display:inline-flex;align-items:center}
}

/* ===== 修正：モバイルドロワーの文字が背景と同色で不可視だった ===== */
@media(max-width:900px){
  header.nav.over-dark:not(.scrolled) .nav-links{background:rgba(251,245,240,.98)}
  header.nav.over-dark:not(.scrolled) .nav-links a{color:var(--ink)}
  header.nav.over-dark:not(.scrolled) .nav-links a.on{color:var(--plum)}
  .nav-links a{opacity:1}
}
/* ===== フローリッシュ透かしを視認できる強度に ===== */
.page-hero::after{opacity:.16;width:min(680px,70%);top:auto;bottom:6%;right:-8%}
@media(max-width:900px){ .page-hero::after{width:min(420px,92%);bottom:4%;right:-14%;opacity:.2} }
.page-hero.school-hero::after,.page-hero.on-dark::after{opacity:.22}

.sg-name{color:#FFFFFF;font-size:1.02rem;letter-spacing:.04em;font-weight:700;line-height:1.4}

/* ===== 全面テクスチャ（自家製・タイル可能／ライセンス不要） ===== */
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  background:url('/assets/paper-mid.png') repeat;
  background-size:256px 256px;
  mix-blend-mode:multiply;
}
.si-figure.si-wide{aspect-ratio:5/4;background:#fff}

/* ===== 全ページ背景シルク ===== */
:root{--veil:.90;--veil-soft:.68}
body{background:var(--cream) url('/assets/bg-silk.webp') center/cover no-repeat fixed}

/* 本文が多い面：可読性優先（AA維持） */
.trust-strip,.intro,.feature-split,.indiba-feats,.flow-sec,
.menu,.sfeat-sec,.about-lead,.info,.legal{background:rgba(255,252,250,var(--veil))}
.paths,.treat-sec,.salon-photos,.school-intro,.method-sec,.staff{background:rgba(251,245,240,var(--veil))}

/* 見出し中心の“余白”面：シルクを強めに透かす */
.staff-teaser,.foryou,.contact{background:rgba(248,233,238,var(--veil-soft))}

/* カード類は下地を確保 */
.if-card{background:rgba(251,245,240,.86)}
.method-box,.card,.gi.contain{background:rgba(255,252,250,.93)}

/* シルク下でもAAを満たす色に補正 */
.eyebrow{color:#944860}
.eyebrow.on-dark{color:var(--rose-soft)}

/* ヒーローロゴのh1（既存維持） */
.hero-content h1{margin:0;line-height:0}

/* モバイルドロワーの可読性 */
@media(max-width:900px){
  header.nav.over-dark:not(.scrolled) .nav-links{background:rgba(251,245,240,.98)}
  header.nav.over-dark:not(.scrolled) .nav-links a{color:var(--ink)}
  header.nav.over-dark:not(.scrolled) .nav-links a.on{color:var(--plum)}
  .nav-links a{opacity:1}
  .nav-toggle{min-width:44px;min-height:44px;line-height:44px;padding:0;text-align:center}
  .text-link,.path-link{min-height:44px;display:inline-flex;align-items:center}
}
/* iOSでfixed背景が崩れるのを回避 */
@media(max-width:900px){ body{background-attachment:scroll} }

/* ===== ①モバイルドロワーのLINE CTA ===== */
@media(max-width:900px){
  .nav-links a.nav-cta{color:#fff!important;background:#3FA76C;border-color:#3FA76C;font-size:.94rem;letter-spacing:.08em}
  header.nav.over-dark:not(.scrolled) .nav-links a.nav-cta{color:#fff!important}
}
/* ===== ②「初回限定」バッジの縦位置ズレを解消 ===== */
.badge{vertical-align:baseline;position:relative;top:-2px;line-height:1.6;padding:3px 10px}
.menu-row .name{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 2px}

/* ===== ③ こんな時間を〜：カードをやめてアクセントバー式リストへ ===== */
.chip-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:40px;max-width:820px}
.chip{
  border:none;border-left:3px solid var(--rose);border-radius:0 6px 6px 0;
  padding:18px 24px;background:rgba(255,252,250,.55);
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
}
.chip .t{font-family:"Zen Old Mincho",serif;font-size:1.02rem;color:var(--plum-deep);margin-bottom:0;flex-shrink:0;font-weight:500}
.chip .d{font-size:.9rem;color:var(--ink-soft);line-height:1.8;flex:1;min-width:220px}
@media(max-width:700px){
  .chip{flex-direction:column;gap:6px;padding:16px 18px}
  .chip .d{min-width:0}
}

/* ===== 講師ページ → スクール導線 ===== */
.school-bridge{background:rgba(251,245,240,var(--veil))}
.sb-box{max-width:900px;margin:0 auto;display:flex;gap:40px;align-items:center;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:10px;padding:40px 44px;background:rgba(255,252,250,.86)}
.sb-copy{flex:1;min-width:280px}
.sb-copy h2{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.4rem,3.4vw,1.9rem);line-height:1.55;margin:6px 0 14px}
.sb-copy p{font-size:.96rem;color:var(--ink-soft);line-height:1.95}
.sb-btn{flex-shrink:0;white-space:nowrap}
@media(max-width:760px){
  .sb-box{flex-direction:column;align-items:stretch;text-align:center;padding:34px 24px;gap:24px}
  .sb-btn{align-self:center}
}

/* ===== スクール：術者の悩み（Q&A） ===== */
.pain-sec{background:rgba(255,252,250,var(--veil))}
.pain-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.pain{display:flex;gap:20px;padding:24px 28px;border-left:3px solid var(--rose);
  border-radius:0 8px 8px 0;background:rgba(251,245,240,.66)}
.pain .q{font-family:"Marcellus",serif;font-size:1.5rem;line-height:1;color:var(--rose);flex-shrink:0;padding-top:2px}
.pq{font-family:"Zen Old Mincho",serif;font-size:1.04rem;color:var(--plum-deep);line-height:1.7;margin-bottom:10px}
.pq b{font-weight:700;color:var(--plum-rich)}
.pa{font-size:.92rem;color:var(--ink-soft);line-height:1.95}
.pa b{font-weight:700;color:var(--ink)}
.pain-close{text-align:center;margin-top:46px;font-size:clamp(1.08rem,2.6vw,1.34rem);
  color:var(--plum-deep);line-height:1.9;font-weight:500}
.sp-br{display:none}
@media(max-width:700px){
  .pain{gap:14px;padding:20px 18px}
  .pain .q{font-size:1.2rem}
  .pq{font-size:.98rem}
  .sp-br{display:block}
}
@media(max-width:360px){
  .sb-box{padding:26px 16px}
  .pain{padding:18px 14px}
}
.pain-sub{text-align:center;margin-top:14px;font-size:.96rem;color:var(--ink-soft);letter-spacing:.02em}

/* ===== ④ ボタンのホバーを明確化 ===== */
.btn.ghost{transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s}
.btn.ghost:hover{background:var(--plum);color:#FCF4F7;border-color:var(--plum);
  box-shadow:0 8px 22px rgba(124,74,99,.22);transform:translateY(-1px)}
.btn.ghost.on-dark:hover{background:#FCF4F7;color:var(--plum-rich);border-color:#FCF4F7}
.hero-cta .btn.ghost:hover{background:var(--plum);color:#FCF4F7;border-color:var(--plum)}
.btn:hover{transform:translateY(-1px)}
@media(hover:none){ .btn:hover,.btn.ghost:hover{transform:none} }

/* ===== ⑤ メニュー → スクール 導線 ===== */
.menu-bridge{background:rgba(251,245,240,var(--veil));padding:64px 0}
.mb-inline{max-width:880px;margin:0 auto;display:flex;gap:32px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 4px}
.mb-t{font-family:"Zen Old Mincho",serif;font-size:clamp(1.14rem,2.8vw,1.42rem);color:var(--plum-deep);line-height:1.6;margin:6px 0 8px}
.mb-d{font-size:.92rem;color:var(--ink-soft);line-height:1.9}
.mb-btn{flex-shrink:0;white-space:nowrap}
@media(max-width:760px){
  .mb-inline{flex-direction:column;align-items:stretch;text-align:center;gap:22px}
  .mb-btn{align-self:center}
}

/* ===== ギャラリー：1列3枚・機種名キャプション ===== */
.gallery-grid.gal3{grid-template-columns:repeat(3,1fr);gap:12px;max-width:940px;margin:0 auto}
.gal3 .gi{aspect-ratio:4/3;border-radius:6px;overflow:hidden;position:relative;background:rgba(255,252,250,.9)}
.gal3 .gi img{width:100%;height:100%;object-fit:cover;display:block}
.gal3 figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 8px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;font-size:.6rem;letter-spacing:.18em;text-align:center;
  font-variant-numeric:lining-nums;color:#FCF4F7;background:linear-gradient(to top,rgba(72,40,58,.62),transparent)}
@media(max-width:760px){
  .gallery-grid.gal3{grid-template-columns:repeat(2,1fr);gap:8px}
  .gal3 figcaption{font-size:.54rem;letter-spacing:.1em;padding:14px 6px 6px}
}

/* ===== ① コンセプト：図解と装飾 ===== */
.intro-flourish{display:block;width:min(240px,70%);height:auto;margin-top:26px;opacity:.5}
.concept-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px;
  border-top:1px solid var(--line)}
.cp{padding:24px 18px 8px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px}
.cp:last-child{border-right:none}
.cp-n{font-family:"Zen Kaku Gothic New",sans-serif;font-size:.62rem;font-weight:500;letter-spacing:.18em;color:var(--rose);font-variant-numeric:lining-nums tabular-nums}
.cp-t{font-family:"Zen Old Mincho",serif;font-size:1.16rem;color:var(--plum-deep);font-weight:500;letter-spacing:.06em}
.cp-d{font-size:.83rem;color:var(--ink-soft);line-height:1.7}
@media(max-width:760px){
  .concept-pillars{grid-template-columns:1fr;margin-top:28px}
  .cp{border-right:none;border-bottom:1px solid var(--line);padding:16px 4px;
    flex-direction:row;align-items:baseline;gap:14px;flex-wrap:wrap}
  .cp:last-child{border-bottom:none}
  .intro-flourish{margin:20px auto 0}
}
.prod-grid.prod-2{grid-template-columns:repeat(2,1fr);max-width:660px}
.prod-img.contain{background:rgba(255,255,255,.92);border:1px solid var(--line);display:block}
.prod-img.contain img{object-fit:contain;padding:8%}
@media(max-width:760px){ .prod-grid.prod-2{grid-template-columns:1fr;max-width:none} }

/* ===== メニュー中の帯画像 ===== */
.menu-band{margin:48px 0 52px;border-radius:8px;overflow:hidden;aspect-ratio:16/6}
.menu-band img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:700px){ .menu-band{aspect-ratio:16/9;margin:36px 0 40px} }
/* feature-split の3:2バリエーション */
.fs-figure.fs-32{aspect-ratio:3/2;background:#fff}

/* ===== スクール ゴール：カードをやめてコース別カラーのラダーへ ===== */
.school-goal{position:relative;overflow:hidden}
.sg-ladder{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative;z-index:1}
.sgl{padding:26px 26px 8px;display:flex;flex-direction:column;gap:9px;border-top:2px solid;position:relative}
.sgl + .sgl{border-left:1px solid rgba(230,179,196,.18)}
.sgl-step{font-family:"Zen Kaku Gothic New",sans-serif;font-size:.6rem;font-weight:500;letter-spacing:.22em;
  font-variant-numeric:lining-nums tabular-nums}
.sgl-name{font-family:"Zen Old Mincho",serif;font-size:1.1rem;font-weight:500;letter-spacing:.04em;line-height:1.45}
.sgl p{font-size:.9rem;color:rgba(252,244,247,.74);line-height:1.95;margin-top:2px}
.sgl p b{font-weight:700;color:#FCF4F7}
/* コース別アクセント */
.sgl.c1{border-top-color:var(--rose-soft)}
.sgl.c1 .sgl-step{color:var(--rose-soft)}
.sgl.c1 .sgl-name{color:#F6E3EA}
.sgl.c2{border-top-color:#D98FA8}
.sgl.c2 .sgl-step{color:#D98FA8}
.sgl.c2 .sgl-name{color:#FAEAF0}
.sgl.c3{border-top-color:var(--gold)}
.sgl.c3 .sgl-step{color:var(--gold)}
.sgl.c3 .sgl-name{color:#FFF7E8}
/* VERYのメソッドである印としてフローリッシュ */
.sg-flourish{display:block;width:min(260px,60%);height:auto;margin:46px auto 0;opacity:.4}
@media(max-width:860px){
  .sg-ladder{grid-template-columns:1fr;max-width:420px;gap:0}
  .sgl{padding:22px 4px 18px}
  .sgl + .sgl{border-left:none}
  .sg-flourish{margin-top:34px;width:min(220px,70%)}
}
/* ===== ギャラリー：上の余白を左右と揃える ===== */
.salon-photos{padding-top:170px}
@media(max-width:900px){ .salon-photos{padding-top:96px} }

/* 2つの入口カードの高さ統一 */
.paths-grid{align-items:stretch}
.path-card{height:100%}
.pc-body{display:flex;flex-direction:column;flex:1}
.pc-body .path-link{margin-top:auto;padding-top:18px}

/* 選ばれる理由：アイコン型 */
.sfeat .sfl{margin-bottom:10px}
.sfeat p{text-align:left}
@media(max-width:760px){ .sfeat p{text-align:center} }

/* ===== FAQ ===== */
.faq-sec{background:rgba(255,252,250,var(--veil))}
.faq-list{max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
.faq{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px;
  padding:20px 44px 20px 6px;position:relative;
  font-family:"Zen Old Mincho",serif;font-size:1rem;color:var(--plum-deep);line-height:1.7}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:"Marcellus",serif;color:var(--rose);font-size:1.05rem;flex-shrink:0}
.faq summary::after{content:"";position:absolute;right:10px;top:50%;width:10px;height:10px;
  border-right:1.5px solid var(--rose);border-bottom:1.5px solid var(--rose);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.faq[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq-a{padding:0 6px 22px 31px}
.faq-a p{font-size:.94rem;color:var(--ink-soft);line-height:2}
.faq-a b{font-weight:700;color:var(--ink)}
@media(max-width:700px){
  .faq summary{font-size:.94rem;padding:18px 36px 18px 4px}
  .faq-a{padding:0 4px 20px 27px}
}
.faq summary .st{flex:1}

/* メソッドBOX：ピンク地でもAAを満たす本文色 */
.method-box p{color:#705C68}

/* メソッドBOX：フローリッシュ入りロゴとのバランス */
.method-icon .mi-book{width:64px}
.method-icon .mi-logo{width:96px;opacity:.95}
.method-icon{gap:10px}
/* スクールヒーロー：料金アンカー */
.anchor-link{display:inline-block;margin-top:22px;font-size:.87rem;letter-spacing:.14em;color:rgba(252,244,247,.85);
  border-bottom:1px solid rgba(230,179,196,.5);padding-bottom:4px;transition:color .25s,border-color .25s}
.anchor-link:hover{color:#fff;border-color:#fff}
html{scroll-behavior:smooth}

/* ===== スクール：無料カウンセリング ===== */
.consul-box{max-width:820px;margin:56px auto 0;display:flex;gap:36px;align-items:center;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(251,245,240,.10),rgba(230,179,196,.12));
  border:1px solid rgba(230,179,196,.4);border-radius:12px;padding:36px 40px}
.consul-copy{flex:1;min-width:min(280px,100%)}
.consul-t{font-family:"Zen Old Mincho",serif;font-size:clamp(1.2rem,3vw,1.5rem);color:#F6E3EA;line-height:1.6;margin:8px 0 12px;font-weight:500}
.consul-d{font-size:.94rem;color:rgba(252,244,247,.8);line-height:2}
.consul-d b{font-weight:700;color:#FCF4F7}
.consul-btn{flex-shrink:0;white-space:nowrap}
@media(max-width:760px){
  .consul-box{flex-direction:column;align-items:stretch;text-align:center;padding:30px 22px;gap:22px;margin-top:44px}
  .consul-copy{min-width:0;width:100%;max-width:100%}
  .consul-t,.consul-d{max-width:100%}
  .consul-btn{align-self:center}
}

/* スクール：軽いカウンセリング誘導 */
.hero-links{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;align-items:baseline}
.pain-cta{text-align:center;margin-top:26px}
.pain-cta a:not(.btn){font-size:.96rem;letter-spacing:.06em;color:var(--plum-rich);
  border-bottom:1px solid var(--rose);padding-bottom:4px;transition:color .25s,border-color .25s}
.pain-cta a:not(.btn):hover{color:var(--rose);border-color:var(--plum-rich)}
@media(max-width:700px){ .hero-links{gap:14px;flex-direction:column;align-items:center} }

/* ===== コース表バッジ：コース別カラー（STEPラダーと統一） ===== */
.smenu-row .sbadge.b1{background:var(--rose-soft);color:var(--plum-rich)}
.smenu-row .sbadge.b2{background:#D98FA8;color:#FFF}
.smenu-row .sbadge.b3{background:var(--gold);color:#3A2030}
/* プロ行：特別講習の推し */
.sp-perk{display:inline-block;margin-top:8px;font-size:.83rem;letter-spacing:.04em;color:var(--gold);
  border:1px solid rgba(192,161,92,.55);border-radius:999px;padding:4px 14px;background:rgba(192,161,92,.10)}
/* ゴール直後のカウンセリング誘導 */
.sg-consul{text-align:center;margin-top:52px}
.sg-consul-t{font-family:"Zen Old Mincho",serif;font-size:clamp(1.05rem,2.6vw,1.3rem);color:#F6E3EA;line-height:1.8;margin-bottom:20px;font-weight:500}
.sg-consul .btn.line{display:inline-block}
@media(max-width:700px){ .sg-consul{margin-top:40px} }
@media(max-width:360px){ .consul-t{font-size:1.06rem} }

/* 暗地のeyebrow可読性 */
.consul-box .eyebrow{color:var(--rose-soft)}

/* ===== コース行：時間表記の構造化 ===== */
.ctime{white-space:nowrap}
.ctime::before{content:"｜";margin:0 2px}
@media(max-width:700px){
  .ctime{display:block;font-size:.82rem;letter-spacing:.06em;color:rgba(252,244,247,.66);margin-top:2px}
  .ctime::before{content:"";margin:0}
  /* 特別講習バッジ：万一折り返しても崩れない角丸 */
  .sp-perk{border-radius:12px;line-height:1.7}
  /* 緑ボタン：SPで1行維持 */
  .sg-consul .btn.line,.pain-cta .btn.line{white-space:nowrap;font-size:.88rem;padding-left:26px;padding-right:26px}
}

/* ===== 術者の悩み：アコーディオン化 ===== */
details.pain{display:block}
details.pain summary{list-style:none;cursor:pointer;display:flex;gap:20px;align-items:flex-start;position:relative;padding-right:34px}
details.pain summary::-webkit-details-marker{display:none}
details.pain .pq{flex:1;margin-bottom:0}
details.pain .p-chev{position:absolute;right:4px;top:12px;width:9px;height:9px;
  border-right:1.5px solid var(--rose);border-bottom:1.5px solid var(--rose);
  transform:rotate(45deg);transition:transform .3s}
details.pain[open] .p-chev{transform:rotate(225deg)}
details.pain .pa-wrap{padding:10px 0 0 44px}
@media(max-width:700px){
  details.pain summary{gap:14px;padding-right:28px}
  details.pain .pa-wrap{padding-left:34px}
  details.pain .p-chev{top:10px}
}

/* 2026-10-17 講師写真（4:3枠・遠め構図で書き出し済み） */
.portrait-photo{aspect-ratio:4/3;overflow:hidden;background:#FDFDFD;border-bottom:1px solid var(--line)}
.portrait-photo img{width:100%;height:100%;object-fit:cover;display:block}
/* 2026-10-17 アクセス：建物の目印写真 */
.access-landmark{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.access-landmark figure{margin:0}
.access-landmark img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
.access-landmark figcaption{font-size:.8rem;color:var(--ink-soft);text-align:center;margin-top:6px;letter-spacing:.04em}

/* 2026-10-17 バッジ文字の左右中央補正（letter-spacingの末尾余白ぶん左を足す） */
.badge{padding-left:calc(10px + .08em);padding-right:10px}
.smenu-row .sbadge{padding-left:calc(9px + .08em);padding-right:9px}

/* 2026-10-17 公開前検品 */
/* SP: スクールのLINEボタン（nowrap）が390px幅で17pxはみ出し→文字と余白を詰めて1行に収める */
@media(max-width:420px){
  .sg-consul .btn.line,.pain-cta .btn.line{font-size:.8rem;letter-spacing:.03em;padding-left:18px;padding-right:18px;max-width:100%}
}
/* 40代以上向け可読性: ギャラリーのキャプションとSTEPラベルの最小サイズ底上げ */
.gal3 figcaption{font-size:.7rem}
@media(max-width:560px){.gal3 figcaption{font-size:.64rem;letter-spacing:.06em}}
.sgl-step{font-size:.7rem}
/* フッターSNSアイコンのタップ領域を44pxに（見た目の位置・間隔は不変） */
.foot-sns a{display:inline-flex;padding:9px;margin:-9px}
/* SP(2列)でギャラリー最終行が1枚余る→1枚目（空間コラージュ）を全幅にして偶数で揃える */
@media(max-width:760px){.gallery-grid.gal3>:first-child{grid-column:1/-1}}

/* 2026-10-18 INDIBAページ導入：VERYさん指定文（見出し追加） */
.il-title{font-family:"Zen Old Mincho",serif;font-weight:500;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.6;color:var(--ink);margin-bottom:22px}
.il-key{font-size:1.18em;color:var(--plum);background:linear-gradient(transparent 72%,rgba(230,179,196,.55) 72%);padding:0 .1em}
.il-body{text-wrap:balance}

/* 2026-10-18 ギャラリー: INDIBA公式コラージュ(1.18:1)が4:3枠でcoverされ下のロゴが切れる→全体表示 */
.gal3 .gi.g-fit{background:#fff}
.gal3 .gi.g-fit img{object-fit:contain}
