:root{
    /* ===================================================================
       Design tokens — Figma「Everglow」DS と 1:1
       primitive → semantic(light/dark) → token/type の3層構成
       =================================================================== */

    /* ---- Primitive: color ramps（_PrimitiveColor / ThemeColor 準拠） ---- */
    --warm-100:#fcfcf5; --warm-90:#f7f6ef; --warm-80:#f0efe8; --warm-70:#e9e7e1; --warm-60:#dcd9d2;
    --warm-50:#cfcbc4; --warm-40:#bebab3; --warm-30:#a49f98; --warm-20:#4e4a46; --warm-10:#2a2826; --warm-5:#121110;
    --neutral-100:#fff; --neutral-90:#fbfbfb; --neutral-80:#f4f4f4; --neutral-70:#e0e0e0; --neutral-60:#c2c2c2;
    --neutral-50:#9e9e9e; --neutral-40:#757575; --neutral-30:#5c5c5c; --neutral-20:#474747; --neutral-10:#333; --neutral-5:#1f1f1f;
    --gold-90:#ede5d8; --gold-80:#e2d8c5; --gold-70:#d8cab3; --gold-60:#cdbda0; --gold-50:#b7a17a;
    --gold-40:#a28655; --gold-30:#8c6b2f; --gold-20:#705626; --gold-10:#54401c; --gold-5:#382b13;
    --danger-90:#fff0f3; --danger-80:#ffdbe1; --danger-70:#ffbfc3; --danger-60:#ff999f; --danger-50:#ff737c;
    --danger-40:#ff4d58; --danger-30:#eb1d35; --danger-20:#c20b2a; --danger-10:#99001d; --danger-5:#66000e;
    --success-90:#eefaec; --success-80:#daf2d6; --success-70:#c2e5bc; --success-60:#a9d9a1; --success-50:#7fc673;
    --success-40:#55b545; --success-30:#2aa315; --success-20:#218011; --success-10:#19530d; --success-5:#0f3d08;

    /* ---- Token: spacing / radius / border-width / opacity（Token コレクション） ---- */
    --sp-none:0; --sp-3xs:2px; --sp-2xs:4px; --sp-xs:8px; --sp-sm:12px; --sp-md:16px; --sp-lg:24px;
    --sp-xl:32px; --sp-2xl:64px; --sp-3xl:80px; --sp-4xl:96px; --sp-5xl:128px;
    --r-none:0; --r-xs:2px; --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-pill:999px;
    --bw-none:0; --bw-sm:.5px; --bw-md:1px; --bw-lg:2px;
    --op-100:1; --op-80:.8; --op-50:.5; --op-20:.2;

    /* ---- Type scale（_Typography 準拠：size / line-height / letter-spacing / weight） ---- */
    --jp:"Noto Sans JP",system-ui,sans-serif;
    --en:"Cormorant Garamond",serif;
    --fw-normal:400; --fw-medium:500; --fw-semibold:600;
    --fs-xs:.75rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.25rem; --fs-xl:1.5rem;
    --fs-2xl:1.75rem; --fs-3xl:2.125rem; --fs-4xl:2.5rem; --fs-5xl:3rem;
    --lh-xs:1.67; --lh-sm:1.71; --lh-md:1.75; --lh-lg:1.6; --lh-xl:1.67;
    --lh-2xl:1.57; --lh-3xl:1.53; --lh-4xl:1.5; --lh-5xl:1.5;
    --ls-tight:0; --ls-wide:.02em;

    /* ---- Semantic: SemanticColor（31トークン・ライト） ---- */
    --c-text-default:var(--neutral-10); --c-text-subtle:var(--neutral-30);
    --c-text-danger:var(--danger-20); --c-text-success:var(--success-20);
    --c-text-on-primary:var(--neutral-100); --c-text-on-secondary:var(--neutral-10);
    --c-link:var(--neutral-10); --c-link-hover:var(--gold-30); --c-link-pressed:var(--gold-10); --c-link-current:var(--gold-30);
    --c-bg:var(--warm-100); --c-bg-subtle:var(--warm-90); --c-bg-subtler:var(--warm-80);
    --c-bg-primary:var(--gold-30); --c-bg-primary-hover:var(--gold-20); --c-bg-primary-pressed:var(--gold-10);
    --c-bg-secondary:var(--warm-100); --c-bg-secondary-hover:var(--warm-90); --c-bg-secondary-pressed:var(--warm-80);
    --c-border:var(--warm-50); --c-border-subtle:var(--warm-60); --c-border-bold:var(--warm-20); --c-border-inverse:var(--warm-100);
    --c-border-primary-focused:var(--gold-30);
    --c-border-secondary:var(--warm-20); --c-border-secondary-focused:var(--warm-20);
    --c-border-link-current:var(--gold-30); --c-border-link-focused:var(--gold-30);
    --c-surface:var(--neutral-100); /* カード等の面（ライト=白） */

    /* ---- Legacy aliases（既存CSS互換：セマンティックを参照→ダーク自動追従） ---- */
    --bg:var(--c-bg); --bg-subtle:var(--c-bg-subtle); --bg-subtler:var(--c-bg-subtler);
    --text:var(--c-text-default); --text-subtle:var(--c-text-subtle);
    --border:var(--c-border); --border-subtle:var(--c-border-subtle); --border-bold:var(--c-border-bold);
    --gold:var(--c-bg-primary); --gold-hover:var(--c-bg-primary-hover); --gold-active:var(--c-bg-primary-pressed);
    --white:var(--neutral-100);
    --shadow:0 8px 20px rgba(0,0,0,.10);
    --maxw:480px;
  }

  /* ===== Dark mode（SemanticColor の dark モード値）===== */
  /* システム設定（手動指定が無い時） */
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --c-text-default:var(--neutral-90); --c-text-subtle:var(--neutral-70);
      --c-text-danger:var(--danger-70); --c-text-success:var(--success-70);
      --c-text-on-primary:var(--neutral-100); --c-text-on-secondary:var(--neutral-90);
      --c-link:var(--neutral-90); --c-link-hover:var(--gold-50); --c-link-pressed:var(--gold-70); --c-link-current:var(--gold-50);
      --c-bg:var(--warm-5); --c-bg-subtle:var(--warm-10); --c-bg-subtler:var(--warm-20);
      --c-bg-primary:var(--gold-20); --c-bg-primary-hover:var(--gold-30); --c-bg-primary-pressed:var(--gold-40);
      --c-bg-secondary:var(--warm-5); --c-bg-secondary-hover:var(--warm-10); --c-bg-secondary-pressed:var(--warm-20);
      --c-border:var(--warm-40); --c-border-subtle:var(--warm-30); --c-border-bold:var(--warm-80); --c-border-inverse:var(--warm-5);
      --c-border-primary-focused:var(--gold-20);
      --c-border-secondary:var(--warm-40); --c-border-secondary-focused:var(--warm-80);
      --c-border-link-current:var(--gold-50); --c-border-link-focused:var(--gold-50);
      --c-surface:var(--warm-10);
      --shadow:0 8px 24px rgba(0,0,0,.5);
    }
  }
  /* 手動トグル */
  [data-theme="dark"]{
    --c-text-default:var(--neutral-90); --c-text-subtle:var(--neutral-70);
    --c-text-danger:var(--danger-70); --c-text-success:var(--success-70);
    --c-text-on-primary:var(--neutral-100); --c-text-on-secondary:var(--neutral-90);
    --c-link:var(--neutral-90); --c-link-hover:var(--gold-50); --c-link-pressed:var(--gold-70); --c-link-current:var(--gold-50);
    --c-bg:var(--warm-5); --c-bg-subtle:var(--warm-10); --c-bg-subtler:var(--warm-20);
    --c-bg-primary:var(--gold-20); --c-bg-primary-hover:var(--gold-30); --c-bg-primary-pressed:var(--gold-40);
    --c-bg-secondary:var(--warm-5); --c-bg-secondary-hover:var(--warm-10); --c-bg-secondary-pressed:var(--warm-20);
    --c-border:var(--warm-40); --c-border-subtle:var(--warm-30); --c-border-bold:var(--warm-80); --c-border-inverse:var(--warm-5);
    --c-border-primary-focused:var(--gold-20);
    --c-border-secondary:var(--warm-40); --c-border-secondary-focused:var(--warm-80);
    --c-border-link-current:var(--gold-50); --c-border-link-focused:var(--gold-50);
    --c-surface:var(--warm-10);
    --shadow:0 8px 24px rgba(0,0,0,.5);
  }

  /* ===== Typography roles（_typography 複合トークン：title/heading/body/label） ===== */
  .t-title-lg{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-5xl);line-height:var(--lh-5xl);letter-spacing:var(--ls-wide);}
  .t-title-md{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-4xl);line-height:var(--lh-4xl);letter-spacing:var(--ls-wide);}
  .t-heading-xl{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-3xl);line-height:var(--lh-3xl);letter-spacing:var(--ls-wide);}
  .t-heading-lg{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-2xl);line-height:var(--lh-2xl);letter-spacing:var(--ls-wide);}
  .t-heading-md{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-xl);line-height:var(--lh-xl);letter-spacing:var(--ls-tight);}
  .t-heading-sm{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-lg);line-height:var(--lh-lg);letter-spacing:var(--ls-tight);}
  .t-body-lg{font-family:var(--jp);font-weight:var(--fw-normal);font-size:var(--fs-lg);line-height:var(--lh-lg);}
  .t-body-md{font-family:var(--jp);font-weight:var(--fw-normal);font-size:var(--fs-md);line-height:var(--lh-md);}
  .t-body-sm{font-family:var(--jp);font-weight:var(--fw-normal);font-size:var(--fs-sm);line-height:var(--lh-sm);}
  .t-body-xs{font-family:var(--jp);font-weight:var(--fw-normal);font-size:var(--fs-xs);line-height:var(--lh-xs);}
  .t-label-sm{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-sm);}
  .t-label-xs{font-family:var(--jp);font-weight:var(--fw-medium);font-size:var(--fs-xs);}
  .t-en{font-family:var(--en);font-weight:var(--fw-semibold);}
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg);color:var(--text);font-family:var(--jp);font-weight:400;line-height:1.75;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
  a{color:inherit;text-decoration:none;transition:color .2s ease,background .2s ease;}
  a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--r-xs);}
  img{display:block;max-width:100%;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-md);}

  /* スキップリンク（フォーカス時のみ表示） */
  .skip{position:fixed;left:var(--sp-md);top:calc(-1 * var(--sp-2xl));z-index:100;background:var(--c-bg-primary);color:var(--c-text-on-primary);padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-md);font-size:var(--fs-sm);box-shadow:var(--shadow);transition:top .2s ease;}
  .skip:focus{top:var(--sp-md);outline:2px solid var(--c-bg-primary);outline-offset:2px;}
  .vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  main:focus{outline:none;}

  /* 画像プレースホルダ（写真は後で images/ に差し替え） */
  .ph{background:linear-gradient(135deg,var(--bg-subtler),var(--bg-subtle));border:1px solid var(--border-subtle);position:relative;overflow:hidden;}
  .ph::after{content:"PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-size:var(--fs-sm);letter-spacing:.3em;color:var(--border);}
  .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .ph:has(img)::after{display:none;} /* 実画像がある時は PHOTO ラベルを隠す */

  /* ---- Header ---- */
  .hd{position:sticky;top:0;z-index:50;height:72px;display:flex;align-items:center;gap:var(--sp-sm);padding:0 var(--sp-md);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);}
  .hd__logo{margin-right:auto;line-height:0;display:inline-flex;align-items:center;}
  .hd__logo-img{height:48px;width:auto;display:inline-block;}
  .hd__nav{display:none;gap:26px;font-family:var(--en);font-weight:600;font-size:var(--fs-md);letter-spacing:.06em;}
  .hd__nav a{position:relative;padding:var(--sp-2xs) 0;}
  .hd__nav a:hover{color:var(--gold);}
  .hd__cta{display:inline-flex;}
  .burger{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2xs);background:none;border:none;cursor:pointer;}
  .burger span{width:22px;height:1.5px;background:var(--text);border-radius:1px;transform-origin:center;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .2s ease;}
  .burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

  /* ---- Menu panel (mobile) ---- */
  .panel{position:fixed;inset:0;z-index:60;background:var(--bg);opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1),visibility 0s linear .35s;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .panel.open{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1),visibility 0s;}
  .panel a{font-family:var(--en);font-size:var(--fs-xl);letter-spacing:.1em;padding:14px 0;text-align:center;}
  .panel a small{display:block;text-align:center;font-family:var(--jp);font-size:var(--fs-xs);letter-spacing:.2em;color:var(--text-subtle);}
  .panel__close{position:absolute;top:14px;right:var(--sp-md);padding:0;}
  .panel__close span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
  .panel__close span:nth-child(2){opacity:0;}
  .panel__close span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}
  .panel__sns{display:flex;gap:var(--sp-lg);margin-top:var(--sp-xl);}
  .panel__sns a{color:var(--text-subtle);padding:0;transition:color .2s;}
  .panel__sns a svg{width:22px;height:22px;display:block;}
  .panel__sns a:hover{color:var(--gold);}

  /* ---- Buttons ---- */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);height:48px;padding:0 var(--sp-lg);border:0;border-radius:var(--r-pill);font-family:inherit;font-size:var(--fs-sm);letter-spacing:.08em;font-weight:500;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s,border-color .25s,transform .12s;}
  .btn--gold{background:var(--gold);color:#fff;}
  .btn--gold:hover{background:var(--gold-hover);}
  .btn--gold:active{background:var(--gold-active);transform:translateY(1px);}
  .btn--ghost{background:transparent;color:var(--text);border:1px solid var(--border-bold);}
  .btn--ghost:hover{background:var(--bg-subtler);}
  .btn--ghost:active{background:var(--border-subtle);transform:translateY(1px);}
  .btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
  .btn--block{display:flex;width:100%;}

  /* ---- Section heading ---- */
  .sec{padding:var(--sp-2xl) 0;}
  .sec--alt{background:var(--bg-subtle);}
  .sec__title{text-align:center;margin-bottom:36px;position:relative;}
  .sec__title .en{position:relative;z-index:1;font-family:var(--en);font-weight:600;font-size:var(--fs-3xl);letter-spacing:.12em;display:block;}
  .sec__title .jp{display:block;position:relative;z-index:1;font-size:var(--fs-xs);letter-spacing:.25em;color:var(--text-subtle);margin-top:var(--sp-2xs);}
  .sec__ghost{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-family:var(--en);font-weight:600;font-size:clamp(54px,15vw,74px);letter-spacing:.04em;line-height:1;color:rgba(140,107,47,.09);white-space:nowrap;z-index:0;pointer-events:none;}

  /* ---- Hero ---- */
  .hero{position:relative;}
  .hero__img{aspect-ratio:393/542;}
  .hero__box{max-width:calc(var(--maxw) - 24px);margin:-92px auto 0;position:relative;background:color-mix(in srgb,var(--c-bg) 82%,transparent);backdrop-filter:blur(6px);padding:var(--sp-lg) var(--sp-lg);}
  .hero__catch{font-size:var(--fs-xl);font-weight:var(--fw-medium);line-height:var(--lh-xl);letter-spacing:var(--ls-tight);}
  .hero__rule{height:1px;background:var(--border);margin:var(--sp-md) 0;}
  .hero__sub{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.85;}

  /* ---- Concept ---- */
  .concept__lead{text-align:left;font-size:var(--fs-xl);font-weight:var(--fw-medium);line-height:var(--lh-xl);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-lg);}
  .concept__img{aspect-ratio:361/240;border-radius:var(--r-md);margin-bottom:var(--sp-lg);}
  .concept__body{font-size:var(--fs-md);color:var(--text-subtle);line-height:2;}
  .pillars{list-style:none;margin:var(--sp-lg) 0 var(--sp-xl);display:flex;flex-direction:column;gap:var(--sp-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-lg) 20px;}
  .pillars li{display:flex;align-items:center;gap:14px;font-size:var(--fs-md);font-weight:500;}
  .pillars .no{flex:none;width:24px;height:24px;border-radius:var(--r-pill);border:1px solid var(--gold);color:var(--gold);font-family:var(--en);font-weight:600;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:center;}
  /* Our Salon: 交互オーバーラップの特徴カード */
  .osalon{display:flex;flex-direction:column;gap:44px;margin:var(--sp-xl) 0 36px;}
  .osf__img{width:86%;aspect-ratio:4/3;border-radius:var(--r-sm);}
  .osf:nth-child(even) .osf__img{margin-left:auto;}
  .osf__card{position:relative;z-index:2;width:75%;margin-top:-56px;background:var(--c-surface);box-shadow:var(--shadow);padding:var(--sp-lg) var(--sp-lg) var(--sp-lg);}
  .osf:nth-child(odd) .osf__card{margin-left:auto;}
  .osf__jp{font-size:var(--fs-md);font-weight:500;letter-spacing:.04em;margin-bottom:var(--sp-2xs);}
  .osf__en{display:block;font-family:var(--en);font-size:var(--fs-sm);letter-spacing:.12em;color:var(--text-subtle);margin-bottom:var(--sp-sm);}
  .osf__tx{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.95;}
  .center{text-align:center;}

  /* ---- Gallery marquee ---- */
  .marquee{overflow:hidden;}
  .marquee__row{display:flex;gap:var(--sp-xs);width:max-content;animation:slide 40s linear infinite;}
  .marquee__row.rev{animation-direction:reverse;margin-top:var(--sp-xs);}
  .marquee .ph{width:200px;aspect-ratio:209/136;border-radius:var(--r-md);flex:none;}
  @keyframes slide{to{transform:translateX(-50%);}}

  /* ---- Menu cards ---- */
  .mcard{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;margin-bottom:20px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}
  .mcard:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--border);}
  .mcard:hover .ph::after{color:var(--border-subtle);}
  .mcard .ph{aspect-ratio:361/240;}
  .mcard__body{padding:20px 20px var(--sp-lg);}
  .mcard__name{font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-lg);margin-bottom:var(--sp-xs);}
  .mcard__price{font-size:var(--fs-md);font-weight:500;color:var(--text);margin-bottom:var(--sp-sm);}
  .mcard__desc{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.9;}

  /* ---- First-visit + reservation (NEW) ---- */
  .firstvisit{background:var(--bg-subtler);}
  .firstvisit .lead{text-align:center;font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-lg);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-md);}
  .firstvisit .desc{text-align:center;font-size:var(--fs-sm);color:var(--text-subtle);line-height:2;margin-bottom:var(--sp-lg);}
  .fpoints{display:flex;flex-direction:column;gap:var(--sp-sm);margin-bottom:var(--sp-xl);}
  .fpoints li{display:flex;gap:var(--sp-md);align-items:center;background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-md);}
  .fp__ic{flex:none;color:var(--gold);}
  .fp__ic svg{width:26px;height:26px;display:block;}
  .fp__t{display:block;font-size:var(--fs-md);font-weight:600;letter-spacing:.02em;}
  .fp__d{display:block;font-size:var(--fs-sm);color:var(--text-subtle);margin-top:2px;}

  /* ---- News (NEW) ---- */
  .news__list{list-style:none;border-top:1px solid var(--border-subtle);margin-bottom:28px;}
  .news__list li{border-bottom:1px solid var(--border-subtle);}
  .news__list a{display:flex;flex-direction:column;gap:var(--sp-2xs);padding:var(--sp-md) var(--sp-2xs);transition:.2s;}
  .news__list a:hover{background:var(--bg-subtle);}
  .news__meta{display:flex;align-items:center;gap:var(--sp-sm);font-size:var(--fs-xs);color:var(--text-subtle);}
  .news__cat{font-family:var(--jp);letter-spacing:.1em;color:var(--gold);}
  .news__date{font-family:var(--en);letter-spacing:.05em;}
  .news__ttl{font-size:var(--fs-sm);line-height:1.6;}

  /* ---- Access ---- */
  .map{display:block;width:100%;aspect-ratio:361/240;border:0;border-radius:var(--r-md);margin-bottom:14px;}
  .map__btn{text-align:center;margin-bottom:var(--sp-lg);}
  .access__list{list-style:none;border-top:1px solid var(--border-subtle);}
  .access__list li{display:flex;gap:14px;align-items:flex-start;padding:20px var(--sp-3xs);border-bottom:1px solid var(--border-subtle);}
  .access__ic{flex:none;color:var(--gold);margin-top:var(--sp-3xs);}
  .access__ic svg{width:24px;height:24px;display:block;}
  .access__k{font-size:var(--fs-sm);font-weight:500;letter-spacing:.08em;color:var(--text-subtle);margin-bottom:var(--sp-2xs);}
  .access__v{font-size:var(--fs-md);font-weight:500;margin-bottom:6px;}
  .access__d{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.75;}

  /* ---- Reservation band ---- */
  .resv{background:var(--gold);color:#fff;text-align:center;padding:48px var(--sp-md);}
  .resv .en{font-family:var(--en);font-weight:600;font-size:var(--fs-2xl);letter-spacing:.12em;}
  .resv .jp{font-size:var(--fs-sm);letter-spacing:.16em;opacity:.9;margin:6px 0 var(--sp-lg);}
  .resv .btn{background:#fff;color:var(--gold);}
  .resv .btn:hover{background:var(--bg);}

  /* ---- Footer（Figma準拠：左揃えエディトリアル） ---- */
  .ft{background:var(--bg);padding:0 0 var(--sp-xl);border-top:1px solid var(--border-subtle);}
  .ft .wrap{padding-top:var(--sp-xs);}
  .ft__h{font-family:var(--en);font-weight:600;font-size:var(--fs-xl);letter-spacing:.06em;margin:var(--sp-xl) 0 var(--sp-md);}
  .ft__salon{font-size:var(--fs-sm);color:var(--text-subtle);line-height:2;padding-bottom:28px;}
  .ft__salon .ul{color:var(--text);text-decoration:underline;text-underline-offset:3px;}
  .ft__hr{border:none;border-top:1px solid var(--border-subtle);margin:0;}
  .ft__pages{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md) var(--sp-sm);padding-bottom:28px;}
  .ft__pages a{font-family:var(--en);font-weight:600;font-size:var(--fs-lg);letter-spacing:.04em;color:var(--text);}
  .ft__pages a.cur,.ft__pages a:hover{color:var(--gold);}
  .ft__sns{display:flex;gap:var(--sp-lg);padding-bottom:var(--sp-xl);}
  .ft__sns a{color:var(--text);transition:color .2s;}
  .ft__sns a:hover{color:var(--gold);}
  .ft__sns svg{width:26px;height:26px;display:block;}
  .ft__brand{text-align:center;padding-top:var(--sp-xl);}
  .ft__logo{line-height:0;}
  .ft__logo-img{height:46px;width:auto;display:inline-block;vertical-align:middle;}
  .logo--dark{display:none;} /* 既定（ライト）はライト用ロゴ */
  [data-theme="dark"] .logo--light{display:none;}
  [data-theme="dark"] .logo--dark{display:inline-block;}
  [data-theme="light"] .logo--light{display:inline-block;}
  [data-theme="light"] .logo--dark{display:none;}
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]) .logo--light{display:none;}
    :root:not([data-theme="light"]) .logo--dark{display:inline-block;}
  }
  .ft__copy{font-family:var(--en);font-size:var(--fs-xs);letter-spacing:.15em;color:var(--text-subtle);margin-top:6px;}

  /* ---- 予約FAB（右下固定・水紋） ---- */
  .fab{position:fixed;right:18px;bottom:20px;z-index:55;width:70px;height:70px;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .45s ease,transform .45s ease;}
  .fab.show{opacity:1;transform:none;pointer-events:auto;}
  .fab__core{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;background:var(--gold);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3xs);box-shadow:0 8px 22px rgba(140,107,47,.42);transition:transform .25s ease,background .25s ease;}
  .fab:hover .fab__core{transform:scale(1.06);background:var(--gold-hover);}
  .fab:active .fab__core{transform:scale(.98);}
  .fab__core svg{width:21px;height:21px;}
  .fab__txt{font-size:var(--fs-xs);letter-spacing:.12em;font-weight:500;}
  .fab__ripple{position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold);opacity:0;animation:fabRipple 4.5s cubic-bezier(.2,.6,.3,1) infinite;}
  .fab__ripple:nth-child(2){animation-delay:2.25s;}
  .fab__ripple:nth-child(3){display:none;}
  .fab.at-footer{opacity:0;transform:translateY(14px);pointer-events:none;}
  @keyframes fabRipple{0%{transform:scale(1);opacity:.3;}70%{opacity:.04;}100%{transform:scale(1.9);opacity:0;}}
  @media(prefers-reduced-motion:reduce){.fab__ripple{display:none;}}
  @media(min-width:768px){.fab{right:28px;bottom:28px;width:80px;height:80px;}.fab__core svg{width:24px;height:24px;}.fab__txt{font-size:var(--fs-xs);}}

  /* ---- テーマ切替ボタン（app.js が注入） ---- */
  .theme-toggle{position:fixed;left:16px;bottom:20px;z-index:55;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--c-surface);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);transition:background .25s,color .2s,border-color .2s;}
  .theme-toggle:hover{border-color:var(--gold);color:var(--gold);}
  .theme-toggle svg{width:20px;height:20px;}
  @media(min-width:768px){.theme-toggle{left:28px;bottom:28px;width:48px;height:48px;}}

  /* スクロールリビール（JS有効時のみ初期非表示。.js が無い＝JS無効/失敗時は通常表示） */
  .js [data-rev]{opacity:0;transform:translateY(22px);}
  .js [data-rev].in{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);}
  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}[data-rev],.js [data-rev]{opacity:1;transform:none;}}

  /* ---- Desktop ---- */
  @media(min-width:768px){
    :root{--maxw:600px;}
    .hd__nav,.hd__cta{display:flex;}
    .burger{display:none;}
    .sec{padding:var(--sp-4xl) 0;}
    .sec__title .en{font-size:var(--fs-4xl);}
    .hero__img{aspect-ratio:16/8;}
    .menu__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-md);}
    .menu__grid .mcard{margin-bottom:0;}
    .menu__grid{max-width:980px;margin:0 auto;}
  }

