/* ========== 全体 ========== */
html{scroll-behavior:smooth;scroll-padding-top:120px;overflow-x:hidden;}
body{overflow-x:hidden;}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1;transform:none;}
.reveal-stagger > *{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1);}
.reveal-stagger.in > *{opacity:1;transform:none;}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.45s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.55s;}

/* ========== Notice bar（Figma・通常フロー） ========== */
.notice-bar{position:relative;z-index:5;background:#061C43;color:#fff;text-align:center;padding:6px 20px;font-family:'Shippori Mincho',serif;font-size:15px;letter-spacing:.04em;line-height:1.5;font-weight:500;}
/* SP専用：ブランドタグライン独立バー（PC非表示） */
.sp-h1-bar{display:none;}
.sp-only{display:none;}
.pc-only{display:inline;}
@media(max-width:768px){
  html body .sp-h1-bar{display:block !important;text-align:center !important;background:#F8F5EE !important;color:#5E4F3E !important;font-family:'Shippori Mincho',serif !important;font-size:14px !important;font-weight:600 !important;padding:8px 12px !important;letter-spacing:0 !important;border-bottom:1px solid rgba(6,28,67,.08) !important;line-height:1.4 !important;margin:0 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;box-sizing:border-box !important;width:100% !important;}
  @media(max-width:360px){
    html body .sp-h1-bar{font-size:13px !important;padding:8px 6px !important;}
  }
  .hdr .brand h1.brand-tagline{display:none !important;}
  .hdr .brand .branch{white-space:nowrap !important;}
  .hdr .btn-reserve, .hdr .btn-reserve-sp{white-space:nowrap !important;}
  .pc-only{display:none !important;}
  .sp-only{display:inline !important;}
  br.pc-only{display:none !important;}
  br.sp-only{display:inline !important;}

  /* 料金カード：desc→ul の余白詰め */
  .service .course .desc{margin:0 0 8px !important;}
  .service .course .incl{margin-top:8px !important;padding-top:12px !important;}

  /* OPTION と OXYGEN カード：左右padding 揃え */
  .service .add-card{padding:24px 20px !important;}
  .service .add-card.oxygen.no-photo{padding:24px 20px !important;}
  .service .add-card.oxygen .oxygen-body{padding:0 !important;}
  .service .add-card .kicker{white-space:normal !important;}

  /* TICKET：ボタン+リード 中央整列、::after の →重複を抑制 */
  .service .tickets{flex-direction:column !important;align-items:center !important;text-align:center !important;}
  .service .tickets .txt{text-align:center !important;}
  .service .tickets .ticket-cta-wrap{width:auto;align-items:center;text-align:center;}
  .service .tickets .ticket-cta-lead{text-align:center;}
  .service .tickets .btn::after{content:" →" !important;margin-left:6px !important;}
}
.demo-tag{display:inline-block;background:var(--gold);color:#061C43;padding:1px 8px;border-radius:3px;margin-right:8px;font-family:var(--font-label);font-size:12px;font-weight:800;letter-spacing:.15em;vertical-align:middle;}
@media(max-width:768px){
  .notice-bar{font-size:12px;padding:5px 10px;letter-spacing:.02em;}
  .demo-tag{font-size:12px;padding:1px 6px;margin-right:4px;}
}

/* ========== ヘッダー（Figmaデザイン・sticky） ========== */
.hdr{position:sticky;top:0;left:0;right:0;z-index:100;background:#FDFDFD;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;transition:all .3s;border-bottom:1px solid transparent;}
.hdr.scrolled{padding:10px 40px;box-shadow:0 4px 20px rgba(6,28,67,.08);border-bottom-color:rgba(6,28,67,.08);}
.hdr .brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.hdr .brand .logo{width:56px;height:56px;border-radius:50%;object-fit:cover;transition:transform .3s;}
.hdr .brand:hover .logo{transform:scale(1.05);}
.hdr .brand .branch{border:1px solid #061C43;color:#061C43;padding:6px 14px;border-radius:50px;font-family:'Shippori Mincho',serif;font-size:19px;letter-spacing:.1em;line-height:1.3;font-weight:600;}
.hdr .brand .brand-tagline{font-family:'Shippori Mincho',serif;font-size:12px;letter-spacing:.04em;color:#5E4F3E;line-height:1.2;padding-left:8px;border-left:1px solid rgba(6,28,67,.15);margin:0 0 0 6px;font-weight:500;display:inline-block;white-space:nowrap;}
h1.brand-tagline{font-size:12px !important;font-weight:500 !important;margin:0 0 0 6px !important;line-height:1.2 !important;display:inline-block !important;white-space:nowrap !important;}
/* h1 内の店舗名プレフィックス「癒し〜ぷ熊本店｜」は視覚非表示・SEOのみ */
.h1-seo-prefix{position:absolute !important;left:-9999px !important;width:1px !important;height:1px !important;overflow:hidden !important;font-size:1px !important;line-height:1 !important;}
/* ⭐ ヘッダーサイズ最終上書き（specificity強化） */
html body .hdr .brand span.branch:not(#__a):not(#__b){font-size:19px !important;letter-spacing:.1em !important;font-weight:600 !important;padding:6px 14px !important;}
html body .hdr .brand span.brand-tagline:not(#__a):not(#__b){font-size:12px !important;font-weight:500 !important;letter-spacing:.04em !important;white-space:nowrap !important;}
html body h1.brand-tagline:not(#__a):not(#__b){font-size:12px !important;letter-spacing:.04em !important;white-space:nowrap !important;}
/* タブレット中間サイズ: さらに縮小して1行維持 */
@media(max-width:1100px){
  html body .hdr .brand span.brand-tagline:not(#__a):not(#__b),
  html body h1.brand-tagline:not(#__a):not(#__b){font-size:11px !important;letter-spacing:.02em !important;padding-left:6px !important;margin-left:4px !important;}
  html body .hdr .brand span.branch:not(#__a):not(#__b){font-size:16px !important;padding:5px 12px !important;}
}
/* SP: 完全非表示 */
@media(max-width:700px){
  html body .hdr .brand span.branch:not(#__a):not(#__b){font-size:14px !important;padding:4px 10px !important;letter-spacing:.05em !important;}
  html body .hdr .brand span.brand-tagline:not(#__a):not(#__b),
  html body h1.brand-tagline:not(#__a):not(#__b){display:none !important;}
}
.hdr nav{display:flex;gap:30px;align-items:center;}
.hdr nav a.link{color:#212529;text-decoration:none;font-family:'Shippori Mincho',serif;font-weight:700;font-size:17px;letter-spacing:.05em;position:relative;padding:4px 0;transition:color .2s;}
.hdr nav a.link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#A8842C;transition:width .3s;}
.hdr nav a.link:hover{color:#A8842C;}
.hdr nav a.link:hover::after{width:100%;}
.hdr .btn-reserve{background:#A8842C;color:#fff;padding:17px 32px;border-radius:500px;font-family:'Shippori Mincho',serif;font-weight:700;font-size:17px;letter-spacing:.05em;display:inline-flex;align-items:center;gap:12px;text-decoration:none;transition:all .3s;box-shadow:0 6px 16px rgba(168,132,44,.3);}
.hdr .btn-reserve:hover{background:#8B6B22;transform:translateY(-2px);box-shadow:0 10px 24px rgba(168,132,44,.4);}
.hdr .btn-reserve img{width:20px;height:20px;}
@media(max-width:1180px){.hdr nav{gap:20px;}.hdr nav a.link{font-size:15px;}}
@media(max-width:1000px){.hdr nav .link{display:none;}.hdr{padding:14px 24px;}.hdr .btn-reserve{padding:14px 24px;font-size:14px;}}
@media(max-width:600px){.hdr .brand .branch{font-size:13px;padding:3px 8px;}.hdr .btn-reserve span{display:none;}}

/* ========== HERO（Figmaデザイン精密実装 1440×650・transform:scale方式） ========== */
/* 全viewport幅に対して均等スケール。基準1440x650、他幅は等比拡大/縮小 */
.hero{position:relative;width:100%;background:#061C43;overflow:hidden;padding:0;display:block;height:calc(100vw * 650 / 1440);max-height:none;}
.hero .fv-canvas{
  position:relative;
  width:1440px;height:650px;
  transform-origin:top left;
  transform:scale(calc(100vw / 1440));
  overflow:hidden;
}
.hero .bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.hero .bg img{position:absolute;top:-17.92%;left:-1.91%;width:102.99%;height:152.1%;max-width:none;object-fit:cover;display:block;}

/* テキストは1440基準の絶対位置指定 */
.hero .fv-catch{
  position:absolute;left:86px;top:180px;transform:translateY(-50%);
  margin:0;
  font-family:'Shippori Mincho',serif;font-weight:500;
  font-size:20px;line-height:1.7;letter-spacing:1px;
  color:#fff;white-space:nowrap;
  text-shadow:0 4px 20px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.6);
  z-index:2;
}
.hero .fv-catch p{margin:0;line-height:1.7;}

.hero .fv-title-1{
  position:absolute;left:86px;top:268px;transform:translateY(-50%);
  margin:0;
  font-family:'Shippori Mincho',serif;font-weight:700;
  font-size:68px;line-height:1;letter-spacing:3.4px;
  color:#fff;white-space:nowrap;
  text-shadow:0 4px 24px rgba(191,158,60,.5);
  z-index:2;
}

.hero .fv-title-2{
  position:absolute;left:70px;top:351px;transform:translateY(-50%);
  margin:0;
  font-family:'Shippori Mincho',serif;font-weight:700;
  font-size:72px;line-height:1;letter-spacing:3.6px;
  background:linear-gradient(180deg, #F5D889 0%, #D4A93E 50%, #A8842C 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  color:#D4A93E;
  white-space:nowrap;
  filter:drop-shadow(0 4px 24px rgba(191,158,60,.5));
  z-index:2;
}

/* 3項目 権威性 (FV下部) - 1440基準の絶対位置 */
.hero .fv-authority{
  position:absolute;
  left:86px;top:calc(50% + 130px);
  transform:translateY(-50%);
  display:flex;align-items:center;gap:24px;
  padding:20px 28px;
  border:2px solid #D4A93E;border-radius:14px;
  background:linear-gradient(134.4deg, rgba(6,28,67,.65) 0%, rgba(20,46,92,.5) 100%);
  backdrop-filter:blur(8px);
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  z-index:3;
}
.hero .fv-auth-item{display:flex;align-items:center;gap:10px;}
.hero .fv-auth-item .auth-icon{width:32px;height:32px;flex-shrink:0;}
.hero .fv-auth-item .auth-icon svg{width:100%;height:100%;display:block;}
.hero .fv-auth-item .auth-num{
  font-family:'Shippori Mincho',serif;font-weight:800;
  font-size:36px;line-height:1;letter-spacing:-.02em;
  background:linear-gradient(180deg, #F8E29A 0%, #D4A93E 50%, #A8842C 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  color:#D4A93E;
}
.hero .fv-auth-item .auth-num .unit{font-size:14px;font-weight:600;margin-left:2px;color:#F5D889;-webkit-text-fill-color:#F5D889;}
.hero .fv-auth-item .auth-label{display:flex;flex-direction:column;gap:2px;color:#fff;font-family:'Shippori Mincho',serif;line-height:1.3;}
.hero .fv-auth-item .auth-label .src{font-size:13px;font-weight:600;letter-spacing:.03em;}
.hero .fv-auth-item .auth-label .src .tentative{font-size:12px;background:rgba(191,158,60,.3);color:#F5D889;padding:1px 4px;border-radius:3px;margin-left:4px;font-weight:500;}
.hero .fv-auth-item .auth-label .meta{font-size:12px;opacity:.75;font-weight:400;letter-spacing:.02em;}
.hero .auth-divider{width:1px;height:44px;background:linear-gradient(180deg, transparent, rgba(245,216,137,.5), transparent);flex-shrink:0;}
.hero .fv-auth-note{
  position:absolute;left:86px;
  top:calc(50% + 190px);
  bottom:auto;
  margin:0;color:rgba(255,255,255,.65);font-size:12px;letter-spacing:.05em;z-index:3;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}
/* FV メインCTA（相場：店舗リラク FV に必須） */
.hero .fv-cta{
  position:absolute; left:86px; top:calc(50% + 230px);
  display:inline-flex; align-items:center; gap:14px;
  padding:16px 32px;
  background:linear-gradient(135deg,#F8E29A 0%, #DDA700 50%, #BF9E3C 100%);
  color:#061C43; font-family:'Shippori Mincho',serif;
  font-weight:800; text-decoration:none;
  border-radius:999px;
  box-shadow:0 12px 30px rgba(196,139,0,.45), 0 0 0 2px rgba(255,255,255,.35);
  z-index:5;
  transition:transform .3s, box-shadow .3s;
}
.hero .fv-cta:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(196,139,0,.55), 0 0 0 2px rgba(255,255,255,.5);
}
.hero .fv-cta-lead{font-size:11px;letter-spacing:.15em;opacity:.85;font-weight:700;}
.hero .fv-cta-main{font-size:17px;letter-spacing:.05em;}
.hero .fv-cta-arrow{font-size:20px;font-weight:900;margin-left:6px;}

/* Mobile: canvas を縦積みに切替 */
@media(max-width:768px){
  .hero{height:auto;min-height:520px;}
  .hero .fv-canvas{
    width:100%;height:auto;min-height:520px;
    transform:none;
    padding:80px 24px 40px;
    display:flex;flex-direction:column;justify-content:center;
  }
  .hero .bg img{top:0;left:0;width:100%;height:100%;object-position:center 30%;}
  .hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(6,28,67,.6) 0%, rgba(6,28,67,.35) 100%);}
  .hero .fv-catch,
  .hero .fv-title-1,
  .hero .fv-title-2,
  .hero .fv-authority,
  .hero .fv-auth-note,
  .hero .fv-cta{position:static;transform:none;left:auto;top:auto;bottom:auto;}
  /* SP FV CTA：ボタン大型化・リードをボタン外上部に浮かせる */
  .hero .fv-cta{
    position:relative !important;
    margin:40px auto 12px !important;
    align-self:center !important;
    padding:18px 28px !important;
    width:auto;
    max-width:none;
    box-shadow:0 12px 30px rgba(196,139,0,.45), 0 0 0 3px rgba(255,255,255,.5);
    white-space:nowrap !important;
  }
  .hero .fv-auth-note{margin-bottom:4px !important;}
  .hero .fv-cta .fv-cta-inner{display:flex;flex-direction:row;align-items:center;gap:2px;white-space:nowrap;}
  .hero .fv-cta-lead{
    position:absolute !important;
    top:auto !important;
    bottom:calc(100% - 6px) !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    background:#04122E !important;
    color:#F8E29A !important;
    padding:4px 14px !important;
    font-size:11px !important;
    letter-spacing:.15em !important;
    border-radius:999px !important;
    border:1px solid rgba(245,216,137,.5) !important;
    white-space:nowrap !important;
  }
  .hero .fv-cta-main{font-size:15px !important;letter-spacing:.02em !important;white-space:nowrap !important;}
  .hero .fv-cta-arrow{font-size:18px !important;margin-left:10px !important;white-space:nowrap !important;}
  .hero .fv-catch{font-size:14px;letter-spacing:.05em;margin:0 0 16px;white-space:normal;}
  .hero .fv-title-1{font-size:40px;letter-spacing:.05em;margin:0 0 4px;}
  .hero .fv-title-2{font-size:44px;letter-spacing:.05em;margin:0 0 32px;}
  .hero .fv-authority{flex-direction:column;align-items:stretch;padding:14px 16px;gap:10px;}
  .hero .fv-auth-item{gap:12px;padding:8px 0;border-bottom:1px solid rgba(245,216,137,.15);}
  .hero .fv-auth-item:last-of-type{border-bottom:none;}
  .hero .fv-auth-item .auth-num{font-size:26px;}
  .hero .fv-auth-item .auth-label .src{font-size:12px;}
  .hero .fv-auth-item .auth-label .meta{font-size:12px;}
  .hero .auth-divider{display:none;}
  .hero .fv-auth-note{margin-top:12px;text-align:center;font-size:12px;}
}

/* ========== BLOCK 01: ABOUT（お悩みマップ + 初回特別プライス） ========== */
.worry{padding:80px 20px;background:var(--bg);position:relative;overflow:hidden;overflow-x:clip;}
.worry::before{content:"";position:absolute;top:60px;right:0;width:400px;height:400px;background:radial-gradient(circle,rgba(191,158,60,.06),transparent 70%);border-radius:50%;transform:translate(50%,0);}
.worry .head{text-align:center;max-width:800px;margin:0 auto 40px;}
.worry .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.worry .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.worry .head p{color:var(--hq-navy);line-height:2;font-size:15px;}
/* お悩みグリッド 6 */
/* Phase 3-1後修正: 4件を並べる。狭幅で崩れないよう 1200px以上のみ4カラム(1×4)、それ以下は2×2 */
.worry .worry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:900px;margin:0 auto 60px;align-items:start;}
@media(min-width:1200px){
  .worry .worry-grid{grid-template-columns:repeat(4,1fr);max-width:1240px;}
}
.worry .worry{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);transition:transform .4s;position:relative;display:flex;flex-direction:column;}
.worry .worry:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(6,28,67,.15);}
.worry .worry .photo{aspect-ratio:16/9;overflow:hidden;background:var(--bg2);}
.worry .worry .photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s;}
.worry .worry:hover .photo img{transform:scale(1.08);}
.worry .worry .n{position:absolute;top:16px;left:16px;background:var(--gold);color:#061C43;font-family:var(--font-serif);font-weight:800;font-size:14px;padding:4px 12px;border-radius:6px;z-index:2;letter-spacing:.1em;}
.worry .worry .body{padding:20px 18px;}
.worry .worry h3{font-family:var(--font-serif);font-size:16px;color:var(--band);margin:0;line-height:1.6;}
/* 矢印帯 */
.worry .arrow-band{text-align:center;margin:0 auto 60px;max-width:800px;}
.worry .arrow-band .arrow{color:var(--gold);font-size:32px;font-weight:800;line-height:1;margin-bottom:14px;}
.worry .arrow-band .lead{font-family:var(--font-serif);font-size:clamp(22px,3vw,32px);color:var(--band);font-weight:700;line-height:1.5;}
.worry .arrow-band .lead .em{color:var(--gold);border-bottom:2px solid var(--gold);padding-bottom:2px;}
/* 初回特別プライス */
.worry .special{max-width:1000px;margin:0 auto;background:linear-gradient(135deg,var(--band) 0%, var(--band2) 100%);color:#fff;border-radius:20px;padding:44px 40px;box-shadow:0 20px 50px rgba(6,28,67,.25);position:relative;overflow:hidden;}
.worry .special::before{content:"";position:absolute;top:-50px;right:-50px;width:200px;height:200px;background:radial-gradient(circle,rgba(191,158,60,.2),transparent 70%);border-radius:50%;}
.worry .special .kicker{color:var(--gold);font-family:var(--font-label);letter-spacing:.25em;font-size:12px;font-weight:700;margin-bottom:12px;text-align:center;}
.worry .special h3{font-family:var(--font-serif);text-align:center;font-size:clamp(24px,3vw,32px);margin:0 0 28px;line-height:1.5;}
.worry .special h3 .em{color:var(--gold);}
.worry .special .plans{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative;z-index:2;}
.worry .special .plan{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:24px;text-align:center;backdrop-filter:blur(4px);}
.worry .special .plan .time{font-family:var(--font-label);color:var(--gold);letter-spacing:.15em;font-size:14px;font-weight:700;}
.worry .special .plan .name{font-family:var(--font-serif);font-size:20px;margin:6px 0 12px;}
.worry .special .plan .before{font-size:14px;color:rgba(255,255,255,.5);text-decoration:line-through;}
.worry .special .plan .now{font-family:var(--font-serif);font-size:34px;color:var(--gold);font-weight:800;line-height:1;margin:4px 0 8px;}
.worry .special .plan .now small{font-size:14px;font-weight:400;color:#fff;opacity:.8;}
.worry .special .plan .badge{display:inline-block;background:var(--gold);color:#061C43;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:700;margin-top:8px;}
@media(max-width:900px){
  .worry .worry-grid{grid-template-columns:repeat(2,1fr);}
  .worry .special .plans{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .worry .worry-grid{grid-template-columns:1fr;max-width:400px;margin-left:auto;margin-right:auto;}
}

/* ========== BLOCK 02: SERVICE（メニュー3コース+オプション+酸素カプセル） ========== */
.service{padding:120px 20px;background:var(--bg2);position:relative;}
.service .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.service .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.service .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.service .head p{color:var(--hq-navy);line-height:2;font-size:15px;}
/* 3コース */
.service .courses{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:24px;max-width:1200px;margin:0 auto 50px;align-items:stretch;}
.service .course{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 15px 40px rgba(6,28,67,.08);display:flex;flex-direction:column;transition:transform .5s;}
.service .course:hover{transform:translateY(-6px);}
.service .course .photo{aspect-ratio:16/10;overflow:hidden;background:var(--band);}
.service .course .photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s;}
.service .course:hover .photo img{transform:scale(1.08);}
.service .course.featured{transform:scale(1.03);border:2px solid var(--gold);box-shadow:0 25px 60px rgba(191,158,60,.25);position:relative;overflow:visible;}
.service .course.featured .photo{border-radius:20px 20px 0 0;overflow:hidden;}
.service .course.featured:hover{transform:scale(1.03) translateY(-6px);}
.service .course.featured::before{content:"★人気No.1★";position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#F8E29A,#DDA700,#BF9E3C);color:#061C43;padding:10px 32px;border-radius:999px;font-size:15px;font-weight:900;letter-spacing:.18em;z-index:999;box-shadow:0 8px 20px rgba(196,139,0,.5),0 0 0 3px rgba(255,255,255,.95);text-shadow:0 1px 2px rgba(255,255,255,.4);animation:hq-pulse 2.4s ease-in-out infinite;white-space:nowrap;}
@media(max-width:700px){.service .course.featured::before{padding:8px 20px;font-size:13px;letter-spacing:.1em;white-space:nowrap;}}
@keyframes hq-pulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.06)}}
.service .course .top{padding:28px 24px 20px;background:linear-gradient(180deg,rgba(6,28,67,.03),transparent);text-align:center;border-bottom:1px dashed var(--line);}
.service .course .cat{color:var(--gold-text);font-family:var(--font-label);letter-spacing:.2em;font-size:12px;font-weight:700;}
.service .course h3{font-family:var(--font-serif);font-size:24px;color:var(--band);margin:6px 0 4px;}
.service .course .time{color:var(--muted);font-size:13px;letter-spacing:.05em;}
.service .course .price{padding:18px 24px;text-align:center;}
.service .course .before{color:var(--muted);font-size:13px;text-decoration:line-through;}
.service .course .now{font-family:var(--font-serif);color:var(--gold-text);font-weight:800;font-size:34px;line-height:1;margin:4px 0;}
.service .course .now small{font-size:14px;font-weight:400;color:var(--ink);opacity:.7;}
.service .course .init{display:inline-block;background:var(--marker);color:var(--band);padding:3px 10px;border-radius:6px;font-size:12px;font-weight:700;margin-top:4px;}
.service .course .body{padding:0 24px 24px;flex:1;display:flex;flex-direction:column;}
.service .course .desc{color:#3d3630;line-height:1.9;font-size:13.5px;margin:0 0 16px;flex:1;}
.service .course .incl{list-style:none;padding:16px 0 0;margin:0 0 20px;border-top:1px solid var(--line);}
.service .course .incl li{padding:5px 0 5px 22px;position:relative;font-size:12.5px;color:var(--muted);}
.service .course .incl li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:800;}
.service .course .more{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold-btn);color:#fff;font-weight:700;font-size:13px;text-decoration:none;padding:14px 20px;border-radius:999px;transition:all .3s;box-shadow:0 6px 16px rgba(191,158,60,.3);}
.service .course.featured .more{background:linear-gradient(135deg,var(--gold),var(--coral));}
.service .course .more:hover{transform:translateY(-2px);}
.service .course .more::after{content:"→";}
/* オプション&酸素カプセル横並び */
.service .add-grid{max-width:1200px;margin:80px auto 40px;display:grid;grid-template-columns:1fr 1fr;gap:24px;}   /* 料金カードとの間に余白80px */
.service .add-card{background:#fff;border-radius:16px;padding:32px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;overflow:hidden;}
.service .add-card.oxygen{background:linear-gradient(135deg,rgba(6,28,67,.92),rgba(51,53,67,.85)),url('https://iyasheep.lishinc.co.jp/wp-content/themes/sango-theme-child/assets/img/machine-bg-pc.webp') center/cover;color:#fff;border:none;padding:0;overflow:hidden;}
.service .add-card.oxygen{display:grid;grid-template-columns:200px 1fr;gap:0;}
.service .add-card.oxygen.no-photo{display:block;padding:28px 32px;}
.service .add-card.oxygen .oxygen-photo{overflow:hidden;position:relative;background:linear-gradient(180deg,rgba(191,158,60,.25),rgba(191,158,60,.05));display:flex;align-items:center;justify-content:center;}
.service .add-card.oxygen .oxygen-photo img{max-width:180px;height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.4));}
.service .add-card.oxygen .oxygen-body{padding:28px 32px;}
@media(max-width:600px){.service .add-card.oxygen{grid-template-columns:1fr;}.service .add-card.oxygen .oxygen-photo{padding:24px 0;}.service .add-card.oxygen .oxygen-photo img{max-width:120px;}}
.service .add-card.oxygen h3{color:#fff;}
.service .add-card.oxygen .row{border-bottom-color:rgba(255,255,255,.15);}
.service .add-card.oxygen .row .name{color:#fff;}
.service .add-card.oxygen .row .price{color:var(--gold);}
.service .add-card.oxygen .row .price small{color:rgba(255,255,255,.6);}
.service .add-card.oxygen .note{color:rgba(255,255,255,.85);}
.service .add-card.oxygen .kicker{color:var(--gold);}
.service .add-card .kicker{color:var(--gold-text);font-family:var(--font-label);letter-spacing:.2em;font-size:12px;font-weight:700;margin-bottom:8px;}
.service .add-card h3{font-family:var(--font-serif);font-size:22px;color:var(--band);margin:0 0 18px;line-height:1.5;}
.service .add-card .row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line);}
.service .add-card .row:last-child{border-bottom:none;}
.service .add-card .row .name{font-size:14px;color:var(--ink);}
.service .add-card .row .price{font-family:var(--font-serif);color:var(--gold);font-weight:700;font-size:18px;}
.service .add-card .row .price small{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px;}
.service .add-card .note{font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.7;}
/* 回数券 */
.service .tickets{max-width:1200px;margin:0 auto;background:linear-gradient(135deg,var(--marker),var(--peach));border-radius:16px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.service .tickets .txt{flex:1;min-width:250px;}
.service .tickets .kicker{color:var(--gold-text);font-family:var(--font-label);letter-spacing:.2em;font-size:12px;font-weight:700;}
.service .tickets h3{font-family:var(--font-serif);font-size:22px;color:var(--band);margin:6px 0 6px;}
.service .tickets p{font-size:13px;color:var(--ink);margin:0;line-height:1.8;}
.service .tickets .btn{background:var(--band);color:#fff;padding:14px 30px;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;transition:all .3s;white-space:nowrap;line-height:1.4;text-align:center;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.05em;}
.service .tickets .ticket-cta-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:10px;}
.service .tickets .ticket-cta-lead{font-family:var(--font-serif);color:var(--band);font-size:14px;font-weight:700;margin:0;letter-spacing:.05em;}
.service .tickets .btn:hover{background:var(--band2);transform:translateY(-2px);}
@media(max-width:900px){
  .service .courses{grid-template-columns:1fr;max-width:500px;}
  .service .course.featured{transform:none;}
  .service .course.featured:hover{transform:translateY(-6px);}
  .service .add-grid{grid-template-columns:1fr;}
}

/* ========== BLOCK 03: FEATURE（選ばれる4理由 + 段階ケア3段階） ========== */
.feature{padding:120px 20px;background:var(--bg);position:relative;}
.feature .head{text-align:center;max-width:800px;margin:0 auto 80px;}
.feature .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.feature .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.feature .head p{color:var(--hq-navy);line-height:2;font-size:15px;}
/* 4理由グリッド（実写強化） */
.feature .reasons{max-width:1200px;margin:0 auto 100px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.feature .reason{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;transition:transform .3s;}
.feature .reason:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(6,28,67,.12);}
.feature .reason .num{position:absolute;top:-18px;left:20px;background:linear-gradient(135deg,var(--gold),var(--coral));color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:800;font-size:18px;box-shadow:0 6px 14px rgba(191,158,60,.4);z-index:3;}
.feature .reason .num-img{position:absolute;top:-20px;right:16px;width:64px;height:64px;z-index:3;filter:drop-shadow(0 6px 14px rgba(0,0,0,.2));}
.feature .reason .num-img img{width:100%;height:100%;object-fit:contain;}
.feature .reason .photo{aspect-ratio:5/4;overflow:hidden;background:var(--band);}
.feature .reason .photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s;}
.feature .reason:hover .photo img{transform:scale(1.05);}
.feature .reason .body{padding:24px 22px;text-align:center;}
.feature .reason h3{font-family:var(--font-serif);font-size:17px;color:var(--band);margin:0 0 10px;line-height:1.5;}
.feature .reason p{font-size:13px;color:var(--muted);line-height:1.9;margin:0;}
/* 段階ケア */
.feature .stages{max-width:1100px;margin:0 auto;}
.feature .stages-head{text-align:center;margin-bottom:40px;}
.feature .stages-head .kicker{color:var(--gold);font-family:var(--font-label);letter-spacing:.25em;font-size:12px;font-weight:700;}
.feature .stages-head h3{font-family:var(--font-serif);font-size:clamp(22px,3vw,30px);color:var(--band);margin:8px 0 0;}
.feature .stages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative;}
.feature .stage{background:#fff;border-radius:16px;padding:28px 24px;border:1px solid var(--line);position:relative;text-align:center;}
.feature .stage.hi{background:linear-gradient(180deg,var(--marker),#fff);border-color:var(--gold);}
.feature .stage .period{font-family:var(--font-label);color:var(--gold);letter-spacing:.15em;font-size:12px;font-weight:700;}
.feature .stage .stg-num{font-family:var(--font-serif);font-size:44px;color:var(--band);font-weight:800;line-height:1;margin:6px 0;}
.feature .stage h4{font-family:var(--font-serif);font-size:18px;color:var(--band);margin:8px 0 12px;line-height:1.5;}
.feature .stage p{font-size:13px;color:var(--muted);line-height:1.9;margin:0;}
.feature .stage:not(:last-child)::after{content:"→";position:absolute;top:50%;right:-16px;transform:translateY(-50%);color:var(--gold);font-size:20px;font-weight:700;z-index:2;background:var(--bg);padding:0 4px;}
@media(max-width:900px){
  .feature .reasons{grid-template-columns:repeat(2,1fr);}
  .feature .stages-grid{grid-template-columns:1fr;}
  .feature .stage:not(:last-child)::after{content:"↓";right:50%;top:auto;bottom:-24px;transform:translateX(50%);}
}
@media(max-width:600px){
  .feature .reasons{grid-template-columns:1fr;max-width:400px;margin-left:auto;margin-right:auto;}
}

/* ========== BLOCK 04: VOICE（医師推薦メイン + ★顧客声プレースホルダー） ========== */
.voice{padding:120px 20px;background:linear-gradient(180deg,var(--bg2),var(--bg));position:relative;}
.voice .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.voice .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.voice .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
/* 医師推薦カード */
.voice .doctor{max-width:1100px;margin:0 auto 40px;background:linear-gradient(135deg,var(--band) 0%, var(--band2) 100%);color:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 60px rgba(6,28,67,.3);display:grid;grid-template-columns:340px 1fr;position:relative;}
.voice .doctor::before{content:"";position:absolute;top:-80px;right:-80px;width:300px;height:300px;background:radial-gradient(circle,rgba(191,158,60,.2),transparent 70%);border-radius:50%;pointer-events:none;}
.voice .doctor .side{padding:34px 28px;background:linear-gradient(180deg,rgba(191,158,60,.1),transparent);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;z-index:2;}
.voice .doctor .side .badge{display:inline-block;background:var(--gold);color:#061C43;padding:5px 14px;border-radius:6px;font-size:12px;font-weight:800;letter-spacing:.15em;margin-bottom:16px;}
.voice .doctor .side .photo{width:200px;height:200px;border-radius:50%;overflow:hidden;background:#0A1E42;border:4px solid var(--gold);box-shadow:0 15px 40px rgba(0,0,0,.4), 0 0 0 8px rgba(191,158,60,.15);margin-bottom:16px;position:relative;}
.voice .doctor .side .photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%;}
.voice .doctor .side .photo::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%, transparent 55%, rgba(6,28,67,.35) 100%);pointer-events:none;z-index:2;}
.voice .doctor .side .name,
.voice .doctor .side .name *{font-family:var(--font-serif);font-size:22px;font-weight:800;line-height:1.4;color:#ffffff!important;}
.voice .doctor .side .title,
.voice .doctor .side .title *{font-size:12px;opacity:.9;margin-top:6px;letter-spacing:.05em;line-height:1.6;color:#ffffff!important;}
.voice .doctor .side .title strong{color:var(--gold)!important;}
@media(max-width:900px){.voice .doctor{grid-template-columns:1fr;}.voice .doctor .side .photo{width:160px;height:160px;}}
.voice .doctor .body{padding:44px 40px;position:relative;z-index:2;}
.voice .doctor .body::before{content:"❞";position:absolute;top:0;right:20px;font-size:120px;color:var(--gold);opacity:.2;font-family:serif;line-height:1;pointer-events:none;}
.voice .doctor .body .kicker{color:var(--gold)!important;font-family:var(--font-label);letter-spacing:.25em;font-size:12px;font-weight:700;margin-bottom:14px;}
.voice .doctor .body h3{font-family:var(--font-serif);font-size:clamp(20px,2.5vw,26px);color:#ffffff!important;line-height:1.6;margin:0 0 20px;}
.voice .doctor .body blockquote,
.voice .doctor .body blockquote *{font-size:15px;line-height:2;margin:0;color:#ffffff!important;font-weight:400;}
.voice .doctor .body blockquote{opacity:0.92;}
/* 顧客声プレースホルダー */
.voice .customer-note{max-width:1000px;margin:0 auto;background:#fff;border:2px dashed var(--gold);border-radius:16px;padding:28px 32px;text-align:center;}
.voice .customer-note .badge{display:inline-block;background:var(--gold);color:#061C43;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:800;letter-spacing:.15em;margin-bottom:12px;}
.voice .customer-note h4{font-family:var(--font-serif);font-size:18px;color:var(--band);margin:0 0 10px;}
.voice .customer-note p{font-size:13px;color:var(--muted);line-height:1.8;margin:0;}
@media(max-width:900px){
  .voice .doctor{grid-template-columns:1fr;}
  .voice .doctor .side{padding:32px 24px;}
  .voice .doctor .body{padding:32px 24px;}
}

/* ========== BLOCK 05: FAQ（カテゴリタブ + アコーディオン + キャンセルポリシー枠） ========== */
.faq{padding:120px 20px;background:var(--bg);}
.faq .head{text-align:center;max-width:800px;margin:0 auto 40px;}
.faq .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.faq .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.faq .tabs{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:36px;padding:0 20px;}
.faq .tab{background:transparent;border:1.5px solid var(--line);color:var(--muted);padding:10px 20px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:700;font-family:inherit;transition:all .3s;}
.faq .tab.active{background:var(--band);border-color:var(--band);color:#fff;box-shadow:0 6px 16px rgba(6,28,67,.2);}
.faq .tab:hover:not(.active){border-color:var(--band);color:var(--band);}
.faq .list{max-width:900px;margin:0 auto;}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;overflow:hidden;transition:box-shadow .3s;}
.faq details[open]{box-shadow:0 15px 40px rgba(6,28,67,.08);border-color:var(--gold);}
.faq summary{padding:22px 26px;cursor:pointer;font-weight:700;font-size:15px;color:var(--band);display:flex;align-items:center;gap:16px;list-style:none;transition:color .2s;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--gold-text);}
.faq summary::before{content:"Q";font-family:var(--font-label);font-weight:700;color:#fff;background:var(--band);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;transition:transform .3s;}
.faq details[open] summary::before{transform:rotate(360deg);background:var(--gold);}
.faq summary::after{content:"＋";margin-left:auto;color:var(--band);font-weight:700;font-size:22px;transition:transform .3s;}
.faq details[open] summary::after{content:"−";color:var(--gold);}
.faq .ans{padding:0 26px 24px 76px;font-size:14px;line-height:2;color:#3d3630;}
.faq details.hidden{display:none;}
@media(max-width:600px){
  .faq .ans{padding:0 20px 20px 20px;}
}

/* ========== BLOCK 06: COMPANY（アクセス+店舗情報+駐車場） ========== */
.company{padding:120px 20px;background:var(--bg2);}
.company .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.company .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.company .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
/* アクセス3ステップ */
.company .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto 60px;}
.company .step{background:#fff;border-radius:16px;padding:28px 22px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;}
.company .step .n{font-family:var(--font-label);font-size:12px;letter-spacing:.2em;color:var(--gold);font-weight:700;}
.company .step .ico{width:56px;height:56px;margin:14px auto;background:linear-gradient(135deg,rgba(6,28,67,.06),rgba(191,158,60,.1));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--band);}
.company .step .ico svg{width:30px;height:30px;}
.company .step h3{font-family:var(--font-serif);font-size:15px;margin:0 0 8px;color:var(--band);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.company .step p{font-size:12px;color:var(--muted);line-height:1.7;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
html body .company .step h3:not(#__a):not(#__b),
html body .company .step p:not(#__a):not(#__b){white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.company .step:not(:last-child)::after{content:"→";position:absolute;top:50%;right:-16px;transform:translateY(-50%);color:var(--gold);font-size:20px;font-weight:700;z-index:2;background:var(--bg2);padding:0 4px;}
/* 情報+地図 */
.company .grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;}
.company .map{aspect-ratio:auto;height:auto;min-height:500px;max-height:none;}
.company .info .rows{background:#fff;border-radius:16px;padding:12px 20px;border:1px solid var(--line);box-shadow:var(--shadow);}
.company .info .row{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center;}
.company .info .row:last-child{border-bottom:none;}
.company .info .lbl{font-family:var(--font-serif);font-size:12px;letter-spacing:.08em;color:var(--gold);font-weight:700;padding-top:0;white-space:nowrap;}
.company .info .val{font-size:12px;color:var(--ink);line-height:1.5;white-space:nowrap;overflow:visible;text-overflow:clip;}
.company .info .row{grid-template-columns:70px 1fr;gap:16px;padding:14px 0;align-items:center;}
@media(max-width:700px){
  .company .info .val{white-space:normal;overflow:visible;font-size:13px;line-height:1.6;}
  .company .info .row{grid-template-columns:78px 1fr;align-items:start;}
  .company .map{min-height:280px;aspect-ratio:1/1;}
}
.company .info .val a{color:var(--band);font-weight:700;text-decoration:none;}
.company .info .val a:hover{color:var(--gold);}
.company .info .row.hi{background:var(--marker);border-radius:8px;padding:16px 12px;margin:8px 0;}
.company .info .row.hi .lbl{color:var(--band);}
.company .info .row.hi .val{font-weight:700;color:var(--band);}
.company .map{aspect-ratio:1/1;border-radius:20px;overflow:hidden;box-shadow:0 20px 50px rgba(6,28,67,.15);position:relative;background:var(--band);}
.company .map iframe{width:100%;height:100%;border:0;}

@media(max-width:900px){
  .company .steps{grid-template-columns:1fr;}
  .company .step:not(:last-child)::after{content:"↓";right:50%;top:auto;bottom:-24px;transform:translateX(50%);}
  .company .grid{grid-template-columns:1fr;}
}

/* ========== BLOCK 07: CONTACT（Web予約 beauty.hotpepper.jp + 電話 + LINE 3導線） ========== */
.contact{padding:120px 20px 100px;background:linear-gradient(135deg,var(--band) 0%, var(--band2) 100%);color:#fff;position:relative;overflow:hidden;overflow-x:clip;}
.contact::before{content:"";position:absolute;top:0;right:0;width:400px;height:400px;background:radial-gradient(circle,rgba(191,158,60,.15) 0%,transparent 70%);border-radius:50%;transform:translate(50%,-50%);pointer-events:none;}
.contact::after{content:"";position:absolute;bottom:0;left:0;width:400px;height:400px;background:radial-gradient(circle,rgba(4,170,159,.1) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,50%);pointer-events:none;}
.contact .wrap{position:relative;z-index:2;max-width:1100px;margin:0 auto;}
.contact .head{text-align:center;margin-bottom:60px;}
.contact .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.contact .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:#fff;}
.contact .head p{font-size:15px;line-height:2;color:rgba(255,255,255,.9);max-width:52em;margin:0 auto;}
.contact .head .em{color:var(--gold);}
/* 3導線カード */
.contact .three{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:24px;max-width:1100px;margin:0 auto;}
@media(max-width:768px){.contact .three{grid-template-columns:1fr;max-width:420px;}}
.contact .card.line-card{background:linear-gradient(135deg,#06C755,#05a548);border-color:#06C755;color:#fff;}
.contact .card.line-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 45px rgba(6,199,85,.35);}
.contact .card.line-card .kicker{color:rgba(255,255,255,.9);}
.contact .card.line-card .ico{background:transparent;color:#fff;}
.contact .card.line-card .line-btn{background:#fff;color:#06C755;}
.contact .card .btn.line-btn{color:#06C755 !important;background:#fff !important;}
.contact .card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:36px 28px;text-align:center;backdrop-filter:blur(10px);transition:all .3s;position:relative;overflow:hidden;}
.contact .card:hover{transform:translateY(-6px);background:rgba(255,255,255,.1);}
.contact .card.primary{background:linear-gradient(135deg,var(--gold),var(--coral));border-color:transparent;color:#061C43;box-shadow:0 20px 50px rgba(191,158,60,.4);}
.contact .card.primary:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 30px 60px rgba(191,158,60,.5);}
.contact .card .kicker{font-family:var(--font-label);letter-spacing:.25em;font-size:12px;font-weight:700;margin-bottom:12px;opacity:.9;}
.contact .card.primary .kicker{color:#061C43;}
.contact .card .ico{width:64px;height:64px;margin:0 auto 16px;color:#fff;display:flex;align-items:center;justify-content:center;}
.contact .card.primary .ico{color:#061C43;}
.contact .card .ico svg{width:100%;height:100%;}
.contact .card h3{font-family:var(--font-serif);font-size:22px;margin:0 0 8px;color:#fff;line-height:1.4;}
.contact .card.primary h3{color:#061C43;}
.contact .card .desc{font-size:12.5px;line-height:1.8;color:rgba(255,255,255,.75);margin:0 0 20px;white-space:normal;overflow:visible;}
.contact .card.primary .desc{color:rgba(6,28,67,.7);}
.contact .card .val{font-family:var(--font-serif);font-size:22px;color:#fff;font-weight:800;text-decoration:none;display:block;margin:0 0 16px;letter-spacing:.02em;}
.contact .card.primary .val{color:#061C43;}
.contact .card .btn{display:inline-block;background:#fff;color:var(--band);padding:14px 26px;border-radius:999px;text-decoration:none;font-weight:700;font-size:13px;transition:transform .3s;}
.contact .card.primary .btn{background:#061C43;color:#fff;}
.contact .card .btn:hover{transform:translateY(-2px);}
.contact .note{text-align:center;margin-top:40px;font-size:12px;color:rgba(255,255,255,.6);line-height:1.8;}
@media(max-width:900px){
  .contact .three{grid-template-columns:1fr;}
}

/* ========== 追加セクション（内部管理用ID / 見た目は本番同等） ========== */
.section-extension{padding:80px 20px;background:var(--bg);position:relative;}
.section-extension .head{text-align:center;max-width:800px;margin:0 auto 50px;}
.section-extension .head .eyebrow{color:var(--gold);font-family:var(--font-label);letter-spacing:.32em;font-weight:700;font-size:13px;}
.section-extension .head h2{font-family:var(--font-serif);font-size:clamp(28px,3.8vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.section-extension .head p{color:var(--hq-navy);line-height:2;font-size:14px;}
/* ========== STAFF（実写・全8名・4×2均等グリッド・カラー統一） ========== */
.staff-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.staff-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 30px rgba(6,28,67,.1);border:1px solid var(--line);text-align:center;transition:all .35s;position:relative;display:flex;flex-direction:column;}
.staff-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(6,28,67,.18);}
/* ゴールド帯（すべて統一） */
.staff-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-p),var(--gold));z-index:2;}
/* featured は帯を強調（店長・トップ の差別化） */
.staff-card.featured::before{height:5px;box-shadow:0 2px 10px rgba(191,158,60,.4);}
.staff-card.featured{border-color:var(--gold);}
.staff-card .photo{aspect-ratio:4/5;overflow:hidden;background:var(--bg2);position:relative;}
.staff-card .photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%;transition:transform .6s;}
.staff-card:hover .photo img{transform:scale(1.04);}
.staff-card .body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1;}
.staff-card .badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:8px;min-height:22px;}
.staff-card .badges .b{display:inline-block;font-family:var(--font-label);font-size:12px;font-weight:800;letter-spacing:.08em;padding:4px 10px;border-radius:4px;background:var(--gold);color:#061C43;line-height:1.2;}
.staff-card .badges .b.top{background:linear-gradient(135deg,var(--gold),var(--coral));}
.staff-card .badges .b.lang{background:#fff;color:var(--band);border:1px solid var(--gold);}
.staff-card .role{color:var(--gold-text);font-family:var(--font-label);letter-spacing:.15em;font-size:12px;font-weight:800;}
.staff-card .name{font-family:var(--font-serif);font-size:20px;color:var(--band);margin:6px 0 4px;font-weight:800;letter-spacing:.05em;}
.staff-card .exp{font-size:12px;color:var(--muted);letter-spacing:.05em;margin-bottom:10px;min-height:16px;}
.staff-card .exp strong{color:var(--band);font-family:var(--font-serif);font-size:13px;font-weight:800;margin-right:2px;}
.staff-card .cred{font-size:12px;color:#3d3630;line-height:1.75;background:var(--bg2);border-radius:6px;padding:10px 12px;margin-bottom:10px;flex:1;min-height:56px;}
.staff-card .fee{font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px;}
.staff-card .fee strong{color:var(--gold-text);font-family:var(--font-serif);font-size:14px;font-weight:800;margin:0 2px;}
@media(max-width:900px){.staff-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:700px){.staff-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:400px){.staff-grid{grid-template-columns:1fr;max-width:320px;}}

/* ========== 追加+2 お客様の声フル（★プレースホルダー） ========== */
.voice-full-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.vf-card{background:#fff;border-radius:16px;padding:26px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;}
.vf-card::before{content:"❞";position:absolute;top:8px;right:16px;font-size:60px;color:var(--gold);opacity:.15;font-family:serif;line-height:1;}
.vf-card .stars{color:var(--gold);font-size:16px;letter-spacing:2px;margin-bottom:10px;}
.vf-card .qt{font-family:var(--font-serif);font-size:16px;color:var(--band);font-weight:700;margin:0 0 12px;line-height:1.5;}
.vf-card blockquote{margin:0 0 18px;font-size:13px;line-height:1.9;color:#3d3630;}
.vf-card .who{display:flex;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line);}
.vf-card .avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--band),var(--band2));color:var(--gold);font-family:var(--font-serif);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px;}
.vf-card .name{font-size:12px;font-weight:700;color:var(--band);}
.vf-card .attr{font-size:12px;color:var(--muted);}
@media(max-width:900px){.voice-full-grid{grid-template-columns:1fr;max-width:500px;}}

/* ========== 追加+3 キャンセルポリシー ========== */
.cancel-policy{max-width:900px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:var(--shadow);}
.cancel-policy .rows{display:grid;grid-template-columns:200px 1fr;gap:16px;}
.cancel-policy .row{display:contents;}
.cancel-policy .lbl{font-family:var(--font-label);font-size:12px;letter-spacing:.15em;color:var(--gold);font-weight:700;padding:16px 0;border-bottom:1px dashed var(--line);white-space:nowrap;}
.cancel-policy .val{font-size:14px;color:var(--ink);line-height:1.9;padding:16px 0;border-bottom:1px dashed var(--line);}
.cancel-policy .row:last-child .lbl,.cancel-policy .row:last-child .val{border-bottom:none;}
.cancel-policy .val strong{color:var(--gold);}
.cancel-policy .note{margin-top:18px;font-size:12px;color:var(--muted);line-height:1.8;padding-top:16px;border-top:1px solid var(--line);}
@media(max-width:600px){
  .cancel-policy .rows{grid-template-columns:1fr;gap:0;}
  .cancel-policy .lbl{padding:12px 0 4px;border-bottom:none;}
}

/* ========== 追加+4 Before/After（★素材有無次第） ========== */
.ba-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.ba-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.ba-card .photos{display:grid;grid-template-columns:1fr 1fr;position:relative;}
.ba-card .photo{aspect-ratio:1/1;background:linear-gradient(135deg,var(--bg2) 0%, var(--peach) 100%);display:flex;align-items:center;justify-content:center;position:relative;}
.ba-card .photo::before{content:"★写真";position:absolute;color:var(--muted);font-family:var(--font-label);letter-spacing:.15em;font-size:12px;}
.ba-card .label{position:absolute;top:12px;left:12px;background:var(--band);color:#fff;padding:4px 10px;border-radius:4px;font-family:var(--font-label);font-size:12px;font-weight:800;letter-spacing:.15em;z-index:2;}
.ba-card .photo:last-child .label{background:var(--gold);color:#061C43;left:auto;right:12px;}
.ba-card .body{padding:20px 24px;}
.ba-card h4{font-family:var(--font-serif);font-size:16px;color:var(--band);margin:0 0 6px;}
.ba-card p{font-size:12.5px;color:var(--muted);line-height:1.8;margin:0;}
@media(max-width:900px){.ba-grid{grid-template-columns:1fr;max-width:500px;}}

/* FOOTER */
.foot{background:var(--band);color:rgba(255,255,255,.7);padding:60px 20px 30px;text-align:center;}
.foot .brand{font-family:var(--font-serif);color:#fff;font-size:22px;margin-bottom:8px;line-height:1.4;}
.foot .brand small{display:block;font-family:var(--font-label);font-size:12px;letter-spacing:.2em;color:var(--gold);margin-top:6px;}
.foot .links{margin:28px 0;font-size:13px;display:flex;flex-direction:column;gap:10px;align-items:center;}
.foot .links .links-row{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;}
.foot .links a{color:rgba(255,255,255,.85);text-decoration:none;transition:color .2s;}
.foot .links a:hover{color:var(--gold);}
@media(max-width:700px){
  .foot .links .links-row{gap:14px;}
}
.foot .foot-legal{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 8px;font-size:12px;}
.foot .foot-legal a{color:rgba(255,255,255,.85);text-decoration:none;transition:color .2s;padding:4px 6px;}
.foot .foot-legal a:hover{color:var(--gold);text-decoration:underline;}
.foot .foot-legal .sep{color:rgba(255,255,255,.35);font-weight:400;}
.foot .copy{font-size:12px;color:rgba(255,255,255,.5);margin-top:16px;line-height:1.8;}
.foot .copy strong{color:var(--gold);}

/* フローティング予約ボタン */
.float-cta{position:fixed;bottom:20px;right:20px;z-index:99;background:var(--gold);color:#061C43;padding:14px 22px;border-radius:999px;display:flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;box-shadow:0 10px 30px rgba(191,158,60,.4);opacity:0;transform:translateY(20px);transition:all .3s;font-size:14px;}
.float-cta.show{opacity:1;transform:none;}
.float-cta:hover{transform:scale(1.05);}

/* ===== staff直下 主CTAバナー ===== */
.cta-after-staff{padding:60px 20px;background:linear-gradient(135deg, var(--gold), var(--coral));text-align:center;}
.cta-after-staff .wrap{max-width:800px;margin:0 auto;}
.cta-after-staff .lead{font-family:var(--font-serif);color:#061C43;font-size:clamp(20px,2.6vw,26px);font-weight:800;margin:0 0 20px;line-height:1.6;}
.cta-after-staff .cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#061C43;color:var(--gold);padding:20px 44px;border-radius:999px;text-decoration:none;font-weight:800;font-size:17px;box-shadow:0 12px 30px rgba(6,28,67,.3);transition:all .3s;min-height:60px;}
.cta-after-staff .cta-btn:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(6,28,67,.4);}
.cta-after-staff .cta-btn span{transition:transform .3s;}
.cta-after-staff .cta-btn:hover span{transform:translateX(6px);}
.cta-after-staff .sub{margin:16px 0 0;font-size:13px;color:rgba(6,28,67,.75);}

/* ===== フォントサイズ 3段階統一（15/13/12px） ===== */
.hdr nav a{font-size:15px;padding:12px 0;}
.hero .brand-line{font-size:13px;}

.worry .worry .body h3{font-size:15px;}
.worry .special .plan .name{font-size:15px;}
.worry .special .plan .before,.worry .special .plan .now small{font-size:12px;}
.worry .special .plan .badge{font-size:12px;padding:4px 12px;}
.service .course .cat,.feature .stage .period,.company .step .n{font-size:12px;}
.service .course .now small,.service .course .init,.service .course .before,.service .course .incl li{font-size:12px;}
.service .course .desc,.service .add-card .row .name,.service .add-card .note,.service .tickets p{font-size:13px;}
.service .add-card .row .price small{font-size:12px;}
.service .tickets .kicker,.service .add-card .kicker{font-size:12px;}
.feature .stage p,.feature .reason p,.company .step p{font-size:13px;}
.voice .doctor .body blockquote{font-size:15px;}
.voice .doctor .side .title{font-size:13px;}
.voice-full-grid .vf-card blockquote{font-size:13px;}
.voice-full-grid .vf-card .name{font-size:13px;}
.voice-full-grid .vf-card .attr{font-size:12px;}
.faq summary{font-size:15px;padding:24px 26px;min-height:60px;}
.faq .ans,.faq .tab{font-size:13px;}
.faq .ans a{display:inline-block;padding:6px 4px;color:var(--gold);font-weight:700;text-decoration:underline;text-underline-offset:3px;min-height:32px;line-height:1.6;}
.faq .tab{padding:12px 22px;min-height:44px;}
.company .info .val,.company .info .lbl{font-size:13px;}
.company .info .row.hi .val{font-size:15px;}
.contact .card .desc,.contact .card .val{font-size:15px;}
.contact .card .btn,.contact .card .kicker{font-size:13px;}
.contact .note{font-size:12px;}
.staff-card .role{font-size:12px;}
.staff-card .name{font-size:17px;}
.staff-card .cred{font-size:13px;}
.cancel-policy .lbl{font-size:12px;padding:16px 0;}
.cancel-policy .val{font-size:13px;padding:16px 0;}
.cancel-policy .note{font-size:12px;}
.ba-card h4{font-size:15px;}
.ba-card p{font-size:13px;}
.ba-card .label{font-size:12px;padding:6px 12px;}
.foot .brand{font-size:20px;}
.foot .links,.foot .links a{font-size:13px;}
.foot .copy{font-size:12px;}
.demo-banner{font-size:13px;}
.demo-banner strong{font-size:12px;}

/* ===== タップ領域 24px以上（WCAG 2.2 AA） ===== */
/* min-height removed for compact layout */
a[href^="tel:"]{display:inline-block;padding-block:12px;min-height:44px;line-height:1.6;}
.hdr nav a{padding:12px 0;min-height:44px;display:inline-flex;align-items:center;}
.foot .links a{padding:8px 12px;margin:0 4px;display:inline-block;min-height:44px;line-height:1.8;}
.faq details summary{padding:24px 26px;min-height:60px;}
.faq .tab{min-height:44px;padding:12px 22px;}
.service .course .more,.tickets .btn{min-height:48px;padding:14px 26px;}
.service .add-card .row{padding:14px 0;min-height:44px;}
.contact .card{min-height:180px;}
.company .info .val a{padding:6px 0;display:inline-block;min-height:32px;}


/* ========== 【NEW】ABOUT（店舗紹介・サードプレイス）ベース基本 ========== */
.about-intro{position:relative;padding:120px 40px;color:#fff;overflow:hidden;background:linear-gradient(135deg,#04122E 0%, #061C43 50%, #082047 100%);}
.about-intro{overflow:hidden;}.about-intro::before{content:"";position:absolute;inset:0;background-image:url('https://iyasheep.lishinc.co.jp/wp-content/themes/sango-theme-child/assets/img/intro-bg-pc.webp');background-size:cover;background-position:center;opacity:.25;z-index:0;}
.about-intro::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,28,67,.65) 0%, rgba(4,18,46,.85) 100%);z-index:1;}
.about-intro .deco-side{position:absolute;left:-30px;top:50%;transform:translateY(-50%);font-family:var(--font-serif);font-size:clamp(40px,6vw,90px);color:rgba(191,158,60,.06);writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.2em;font-weight:700;pointer-events:none;z-index:2;line-height:1;font-style:italic;}
.about-intro .wrap{position:relative;z-index:3;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;padding-left:0;padding-right:0;}
.about-intro .txt .ornament{width:200px;height:20px;margin:0 auto 24px;display:block;}
.about-intro .txt .ornament svg{width:100%;height:100%;}
.about-intro .txt .tag{text-align:center;font-family:var(--font-serif);font-size:15px;color:rgba(255,255,255,.85);margin-bottom:14px;letter-spacing:.08em;}
.about-intro .txt h2{text-align:center;font-family:var(--font-serif);font-size:clamp(32px,4.5vw,52px);font-weight:800;letter-spacing:.05em;line-height:1.4;margin-bottom:28px;text-shadow:0 4px 20px rgba(0,0,0,.5);}
.about-intro .txt .lead{text-align:center;font-family:var(--font-serif);font-size:clamp(16px,1.7vw,20px);line-height:2;color:rgba(255,255,255,.95);margin-bottom:44px;text-shadow:0 2px 12px rgba(0,0,0,.6);}
.about-intro .txt .lead .em{color:var(--gold);background:linear-gradient(180deg,#F5D889,#BF9E3C);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;}
.about-intro .txt .desc{max-width:640px;margin:0 auto;color:rgba(255,255,255,.85);font-size:14.5px;line-height:2.1;text-shadow:0 2px 8px rgba(0,0,0,.5);}
.about-intro .txt .desc p{margin-bottom:20px;}
.about-intro .txt .desc p:last-child{margin-bottom:0;}
.about-intro .txt .desc strong{color:var(--gold);font-weight:700;}
.about-intro .photo{aspect-ratio:1/1;border-radius:50%;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.5), 0 0 0 4px rgba(191,158,60,.15);position:relative;max-width:440px;justify-self:center;}
.about-intro .photo::before{display:none;}
.about-intro .photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
@media(max-width:900px){
  .about-intro{padding:80px 30px;}
  .about-intro .wrap{grid-template-columns:1fr;gap:40px;padding-left:0;}
  .about-intro .deco-side{font-size:80px;opacity:.6;}
  .about-intro .photo{max-width:320px;}
}


/* ========== MOBILE COMPRESSION（レビュー3対応） ========== */
@media(max-width:700px){
  /* Worry：スマホ2列に */
  .worry .worry-grid{grid-template-columns:1fr 1fr!important;gap:12px;max-width:none;margin-left:0;margin-right:0;}
  .worry .worry .photo,.worry .worry .worry .body{padding:0;}
  .worry .worry .body{padding:20px 12px;}
  .worry .worry h3{font-size:13px;line-height:1.5;}

  /* Feature：写真非表示、アイコン＋テキストのみ縦積み */
  .feature .reasons{gap:32px;}
  .feature .reason{grid-template-columns:1fr;gap:12px;padding:16px 20px;background:#fff;border-radius:14px;box-shadow:var(--shadow);}
  .feature .reason .photo{display:none;}
    .feature .reason .body{padding:0;}
  .feature .reason h3{font-size:18px;margin-bottom:10px;}
  .feature .reason p{font-size:13px;}

  /* Staff：モバイル圧縮 - 全カード縦を短く、body padding縮小 */
  .staff-grid{gap:12px!important;}
  .staff-card .photo{aspect-ratio:1/1;}
  .staff-card .body{padding:10px 10px 12px;}
  .staff-card .cred{display:none;}
  .staff-card .exp{font-size:12px;margin-bottom:6px;}
  .staff-card .fee{padding-top:6px;font-size:12px;}
  .staff-card .name{font-size:16px;}
  .staff-card .badges{margin-bottom:4px;min-height:auto;}
  .staff-card .badges .b{font-size:12px;padding:3px 7px;}

  /* Service：オプションカードのpadding縮小 */
  .service .add-card{padding:20px 16px;}
  .service .add-card.oxygen{grid-template-columns:1fr;}
}


/* ========== MOBILE COMPRESSION v2（レビュー4） ========== */
@media(max-width:700px){
  /* Staff：cred非表示・exp非表示・fee最小・写真1:1・padding極小 */
  .staff-card .cred{display:none!important;}
  .staff-card .exp{display:none!important;}
  .staff-card .body{padding:10px 8px!important;}
  .staff-card .name{font-size:14px!important;margin:4px 0 2px!important;}
  .staff-card .role{font-size:12px!important;}
  .staff-card .fee{font-size:12px!important;padding-top:6px!important;}
  .staff-card .badges{margin-bottom:4px!important;min-height:auto!important;}
  .staff-card .badges .b{font-size:12px!important;padding:2px 6px!important;}
  .staff-card .photo{aspect-ratio:1/1!important;}

  /* Worry: 2列 */
  .worry .worry-grid{grid-template-columns:1fr 1fr!important;gap:10px;max-width:none;}
  .worry .worry{border-radius:10px;}
  .worry .worry .body{padding:20px 12px;}
  .worry .worry h3{font-size:12px!important;line-height:1.5;}
  .worry .worry .n{font-size:12px!important;padding:2px 8px;top:8px;left:8px;}

  /* Feature: 写真非表示、番号バッジ+テキストのみ */
  .feature .reasons{gap:20px!important;}
  .feature .reason{grid-template-columns:1fr!important;gap:10px!important;padding:24px 20px!important;background:#fff!important;border-radius:12px!important;box-shadow:none!important;border:1px solid rgba(6,28,67,.08)!important;text-align:center!important;}
  .feature .reason .photo{display:none!important;}
        .feature .reason .body{padding:0!important;}
  .feature .reason h3{font-size:18px!important;margin-bottom:8px!important;white-space:normal!important;line-height:1.4!important;}
  .feature .reason p{font-size:13px!important;}

  /* Service: オプションカードを縦積み・小さく */
  .service .add-grid{gap:12px!important;}
  .service .add-card{padding:16px!important;}
  .service .add-card h3{font-size:16px!important;}
  .service .add-card.oxygen{grid-template-columns:1fr!important;}
  .service .add-card.oxygen .oxygen-photo{padding:16px 0!important;}
  .service .add-card.oxygen .oxygen-photo img{max-width:100px!important;}
  .service .tickets{padding:16px!important;}
}


/* ========== 競合参考リファイン（森+ヘッドアロマ） ========== */
/* 各セクション見出しに英字副題 */
.sec-eyebrow-en{
  display:block;
  font-family:'Shippori Mincho','Barlow Condensed',serif;
  font-size:clamp(36px, 5vw, 56px);
  font-weight:400;
  letter-spacing:.08em;
  color:var(--gold);
  opacity:.4;
  line-height:1;
  text-transform:capitalize;
  margin-bottom:8px;
}
.sec-eyebrow-jp{
  display:block;
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:.32em;
  color:var(--gold-text);
  font-weight:700;
  margin-bottom:16px;
  text-transform:uppercase;
}

/* h2 大型化統一 */
.worry .head h2,
.service .head h2,
.feature .head h2,
.voice .head h2,
.faq .head h2,
.company .head h2,
.contact .head h2,
.section-extension .head h2{
  font-family:'Shippori Mincho',serif;
  font-size:clamp(32px, 4.5vw, 56px)!important;
  line-height:1.4!important;
  letter-spacing:.05em!important;
  font-weight:700!important;
  color:var(--band);
  margin:0 0 20px!important;
}

/* セクション区切りの装飾ライン */
.sec-divider{
  display:block;
  width:120px;
  height:16px;
  margin:0 auto 24px;
  opacity:.7;
}
.sec-divider svg{width:100%;height:100%;display:block;}

/* Feature 写真を 1:1 正方形に（森参考） */
.feature .reason .photo{aspect-ratio:1/1!important;}

/* Service course の写真を 4:3 に（縦を圧縮、視覚重量を下げる） */
.service .course .photo{aspect-ratio:4/3!important;max-height:280px;}
@media(max-width:700px){
  .service .course .photo{aspect-ratio:16/10!important;max-height:200px;}
}

/* セクション背景のリズム強化（白→薄グレージュ→白の交互） */
.about-intro + .worry{background:linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);}
.service{background:linear-gradient(180deg, var(--bg2) 0%, var(--bg) 100%)!important;}
.feature{background:var(--bg)!important;}
.voice{background:linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%)!important;}
.faq{background:var(--bg)!important;}
.company{background:var(--bg2)!important;}



/* 準備中セクション 強制非表示（レビュー6） */
#before-after,#voice-full,#cancel-policy{display:none!important;}

/* ========== [統一] 全セクションタイトル 中央揃え ========== */
.worry .head,
.service .head,
.feature .head,
.voice .head,
.faq .head,
.company .head,
.contact .head,
.section-extension .head,
.flow .head{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.worry .head *,
.service .head *,
.feature .head *,
.voice .head *,
.faq .head *,
.company .head *,
.contact .head *,
.section-extension .head *,
.flow .head *{
  text-align:center;
}

/* ========== FLOW（ご利用の流れ・NEW） ========== */
.flow{padding:100px 20px;background:linear-gradient(180deg,var(--bg2) 0%, var(--bg) 100%);position:relative;overflow:hidden;}
.flow .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.flow .head h2{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);line-height:1.5;margin:16px 0 20px;color:var(--band);}
.flow-steps{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;}
/* 1440pxで4カード横一列: カード左右余白のみ縮小 */
@media(min-width:1200px){
  .flow-steps{max-width:none;padding:0 120px;box-sizing:border-box;grid-template-columns:repeat(4,1fr);gap:16px;}
  .flow-step{padding-left:12px !important;padding-right:12px !important;}
}
.flow-step h3,.flow-step h4,.flow-step .step-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.flow-step p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.flow-steps::before{display:none;}
.flow-step{background:#fff;border-radius:14px;padding:24px 16px;text-align:center;position:relative;border:1px solid var(--line);box-shadow:0 8px 20px rgba(6,28,67,.05);z-index:1;transition:transform .3s;}
.flow-step:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(6,28,67,.1);}
.flow-step .step-num{font-family:var(--font-label);font-size:12px;letter-spacing:.2em;color:var(--gold-text);font-weight:800;}
.flow-step .step-icon{width:44px;height:44px;margin:12px auto;background:linear-gradient(135deg,rgba(6,28,67,.06),rgba(191,158,60,.1));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--band);}
.flow-step .step-icon svg{width:24px;height:24px;}
.flow-step h3{font-family:var(--font-serif);font-size:15px;color:var(--band);margin:0 0 8px;font-weight:800;letter-spacing:.03em;}
.flow-step p{font-size:12px;color:var(--muted);line-height:1.7;margin:0;}
@media(max-width:900px){
  .flow-steps{grid-template-columns:repeat(3,1fr);gap:14px;}
  .flow-steps::before{display:none;}
}
@media(max-width:520px){
  .flow-steps{grid-template-columns:1fr;gap:10px;}
  .flow-step h3{font-size:13px;}
}

/* ========== CTAバナー（インライン用・複数配置） ========== */
.cta-bar{padding:44px 20px;background:linear-gradient(135deg,var(--gold-btn),#6E5814);text-align:center;position:relative;overflow:hidden;}
.cta-bar::before{content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);border-radius:50%;pointer-events:none;}
.cta-bar .wrap{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:32px;position:relative;z-index:1;flex-wrap:wrap;}
.cta-bar .msg{font-family:var(--font-serif);color:#fff;font-size:clamp(16px,2vw,20px);font-weight:700;letter-spacing:.03em;line-height:1.6;text-align:right;flex:0 1 auto;}
.cta-bar .msg small{display:block;font-size:12px;opacity:.85;font-weight:400;margin-top:4px;}
.cta-bar .btn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--gold-btn);padding:14px 28px;border-radius:999px;text-decoration:none;font-weight:800;font-size:14px;letter-spacing:.05em;box-shadow:0 8px 20px rgba(0,0,0,.15);transition:all .3s;white-space:nowrap;}
.cta-bar .btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.2);}
.cta-bar .btn::after{content:"→";font-size:16px;}
@media(max-width:600px){
  .cta-bar{padding:32px 16px;}
  .cta-bar .wrap{flex-direction:column;text-align:center;gap:16px;}
  .cta-bar .msg{text-align:center;font-size:15px;}
  .cta-bar .btn{width:100%;justify-content:center;}
}




/* ========== [POLISH v1] 全体統一 & トリミング調整 ========== */

/* --- 1. Section padding 統一 (PC 80px, SP 60px) ※圧縮 --- */
section#about,section.worry,section.service,section.feature,
section.flow,section.voice,section.faq,section.company,section.contact,
section#staff,section#before-after,section#voice-full,section#cancel-policy{
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}
@media(max-width:700px){
  section#about,section.worry,section.service,section.feature,
  section.flow,section.voice,section.faq,section.company,section.contact,
  section#staff,section#before-after,section#voice-full,section#cancel-policy{
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
  section#about .head,section.worry .head,section.service .head,section.feature .head,
  section.flow .head,section.voice .head,section.faq .head,section.company .head,section.contact .head,
  section#staff .head,section#before-after .head,section#voice-full .head,section#cancel-policy .head{
    margin-bottom: 30px !important;
  }
}

/* --- 2. head margin-bottom 統一 (56px) --- */
section#about .head,section.worry .head,section.service .head,section.feature .head,
section.flow .head,section.voice .head,section.faq .head,section.company .head,section.contact .head,
section#staff .head,section#before-after .head,section#voice-full .head,section#cancel-policy .head{
  margin-bottom: 56px !important;
  max-width: 800px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media(max-width:700px){
  section#about .head,section.worry .head,section.service .head,section.feature .head,
  section.flow .head,section.voice .head,section.faq .head,section.company .head,section.contact .head,
  section#staff .head,section#before-after .head,section#voice-full .head,section#cancel-policy .head{
    margin-bottom: 36px !important;
  }
}

/* --- 3. Service コース写真の顔位置調整 (上寄り) --- */
.service .courses .course .photo img,
.service .courses li .photo img{
  object-position: 50% 30%;
}

/* --- 4. Feature 4理由写真の顔位置調整 --- */
.feature .reasons .photo img,
.feature .reasons li .photo img,
.feature .r-card .photo img{
  object-position: 50% 35%;
}

/* --- 5. FV Hero 画像顔位置 --- */
.top .bg img,
section#top .bg img{
  object-position: 50% 40%;
}

/* ==========================================================
   [HQ BRAND ALIGN v1] 本家 iyasheep.com のデザインDNA導入
   - Kiwi Maru（丸み和文）を主要見出しに
   - Oooh Baby（手書き英字）を eyebrow に
   - 手描き星型スパークを h2 の上に配置（SVG data-uri）
   - 本家ブランド紺 #171C61 をアクセントに追加
   ========================================================== */
:root{
  --hq-navy: #171C61;
  --hq-gold: #b18b30;
}
/* --- 手描きスパーク SVG（h2 の直前に絶対配置） --- */
section#about .head h2,
section.worry .head h2,
section.service .head h2,
section.feature .head h2,
section.flow .head h2,
section.voice .head h2,
section.faq .head h2,
section.company .head h2,
section.contact .head h2,
section#staff .head h2,
section#cancel-policy .head h2,
section#before-after .head h2,
section#voice-full .head h2{
  position: relative;
  padding-top: 60px;
  color: var(--hq-navy);
}
section .head::before{
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 46px;
  height: 48px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 44' fill='%23171C61'><path d='M26.09 22.24c-.3-.22-.82-.37-1.09-.53-.92-.54-1.74-1.24-2.44-2.03-.78-.89-1.42-1.94-1.86-3.06-.22-.56-.39-1.15-.5-1.74-.07-.39.02-1.48-.4-1.65-.23-.1-.51.07-.65.25-.91 1.23-.98 2.79-1.71 4.1-.56 1.01-1.28 1.92-2.15 2.7-.27.24-.55.47-.85.69-.27.19-.64.32-.84.59-.53.7.58.96 1.03 1.21.62.36 1.2.8 1.7 1.3 1.03 1.02 1.77 2.31 2.13 3.7.18.69.25 1.33.23 2.05-.02.56.9.7 1.02.14.53-2.43 2.11-4.58 4.28-5.88.63-.38 1.27-.66 1.96-.88.31-.1.48-.51.31-.79-.04-.06-.1-.11-.17-.16z'/><path d='M39.64 21.64c-.3-.11-.69-.06-1.01-.08-.32-.01-.64-.02-.96-.03-.66-.03-1.31-.05-1.97-.08-.64-.02-1.28-.04-1.93-.06-.32-.01-.64-.02-.96.01-.16.02-.33.06-.49.09-.17.03-.29.07-.39.22-.05.07-.04.17 0 .25.08.15.22.19.39.23.14.03.27.09.41.11.33.06.67.07 1.01.09.66.03 1.31.06 1.97.08l1.93.07c.32.01.64.02.96.04.09 0 .18.01.27.02.02.01.04.02.06.01.01 0 .02-.01.03-.01.24.02.48.03.7-.03 0 0-.01 0-.01 0 .12-.03.24-.1.31-.22.17-.29 0-.61-.3-.72z'/><path d='M20.28 1.06c.03-.26-.2-.52-.46-.55-.3-.04-.61.19-.6.5.06 1.18.08 2.37.06 3.55-.01.58-.01 1.16-.01 1.74 0 .59-.03 1.21.13 1.78.04.14.26.18.33.04.26-.52.35-1.12.42-1.69.07-.61.13-1.2.15-1.82.04-1.18.03-2.36-.02-3.55z'/><path d='M32.75 30.56c-.16-.17-.39-.26-.58-.37-.19-.11-.37-.22-.55-.33-.37-.22-.72-.45-1.08-.68-.34-.22-.68-.47-1.04-.67-.35-.2-.76-.49-1.18-.47-.13.01-.22.12-.19.25.08.39.47.69.76.95.34.3.73.55 1.1.8.35.24.71.47 1.08.69.18.11.37.22.55.33.2.12.42.28.66.33 0 0 0-.01 0-.01.12.04.26.04.39-.04.29-.16.32-.53.1-.77z'/><path d='M15.44 12.62c-.09-.27-.14-.55-.22-.82-.08-.29-.17-.57-.26-.85-.19-.55-.38-1.1-.6-1.64-.21-.53-.43-1.05-.65-1.58-.24-.56-.46-1.14-.72-1.69-.16-.33-.66-.31-.86-.05-.12.15-.14.31-.09.45 0 0-.01 0-.01-.01.21.55.46 1.08.69 1.61.24.55.47 1.1.72 1.65.24.52.49 1.03.75 1.53.26.51.56 1 .85 1.49.12.19.49.19.4-.09z'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .85;
}
section .head h2{
  /* eyebrow-en が別要素で入っていても、h2は独立してタイトル表示 */
}
/* --- 業界店舗数 No.1 王冠バッジ（本家風・丸み帯） --- */
.hq-crown-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px 8px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #b18b30, #d4b45c);
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.05em;
  box-shadow: 0 6px 18px rgba(23,28,97,.25), inset 0 -2px 0 rgba(0,0,0,.15);
  position: relative;
  animation: hq-zoom-in 1.2s ease-out both;
}
.hq-crown-badge::before{
  content: "";
  display: inline-block;
  width: 22px;
  height: 24px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'><path d='M12 4l2.5 5 5.5.8-4 3.9 1 5.5L12 16.5 6.5 19.2l1-5.5-4-3.9L9 9z'/><path d='M4 21h16v1.5H4z'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
.hq-crown-badge .num{
  font-family: 'Space Grotesk', monospace;
  font-weight: 700;
  font-size: 22px;
  color: #fff;
  margin-left: 2px;
}
@keyframes hq-zoom-in{
  0%{opacity:0;transform:scale(.5);}
  100%{opacity:1;transform:scale(1);}
}

/* --- head 全体をゆったり広げる（Kiwi Maru で高さが変わるため） --- */
section .head h2{
  line-height: 1.6;
}

/* ==========================================================
   [SHAPE & MOTION v1] 丸み・アニメーション・写真の使い方
   ========================================================== */

/* --- 1. 写真コンテナ全体を柔らかく（角丸を強化） --- */
.worry .photo{
  border-radius: 20px !important;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(23,28,97,.08);
  transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s;
}
.worry .worry-grid > *:hover .photo{
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(23,28,97,.15);
}
.worry .photo img{
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.worry .worry-grid > *:hover .photo img{
  transform: scale(1.06);
}

/* --- 2. Service コース写真：大きな角丸＋ふわりhover --- */
.service .courses .photo,
.service .courses li .photo,
.service .course .photo{
  border-radius: 28px !important;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(23,28,97,.10);
  transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s;
}
.service .course:hover .photo,
.service .courses > *:hover .photo{
  transform: translateY(-6px);
  box-shadow: 0 22px 46px rgba(23,28,97,.18);
}
.service .course:hover .photo img,
.service .courses > *:hover .photo img{
  transform: scale(1.04);
}

/* --- 3. Feature 4理由の写真：柔らかい大きな角丸 --- */
.feature .reasons .photo,
.feature .r-card .photo{
  border-radius: 24px !important;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(23,28,97,.10);
  transition: transform .5s, box-shadow .5s;
}
.feature .r-card:hover .photo,
.feature .reasons > *:hover .photo{
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(23,28,97,.16);
}

/* --- 4. Staff 写真：丸型（circle）に変更 --- */
.staff-card .photo{
  border-radius: 50% !important;
  overflow: hidden;
  aspect-ratio: 1 / 1 !important;
  width: 82%;
  margin: 0 auto 14px !important;
  box-shadow: 0 10px 26px rgba(23,28,97,.14);
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.staff-card:hover .photo{
  transform: translateY(-4px) scale(1.02);
}
.staff-card .photo img{
  object-position: 50% 20% !important;
}

/* --- 5. Voice 医師写真：円形＋光彩 --- */
.voice .doctor .side .photo,
.voice .doctor-photo{
  border-radius: 50% !important;
  overflow: hidden;
  aspect-ratio: 1 / 1 !important;
  box-shadow: 0 0 0 6px rgba(255,255,255,.4), 0 14px 36px rgba(23,28,97,.28);
}

/* --- 6. すべてのカード類にホバーリフト --- */
.worry .worry-item,.worry .worry .body,
.service .course,.service .add-card,
.feature .r-card,
.faq .q-card, .faq details,
.staff-card,
.company .info .row,
.flow .step,
#staff .staff-card{
  transition: transform .35s ease, box-shadow .35s ease;
}
.service .course:hover,
.feature .r-card:hover,
.flow .step:hover,
.staff-card:hover{
  transform: translateY(-3px);
}

/* --- 7. 見出しSVGスパーク：ゆらり回転アニメ --- */
@keyframes hq-spark-float{
  0%,100%{ transform: translateX(-50%) rotate(-4deg); }
  50%{ transform: translateX(-50%) rotate(4deg); }
}
section .head::before{
  animation: hq-spark-float 4s ease-in-out infinite;
}

/* --- 8. h2 見出しに現れるフェードイン --- */
@keyframes hq-fade-up{
  0%{ opacity: 0; transform: translateY(20px); }
  100%{ opacity: 1; transform: translateY(0); }
}
section .head{
  animation: hq-fade-up 1s ease-out both;
  position: relative;
  padding-top: 60px;
}
/* h2 の padding-top を削除（マークは .head::before で描画） */
body section#about .head h2,
body section#worry .head h2,
body section#service .head h2,
body section#feature .head h2,
body section#flow .head h2,
body section#voice .head h2,
body section#staff .head h2,
body section#faq .head h2,
body section#cancel-policy .head h2,
body section#company .head h2,
body section#contact .head h2,
body section#before-after .head h2,
body section#voice-full .head h2{
  padding-top: 0 !important;
}

/* --- 9. 段組み reveal-stagger 内アイテムのfade（IntersectionObserverで .is-in を付与） --- */
.reveal-stagger > *{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal-stagger.in > *{
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger.in > *:nth-child(1){ transition-delay: .05s; }
.reveal-stagger.in > *:nth-child(2){ transition-delay: .15s; }
.reveal-stagger.in > *:nth-child(3){ transition-delay: .25s; }
.reveal-stagger.in > *:nth-child(4){ transition-delay: .35s; }
.reveal-stagger.in > *:nth-child(5){ transition-delay: .45s; }
.reveal-stagger.in > *:nth-child(6){ transition-delay: .55s; }
.reveal-stagger.in > *:nth-child(7){ transition-delay: .65s; }
.reveal-stagger.in > *:nth-child(8){ transition-delay: .75s; }

/* .reveal 単発 */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}
.reveal.in{
  opacity: 1;
  transform: translateY(0);
}

/* --- 10. About セクション写真の角丸のみ（背景は元のnavyを維持） --- */
section#about .photo,
section#about .about-photo{
  border-radius: 28px !important;
  overflow: hidden;
  box-shadow: 0 20px 44px rgba(0,0,0,.3);
}

/* --- 11. Company 地図：柔らかい角丸 --- */
.company iframe,
.company .map iframe{
  border-radius: 20px !important;
}

/* --- 12. FAQ カード：柔らかい角丸＋余白 --- */
.faq details,
.faq .q-card,
.faq .faq-item{
  border-radius: 16px !important;
  transition: transform .3s, box-shadow .3s;
}
.faq details[open]{
  box-shadow: 0 8px 22px rgba(23,28,97,.08);
}

/* --- 13. 全体的にセクション間の "つなぎバブル" 背景装飾 --- */
section.service::after,
section.feature::after{
  content: "";
  position: absolute;
  right: -6vw; bottom: -8vw;
  width: 20vw; height: 20vw;
  max-width: 320px; max-height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(23,28,97,.03), transparent 65%);
  pointer-events: none;
  z-index: 0;
}
section.service, section.feature{ position: relative; }

/* ==========================================================
   [SHAPE & MOTION v2] MV 触らず・4項目
   ①CTA pill+arrow統一 ②worryバブル強化 ③ノイズ引き算 ④写真mood統一
   ========================================================== */

/* ① 全CTAボタンに矢印を統一（.cta-bar .btn 以外にも展開） */
.service .tickets .btn::after,
.contact .card .btn::after,
.contact .card:not(.primary) .btn::after{
  content: " →";
  display: inline;
  margin-left: 4px;
  transition: transform .3s;
}
.service .tickets .btn:hover::after,
.contact .card:not(.primary) .btn:hover::after{
  transform: translateX(3px);
}
/* すべてのCTAが確実にpill形状 */
.service .course .more,
.tickets .btn,
.contact .card .btn,
.cta-bar .btn,
.cta-after-staff .cta-btn,
.floatCta,
#floatCta a,
.hdr .btn-reserve{
  border-radius: 999px !important;
}

/* ② worry セクション背景バブル強化（3つの光球で奥行き） */
section.worry{
  background: radial-gradient(circle at 15% 20%, rgba(23,28,97,.05) 0%, transparent 45%),
              radial-gradient(circle at 85% 75%, rgba(191,158,60,.07) 0%, transparent 45%),
              radial-gradient(circle at 50% 100%, rgba(23,28,97,.03) 0%, transparent 40%),
              #FBFAF7 !important;
}
section.worry::before{
  content: "";
  position: absolute;
  top: 8%; right: -6vw;
  width: 22vw; height: 22vw;
  max-width: 340px; max-height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(191,158,60,.10), transparent 70%);
  pointer-events: none;
  transform: none !important;
  animation: hq-blob 12s ease-in-out infinite;
}
@keyframes hq-blob{
  0%,100%{ transform: scale(1) translate(0,0); }
  50%{ transform: scale(1.1) translate(-2%, 2%); }
}

/* ③ ノイズ引き算：eyebrow/kicker を控えめに */
.worry .head .eyebrow,
.service .head .eyebrow,
.feature .head .eyebrow,
.voice .head .eyebrow,
.faq .head .eyebrow,
.company .head .eyebrow,
.contact .head .eyebrow,
.head .eyebrow,
.head .sec-eyebrow-en{
  opacity: .32 !important;
  font-size: 11px !important;
  letter-spacing: .35em !important;
  margin-bottom: 8px !important;
  font-weight: 500 !important;
}
/* kicker（サブラベル）も控えめに */
.service .add-card .kicker,
.service .tickets .kicker,
.feature .stages-head .kicker,
.voice .doctor .body .kicker,
.contact .card .kicker,
.worry .special .kicker{
  opacity: .55 !important;
  font-size: 11px !important;
  letter-spacing: .22em !important;
  margin-bottom: 8px !important;
}
/* GRADE/DEMOタグ・過剰な badge は非表示（実運用で不要） */
.demo-tag,
.voice .customer-note .badge,
.worry .special .plan .badge{
  display: none !important;
}
/* 医師 badge は残すが控えめに */
.voice .doctor .side .badge{
  background: transparent !important;
  color: var(--gold-text) !important;
  border: 1px solid var(--gold-text);
  padding: 3px 12px !important;
  font-size: 11px !important;
  letter-spacing: .2em !important;
  font-weight: 600 !important;
}

/* 過剰な枠線を削除・柔らかい下線化 */
.company .info .row{
  border-bottom: 1px solid rgba(23,28,97,.06) !important;
}
.company .info .row:last-child{ border-bottom: none !important; }
.faq details{
  border: none !important;
  background: #fff;
  box-shadow: 0 4px 14px rgba(23,28,97,.06);
}
.faq summary{
  border-bottom: none !important;
}

/* Cancel Policy の枠線を柔らかく */
section#cancel-policy .policy-table,
section#cancel-policy table{
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(23,28,97,.06);
  border: none !important;
}

/* ④ 写真 mood 統一：微 sepia + brightness + saturate */
.worry .photo img,
.service .courses .photo img,
.service .course .photo img,
.feature .reasons .photo img,
.feature .r-card .photo img,
.staff-card .photo img,
.voice .doctor .side .photo img,
.about .photo img,
section#about .photo img,
section#about .about-photo img{
  filter: brightness(1.03) contrast(1.03) saturate(0.92) sepia(0.05);
  transition: filter .5s, transform .8s cubic-bezier(.2,.7,.2,1);
}
/* hover時は少し鮮やかに戻す（活気） */
.worry .photo:hover img,
.service .course:hover .photo img,
.feature .r-card:hover .photo img,
.staff-card:hover .photo img{
  filter: brightness(1.05) contrast(1.05) saturate(1.0) sepia(0);
}

/* FV Hero 画像はmoodフィルタ対象外（MVを触らない指示） */
.hero .bg img,
section#top .bg img{
  filter: none !important;
}

/* ==========================================================
   [HQ DNA v2] 本家風カラー/シェイプ大量反映 (MV除外)
   ========================================================== */

/* ① Voice を紺ダークバンドに（本家の医師推薦セクション同様） */
section#voice{
  background: linear-gradient(135deg, #061C43 0%, #0A2456 50%, #082047 100%) !important;
  color: #fff;
  position: relative;
  overflow: hidden;
}
section#voice::before{
  content: "";
  position: absolute;
  top: -80px; left: -60px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(191,158,60,.12), transparent 65%);
  pointer-events: none;
  animation: hq-blob 14s ease-in-out infinite;
}
section#voice::after{
  content: "";
  position: absolute;
  bottom: -100px; right: -80px;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(23,28,97,.4), transparent 60%);
  pointer-events: none;
}
/* ==========================================================
   [FIX v3] 橋村指示 5点修正
   ========================================================== */

/* ② About セクションのテキスト全て中央揃え */
.about-intro .wrap{
  display: block !important;
  grid-template-columns: none !important;
  padding-left: 0 !important;
  text-align: center;
}
.about-intro .wrap > *{
  text-align: center !important;
}
.about-intro .txt{
  text-align: center !important;
  max-width: 900px;
  margin: 0 auto;
}
.about-intro .txt .desc{
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
.about-intro .photo,
.about-intro .about-photo{
  display: none !important;
}

/* About セクション：下余白圧縮 */
section.about-intro{
  padding-bottom: 48px !important;
}
section.about-intro .wrap{
  margin-bottom: 0 !important;
}

/* ==========================================================
   [FIX v4] 追加指示
   ・楕円形セクション区切り
   ・PC最小16px / SP最小14px フォントサイズ
   ・About後 → 白余白ゼロ化
   ========================================================== */

/* 楕円形セクション区切り：Voice を上下に大きく半楕円で切り抜く */
section#voice{
  border-radius: 50% 50% 0 0 / 60px 60px 0 0;
  margin-top: -1px;
  position: relative;
  z-index: 2;
}
section#voice::after{
  content: none;
}
/* Contact も紺bgなので楕円で上部を柔らかく */
section#contact{
  border-radius: 50% 50% 0 0 / 60px 60px 0 0;
}
/* About（紺bg）も下部を楕円で丸く */
section.about-intro{
  border-radius: 0 0 50% 50% / 0 0 60px 60px;
}
@media(max-width:700px){
  section#voice,
  section#contact{
    border-radius: 50% 50% 0 0 / 30px 30px 0 0;
  }
  section.about-intro{
    border-radius: 0 0 50% 50% / 0 0 30px 30px;
  }
}

/* 各カード：黄色帯（トップ装飾）は Staff だけ（Service 写真上余白は削除） */
.staff-card{
  padding-top: 20px !important;
}
/* Service コース card は写真が上端直付きなので padding無し */
.service .course{
  padding-top: 0 !important;
}
/* PC最小16px / SP最小14px フォントサイズ強制（全テキスト） */
@media(min-width:701px){
  body p, body li, body a, body dd, body dt, body td, body th,
  body blockquote, body strong, body em, body b, body button,
  body div:not(.hq-crown-badge),
  body span:not(.unit):not(.tentative):not(.n):not(.num){
    font-size: max(16px, 1em) !important;
  }
  body .kicker,
  body .head .eyebrow,
  body .head .sec-eyebrow-en,
  body .tab,
  body button.tab{
    font-size: 16px !important;
  }
  body h1{ font-size: max(28px, 2em) !important; }
  body h2{ font-size: max(24px, 1.5em) !important; }
  body h3{ font-size: max(18px, 1.125em) !important; }
  body h4{ font-size: max(16px, 1em) !important; }
  body small{ font-size: 16px !important; }
  /* 除外：仮ラベル・CASE番号・単位のみ小さくOK */
  .fv-auth-note, .tentative{ font-size: 13px !important; }
}
@media(max-width:700px){
  body p, body li, body a, body dd, body dt, body td, body th,
  body blockquote, body strong, body em, body b, body button,
  body div:not(.hq-crown-badge),
  body span:not(.unit):not(.tentative):not(.n):not(.num){
    font-size: max(14px, 1em) !important;
  }
  body .kicker,
  body .head .eyebrow,
  body .head .sec-eyebrow-en,
  body .tab,
  body button.tab{
    font-size: 14px !important;
  }
  body h1{ font-size: max(24px, 1.8em) !important; }
  body h2{ font-size: max(20px, 1.4em) !important; }
  body h3{ font-size: max(16px, 1em) !important; }
  body h4{ font-size: max(14px, 1em) !important; }
  body small{ font-size: 14px !important; }
  .fv-auth-note, .tentative{ font-size: 12px !important; }
}
/* FV は完全据置（デザイン優先・全 viewport） */
.hero .fv-title-1,
body .hero .fv-title-1,
.hero .fv-title-2,
body .hero .fv-title-2,
.hero .fv-catch,
body .hero .fv-catch,
.hero .fv-catch p,
body .hero .fv-catch p,
.hero .fv-auth-item .auth-num,
body .hero .fv-auth-item .auth-num,
.hero .fv-auth-item,
body .hero .fv-auth-item,
.hero .fv-auth-item .auth-label,
body .hero .fv-auth-item .auth-label,
.hero .fv-auth-item .auth-label .src,
body .hero .fv-auth-item .auth-label .src,
.hero .fv-auth-item .auth-label .meta,
body .hero .fv-auth-item .auth-label .meta,
.hero .fv-auth-note,
body .hero .fv-auth-note{
  font-size: revert !important;
}
/* 701〜1440px でFV文字サイズを原設計値に固定 */
@media(min-width:701px) and (max-width:1440px){
  body section#top .fv-catch{ font-size: 20px !important; line-height: 1.3 !important; letter-spacing: 0.05em !important; }
  body section#top .fv-catch p{ font-size: 20px !important; line-height: 1.3 !important; }
  body section#top .fv-title-1{ font-size: 68px !important; line-height: 1.3 !important; letter-spacing: 0.05em !important; }
  body section#top .fv-title-2{ font-size: 72px !important; line-height: 1.3 !important; letter-spacing: 0.05em !important; }
  body section#top .fv-auth-item .auth-num{ font-size: 32px !important; }
  body section#top .fv-auth-item .auth-label .src{ font-size: 13px !important; }
  body section#top .fv-auth-item .auth-label .meta{ font-size: 12px !important; }
  body section#top .fv-auth-note{ font-size: 12px !important; }
}

/* ==========================================================
   [MOBILE FIX v1] スマホ徹底対応
   ・FV文字サイズ縮小（はみ出し防止）
   ・カード等高化
   ・14px 未満撲滅（footnote除く）
   ・全体高さ圧縮
   ========================================================== */
@media(max-width:700px){
  /* --- FV サイズ縮小 --- */
  body section#top .fv-catch{
    font-size: 14px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.03em !important;
    left: 20px !important;
    right: 20px !important;
    top: 90px !important;
    white-space: normal !important;
    max-width: calc(100% - 40px) !important;
  }
  body section#top .fv-catch p{ font-size: 14px !important; line-height: 1.5 !important; white-space: normal !important; }
  body section#top .fv-title-1{
    font-size: 40px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.02em !important;
    left: 16px !important;
    right: 16px !important;
    top: 180px !important;
    white-space: nowrap !important;
    transform: none !important;
    max-width: calc(100vw - 32px) !important;
  }
  body section#top .fv-title-2{
    font-size: 36px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;
    left: 16px !important;
    right: 16px !important;
    top: 232px !important;
    white-space: nowrap !important;
    transform: none !important;
    max-width: calc(100vw - 32px) !important;
  }
  body section#top .fv-auth-item .auth-num{ font-size: 24px !important; }
  body section#top .fv-auth-item .auth-label .src{ font-size: 14px !important; }
  body section#top .fv-auth-item .auth-label .meta{ font-size: 14px !important; }
  body section#top .fv-auth-note{ font-size: 12px !important; }

  /* --- Worry カード 14px以上 & 等高化 --- */
  #worry .worry-grid{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: 1fr !important;
    gap: 12px !important;
    max-width: 100% !important;
  }
  #worry .worry-grid > *{
    height: 100% !important;
  }
  body #worry .worry h3,
  body #worry .worry .body h3{
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
  body #worry .worry .n{
    font-size: 12px !important;
    padding: 3px 10px !important;
  }

  /* --- Service コース 等高化 --- */
  #service .courses{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: 1fr !important;
    gap: 16px !important;
  }
  #service .course{
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }
  #service .course .body{
    flex: 1 !important;
  }

  /* --- Feature 等高化 --- */
  #feature .reasons{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: 1fr !important;
    gap: 16px !important;
  }

  /* --- Staff 円形写真の 微差(2px) 潰し --- */
  .staff-card{
    height: 435px !important;
  }

  /* --- FAQ カード 等高風 --- */
  #faq details{
    min-height: 60px !important;
  }

  /* --- 全体長さ圧縮：Section padding をさらに詰める --- */
  body section#about .head,
  body section.worry .head,
  body section.service .head,
  body section.feature .head,
  body section.flow .head,
  body section.voice .head,
  body section.faq .head,
  body section.company .head,
  body section.contact .head,
  body section#staff .head,
  body section#before-after .head,
  body section#voice-full .head,
  body section#cancel-policy .head{
    margin-bottom: 24px !important;
  }
  body section:not(#top):not(.cta-bar){
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* --- CTA-bar モバイル pill 密着維持 --- */
  section#voice + .cta-bar{
    margin-top: 0 !important;
    border-radius: 0 !important;
  }

  /* --- 権威性 src/meta 14px以上に補正 --- */
  body section#top .fv-auth-item .auth-label .src{ font-size: 14px !important; }
  body section#top .fv-auth-item .auth-label .meta{ font-size: 14px !important; }

  /* --- kicker サブラベル 14px以上に補正（IDセレクタで強化） --- */
  body #service .add-card .kicker,
  body #service .courses .kicker,
  body #service .tickets .kicker,
  body #service .head .kicker,
  body #feature .stages-head .kicker,
  body #feature .kicker,
  body #voice .doctor .body .kicker,
  body #voice .kicker,
  body #contact .card .kicker,
  body #contact .kicker,
  body #worry .special .kicker,
  body #worry .kicker,
  body #staff .kicker,
  body #faq .kicker,
  body #company .kicker,
  body .kicker,
  body div.kicker,
  body #staff .staff-card .role,
  body #staff .role,
  body .staff-card .role,
  body .head .eyebrow,
  body .head .sec-eyebrow-en{
    font-size: 14px !important;
  }

  /* --- 業界店舗数No.1バッジ削除済み確認（残っていれば非表示） --- */
  .hq-crown-badge, .hq-crown-wrap{ display: none !important; }

  /* --- 各セクションのeyebrow文字を14pxに --- */
  body .head .eyebrow,
  body .head .sec-eyebrow-en{
    font-size: 14px !important;
    opacity: .4 !important;
  }

  /* --- カード内テキスト最小14px --- */
  body #worry h3,
  body #service h3,
  body #feature h3,
  body #voice h3,
  body #staff h3,
  body #faq h3,
  body #company h3,
  body #contact h3{
    font-size: 15px !important;
  }
  body #worry p,
  body #service p:not(.note),
  body #feature p,
  body #voice p,
  body #faq p,
  body #company p,
  body #contact p{
    font-size: 14px !important;
    line-height: 1.7 !important;
  }
  body p.note, body .note{
    font-size: 12px !important;
  }
}

/* ==========================================================
   [FV FULLWIDTH FIX] モニター幅で画像が右端まで届く
   ・.bg を .fv-canvas から外に出して 100vw で表示
   ・画像は右寄せ配置（モデルの顔が右）
   ・テキストは左から 240px 余白
   ========================================================== */
.hero{
  overflow: hidden;
  position: relative;
}
.hero .bg-fullwidth{
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  width: 100vw !important;
  height: 100% !important;
}
.hero .bg-fullwidth img{
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: right center !important;
  max-width: none !important;
  min-width: 100% !important;
  transform: none !important;
}
/* 大画面（>1440px）ではさらに右寄せで画像拡大 */
@media(min-width: 1441px){
  .hero .bg-fullwidth img{
    object-position: 60% center !important;
    transform: scale(1.1) !important;
    transform-origin: right center !important;
  }
}
@media(min-width: 1920px){
  .hero .bg-fullwidth img{
    transform: scale(1.25) !important;
  }
}
/* テキスト位置：1440基準の絶対配置は残しつつ、超大画面用にオフセット追加 */
@media(min-width: 1441px){
  .hero .fv-canvas{
    /* transformで拡大される代わりに絶対配置で 240px 余白 */
    transform: none !important;
    width: 100vw !important;
    height: calc(100vw * 650 / 1440) !important;
    max-height: 900px;
    position: relative;
    margin: 0 auto;
  }
  /* --- テキストは 1440px時のジャンプ率を維持して viewport 比例で拡大 --- */
  /* 元 20px @1440 → 1.39vw */
  .hero .fv-canvas .fv-catch{
    left: 240px !important; top: 155px !important;
    font-size: clamp(20px, 1.39vw, 32px) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.05em !important;
  }
  /* 元 68px @1440 → 4.72vw （line-height:1.3対応で top上げ） */
  .hero .fv-canvas .fv-title-1{
    left: 240px !important; top: 220px !important;
    font-size: clamp(68px, 4.72vw, 100px) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.05em !important;
    transform: translateY(0) !important;
  }
  /* 元 72px @1440 → 5vw （line-height:1.3対応で top下げ・重ならないよう） */
  .hero .fv-canvas .fv-title-2{
    left: 224px !important; top: 340px !important;
    font-size: clamp(72px, 5vw, 108px) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.05em !important;
    transform: translateY(0) !important;
  }
  /* 権威性エリア（3項目） */
  .hero .fv-canvas .fv-authority{ left: 240px !important; }
  .hero .fv-canvas .fv-auth-note{ left: 240px !important; }
  /* FV メインCTA（他要素と左揃え・キャッチと同じ 240px） */
  .hero .fv-canvas .fv-cta{
    left: 240px !important;
    top: calc(50% + 240px) !important;
  }
  /* 元 32px @1440 → 2.22vw */
  .hero .fv-canvas .fv-auth-item .auth-num{
    font-size: clamp(32px, 2.22vw, 48px) !important;
  }
  /* 元 13/12px → 補正 */
  .hero .fv-canvas .fv-auth-item .auth-label .src{
    font-size: clamp(13px, .90vw, 20px) !important;
  }
  .hero .fv-canvas .fv-auth-item .auth-label .meta{
    font-size: clamp(12px, .83vw, 18px) !important;
  }
  .hero .fv-canvas .fv-auth-note{
    font-size: clamp(12px, .83vw, 18px) !important;
  }
  /* 権威性の縦幅・padding もviewport比例で拡大 */
  .hero .fv-canvas .fv-authority{
    padding: clamp(20px, 1.39vw, 30px) clamp(30px, 2.08vw, 44px) !important;
    gap: clamp(30px, 2.78vw, 60px) !important;
  }
  .hero .fv-canvas .fv-auth-item .auth-icon{
    width: clamp(32px, 2.22vw, 48px) !important;
    height: clamp(32px, 2.22vw, 48px) !important;
  }
}

/* ④ フルワイド写真ストリップ 高さ500px + 下余白なし + キャプション拡大 */
.hq-photo-strip{
  height: 500px !important;
  margin-bottom: 0 !important;
}
.hq-photo-strip img{
  object-position: 50% 65% !important;
  filter: brightness(.75) contrast(1.06) saturate(0.9);
}
.hq-photo-strip .caption{
  font-size: clamp(28px, 3.5vw, 48px) !important;
  letter-spacing: 0.15em !important;
  line-height: 1.4 !important;
  text-shadow: 0 4px 30px rgba(0,0,0,.7), 0 2px 12px rgba(0,0,0,.5) !important;
}
.hq-photo-strip .caption small{
  font-size: 0.5em !important;
  letter-spacing: 0.3em !important;
  margin-top: 16px !important;
  opacity: 0.9 !important;
}
@media(max-width:700px){
  .hq-photo-strip{ height: 360px !important; }
  .hq-photo-strip .caption{
    font-size: 20px !important;
    letter-spacing: 0.08em !important;
    padding: 0 20px !important;
  }
  .hq-photo-strip .caption small{
    font-size: 12px !important;
    letter-spacing: 0.2em !important;
    margin-top: 10px !important;
  }
}
/* 波型divider（白→紺）を削除 or 高さゼロ化して白間ゼロに */
.hq-wave-divider.wave-to-navy{
  display: none !important;
}
/* Voice セクションを直で photo-strip の下に来るよう margin ゼロ */
.hq-photo-strip + section#voice,
.hq-photo-strip + .hq-wave-divider + section#voice{
  margin-top: 0 !important;
}

/* ⑤ CTA-bar 色反転：紺bg × 金ボタン（本家風）+ 写真からの余白 */
.cta-bar{
  background: linear-gradient(135deg, #061C43 0%, #0A2456 50%, #082047 100%) !important;
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}
/* Voice（紺）の直後 or 直後の hq-wave の後の CTA-bar は 白余白ゼロで密着 */
section#voice + .cta-bar,
section#voice + .hq-wave-divider + .cta-bar,
section#voice ~ .cta-bar:first-of-type{
  margin-top: 0 !important;
  border-radius: 0 !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}
@media(max-width:700px){
  .cta-bar{ margin-top: 24px !important; margin-bottom: 24px !important; }
  section#voice + .cta-bar{ margin-top: 0 !important; }
}
.cta-bar .msg{
  color: #fff !important;
}
.cta-bar .msg small{
  color: rgba(255,255,255,.75) !important;
}
.cta-bar .btn{
  background: linear-gradient(135deg, #E6C46A, #BF9E3C) !important;
  color: #061C43 !important;
  font-weight: 800 !important;
  box-shadow: 0 8px 22px rgba(191,158,60,.35) !important;
}
.cta-bar .btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(191,158,60,.5) !important;
}
.cta-bar .btn::after{
  color: #061C43 !important;
}

/* ==========================================================
   [FIX v5] 追加指示 5点
   ① FIRST TIME SPECIAL 文字拡大
   ② Service コース写真の白余白削除（済み）
   ③ Flow 破線を中央高さに
   ④ 全セクションタイトル統一（PC h2:44px/eyebrow:16px, SP h2:24px/eyebrow:16px）
   ========================================================== */

/* ① FIRST TIME SPECIAL 文字拡大 */
body #worry .special .kicker{ font-size: 16px !important; }
body #worry .special h3{ font-size: clamp(28px, 3.5vw, 40px) !important; margin-bottom: 32px !important; }
body #worry .special .plan .time{ font-size: 18px !important; }
body #worry .special .plan .name{ font-size: 24px !important; margin: 8px 0 14px !important; }
body #worry .special .plan .before{ font-size: 16px !important; }
body #worry .special .plan .now{ font-size: 44px !important; margin: 6px 0 12px !important; }
body #worry .special .plan .now small{ font-size: 18px !important; }
@media(max-width:700px){
  body #worry .special .kicker{ font-size: 14px !important; }
  body #worry .special h3{ font-size: 22px !important; margin-bottom: 24px !important; }
  body #worry .special .plan .time{ font-size: 16px !important; }
  body #worry .special .plan .name{ font-size: 18px !important; }
  body #worry .special .plan .before{ font-size: 14px !important; }
  body #worry .special .plan .now{ font-size: 32px !important; }
  body #worry .special .plan .now small{ font-size: 14px !important; }
}

/* ③ Flow 破線を中央高さに */
body #flow .flow-steps::before{
  top: 50% !important;
  transform: translateY(-50%) !important;
}

/* ==========================================================
   [FIX v6] モニター（>1440px）で本文含めviewport比例で拡大
   ジャンプ率維持しつつ、超大画面でも読みやすく
   ========================================================== */
@media(min-width: 1441px){
  /* 本文 p → 16px を viewport 比例で拡大 (1440基準1.11vw = 16px) */
  body #worry p:not(.now):not(.before),
  body #service p,
  body #feature p,
  body #voice p,
  body #staff p,
  body #faq p,
  body #faq .ans,
  body #company p,
  body #contact p,
  body #cancel-policy p,
  body #cancel-policy .val{
    font-size: clamp(16px, 1.11vw, 22px) !important;
    line-height: 1.9 !important;
  }
  /* カード見出し h3 → 18-20px を 1.5vw で拡大 */
  body #service .course h3,
  body #service .add-card h3,
  body #feature .r-card h3,
  body #feature .stage h3,
  body #feature .stage h4,
  body #voice h3,
  body #staff .staff-card h3,
  body #staff .name,
  body #faq summary,
  body #faq .faq-item summary,
  body .worry h3,
  body #worry .worry h3{
    font-size: clamp(18px, 1.5vw, 28px) !important;
  }
  /* 料金・大きな数字 */
  body #service .course .price{
    font-size: clamp(20px, 1.7vw, 30px) !important;
  }
  body #service .course .price small,
  body #service .course .price sub{
    font-size: clamp(14px, 1.1vw, 20px) !important;
  }
  body #service .add-card .row .price,
  body #service .add-card .row .name{
    font-size: clamp(16px, 1.25vw, 22px) !important;
  }
  /* Service コースサブタイトル */
  body #service .course .desc,
  body #service .course .subtitle,
  body #service .course .duration{
    font-size: clamp(16px, 1.15vw, 20px) !important;
  }
  /* Flow ステップ */
  body #flow .step h4,
  body #flow .step .step-title,
  body #flow .flow-step h4{
    font-size: clamp(18px, 1.5vw, 26px) !important;
  }
  body #flow .step p,
  body #flow .flow-step p{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  body #flow .step .n,
  body #flow .flow-step .n,
  body #flow .step .period,
  body #flow .step .step-num{
    font-size: clamp(16px, 1.25vw, 22px) !important;
  }
  /* Feature stage 番号 */
  body #feature .stage .stg-num,
  body #feature .stage .num{
    font-size: clamp(36px, 3.5vw, 60px) !important;
  }
  body #feature .stage .period{
    font-size: clamp(14px, 1.15vw, 20px) !important;
  }
  /* Staff role */
  body #staff .staff-card .role,
  body #staff .role,
  body .staff-card .role,
  body #staff .staff-card .cred{
    font-size: clamp(14px, 1.15vw, 20px) !important;
  }
  body #staff .staff-card .exp{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  body #staff .staff-card .fee{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  /* Staff badge (店長, 認定トレーナー, 口コミNo.1 etc.) */
  body #staff .staff-card .badges .b,
  body #staff .staff-card .badge{
    font-size: clamp(14px, 1.05vw, 18px) !important;
    padding: 4px 12px !important;
  }
  /* FAQ tabs */
  body #faq .tab,
  body #faq button.tab{
    font-size: clamp(15px, 1.1vw, 20px) !important;
    padding: 10px 20px !important;
  }
  body #faq summary{
    padding: 20px !important;
  }
  /* Cancel Policy 表 */
  body #cancel-policy .lbl,
  body #cancel-policy th{
    font-size: clamp(15px, 1.1vw, 20px) !important;
  }
  body #cancel-policy .val,
  body #cancel-policy td{
    font-size: clamp(15px, 1.15vw, 22px) !important;
  }
  /* kicker / eyebrow */
  body .kicker,
  body .head .eyebrow,
  body .head .sec-eyebrow-en,
  body #service .add-card .kicker,
  body #service .tickets .kicker,
  body #feature .stages-head .kicker,
  body #voice .doctor .body .kicker{
    font-size: clamp(15px, 1.15vw, 20px) !important;
  }
  /* Small notes */
  body .note,
  body p.note,
  body small{
    font-size: clamp(14px, 1.05vw, 18px) !important;
  }
  /* CTA button label */
  body .cta-bar .btn,
  body .cta-bar .msg,
  body .contact .card .btn,
  body #service .course .more,
  body .btn,
  body a.btn{
    font-size: clamp(15px, 1.15vw, 20px) !important;
  }
  body .cta-bar .msg{
    font-size: clamp(18px, 1.4vw, 26px) !important;
  }
  body .cta-bar .msg small{
    font-size: clamp(13px, 1vw, 18px) !important;
  }
  /* Company 情報テーブル */
  body #company .info .lbl{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  body #company .info .val{
    font-size: clamp(15px, 1.15vw, 20px) !important;
  }
  /* Course の分数タイトル (30 MIN / 60 MIN / 90 MIN) */
  body #service .course .duration,
  body #service .course .cat{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    letter-spacing: 0.25em !important;
  }
}

