:root{
    --ivory:#F8F4EE;
    --champagne:#D8C2A6;
    --rose:#D9A7A0;
    --rose-deep:#BC8077;
    --gold:#A2854F;
    --sage:#A9B7A2;
    --greige:#6F665E;
    --charcoal:#2F2B28;
    --ivory-deep:#EFE8DD;
    --serif-jp:"Noto Serif JP",serif;
    --serif-en:"Playfair Display","Cormorant",serif;
    --sans:"Noto Sans JP",sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--sans);
    color:var(--charcoal);
    background:var(--ivory);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  /* ===== グレイン（ノイズ）オーバーレイ ===== */
  .grain{
    position:fixed;
    inset:-50%;
    width:200%;
    height:200%;
    pointer-events:none;
    z-index:9999;
    opacity:.05;
    mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation:grainShift 8s steps(6) infinite;
  }
  @keyframes grainShift{
    0%{transform:translate(0,0)}
    20%{transform:translate(-3%,2%)}
    40%{transform:translate(2%,-3%)}
    60%{transform:translate(-2%,1%)}
    80%{transform:translate(3%,2%)}
    100%{transform:translate(0,0)}
  }

  /* ===== ヒーロー ===== */
  /* デスクトップではラッパーは透過（heroが通常フロー） */
  .hero-vp{display:contents;}
  .hero{
    position:relative;
    min-height:100vh;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    isolation:isolate;
    overflow:hidden;
  }
  /* グラデーション背景 */
  .hero-bg{
    position:absolute;inset:0;z-index:-2;
    background:
      radial-gradient(120% 90% at 12% 18%, #FBF8F3 0%, var(--ivory) 38%, var(--ivory-deep) 100%),
      radial-gradient(80% 70% at 88% 80%, rgba(217,167,160,.30) 0%, rgba(217,167,160,0) 55%),
      radial-gradient(70% 70% at 78% 14%, rgba(216,194,166,.42) 0%, rgba(216,194,166,0) 58%),
      radial-gradient(90% 80% at 95% 95%, rgba(169,183,162,.30) 0%, rgba(169,183,162,0) 55%);
  }
  /* 背景写真（右側に薄く。左のコピー側はフェードで消す） */
  .hero-bg::after{
    content:"";position:absolute;inset:0;
    background:url("../../images/hero-bg.jpg") right center / cover no-repeat;
    opacity:.16;
    /* 左40%を透明→右へ徐々に表示。上下端も軽く落とす */
    -webkit-mask:
      linear-gradient(90deg, transparent 0%, transparent 34%, #000 68%, #000 100%),
      linear-gradient(180deg, transparent 0%, #000 22%, #000 82%, transparent 100%);
    -webkit-mask-composite:source-in;
    mask:
      linear-gradient(90deg, transparent 0%, transparent 34%, #000 68%, #000 100%),
      linear-gradient(180deg, transparent 0%, #000 22%, #000 82%, transparent 100%);
    mask-composite:intersect;
    pointer-events:none;
  }
  /* やわらかく動く光 */
  .hero-bg::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(45% 45% at 70% 40%, rgba(216,194,166,.35) 0%, rgba(216,194,166,0) 70%);
    animation:float 14s ease-in-out infinite alternate;
    z-index:1;
  }
  @keyframes float{
    0%{transform:translate(0,0) scale(1);}
    100%{transform:translate(-4%,5%) scale(1.12);}
  }

  /* ===== 左：テキスト ===== */
  .hero-copy{
    padding:120px clamp(24px,5vw,72px) 80px;
    max-width:680px;
  }
  .eyebrow{
    display:flex;align-items:center;gap:14px;
    margin-bottom:34px;
    opacity:0;animation:rise .9s .2s forwards;
  }
  .eyebrow .line{width:40px;height:1px;background:var(--rose);}
  .eyebrow span{
    font-family:var(--serif-en);
    font-size:13px;
    letter-spacing:.3em;
    color:var(--greige);
  }
  h1{
    font-family:var(--serif-jp);
    font-weight:500;
    font-size:clamp(34px,4.4vw,60px);
    line-height:1.4;
    letter-spacing:.05em;
    color:var(--charcoal);
  }
  h1 .l1{display:block;white-space:nowrap;opacity:0;animation:rise 1s .35s forwards;}
  h1 .l2{
    display:block;
    white-space:nowrap;
    font-size:.82em;
    color:var(--greige);
    margin-top:.15em;
    opacity:0;animation:rise 1s .5s forwards;
  }
  .lede{
    font-size:15px;
    line-height:2.15;
    color:var(--greige);
    margin-top:34px;
    max-width:30em;
    opacity:0;animation:rise 1s .68s forwards;
  }
  .tags{
    display:flex;flex-wrap:wrap;gap:10px;
    margin-top:36px;
    opacity:0;animation:rise 1s .82s forwards;
  }
  .tag{
    font-size:11.5px;letter-spacing:.12em;
    padding:9px 18px;border-radius:999px;
    border:1px solid rgba(111,102,94,.35);
    color:var(--greige);background:rgba(255,255,255,.4);
    position:relative;padding-left:30px;
  }
  .tag::before{
    content:"";position:absolute;left:15px;top:50%;
    width:6px;height:6px;border-radius:50%;transform:translateY(-50%);
  }
  .tag.t-rose::before{background:var(--rose);}
  .tag.t-sage::before{background:var(--sage);}
  .tag.t-champ::before{background:var(--champagne);}
  .cta-row{
    display:flex;flex-wrap:wrap;gap:16px;
    margin-top:46px;
    opacity:0;animation:rise 1s .96s forwards;
  }
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    font-size:13.5px;letter-spacing:.14em;
    padding:17px 34px;border-radius:999px;
    text-decoration:none;transition:all .35s ease;
  }
  .btn-primary{background:var(--charcoal);color:#fff;}
  .btn-primary:hover{background:var(--greige);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(47,43,40,.5);}
  .btn-ghost{border:1px solid var(--greige);color:var(--charcoal);background:rgba(255,255,255,.35);}
  .btn-ghost:hover{background:#fff;transform:translateY(-2px);}
  .btn .ico{width:7px;height:7px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);}

  /* ===== 右：モチーフビジュアル ===== */
  .hero-visual{
    position:relative;
    height:100vh;
    display:flex;align-items:center;justify-content:center;
  }
  .orb-wrap{
    position:relative;
    width:min(78%,440px);
    aspect-ratio:3/4;
    opacity:0;animation:rise 1.2s .5s forwards;
  }
  /* 大きな楕円リング（モチーフ：楕円・曲線） */
  .ring{
    position:absolute;border-radius:50%;
    border:1px solid;
  }
  .ring.r1{inset:-8% -4% 12% 6%;border-color:rgba(217,167,160,.55);transform:rotate(-12deg);}
  .ring.r2{inset:4% 10% 0 -2%;border-color:rgba(169,183,162,.55);transform:rotate(8deg);}
  .ring.r3{inset:14% -8% 6% 14%;border-color:rgba(216,194,166,.7);}
  /* 中央のグラデ写真枠 */
  .photo{
    position:absolute;inset:10% 8% 6% 8%;
    border-radius:200px 200px 190px 190px;
    background:
      linear-gradient(150deg, rgba(248,244,238,.6), rgba(216,194,166,.5) 45%, rgba(217,167,160,.55) 100%);
    box-shadow:0 40px 80px -40px rgba(111,102,94,.55);
    overflow:hidden;
    backdrop-filter:blur(2px);
  }
  .photo>img{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;z-index:0;display:block;
  }
  .photo::after{
    content:"";position:absolute;inset:0;z-index:1;
    background:
      radial-gradient(60% 50% at 50% 25%, rgba(255,255,255,.28), transparent 62%),
      linear-gradient(180deg, transparent 55%, rgba(47,43,40,.45) 100%);
  }
  .photo .label{z-index:2;}
  .photo .label .en{color:#fff;}
  .photo .label .jp{color:rgba(255,255,255,.82);}
  .photo .label{
    position:absolute;bottom:30px;left:0;right:0;
    text-align:center;z-index:2;
  }
  .photo .label .en{
    font-family:var(--serif-en);font-size:30px;letter-spacing:.18em;color:var(--charcoal);
  }
  .photo .label .jp{
    font-family:var(--sans);font-size:10px;letter-spacing:.4em;color:var(--greige);margin-top:8px;
  }
  /* 浮遊ドット（モチーフ：水滴・光） */
  .dot{position:absolute;border-radius:50%;}
  .dot.d1{width:26px;height:26px;background:var(--rose);top:6%;right:18%;opacity:.85;animation:bob 6s ease-in-out infinite;}
  .dot.d2{width:14px;height:14px;background:var(--sage);bottom:18%;left:2%;animation:bob 7s ease-in-out .6s infinite;}
  .dot.d3{width:9px;height:9px;background:var(--champagne);top:40%;right:2%;animation:bob 5.5s ease-in-out .3s infinite;}
  .dot.ring-dot{background:transparent;border:1px solid var(--greige);width:40px;height:40px;bottom:6%;right:24%;animation:bob 8s ease-in-out infinite;}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}

  /* スクロール表示 */
  .scroll{
    position:absolute;bottom:34px;left:clamp(24px,5vw,72px);
    display:flex;align-items:center;gap:12px;z-index:5;
    opacity:0;animation:rise 1s 1.3s forwards;
  }
  .scroll .txt{font-family:var(--serif-en);font-size:11px;letter-spacing:.3em;color:var(--greige);}
  .scroll .bar{width:1px;height:46px;background:linear-gradient(var(--greige),transparent);position:relative;overflow:hidden;}
  .scroll .bar::after{content:"";position:absolute;top:-46px;left:0;width:1px;height:46px;background:var(--charcoal);animation:scrolldown 2.2s ease-in-out infinite;}
  @keyframes scrolldown{0%{transform:translateY(0);}100%{transform:translateY(92px);}}

  /* 右下クリニック情報 */
  .place{
    position:absolute;bottom:34px;right:clamp(24px,5vw,72px);
    text-align:right;z-index:5;
    font-size:11px;letter-spacing:.14em;color:var(--greige);line-height:1.9;
    opacity:0;animation:rise 1s 1.4s forwards;
  }
  .place b{font-family:var(--serif-en);font-size:13px;letter-spacing:.2em;color:var(--charcoal);font-weight:500;}

  @keyframes rise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}

  /* ===== レスポンシブ ===== */
  /* スマホでもデスクトップと同じ構図を維持：背景に楕円ビジュアル、その上にコピーを重ねる */
  @media (max-width:880px){
    /* ▼ モバイルFV：キャッチコピー → メイン写真 → サブキャッチ → ボタン の縦並び */
    .hero{
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      min-height:100svh;
      padding:92px 26px 40px;
      gap:clamp(14px,3.2vw,22px);
      text-align:center;
    }
    /* hero-copyを透過して子（h1/lede/cta）をheroの直下フレックス子にし、orderで並べ替え */
    .hero-copy{display:contents;}
    .hero-copy .eyebrow,
    .hero-copy .tags,
    .lede .lede-1{display:none;}          /* eyebrow・タグ・lede1行目は非表示 */
    h1{order:1;margin:0;font-size:clamp(32px,8.8vw,50px);text-align:center;}
    .hero-visual{order:2;height:auto;width:100%;}
    .orb-wrap{width:min(60vw,264px);transform:none;margin:0 auto;}
    /* サブキャッチコピー（小さめ） */
    .lede{
      order:3;display:block;margin:0;
      font-size:12.5px;line-height:1.95;color:var(--greige);
      max-width:30em;letter-spacing:.01em;
    }
    /* ボタン（WEB予約・LINE相談）＝横並び・左右均等 */
    .cta-row{order:4;display:flex;flex-wrap:nowrap;justify-content:center;gap:10px;margin:6px 0 0;width:100%;max-width:360px;}
    .cta-row .btn{flex:1 1 0;justify-content:center;padding:15px 12px;font-size:12.5px;letter-spacing:.06em;gap:7px;white-space:nowrap;}
    /* 余計な情報・ラベル・背景写真は非表示 */
    .scroll,.place{display:none;}
    .photo .label{display:none;}
    .hero-bg::after{display:none;}
  }
  @media (max-width:480px){
    h1{font-size:clamp(30px,8.6vw,44px);}
    .orb-wrap{width:min(58vw,240px);}
    .lede{font-size:12px;}
  }

  /* ============================================================
     SECTION 01.5 ｜ キャンペーンバナー（カルーセル）
     ============================================================ */
  .camp{position:relative;padding:clamp(28px,4vw,52px) clamp(16px,4vw,60px) clamp(20px,3vw,36px);
    background:linear-gradient(180deg,var(--ivory) 0%,#FBF8F3 100%);overflow:hidden;}
  .camp-head{max-width:1040px;margin:0 auto clamp(16px,2vw,24px);display:flex;align-items:center;gap:14px;}
  .camp-head .en{font-family:var(--serif-en);font-size:12px;letter-spacing:.28em;color:var(--rose);}
  .camp-head .jp{font-family:var(--serif-jp);font-weight:500;font-size:14px;letter-spacing:.16em;color:var(--greige);}
  .camp-head .ln{flex:1;height:1px;background:rgba(216,194,166,.7);}
  .camp-wrap{position:relative;max-width:1040px;margin:0 auto;}
  .camp-viewport{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;padding:2px;}
  .camp-viewport::-webkit-scrollbar{display:none;}
  .camp-viewport{scrollbar-width:none;}
  /* デスクトップ：2カラム表示 */
  .camp-slide{flex:0 0 auto;scroll-snap-align:start;display:block;}
  .camp-slide img{height:clamp(220px,25vw,320px);width:auto;display:block;border-radius:16px;border:1px solid rgba(111,102,94,.12);box-shadow:0 22px 46px -30px rgba(111,102,94,.5);}
  /* スマホ：高さを抑えて横スワイプ（バナーは常に全体表示） */
  @media (max-width:640px){
    .camp-slide{scroll-snap-align:center;}
    .camp-slide img{height:clamp(150px,44vw,200px);}
  }
  /* 矢印 */
  .camp-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(111,102,94,.25);background:rgba(255,255,255,.9);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;cursor:pointer;transition:background .3s,transform .3s;box-shadow:0 10px 26px -14px rgba(47,43,40,.5);}
  .camp-arrow:hover{background:#fff;}
  .camp-arrow.prev{left:-8px;}.camp-arrow.next{right:-8px;}
  .camp-arrow svg{width:16px;height:16px;fill:none;stroke:var(--charcoal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
  /* ドット */
  .camp-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .camp-dots button{width:8px;height:8px;padding:0;border-radius:50%;border:1px solid var(--greige);background:transparent;cursor:pointer;transition:.3s;}
  .camp-dots button.on{background:var(--rose);border-color:var(--rose);transform:scale(1.25);}
  @media (max-width:768px){
    .camp-arrow{width:38px;height:38px;}
    .camp-arrow.prev{left:2px;}.camp-arrow.next{right:2px;}
  }

  /* ============================================================
     SECTION 02 ｜ お悩み別ナビゲーション（CONCERN）
     ============================================================ */
  .concern{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(70% 60% at 85% 8%, rgba(217,167,160,.18) 0%, rgba(217,167,160,0) 55%),
      radial-gradient(60% 55% at 6% 92%, rgba(169,183,162,.18) 0%, rgba(169,183,162,0) 55%),
      linear-gradient(180deg, var(--ivory) 0%, #FBF8F3 50%, var(--ivory-deep) 100%);
    overflow:hidden;
  }
  /* セクション上端のやわらかな帯（FVからの連続感） */
  .concern::before{
    content:"";position:absolute;top:0;left:0;right:0;height:160px;
    background:linear-gradient(var(--ivory-deep),transparent);
    opacity:.6;pointer-events:none;
  }
  /* 背景の大きな楕円モチーフ */
  .concern .bg-ellipse{
    position:absolute;border:1px solid rgba(111,102,94,.10);border-radius:50%;
    pointer-events:none;
  }
  .concern .bg-ellipse.e1{width:520px;height:620px;top:-160px;right:-160px;transform:rotate(20deg);}
  .concern .bg-ellipse.e2{width:380px;height:460px;bottom:-180px;left:-140px;transform:rotate(-14deg);}

  .sec-head{max-width:1240px;margin:0 auto 56px;position:relative;z-index:2;}
  .sec-eyebrow{
    display:flex;align-items:center;gap:14px;margin-bottom:22px;
  }
  .sec-eyebrow .line{width:40px;height:1px;background:var(--rose);}
  .sec-eyebrow span{
    font-family:var(--serif-en);font-size:13px;letter-spacing:.3em;color:var(--greige);
  }
  .sec-title{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(28px,3.6vw,46px);line-height:1.45;letter-spacing:.05em;color:var(--charcoal);
  }
  .sec-lede{
    font-size:14.5px;line-height:2.1;color:var(--greige);margin-top:22px;max-width:38em;
  }

  /* ===== カテゴリー選択タブ ===== */
  .concern-tabs{
    max-width:1240px;margin:0 auto 40px;position:relative;z-index:2;
    display:flex;flex-wrap:wrap;gap:10px;
  }
  .ctab{
    appearance:none;cursor:pointer;
    font-family:var(--sans);font-size:12.5px;letter-spacing:.08em;
    color:var(--greige);
    background:rgba(255,255,255,.5);
    border:1px solid rgba(111,102,94,.28);
    border-radius:999px;
    padding:11px 22px;
    transition:all .35s ease;
    backdrop-filter:blur(2px);
  }
  .ctab:hover{
    color:var(--charcoal);
    border-color:rgba(217,167,160,.6);
    background:rgba(255,255,255,.85);
    transform:translateY(-2px);
  }
  .ctab.active{
    color:var(--ivory);
    background:var(--charcoal);
    border-color:var(--charcoal);
    box-shadow:0 14px 28px -16px rgba(47,43,40,.55);
  }

  /* ===== 施術メニューカード ===== */
  .cmenu-grid{
    max-width:1240px;margin:0 auto;position:relative;z-index:2;
    display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  }
  .cmenu-card{
    position:relative;
    display:flex;flex-direction:column;
    padding:28px 26px 24px;
    background:rgba(255,255,255,.55);
    border:1px solid rgba(111,102,94,.16);
    border-radius:18px;
    text-decoration:none;
    backdrop-filter:blur(3px);
    transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s,background .4s,opacity .4s;
    overflow:hidden;
    opacity:0;transform:translateY(26px);
  }
  .cmenu-card.in{opacity:1;transform:translateY(0);}
  .cmenu-card.hide{display:none;}
  .cmenu-card:hover{
    transform:translateY(-6px);
    background:rgba(255,255,255,.85);
    border-color:rgba(217,167,160,.55);
    box-shadow:0 26px 50px -28px rgba(111,102,94,.5);
  }
  .cmenu-card::after{
    content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border-radius:50%;
    background:radial-gradient(circle, rgba(216,194,166,.45), rgba(216,194,166,0) 70%);
    opacity:0;transition:opacity .4s;
  }
  .cmenu-card:hover::after{opacity:1;}
  .cm-en{
    font-family:var(--serif-en);font-size:10px;letter-spacing:.24em;color:var(--rose);
    text-transform:uppercase;margin-bottom:10px;
  }
  .cm-name{
    font-family:var(--serif-jp);font-weight:500;font-size:17.5px;letter-spacing:.03em;color:var(--charcoal);line-height:1.55;
  }
  .cm-desc{
    font-size:12.5px;line-height:1.95;color:var(--greige);margin-top:12px;flex:1;
  }
  .cm-cats{
    display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;
  }
  .cm-cats span{
    font-size:10px;letter-spacing:.04em;color:var(--greige);
    border:1px solid rgba(111,102,94,.2);border-radius:99px;padding:3px 10px;
    background:rgba(248,244,238,.8);
  }
  .cm-arrow{
    margin-top:18px;padding-top:16px;border-top:1px solid rgba(111,102,94,.12);
    display:flex;align-items:center;justify-content:space-between;
    font-size:11px;letter-spacing:.16em;color:var(--greige);
    transition:color .4s;
  }
  .cm-arrow .a-wrap{display:flex;align-items:center;gap:9px;}
  .cm-arrow .a-line{width:26px;height:1px;background:var(--greige);transition:width .4s,background .4s;}
  .cm-arrow .a-head{width:5px;height:5px;border-right:1px solid currentColor;border-top:1px solid currentColor;transform:rotate(45deg);}
  .cmenu-card:hover .cm-arrow{color:var(--charcoal);}
  .cmenu-card:hover .cm-arrow .a-line{width:40px;background:var(--rose);}

  /* 該当なしメッセージ */
  .cmenu-empty{
    display:none;max-width:1240px;margin:0 auto;position:relative;z-index:2;
    font-size:13.5px;color:var(--greige);padding:40px 0;text-align:center;
  }

  /* セクション末尾の補足導線 */
  .concern-foot{
    max-width:1240px;margin:54px auto 0;position:relative;z-index:2;
    display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
    padding-top:36px;border-top:1px solid rgba(111,102,94,.16);
  }
  .concern-foot p{font-size:13.5px;line-height:1.9;color:var(--greige);max-width:34em;}
  .concern-foot a{
    display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
    font-size:13px;letter-spacing:.14em;color:var(--charcoal);text-decoration:none;
    padding:14px 28px;border:1px solid var(--greige);border-radius:999px;
    background:rgba(255,255,255,.4);transition:all .35s;
  }
  .concern-foot a:hover{background:#fff;transform:translateY(-2px);}
  .concern-foot a .ico{width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);}

  @media (max-width:1080px){
    .cmenu-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:760px){
    .cmenu-grid{grid-template-columns:1fr;gap:14px;}
    .cmenu-card{padding:24px 20px 20px;}
    .concern-tabs{gap:8px;}
    .ctab{padding:10px 16px;font-size:12px;}
    .concern-foot{flex-direction:column;align-items:flex-start;}
  }

  /* ============================================================
     SECTION 03 ｜ 選ばれる理由（REASON）— 左右交互エディトリアル
     ============================================================ */
  .reasons{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(110px,13vw,170px);
    background:
      radial-gradient(55% 50% at 92% 12%, rgba(216,194,166,.20) 0%, rgba(216,194,166,0) 55%),
      radial-gradient(60% 55% at 4% 60%, rgba(217,167,160,.14) 0%, rgba(217,167,160,0) 55%),
      linear-gradient(180deg, var(--ivory-deep) 0%, #FBF8F3 40%, var(--ivory) 100%);
    overflow:hidden;
  }
  .reasons .bg-ellipse{position:absolute;border:1px solid rgba(111,102,94,.09);border-radius:50%;pointer-events:none;}
  .reasons .bg-ellipse.e1{width:560px;height:660px;top:-200px;left:-180px;transform:rotate(16deg);}

  .reason-list{
    max-width:1080px;margin:0 auto;position:relative;z-index:2;
    display:flex;flex-direction:column;gap:clamp(56px,7vw,104px);
  }
  .reason-row{
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    align-items:center;
    gap:clamp(28px,5vw,76px);
    opacity:0;transform:translateY(34px);
    transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
  }
  .reason-row.in{opacity:1;transform:translateY(0);}
  /* 交互の段差（エディトリアルな余白リズム） */
  .reason-row:nth-child(even){transform:translateY(34px) translateX(0);}
  .reason-row:nth-child(even).in{transform:translateY(0);}
  @media (min-width:921px){
    .reason-row:nth-child(odd) .reason-visual{margin-left:auto;}
    .reason-row:nth-child(even){margin-top:-28px;}
    /* 偶数行は左右入れ替え */
    .reason-row:nth-child(even) .reason-visual{order:2;}
    .reason-row:nth-child(even) .reason-body{order:1;text-align:right;}
    .reason-row:nth-child(even) .reason-body .fact-row{justify-content:flex-end;}
    .reason-row:nth-child(even) .reason-body .r-index{margin-left:auto;}
    .reason-row:nth-child(even) .reason-body .r-num-line{flex-direction:row-reverse;}
  }

  /* ---- ビジュアル（グラデの楕円オーブ＋大きな番号＋細線モチーフ） ---- */
  .reason-visual{
    position:relative;
    width:min(100%,330px);
    aspect-ratio:4/5;
  }
  /* 画像フレーム（球体デザインを廃止し、写真用に） */
  .reason-visual .reason-frame{
    position:absolute;inset:0;
    border-radius:180px 180px 30px 30px;
    overflow:hidden;
    box-shadow:0 36px 70px -38px rgba(111,102,94,.5);
    background:var(--ivory-deep);
  }
  .reason-visual .reason-frame img{width:100%;height:100%;object-fit:cover;display:block;}
  /* 画像挿入前のプレースホルダー（カテゴリ別の淡い色） */
  .reason-frame .ph{
    position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--greige);
  }
  .reason-frame .ph svg{width:46px;height:46px;opacity:.5;}
  .reason-frame .ph span{font-family:var(--serif-en);font-size:11px;letter-spacing:.28em;opacity:.6;}
  .v-rose .reason-frame{background:linear-gradient(150deg, rgba(248,244,238,.9), rgba(217,167,160,.5));}
  .v-sage .reason-frame{background:linear-gradient(150deg, rgba(248,244,238,.9), rgba(169,183,162,.5));}
  .v-champ .reason-frame{background:linear-gradient(150deg, rgba(248,244,238,.9), rgba(216,194,166,.6));}
  .v-greige .reason-frame{background:linear-gradient(150deg, rgba(248,244,238,.9), rgba(111,102,94,.38));}
  /* 浮遊する小モチーフ */
  .reason-visual .v-dot{position:absolute;z-index:3;border-radius:50%;}
  .reason-visual .v-dot.a{width:16px;height:16px;background:var(--rose);top:-6px;right:24%;opacity:.85;animation:bob 6s ease-in-out infinite;}
  .reason-visual .v-dot.b{width:34px;height:34px;border:1px solid var(--greige);background:transparent;bottom:8%;left:-12px;animation:bob 8s ease-in-out .5s infinite;}

  /* ---- テキスト ---- */
  .reason-body{max-width:30em;}
  .r-num-line{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
  .r-index{
    font-family:var(--serif-en);font-size:15px;letter-spacing:.24em;color:var(--rose);
  }
  .r-num-line .bar{width:34px;height:1px;background:rgba(111,102,94,.4);}
  .reason-body h3{
    font-family:var(--serif-jp);font-weight:600;
    font-size:clamp(22px,2.5vw,30px);line-height:1.5;letter-spacing:.04em;color:var(--charcoal);
  }
  .reason-body p{
    font-size:14.5px;line-height:2.1;color:var(--greige);margin-top:18px;
  }
  .fact-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
  .fact{
    font-size:11.5px;letter-spacing:.06em;color:var(--charcoal);
    padding:8px 15px;border-radius:8px;
    background:rgba(255,255,255,.6);border:1px solid rgba(111,102,94,.2);
    position:relative;padding-left:26px;
  }
  .fact::before{
    content:"";position:absolute;left:12px;top:50%;
    transform:translateY(-60%) rotate(-45deg);
    width:8px;height:4px;border-left:1.4px solid var(--rose);border-bottom:1.4px solid var(--rose);
  }

  @media (max-width:920px){
    .reason-row{grid-template-columns:1fr;gap:30px;justify-items:start;}
    .reason-row:nth-child(even){margin-top:0;}
    .reason-visual{width:min(74%,280px);aspect-ratio:4/5;}
    .reason-body{max-width:none;}
  }

  /* ============================================================
     SECTION 04 ｜ 料金表（PRICE）
     ============================================================ */
  .price{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(60% 50% at 8% 10%, rgba(169,183,162,.16) 0%, rgba(169,183,162,0) 55%),
      radial-gradient(55% 50% at 95% 88%, rgba(217,167,160,.16) 0%, rgba(217,167,160,0) 55%),
      linear-gradient(180deg, var(--ivory) 0%, #FBF8F3 55%, var(--ivory-deep) 100%);
    overflow:hidden;
  }
  .price-inner{max-width:1080px;margin:0 auto;position:relative;z-index:2;}

  /* --- カテゴリ見出し --- */
  .price-group{margin-top:clamp(48px,6vw,72px);}
  .price-group.g-skin{--accent:var(--champagne);--accent-soft:rgba(216,194,166,.42);}
  .price-group.g-hair{--accent:var(--sage);--accent-soft:rgba(169,183,162,.42);}
  .group-head{display:flex;align-items:baseline;gap:16px;margin-bottom:26px;flex-wrap:wrap;position:relative;z-index:2;}
  .group-head .gnum{font-family:var(--serif-en);font-size:13px;letter-spacing:.24em;color:var(--rose);}
  .group-head h3{font-family:var(--serif-jp);font-weight:500;font-size:clamp(20px,2.3vw,26px);letter-spacing:.05em;color:var(--charcoal);}
  .group-head .en{font-family:var(--serif-en);font-size:12px;letter-spacing:.24em;color:var(--greige);}

  /* --- 価格カード --- */
  .pcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;position:relative;z-index:2;}
  .pcard{
    position:relative;display:flex;flex-direction:column;
    padding:30px 28px 28px;
    background:rgba(255,255,255,.6);
    border:1px solid rgba(111,102,94,.16);
    border-radius:18px;
    backdrop-filter:blur(3px);
    overflow:hidden;
    transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s,background .4s;
    opacity:0;transform:translateY(24px);
  }
  .pcard.in{opacity:1;transform:translateY(0);}
  .pcard:hover{
    transform:translateY(-6px);background:rgba(255,255,255,.92);
    border-color:rgba(217,167,160,.5);box-shadow:0 26px 50px -28px rgba(111,102,94,.5);
  }
  /* 上端アクセントライン */
  .pcard::before{
    content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg, var(--accent,var(--champagne)), transparent);opacity:.85;
  }
  /* 角の淡いグラデ */
  .pcard::after{
    content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border-radius:50%;
    background:radial-gradient(circle, var(--accent-soft,rgba(216,194,166,.42)), transparent 70%);
    opacity:0;transition:opacity .4s;
  }
  .pcard:hover::after{opacity:1;}
  .pcard .pc-name{font-family:var(--sans);font-weight:500;font-size:16px;letter-spacing:.02em;color:var(--charcoal);line-height:1.55;}
  .pcard .pc-desc{font-size:12px;letter-spacing:.04em;color:var(--greige);margin-top:9px;}
  .pcard .pc-price{margin-top:auto;padding-top:24px;display:flex;align-items:baseline;gap:1px;}
  .pcard .pc-price .yen{font-family:var(--sans);font-weight:500;font-size:18px;color:var(--charcoal);}
  .pcard .pc-price .num{font-family:var(--sans);font-weight:500;font-size:33px;letter-spacing:.01em;color:var(--charcoal);line-height:1;}
  .pcard .pc-price .tax{font-family:var(--sans);font-size:11px;letter-spacing:.08em;color:var(--greige);margin-left:7px;}

  /* --- 注記・CTA --- */
  .price-note{
    margin-top:30px;font-size:11.5px;line-height:1.95;color:var(--greige);
    background:rgba(255,255,255,.4);border:1px solid rgba(111,102,94,.16);border-radius:14px;padding:22px 26px;
  }
  .price-note strong{color:var(--charcoal);font-weight:600;}
  .price-cta{display:flex;justify-content:center;margin-top:44px;}
  .price-cta a{
    display:inline-flex;align-items:center;gap:12px;
    font-size:14px;letter-spacing:.14em;color:#fff;background:var(--charcoal);
    padding:18px 44px;border-radius:999px;text-decoration:none;transition:all .35s;
  }
  .price-cta a:hover{background:var(--greige);transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(47,43,40,.5);}
  .price-cta a .ico{width:7px;height:7px;border-right:1.6px solid currentColor;border-top:1.6px solid currentColor;transform:rotate(45deg);}

  @media (max-width:920px){
    .pcard-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:560px){
    .pcard-grid{grid-template-columns:1fr;}
  }

  /* ============================================================
     SECTION 04b ｜ 人気の施術プラン（POPULAR）
     ============================================================ */
  .popular{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(60% 52% at 92% 6%, rgba(216,194,166,.24) 0%, rgba(216,194,166,0) 55%),
      radial-gradient(55% 50% at 4% 92%, rgba(217,167,160,.18) 0%, rgba(217,167,160,0) 55%),
      linear-gradient(180deg, var(--ivory-deep) 0%, #F3ECE1 50%, var(--ivory-deep) 100%);
    overflow:hidden;
  }
  .popular .bg-ellipse{position:absolute;border:1px solid rgba(111,102,94,.09);border-radius:50%;pointer-events:none;}
  .popular .bg-ellipse.e1{width:560px;height:660px;top:-200px;left:-180px;transform:rotate(-18deg);}

  /* ===== カルーセル ===== */
  .pop-carousel{
    --card-w:min(560px, 84vw);
    max-width:1160px;margin:0 auto;position:relative;z-index:2;
    opacity:0;transform:translateY(26px);
    transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
  }
  .pop-carousel.in{opacity:1;transform:translateY(0);}
  .pop-track{
    display:flex;gap:22px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:24px calc((100% - var(--card-w)) / 2) 28px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .pop-track::-webkit-scrollbar{display:none;}

  .pop-card{
    position:relative;display:flex;flex-direction:column;
    flex:0 0 var(--card-w);
    scroll-snap-align:center;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(111,102,94,.16);
    border-radius:20px;
    overflow:hidden;
    backdrop-filter:blur(3px);
    opacity:.45;transform:scale(.94);
    transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s,box-shadow .5s,border-color .5s;
  }
  .pop-card.is-active{
    opacity:1;transform:scale(1);
    box-shadow:0 34px 60px -30px rgba(111,102,94,.5);
  }
  /* フィーチャー（人気No.1）カード */
  .pop-card.featured{
    background:rgba(255,255,255,.9);
    border:1px solid rgba(216,194,166,.85);
  }

  /* ヘッダー装飾帯 */
  .pop-head{
    position:relative;height:118px;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    flex:0 0 auto;
  }
  .pop-card:nth-child(1) .pop-head{background:linear-gradient(135deg, rgba(217,167,160,.28), rgba(216,194,166,.2) 60%, rgba(248,244,238,.4));}
  .pop-card:nth-child(2) .pop-head{background:linear-gradient(135deg, rgba(216,194,166,.4), rgba(217,167,160,.18) 60%, rgba(248,244,238,.4));}
  .pop-card:nth-child(3) .pop-head{background:linear-gradient(135deg, rgba(169,183,162,.3), rgba(216,194,166,.2) 60%, rgba(248,244,238,.4));}
  .pop-head{height:150px;}
  .pop-head .pop-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block;}
  /* 写真の上に薄いブランドティント＋下部スクリム（文字可読性） */
  .pop-head::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg, rgba(47,43,40,.06) 0%, rgba(47,43,40,.10) 55%, rgba(47,43,40,.42) 100%);
  }
  .pop-head .ring{position:absolute;z-index:2;border:1px solid rgba(255,255,255,.6);border-radius:50%;}
  .pop-head .ring.r1{width:170px;height:170px;top:-70px;right:-40px;}
  .pop-head .ring.r2{width:110px;height:110px;bottom:-52px;left:-26px;border-color:rgba(255,255,255,.32);}
  .pop-head .plan-en{
    position:relative;z-index:2;align-self:flex-end;margin:0 0 14px 0;
    font-family:var(--serif-en);font-size:13px;letter-spacing:.34em;color:#fff;opacity:.95;text-transform:uppercase;
    text-shadow:0 1px 8px rgba(47,43,40,.45);
  }
  /* バッジ */
  .pop-badge{
    position:absolute;top:14px;left:14px;z-index:3;
    font-size:10.5px;letter-spacing:.14em;
    padding:7px 15px;border-radius:999px;
  }
  .pop-badge.b-first{background:var(--rose);color:#fff;}
  .pop-badge.b-no1{background:var(--charcoal);color:var(--champagne);}
  .pop-badge.b-aging{background:var(--sage);color:#fff;}

  /* 本文 */
  .pop-body{display:flex;flex-direction:column;flex:1;padding:26px 26px 26px;}
  .pop-name{
    font-family:var(--serif-jp);font-weight:500;font-size:19px;letter-spacing:.03em;color:var(--charcoal);line-height:1.6;
  }
  /* 組み合わせ表示 */
  .pop-combo{
    display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px;
  }
  .pop-combo .item{
    font-size:11.5px;letter-spacing:.04em;color:var(--charcoal);
    background:rgba(248,244,238,.9);border:1px solid rgba(111,102,94,.22);
    border-radius:99px;padding:6px 14px;
  }
  .pop-combo .plus{
    font-family:var(--serif-en);font-size:14px;color:var(--rose);line-height:1;
  }
  .pop-desc{font-size:12.5px;line-height:1.95;color:var(--greige);margin-top:14px;flex:1;}

  /* 価格 */
  .pop-price{
    margin-top:20px;padding-top:20px;border-top:1px solid rgba(111,102,94,.14);
    display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  }
  .pop-price .plabel{
    font-size:10.5px;letter-spacing:.1em;color:var(--rose);
    border:1px solid rgba(217,167,160,.55);border-radius:99px;padding:4px 12px;
  }
  .pop-price .yen{font-family:var(--sans);font-weight:500;font-size:17px;color:var(--charcoal);}
  .pop-price .num{font-family:var(--sans);font-weight:500;font-size:30px;letter-spacing:.01em;color:var(--charcoal);line-height:1;}
  .pop-price .tax{font-size:11px;letter-spacing:.08em;color:var(--greige);}

  /* カードCTA */
  .pop-cta{
    margin-top:20px;
    display:flex;align-items:center;justify-content:center;gap:10px;
    font-size:12.5px;letter-spacing:.12em;color:var(--charcoal);text-decoration:none;
    border:1px solid var(--greige);border-radius:999px;padding:13px 20px;
    background:rgba(255,255,255,.5);transition:all .35s;
  }
  .pop-cta:hover{background:var(--charcoal);color:#fff;border-color:var(--charcoal);}
  .pop-cta .ico{width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);}
  .pop-card.featured .pop-cta{background:var(--charcoal);color:#fff;border-color:var(--charcoal);}
  .pop-card.featured .pop-cta:hover{background:var(--greige);border-color:var(--greige);}

  /* 左右ナビ矢印 */
  .pop-nav{
    position:absolute;top:50%;transform:translateY(-50%);z-index:5;
    width:52px;height:52px;border-radius:50%;
    appearance:none;cursor:pointer;
    background:rgba(255,255,255,.9);
    border:1px solid rgba(111,102,94,.3);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 14px 30px -16px rgba(111,102,94,.5);
    transition:all .35s;
  }
  .pop-nav:hover{background:var(--charcoal);border-color:var(--charcoal);}
  .pop-nav:hover .arw{border-color:#fff;}
  .pop-nav.prev{left:clamp(-6px,1vw,14px);}
  .pop-nav.next{right:clamp(-6px,1vw,14px);}
  .pop-nav .arw{
    width:9px;height:9px;border-right:1.6px solid var(--charcoal);border-top:1.6px solid var(--charcoal);
    transition:border-color .35s;
  }
  .pop-nav.prev .arw{transform:rotate(-135deg);margin-left:4px;}
  .pop-nav.next .arw{transform:rotate(45deg);margin-right:4px;}
  .pop-nav:disabled{opacity:.35;cursor:default;pointer-events:none;}

  /* ドットインジケーター */
  .pop-dots{
    display:flex;justify-content:center;gap:10px;margin-top:8px;
  }
  .pop-dot{
    appearance:none;cursor:pointer;padding:0;
    width:8px;height:8px;border-radius:99px;
    background:rgba(111,102,94,.28);border:none;
    transition:all .4s cubic-bezier(.2,.7,.2,1);
  }
  .pop-dot.active{width:30px;background:var(--rose);}

  @media (max-width:960px){
    .pop-carousel{--card-w:86vw;}
    .pop-track{gap:16px;}
    .pop-nav{width:44px;height:44px;}
    .pop-nav.prev{left:2px;}
    .pop-nav.next{right:2px;}
  }

  /* ============================================================
     SECTION 05 ｜ 症例写真（CASE / Before・After）
     ============================================================ */
  .cases{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(55% 50% at 90% 8%, rgba(217,167,160,.16) 0%, rgba(217,167,160,0) 55%),
      radial-gradient(55% 50% at 6% 90%, rgba(169,183,162,.14) 0%, rgba(169,183,162,0) 55%),
      linear-gradient(180deg, var(--ivory-deep) 0%, #FBF8F3 50%, var(--ivory) 100%);
    overflow:hidden;
  }
  .case-grid{
    max-width:1240px;margin:0 auto;position:relative;z-index:2;
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  }
  .case-card{
    display:flex;flex-direction:column;
    background:rgba(255,255,255,.62);
    border:1px solid rgba(111,102,94,.16);
    border-radius:18px;overflow:hidden;
    backdrop-filter:blur(3px);
    transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s;
    opacity:0;transform:translateY(24px);
  }
  .case-card.in{opacity:1;transform:translateY(0);}
  .case-card:hover{transform:translateY(-5px);border-color:rgba(217,167,160,.45);box-shadow:0 26px 50px -28px rgba(111,102,94,.5);}

  /* --- Before/After スライダー --- */
  .ba{
    position:relative;aspect-ratio:4/5;overflow:hidden;
    --pos:55%;cursor:ew-resize;touch-action:none;user-select:none;
  }
  .ba .layer{position:absolute;inset:0;}
  .ba .layer .ph{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-family:var(--serif-en);font-size:13px;letter-spacing:.3em;color:rgba(111,102,94,.5);
  }
  /* AFTER＝ベース層 / BEFORE＝上層（左側だけ表示） */
  .ba .after .ph{background:linear-gradient(150deg, #FBF8F3, rgba(216,194,166,.55));}
  .ba .before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
  .ba .before .ph{background:linear-gradient(150deg, rgba(111,102,94,.42), rgba(169,183,162,.4));color:rgba(248,244,238,.85);}
  .ba .layer img{width:100%;height:100%;object-fit:cover;display:block;}
  .ba .lab{
    position:absolute;top:14px;z-index:4;
    font-size:10px;letter-spacing:.18em;padding:5px 12px;border-radius:999px;
    background:rgba(47,43,40,.6);color:#fff;backdrop-filter:blur(2px);
  }
  .ba .lab.before{left:14px;}
  .ba .lab.after{right:14px;}
  .ba .divider{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:rgba(255,255,255,.9);transform:translateX(-1px);z-index:3;box-shadow:0 0 8px rgba(47,43,40,.25);}
  .ba .handle{
    position:absolute;top:50%;left:var(--pos);transform:translate(-50%,-50%);z-index:5;
    width:42px;height:42px;border-radius:50%;background:#fff;
    box-shadow:0 4px 14px rgba(47,43,40,.3);
    display:flex;align-items:center;justify-content:center;gap:3px;color:var(--charcoal);
  }
  .ba .handle .arw{width:6px;height:6px;border-top:1.5px solid currentColor;border-left:1.5px solid currentColor;}
  .ba .handle .arw.l{transform:rotate(-45deg);}
  .ba .handle .arw.r{transform:rotate(135deg);}

  /* --- カード本文 --- */
  .case-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1;}
  .case-tag{
    align-self:flex-start;font-size:11px;letter-spacing:.1em;color:var(--greige);
    border:1px solid rgba(111,102,94,.3);border-radius:999px;padding:5px 13px;margin-bottom:16px;
    position:relative;padding-left:26px;
  }
  .case-tag::before{content:"";position:absolute;left:13px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--rose);}
  .case-treat{font-family:var(--serif-jp);font-weight:500;font-size:17px;letter-spacing:.03em;color:var(--charcoal);line-height:1.5;}
  .case-price{display:flex;align-items:baseline;gap:1px;margin-top:12px;}
  .case-price .yen{font-family:var(--sans);font-weight:500;font-size:14px;color:var(--charcoal);}
  .case-price .num{font-family:var(--sans);font-weight:500;font-size:22px;letter-spacing:.01em;color:var(--charcoal);}
  .case-price .unit{font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:var(--greige);margin-left:6px;}
  .case-comment{font-size:13px;line-height:1.95;color:var(--greige);margin-top:16px;padding-top:16px;border-top:1px solid rgba(111,102,94,.14);}
  .case-comment b{display:block;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.08em;color:var(--charcoal);margin-bottom:6px;}
  .case-risk{font-size:11px;line-height:1.8;color:var(--greige);margin-top:14px;opacity:.9;}
  .case-risk b{font-weight:600;color:var(--charcoal);}

  /* 共通注記（症例用）は .price-note を流用 */
  @media (max-width:980px){
    .case-grid{grid-template-columns:1fr;max-width:460px;}
  }

  /* ============================================================
     SECTION 06 ｜ 施術メニュー・導入機器（TREATMENT）
     ============================================================ */
  .menu06{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(50px,6vw,80px);
    background:
      radial-gradient(55% 50% at 6% 8%, rgba(216,194,166,.18) 0%, rgba(216,194,166,0) 55%),
      radial-gradient(55% 50% at 94% 92%, rgba(169,183,162,.16) 0%, rgba(169,183,162,0) 55%),
      linear-gradient(180deg, var(--ivory) 0%, #FBF8F3 55%, var(--ivory-deep) 100%);
    overflow:hidden;
  }
  .m06-inner{max-width:1080px;margin:0 auto;position:relative;z-index:2;}
  .m06-subhead{display:flex;align-items:baseline;gap:14px;margin:clamp(40px,5vw,60px) 0 26px;}
  .m06-subhead .jp{font-family:var(--serif-jp);font-weight:500;font-size:clamp(18px,2vw,23px);letter-spacing:.05em;color:var(--charcoal);}
  .m06-subhead .en{font-family:var(--serif-en);font-size:12px;letter-spacing:.24em;color:var(--greige);}

  /* --- 導入機器カード --- */
  .dev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .dev-card{
    position:relative;display:flex;flex-direction:column;
    padding:30px 30px 28px;
    background:rgba(255,255,255,.62);border:1px solid rgba(111,102,94,.16);border-radius:18px;
    backdrop-filter:blur(3px);overflow:hidden;
    transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s;
    opacity:0;transform:translateY(24px);
  }
  .dev-card.in{opacity:1;transform:translateY(0);}
  .dev-card:hover{transform:translateY(-5px);border-color:rgba(217,167,160,.45);box-shadow:0 26px 50px -28px rgba(111,102,94,.5);}
  .dev-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--champagne),transparent);opacity:.85;}
  /* 機器写真（カード上部・フルブリード） */
  .dev-photo{
    margin:-30px -30px 20px;   /* カードpaddingを打ち消して上端まで */
    aspect-ratio:16/9;overflow:hidden;position:relative;
    border-bottom:1px solid rgba(111,102,94,.12);
  }
  .dev-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
  .dev-card:hover .dev-photo img{transform:scale(1.05);}
  .dev-cat{font-family:var(--serif-en);font-size:11px;letter-spacing:.22em;color:var(--rose);text-transform:uppercase;}
  .dev-card h3{font-family:var(--serif-jp);font-weight:500;font-size:clamp(19px,2.1vw,23px);letter-spacing:.03em;color:var(--charcoal);margin-top:8px;}
  .dev-proc{font-size:12px;letter-spacing:.04em;color:var(--greige);margin-top:9px;}
  .dev-desc{font-size:13px;line-height:1.95;color:var(--greige);margin-top:15px;}
  .dev-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
  .dev-chips .chip{
    font-size:11px;letter-spacing:.04em;color:var(--charcoal);
    background:rgba(216,194,166,.22);border:1px solid rgba(216,194,166,.6);border-radius:999px;padding:6px 13px;
  }
  .dev-down{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(111,102,94,.14);}
  .dev-down .dl{font-size:11px;letter-spacing:.08em;color:var(--greige);white-space:nowrap;}
  .gauge{display:flex;gap:5px;}
  .gauge i{width:18px;height:5px;border-radius:3px;background:rgba(111,102,94,.18);}
  .gauge i.on{background:var(--rose);}
  .dev-down .dt{font-size:12px;color:var(--charcoal);margin-left:2px;white-space:nowrap;}

  /* --- お悩み×施術 対応表 --- */
  .matrix-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:18px;border:1px solid rgba(111,102,94,.16);background:rgba(255,255,255,.55);backdrop-filter:blur(3px);}
  table.matrix{width:100%;min-width:620px;border-collapse:collapse;}
  table.matrix th,table.matrix td{padding:16px 14px;text-align:center;border-bottom:1px solid rgba(111,102,94,.12);}
  table.matrix thead th{
    font-family:var(--serif-jp);font-weight:500;font-size:13px;letter-spacing:.03em;color:var(--charcoal);
    background:rgba(216,194,166,.18);border-bottom:1px solid rgba(111,102,94,.2);
  }
  table.matrix thead th .sub{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.06em;color:var(--greige);margin-top:4px;font-weight:400;}
  table.matrix th.need,table.matrix td.need{text-align:left;white-space:nowrap;}
  table.matrix td.need{font-size:13.5px;color:var(--charcoal);letter-spacing:.02em;}
  table.matrix tbody tr:last-child th,table.matrix tbody tr:last-child td{border-bottom:none;}
  table.matrix tbody tr:hover td,table.matrix tbody tr:hover th{background:rgba(255,255,255,.7);}
  .mk{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;line-height:1;}
  .mk.best{background:var(--rose);color:#fff;}
  .mk.ok{border:1px solid var(--greige);color:var(--greige);}
  .mk.no{color:rgba(111,102,94,.35);}
  .matrix-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px;font-size:11.5px;color:var(--greige);}
  .matrix-legend span{display:inline-flex;align-items:center;gap:7px;}

  @media (max-width:760px){
    .dev-grid{grid-template-columns:1fr;}
  }

  /* ===== 院長紹介（DOCTOR / E-E-A-T）※婦人科ページとデザイン統一 ===== */
  .doctor{position:relative;overflow:hidden;padding:clamp(64px,8vw,120px) clamp(24px,5vw,72px);border-top:1px solid rgba(216,194,166,.5);
    background:
      radial-gradient(60% 50% at 4% 4%, rgba(217,167,160,.14) 0%, rgba(217,167,160,0) 55%),
      radial-gradient(56% 50% at 96% 92%, rgba(216,194,166,.18) 0%, rgba(216,194,166,0) 55%),
      linear-gradient(180deg, var(--ivory-deep) 0%, #FBF8F3 50%, var(--ivory) 100%);}
  .dr-inner{max-width:1080px;margin:0 auto;position:relative;z-index:2;}
  .dr-head{margin-bottom:clamp(34px,4vw,52px);}
  .dr-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
  .dr-eyebrow .line{width:40px;height:1px;background:var(--rose);}
  .dr-eyebrow span{font-family:var(--serif-en);font-size:13px;letter-spacing:.3em;color:var(--greige);}
  .dr-title{font-family:var(--serif-jp);font-weight:500;font-size:clamp(27px,3.6vw,46px);line-height:1.45;letter-spacing:.05em;color:var(--charcoal);}
  .dr-title em{font-style:normal;color:var(--rose-deep);}
  .dr-lead{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(30px,4.4vw,64px);align-items:start;}
  .dr-photo{position:relative;aspect-ratio:4/5;border-radius:200px 200px 28px 28px;overflow:hidden;box-shadow:0 40px 74px -42px rgba(111,102,94,.55);border:1px solid rgba(111,102,94,.12);background:linear-gradient(155deg,rgba(248,244,238,.9),rgba(216,194,166,.55));}
  .dr-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;}
  .dr-photo .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--greige);text-align:center;padding:20px;}
  .dr-photo .ph .mono{width:76px;height:76px;border-radius:50%;border:1px solid var(--champagne);display:grid;place-items:center;font-family:var(--serif-jp);font-size:30px;color:var(--rose-deep);background:rgba(255,255,255,.5);}
  .dr-photo .ph span{font-family:var(--serif-en);font-size:11px;letter-spacing:.24em;}
  .dr-photo .ph small{font-size:10.5px;letter-spacing:.06em;color:var(--rose-deep);}
  .dr-name{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
  .dr-name .role{font-family:var(--sans);font-size:12px;letter-spacing:.14em;color:#fff;background:var(--greige);padding:4px 12px;border-radius:999px;align-self:center;}
  .dr-name .jp{font-family:var(--serif-jp);font-weight:600;font-size:clamp(26px,3vw,36px);letter-spacing:.08em;color:var(--charcoal);}
  .dr-name .jp small{display:block;font-size:.34em;letter-spacing:.24em;color:var(--greige);font-weight:400;margin-bottom:4px;}
  .dr-name .en{font-family:var(--serif-en);font-style:italic;font-size:15px;letter-spacing:.06em;color:var(--rose);}
  .dr-spec{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .dr-spec span{font-size:11.5px;letter-spacing:.04em;color:var(--greige);padding:6px 13px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(111,102,94,.18);}
  .dr-quote{font-family:var(--serif-jp);font-weight:600;font-size:clamp(19px,2.2vw,26px);line-height:1.6;letter-spacing:.04em;color:var(--charcoal);margin:26px 0 18px;position:relative;padding-left:20px;}
  .dr-quote::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;background:var(--rose);border-radius:2px;}
  .dr-msg p{font-size:14px;line-height:2.05;color:var(--greige);margin-top:14px;}
  .dr-msg p b{color:var(--charcoal);font-weight:500;}
  .dr-detail{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.6vw,52px);margin-top:clamp(40px,5vw,64px);padding-top:clamp(34px,4vw,50px);border-top:1px solid rgba(111,102,94,.16);}
  .dr-block h3{display:flex;align-items:center;gap:12px;font-family:var(--serif-jp);font-weight:600;font-size:16px;letter-spacing:.08em;color:var(--charcoal);margin-bottom:20px;}
  .dr-block h3 .en{font-family:var(--serif-en);font-style:italic;font-size:12px;letter-spacing:.1em;color:var(--rose);font-weight:500;}
  .dr-creds{list-style:none;display:flex;flex-direction:column;gap:12px;}
  .dr-creds li{position:relative;padding-left:24px;font-size:13.5px;line-height:1.7;color:var(--charcoal);}
  .dr-creds li::before{content:"";position:absolute;left:2px;top:.42em;width:9px;height:5px;border-left:1.6px solid var(--gold);border-bottom:1.6px solid var(--gold);transform:rotate(-45deg);}
  .dr-career{list-style:none;position:relative;padding-left:20px;}
  .dr-career::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:rgba(216,194,166,.9);}
  .dr-career li{position:relative;padding:0 0 16px 18px;}
  .dr-career li:last-child{padding-bottom:0;}
  .dr-career li::before{content:"";position:absolute;left:-16px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--rose);}
  .dr-career .yr{font-family:var(--serif-en);font-size:13px;letter-spacing:.06em;color:var(--rose-deep);}
  .dr-career .ev{font-size:13px;line-height:1.7;color:var(--greige);margin-top:2px;}
  .dr-roles{grid-column:1/-1;margin-top:6px;}
  .dr-roles .rl{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .dr-roles .rl span{font-size:11.5px;letter-spacing:.03em;color:var(--greige);padding:6px 13px;border-radius:8px;background:rgba(255,255,255,.6);border:1px solid rgba(111,102,94,.16);}
  .dr-source{font-size:11px;color:var(--greige);margin-top:22px;letter-spacing:.02em;}
  @media(max-width:880px){
    .dr-lead{grid-template-columns:1fr;gap:28px;}
    .dr-photo{width:min(70%,300px);}
  }
  /* 経歴・資格はデスクトップ〜タブレットで2カラム維持。スマホのみ1カラム */
  @media(max-width:640px){
    .dr-detail{grid-template-columns:1fr;gap:34px;}
  }
  @media(max-width:600px){
    .dr-photo{width:min(84%,280px);}
  }

  /* ============================================================
     SECTION 08 ｜ ご来院からの流れ（FLOW）
     ============================================================ */
  .flow{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(50% 45% at 92% 10%, rgba(169,183,162,.14) 0%, rgba(169,183,162,0) 55%),
      radial-gradient(55% 50% at 6% 88%, rgba(217,167,160,.14) 0%, rgba(217,167,160,0) 55%),
      linear-gradient(180deg, var(--ivory) 0%, #FBF8F3 55%, var(--ivory) 100%);
    overflow:hidden;
  }
  .flow .bg-ellipse{position:absolute;border:1px solid rgba(111,102,94,.08);border-radius:50%;pointer-events:none;}
  .flow .bg-ellipse.e1{width:520px;height:620px;bottom:-220px;left:-180px;transform:rotate(14deg);}

  .flow-steps{
    max-width:1240px;margin:0 auto;position:relative;z-index:2;
    display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,1.8vw,24px);
  }
  /* 接続ライン（デスクトップ：番号円を貫く横線） */
  .flow-steps::before{
    content:"";
    position:absolute;top:27px;left:10%;right:10%;height:1px;
    background:linear-gradient(90deg, rgba(216,194,166,0), rgba(216,194,166,.9) 12%, rgba(216,194,166,.9) 88%, rgba(216,194,166,0));
    z-index:0;
  }
  .flow-step{
    position:relative;z-index:1;
    display:flex;flex-direction:column;align-items:center;text-align:center;
    opacity:0;transform:translateY(24px);
    transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .flow-step.in{opacity:1;transform:translateY(0);}
  .fs-num{
    width:54px;height:54px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--serif-en);font-size:16px;letter-spacing:.06em;
    background:var(--ivory);border:1px solid var(--champagne);color:var(--charcoal);
    box-shadow:0 10px 24px -14px rgba(111,102,94,.5);
    margin-bottom:18px;
  }
  .flow-step:nth-child(1) .fs-num{border-color:var(--rose);color:var(--rose);}
  .flow-step:nth-child(2) .fs-num{border-color:var(--champagne);}
  .flow-step:nth-child(3) .fs-num{border-color:var(--sage);}
  .flow-step:nth-child(4) .fs-num{border-color:var(--champagne);}
  .flow-step:nth-child(5) .fs-num{border-color:var(--rose);}
  .fs-card{
    width:100%;flex:1;
    background:rgba(255,255,255,.62);
    border:1px solid rgba(111,102,94,.14);
    border-radius:18px;
    padding:24px 18px 22px;
    display:flex;flex-direction:column;align-items:center;gap:0;
    backdrop-filter:blur(2px);
  }
  /* ステップ写真（カード上部フルブリード） */
  .fs-photo{
    width:auto;margin:-24px -18px 16px;
    aspect-ratio:16/10;overflow:hidden;
    border-radius:17px 17px 0 0;position:relative;
    border-bottom:1px solid rgba(111,102,94,.1);
  }
  .fs-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
  .flow-step:hover .fs-photo img{transform:scale(1.05);}
  .fs-en{font-family:var(--serif-en);font-size:10px;letter-spacing:.26em;color:var(--rose);margin-bottom:8px;}
  .fs-title{font-family:var(--serif-jp);font-weight:500;font-size:16.5px;letter-spacing:.05em;color:var(--charcoal);line-height:1.5;}
  .fs-desc{font-size:12.5px;line-height:1.95;color:var(--greige);margin-top:12px;text-align:left;}
  .fs-meta{
    margin-top:14px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;
  }
  .fs-meta span{
    font-size:10.5px;letter-spacing:.04em;color:var(--greige);
    border:1px solid rgba(111,102,94,.22);border-radius:99px;padding:4px 11px;background:rgba(248,244,238,.8);
  }

  /* 一貫対応の帯 */
  .flow-point{
    max-width:1240px;margin:clamp(30px,3.6vw,46px) auto 0;position:relative;z-index:2;
    display:flex;align-items:center;gap:18px;
    background:linear-gradient(120deg, rgba(217,167,160,.12), rgba(216,194,166,.14));
    border:1px solid rgba(217,167,160,.32);
    border-radius:16px;padding:20px clamp(18px,3vw,32px);
  }
  .flow-point .fp-ico{
    flex:0 0 auto;width:44px;height:44px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--ivory);border:1px solid var(--rose);color:var(--rose);
  }
  .flow-point .fp-ico svg{width:22px;height:22px;}
  .flow-point p{font-size:13.5px;line-height:1.9;color:var(--charcoal);}
  .flow-point p b{font-weight:600;}

  @media (max-width:980px){
    .flow-steps{grid-template-columns:1fr;gap:0;max-width:640px;}
    .flow-steps::before{
      top:0;bottom:0;left:26px;right:auto;width:1px;height:auto;
      background:linear-gradient(180deg, rgba(216,194,166,0), rgba(216,194,166,.9) 6%, rgba(216,194,166,.9) 94%, rgba(216,194,166,0));
    }
    .flow-step{flex-direction:row;align-items:flex-start;text-align:left;gap:20px;padding:16px 0;}
    .fs-num{margin-bottom:0;flex:0 0 auto;}
    .fs-card{align-items:flex-start;}
    .fs-en{margin-bottom:6px;}
    .fs-meta{justify-content:flex-start;}
    .flow-point{flex-direction:row;align-items:flex-start;}
  }

  /* ============================================================
     SECTION 08.5 ｜ 院内風景（オートスライド・マーキー）
     ============================================================ */
  .clinic-gallery{
    padding:clamp(64px,8vw,110px) 0 clamp(20px,3vw,40px);
    position:relative;overflow:hidden;
  }
  .cg-head{text-align:center;padding:0 24px;margin-bottom:clamp(30px,4vw,46px);}
  .cg-title{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(23px,3vw,33px);letter-spacing:.06em;color:var(--charcoal);margin-top:12px;
  }
  .cg-lede{margin-top:14px;font-size:13.5px;line-height:1.9;color:var(--greige);}
  /* 左右端をフェード */
  .cg-marquee{
    position:relative;width:100%;overflow:hidden;
    -webkit-mask:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
            mask:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
  }
  .cg-track{
    display:flex;width:max-content;
    animation:cgScroll 60s linear infinite;
    will-change:transform;
  }
  .cg-marquee:hover .cg-track{animation-play-state:paused;}
  .cg-item{
    flex:0 0 auto;margin:0 18px 0 0;
    width:clamp(232px,26vw,332px);aspect-ratio:3/2;
    border-radius:16px;overflow:hidden;
    background:var(--ivory-deep);
    box-shadow:0 26px 46px -30px rgba(111,102,94,.55);
  }
  .cg-item img{width:100%;height:100%;object-fit:cover;display:block;}
  /* セットA＋B（複製）で -50% ぶん流すと継ぎ目なくループ */
  @keyframes cgScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  @media (prefers-reduced-motion: reduce){
    .cg-track{animation:none;}
    .cg-marquee{overflow-x:auto;}
  }
  @media (max-width:980px){
    .cg-item{width:clamp(200px,64vw,260px);margin-right:14px;}
    .cg-track{animation-duration:42s;}
  }

  /* ============================================================
     SECTION 09 ｜ アクセス・診療時間（ACCESS）
     ============================================================ */
  .access{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(55% 50% at 8% 10%, rgba(169,183,162,.16) 0%, rgba(169,183,162,0) 55%),
      radial-gradient(55% 50% at 94% 90%, rgba(216,194,166,.18) 0%, rgba(216,194,166,0) 55%),
      linear-gradient(180deg, var(--ivory) 0%, #FBF8F3 55%, var(--ivory-deep) 100%);
    overflow:hidden;
  }
  .access-grid{
    max-width:1080px;margin:0 auto;position:relative;z-index:2;
    display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,48px);align-items:stretch;
  }
  .access-info{display:flex;flex-direction:column;gap:30px;}
  .info-block .lbl{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
  .info-block .lbl .en{font-family:var(--serif-en);font-size:11px;letter-spacing:.24em;color:var(--rose);}
  .info-block .lbl .jp{font-family:var(--serif-jp);font-weight:500;font-size:15px;letter-spacing:.06em;color:var(--charcoal);}
  .info-block .lbl::after{content:"";flex:1;height:1px;background:rgba(111,102,94,.16);}
  .info-block .addr{font-size:15px;line-height:1.85;color:var(--charcoal);letter-spacing:.02em;}
  .info-block .addr .zip{font-size:12px;color:var(--greige);display:block;margin-bottom:3px;}
  .acc-list{list-style:none;display:flex;flex-direction:column;gap:11px;}
  .acc-list li{display:flex;align-items:baseline;gap:12px;font-size:13.5px;color:var(--greige);}
  .acc-list li .ln{
    font-size:11px;letter-spacing:.04em;color:var(--charcoal);background:rgba(216,194,166,.25);
    border:1px solid rgba(216,194,166,.6);border-radius:6px;padding:4px 10px;min-width:108px;white-space:nowrap;text-align:center;
  }
  .acc-list li b{color:var(--charcoal);font-weight:600;}
  .acc-note{font-size:12px;line-height:1.8;color:var(--greige);margin-top:4px;}

  /* 診療時間表 */
  .hours{width:100%;border-collapse:collapse;}
  .hours th,.hours td{padding:11px 6px;text-align:center;border-bottom:1px solid rgba(111,102,94,.12);font-size:13px;}
  .hours thead th{font-family:var(--serif-jp);font-weight:500;color:var(--charcoal);background:rgba(216,194,166,.16);}
  .hours thead th.sun{color:var(--rose);}
  .hours tbody th{text-align:left;white-space:nowrap;color:var(--greige);font-weight:400;font-size:12px;padding-left:2px;}
  .hours td .o{color:var(--charcoal);}
  .hours td .x{color:rgba(111,102,94,.4);}
  .hours-meta{font-size:12px;line-height:1.85;color:var(--greige);margin-top:12px;}
  .hours-meta b{color:var(--charcoal);font-weight:600;}

  /* 地図 */
  .access-map{position:relative;border-radius:18px;overflow:hidden;min-height:440px;box-shadow:0 30px 60px -36px rgba(111,102,94,.5);border:1px solid rgba(111,102,94,.16);}
  .access-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

  .access-cta{max-width:1080px;margin:46px auto 0;position:relative;z-index:2;display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
  .access-cta a{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.14em;text-decoration:none;padding:17px 36px;border-radius:999px;transition:all .35s;}
  .access-cta .primary{background:var(--charcoal);color:#fff;}
  .access-cta .primary:hover{background:var(--greige);transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(47,43,40,.5);}
  .access-cta .ghost{border:1px solid var(--greige);color:var(--charcoal);background:rgba(255,255,255,.4);}
  .access-cta .ghost:hover{background:#fff;transform:translateY(-2px);}
  .access-cta .ico{width:7px;height:7px;border-right:1.6px solid currentColor;border-top:1.6px solid currentColor;transform:rotate(45deg);}

  @media (max-width:880px){
    .access-grid{grid-template-columns:1fr;}
    .access-map{min-height:340px;order:-1;}
  }

  /* ============================================================
     SECTION 10 ｜ よくある質問（FAQ）
     ============================================================ */
  .faq{
    position:relative;
    padding:clamp(90px,11vw,150px) clamp(24px,5vw,72px) clamp(100px,12vw,160px);
    background:
      radial-gradient(55% 50% at 92% 10%, rgba(217,167,160,.16) 0%, rgba(217,167,160,0) 55%),
      linear-gradient(180deg, var(--ivory-deep) 0%, #FBF8F3 55%, var(--ivory) 100%);
    overflow:hidden;
  }
  .faq-list{max-width:840px;margin:0 auto;position:relative;z-index:2;}
  .faq-item{
    border-bottom:1px solid rgba(111,102,94,.18);
    background:transparent;
  }
  .faq-item:first-of-type{border-top:1px solid rgba(111,102,94,.3);}
  .faq-item summary{
    list-style:none;cursor:pointer;
    display:flex;align-items:baseline;gap:18px;
    padding:23px 6px;font-size:15px;letter-spacing:.03em;color:var(--charcoal);font-weight:500;
    transition:color .3s;
  }
  .faq-item summary:hover{color:var(--rose-deep);}
  .faq-item[open] summary{color:var(--rose-deep);}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary .q{font-family:var(--serif-en);font-style:italic;font-size:21px;line-height:1;color:var(--champagne);flex-shrink:0;width:34px;transform:translateY(2px);}
  .faq-item summary .qt{flex:1;line-height:1.7;}
  .faq-item summary .ic{position:relative;width:12px;height:12px;flex-shrink:0;align-self:center;}
  .faq-item summary .ic::before,.faq-item summary .ic::after{content:"";position:absolute;background:var(--greige);transition:transform .35s;}
  .faq-item summary .ic::before{top:50%;left:0;right:0;height:1px;transform:translateY(-50%);}
  .faq-item summary .ic::after{left:50%;top:0;bottom:0;width:1px;transform:translateX(-50%);}
  .faq-item[open] summary .ic::after{transform:translateX(-50%) scaleY(0);}
  .faq-ans{position:relative;padding:0 6px 26px 58px;}
  .faq-ans::before{content:"A.";position:absolute;left:7px;top:-1px;font-family:var(--serif-en);font-style:italic;font-size:17px;color:var(--rose-deep);}
  .faq-ans p{font-size:13.5px;line-height:2.05;color:#5A544D;}

  /* ============================================================
     SECTION 11 ｜ 予約CTA（末尾＋追従）
     ============================================================ */
  .final-cta{position:relative;padding:0 clamp(24px,5vw,72px) clamp(80px,10vw,130px);background:var(--ivory);}
  .final-inner{
    position:relative;max-width:1000px;margin:0 auto;
    border-radius:26px;overflow:hidden;
    padding:clamp(50px,7vw,84px) clamp(28px,5vw,64px);
    background:linear-gradient(135deg, var(--charcoal) 0%, #423c37 60%, var(--greige) 130%);
    color:var(--ivory);text-align:center;
    box-shadow:0 44px 90px -46px rgba(47,43,40,.7);
  }
  .final-inner::after{
    content:"";position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='nf'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nf)'/%3E%3C/svg%3E");
  }
  .final-inner .deco{position:absolute;border:1px solid rgba(216,194,166,.25);border-radius:50%;pointer-events:none;}
  .final-inner .deco.d1{width:360px;height:420px;top:-160px;right:-90px;transform:rotate(16deg);}
  .final-inner .eb{position:relative;z-index:2;font-family:var(--serif-en);font-size:12px;letter-spacing:.3em;color:var(--champagne);}
  .final-inner h2{position:relative;z-index:2;font-family:var(--serif-jp);font-weight:500;font-size:clamp(26px,3.6vw,42px);line-height:1.5;letter-spacing:.05em;margin-top:18px;}
  .final-inner p{position:relative;z-index:2;font-size:14px;line-height:2;color:rgba(248,244,238,.8);margin-top:20px;}
  .final-actions{position:relative;z-index:2;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:36px;}
  .fbtn{display:inline-flex;align-items:center;gap:10px;font-size:14px;letter-spacing:.1em;padding:18px 34px;border-radius:999px;text-decoration:none;transition:all .35s;}
  .fbtn.web{background:var(--ivory);color:var(--charcoal);}
  .fbtn.web:hover{background:#fff;transform:translateY(-2px);}
  .fbtn.line{background:#06C755;color:#fff;}
  .fbtn.line:hover{filter:brightness(1.08);transform:translateY(-2px);}
  .fbtn.tel{border:1px solid rgba(248,244,238,.5);color:var(--ivory);}
  .fbtn.tel:hover{background:rgba(248,244,238,.12);transform:translateY(-2px);}
  .fbtn small{display:block;font-size:10px;letter-spacing:.08em;opacity:.7;margin-top:2px;}
  .final-inner .note{position:relative;z-index:2;font-size:11px;color:rgba(248,244,238,.55);margin-top:24px;}

  @media (max-width:768px){
    .final-actions .fbtn{width:100%;justify-content:center;}
  }