/* ---- Sub-page hero（各下層ページ共通） ---- */
.subhero{background:var(--bg-subtle);text-align:center;padding:clamp(52px,13vw,88px) var(--sp-md);border-bottom:1px solid var(--border-subtle);position:relative;overflow:hidden;}
.subhero .en{position:relative;z-index:1;font-family:var(--en);font-weight:600;font-size:clamp(34px,8vw,46px);letter-spacing:.1em;display:block;}
.subhero .jp{position:relative;z-index:1;font-size:var(--fs-xs);letter-spacing:.3em;color:var(--text-subtle);margin-top:10px;display:block;}
.subhero .ghost{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-family:var(--en);font-weight:600;font-size:clamp(64px,19vw,124px);letter-spacing:.04em;line-height:1;color:rgba(140,107,47,.07);white-space:nowrap;pointer-events:none;}
.page{padding:clamp(48px,8vw,var(--sp-3xl)) 0;}

/* ---- Menu page ---- */
.mcat{margin-bottom:44px;}
.mcat__h{display:flex;align-items:baseline;gap:var(--sp-sm);border-bottom:1px solid var(--border-bold);padding-bottom:var(--sp-sm);margin-bottom:var(--sp-2xs);}
.mcat__en{font-family:var(--en);font-weight:600;font-size:var(--fs-xl);letter-spacing:.06em;color:var(--gold);}
.mcat__jp{font-size:var(--fs-sm);color:var(--text-subtle);letter-spacing:.08em;}
.mlist{list-style:none;margin:0;}
.mlist li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-md);padding:var(--sp-md) var(--sp-3xs);border-bottom:1px solid var(--border-subtle);}
.mlist .name{font-size:var(--fs-md);font-weight:500;}
.mlist .name small{display:block;font-size:var(--fs-xs);color:var(--text-subtle);font-weight:400;margin-top:var(--sp-2xs);line-height:1.6;}
.mlist .price{font-size:var(--fs-md);font-weight:500;white-space:nowrap;}
.mnote{font-size:var(--fs-xs);color:var(--text-subtle);text-align:center;margin-top:var(--sp-lg);line-height:2;}