/* ==========================================================
   [MOBILE HEADER v2] スマホヘッダー：ハンバーガー+予約ボタン
   ========================================================== */
/* デフォルト（PC）：ハンバーガー・SP専用予約ボタンは非表示 */
.hdr .btn-reserve-sp,
.hdr .hamburger{
  display: none;
}
.mobile-drawer{ display: none; }

/* Phase 2-1: モバイルドロワー発火を 700px → 900px に引き上げ(タブレット帯701〜900px破綻対応) */
@media(max-width:900px){
  /* PC用の Web予約ボタン と リンク はSP/タブレットで非表示 */
  .hdr nav .btn-reserve,
  .hdr nav .link{
    display: none !important;
  }
  /* SP専用：小さな金ボタン */
  .hdr .btn-reserve-sp{
    display: inline-flex !important;
    align-items: center;
    background: linear-gradient(135deg, #E6C46A, #BF9E3C);
    color: #061C43;
    font-family: 'Shippori Mincho', serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 8px 16px;
    border-radius: 999px;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(191,158,60,.3);
  }
  /* SP専用：ハンバーガー */
  .hdr .hamburger{
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 8px;
    background: transparent;
    border: 1px solid rgba(6,28,67,.2);
    border-radius: 8px;
    cursor: pointer;
    margin-left: 8px;
  }
  .hdr .hamburger span{
    display: block;
    width: 20px;
    height: 2px;
    background: #061C43;
    border-radius: 2px;
    transition: all .3s;
  }
  .hdr .hamburger.is-open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
  .hdr .hamburger.is-open span:nth-child(2){ opacity: 0; }
  .hdr .hamburger.is-open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
  /* nav 全体はflexで並べる */
  .hdr nav{
    display: flex;
    align-items: center;
    gap: 6px;
  }
  /* Header 全体パディング調整 */
  .hdr{ padding: 12px 16px; }
  .hdr .brand .logo{ width: 42px; height: 42px; }
  .hdr .brand .branch{ font-size: 14px; padding: 4px 10px; letter-spacing: .05em; }
  .hdr .brand .brand-tagline{ display: none; } /* SPは非表示（画面幅確保） */
}

/* モバイルドロワー本体 */
.mobile-drawer{
  position: fixed;
  top: 0;
  right: 0;
  width: 78%;
  max-width: 320px;
  height: 100vh;
  background: linear-gradient(180deg, #061C43 0%, #0A2456 100%);
  z-index: 999;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.2,.7,.2,1);
  box-shadow: -8px 0 30px rgba(0,0,0,.4);
  overflow-y: auto;
  padding: 80px 24px 40px;
  display: block;
}
.mobile-drawer.is-open{
  transform: translateX(0);
}
.mobile-drawer-inner{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mobile-drawer .mlink{
  color: #fff;
  font-family: 'Shippori Mincho', serif;
  font-size: 16px;
  padding: 14px 12px;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.1);
  letter-spacing: 0.05em;
}
.mobile-drawer .mreserve{
  display: block;
  margin-top: 24px;
  background: linear-gradient(135deg, #E6C46A, #BF9E3C);
  color: #061C43;
  text-align: center;
  padding: 14px 20px;
  border-radius: 999px;
  font-family: 'Shippori Mincho', serif;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  letter-spacing: 0.1em;
  box-shadow: 0 8px 20px rgba(191,158,60,.4);
}
/* ドロワー閉じるボタン ✕ */
.mobile-drawer-close{
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .2s;
}
.mobile-drawer-close:hover{
  background: rgba(255,255,255,.08);
}
.mobile-drawer-close span{
  position: absolute;
  width: 18px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
}
.mobile-drawer-close span:nth-child(1){ transform: rotate(45deg); }
.mobile-drawer-close span:nth-child(2){ transform: rotate(-45deg); }

/* ドロワー背景オーバーレイ */
.mobile-drawer-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
.mobile-drawer-overlay.is-open{
  opacity: 1;
  pointer-events: auto;
}

/* ==========================================================
   [MOBILE FV] キャッチコピー改行位置調整
   ========================================================== */
@media(max-width:700px){
  body section#top .fv-catch p{
    white-space: normal !important;
    word-break: auto-phrase;
    line-break: strict;
  }
  body section#top .fv-catch p:first-child{
    /* 「PCやスマホからくる眼精疲労や首肩こり・脳疲労・疲れを癒やす」を短く */
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
  body section#top .fv-catch p:last-child{
    font-size: 13px !important;
    margin-top: 4px !important;
  }
}

