/* ============================================================
   アイサロ LP（CoreGen の組版に寄せた版・2026-11-07）
   文字は 14px を下限。薄い文字・opacity・rgba は使わない。
   ============================================================ */

:root{
  --navy:#16233F;        /* 主色。ヘッダー帯・プラン見出し・CTA */
  --navy-2:#22335A;      /* 罫線・補助 */
  --ink:#16233F;         /* 本文・見出し。ロゴ・ボタン・フッターと同じ濃いネイビーに統一（2026-11-08） */
  --ink-2:#3B4868;       /* 補足（ネイビー寄りのグレー） */
  --gold:#8A6A2F;        /* 数字・番号 */
  --red:#C0392B;
  --orange:#EA7221;       /* ロゴの点（CoreGen のロゴの橙を実測） */
  --bg:#FFFFFF;
  --bg-alt:#F4F5F7;
  --line:#D8DCE3;
  --mincho:"Noto Serif JP","Hiragino Mincho ProN",serif;  /* 太く直立した明朝（Shippori のかなは崩し字に見えると指摘・2026-11-08） */
  --gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px;
  --container:1120px;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:var(--gothic);font-size:16px;font-weight:500;line-height:1.9;letter-spacing:.02em;}
img{max-width:100%;display:block;}
a{color:inherit;}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px;}
h1,h2,h3,.mincho{font-family:var(--mincho);font-weight:900;margin:0;text-wrap:balance;word-break:auto-phrase;}
p{margin:0;}
p,li,summary{text-wrap:pretty;word-break:auto-phrase;line-break:strict;}
.stat span,.num span{text-wrap:balance;word-break:keep-all;}
.col p,.svc__item p{word-break:normal;text-wrap:balance;}
.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;}
.sec{padding:var(--s5) 0;}
.sec--alt{background:var(--bg-alt);}
.sec__title{font-size:24px;line-height:1.5;text-align:center;margin-bottom:var(--s4);}
.sec__label{font-family:var(--mincho);font-size:24px;font-weight:900;line-height:1.5;text-align:center;letter-spacing:.04em;margin-bottom:var(--s4);color:var(--ink);}
.sec__label--small{font-family:var(--gothic);font-size:16px;letter-spacing:.14em;color:var(--ink-2);margin-bottom:var(--s2);}
.sec__sub{margin:calc(var(--s4) * -1 + 12px) 0 var(--s4);text-align:center;font-size:16px;line-height:1.9;color:var(--ink-2);}

/* ---------- ヘッダー ---------- */
.header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:68px;}
/* ロゴ：フッターと同じ明朝（Shippori Mincho 700）を大きく。点は付けない（2026-11-08 指示） */
.brand{display:flex;align-items:center;text-decoration:none;}
.brand b{display:block;font-family:var(--mincho);font-size:36px;font-weight:900;letter-spacing:.12em;color:var(--navy);line-height:1;-webkit-text-stroke:.8px var(--navy);paint-order:stroke fill;transform:translateY(-.03em);}
.nav{display:flex;align-items:center;gap:var(--s3);}
.nav a:not(.btn){display:none;}
.nav a{font-size:15px;font-weight:700;text-decoration:none;line-height:1.6;}
.nav a:hover{text-decoration:underline;}
.nav .btn{margin-left:var(--s1);}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 28px;background:var(--navy);color:#FFFFFF;font-size:16px;font-weight:700;line-height:1.5;text-decoration:none;border:1px solid var(--navy);border-radius:2px;}
.btn--sm{min-height:44px;padding:8px 18px;font-size:15px;}
.btn:hover{background:var(--navy-2);border-color:var(--navy-2);}
a:focus-visible,summary:focus-visible{outline:2px solid var(--navy);outline-offset:3px;}