/* ---- Our Salon: Profile（スタイリスト紹介） ---- */
.profile{display:flex;flex-direction:column;gap:52px;margin:var(--sp-xs) 0 var(--sp-2xs);}
.prof__photo{width:160px;height:160px;border-radius:50%;margin:0 auto var(--sp-md);}
.prof__name{text-align:center;font-size:var(--fs-xl);font-weight:var(--fw-medium);line-height:var(--lh-xl);letter-spacing:.06em;}
.prof__en{display:block;text-align:center;font-family:var(--en);font-size:var(--fs-xs);letter-spacing:.12em;color:var(--text-subtle);margin:var(--sp-2xs) 0 var(--sp-lg);}
.prof__row{margin-bottom:var(--sp-md);}
.prof__row:last-child{margin-bottom:0;}
.prof__lbl{font-size:var(--fs-xs);font-weight:500;letter-spacing:.12em;color:var(--gold);margin-bottom:6px;}
.prof__tx{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.95;}
/* ---- Our Salon: About（サロンの想い） ---- */
.about__lead{border-left:2px solid var(--gold);padding-left:var(--sp-md);font-size:var(--fs-lg);font-weight:500;line-height:1.85;letter-spacing:.02em;margin-bottom:var(--sp-lg);}
.about__img{aspect-ratio:361/262;border-radius:var(--r-md);margin-bottom:var(--sp-lg);}