/* ==========================================================
   [MOBILE PHOTO STRIP] キャプションを2行に
   ========================================================== */
@media(max-width:700px){
  .hq-photo-strip{
    height: 240px !important;
  }
  .hq-photo-strip .caption{
    font-size: 19px !important;
    letter-spacing: 0.06em !important;
    line-height: 1.6 !important;
    padding: 0 20px !important;
    white-space: normal !important;
    width: auto !important;
    max-width: none !important;
    left: 0 !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    text-align: center !important;
  }
  .hq-photo-strip .caption .cap-line{
    display: inline;
    white-space: nowrap;
  }
  .hq-photo-strip .caption .sp-br{
    display: inline !important;
  }
  .hq-photo-strip .caption small{
    font-size: 11px !important;
    letter-spacing: 0.15em !important;
    margin-top: 14px !important;
    display: block !important;
  }
}
/* PC: sp-br is hidden - keep inline */
@media(min-width:701px){
  .hq-photo-strip .caption .sp-br{
    display: none;
  }
}

/* ==========================================================
   [FOOTER] 2行構成(1行目5個/2行目4個)いずれも横並び
   ========================================================== */
.foot .links{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  max-width: none !important;
  margin: 28px auto !important;
  padding: 0 16px !important;
  text-align: center;
}
.foot .links .links-row{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;   /* 1行内は横並び固定 */
  justify-content: center !important;
  gap: 24px !important;
}
.foot .links a{
  display: inline-block !important;
  white-space: nowrap !important;
  margin: 0 !important;
  font-size: 14px !important;
}
@media(max-width:700px){
  .foot .links{gap:8px !important;}
  .foot .links .links-row{gap:14px !important;flex-wrap:wrap !important;}
  .foot .links a{font-size:13px !important;}
}
/* コピーライト：常に1行・中央揃え */
.foot .copy{
  text-align: center !important;
  white-space: nowrap !important;
  font-size: 12px !important;
  overflow: hidden;
}
.foot .copy br{ display: none !important; }
.foot .copy small{
  display: inline !important;
  margin-left: 12px !important;
  font-size: 11px !important;
  opacity: .7;
}
@media(max-width:700px){
  .foot .links{
    font-size: 13px !important;
    line-height: 1.6 !important;
    max-width: 340px !important;
    gap: 12px 6px !important;
  }
  .foot .links a{
    font-size: 13px !important;
  }
  .foot .copy{
    font-size: 10px !important;
    white-space: nowrap !important;
    padding: 0 8px !important;
  }
  .foot .copy small{
    display: block !important; /* SP は住所のみ2行目に */
    margin-left: 0 !important;
    margin-top: 4px !important;
    font-size: 9px !important;
    white-space: nowrap !important;
  }
}