/* ---------- ヒーロー ---------- */
.hero{background:var(--bg);position:relative;overflow:hidden;border-bottom:1px solid var(--line);}
.hero__body{padding:var(--s5) 0;}
.hero__grid{display:grid;gap:var(--s4);}
.hero__inner{max-width:640px;align-self:center;}
.hero h1{margin-top:0;}
.hero__eyebrow{font-size:15px;font-weight:700;letter-spacing:.1em;color:var(--ink-2);margin-bottom:var(--s2);}
.hero h1{font-size:30px;line-height:1.5;}
.hero__lead{margin-top:var(--s3);font-size:16px;line-height:1.95;color:var(--ink-2);}
.stats{display:flex;flex-wrap:wrap;gap:var(--s2) 0;margin-top:var(--s4);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--s3) 0;}
.stat{flex:1 1 33%;min-width:100px;padding:0 10px;border-left:1px solid var(--line);}
.stat:first-child{border-left:0;padding-left:0;}
.stat b{display:block;font-family:var(--mincho);font-size:30px;line-height:1.25;color:var(--gold);white-space:nowrap;}
.stat b i{font-style:normal;font-size:15px;font-family:var(--gothic);color:var(--gold);}
.stat span{display:block;font-size:14px;line-height:1.6;color:var(--ink-2);margin-top:6px;}
.hero__cta{margin-top:var(--s4);}
.hero__cta .btn{width:100%;}
.note{margin-top:12px;font-size:15px;line-height:1.7;color:var(--ink-2);text-align:center;}
/* 運営3人の顔（写真の代わり） */
.faces{display:flex;flex-direction:column;align-items:center;gap:var(--s2);}
.faces__row{display:flex;justify-content:center;}
.faces__row img{width:124px;height:124px;border-radius:50%;object-fit:cover;border:3px solid #FFFFFF;box-shadow:0 0 0 1px var(--line);}
.faces__row img+img{margin-left:-20px;}
.faces__cap{font-size:15px;line-height:1.7;color:var(--ink-2);text-align:center;letter-spacing:.04em;}
.faces__cap b{display:block;font-family:var(--mincho);font-size:19px;color:var(--ink);letter-spacing:.06em;}

/* ---------- こんな経験 ---------- */
.cols{display:grid;gap:var(--s4);}
.col{text-align:center;}
.col__no{display:block;font-family:var(--mincho);font-size:30px;line-height:1.2;color:var(--gold);margin-bottom:10px;letter-spacing:.04em;}
.col h3{font-size:19px;line-height:1.65;margin-bottom:12px;letter-spacing:0;text-wrap:balance;}
.col p{font-size:15px;line-height:1.9;color:var(--ink-2);letter-spacing:0;}
.cols+p{margin-top:var(--s4);text-align:center;font-size:17px;line-height:1.9;color:var(--ink);}

/* ---------- ブリッジ ---------- */
.bridge{padding:var(--s4) 0 0;text-align:center;}
.bridge h2{font-size:22px;line-height:1.55;}
.bridge__mark{display:block;margin:var(--s2) auto 0;width:22px;height:12px;color:var(--navy);}

/* ---------- サロンの中身 ---------- */
.svc{display:grid;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.svc__item{padding:var(--s3) 10px;text-align:center;border-top:1px solid var(--line);}
.svc__item:first-child{border-top:0;}
.svc__item i{display:block;font-style:normal;font-family:var(--mincho);font-size:26px;line-height:1.2;color:var(--gold);margin:0 auto var(--s2);letter-spacing:.04em;}
.svc__item b{display:block;font-family:var(--mincho);font-size:16px;line-height:1.5;margin-bottom:8px;letter-spacing:0;text-wrap:balance;}
.svc__item p{font-size:15px;line-height:1.85;color:var(--ink-2);letter-spacing:0;}
.core{margin-top:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:4px;text-align:center;}
.core b{display:block;font-family:var(--mincho);font-size:19px;line-height:1.5;text-wrap:balance;}
.core span{display:block;margin-top:8px;font-size:15px;line-height:1.8;color:var(--ink-2);}

/* ---------- 違い ---------- */
.diff{display:grid;gap:var(--s4);}
.diff__item{text-align:center;}
.diff__item i{display:block;font-style:normal;font-family:var(--mincho);font-size:30px;line-height:1.2;color:var(--gold);margin-bottom:10px;}
.diff__item h3{font-size:19px;line-height:1.6;margin-bottom:12px;}
.diff__item p{font-size:15px;line-height:1.9;color:var(--ink-2);}
.diff+p{margin-top:var(--s4);text-align:center;font-size:17px;line-height:1.9;color:var(--ink);}

/* ---------- 運営 ---------- */
.team{display:grid;gap:var(--s3);}
.member{border:1px solid var(--line);background:#FFFFFF;padding:var(--s3);display:flex;flex-direction:column;align-items:center;text-align:center;}
.member img{width:150px;height:150px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--line);}
.member__role{margin-top:var(--s2);font-size:15px;font-weight:700;letter-spacing:.14em;color:var(--ink-2);}
.member__name{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px;padding-bottom:var(--s2);border-bottom:1px solid var(--line);width:100%;}
.member__name b{font-family:var(--mincho);font-size:22px;line-height:1.4;}
.member__name a{font-size:15px;line-height:1.7;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;}
.member ul{list-style:none;margin:var(--s2) 0 0;padding:0;width:100%;text-align:left;}
.member li{font-size:15px;line-height:1.8;padding-left:1.4em;position:relative;color:var(--ink);}
.member li::before{content:"・";position:absolute;left:0;color:var(--gold);}
.member li+li{margin-top:4px;}
.team+p{margin-top:var(--s4);text-align:center;font-size:17px;line-height:1.9;color:var(--ink);}
.member__bio{margin-top:var(--s2);width:100%;text-align:left;font-size:15px;line-height:1.85;color:var(--ink);}
.member__bio+ul{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}

/* ---------- セミナー動画 ---------- */
.video{position:relative;max-width:880px;margin:0 auto;aspect-ratio:16/9;background:#000000;border:1px solid var(--line);}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ---------- 声 ---------- */
.voices{display:grid;gap:var(--s3);}
.voice{border:1px solid var(--line);background:#FFFFFF;display:flex;flex-direction:column;}
.voice__head{display:flex;align-items:center;gap:14px;padding:var(--s3) var(--s3) 0;}
.voice__head img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:0 0 auto;box-shadow:0 0 0 1px var(--line);}
.voice__head b{display:block;font-family:var(--mincho);font-size:18px;line-height:1.4;}
.voice__head span{display:block;font-size:15px;line-height:1.6;color:var(--ink-2);}
.voice__quote{padding:var(--s2) var(--s3) var(--s3);font-family:var(--mincho);font-size:17px;line-height:1.8;flex:1 1 auto;}
.voice__nums{border-top:1px solid var(--line);padding:var(--s2) var(--s3);display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);}
.voice__nums div{text-align:center;}
.voice__nums b{display:block;font-family:var(--mincho);font-size:19px;line-height:1.3;color:var(--gold);white-space:nowrap;letter-spacing:0;}
.voice__nums span{display:block;font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:4px;}

/* ---------- 会費 ---------- */
.plans{display:grid;gap:var(--s3);align-items:stretch;max-width:520px;margin:0 auto;}
.plan{border:1px solid var(--line);background:#FFFFFF;display:flex;flex-direction:column;}
.plan__head{background:var(--navy);color:#FFFFFF;text-align:center;padding:14px var(--s2);font-family:var(--mincho);font-size:19px;line-height:1.5;}
.plan__price{padding:var(--s3) var(--s3) var(--s2);text-align:center;border-bottom:1px solid var(--line);}
.plan__list{padding:var(--s3);margin:0;list-style:none;border-bottom:1px solid var(--line);flex:1 1 auto;}
.plan__spec{padding:var(--s3);}
.price-row{font-size:16px;line-height:1.8;}
.price-row b{font-family:var(--mincho);font-size:32px;line-height:1.3;white-space:nowrap;}
.price-row em{font-style:normal;font-size:16px;}
.plan__list li{font-size:16px;line-height:1.8;padding-left:1.6em;position:relative;}
.plan__list li+li{margin-top:10px;}
.plan__list li::before{content:"✓";position:absolute;left:0;color:var(--navy);font-weight:700;}
.plan__spec div{font-size:15px;line-height:1.8;}
.plan__spec div+div{margin-top:6px;}
.plan__cta{padding:0 var(--s3) var(--s3);text-align:center;}
.plan__cta .btn{width:100%;}
.plans+.note{text-align:center;max-width:720px;margin-left:auto;margin-right:auto;margin-top:var(--s3);}
.plans+.note a{color:var(--ink);}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:0 var(--s4);border-top:1px solid var(--line);}
.faq .qa{border-bottom:1px solid var(--line);padding:var(--s2) 0 var(--s3);}
.faq .q{display:flex;gap:12px;font-size:16px;font-weight:700;line-height:1.7;color:var(--ink);}
.faq .q::before{content:"Q";flex:0 0 auto;font-family:var(--mincho);font-weight:900;color:var(--gold);}
.faq .a{display:flex;gap:12px;margin-top:8px;font-size:15px;line-height:1.9;color:var(--ink-2);}
.faq .a::before{content:"A";flex:0 0 auto;font-family:var(--mincho);font-weight:900;color:var(--navy);}

/* ---------- 最後のCTA ---------- */
.final{background:var(--bg-alt);padding:var(--s5) 0;text-align:center;}
.final h2{font-size:24px;line-height:1.6;}
.final p.lead{margin-top:var(--s2);font-size:16px;line-height:1.9;color:var(--ink-2);}
.final .btn{margin-top:var(--s3);width:100%;max-width:420px;}

/* ---------- フッター ---------- */
.footer{background:var(--navy);color:#FFFFFF;padding:var(--s4) 0 calc(var(--s3) + 88px);}
.footer__cols{display:grid;grid-template-columns:1fr;gap:var(--s3);}
.footer__head{font-family:var(--gothic);font-size:14px;font-weight:700;letter-spacing:.14em;color:#FFFFFF;margin:0 0 var(--s1);}
.footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.footer__link{display:inline-block;font-size:15px;line-height:1.9;color:#FFFFFF;text-decoration:underline;text-underline-offset:3px;padding:2px 0;}
.footer__link:hover{text-decoration:none;}
.footer__text{font-size:15px;line-height:1.9;color:#FFFFFF;}
.footer__bottom{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--navy-2);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;}
.footer__bottom b{font-family:var(--mincho);font-size:20px;letter-spacing:.12em;}
.footer small{font-size:14px;line-height:1.8;}

/* ---------- 追従CTA（FVを過ぎたら出る） ---------- */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .3s ease;}
.sticky.on{transform:none;}
.sticky .btn{width:100%;max-width:560px;margin:0 auto;display:flex;min-height:48px;}
.sticky .note{display:block;text-align:center;font-size:14px;color:var(--ink-2);margin-top:4px;}

/* ============================================================
   タブレット以上
   ============================================================ */
@media (min-width:768px){
  body{font-size:17px;}
  .brand b{font-size:46px;}
  .header__inner{min-height:84px;}
  .sec{padding:var(--s6) 0;}
  .hero h1{font-size:34px;}
  .stat{padding:0 var(--s2);}
  .stat b{font-size:32px;}
  .sec__title{font-size:30px;}
  .sec__label{font-size:30px;}
  .brand span{display:inline;}
  .cols{grid-template-columns:repeat(2,1fr);gap:var(--s4) 0;}
  .col{padding:0 var(--s3);border-left:1px solid var(--line);}
  .col:nth-child(odd){border-left:0;}
  .svc{grid-template-columns:repeat(5,1fr);}
  .svc__item{border-top:0;border-left:1px solid var(--line);}
  .svc__item:first-child{border-left:0;}
  .diff{grid-template-columns:repeat(3,1fr);gap:0;}
  .diff__item{padding:0 var(--s3);border-left:1px solid var(--line);}
  .diff__item:first-child{border-left:0;}
  .team{grid-template-columns:repeat(3,1fr);gap:var(--s2);}
  .voices{grid-template-columns:repeat(3,1fr);gap:var(--s2);}
  .faq{grid-template-columns:1fr 1fr;}
  .final h2{font-size:30px;}
  .hero__cta .btn{width:auto;min-width:380px;}
  .note{text-align:left;}
  .bridge h2{font-size:28px;}
  .footer{padding-bottom:var(--s3);}
  .footer__cols{grid-template-columns:repeat(2,1fr);gap:var(--s4) var(--s3);}
  .sticky{display:none;}
}
@media (min-width:1024px){
  .nav a:not(.btn){display:inline;}
  .brand b{font-size:54px;}
  .header__inner{min-height:92px;}
  .hero__body{padding:var(--s6) 0;}
  .hero__grid{grid-template-columns:1fr 480px;gap:var(--s5);align-items:center;}
  .hero__inner{max-width:620px;}
  .hero h1{font-size:46px;line-height:1.4;}
  .hero__lead{font-size:17px;}
  .stat b{font-size:36px;}
  .stat span{font-size:15px;}
  .sec__title{font-size:32px;}
  .sec__label{font-size:32px;}
  .faces__row img{width:176px;height:176px;}
  .faces__row img+img{margin-left:-28px;}
  .faces__cap{font-size:16px;}
  .faces__cap b{font-size:22px;}
  .cols{grid-template-columns:repeat(4,1fr);gap:0;}
  .col:nth-child(odd){border-left:1px solid var(--line);}
  .col:first-child{border-left:0;}
}
@media (min-width:1400px){ .hero h1{font-size:52px;} }

/* ---------- 露出（JSが動いたときだけ隠す） ---------- */
html.js-anim [data-animate]{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
html.js-anim [data-animate].is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  html.js-anim [data-animate]{opacity:1;transform:none;transition:none;}
  .sticky{transition:none;}
}