/* ---- Menu page（Figma準拠：装飾見出し＋所要時間＋説明＋初回限定カード） ---- */
.mcat__t{display:flex;align-items:baseline;gap:var(--sp-sm);margin-bottom:14px;}
.mcat__t::before{content:"";align-self:center;width:38px;height:1px;background:var(--border-bold);flex:none;}
.mcat__t .en{font-family:var(--en);font-weight:600;font-size:var(--fs-xl);letter-spacing:.06em;}
.mcat__t .jp{font-size:var(--fs-xs);color:var(--text-subtle);letter-spacing:.12em;}
.mitem{padding:var(--sp-md) var(--sp-3xs);border-bottom:1px dotted var(--border);}
.mitem__top{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding-top:var(--sp-md);}
.mitem__name{font-size:var(--fs-md);font-weight:500;}
.mitem__price{font-size:var(--fs-md);font-weight:500;white-space:nowrap;}
.mitem__price .min{font-size:var(--fs-xs);color:var(--text-subtle);font-weight:400;margin-left:var(--sp-3xs);}
.mitem__desc{margin:0;padding:var(--sp-2xs) 0 var(--sp-md);border-bottom:1px dotted var(--border);font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.85;}
.mfeat{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:20px;margin:var(--sp-md) 0 var(--sp-3xs);}
.mfeat__tag{display:inline-block;font-size:var(--fs-xs);letter-spacing:.1em;color:#fff;background:var(--gold);padding:var(--sp-2xs) var(--sp-sm);border-radius:var(--r-pill);margin-bottom:var(--sp-sm);}
.mfeat__name{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--sp-xs);}
.mfeat__price{margin-bottom:10px;}
.mfeat__price del{font-size:var(--fs-sm);color:var(--text-subtle);margin-right:var(--sp-xs);}
.mfeat__price b{font-size:var(--fs-lg);color:var(--gold);}
.mfeat__price .min{font-size:var(--fs-xs);color:var(--text-subtle);margin-left:var(--sp-2xs);}
.mfeat__desc{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.85;}