/* ==========================================================
   [MOBILE PADDING] 375px：全セクション左右最小16px確保
   （フルワイド写真・FVヒーローは除外）
   ========================================================== */
@media(max-width:700px){
  body section:not(#top):not(.hq-photo-strip):not(.cta-bar){
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* インナー wrap も左右余白確保 */
  body section:not(#top):not(.hq-photo-strip) > .wrap,
  body section:not(#top):not(.hq-photo-strip) > .container{
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  /* CTA-bar もセクションではないので個別対応（20pxのまま） */
  body .cta-bar{
    margin-left: 16px !important;
    margin-right: 16px !important;
    max-width: calc(100% - 32px) !important;
  }
  body section#voice + .cta-bar{
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }
  /* Footer も16px */
  body .foot{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* フルワイド写真ストリップは 100vw 維持 */
  body .hq-photo-strip{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ==========================================================
   [FONT SCALE UP v2] 大画面で本文・カード内文字を大幅拡大
   ジャンプ率維持しつつ、モニターでも読める大きさに
   ========================================================== */
@media(min-width:1200px){
  /* About（紺bg）テキスト拡大 */
  body .about-intro .txt .tag{
    font-size: clamp(16px, 1.25vw, 22px) !important;
  }
  body .about-intro .txt h2{
    font-size: clamp(36px, 3.8vw, 60px) !important;
    line-height: 1.5 !important;
    margin-bottom: 32px !important;
  }
  body .about-intro .txt .lead{
    font-size: clamp(18px, 1.55vw, 26px) !important;
    line-height: 2 !important;
    margin-bottom: 40px !important;
  }
  body .about-intro .txt .desc{
    font-size: clamp(16px, 1.3vw, 22px) !important;
    line-height: 2.1 !important;
    max-width: 720px !important;
  }
  body .about-intro .txt .desc p{
    font-size: clamp(16px, 1.3vw, 22px) !important;
    margin-bottom: 20px !important;
  }

  /* Flow ステップ拡大 */
  body #flow .step h4,
  body #flow .flow-step h4,
  body #flow .step-title{
    font-size: clamp(20px, 1.8vw, 28px) !important;
    line-height: 1.5 !important;
    margin: 10px 0 !important;
  }
  body #flow .step p,
  body #flow .flow-step p{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    line-height: 1.7 !important;
  }
  body #flow .step .step-icon,
  body #flow .flow-step .step-icon{
    width: clamp(56px, 4.5vw, 72px) !important;
    height: clamp(56px, 4.5vw, 72px) !important;
    margin: 14px auto !important;
  }
  body #flow .step .step-icon svg,
  body #flow .flow-step .step-icon svg{
    width: 60% !important;
    height: 60% !important;
  }
  body #flow .step .n,
  body #flow .flow-step .n,
  body #flow .step .step-num,
  body #flow .step .period{
    font-size: clamp(15px, 1.2vw, 20px) !important;
    letter-spacing: 0.2em !important;
  }
  body #flow .flow-step,
  body #flow .step{
    padding: 24px 20px !important;
    min-height: 220px !important;
  }

  /* Feature stage 大幅拡大 */
  body #feature .stage h3,
  body #feature .stage h4{
    font-size: clamp(20px, 1.65vw, 26px) !important;
  }
  body #feature .stage p{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    line-height: 1.8 !important;
  }
  body #feature .stages-head h3{
    font-size: clamp(24px, 2.2vw, 34px) !important;
  }

  /* Worry カード拡大 */
  body #worry .worry h3,
  body #worry .worry .body h3{
    font-size: clamp(17px, 1.35vw, 22px) !important;
    line-height: 1.6 !important;
  }
  body #worry .worry .n{
    font-size: clamp(14px, 1.05vw, 18px) !important;
    padding: 4px 12px !important;
  }

  /* Service コース拡大 */
  body #service .course h3{
    font-size: clamp(22px, 1.85vw, 30px) !important;
  }
  body #service .course p,
  body #service .course .desc{
    font-size: clamp(16px, 1.2vw, 20px) !important;
    line-height: 1.9 !important;
  }
  body #service .course .price{
    font-size: clamp(24px, 2vw, 34px) !important;
  }
  body #service .course .duration,
  body #service .course .cat{
    font-size: clamp(16px, 1.2vw, 22px) !important;
    letter-spacing: 0.25em !important;
  }

  /* Staff カード拡大 */
  body #staff .staff-card .name{
    font-size: clamp(19px, 1.5vw, 24px) !important;
  }
  body #staff .staff-card .role{
    font-size: clamp(14px, 1.15vw, 18px) !important;
  }
  body #staff .staff-card .cred,
  body #staff .staff-card .exp{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    line-height: 1.7 !important;
  }
  body #staff .staff-card .fee{
    font-size: clamp(15px, 1.15vw, 20px) !important;
  }

  /* FAQ Q&A 拡大 */
  body #faq summary{
    font-size: clamp(17px, 1.3vw, 22px) !important;
    padding: 22px 24px !important;
  }
  body #faq .ans,
  body #faq details p{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    line-height: 1.9 !important;
    padding: 16px 24px !important;
  }
  body #faq .tab{
    font-size: clamp(15px, 1.2vw, 20px) !important;
    padding: 12px 22px !important;
  }

  /* Company 拡大 */
  body #company h3{
    font-size: clamp(20px, 1.5vw, 26px) !important;
  }
  body #company p,
  body #company .val{
    font-size: clamp(16px, 1.25vw, 22px) !important;
    line-height: 1.9 !important;
  }
  body #company .lbl{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  body #company .step .n{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }

  /* Cancel Policy 拡大 */
  body #cancel-policy .lbl{
    font-size: clamp(16px, 1.25vw, 22px) !important;
    padding: 20px 0 !important;
  }
  body #cancel-policy .val{
    font-size: clamp(16px, 1.25vw, 22px) !important;
    line-height: 2 !important;
    padding: 20px 0 !important;
  }

  /* Voice医師推薦 拡大 */
  body #voice .doctor .body h3{
    font-size: clamp(22px, 1.85vw, 32px) !important;
    line-height: 1.6 !important;
  }
  body #voice .doctor .body blockquote{
    font-size: clamp(16px, 1.2vw, 20px) !important;
    line-height: 2 !important;
  }
  body #voice .doctor .name{
    font-size: clamp(20px, 1.6vw, 26px) !important;
  }
  body #voice .doctor .role{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }

  /* Contact 拡大 */
  body #contact .card h3{
    font-size: clamp(22px, 1.8vw, 30px) !important;
  }
  body #contact .card .desc{
    font-size: clamp(15px, 1.15vw, 20px) !important;
    line-height: 1.9 !important;
  }
  body #contact .card .val{
    font-size: clamp(22px, 1.75vw, 30px) !important;
  }
  body #contact .card .kicker{
    font-size: clamp(14px, 1.1vw, 18px) !important;
  }
  body #contact .card .btn{
    font-size: clamp(15px, 1.2vw, 20px) !important;
    padding: 16px 30px !important;
  }

  /* Worry .special (初回特別プライス) さらに強調 */
  body #worry .special h3{
    font-size: clamp(30px, 2.4vw, 44px) !important;
  }
  body #worry .special .plan .now{
    font-size: clamp(38px, 3vw, 52px) !important;
  }
  body #worry .special .plan .name{
    font-size: clamp(20px, 1.65vw, 28px) !important;
  }
  body #worry .special .plan .time{
    font-size: clamp(16px, 1.25vw, 22px) !important;
  }

  /* arrow-band lead */
  body #worry .arrow-band .lead{
    font-size: clamp(28px, 2.5vw, 44px) !important;
  }
}

