:root{
    --paper:#ECE7DD;      /* warm ivory paper */
    --paper-2:#E3DCCE;    /* card surface */
    --ink:#211C17;        /* leather-black ink */
    --leather:#33241C;    /* dark cognac leather (dark sections) */
    --brass:#9C7A3C;      /* antique brass hardware — accent, used sparingly */
    --brass-soft:#B89A63;
    --brass-deep:#75592B;  /* 本文級の情報（価格）用。カード面でAA(4.5:1)を満たす濃さ */
    --stone:#8B8377;      /* taupe meta */
    --rule:rgba(33,28,23,.16);
    --rule-light:rgba(236,231,221,.22);
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:"Zen Kaku Gothic New",system-ui,sans-serif;font-weight:400;
    line-height:1.85;letter-spacing:.02em;-webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:"Shippori Mincho",serif;font-weight:600;line-height:1.35;margin:0;}
  p{margin:0;}
  a{color:inherit;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  @media(max-width:600px){.wrap{padding:0 22px;}}

  /* ---------- shared devices ---------- */
  .eyebrow{
    font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
    color:var(--brass);font-weight:500;display:inline-block;
  }
  .eyebrow .jp{color:var(--stone);letter-spacing:.14em;margin-left:.9em;}
  /* saddle-stitch hairline: the signature divider */
  .stitch{
    height:1px;border:0;margin:0;
    background-image:repeating-linear-gradient(90deg,var(--brass) 0 14px,transparent 14px 26px);
    opacity:.6;
  }
  .seal{
    width:112px;height:112px;border-radius:50%;position:relative;flex:none;
    display:grid;place-items:center;text-align:center;
    border:1px solid var(--brass);
  }
  .seal::before{
    content:"";position:absolute;inset:7px;border-radius:50%;
    border:1px dashed var(--brass-soft);opacity:.7;
  }
  .seal span{font-family:"Shippori Mincho",serif;color:var(--brass);
    font-size:.66rem;letter-spacing:.24em;line-height:1.6;}
  .seal span b{display:block;font-size:.95rem;letter-spacing:.12em;font-weight:600;}

  /* ---------- header ---------- */
  header{position:sticky;top:0;z-index:50;background:rgba(236,231,221,.86);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);}
  .bar{display:flex;align-items:center;justify-content:space-between;height:66px;}
  .brand{font-family:"Shippori Mincho",serif;font-weight:600;font-size:1.28rem;
    letter-spacing:.42em;padding-left:.42em;}
  .brand small{display:block;font-family:"Zen Kaku Gothic New";font-weight:300;
    font-size:.56rem;letter-spacing:.28em;color:var(--stone);padding-left:.1em;margin-top:-2px;}
  .nav{display:flex;gap:30px;align-items:center;}
  .nav a{font-size:.82rem;letter-spacing:.12em;text-decoration:none;color:var(--ink);opacity:.72;}
  .nav a:hover{opacity:1;}
  .btn{
    font-family:"Zen Kaku Gothic New";font-size:.82rem;letter-spacing:.1em;font-weight:500;
    text-decoration:none;display:inline-flex;align-items:center;gap:.5em;
    padding:.72em 1.5em;border-radius:2px;transition:.25s ease;white-space:nowrap;cursor:pointer;
  }
  .btn-fill{background:var(--ink);color:var(--paper);}
  .btn-fill:hover{background:var(--leather);}
  .btn-line{background:#06C755;color:#fff;}
  .btn-line:hover{filter:brightness(.94);}
  .btn-line::before{content:"";width:1.05em;height:1.05em;flex:none;
    background:#fff;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3C6.5 3 2 6.6 2 11c0 4 3.6 7.3 8.5 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.6 1.1-.5 6-3.5 8.2-6C21.8 14.2 22 12.7 22 11c0-4.4-4.5-8-10-8z"/></svg>') center/contain no-repeat;
            mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3C6.5 3 2 6.6 2 11c0 4 3.6 7.3 8.5 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.6 1.1-.5 6-3.5 8.2-6C21.8 14.2 22 12.7 22 11c0-4.4-4.5-8-10-8z"/></svg>') center/contain no-repeat;}
  .btn-ghost{border:1px solid var(--ink);color:var(--ink);}
  .btn-ghost:hover{background:var(--ink);color:var(--paper);}
  .nav .btn{padding:.6em 1.2em;}
  @media(max-width:820px){.nav a:not(.btn){display:none;}}

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;}
  .hero-copy{padding:96px 0 104px;max-width:560px;}
  .hero h1{font-size:clamp(2.5rem,5.4vw,4.2rem);font-weight:700;letter-spacing:.02em;}
  .hero h1 .thin{color:var(--stone);font-weight:500;}
  .hero .lede{margin-top:28px;font-size:1.02rem;color:#4a4038;max-width:34em;font-weight:300;}
  .hero .cta{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;}
  /* hero trust strip — social proof directly under the primary CTA */
  .hero-trust{margin:34px 0 0;padding:24px 0 0;display:flex;gap:0;flex-wrap:wrap;border-top:1px solid var(--rule);list-style:none;}
  .hero-trust li{padding:0 22px;position:relative;}
  .hero-trust li:first-child{padding-left:0;}
  .hero-trust li + li::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;background:var(--rule);}
  .hero-trust b{display:block;font-family:"Shippori Mincho",serif;font-weight:600;font-size:1.16rem;color:var(--ink);letter-spacing:.04em;}
  .hero-trust span{display:block;font-size:.72rem;color:var(--stone);font-weight:300;letter-spacing:.06em;margin-top:2px;}
  .hero-visual{position:relative;min-height:520px;
    background:var(--paper-2) url("assets/hero.jpg") center/cover no-repeat;}
  /* 左のコピー面との境目を自然につなぐ、ごく薄いスクリム */
  .hero-visual::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(90deg,var(--paper) 0%,rgba(236,231,221,0) 22%);}
  .hero-visual .grain,.hero-visual .ph-label{display:none;}
  .hero-seal{position:absolute;right:34px;top:40px;width:132px;height:132px;z-index:2;
    border-color:var(--brass);background:rgba(236,231,221,.66);backdrop-filter:blur(2px);}
  .hero-seal span{color:var(--brass-deep);}
  .hero-seal span b{color:var(--ink);}
  @media(max-width:900px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-copy{padding:56px 0 52px;}
    /* 縦積みではバッグが枠いっぱいになり、右上の鑑定シールが持ち手に重なる。
       写真をやや右寄りに見せてバッグを左へ逃がし、シールも一回り小さくする。 */
    .hero-visual{min-height:340px;order:-1;background-position:78% center;}
    .hero-seal{width:112px;height:112px;right:20px;top:26px;}
    .hero-seal span{font-size:.6rem;letter-spacing:.2em;}
    .hero-seal span b{font-size:.86rem;}
  }
  @media(max-width:600px){
    .hero-trust li{padding:0 16px;}
    .hero-trust b{font-size:1.02rem;}
  }

  /* ---------- generic section ---------- */
  section{padding:96px 0;}
  @media(max-width:600px){section{padding:72px 0;}}
  .sec-head{max-width:760px;margin-bottom:52px;}
  .sec-head h2{font-size:clamp(1.7rem,3.3vw,2.5rem);margin-top:18px;}
  .sec-head p{margin-top:18px;color:#4a4038;font-weight:300;}
  .dark{background:var(--leather);color:var(--paper);}
  .dark .sec-head p{color:rgba(236,231,221,.72);}
  .dark .eyebrow .jp{color:rgba(236,231,221,.6);}
  .dark .stitch{opacity:.7;}

  /* trust / reasons */
  .reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
  .reason{padding:6px 34px 6px 0;}
  .reason + .reason{border-left:1px solid var(--rule);padding-left:34px;}
  .reason .no{font-family:"Shippori Mincho",serif;color:var(--brass);font-size:.9rem;letter-spacing:.2em;}
  .reason h3{font-size:1.28rem;margin:14px 0 12px;}
  .reason p{color:#4a4038;font-weight:300;font-size:.96rem;}
  @media(max-width:760px){
    .reasons{grid-template-columns:1fr;}
    .reason + .reason{border-left:0;border-top:1px solid var(--rule);padding-left:0;padding-top:30px;margin-top:30px;}
  }
  .trust-note{margin-top:48px;display:flex;gap:22px;align-items:center;flex-wrap:wrap;
    padding-top:34px;border-top:1px solid var(--rule);}
  .trust-note p{font-size:.92rem;color:var(--stone);max-width:44em;}

  /* collection */
  .grid-models{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .card{background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;}
  .card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(33,28,23,.5);}
  /* 商品写真は正方形で撮影されているため 1:1。cover による見切れを避ける */
  .card .photo{aspect-ratio:1/1;background:
      linear-gradient(150deg,#5a4234,#33241C);position:relative;display:grid;place-items:center;
      background-size:cover;background-position:center;overflow:hidden;}
  .card .photo span{color:var(--rule-light);font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;}
  .card .body{padding:20px 22px 24px;}
  /* カードは明るい面。ダークセクション内でも文字色を継承させない */
  .card h3{font-size:1.16rem;color:var(--ink);}
  .card .meta{margin-top:8px;color:var(--stone);font-size:.86rem;font-weight:300;}
  .card .price{margin-top:12px;font-family:"Shippori Mincho",serif;color:var(--brass-deep);font-size:.98rem;letter-spacing:.04em;}
  .card .price small{display:block;color:var(--stone);font-family:"Zen Kaku Gothic New";font-size:.72rem;font-weight:300;letter-spacing:.04em;margin-top:2px;}
  .price-note{margin-top:28px;color:rgba(236,231,221,.7);font-size:.86rem;font-weight:300;}
  @media(max-width:860px){.grid-models{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:520px){.grid-models{grid-template-columns:1fr;}}

  /* ---------- 在庫（個体カード。ビルドで生成） ---------- */
  .stock-meta{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:40px;
    padding-bottom:18px;border-bottom:1px solid var(--rule-light);}
  .stock-meta .count{font-family:"Shippori Mincho",serif;font-size:1.5rem;color:var(--paper);letter-spacing:.04em;}
  .stock-meta .count b{color:var(--brass-soft);font-size:2rem;padding:0 .12em;
    font-variant-numeric:tabular-nums;}
  .stock-meta .updated{font-size:.76rem;color:rgba(236,231,221,.55);font-weight:300;letter-spacing:.06em;}
  .model-group + .model-group{margin-top:56px;}
  .model-head{display:flex;align-items:baseline;gap:14px;margin:0 0 20px;
    font-size:1.12rem;color:var(--paper);letter-spacing:.08em;}
  .model-head::after{content:"";flex:1;height:1px;background:var(--rule-light);}
  .model-head .n{font-size:.74rem;color:var(--brass-soft);font-weight:400;
    font-family:"Zen Kaku Gothic New";letter-spacing:.1em;flex:none;
    font-variant-numeric:tabular-nums;}
  /* min-width/min-height:0 は必須。グリッドアイテムの既定 min-height:auto だと
     縦長写真が縮まず .photo の aspect-ratio:1/1 を押し広げ、カードの高さが不揃いになる。 */
  .card .photo img{width:100%;height:100%;object-fit:cover;display:block;min-width:0;min-height:0;}
  .card .spec{margin-top:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;
    color:var(--stone);font-size:.8rem;font-weight:300;}
  .card .rank{border:1px solid var(--brass);color:var(--brass-deep);border-radius:2px;
    padding:0 .5em;font-size:.72rem;letter-spacing:.08em;font-weight:500;}
  .card .yen{font-variant-numeric:tabular-nums;}

  /* authentication + care (dark, seal feature) */
  .auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
  .auth-list{margin:0;padding:0;list-style:none;}
  .auth-list li{padding:22px 0;border-top:1px solid var(--rule-light);display:flex;gap:20px;}
  .auth-list li:last-child{border-bottom:1px solid var(--rule-light);}
  .auth-list .k{font-family:"Shippori Mincho",serif;color:var(--brass-soft);
    font-size:.82rem;letter-spacing:.18em;flex:none;width:5.5em;padding-top:.2em;}
  .auth-list h3{font-size:1.06rem;color:var(--paper);margin-bottom:4px;}
  .auth-list p{color:rgba(236,231,221,.66);font-weight:300;font-size:.92rem;}
  /* 状態ランクの定義（ダークセクション内） */
  .ranks{margin:14px 0 0;padding:14px 16px;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;
    border:1px solid var(--rule-light);border-radius:3px;background:rgba(0,0,0,.16);}
  .ranks dt{font-family:"Shippori Mincho",serif;color:var(--brass-soft);font-size:.82rem;
    letter-spacing:.1em;text-align:center;min-width:2.6em;align-self:start;
    border:1px solid var(--brass);border-radius:2px;padding:1px 0;}
  .ranks dd{margin:0;color:rgba(236,231,221,.72);font-size:.84rem;font-weight:300;line-height:1.7;}
  @media(max-width:520px){.ranks{padding:12px;gap:6px 10px;}.ranks dd{font-size:.8rem;}}

  .auth-seal-wrap{display:grid;place-items:center;}
  .auth-seal-wrap .seal{width:220px;height:220px;border-color:var(--brass-soft);}
  .auth-seal-wrap .seal span{color:var(--brass-soft);font-size:.82rem;}
  .auth-seal-wrap .seal span b{font-size:1.4rem;}
  @media(max-width:820px){.auth-grid{grid-template-columns:1fr;gap:44px;}
    .auth-seal-wrap{order:-1;} .auth-seal-wrap .seal{width:170px;height:170px;}}

  /* flow — a real sequence, numbering earns its place */
  .flow{display:grid;grid-template-columns:repeat(6,1fr);gap:0;counter-reset:step;}
  .step{padding:0 20px;position:relative;}
  .step + .step::before{content:"";position:absolute;left:0;top:6px;bottom:20px;width:1px;background:var(--rule);}
  .step .no{font-family:"Shippori Mincho",serif;font-size:1.6rem;color:var(--brass);}
  .step h3{font-size:1rem;margin:12px 0 8px;}
  .step p{font-size:.85rem;color:#4a4038;font-weight:300;}
  @media(max-width:900px){.flow{grid-template-columns:repeat(2,1fr);gap:34px 0;}
    .step + .step::before{display:none;}}

  /* recent / instagram */
  .grid-recent{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .tile{position:relative;margin:0;border-radius:2px;overflow:hidden;
    background:linear-gradient(135deg,#4a352a,#241811);}
  .tile > span{display:grid;place-items:center;aspect-ratio:1/1;color:var(--rule-light);
    font-size:.6rem;letter-spacing:.2em;}
  .tile img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;filter:saturate(.9);}
  .tile figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;
    padding:10px 12px;background:rgba(0,0,0,.28);font-size:.78rem;font-weight:300;
    color:rgba(236,231,221,.82);line-height:1.5;}
  .tile figcaption span{flex:none;font-family:"Shippori Mincho",serif;font-size:.66rem;
    letter-spacing:.16em;color:var(--brass-soft);border:1px solid var(--brass);
    border-radius:2px;padding:0 .5em;}
  @media(max-width:760px){.grid-recent{grid-template-columns:repeat(2,1fr);}}
  .recent-note{margin-top:26px;color:rgba(236,231,221,.7);font-size:.86rem;font-weight:300;}

  /* voices (placeholder, honest) */
  .voices{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .voice{padding:30px 28px;border:1px solid var(--rule);border-radius:3px;background:var(--paper-2);}
  .voice p{font-family:"Shippori Mincho",serif;font-size:1.02rem;line-height:1.9;color:var(--ink);}
  .voice .who{margin-top:18px;font-size:.8rem;color:var(--stone);font-weight:300;letter-spacing:.08em;}
  @media(max-width:820px){.voices{grid-template-columns:1fr;}}

  /* faq */
  .faq{max-width:820px;}
  details{border-bottom:1px solid var(--rule);}
  summary{cursor:pointer;list-style:none;padding:22px 0;font-size:1.04rem;
    font-family:"Shippori Mincho",serif;display:flex;justify-content:space-between;gap:20px;align-items:center;}
  summary::-webkit-details-marker{display:none;}
  summary .plus{color:var(--brass);font-size:1.2rem;transition:transform .3s;flex:none;}
  details[open] summary .plus{transform:rotate(45deg);}
  details .a{padding:0 0 24px;color:#4a4038;font-weight:300;font-size:.95rem;max-width:60em;}

  /* contact — 受付はLINE／Instagram DMのみ */
  .contact-lead p{color:#4a4038;font-weight:300;}
  .contact-cta{margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
  .form-note{font-size:.8rem;color:var(--stone);font-weight:300;line-height:1.9;}

  /* CTA band */
  .cta-band{background:var(--ink);color:var(--paper);text-align:center;}
  .cta-band h2{font-size:clamp(1.8rem,3.6vw,2.6rem);}
  .cta-band p{margin:20px auto 0;max-width:38em;color:rgba(236,231,221,.72);font-weight:300;}
  .cta-band .cta{margin-top:40px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
  .cta-band .btn-ghost{border-color:var(--paper);color:var(--paper);}
  .cta-band .btn-ghost:hover{background:var(--paper);color:var(--ink);}
  .cta-band .assure{margin-top:26px;font-size:.82rem;color:rgba(236,231,221,.6);font-weight:300;letter-spacing:.04em;}

  /* footer + 特商法 */
  footer{background:var(--leather);color:rgba(236,231,221,.78);font-size:.82rem;font-weight:300;padding:72px 0 40px;}
  .foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
  .foot-brand .brand{color:var(--paper);}
  .foot-brand p{margin-top:16px;color:rgba(236,231,221,.6);max-width:26em;}
  footer h4{font-family:"Zen Kaku Gothic New";font-weight:500;color:var(--paper);
    font-size:.8rem;letter-spacing:.16em;margin:0 0 16px;}
  footer ul{list-style:none;margin:0;padding:0;}
  footer li{margin-bottom:10px;}
  footer a{text-decoration:none;opacity:.8;cursor:pointer;}
  footer a:hover{opacity:1;color:var(--brass-soft);}
  .tokutei{margin-top:56px;padding-top:32px;border-top:1px solid var(--rule-light);
    font-size:.76rem;line-height:2;color:rgba(236,231,221,.6);}
  .tokutei .ph{color:var(--brass-soft);}
  .agency-note{margin-top:20px;color:rgba(236,231,221,.7);}
  .copy{margin-top:40px;font-size:.72rem;letter-spacing:.1em;color:rgba(236,231,221,.4);}
  @media(max-width:760px){.foot-top{grid-template-columns:1fr;gap:32px;}}

  /* ---------- mobile sticky CTA bar ---------- */
  .mobile-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:rgba(33,28,23,.82);backdrop-filter:blur(12px);
    border-top:1px solid var(--rule-light);
    transform:translateY(110%);transition:transform .35s ease;
  }
  .mobile-cta.show{transform:none;}
  .mobile-cta .btn{width:100%;justify-content:center;height:52px;font-size:.92rem;}
  @media(max-width:820px){.mobile-cta{display:block;}
    footer{padding-bottom:110px;}
  }

  /* ---------- 写真の拡大表示（ライトボックス） ---------- */
  .shot-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;
    position:relative;font:inherit;color:inherit;}
  .shots{position:absolute;right:10px;bottom:10px;background:rgba(33,28,23,.72);
    color:var(--paper);font-size:.66rem;letter-spacing:.08em;padding:3px 8px;border-radius:2px;
    backdrop-filter:blur(4px);pointer-events:none;}
  .card .shot-open .photo{width:100%;}
  .shot-open:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

  .lb{position:fixed;inset:0;z-index:100;display:none;background:rgba(15,12,10,.94);
    backdrop-filter:blur(6px);}
  .lb[open],.lb.on{display:grid;grid-template-rows:auto 1fr auto;}
  .lb-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;
    padding:16px 20px;color:var(--paper);}
  .lb-title{font-family:"Shippori Mincho",serif;font-size:1rem;letter-spacing:.06em;}
  .lb-count{font-size:.78rem;color:rgba(236,231,221,.6);font-variant-numeric:tabular-nums;}
  .lb-close{background:none;border:1px solid var(--rule-light);color:var(--paper);
    width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;flex:none;}
  .lb-close:hover{background:rgba(236,231,221,.12);}
  .lb-stage{position:relative;display:grid;place-items:center;padding:0 16px;min-height:0;overflow:hidden;}
  /* グリッド行の高さに確実に収める（max-height:100% だけでは効かずはみ出す） */
  .lb-stage img{width:100%;height:100%;min-height:0;object-fit:contain;border-radius:2px;}
  .lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(33,28,23,.6);
    border:1px solid var(--rule-light);color:var(--paper);width:46px;height:46px;border-radius:50%;
    cursor:pointer;font-size:1.2rem;line-height:1;display:grid;place-items:center;}
  .lb-nav:hover{background:rgba(33,28,23,.9);}
  .lb-prev{left:12px;} .lb-next{right:12px;}
  .lb-thumbs{display:flex;gap:8px;padding:14px 20px 20px;overflow-x:auto;justify-content:center;}
  .lb-thumbs button{flex:none;width:56px;height:56px;padding:0;border:1px solid transparent;
    background:none;cursor:pointer;border-radius:2px;overflow:hidden;opacity:.5;transition:.2s;}
  .lb-thumbs button.on{opacity:1;border-color:var(--brass);}
  .lb-thumbs img{width:100%;height:100%;object-fit:cover;display:block;}
  body.lb-lock{overflow:hidden;}
  @media(max-width:600px){
    .lb-nav{width:40px;height:40px;} .lb-thumbs button{width:44px;height:44px;}
    .lb-title{font-size:.86rem;}
  }

  /* reveal — JSが動く環境（.js）でのみ初期状態を隠す。JS無しなら最初から表示 */
  .js .rev{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
  .js .rev.in{opacity:1;transform:none;}
  @media(prefers-reduced-motion:reduce){
    .js .rev{opacity:1;transform:none;transition:none;}
    .mobile-cta{transition:none;}
    html{scroll-behavior:auto;}
  }
  a:focus-visible,summary:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}