/* ---- Gallery page ---- */
.ggrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
/* ギャラリー：2列基本＋要所で全幅。写真は比率を保って全体表示 */
.gitem{display:block;width:100%;padding:0;border:0;font:inherit;line-height:0;cursor:pointer;transition:opacity .2s,transform .12s;}
.gitem.wide{grid-column:1 / -1;}
.gitem:hover{opacity:.88;}
.gitem:active{transform:scale(.99);}
.gitem[hidden]{display:none;}
.gitem img{position:static;width:100%;height:auto;object-fit:initial;display:block;border-radius:var(--r-md);}
.gitem.ph:has(img){border:0;background:none;}
/* ライトボックス */
.lb{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:var(--sp-xs);padding:var(--sp-md);background:rgba(18,17,16,.92);backdrop-filter:blur(4px);}
.lb[hidden]{display:none;}
.lb__stage{margin:0;display:flex;flex-direction:column;gap:var(--sp-sm);max-width:min(880px,90vw);}
.lb__media{align-self:center;max-width:min(880px,90vw);line-height:0;border-radius:var(--r-md);overflow:hidden;}
.lb__media.ph{width:min(880px,84vw);aspect-ratio:4/3;}
.lb__media img{max-width:min(880px,90vw);max-height:80vh;width:auto;height:auto;display:block;}
.lb__cap{text-align:center;color:var(--neutral-90);font-size:var(--fs-sm);letter-spacing:.04em;}
.lb__close{position:absolute;top:var(--sp-md);right:var(--sp-md);}
.lb__close,.lb__nav{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:background .2s;}
.lb__close:hover,.lb__nav:hover{background:rgba(255,255,255,.24);}
.lb__close svg,.lb__nav svg{width:22px;height:22px;}
@media(max-width:560px){.lb__nav{position:absolute;bottom:var(--sp-md);}.lb__prev{left:var(--sp-md);}.lb__next{right:var(--sp-md);}}