/* ==========================================================
   [POLISH v7] 追加調整（大画面）
   ・Footer 拡大
   ・カード内余白拡大
   ・Flow説明文拡大
   ・横幅拡大
   ・カード脱・箱化（フラット枠線ベースへ）
   ========================================================== */

/* ① Footer リンク・コピーライト 拡大 */
@media(min-width:1200px){
  body .foot .brand{
    font-size: clamp(22px, 1.75vw, 30px) !important;
  }
  body .foot .brand small{
    font-size: clamp(13px, 1.05vw, 18px) !important;
  }
  body .foot .links{
    max-width: 640px !important;
    gap: 20px 24px !important;
  }
  body .foot .links a{
    font-size: clamp(16px, 1.2vw, 20px) !important;
  }
  body .foot .copy{
    font-size: clamp(14px, 1.05vw, 18px) !important;
  }
  body .foot .copy small{
    font-size: clamp(13px, 1vw, 17px) !important;
  }
}

/* ② コンテンツ横幅を全体的に拡大 */
@media(min-width:1200px){
  body #worry .worry-grid,
  body #service .courses,
  body #service .add-grid,
  body #feature .reasons,
  body #flow .flow-steps,
  body #staff .staff-grid,
  body #faq .faq-list,
  body #faq .wrap,
  body #company .wrap,
  body #contact .three{
    max-width: 1440px !important;
  }
  body section .wrap,
  body section .container{
    max-width: 1440px !important;
    margin: 0 auto !important;
  }
  body .cta-bar .wrap{
    max-width: 1200px !important;
  }
}

/* ③ カード内余白を大幅拡大 */
@media(min-width:1200px){
  body #service .course .body{
    padding: 28px 32px !important;
  }
  body #service .course .top{
    padding: 36px 32px 24px !important;
  }
  body #service .add-card{
    padding: 32px !important;
  }
  body #feature .r-card{
    padding: 28px !important;
  }
  body #feature .r-card .body{
    padding: 24px 28px !important;
  }
  body #feature .stage{
    padding: 32px 28px !important;
  }
  body #flow .step,
  body #flow .flow-step{
    padding: 32px 24px !important;
    min-height: 260px !important;
  }
  body #staff .staff-card{
    padding: 24px !important;
  }
  body #staff .staff-card .body{
    padding: 20px 20px 24px !important;
  }
  body #faq details{
    margin-bottom: 12px !important;
  }
  body #faq summary{
    padding: 24px 30px !important;
  }
  body #faq .ans,
  body #faq details p{
    padding: 22px 30px 26px !important;
  }
  body #contact .card{
    padding: 40px 32px !important;
  }
  body #company .info .row{
    padding: 18px 24px !important;
  }
  body #cancel-policy .lbl,
  body #cancel-policy .val{
    padding: 20px 24px !important;
  }
  body #worry .worry .body{
    padding: 20px 24px !important;
  }
  body #worry .special{
    padding: 56px 48px !important;
  }
}

/* ④ Flow 説明文をさらに拡大 */
@media(min-width:1200px){
  body #flow .step p,
  body #flow .flow-step p,
  body #flow .step-body p{
    font-size: clamp(17px, 1.3vw, 22px) !important;
    line-height: 1.8 !important;
    margin-top: 12px !important;
  }
  body #flow .step h4,
  body #flow .flow-step h4{
    font-size: clamp(22px, 1.9vw, 30px) !important;
    margin: 14px 0 !important;
  }
}

/* ⑤ カード脱・箱化：フラット枠線ベース */
body .worry .worry,
body #worry .worry,
body #feature .r-card,
body #feature .stage,
body #staff .staff-card,
body #flow .step,
body #flow .flow-step,
body .voice-full-grid .vf-card{
  border: 1px solid rgba(6,28,67,.08) !important;
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}
/* Service course のみ大きな角丸維持（主役） */
body #service .course{
  border-radius: 20px !important;
  border: 1px solid rgba(6,28,67,.06) !important;
  box-shadow: none !important;
}
body #service .course.featured{
  border: 2px solid var(--gold) !important;
  box-shadow: 0 8px 24px rgba(191,158,60,.15) !important;
}

/* FAQ フラット化 */
body #faq details,
body #faq .faq-item{
  border: 1px solid rgba(6,28,67,.08) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  background: #fff !important;
  margin-bottom: 10px !important;
}

/* Company .info フラット化 */
body #company .info,
body #cancel-policy .policy-table,
body #cancel-policy table{
  border: 1px solid rgba(6,28,67,.08) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* Hover時のみ「浮き」ではなく背景差だけで軽く応答 */
body .worry .worry:hover,
body #feature .r-card:hover,
body #flow .step:hover,
body #flow .flow-step:hover,
body #staff .staff-card:hover{
  border-color: rgba(191,158,60,.4) !important;
  background: #FEFDF8 !important;
  transform: none !important;
  box-shadow: none !important;
}
body #service .course:hover{
  border-color: var(--gold) !important;
  transform: none !important;
  box-shadow: 0 4px 12px rgba(6,28,67,.06) !important;
}

/* 写真の hover ズームは維持（軽い動き） */
body .worry .worry:hover .photo img,
body #service .course:hover .photo img,
body #feature .r-card:hover .photo img,
body #staff .staff-card:hover .photo img{
  transform: scale(1.04) !important;
  box-shadow: none !important;
}
body .worry .worry:hover .photo,
body #service .course:hover .photo,
body #feature .r-card:hover .photo,
body #staff .staff-card:hover .photo{
  box-shadow: none !important;
}

/* h1 SEO用（画面外に隠す・SEO/a11yには有効） ※画面表示は削除 */
html body h1.fv-h1-seo:not(#__a):not(#__b){
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  font-size: 1px !important;
  color: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* FVのサブタグ「熊本のドライヘッドスパ専門店」 */
.hero .fv-canvas .fv-sub-tag{
  position: absolute;
  left: 240px;
  top: 420px;
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(14px, 1.05vw, 18px);
  color: rgba(255,255,255,.85);
  letter-spacing: 0.15em;
  z-index: 3;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
@media(max-width:1440px){
  .hero .fv-canvas .fv-sub-tag{ left: 86px; top: 390px; font-size: 13px; }
}
@media(max-width:700px){
  .hero .fv-canvas .fv-sub-tag{
    left: 16px !important;
    right: 16px !important;
    top: 305px !important;
    font-size: 12px !important;
    letter-spacing: 0.1em !important;
  }
}

/* ⭐ 全h2に「熊本のドライヘッドスパ専門店」小サブタイトル - id疑似で強制specificity */
html body section h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c){
  display: block !important;
  font-family: 'Shippori Mincho', serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  color: var(--hq-navy) !important;
  margin-top: 10px !important;
  padding: 10px 0 0 !important;
  line-height: 1.4 !important;
}
html body section .head p:not(#__a):not(#__b){
  padding-top: 10px !important;
  margin-top: 0 !important;
}
html body section .head .sec-eyebrow-en:not(#__a):not(#__b){
  padding-bottom: 10px !important;
}
@media(min-width:1200px){
  html body section h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c){
    font-size: 16px !important;
  }
}
html body section.voice h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section.feature h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section.about h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section.contact h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section#voice h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section#feature h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section#about h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c),
html body section#contact h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c){
  color: rgba(255,255,255,.85) !important;
}
/* 各セクションの英字ラベル（sec-eyebrow-en / Access / Menu 等）を非表示 */
html body section .head .sec-eyebrow-en:not(#__a):not(#__b),
html body section .head .sec-eyebrow-jp:not(#__a):not(#__b),
html body section .head::before{
  display: none !important;
}
html body section .head h2:not(#__a):not(#__b){
  padding-top: 0 !important;
}
@media(max-width:700px){
  html body section h2 span.h2-sub-auto:not(#__a):not(#__b):not(#__c){
    font-size: 12px !important;
    letter-spacing: 0.08em !important;
    margin-top: 6px !important;
  }
}

/* こんなお悩みありませんか？ サイズ調整（縮小） */
body #worry .head h2,
body section.worry .head h2{
  font-size: clamp(24px, 2.8vw, 36px) !important;
  line-height: 1.5 !important;
}
@media(max-width:700px){
  body #worry .head h2,
  body section.worry .head h2{
    font-size: 20px !important;
  }
}

/* セクション見出し重複回避：sec-eyebrow-jp（日本語小サブ）を非表示 */
body .head .sec-eyebrow-jp{
  display: none !important;
}

/* CTA-after-staff テキスト拡大＋中央揃え */
html body .cta-after-staff,
html body .cta-after-staff .wrap,
html body .cta-after-staff .lead,
html body .cta-after-staff .sub,
html body .cta-after-staff h3,
html body .cta-after-staff p{
  text-align: center !important;
}
html body .cta-after-staff .wrap{
  display: block !important;
  max-width: 800px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body .cta-after-staff{
  padding: 60px 20px !important;
}
body .cta-after-staff .msg,
body .cta-after-staff h3{
  font-size: clamp(24px, 2.2vw, 36px) !important;
  line-height: 1.5 !important;
  margin-bottom: 8px !important;
}
body .cta-after-staff p,
body .cta-after-staff small,
body .cta-after-staff .sub{
  font-size: clamp(15px, 1.15vw, 20px) !important;
  line-height: 1.7 !important;
}
body .cta-after-staff .cta-btn{
  font-size: clamp(17px, 1.4vw, 24px) !important;
  padding: 20px 44px !important;
}
@media(max-width:700px){
  body .cta-after-staff{
    padding: 40px 16px !important;
  }
  body .cta-after-staff .msg,
  body .cta-after-staff h3{
    font-size: 20px !important;
  }
  body .cta-after-staff p,
  body .cta-after-staff .sub{
    font-size: 14px !important;
  }
  body .cta-after-staff .cta-btn{
    font-size: 16px !important;
    padding: 16px 28px !important;
  }
}

/* 酸素カプセル：本物写真化 */
body .service .add-card.oxygen .oxygen-photo{
  min-height: 260px !important;
  padding: 0 !important;
  background: transparent !important;
  overflow: hidden !important;
  border-radius: 20px 0 0 20px !important;
}
body .service .add-card.oxygen .oxygen-photo img{
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  filter: brightness(1.02) saturate(0.9) !important;
  position: absolute !important;
  inset: 0 !important;
}
body .service .add-card.oxygen{
  position: relative !important;
  overflow: hidden !important;
}
@media(max-width:700px){
  body .service .add-card.oxygen .oxygen-photo{
    min-height: 200px !important;
    border-radius: 20px 20px 0 0 !important;
  }
  body .service .add-card.oxygen .oxygen-photo img{
    position: relative !important;
    inset: auto !important;
  }
}

/* ==========================================================
   [SHADOW MINIMAL] ドロップシャドウを重要な要素のみに限定
   ・カード類はboxshadow削除（ボーダーで表現）
   ・CTAボタンと主要素のみ残す
   ========================================================== */
/* 一般カード類：影を削除（軽いボーダーへ置換） */
body .worry .worry,
body #worry .worry,
body #service .course,
body #service .add-card,
body #service .add-card.oxygen,
body #service .tickets,
body #feature .r-card,
body #feature .stage,
body #feature .stages,
body #flow .step,
body #flow .flow-step,
body .staff-card,
body #staff .staff-card,
body #faq details,
body #faq .q-card,
body #faq .faq-item,
body #cancel-policy .policy-table,
body #cancel-policy table,
body #company .info,
body #company .info .row,
body #company .step,
body .voice-full-grid .vf-card,
body .worry .photo,
body #worry .photo,
body .service .courses .photo,
body .service .course .photo,
body .feature .reasons .photo,
body .feature .r-card .photo{
  box-shadow: none !important;
}

/* Hover時のみ微弱な影で持ち上げ感（乱用しない） */
body .worry .worry:hover .photo,
body #service .course:hover .photo,
body #feature .r-card:hover .photo,
body .staff-card:hover .photo{
  box-shadow: 0 8px 20px rgba(6,28,67,.10) !important;
}
body #service .course:hover,
body #feature .r-card:hover,
body #flow .step:hover,
body .staff-card:hover{
  box-shadow: 0 6px 16px rgba(6,28,67,.08) !important;
}

/* 影を残すべき要素（主要CTA・focal） */
body .cta-bar .btn,
body .cta-after-staff .cta-btn,
body .hdr .btn-reserve,
body .hdr .btn-reserve-sp,
body .contact .card.primary,
body .contact a.card.primary,
body #contact .card.primary,
body .mreserve,
body .mobile-drawer .mreserve,
body .float-cta,
body #floatCta,
body #worry .special,
body .worry .special,
body .voice .doctor .side .photo,
body #voice .doctor .side .photo,
body .hq-crown-badge{
  /* デフォルトの影を維持 */
}

/* text-shadow / drop-shadow 系も削減 */
body .worry .worry h3,
body #service .course h3,
body #feature .r-card h3,
body .staff-card .name,
body #faq summary,
body .head h2:not(#top *):not(#about *):not(#voice *):not(#contact *){
  text-shadow: none !important;
}
body #service .course .photo img,
body #feature .r-card .photo img,
body .staff-card .photo img,
body .worry .photo img{
  filter: brightness(1.02) saturate(0.95) !important; /* sepia除去 */
}

/* Worry カード：説明文下の白余白を消す（PC/SP共通） */
body #worry .worry-grid{
  align-items: start !important;
  grid-auto-rows: min-content !important;
}
body #worry .worry-grid > *{
  height: auto !important;
  align-self: start !important;
}
body #worry .worry .body{
  padding: 20px 18px !important;
}
/* カード外枠自体の上下80pxパディング（親.worry から継承）を打ち消し */
html body #worry .worry-grid .worry{
  padding: 20px 20px !important;
}
@media(max-width:700px){
  body #worry .worry-grid{
    grid-auto-rows: min-content !important;
  }
  body #worry .worry-grid > *{
    height: auto !important;
    align-self: start !important;
  }
  body #worry .worry .body{
    padding: 20px 14px !important;
  }
  html body #worry .worry-grid .worry{
    padding: 20px 14px !important;
  }
}

/* arrow-band 拡大：ドライヘッドスパで悩みを根本から解決 */
body #worry .arrow-band .arrow{
  font-size: 42px !important;
}
body #worry .arrow-band .lead{
  font-size: clamp(28px, 3.5vw, 40px) !important;
  line-height: 1.5 !important;
}
@media(max-width:700px){
  body #worry .arrow-band .arrow{ font-size: 32px !important; }
  body #worry .arrow-band .lead{ font-size: 22px !important; }
}

/* ④ 全セクションタイトル統一（PC/SP） */
@media(min-width:701px){
  body section .head h2,
  body #about .head h2,
  body #worry .head h2,
  body #service .head h2,
  body #feature .head h2,
  body #flow .head h2,
  body #voice .head h2,
  body #staff .head h2,
  body #faq .head h2,
  body #cancel-policy .head h2,
  body #company .head h2,
  body #contact .head h2,
  body #before-after .head h2,
  body #voice-full .head h2{
    font-size: 44px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.06em !important;
  }
  body section .head .eyebrow,
  body section .head .sec-eyebrow-en{
    font-size: 16px !important;
    letter-spacing: 0.3em !important;
    opacity: 0.4 !important;
    line-height: 1.4 !important;
  }
}
@media(max-width:700px){
  body section .head h2,
  body #about .head h2,
  body #worry .head h2,
  body #service .head h2,
  body #feature .head h2,
  body #flow .head h2,
  body #voice .head h2,
  body #staff .head h2,
  body #faq .head h2,
  body #cancel-policy .head h2,
  body #company .head h2,
  body #contact .head h2,
  body #before-after .head h2,
  body #voice-full .head h2{
    font-size: 24px !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
    padding-top: 44px !important;
  }
  body section .head::before{
    width: 36px !important;
    height: 36px !important;
  }
  body section .head .eyebrow,
  body section .head .sec-eyebrow-en{
    font-size: 16px !important;
    letter-spacing: 0.25em !important;
    opacity: 0.4 !important;
    line-height: 1.4 !important;
  }
}

/* ⭐ worry h2 サイズ最終上書き（統一ルールより後・SPは20px） */
html body #worry .head h2:not(#__a):not(#__b){
  font-size: clamp(24px, 2.8vw, 36px) !important;
  line-height: 1.5 !important;
}
@media(max-width:700px){
  html body #worry .head h2:not(#__a):not(#__b){
    font-size: 20px !important;
    padding-top: 40px !important;
  }
}

/* Voice の見出し部分（紺バンド上）は白文字 */
section#voice .head h2{
  color: #fff !important;
}
section#voice .head h2::before{
  filter: brightness(0) invert(1) sepia(1) saturate(4) hue-rotate(20deg);
  opacity: .7;
}
section#voice .head .eyebrow,
section#voice .head .sec-eyebrow-en,
section#voice .head > p{
  color: rgba(255,255,255,.85) !important;
}
/* Doctorカード：紺bg変更（元は白bg×白文字で読めなかったバグ修正） */
section#voice .doctor{
  background: linear-gradient(135deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.03) 100%) !important;
  border: 1px solid rgba(255,255,255,.15);
  backdrop-filter: blur(6px);
}
section#voice .doctor .body h3,
section#voice .doctor .body blockquote,
section#voice .doctor .body blockquote *,
section#voice .doctor .name{
  color: #fff !important;
}
section#voice .doctor .role{
  color: var(--gold-p, #F6C774) !important;
}
section#voice .doctor .body .kicker{
  color: var(--gold-p, #F6C774) !important;
}
section#voice .doctor .side .badge{
  background: transparent !important;
  color: var(--gold-p, #F6C774) !important;
  border-color: var(--gold-p, #F6C774) !important;
}
section#voice .doctor .side .photo{
  box-shadow: 0 0 0 6px rgba(255,255,255,.15), 0 20px 46px rgba(0,0,0,.35) !important;
}

/* ② フルワイド写真ストリップ（Feature → Voice の間に挿入） */
.hq-photo-strip{
  width: 100vw !important;
  max-width: 100vw !important;
  height: 380px;
  overflow: hidden;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  display: block;
}
.hq-photo-strip img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  filter: brightness(.75) contrast(1.05) saturate(0.9);
  transition: transform 8s ease-out, filter .6s;
}
.hq-photo-strip:hover img{
  transform: scale(1.05);
}
.hq-photo-strip::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(6,28,67,.15) 0%,
    rgba(6,28,67,0) 40%,
    rgba(6,28,67,0) 60%,
    rgba(6,28,67,.3) 100%);
  z-index: 1;
  pointer-events: none;
}
.hq-photo-strip .caption{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(20px, 3vw, 34px);
  font-weight: 500;
  letter-spacing: .18em;
  text-align: center;
  text-shadow: 0 4px 24px rgba(0,0,0,.6);
  z-index: 2;
  animation: hq-fade-up 1.2s ease-out both;
}
.hq-photo-strip .caption small{
  display: block;
  font-size: .55em;
  letter-spacing: .3em;
  opacity: .85;
  margin-top: 12px;
  font-weight: 400;
}
@media(max-width:700px){
  .hq-photo-strip{ height: 280px; }
}