/* ---- Blog page ---- */
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-xs);margin-bottom:var(--sp-lg);}
.chips a{font-size:var(--fs-xs);letter-spacing:.05em;padding:var(--sp-xs) var(--sp-md);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text-subtle);transition:.2s;}
.chips a:hover,.chips a.on{background:var(--gold);color:#fff;border-color:var(--gold);}
.bcard{display:block;border-bottom:1px solid var(--border-subtle);padding:var(--sp-lg) var(--sp-2xs);transition:background .2s;}
.bcard:hover{background:var(--bg-subtle);}
.bcard[hidden]{display:none;}
.bcard__img{aspect-ratio:16/10;border-radius:var(--r-md);margin-bottom:14px;}
.bcard__meta{display:flex;gap:var(--sp-sm);align-items:center;font-size:var(--fs-xs);color:var(--text-subtle);margin-bottom:var(--sp-xs);}
.bcard__cat{font-family:var(--jp);letter-spacing:.1em;color:var(--gold);}
.bcard__date{font-family:var(--en);letter-spacing:.05em;}
.bcard__ttl{font-size:var(--fs-md);font-weight:500;line-height:1.5;margin-bottom:var(--sp-xs);}
.bcard__ex{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.8;}
.pager{display:flex;justify-content:center;gap:var(--sp-xs);margin-top:34px;}
.pager a{min-width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-pill);border:1px solid var(--border);font-family:var(--en);font-size:var(--fs-md);color:var(--text);transition:.2s;}
.pager a:hover,.pager a.on{background:var(--gold);color:#fff;border-color:var(--gold);}

/* ---- Blog article（個別記事ページ） ---- */
.art__head{text-align:center;margin-bottom:clamp(var(--sp-lg),6vw,40px);}
.art__meta{display:flex;gap:var(--sp-sm);justify-content:center;align-items:center;font-size:var(--fs-xs);color:var(--text-subtle);margin-bottom:14px;}
.art__cat{font-family:var(--jp);letter-spacing:.1em;color:var(--gold);}
.art__date{font-family:var(--en);letter-spacing:.05em;}
.art__title{font-size:clamp(21px,5.5vw,28px);font-weight:500;line-height:1.55;letter-spacing:.02em;}
.art__cover{width:100%;aspect-ratio:16/9;border-radius:var(--r-md);margin-bottom:clamp(28px,6vw,44px);object-fit:cover;}
.art__body{font-size:var(--fs-md);line-height:2;}
.art__body h2{font-size:var(--fs-lg);font-weight:600;line-height:1.5;margin:36px 0 14px;padding-left:var(--sp-sm);border-left:3px solid var(--gold);}
.art__body h3{font-size:var(--fs-md);font-weight:600;margin:28px 0 10px;}
.art__body p{margin-bottom:20px;color:var(--text-subtle);}
.art__body ul,.art__body ol{margin:0 0 20px 1.3em;color:var(--text-subtle);}
.art__body li{margin-bottom:var(--sp-xs);line-height:1.9;}
.art__body img{width:100%;border-radius:var(--r-md);margin:var(--sp-xs) 0 var(--sp-lg);}
.art__body blockquote{border-left:2px solid var(--gold);background:var(--bg-subtle);padding:14px var(--sp-md);color:var(--text-subtle);margin:0 0 20px;border-radius:0 var(--r-sm) var(--r-sm) 0;}
.art__nav{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-sm);margin-top:clamp(36px,8vw,52px);padding-top:var(--sp-lg);border-top:1px solid var(--border-subtle);font-size:var(--fs-sm);}
.art__nav a{color:var(--text-subtle);transition:color .2s;}
.art__nav a:hover{color:var(--gold);}
.art__navc{font-family:var(--jp);letter-spacing:.08em;}