/* ③ セクション交互色バリエ（白 → 薄グレー → 白） */
section.service{
  background: linear-gradient(180deg, #FAFAFA 0%, #F5F3EE 100%) !important;
}
section.feature{
  background: #FFFFFF !important;
}
section.flow{
  background: linear-gradient(180deg, #F5F3EE 0%, #FAFAFA 100%) !important;
}
section.faq{
  background: linear-gradient(180deg, #FAFAFA 0%, #F0F2F7 100%) !important;
}
section.company{
  background: #FFFFFF !important;
}
section#staff{
  background: linear-gradient(180deg, #F5F3EE 0%, #FAFAFA 100%) !important;
}
section#cancel-policy{
  background: #F7F5F0 !important;
}

/* ④ 大きな背景バブル（全セクションに奥行き） */
section.service,
section.feature,
section.flow,
section.faq,
section#staff,
section.company{
  position: relative;
  overflow: hidden;
}
section.feature::before{
  content: "";
  position: absolute;
  top: 10%; left: -100px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(23,28,97,.05), transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: hq-blob 16s ease-in-out infinite;
}
section.flow::before{
  content: "";
  position: absolute;
  top: 20%; right: -80px;
  width: 260px; height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(191,158,60,.08), transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: hq-blob 13s ease-in-out infinite;
}
section.faq::before{
  content: "";
  position: absolute;
  bottom: 5%; left: -60px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(23,28,97,.05), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
section#staff::after{
  content: "";
  position: absolute;
  top: 15%; right: -100px;
  width: 340px; height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(191,158,60,.06), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
section.company::before{
  content: "";
  position: absolute;
  bottom: 10%; right: -60px;
  width: 240px; height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(23,28,97,.04), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
/* 全section内コンテンツは z-index:1 で背景バブルより前 */
section > .wrap,
section > .container,
section .head,
section .worry-grid,
section .courses,
section .reasons,
section .flow-steps,
section .staff-grid,
section .faq-list{
  position: relative;
  z-index: 1;
}

/* ⑤ カーブSVG区切り（波型ディバイダー） */
.hq-wave-divider{
  width: 100vw !important;
  max-width: 100vw !important;
  height: 60px;
  overflow: hidden;
  line-height: 0;
  display: block !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  z-index: 2;
  margin-bottom: -1px;
}
.hq-wave-divider svg{
  width: 100%;
  height: 100%;
  display: block;
}
.hq-wave-divider.wave-to-navy svg path{ fill: #061C43; }
.hq-wave-divider.wave-from-navy svg path{ fill: #FAFAFA; }

/* ⑥ セクション見出し h2 は紺文字（ただし紺bg系セクションは除外） */
section:not(#voice):not(#about):not(.about-intro):not(#contact):not(#first-visit) .head h2{
  color: var(--hq-navy) !important;
}
/* 紺bg系（About/Voice/Contact）は白文字を強制 */
section#about .head h2,
section.about-intro .head h2,
section#contact .head h2,
section#contact .head p,
section#contact .head p .em{
  color: #fff !important;
}
section#contact .head p{
  color: rgba(255,255,255,.9) !important;
}

/* ⑦ CTA-bar のゴールドをさらに整理・より丸く */
.cta-bar{
  border-radius: 40px;
  margin: 0 20px;
  max-width: calc(100% - 40px);
}
@media(max-width:700px){
  .cta-bar{ border-radius: 24px; margin: 0 10px; max-width: calc(100% - 20px); }
}

/* --- FV クラウンバッジ絶対配置 --- */
.hero .fv-canvas .hq-crown-wrap{
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
}
@media(max-width:700px){
  .hero .fv-canvas .hq-crown-wrap{
    top: 12px;
  }
  .hq-crown-badge{
    font-size: 12px;
    padding: 6px 14px 6px 10px;
  }
  .hq-crown-badge .num{ font-size: 18px; }
}

/* --- 6. Contact カード＜a＞タグ下線抑制＋色再徹底 --- */
.contact a.card,
.contact a.card *{
  text-decoration: none !important;
}
.contact a.card.primary,
.contact a.card.primary .kicker,
.contact a.card.primary h3,
.contact a.card.primary .desc,
.contact a.card.primary .btn,
.contact a.card.primary .ico{
  color: #061C43 !important;
}
.contact a.card.primary .desc{
  color: rgba(6,28,67,.85) !important;
  font-weight: 500;
}
.contact a.card.primary .btn{
  background: #061C43 !important;
  color: #fff !important;
}
/* 電話カード（非primary）は白文字のまま維持・下線だけ抑制 */
.contact a.card:not(.primary) h3,
.contact a.card:not(.primary) .desc,
.contact a.card:not(.primary) .val{
  color: #fff !important;
}

/* ========== SP版 追加修正 v2（2026-09-08）========== */
@media(max-width:768px){
  /* Voice h3 18pxに */
  .voice .v-body h3,
  .voice-featured h3,
  .voice .quote-card h3{font-size:18px !important;line-height:1.5 !important;}

  /* Feature ステージ下矢印を削除 */
  .feature .stage:not(:last-child)::after{display:none !important;content:none !important;}

  /* Worry 2カラム調整（写真・文字調整、余白14px統一） */
  .worry .worry-grid{
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
    padding:0 14px !important;
    max-width:none !important;
  }
  .worry .worry{
    border-radius:10px !important;
    overflow:hidden !important;
  }
  .worry .worry .photo{
    aspect-ratio:4/3 !important;
    max-height:120px !important;
  }
  .worry .worry .body{padding:14px !important;}
  .worry .worry h3{
    font-size:13px !important;
    line-height:1.5 !important;
    white-space:normal !important;
    margin:6px 0 4px !important;
  }
  .worry .worry .n{
    font-size:11px !important;
    padding:2px 8px !important;
    top:8px !important;
    left:8px !important;
  }

  /* 特別プライスカード：h3 SP改行に伴う調整 */
  .worry .special h3{font-size:22px !important;line-height:1.5 !important;}

  /* Service course：文章下の白余白削除（SPで縦積みなので均等高さ不要） */
  .service .course{align-self:start !important;}
  .service .course .body{display:block !important;}
  .service .course .desc{flex:none !important;margin:0 0 12px !important;}

  /* 地図サイズ：横375px × 縦200px */
  .company .map{
    width:100% !important;
    max-width:375px !important;
    height:200px !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    margin:0 auto !important;
  }

  /* Staff：2カラム維持・左右padding削除・カード内16px統一・バッジ14px */
  .staff-grid{
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
    padding:0 !important;
    max-width:none !important;
    align-items:start !important;
  }
  .staff-card{
    display:flex !important;
    flex-direction:column !important;
    height:auto !important;
  }
  .staff-card .photo{
    aspect-ratio:1/1 !important;
    max-height:150px !important;
  }
  .staff-card .body{
    padding:16px !important;
    gap:0 !important;
    display:flex !important;
    flex-direction:column !important;
    flex:none !important;
  }
  .staff-card .badges{
    margin-bottom:10px !important;
    min-height:auto !important;
    gap:4px !important;
  }
  html body #staff .staff-card .badges .b,
  .staff-card .badges .b{font-size:14px !important;padding:3px 8px !important;line-height:1.4 !important;}
  html body #staff .staff-card .role,
  .staff-card .role{
    font-size:13px !important;
    letter-spacing:0 !important;
    line-height:1.5 !important;
    white-space:nowrap !important;
  }
  /* 店長カード「店長／認定トレーナー」を1行に収める */
  html body #staff .staff-card.featured:first-of-type .role{
    font-size:12px !important;
  }

  /* 電話行：ラベルと番号の高さ中央揃え */
  .company .info .row{align-items:center !important;}
  .company .info .val a{
    padding:0 !important;
    min-height:0 !important;
    display:inline !important;
    line-height:1.5 !important;
  }
  .staff-card .name{
    font-size:15px !important;
    margin:6px 0 8px !important;
  }
  .staff-card .fee{
    font-size:12px !important;
    padding-top:10px !important;
    margin:8px 0 0 !important;
  }
  .staff-card .fee strong{font-size:13px !important;}
  .staff-card .exp,
  .staff-card .cred{display:none !important;}

  /* Service course：ボタン中央揃え・料金24px・税込16px */
  .service .course .body{align-items:center !important;text-align:center !important;}
  .service .course .more{
    margin:0 auto !important;
    align-self:center !important;
  }
  .service .course .now{font-size:24px !important;}
  .service .course .now small{font-size:16px !important;}

  /* STEP CARE stage：カード内上下余白20px統一 */
  .feature .stage{padding:20px !important;}

  /* Footer：コピー12px */
  .foot .copy > span{font-size:12px !important;}

  /* Company info：全テキスト14px統一 */
  .company .info .lbl,
  .company .info .val,
  .company .info .val a,
  .company .info .row.hi .val{font-size:14px !important;line-height:1.6 !important;}
}

/* ========== SP版 追加修正（2026-09-08）========== */
@media(max-width:768px){
  /* Contact 注意書き：3行程度に収める・左右余白調整 */
  .contact .note{
    font-size:11px !important;
    line-height:1.7 !important;
    padding:0 12px !important;
    max-width:340px;
    margin:16px auto 0 !important;
    text-align:left !important;
  }

  /* Company grid：SP時 map→info の順に縦積み */
  .company .grid{
    display:flex !important;
    flex-direction:column !important;
    gap:20px !important;
  }
  .company .map{order:-1 !important;}
  .company .info{order:0 !important;}

  /* Company STEP01-04 横スクロール化 */
  .company .steps{
    display:flex !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    gap:12px !important;
    padding:0 12px 12px !important;
    max-width:none !important;
    margin:0 auto 40px !important;
    -webkit-overflow-scrolling:touch;
  }
  .company .step{
    flex:0 0 75% !important;
    scroll-snap-align:start !important;
    min-width:0;
  }
  .company .step:not(:last-child)::after{display:none !important;}

  /* Flow ステップ 横スクロール化 */
  .flow-steps{
    display:flex !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    gap:12px !important;
    padding:0 12px 12px !important;
    max-width:none !important;
    -webkit-overflow-scrolling:touch;
  }
  .flow-step{
    flex:0 0 75% !important;
    scroll-snap-align:start !important;
    min-width:0;
  }

  /* Feature STEP CARE 段階ケア 横スクロール化 */
  .feature .stages-grid{
    display:flex !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    gap:12px !important;
    padding:0 12px 12px !important;
    max-width:none !important;
    -webkit-overflow-scrolling:touch;
  }
  .feature .stage{
    flex:0 0 75% !important;
    scroll-snap-align:start !important;
    min-width:0;
  }

  /* Staff カード：SP v2ブロック（3773〜）で個別指定済み */
}

/* ========== SP版：酸素カプセル料金 row 調整 ========== */
@media(max-width:700px){
  .service .add-card.oxygen .row{flex-wrap:wrap;padding:14px 0;align-items:flex-start;}
  .service .add-card.oxygen .row .name{
    white-space:nowrap !important;
    font-size:14px !important;
    color:#fff !important;
    flex:0 0 auto;
  }
  .service .add-card.oxygen .row .price{
    font-size:20px !important;
    color:var(--gold) !important;
    font-family:var(--font-serif);
    font-weight:700;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    line-height:1.2;
    margin-left:auto;
  }
  .service .add-card.oxygen .row .price small{
    display:block !important;
    font-size:15px !important;
    color:#fff !important;
    font-weight:400 !important;
    margin-left:0 !important;
    margin-top:6px !important;
    letter-spacing:.02em;
  }
}

/* feature reason h3 は !important で18px強制（自律神経を整えなど青文字見出し） */
html body section.feature .reason h3:not(#__a):not(#__b):not(#__c){
  font-size: 18px !important;
  color: var(--band) !important;
  line-height: 1.5 !important;
}

/* ========== SP版統一ルール（橋村さん指示 2026-08-31） ========== */
@media(max-width:700px){
  /* 1. セクションタイトル h2 → 24px */
  html body section .head h2:not(#__a):not(#__b):not(#__c){
    font-size: 24px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
  }
  /* 2. サブタイトル（h2 内 span.h2-sub-auto / .head p）→ 18px */
  html body section h2 .h2-sub-auto:not(#__a):not(#__b):not(#__c){
    font-size: 18px !important;
    white-space: normal !important;
  }
  html body section .head p:not(#__a):not(#__b){
    font-size: 14px !important;
    line-height: 1.7 !important;
  }
  /* 3. カード見出し h3/h4 → 18px 1行化 */
  html body section .flow-step h3:not(#__a),
  html body section .flow-step h4:not(#__a),
  html body section .company .step h3:not(#__a){
    font-size: 18px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  html body section .feature .reason h3:not(#__a),
  html body section .feature .stage h3:not(#__a),
  html body section .service .course h3:not(#__a),
  html body section .contact .card h3:not(#__a),
  html body section .staff-card h3:not(#__a),
  html body section .voice-full-grid h3:not(#__a){
    font-size: 18px !important;
    white-space: normal !important;
    overflow: visible !important;
    line-height: 1.5 !important;
  }
  /* Worry カード SP 2列（v2最新指示） */
  html body #worry .worry-grid{grid-template-columns: 1fr 1fr !important;gap:12px !important;padding:0 14px !important;max-width:none !important;}
  html body section .worry h3:not(#__a){
    font-size: 13px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.5 !important;
    text-align: center !important;
  }
  /* 4. カード説明文 p → 14px（最低ライン） */
  html body section .worry p:not(#__a),
  html body section .flow-step p:not(#__a),
  html body section .company .step p:not(#__a),
  html body section .feature .reason p:not(#__a),
  html body section .feature .stage p:not(#__a),
  html body section .service .course p:not(#__a),
  html body section .contact .card p:not(#__a),
  html body section .contact .card .desc:not(#__a),
  html body section .staff-card p:not(#__a){
    font-size: 14px !important;
    line-height: 1.7 !important;
  }
  /* 5. カード内文字は中央揃え */
  html body section .worry,
  html body section .flow-step,
  html body section .company .step,
  html body section .feature .reason,
  html body section .feature .stage,
  html body section .service .course,
  html body section .contact .card,
  html body section .staff-card,
  html body section .worry .body,
  html body section .flow-step .body,
  html body section .company .step .body,
  html body section .feature .reason .body{
    text-align: center !important;
  }
  /* 6. ボタン中央揃え */
  html body section .btn:not(#__a),
  html body section a.btn:not(#__a),
  html body section .more:not(#__a),
  html body section a.more:not(#__a){
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  html body section .btn-wrap:not(#__a),
  html body section .cta-inline:not(#__a),
  html body section .tickets:not(#__a){
    text-align: center !important;
  }
}

/* CASE 03: 21文字を2行に収める(font-size/カード寸法は維持) */
html body .worry .worry-grid .worry.case-03-text .body{
  padding-left:2px !important;
  padding-right:2px !important;
}
html body .worry .worry-grid .worry.case-03-text h3{
  font-size:15px !important;
  letter-spacing:-0.08em !important;
  line-height:1.55 !important;
  white-space:normal !important;
  width:auto !important;
  min-width:0 !important;
  margin:6px 0 4px !important;
  text-align:center;
  display:block !important;
  box-sizing:border-box;
}

/* ==========================================================
   Phase 3-1後修正: Worry 2×2/1×4 対応 + 写真16:9 統一
   ========================================================== */
@media(min-width:601px){
  html body #worry .worry-grid,
  .worry .worry-grid{
    grid-template-columns:repeat(2,1fr) !important;
    max-width:900px !important;
    padding:0 20px !important;
  }
  .worry .worry-grid > *{
    display:flex !important;
    flex-direction:column !important;
  }
  .worry .worry-grid .photo{
    aspect-ratio:16/9 !important;
    max-height:none !important;
  }
  .worry .worry-grid h3{
    font-size:15px !important;
    line-height:1.5 !important;
    text-align:left !important;
  }
}
@media(min-width:1200px){
  html body #worry .worry-grid,
  .worry .worry-grid{
    grid-template-columns:repeat(4,1fr) !important;
    max-width:none !important;
    padding-left:120px !important;
    padding-right:120px !important;
    gap:20px !important;
  }
  .worry .worry-grid .photo{
    aspect-ratio:16/9 !important;
    max-height:none !important;
  }
  .worry .worry-grid h3{font-size:14px !important;line-height:1.5 !important;}
}
/* #worry #service セクションは左右120px余白確保(1200px+) */
@media(min-width:1200px){
  #worry, #service{
    padding-left:0 !important;
    padding-right:0 !important;
  }
  #worry > .wrap, #worry > .container, #service > .wrap, #service > .container{
    max-width:none !important;
    padding-left:120px !important;
    padding-right:120px !important;
  }
  .service .courses-v2,
  .service .add-grid,
  .service .tickets{
    max-width:none !important;
    padding-left:120px !important;
    padding-right:120px !important;
    box-sizing:border-box;
  }
}

/* 料金メニュー h3 コース名を2行目に */
html body .service .courses-v2 .top h3 .course-name{
  display:block;
  font-size:12px !important;
  color:var(--muted, #888);
  margin-top:6px;
  font-weight:500;
  letter-spacing:-0.02em;
  white-space:nowrap !important;
  overflow:visible;
}
/* 30/90分もh3タイトルとの調和で12px統一 */
html body .service .courses-v2 .course-30 .top h3 .course-name,
html body .service .courses-v2 .course-90 .top h3 .course-name{font-size:11.5px !important;}

/* .cat (30分/60分/90分ラベル) 非表示 */
.service .courses-v2 .top .cat{display:none !important;}
.service .courses-v2 .top{padding-top:24px !important;}
.service .courses-v2 .top h3{
  min-height:0 !important;  /* min-heightを解除して重なり防止 */
  overflow:visible !important;
}

/* ==========================================================
   Phase 3-5 rev2: 料金メニュー 3コース横並び(30/60/90分・60分featured)
   ========================================================== */
.service .courses-v2{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:20px !important;
  max-width:1240px;
  margin:0 auto;
  align-items:stretch;
}
.service .courses-v2 > .course{
  display:flex !important;
  flex-direction:column !important;
  background:#fff !important;
  border-radius:16px !important;
  overflow:visible !important;   /* 人気No.1バッジのクリップ回避 */
  box-shadow:0 12px 30px rgba(6,28,67,.10) !important;
  transform:none !important;
}
/* 画像だけはborder-radius適用のためoverflow:hidden */
.service .courses-v2 > .course .photo{overflow:hidden;border-radius:16px 16px 0 0;}
/* 人気No.1バッジを最前面に */
.service .courses-v2 .course.featured{position:relative;z-index:3;}
.service .courses-v2 .course.featured::before{
  z-index:9999 !important;
  top:-20px !important;
}
.service .courses-v2 .photo{
  aspect-ratio:16/10 !important;
  max-height:220px !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
.service .courses-v2 .photo img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.service .courses-v2 .top{padding:20px 20px 8px !important;}
.service .courses-v2 .top h3{
  font-size:15px !important;
  line-height:1.55 !important;
  margin:8px 0 4px !important;
  min-height:3.1em;
}
.service .courses-v2 .top .cat{font-size:13px;padding:2px 10px;}
.service .courses-v2 .top .time{font-size:12px;}
.service .courses-v2 .price{padding:0 20px 12px !important;}
.service .courses-v2 .now{font-size:26px !important;margin:2px 0 6px !important;}
.service .courses-v2 .now small{font-size:12px !important;}
.service .courses-v2 .before{font-size:13px !important;}
.service .courses-v2 .body{padding:8px 20px 22px !important;flex:1;display:flex;flex-direction:column;}
.service .courses-v2 .body .desc{
  font-size:13px !important;
  line-height:1.7 !important;
  margin:0 0 12px !important;
}
.service .courses-v2 .body .incl{
  padding:12px 0 !important;
  margin:0 0 16px !important;
}
.service .courses-v2 .body .incl li{
  font-size:12.5px !important;
  padding:5px 0 5px 22px !important;   /* チェックマーク分の左余白を確保 */
  position:relative !important;
}
.service .courses-v2 .body .incl li::before{
  content:"✓" !important;
  position:absolute !important;
  left:0 !important;
  top:5px !important;
  color:var(--gold);
  font-weight:800 !important;
}
.service .courses-v2 .body .more{
  margin-top:auto !important;
  align-self:stretch;
  text-align:center;
  padding:12px 20px !important;
  font-size:14px !important;
}

/* 60分 featured 強調 + 30/90分カードを縮小 */
.service .courses-v2 .course-60.featured{
  transform:translateY(0) scale(1.03) !important;   /* Y方向縮小取り消しでバッジ位置維持 */
  margin-top:16px !important;   /* バッジ表示のための上余白 */
  box-shadow:0 24px 48px rgba(196,139,0,.30) !important;
  border:2px solid var(--gold);
  z-index:2;
  position:relative;
}
/* 左右カード(30分/90分)を真ん中より小さく */
.service .courses-v2 .course-30,
.service .courses-v2 .course-90{
  transform:scale(0.9);
  transform-origin:center;
  opacity:.95;
}
.service .courses-v2 .course-30 .top h3,
.service .courses-v2 .course-90 .top h3{font-size:14px !important;}
.service .courses-v2 .course-30 .now,
.service .courses-v2 .course-90 .now{font-size:22px !important;}

/* 30分カード「初回割対象外」バッジ */
.service .init.init-off{
  background:#8A8578 !important;
  color:#fff !important;
  font-weight:600;
  padding:4px 12px;
  border-radius:6px;
  font-size:12px;
  display:inline-block;
  margin-top:8px;
}

/* タブレット: 3列維持しつつフォント縮小 */
@media(max-width:900px) and (min-width:601px){
  .service .courses-v2{gap:14px !important;}
  .service .courses-v2 .top{padding:16px 14px 6px !important;}
  .service .courses-v2 .price{padding:0 14px 10px !important;}
  .service .courses-v2 .body{padding:6px 14px 18px !important;}
  .service .courses-v2 .top h3{font-size:13.5px !important;}
  .service .courses-v2 .now{font-size:22px !important;}
  .service .courses-v2 .body .desc{font-size:12px !important;}
  .service .courses-v2 .body .more{font-size:12.5px !important;padding:10px 12px !important;}
}
/* SP: 縦積み */
@media(max-width:600px){
  .service .courses-v2{
    grid-template-columns:1fr !important;
    max-width:520px !important;
    gap:24px !important;
  }
  .service .courses-v2 .course-60.featured{transform:none !important;}
  .service .courses-v2 .top h3{min-height:auto !important;font-size:16px !important;}
}

/* ==========================================================
   微調整(2026-09-11)
   ========================================================== */

/* お悩みCASE 元画像右端の白破線を隠す(元PNGに破線が入っているため右端18pxを白で覆う) */
.worry .worry .photo{position:relative;}
.worry .worry .photo::after{
  content:"";
  position:absolute;
  top:0;right:0;bottom:0;
  width:18px;
  background:#fff;
  z-index:2;
  pointer-events:none;
}

/* Staff「N年のドライヘッドスパ経験」を1行に収める(PC/タブレット) */
@media(min-width:601px){
  .staff-card .exp{
    white-space:nowrap !important;
    letter-spacing:0 !important;
    font-size:11px !important;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .staff-card .exp strong{
    font-size:12px !important;
    margin-right:2px !important;
  }
}

/* ==========================================================
   Phase 2 レイアウト修正(2026-09-11)
   ========================================================== */

/* 2-10: ヘッダー段数削減 - 「熊本のドライヘッドスパ専門店」帯を削除 */
html body .sp-h1-bar{display:none !important;}

/* 2-2: hero の overflow-x:hidden は transform:scale(1440基準) 実装上必要
        (デザインは1440基準の絶対配置。各幅は等比スケールで対応するため)
        body/html の overflow-x:hidden は保険として維持 */

/* 2-4: FVリード文の可読性向上(タブレット帯以下) */
@media(max-width:900px){
  .hero .fv-canvas::before{
    content:"";
    position:absolute;
    left:0;top:0;right:60%;bottom:0;
    background:linear-gradient(90deg, rgba(6,28,67,.55) 0%, rgba(6,28,67,.25) 60%, transparent 100%);
    pointer-events:none;
    z-index:1;
  }
}
@media(max-width:768px){
  .hero .fv-canvas::before{display:none;}
}

/* 2-5: FV背景のSP対応 */
@media(max-width:768px){
  .hero .bg img{
    object-position:center 25% !important;
  }
}

/* 2-6: PC ノートPC実効高700pxでもFV CTA可視化 */
@media(min-width:769px) and (max-height:750px){
  .hero .fv-authority{top:calc(50% + 100px) !important;}
  .hero .fv-auth-note{top:calc(50% + 165px) !important;}
  .hero .fv-cta{top:calc(50% + 200px) !important;}
}

/* 2-7-a: お悩みCASE 6枚 高さ揃え */
@media(min-width:601px){
  .worry .worry-grid > *{
    display:flex;
    flex-direction:column;
  }
  .worry .worry .body{flex:1;display:flex;flex-direction:column;justify-content:flex-start;}
  .worry .worry h3{min-height:2.6em;}
}

/* 2-7-b: 料金カード 説明短時の下寄せ */
.service .course{display:flex;flex-direction:column;}
.service .course .body{flex:1;display:flex;flex-direction:column;justify-content:space-between;}

/* 2-8: prefers-reduced-motion 対応 */
@media(prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .reveal,.reveal-stagger > *{
    opacity:1 !important;
    transform:none !important;
  }
}

/* 2-8-2: stagger 遅延を合計200ms以内に短縮(元は550ms) */
.reveal-stagger.in > *:nth-child(1){transition-delay:0s !important;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.04s !important;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.08s !important;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.12s !important;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.16s !important;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.20s !important;}

/* 2-8-3: JS失敗フォールバック - is-controlled ないと表示 */
.reveal-stagger:not(.is-controlled) > *,
.reveal:not(.is-controlled){
  opacity:1 !important;
  transform:none !important;
}

/* 2-9: タップ領域を44×44px以上に(SP/タブレット) */
@media(max-width:900px){
  .faq .ans a,
  .faq details a{
    display:inline-block;
    min-height:44px;
    padding:10px 6px;
    line-height:24px;
    vertical-align:middle;
  }
  .company .info .val a[href^="tel:"]{
    display:inline-block;
    min-height:44px;
    padding:12px 6px;
    line-height:20px;
  }
  .mobile-drawer-close{
    min-width:44px !important;
    min-height:44px !important;
  }
  .hdr .brand,
  .hdr .brand a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
}


/* Phase 3-3: セクションサブタイトル(H2の外) */
html body section .section-sub,
html body section .head .section-sub{
  text-align:center !important;
  font-family:'Shippori Mincho',serif !important;
  font-size:14px !important;
  color:rgba(6,28,67,.68) !important;
  letter-spacing:0.08em !important;
  margin:8px 0 24px !important;
  line-height:1.6 !important;
}
html body #voice .section-sub,
html body #contact .section-sub{
  color:rgba(255,255,255,.72) !important;
}
@media(max-width:700px){
  html body section .section-sub{font-size:12px !important;}
}

/* ==========================================================
   全セクション上下余白統一(PC:80px / SP:70px) + head上マージン0
   ========================================================== */
html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar){
  padding-top:80px !important;
  padding-bottom:80px !important;
}
html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar) > .head,
html body #contact > .contact-inner > .head,
html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar) .head{
  margin-top:0 !important;
  padding-top:0 !important;
}
html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar) > .head > *:first-child,
html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar) .head > *:first-child{
  margin-top:0 !important;
}
@media(max-width:700px){
  html body section:not(.hero):not(#top):not(.cta-bar):not(.fv-info-strip):not(.notice-bar){
    padding-top:70px !important;
    padding-bottom:70px !important;
  }
}

/* ==========================================================
   1440px表示崩れ 補正 (2026-09-14)
   - ヘッダーナビ: 各項目 1行 nowrap 化
   - Section H2: 1行維持 (改行タグは残す)
   - Feature/Service/Company h2 の自動折返し防止
   ========================================================== */
.hdr nav a.link{
  white-space:nowrap !important;
  padding-left:2px;padding-right:2px;
}
.hdr .btn-reserve span{white-space:nowrap !important;}

/* h2 デスクトップ1行化(改行タグ<br>があるものは尊重) */
@media(min-width:1000px){
  html body section .head h2{
    white-space:normal;
  }
  html body #service .head h2,
  html body #feature .head h2,
  html body #company .head h2,
  html body #voice .head h2,
  html body #tenai .head h2,
  html body #first-visit .head h2,
  html body #flow .head h2,
  html body #staff .head h2,
  html body #faq .head h2,
  html body #contact .head h2{
    white-space:nowrap !important;
    font-size:clamp(24px, 2.2vw, 34px) !important;
  }
}

/* ==========================================================
   Phase 4-① FV直下 情報ストリップ (どこで・いくらで・TV熊本)
   FV本体には手を入れず、直下に横並び3枠で情報を追加
   ========================================================== */
.fv-info-strip{
  background:linear-gradient(180deg,#f7f4ed 0%,#fff 100%);
  padding:22px 20px;
  border-bottom:1px solid rgba(6,28,67,.08);
}
.fv-info-strip .strip-inner{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  align-items:center;
  gap:20px;
}
.fv-info-strip .strip-item{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.fv-info-strip .strip-icon{
  flex-shrink:0;
  width:42px;height:42px;
  border-radius:50%;
  background:#fff;
  border:1.5px solid rgba(196,139,0,.35);
  color:#c48b00;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;
}
.fv-info-strip .strip-media .strip-icon{
  background:linear-gradient(135deg,#e40613,#a10510);
  border-color:transparent;
  color:#fff;
}
.fv-info-strip .strip-body{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.fv-info-strip .strip-label{
  font-size:11px;
  font-weight:700;
  color:#5E4F3E;   /* コントラスト強化(WCAG AA準拠) */
  letter-spacing:.08em;
  text-transform:uppercase;
}
.fv-info-strip .strip-value{
  font-size:14px;
  font-weight:700;
  color:#061c43;
  line-height:1.4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fv-info-strip .strip-price-num{
  font-size:22px;
  font-family:'Space Grotesk','Zen Kaku Gothic New',sans-serif;
  color:#8B6B22;   /* コントラスト強化 (WCAG AA準拠) */
  font-weight:700;
}
.fv-info-strip .strip-price-num small{
  font-size:11px;
  color:#4a5566;
  margin-left:6px;
  font-weight:500;
}
.fv-info-strip .strip-divider{
  width:1px;
  height:36px;
  background:rgba(6,28,67,.15);
}
@media(min-width:1200px){
  .fv-info-strip{padding-left:120px !important;padding-right:120px !important;}
  .fv-info-strip .strip-inner{max-width:none;}
}
@media(max-width:900px){
  .fv-info-strip{padding:18px 16px;}
  .fv-info-strip .strip-inner{
    grid-template-columns:1fr;
    gap:14px;
  }
  .fv-info-strip .strip-divider{
    width:100%;
    height:1px;
  }
  .fv-info-strip .strip-value{
    font-size:13px;
    white-space:normal;
  }
  .fv-info-strip .strip-price-num{font-size:18px;}
}

/* ==========================================================
   Phase 4-③ 店内セクション
   ========================================================== */
.tenai{
  padding:100px 20px 100px;
  background:linear-gradient(180deg,#f7f4ed 0%,#fff 100%);
}
.tenai .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.tenai .head h2{font-size:32px;margin:16px 0 12px;color:#061c43;font-family:'Shippori Mincho',serif;}
.tenai .head p{color:#555;line-height:1.9;}
.tenai-video{
  max-width:640px;   /* 16:9 維持しつつサイズ縮小 (640×360) */
  margin:0 auto 20px;
}
.tenai .video-caption{
  text-align:center;
  color:#4a5566;   /* コントラスト強化 */
  font-size:13px;
  font-weight:500;
  margin:12px 0 60px;
}
.yt-facade{
  position:relative;
  aspect-ratio:16/9;
  cursor:pointer;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(6,28,67,.15);
  background:#000;
}
.yt-facade img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.yt-facade:hover img{transform:scale(1.03);}
.yt-facade iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.yt-facade .yt-play{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  background:transparent;
  border:0;
  cursor:pointer;
  padding:0;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));
  transition:transform .3s;
}
.yt-facade:hover .yt-play{transform:translate(-50%,-50%) scale(1.1);}
.tenai-gallery{
  max-width:960px;   /* 16:9維持しつつサイズ縮小 */
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.tenai-photo{
  margin:0;
  background:#fff;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(6,28,67,.10);
  transition:transform .3s;
}
.tenai-photo:hover{transform:translateY(-4px);}
.tenai-photo .photo{
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
}
.tenai-photo .photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.tenai-photo:hover .photo img{transform:scale(1.05);}
.tenai-tag{
  position:absolute;
  top:12px;left:12px;
  padding:4px 10px;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  color:#fff;
  letter-spacing:.05em;
}
.tenai-tag.must{background:#c62828;}
.tenai-tag.limited{background:#c48b00;}
.tenai-photo figcaption{padding:16px 20px 20px;}
.tenai-photo figcaption strong{
  display:block;
  font-size:15px;
  color:#061c43;
  margin-bottom:4px;
  font-weight:700;
}
.tenai-photo figcaption span{
  font-size:13px;
  color:#555;
  line-height:1.6;
}
@media(min-width:1200px){
  .tenai{padding-left:120px !important;padding-right:120px !important;}
  .tenai-gallery{max-width:1080px;}   /* 拡張時も16:9維持 */
}
@media(max-width:900px){
  .tenai-gallery{grid-template-columns:repeat(2,1fr);gap:16px;}
}
@media(max-width:600px){
  .tenai{padding:70px 16px;}
  .tenai .head h2{font-size:24px;}
  .tenai-gallery{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
}

/* ==========================================================
   Phase 4-④ 初めての方へ
   ========================================================== */
.first-visit{
  padding:100px 20px;
  background:#061c43;
  color:#fff;
}
.first-visit .head{text-align:center;max-width:800px;margin:0 auto 60px;}
.first-visit .head h2{font-size:32px;margin:16px 0 12px;color:#fff !important;font-family:'Shippori Mincho',serif;}
.first-visit .head p{color:#fff !important;line-height:1.9;opacity:.95;}
.first-visit .head .sec-eyebrow-en,
.first-visit .head .sec-eyebrow-jp{color:#fff !important;opacity:.85;}
/* 濃紺bg上のsection-sub(JSで挿入)も白文字化 */
html body #first-visit .section-sub,
html body #first-visit .head p{color:#fff !important;opacity:.9;}

/* ==========================================================
   青/濃紺背景セクション上の全テキスト高コントラスト保証(2.5+)
   対象: #first-visit, .worry .special, .voice .doctor, .cta-bar, #contact, .foot, .voice .trust-media(青背景内テキスト)
   ========================================================== */
html body #first-visit *,
html body .worry .special *,
html body .voice .doctor *,
html body .cta-bar *,
html body #contact .contact-inner *,
html body .foot *{
  color:#fff !important;
}
/* リンクは強調色でも視認性維持 */
html body .worry .special a,
html body .voice .doctor a,
html body .cta-bar a,
html body #contact a,
html body .foot a{color:#fff !important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
/* ボタン/バッジ内文字は例外 (背景ゴールド上の紺色は保持) */
html body .worry .special .plans .badge,
html body .voice .doctor .badge,
html body .cta-bar .btn,
html body #contact .cta-btn,
html body .fv-cta{color:inherit;}
/* strong/em は完全白+太字強調 */
html body #first-visit strong,
html body .worry .special strong,
html body .voice .doctor strong{color:#fff !important;font-weight:700;}
/* small も可読性を確保 */
html body #first-visit small,
html body .worry .special small,
html body .voice .doctor small,
html body .cta-bar small{color:rgba(255,255,255,.88) !important;}
.first-visit .fv-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.first-visit .fv-item{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:28px 22px;
  display:flex;
  gap:16px;
  align-items:flex-start;
  transition:background .3s,transform .3s;
}
.first-visit .fv-item:hover{
  background:rgba(255,255,255,.10);
  transform:translateY(-4px);
}
.first-visit .fv-item.highlight{
  background:linear-gradient(135deg,rgba(196,139,0,.25),rgba(196,139,0,.10));
  border-color:rgba(196,139,0,.5);
}
.first-visit .fv-item-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  background:rgba(196,139,0,.15);
  border:1px solid rgba(248,226,154,.35);
  color:#f8e29a;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:background .3s,transform .3s;
}
.first-visit .fv-item:hover .fv-item-icon{
  background:rgba(196,139,0,.28);
  transform:rotate(-4deg) scale(1.05);
}
.first-visit .fv-item.highlight .fv-item-icon{
  background:linear-gradient(135deg,rgba(248,226,154,.4),rgba(196,139,0,.35));
  border-color:rgba(248,226,154,.6);
}
.first-visit .fv-item-body h3{
  font-size:15px;
  margin:0 0 6px;
  color:#fff !important;   /* 全て白に統一 */
  font-weight:700;
  letter-spacing:.02em;
}
.first-visit .fv-item.highlight .fv-item-body h3{color:#fff !important;}
.first-visit .fv-item-body p{
  font-size:13px;
  line-height:1.75;
  color:#fff !important;   /* 全て白に統一 */
  margin:0;
  opacity:.92;
}
.first-visit .fv-item-body p strong{color:#fff !important;font-weight:700;opacity:1;}
@media(min-width:1200px){
  .first-visit{padding-left:120px !important;padding-right:120px !important;}
  .first-visit .fv-grid{max-width:none;}
}
@media(max-width:1100px){
  .first-visit .fv-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .first-visit{padding:70px 16px;}
  .first-visit .head h2{font-size:24px;}
  .first-visit .fv-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
  .first-visit .fv-item{padding:22px 18px;}
}

/* ==========================================================
   Phase 4-⑦ 第三者評価 (Trust)
   ========================================================== */
.trust-section .trust-block{
  max-width:1080px;
  margin:0 auto 48px;
  padding:0 20px;
}
.trust-section .trust-block:last-of-type{margin-bottom:0;}
.trust-section .trust-media{
  display:grid;
  grid-template-columns:320px minmax(0,560px);   /* 動画は最大560×315(16:9) */
  gap:32px;
  align-items:center;
  justify-content:center;
}
.trust-section .trust-video{max-width:560px;margin:0 auto;}
.trust-section .trust-label h3{
  font-size:22px;
  margin:8px 0 12px;
  color:#fff !important;
  font-weight:700;
  font-family:'Shippori Mincho',serif;
}
.trust-section .trust-meta{
  font-size:13px;
  color:rgba(255,255,255,.92) !important;
  line-height:1.85;
}
.trust-section .trust-meta strong{color:#f8e29a !important;}
.trust-section .trust-meta a{color:#f8e29a !important;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.trust-section .trust-meta a:hover{color:#fff !important;}
/* Google口コミラベル/クチコミカードは白bg維持なので濃色テキスト保持 */
.trust-section .trust-google .trust-label h3{color:#fff !important;}
.trust-section .trust-google .trust-meta{color:rgba(255,255,255,.92) !important;}
.trust-section .trust-google .trust-meta small{color:rgba(255,255,255,.7) !important;}
.trust-badge{
  display:inline-block;
  padding:4px 12px;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  color:#fff;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.trust-badge.tv{background:#e40613;}
.trust-badge.google{background:#4285f4;}
.trust-video{width:100%;}
.trust-google{
  display:block;
}
.trust-google .trust-label{
  text-align:center;
  margin-bottom:20px;
}
/* Googleクチコミ タイトル 34px */
html body .trust-section .trust-google .trust-label h3.google-title{
  font-size:34px !important;
  font-family:'Shippori Mincho',serif;
  font-weight:700;
  color:#fff !important;
  margin:12px 0 16px;
  letter-spacing:.02em;
}
/* Googleクチコミ 引用カード3件 + アバター */
.google-reviews{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-bottom:24px;
}
.review-card{
  background:#fff;
  border:1px solid #e6ecf5;
  border-radius:14px;
  padding:22px 24px;
  box-shadow:0 6px 20px rgba(6,28,67,.08);
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:transform .3s,box-shadow .3s;
}
.review-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(6,28,67,.12);}
.review-head{
  display:flex;
  align-items:center;
  gap:12px;
}
.review-avatar{
  width:44px;
  height:44px;
  border-radius:50%;
  color:#fff;
  font-family:'Space Grotesk','Zen Kaku Gothic New',sans-serif;
  font-size:20px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.review-meta{
  flex:1;
  min-width:0;
}
.review-author{
  font-size:13.5px;
  font-weight:700;
  color:#202124;
  line-height:1.3;
  display:flex;
  align-items:center;
  gap:4px;
}
.review-verified{
  color:#4285f4;
  font-size:11px;
  background:rgba(66,133,244,.12);
  border-radius:50%;
  width:16px;height:16px;
  display:inline-flex;
  align-items:center;justify-content:center;
}
.review-date{
  font-size:11px;
  color:#70757a;
  margin-top:2px;
}
.review-google-mark{
  flex-shrink:0;
  opacity:.85;
}
.review-stars{color:#fbbc05;font-size:16px;letter-spacing:2px;}
.review-text{
  margin:0;
  font-size:13.5px;
  line-height:1.75;
  color:#3c4043;
  font-style:normal;
  quotes:"「" "」";
}
.review-text::before{content:"";}
.review-text::after{content:"";}
.google-cta{
  text-align:center;
}
.google-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 24px;
  background:#fff;
  border:1.5px solid #4285f4;
  color:#4285f4;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  transition:background .3s,color .3s;
}
.google-btn:hover{background:#4285f4;color:#fff;}
.google-btn svg{flex-shrink:0;}
.google-note{
  margin-top:12px;
  font-size:11px;
  color:#999;
  line-height:1.6;
}
@media(max-width:800px){
  .google-reviews{grid-template-columns:1fr;}
}
@media(min-width:1200px){
  .trust-section{padding-left:120px !important;padding-right:120px !important;}
  .trust-section .trust-block{max-width:none;padding:0;}
}
@media(max-width:800px){
  .trust-section .trust-media,
  .trust-section .trust-google{
    grid-template-columns:1fr;
    gap:20px;
  }
}

/* SP下固定CTAバー */
.sp-fixed-cta{
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  background: rgba(255,255,255,.98);
  border-top: 1px solid rgba(6,28,67,.1);
  box-shadow: 0 -4px 16px rgba(6,28,67,.08);
  padding: 8px 12px;
  gap: 8px;
}
.sp-fixed-cta .sp-cta-btn{
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 8px;
  border-radius: 12px;
  text-decoration: none;
  font-family: 'Shippori Mincho', serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .05em;
  min-height: 56px;
  transition: transform .15s;
}
.sp-fixed-cta .sp-cta-tel{
  background: #FDFDFD;
  color: #061C43;
  border: 1.5px solid #061C43;
}
.sp-fixed-cta .sp-cta-line{
  background: #06C755;
  color: #fff;
  border: 1.5px solid #06C755;
}
.sp-fixed-cta .sp-cta-reserve{
  flex: 1.6;
  background: linear-gradient(135deg, #DDA700, #C48B00);
  color: #fff;
  box-shadow: 0 4px 12px rgba(196,139,0,.35);
}
.sp-fixed-cta .sp-cta-btn:active{ transform: scale(.97); }
.sp-fixed-cta .sp-cta-btn span{ line-height: 1; }
.sp-fixed-cta .sp-cta-btn svg{ opacity: .95; }

@media(max-width:768px){
  .sp-fixed-cta{ display: flex; }
  /* 固定CTA分の余白確保（下部要素被り防止） */
  body{ padding-bottom: 76px; }
  /* もし既に footer bottom padding があれば重複回避 */
  .foot{ margin-bottom: 0; }
}
@media(min-width:769px){
  .sp-fixed-cta{ display: none !important; }
  body{ padding-bottom: 0; }
}
/* Keyboard access, motion preference and iOS bottom inset. */
:where(a,button,summary):focus-visible{outline:3px solid #A8852E;outline-offset:4px;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .reveal,.reveal-stagger{opacity:1!important;transform:none!important;}
}
@media(max-width:768px){
  .sp-fixed-cta{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));}
  body{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));}
}


/* Keep LINE brand green; use the existing dark text color for legibility. */
.sp-fixed-cta .sp-cta-line{color:#061C43;}

/* Shared videos and the supplied original LINE brand asset. */
.yt-embed{position:relative;aspect-ratio:16/9;min-height:200px;overflow:hidden;border-radius:16px;background:#000;}
.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-caption{text-align:center;margin-top:12px;}
.contact .line-ico .line-brand-icon{width:64px;height:64px;object-fit:contain;}
.sp-cta-line .line-brand-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0;}

/* ===== 2026-09-29 夢の中のような浮遊感：煙・ふわっと現れる・無重力のゆらぎ ===== */
.smoke-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
.smoke-layer.is-hero{z-index:0;mix-blend-mode:screen}
.smoke-host{position:relative;isolation:isolate}
/* ふわっと現れる：ぼけた状態から、ゆっくり浮かび上がる（JSが動く時だけ） */
.reveal.is-controlled,.reveal-stagger.is-controlled>*{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.is-controlled:not(.in),.reveal-stagger.is-controlled:not(.in)>*{transform:translateY(16px)}
.reveal.in,.reveal-stagger.in>*{filter:none}
.reveal-stagger.in>*:nth-child(5){transition-delay:.45s}.reveal-stagger.in>*:nth-child(6){transition-delay:.55s}
/* 無重力のゆらぎ：translate を使い、既存の transform と干渉しない */
@keyframes dream-float{0%{translate:0 0}50%{translate:0 -9px}100%{translate:0 0}}
@keyframes dream-float-sm{0%{translate:0 0}50%{translate:0 -5px}100%{translate:0 0}}
@media (prefers-reduced-motion:no-preference){
}
@media (prefers-reduced-motion:reduce){.reveal.is-controlled,.reveal-stagger.is-controlled>*{filter:none!important;transition:none!important}}

/* ===== 2026-09-29 1920px対応：広い画面で横幅がそろうように（内容は最大1440px・中央） ===== */
@media(min-width:1600px){
  .fv-info-strip .strip-inner,
  .first-visit .fv-grid,
  .trust-section .trust-block,
  html body #worry .worry-grid{max-width:1440px!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
  .trust-section .trust-block{margin-bottom:28px}
  html body .service .tickets{max-width:1200px!important;width:auto!important;margin-left:auto!important;margin-right:auto!important;padding:28px 40px!important;border-radius:16px!important}
}
/* 「初回割引の対象外です」が画面幅で大きくなり2行に割れるのを防ぐ */
@media(min-width:1024px){html body .service .course span.init.init-off{font-size:20px!important;white-space:nowrap;line-height:1.5}}
/* ===== 2026-09-29 煙の中から文字が現れる（見出し・FVの大見出し） ===== */
/* JSが見出しを1文字ずつに分けた時だけ効く。文字は1秒前後で必ずはっきり見える状態になる */
.smoke-text .sm-ch{display:inline-block}
.smoke-text:not(.is-lit) .sm-ch{opacity:0}
.smoke-text.is-lit .sm-ch{animation:smoke-in .95s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes smoke-in{
  0%{opacity:0;filter:blur(14px);transform:translate(-.28em,.18em) scale(1.45)}
  55%{opacity:1;filter:blur(3px)}
  100%{opacity:1;filter:none;transform:none}
}
@media (prefers-reduced-motion:reduce){.smoke-text .sm-ch{opacity:1!important;animation:none!important}}
/* 金のグラデーション文字（FV「ドライヘッドスパ」）：1文字ずつに分けても色が出るよう、各文字にグラデーションを持たせる */
.hero .fv-title-2.smoke-text .sm-ch{background-image:inherit;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-bottom:.08em}
/* ===== 2026-09-29 改：見出しは動かさない／キャッチコピーと各セクションのポイントだけ煙の中から ===== */
.head.reveal,.head.reveal.is-controlled,.head.reveal.is-controlled:not(.in){opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
.smoke-pt:not(.is-lit){opacity:0}
.smoke-pt.is-lit{animation:smoke-pt .9s cubic-bezier(.2,.7,.2,1) backwards}
span.smoke-pt{display:inline-block}
@keyframes smoke-pt{
  0%{opacity:0;filter:blur(8px);transform:translateY(8px)}
  55%{opacity:1;filter:blur(2.5px)}
  100%{opacity:1;filter:none;transform:none}
}
@media (prefers-reduced-motion:reduce){.smoke-pt{opacity:1!important;animation:none!important}}
.sm-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* ===== 2026-09-29 開いた時の演出：煙が晴れて夢に入る（dream-open.js） ===== */
/* JSが演出を組み立てるまでの覆い。JSが動かなくても4.5秒で必ず消える */
html.dream-opening body::before{content:"";position:fixed;inset:0;z-index:10000;background:radial-gradient(120% 90% at 50% 38%,#16234a 0%,#070c1f 72%);animation:dream-cover-off 0s linear 4.5s forwards}
@keyframes dream-cover-off{to{opacity:0;visibility:hidden}}
.dream-open{position:fixed;inset:0;z-index:10001;pointer-events:none;overflow:hidden}
.dream-sky{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 38%,#16234a 0%,#070c1f 72%)}
.dream-cvs{position:absolute;inset:0;width:100%;height:100%}
.dream-mark{position:absolute;left:50%;top:50%;display:grid;justify-items:center;gap:10px;transform:translate(-50%,-50%);text-align:center;color:#fff}
.dream-mark img{width:clamp(72px,8vw,104px);height:auto;border-radius:50%}
.dream-title{margin:6px 0 0;font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(34px,4.2vw,56px);letter-spacing:.14em;background:linear-gradient(180deg,#F5D889,#BF9E3C);-webkit-background-clip:text;background-clip:text;color:transparent}
.dream-sub{margin:0;font-size:clamp(14px,1.2vw,16px);letter-spacing:.3em;color:rgba(255,255,255,.8)}
/* ===== 2026-09-29 改②：読みやすさ・軽さ・重なり防止 =====
   ・文字を1文字ずつ分ける演出はやめ、行ごとに現れる（金のグラデーション文字が崩れるのを防ぐ）
   ・FVの見出しのゆらぎは、現れ終わってから始める（出現とゆらぎが同時に動かない）
   ・セクション写真の常時ゆらぎは廃止 */
@media (prefers-reduced-motion:no-preference){
  .hero .fv-title-1.is-floating{animation:dream-float 8s ease-in-out infinite}
  .hero .fv-title-2.is-floating{animation:dream-float 8s ease-in-out -2s infinite}
}
.dream-mark{left:0;top:0;right:0;bottom:0;transform:none;place-content:center}
html body .dream-open p.dream-title{font-size:clamp(34px,4.2vw,56px)!important;line-height:1.3!important}
html body .dream-open p.dream-sub{font-size:clamp(14px,1.2vw,16px)!important}
/* ===== 2026-09-29 YouTubeの軽量表示（yt-lite.js）：サムネイル＋再生ボタン。押すと動画を読み込む ===== */
.yt-lite{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;display:block}
.yt-lite img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92;transition:opacity .25s}
.yt-lite-play{position:absolute;left:50%;top:50%;width:68px;height:48px;margin:-24px 0 0 -34px;border-radius:14px;background:#e62117;transition:transform .25s}
.yt-lite-play::after{content:"";position:absolute;left:27px;top:14px;border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff}
.yt-lite:hover img,.yt-lite:focus-visible img{opacity:1}
.yt-lite:hover .yt-lite-play,.yt-lite:focus-visible .yt-lite-play{transform:scale(1.08)}
.yt-lite:focus-visible{outline:3px solid #BF9E3C;outline-offset:3px}

/* 2026-09-29: three trust items stay in the hero's normal flow. */
html body section#top.hero{height:auto!important;min-height:0!important;max-height:none!important;}
html body #top.hero .fv-canvas{position:relative!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;transform:none!important;overflow:visible;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;box-sizing:border-box;padding:64px clamp(32px,6vw,120px) 40px!important;gap:0;}
html body #top.hero .fv-canvas :is(.fv-catch,.fv-title-1,.fv-title-2,.fv-authority,.fv-auth-note,.fv-cta){position:relative!important;inset:auto!important;transform:none!important;}
html body #top.hero .fv-catch{max-width:620px;white-space:normal!important;margin:0 0 24px!important;font-size:clamp(14px,1.35vw,20px)!important;line-height:1.7!important;}
html body #top.hero .fv-title-1{font-size:clamp(40px,4.5vw,72px)!important;line-height:1.2!important;margin:0 0 6px!important;}
html body #top.hero .fv-title-2{font-size:clamp(38px,4.6vw,74px)!important;line-height:1.25!important;letter-spacing:.035em!important;margin:0 0 26px!important;}
html body #top.hero .fv-authority{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:min(620px,100%);padding:16px 8px!important;gap:0!important;border:1px solid #D4A93E;border-radius:14px;background:rgba(6,28,67,.88);box-shadow:0 8px 24px #0003;align-items:stretch!important;}
html body #top.hero .auth-divider{display:none!important;}
html body #top.hero .fv-auth-item{display:flex!important;flex-direction:column!important;justify-content:center;align-items:center!important;min-width:0;gap:5px!important;padding:0 8px!important;border:0!important;text-align:center;}
html body #top.hero .fv-auth-item+.fv-auth-item,html body #top.hero .auth-divider+.fv-auth-item{border-left:1px solid #d4a93e66!important;}
html body #top.hero .fv-auth-item .auth-icon{display:none!important;}
html body #top.hero .fv-auth-item .auth-num{font-size:34px!important;line-height:1.1!important;}
html body #top.hero .fv-auth-item .auth-num .unit{font-size:12px!important;}
html body #top.hero .fv-auth-item .auth-label{gap:4px!important;}
html body #top.hero .fv-auth-item .auth-label .src{font-size:13px!important;line-height:1.4!important;letter-spacing:0!important;}
html body #top.hero .fv-auth-item .auth-label .meta{font-size:12px!important;line-height:1.4!important;letter-spacing:0!important;opacity:.9;}
html body #top.hero .auth-media-title{font-family:var(--font-serif);font-size:21px;font-weight:700;line-height:1.5;color:#F8E29A;}
html body #top.hero .fv-auth-note{margin:8px 0 18px!important;font-size:11px!important;color:#fff;}
html body #top.hero .fv-cta{margin:0!important;align-self:flex-start!important;}
@media(min-width:1600px){html body #top.hero .fv-canvas{padding-top:90px!important;padding-bottom:60px!important;}}
@media(max-width:768px){
 html body #top.hero .fv-canvas{padding:46px 20px 28px!important;}
 html body #top.hero .fv-catch{max-width:470px;font-size:13px!important;margin-bottom:20px!important;}
 html body #top.hero .fv-title-1{font-size:42px!important;line-height:1.25!important;}
 html body #top.hero .fv-title-2{font-size:clamp(29px,7.5vw,48px)!important;white-space:nowrap!important;margin-bottom:24px!important;}
 html body #top.hero .fv-authority{width:100%;max-width:530px;padding:12px 2px!important;}
 html body #top.hero .fv-auth-item{padding:0 4px!important;}
 html body #top.hero .fv-auth-item .auth-num{font-size:28px!important;}
 html body #top.hero .fv-auth-item .auth-label .src{font-size:11px!important;}
 html body #top.hero .fv-auth-item .auth-label .meta{font-size:10px!important;}
 html body #top.hero .auth-media-title{font-size:15px;}
 html body #top.hero .fv-auth-note{font-size:10px!important;margin:8px 0 26px!important;text-align:left;}
 html body #top.hero .fv-cta{align-self:center!important;}
}

@media(max-width:768px){html body #top.hero .auth-media-title{font-size:13px;white-space:nowrap;}html body #top.hero .fv-auth-item .auth-label .meta{font-size:11px!important;}}

/* ===== 2026-09-30 表面的修正（橋村さん指示・全幅共通） ===== */
/* 「ご存じですか？疲れが取れない原因は…」（lp.jsが紺背景の見出し下に追加する文）を白で読めるように */
html body #about .section-sub{color:#fff!important;opacity:.92}
/* こんなお悩み：4枚のカードの高さをそろえる */
html body #worry .worry-grid{align-items:stretch!important}
html body #worry .worry-grid>.worry{align-self:stretch!important;height:auto!important;display:flex;flex-direction:column}
/* 店内写真：4枚になったので、PCは4列 */
@media(min-width:1024px){.tenai-gallery{grid-template-columns:repeat(4,1fr)!important}}
/* 初めての方へ：8枚のカードを白背景に（文字は紺） */
html body .first-visit .fv-item,html body .first-visit .fv-item.highlight{background:#fff!important;border-color:rgba(6,28,67,.08)!important;box-shadow:none}
html body .first-visit .fv-item h3,html body .first-visit .fv-item.highlight .fv-item-body h3{color:var(--navy,#061c43)!important}
html body .first-visit .fv-item p,html body .first-visit .fv-item-body p,html body .first-visit .fv-item-body p strong{color:#3a4152!important;opacity:1}
/* 背景の煙：セクションの上端・下端でスパッと切れて紫の帯・線に見えないよう、端をぼかして消す */
.smoke-layer:not(.is-hero){-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%)}
@media(min-width:1600px){
  /* 1920px：テレビ熊本の紹介文をなるべく改行しない */
  html body .trust-section .trust-media{grid-template-columns:480px 560px!important}
  html body .trust-section .trust-media .trust-label h3{white-space:nowrap}
  /* 1920px：クチコミ下のCTA帯は背景を画面幅いっぱいに */
  html body .cta-bar{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important;border-radius:0!important}
}

/* ===== 2026-09-30 FV：権威性（口コミ評価）と3項目（アクセス・初回価格・メディア）をFV内に ===== */
html body #top.hero .fv-canvas{z-index:2}
html body #top.hero .fv-defs{position:absolute;width:0;height:0;overflow:hidden}
html body #top.hero .fv-catch::after{content:"";display:block;width:44px;height:2px;margin-top:22px;background:linear-gradient(90deg,#F3D98B,#C9A04A)}
html body #top.hero .fv-title-2{margin-bottom:22px!important}
/* 口コミ評価の枠 */
html body #top.hero .fv-trust{display:grid;grid-template-columns:1fr 1fr;width:min(820px,100%);padding:12px 6px;border:1px solid rgba(212,169,62,.6);border-radius:12px;background:linear-gradient(135deg,rgba(8,10,18,.62),rgba(40,32,18,.38));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
html body #top.hero .fv-rate{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;min-width:0;padding:6px 48px}
html body #top.hero .fv-rate+.fv-rate{border-left:1px solid rgba(212,169,62,.4)}
html body #top.hero .fv-rate .laurel{position:absolute;top:50%;left:12px;width:26px;height:60px;transform:translateY(-50%)}
html body #top.hero .fv-rate .laurel:last-child{left:auto;right:12px;transform:translateY(-50%) scaleX(-1)}
html body #top.hero .rate-main{display:flex;align-items:baseline;gap:6px;white-space:nowrap;font-family:"Shippori Mincho",serif}
html body #top.hero .rate-star{font-size:30px!important;line-height:1;color:#F3D98B}
html body #top.hero .rate-num{font-size:46px!important;line-height:1;font-weight:600;background:linear-gradient(180deg,#FBEAB0,#C79A45);-webkit-background-clip:text;background-clip:text;color:transparent}
html body #top.hero .rate-unit{font-size:14px!important;color:#E7CD86}
html body #top.hero .rate-label{display:flex;flex-direction:column;white-space:nowrap;font-family:"Shippori Mincho",serif;color:#fff;line-height:1.45}
html body #top.hero .rate-label span{font-size:18px!important;letter-spacing:.04em}
html body #top.hero .fv-auth-note{margin:8px 0 0!important;font-size:12px!important;color:rgba(255,255,255,.75)!important}
/* 3項目 */
html body #top.hero .fv-info{list-style:none;display:flex;flex-wrap:nowrap;margin:20px 0 28px;padding:0}
html body #top.hero .fv-info li{display:flex;align-items:center;gap:14px;padding:4px 24px;min-width:0}
html body #top.hero .fv-info li:first-child{padding-left:0}
html body #top.hero .fv-info li+li{border-left:1px solid rgba(212,169,62,.4)}
html body #top.hero .fv-info .ic{flex:none;display:grid;place-items:center;width:54px;height:54px;border:1.5px solid #D4A93E;border-radius:50%;color:#F3D98B;font:600 22px/1 "Shippori Mincho",serif}
html body #top.hero .fv-info .tx{display:flex;flex-direction:column;min-width:0;color:#fff;font-family:"Shippori Mincho",serif;line-height:1.5}
html body #top.hero .fv-info .lb,html body #top.hero .fv-info .vl{font-size:16px!important;letter-spacing:.04em}
html body #top.hero .fv-info .price{font-size:22px!important;color:#F3D98B;font-weight:700}
html body #top.hero .fv-info .was{font-size:16px!important;opacity:.85}
html body #top.hero .fv-info .sep{opacity:.6}
/* 金の波線（飾り） */
html body #top.hero .fv-waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:34%;z-index:1;pointer-events:none;opacity:.8}
@media (max-width:1100px){
  html body #top.hero .fv-info li{padding:4px 14px}
  html body #top.hero .fv-info .ic{width:46px;height:46px;font-size:19px}
}
/* スマホ：評価は2列で中央ぞろえ、3項目はアイコンを上に、予約ボタンは2行 */
@media (max-width:768px){
  html body #top.hero .fv-catch::after{margin-top:16px}
  html body #top.hero .fv-title-2{margin-bottom:clamp(150px,44vw,240px)!important}
  html body #top.hero .fv-trust{width:100%;padding:12px 2px}
  html body #top.hero .fv-rate{flex-direction:column;gap:4px;padding:4px 30px}
  html body #top.hero .fv-rate .laurel{left:6px;width:22px;height:54px}
  html body #top.hero .fv-rate .laurel:last-child{right:6px}
  html body #top.hero .rate-star{font-size:22px!important}
  html body #top.hero .rate-num{font-size:38px!important}
  html body #top.hero .rate-unit{font-size:12px!important}
  html body #top.hero .rate-label{align-items:center}
  html body #top.hero .rate-label span{font-size:14px!important;letter-spacing:.02em}
  html body #top.hero .fv-auth-note{font-size:11px!important;align-self:flex-end;text-align:right}
  html body #top.hero .fv-info{width:100%;margin:14px 0 22px}
  html body #top.hero .fv-info li{flex:1 1 0;flex-direction:column;justify-content:flex-start;text-align:center;gap:8px;padding:2px 6px}
  html body #top.hero .fv-info li:first-child{padding-left:6px}
  html body #top.hero .fv-info .ic{width:44px;height:44px;font-size:18px}
  html body #top.hero .fv-info .tx{align-items:center}
  html body #top.hero .fv-info .lb{font-size:14px!important}
  html body #top.hero .fv-info .vl{font-size:14px!important;line-height:1.5}
  html body #top.hero .fv-info .sep{display:none}
  html body #top.hero .fv-info .vl .price{display:block;font-size:19px!important}
  html body #top.hero .fv-info .was{display:block;font-size:14px!important}
  html body #top.hero .fv-cta{align-self:stretch!important;justify-content:center}
  html body #top.hero .fv-cta .fv-cta-inner{flex-direction:column!important;align-items:center;gap:2px}
  html body #top.hero .fv-waves{height:22%}
}
/* スマホ微調整：写真の顔と手が見出しと評価の間に来るよう右寄りに／予約ボタンは2行ともボタンの中に */
@media (max-width:768px){
  html body #top.hero .bg img{object-position:76% 34%!important}
  html body #top.hero .fv-cta{flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:18px!important;padding:16px 26px!important;border-radius:999px!important}
  html body #top.hero .fv-cta .fv-cta-lead{position:static!important;transform:none!important;background:none!important;color:inherit!important;box-shadow:none!important;padding:0!important;margin:0!important;border:0!important;font-size:17px!important;letter-spacing:.06em!important;opacity:1!important}
  html body #top.hero .fv-cta .fv-cta-main{font-size:19px!important;letter-spacing:.04em!important}
  html body #top.hero .fv-cta .fv-cta-arrow{margin-left:0!important;font-size:22px!important}
  html body #top.hero .rate-unit{font-size:13px!important}
}
/* 3項目：改行位置を固定し、スマホはFVの下側を暗くして文字を読みやすく */
html body #top.hero .fv-info .ln{white-space:nowrap}
html body #top.hero .fv-info .was{white-space:nowrap}
@media (max-width:768px){
  html body #top.hero .bg::after{background:linear-gradient(180deg,rgba(5,7,14,.55) 0%,rgba(5,7,14,.12) 30%,rgba(5,7,14,.18) 48%,rgba(5,7,14,.78) 66%,rgba(5,7,14,.92) 100%)!important}
  html body #top.hero .fv-info li:first-child{flex:1.45 1 0}
  html body #top.hero .fv-info .vl .ln{display:block}
  html body #top.hero .fv-info .lb,html body #top.hero .fv-info .vl{letter-spacing:0!important}
  html body #top.hero .fv-info li{padding:2px 4px}
}
/* 手のコマ送り画像（z-index 1〜2）より上に、FVの暗い重ねを置く */
html body #top.hero .bg::after{z-index:3}
/* PC：文字の並ぶ左側〜左下を暗く沈め、白いタオルの上でも読めるように */
@media (min-width:769px){
  html body #top.hero .bg::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,7,14,.72) 0%,rgba(5,7,14,.55) 34%,rgba(5,7,14,.2) 58%,rgba(5,7,14,0) 72%),linear-gradient(0deg,rgba(5,7,14,.55) 0%,rgba(5,7,14,0) 45%)!important}
}
html body #top.hero .fv-info .tx,html body #top.hero .fv-trust{text-shadow:0 1px 10px rgba(0,0,0,.55)}
/* 初めての方へ：白いカードの文字を紺に（別の強い白指定を上書き） */
html body section#first-visit .fv-item .fv-item-body h3,html body section#first-visit .fv-item.highlight .fv-item-body h3{color:#061c43!important}
html body section#first-visit .fv-item .fv-item-body p,html body section#first-visit .fv-item .fv-item-body p strong{color:#3a4152!important;opacity:1!important}
html body section#first-visit .fv-item .fv-item-icon{color:#9C7422!important;background:rgba(212,169,62,.16)!important;opacity:1!important}
html body section#first-visit .fv-item .fv-item-icon svg{stroke:#9C7422!important;opacity:1!important}
/* 選ばれる4つの理由：紫がかったぼかし（飾り2つ）と薄紫の煙を外す（橋村さん指示 9/30） */
html body section#feature::before,html body section#feature::after{content:none!important;animation:none!important}
html body section#feature > .smoke-layer{display:none!important}
/* ご予約・お問い合わせ：3枚のカードの高さをそろえ、ボタンを各カードの下端にそろえる（1440・1920px共通。9/30 橋村さん指示） */
@media (min-width:769px){
  html body #contact .three{align-items:stretch!important}
  html body #contact .three > .card{display:flex!important;flex-direction:column!important;align-items:center;height:auto!important;align-self:stretch!important}
  html body #contact .three > .card .btn{margin-top:auto!important}
  html body #contact .three > .card .val{margin-top:auto!important;margin-bottom:12px!important}
  html body #contact .three > .card .val + .btn{margin-top:0!important}
  html body #contact .three > .card .btn{min-height:64px;line-height:1.6!important;display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box}
}
/* クチコミ下のCTA帯：1440pxなどPC幅でも背景を画面幅いっぱいに（9/30 橋村さん指示。以前は1600px以上のみ） */
@media (min-width:769px){
  html body .cta-bar{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important;border-radius:0!important}
}
/* こんなお悩み CASE03：見出しの上下の余白を0に（PCでは他の3枚と同じ位置に。9/30 橋村さん指示） */
@media (min-width:769px){html body #worry .worry.case-03-text h3{margin-top:0!important;margin-bottom:0!important}}

/* ===== 2026-09-30 スマホ（〜600px）FV：高さ600px・見本に合わせた配置。予約ボタンは次のセクションとまたがる ===== */
@media (max-width:600px){
  html body section#top.hero{height:600px!important;min-height:0!important;max-height:none!important;overflow:visible!important;position:relative;z-index:5}
  html body #top.hero .bg{overflow:hidden}
  html body #top.hero .bg img{top:-50px!important;left:0!important;width:100%!important;height:calc(100% + 50px)!important;object-fit:cover!important;object-position:78% 50%!important}
  html body #top.hero .bg::after{background:linear-gradient(180deg,rgba(5,7,14,.62) 0%,rgba(5,7,14,.2) 30%,rgba(5,7,14,.1) 46%,rgba(5,7,14,.72) 62%,rgba(5,7,14,.9) 100%)!important}
  html body #top.hero .fv-canvas{height:100%!important;padding:26px 18px 50px!important;display:flex!important;flex-direction:column!important}
  html body #top.hero .fv-catch{max-width:220px!important;margin:0!important;font-size:13px!important;line-height:1.5!important;letter-spacing:.06em}
  html body #top.hero .fv-catch p{font-size:13px!important;line-height:1.5!important;margin:0!important}
  html body #top.hero .fv-catch::after{width:30px;margin-top:12px}
  html body #top.hero .fv-title-1{font-size:46px!important;line-height:1.2!important;margin:12px 0 2px!important;letter-spacing:.04em!important}
  html body #top.hero .fv-title-2{font-size:28px!important;line-height:1.3!important;margin:0!important;letter-spacing:.06em!important;white-space:nowrap!important}
  /* 口コミ評価 */
  html body #top.hero .fv-trust{margin-top:auto;padding:8px 0!important}
  html body #top.hero .fv-rate{flex-direction:column!important;gap:2px!important;padding:2px 30px!important}
  html body #top.hero .fv-rate .laurel{left:8px!important;width:20px!important;height:48px!important}
  html body #top.hero .fv-rate .laurel:last-child{left:auto!important;right:8px!important}
  html body #top.hero .rate-main{gap:4px}
  html body #top.hero .rate-star{font-size:18px!important}
  html body #top.hero .rate-num{font-size:32px!important}
  html body #top.hero .rate-unit{font-size:11px!important}
  html body #top.hero .rate-label{align-items:center;line-height:1.4}
  html body #top.hero .rate-label span{font-size:12px!important;letter-spacing:.02em}
  html body #top.hero .fv-auth-note{margin:4px 0 0!important;font-size:10px!important;align-self:flex-end}
  /* 3項目 */
  html body #top.hero .fv-info{margin:8px 0 0!important}
  html body #top.hero .fv-info li{gap:5px!important;padding:0 4px!important}
  html body #top.hero .fv-info .ic{width:30px!important;height:30px!important;border-width:1px;font-size:14px!important}
  html body #top.hero .fv-info .ic svg{width:15px;height:15px}
  html body #top.hero .fv-info .lb{font-size:12px!important;line-height:1.4}
  html body #top.hero .fv-info .vl{font-size:11px!important;line-height:1.45}
  html body #top.hero .fv-info .vl .price{font-size:15px!important;line-height:1.3}
  html body #top.hero .fv-info .was{font-size:11px!important}
  /* 予約ボタン：FVの下端をまたぐ */
  html body #top.hero .fv-canvas a.fv-cta{position:absolute!important;left:22px!important;right:22px!important;top:auto!important;bottom:0!important;transform:translateY(50%)!important;margin:0!important;padding:10px 22px!important;min-height:0!important;z-index:6}
  html body #top.hero .fv-cta .fv-cta-lead{font-size:13px!important;line-height:1.4!important}
  html body #top.hero .fv-cta .fv-cta-main{font-size:16px!important;line-height:1.4!important}
  html body #top.hero .fv-waves{height:26%}
  html body section#about{padding-top:96px!important}
}
/* スマホ：こんなお悩みのカードの表の左右余白を無くし、その分カードを横に広げる */
@media (max-width:768px){
  html body #worry .worry-grid{padding-left:0!important;padding-right:0!important}
}

/* ===== 2026-09-30 スマホ（〜600px）修正②（橋村さん指示） ===== */
.nav-br{display:none}
/* 横一列ループ（店内写真・Googleクチコミ）：dream-loop.js が .loop-track を作る */
@keyframes loop-x{to{transform:translateX(-50%)}}
@keyframes loop-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
@media (max-width:600px){
  html body .tenai-gallery,html body .google-reviews{display:flex!important;grid-template-columns:none!important;gap:14px!important;overflow-x:auto;margin-left:-16px!important;margin-right:-16px!important;padding:12px 16px 18px!important;max-width:none!important;scroll-snap-type:x mandatory}
  html body .tenai-gallery>.tenai-photo{flex:0 0 260px;scroll-snap-align:center}
  html body .google-reviews>.review-card{flex:0 0 280px;scroll-snap-align:center}
  html body .tenai-gallery.is-loop,html body .google-reviews.is-loop{display:block!important;overflow:hidden;scroll-snap-type:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
  html body .is-loop>.loop-track{display:flex;align-items:stretch;gap:14px;padding-right:14px;width:max-content;animation:loop-x 70s linear infinite;will-change:transform}
  html body .is-loop>.loop-track>*{flex:0 0 260px;opacity:1!important;transform:none!important;animation:loop-float 7s ease-in-out infinite}
  html body .google-reviews.is-loop>.loop-track>*{flex-basis:280px}
  html body .is-loop>.loop-track>*:nth-child(4n+2){animation-delay:-1.8s}
  html body .is-loop>.loop-track>*:nth-child(4n+3){animation-delay:-3.6s}
  html body .is-loop>.loop-track>*:nth-child(4n+4){animation-delay:-5.3s}
  html body .is-loop.is-paused>.loop-track,html body .is-loop.is-paused>.loop-track>*{animation-play-state:paused}

  /* 初めての方へ：2列×4行。カード内はアイコン→タイトル→説明（アイコン・文字の大きさは変えない） */
  html body section#first-visit .fv-grid{grid-template-columns:1fr 1fr!important;gap:10px!important;max-width:none!important}
  html body section#first-visit .fv-item{flex-direction:column!important;align-items:flex-start!important;gap:10px!important;padding:18px 14px!important;height:100%}
  html body section#first-visit .fv-item-body{width:100%}

  /* 料金メニュー：横1列スクロール。1枚650px以内 */
  html body section#service .courses{display:flex!important;grid-template-columns:none!important;gap:14px!important;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px 40px!important;padding:14px 16px 18px!important;max-width:none!important}
  html body section#service .courses>.course{flex:0 0 300px!important;scroll-snap-align:center;max-width:none!important}
  html body section#service .course .photo{height:108px!important;min-height:0!important}
  html body section#service .courses{align-items:flex-start!important}
  html body section#service .course .photo img{width:100%!important;height:100%!important;object-fit:cover}
  html body section#service .course .top{padding:14px 18px 4px!important}
  html body section#service .course .price{padding:0 18px 8px!important}
  html body section#service .courses-v2 .body{padding:6px 18px 18px!important}
  html body section#service .course .incl{margin:10px 0 14px!important}
  html body section#service .course .incl li{padding-top:4px!important;padding-bottom:4px!important}

  /* メディア紹介：中央揃え。放送日は「お疲れ〜」とYouTubeリンクの間の行に */
  html body .trust-section .trust-media .trust-label{text-align:center!important;align-items:center!important}
  html body .trust-section .trust-media .trust-label .trust-badge{margin-left:auto;margin-right:auto}

  /* フッターナビ：3行×3。各行は両端揃えで、間は均等 */
  html body footer.foot .links{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:space-between!important;align-items:center;row-gap:0!important;column-gap:0!important;padding:0 24px!important}
  html body footer.foot .links a{padding:7px 0!important}
  html body footer.foot .links .links-row{display:contents!important}
  html body .foot .links a{flex:0 0 auto;margin:0!important}
  html body .foot .nav-br{display:block;flex:0 0 100%;height:0}
}

/* ===== 2026-09-30 スマホ（〜600px）修正③（橋村さん指示） ===== */
@media (max-width:600px){
  /* こんなお悩み：カード内の上下の余白をそろえる（写真の上20px＝文字の下20px）。短い文のカードは文字を上下中央に */
  html body #worry .worry .body{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding:14px 14px 0!important}
  html body #worry .worry .body h3{margin:0!important}
  /* 店内：4枚を2列×2行（ループはやめた） */
  html body .tenai-gallery{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;overflow:visible!important;margin-left:0!important;margin-right:0!important;padding:0!important;scroll-snap-type:none!important}
  html body .tenai-gallery>.tenai-photo{flex:none!important}
  /* 初めての方へ：アイコンとタイトルは中央、説明は左 */
  html body section#first-visit .fv-item .fv-item-icon{align-self:center!important}
  html body section#first-visit .fv-item .fv-item-body h3{text-align:center!important}
  /* 料金：人気No.1を中央・一番上に、左右のカードは一段下げる */
  html body section#service .courses{padding-top:26px!important;scroll-behavior:auto}
  html body section#service .courses>.course:not(.featured){margin-top:52px!important}
  html body section#service .courses>.course.featured{position:relative;z-index:2}
  /* フッターナビ：3行のまま、各列の文字の中央を上下の段とそろえる */
  html body footer.foot .links{display:grid!important;grid-template-columns:repeat(3,1fr)!important;justify-items:center!important;row-gap:0!important;column-gap:8px!important;padding:0 16px!important}
  html body footer.foot .links a{text-align:center}
  html body footer.foot .nav-br{display:none!important}
}