/* ---- Contact form ---- */
.lede{text-align:center;font-size:var(--fs-sm);color:var(--text-subtle);line-height:2;margin-bottom:36px;}
.form{display:flex;flex-direction:column;gap:20px;max-width:540px;margin:0 auto;}
.field label{display:block;font-size:var(--fs-sm);font-weight:500;letter-spacing:.06em;margin-bottom:var(--sp-xs);}
.field .req{color:var(--gold);font-size:var(--fs-xs);margin-left:6px;}
.field input,.field textarea,.field select{width:100%;font-family:var(--jp);font-size:var(--fs-md);color:var(--text);background:var(--c-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-sm) 14px;transition:border-color .2s;}
.field textarea{min-height:150px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(140,107,47,.12);}
.form__note{font-size:var(--fs-xs);color:var(--text-subtle);text-align:center;line-height:1.9;margin-top:var(--sp-2xs);}

/* ---- Booking flow (reserve.html) ---- */
.bk{max-width:560px;margin:0 auto;}
.bk__progress{display:flex;gap:var(--sp-2xs);list-style:none;margin:0 0 var(--sp-xl);padding:0;}
.bk__progress li{flex:1;text-align:center;font-size:var(--fs-xs);color:var(--text-subtle);letter-spacing:.04em;padding-bottom:var(--sp-xs);border-bottom:2px solid var(--border-subtle);}
.bk__progress li.on{color:var(--gold);border-bottom-color:var(--gold);font-weight:600;}
.bk__progress li.done{color:var(--text);border-bottom-color:var(--gold);}
.bk__h{font-size:var(--fs-lg);font-weight:500;letter-spacing:.04em;text-align:center;margin-bottom:var(--sp-md);}
.bk__note{font-size:var(--fs-sm);color:var(--text-subtle);text-align:center;line-height:1.7;margin-bottom:var(--sp-md);}
.bk__nav{display:flex;flex-wrap:wrap;gap:var(--sp-sm);justify-content:center;margin-top:var(--sp-lg);}
.bk__nav .btn--block{flex:1 1 100%;}
.bk-menus{display:flex;flex-direction:column;gap:var(--sp-sm);}
.bk-menu{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md);width:100%;text-align:left;font-family:inherit;color:var(--text);background:var(--c-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-md);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .12s;}
.bk-menu:hover{border-color:var(--gold);box-shadow:var(--shadow);}
.bk-menu:active{transform:translateY(1px);}
.bk-menu__name{font-size:var(--fs-md);font-weight:500;}
.bk-menu__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;}
.bk-menu__price{font-size:var(--fs-md);font-weight:600;color:var(--gold);}
.bk-menu__min{font-size:var(--fs-xs);color:var(--text-subtle);font-family:var(--jp);letter-spacing:.04em;}
/* 月間カレンダー */
.bk-cal__bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-sm);}
.bk-cal__title{font-family:var(--jp);font-weight:600;font-size:var(--fs-md);letter-spacing:.04em;}
.bk-cal__nav{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:50%;background:var(--c-surface);color:var(--text);font-size:18px;cursor:pointer;transition:border-color .2s;}
.bk-cal__nav:hover:not([disabled]){border-color:var(--gold);}
.bk-cal__nav[disabled]{opacity:.3;cursor:not-allowed;}
.bk-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.bk-cal__week{margin-bottom:6px;}
.bk-cal__week span{text-align:center;font-size:var(--fs-xs);color:var(--text-subtle);}
.bk-cal__cell{aspect-ratio:1;}
.bk-cal__day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:0;font-family:var(--jp);font-weight:500;font-size:var(--fs-md);color:var(--text);background:var(--c-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);cursor:pointer;transition:border-color .2s,background .2s;}
button.bk-cal__day:hover{border-color:var(--gold);background:var(--bg-subtle);}
.bk-cal__day.is-sun,.bk-cal__week .is-sun{color:var(--danger-30);}
.bk-cal__day.is-sat,.bk-cal__week .is-sat{color:#3f72a3;}
.bk-cal__day.is-today{box-shadow:inset 0 0 0 1.5px var(--gold);}
.bk-cal__day.is-off{color:var(--border);background:transparent;border-color:transparent;cursor:default;}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:var(--sp-xs);}
.bk-time{padding:var(--sp-sm) 0;font-family:var(--jp);font-weight:500;font-size:var(--fs-md);letter-spacing:.04em;color:var(--text);background:var(--c-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);cursor:pointer;transition:border-color .2s,background .2s;}
.bk-time:hover{border-color:var(--gold);}
.bk-time[disabled]{opacity:.35;cursor:not-allowed;text-decoration:line-through;}
.bk-loading,.bk-empty,.bk-error{grid-column:1/-1;text-align:center;font-size:var(--fs-sm);color:var(--text-subtle);padding:var(--sp-md);}
.bk-error{color:var(--c-text-danger);}
.bk-sum{display:flex;flex-direction:column;gap:var(--sp-xs);background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-md);margin-bottom:var(--sp-lg);}
.bk-sum__row{display:flex;justify-content:space-between;gap:var(--sp-md);font-size:var(--fs-sm);}
.bk-sum__row span{flex:none;color:var(--text-subtle);}
.bk-sum__row b{text-align:right;font-weight:600;}
.bk__done{text-align:center;}
.bk-done__ic{display:flex;justify-content:center;color:var(--gold);margin-bottom:var(--sp-md);}
.bk-done__ic svg{width:56px;height:56px;}
.bk__done .bk-sum{text-align:left;max-width:360px;margin:0 auto var(--sp-lg);}

/* ---- Our Salon page ---- */
.lead-block{font-size:var(--fs-lg);font-weight:500;line-height:1.8;letter-spacing:.02em;margin-bottom:var(--sp-lg);}
.prose p{font-size:var(--fs-md);color:var(--text-subtle);line-height:2;margin-bottom:var(--sp-md);}
.prose p:last-child{margin-bottom:0;}
.feat{display:flex;flex-direction:column;gap:44px;margin-top:48px;}
.feat__item .ph{aspect-ratio:16/10;border-radius:var(--r-md);margin-bottom:var(--sp-md);}
.feat__no{font-family:var(--en);font-size:var(--fs-sm);letter-spacing:.12em;color:var(--gold);}
.feat__ttl{font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-lg);margin:6px 0 10px;}
.feat__tx{font-size:var(--fs-sm);color:var(--text-subtle);line-height:1.95;}

@media(min-width:768px){
  .ggrid{grid-template-columns:1fr 1fr 1fr;}
  .gitem.wide{grid-column:span 2;}
  .feat{flex-direction:row;}
  .feat__item{flex:1;}
}

/* ===== ダークモードの微調整：First Visit のエレベーション（page<panel<card） ===== */
/* 既定では panel=warm-20(明るすぎ)・card=warm-5(沈む)で逆転するため、ダーク時のみ補正 */
[data-theme="dark"] .firstvisit{background:var(--warm-10);}
[data-theme="dark"] .fpoints li{background:var(--warm-20);}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .firstvisit{background:var(--warm-10);}
  :root:not([data-theme="light"]) .fpoints li{background:var(--warm-20);}
}
