@font-face{
  font-family:"Playfair Display";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("assets/fonts/playfair-display-latin-500.woff2") format("woff2");
}
@font-face{
  font-family:"Playfair Display";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("assets/fonts/playfair-display-latin-600.woff2") format("woff2");
}

:root{
  --u: 0.08333333vw;
  --ink:#f6efe4;
  --ink-dim:rgba(246,239,228,.75);
  --accent:#c0553f;
  --font-display:"Playfair Display","PingFang TC","PingFang SC",serif;
  --glass:rgba(31,24,17,.45);
  --glass-line:rgba(246,239,228,.28);
  --e:cubic-bezier(.16,1,.3,1);

  /* 正文字級倍率：1.10 = 默認放大 10%；右下「字級」按鈕切換大字模式時為 1.30 */
  --fs-text: 1.10;
}

/* 大字模式（適老化）：只放大正文與小字，標題/Hero 不動 */
html.fsz-xl{ --fs-text: 1.30; }

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background:
    radial-gradient(90% 55% at 78% 6%, rgba(226,190,130,.07), transparent 60%),
    radial-gradient(70% 50% at 6% 94%, rgba(192,85,63,.055), transparent 62%),
    #16120d;
  color:var(--ink);
  overflow-x:hidden;
  font-family:"Helvetica Neue","HelveticaNeue",Helvetica,"Inter Tight","PingFang TC","PingFang SC","Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.01em;
}

.u-sr{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;
}

.hero{
  position:relative;
  height:100svh;
  min-height:560px;
  overflow:hidden;
  isolation:isolate;
}

.hero__bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  pointer-events:none; user-select:none; -webkit-user-drag:none;
  animation:plate-in 2s var(--e) both;
  z-index:1;
}

.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 26%),
    linear-gradient(to top,    rgba(0,0,0,.42) 0%, rgba(0,0,0,0) 36%),
    radial-gradient(120% 90% at 50% 45%, rgba(0,0,0,0) 40%, rgba(0,0,0,.34) 100%);
  pointer-events:none;
  animation:fade-in 1.4s ease both;
  z-index:2;
}

.hero__title{
  position:absolute;
  left:calc(24 * var(--u));
  top:calc(156 / 675 * 100%);
  margin:0;
  font-family:var(--font-display);
  font-size:calc(108 * var(--u));
  font-weight:500;
  line-height:.98;
  letter-spacing:-.015em;
  white-space:nowrap;
  pointer-events:none;
  z-index:3;
  text-shadow:0 calc(2 * var(--u)) calc(18 * var(--u)) rgba(0,0,0,.18);
}

.line{
  display:block;
  clip-path:inset(-30% -8% 100% -8%);
  animation:line-open 1.15s var(--e) var(--dl,0s) both;
}
.line__in{
  display:block;
  animation:line-rise 1.15s var(--e) var(--dl,0s) both;
}

.nav{
  position:absolute;
  top:calc(34 / 675 * 100%);
  right:calc(24 * var(--u));
  z-index:5;
}
.nav__links{
  display:flex;
  align-items:center;
  gap:calc(13 * var(--u));
}

.pill{
  display:inline-flex;
  align-items:center; justify-content:center;
  height:calc(30 * var(--u));
  padding:0 calc(12 * var(--u));
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(calc(9 * var(--u))) saturate(.9);
  -webkit-backdrop-filter:blur(calc(9 * var(--u))) saturate(.9);
  font-size:calc(13.1 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:-.005em;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
  animation:pill-in .85s var(--e) var(--pd,0s) both;
  transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.pill:hover{
  background:rgba(0,0,0,.40);
  border-color:rgba(255,255,255,.24);
}
.pill--phone{
  background:#f3f0ea;
  border-color:rgba(255,255,255,.65);
  color:#16140f;
  padding:0 calc(18 * var(--u));
  letter-spacing:-.01em;
}
.pill--phone:hover{
  background:#fff;
  border-color:#fff;
  color:#16140f;
}

.burger{ display:none; }

.intro{
  position:absolute;
  left:calc(24 * var(--u));
  top:calc(428 / 675 * 100%);
  width:calc(248 * var(--u));
  z-index:5;
}
.intro__head{
  margin:0;
  font-size:calc(20.0 * var(--u));
  font-weight:500;
  line-height:1.18;
  letter-spacing:-.012em;
}
/* 两组英文观感之间留出呼吸，对应文案空行 */
.intro__head .line:nth-child(3){ margin-top:calc(12 * var(--u)); }
.intro__body{
  position:relative;
  margin-top:calc(16 * var(--u));
  animation:soft-up 1.1s var(--e) .78s both;
}
.intro__body p{
  margin:0;
  font-size:calc(14.0 * var(--u) * var(--fs-text));
  line-height:1.85;
  letter-spacing:.015em;
  color:var(--ink-dim);
  text-align:left;
}
.intro__year{
  position:absolute;
  right:calc(0 * var(--u));
  bottom:calc(0 * var(--u));
  font-size:calc(13.1 * var(--u) * var(--fs-text));
  font-style:italic;
  letter-spacing:.05em;
  color:var(--ink-dim);
  white-space:nowrap;
}

/* ---- hero skewed carousel ---- */
.hcar{
  position:absolute;
  left:calc(400 * var(--u));
  top:calc(178 / 675 * 100%);
  width:calc(780 * var(--u));
  height:calc(440 / 675 * 100%);
  perspective:calc(1300 * var(--u));
  z-index:5;
  touch-action:pan-y;
  user-select:none; -webkit-user-select:none;
  animation:soft-up 1.1s var(--e) .9s both;
}
.hcar__stage{ position:absolute; inset:0; transform-style:preserve-3d; }
.hcard{
  --cw:calc(212 * var(--u));
  --ch:calc(292 * var(--u));
  position:absolute;
  top:50%; left:50%;
  width:var(--cw); height:var(--ch);
  margin-left:calc(var(--cw) / -2);
  margin-top:calc(var(--ch) / -2);
  display:flex; flex-direction:column; justify-content:center;
  padding:calc(18 * var(--u));
  border-radius:calc(17 * var(--u));
  border:1px solid rgba(255,255,255,.20);
  background:linear-gradient(165deg, rgba(31,33,34,.94), rgba(14,16,17,.97));
  backdrop-filter:blur(calc(11 * var(--u))) saturate(.9);
  -webkit-backdrop-filter:blur(calc(11 * var(--u))) saturate(.9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 calc(24 * var(--u)) calc(52 * var(--u)) rgba(0,0,0,.5);
  overflow:hidden;
  will-change:transform,opacity;
  transition:transform .85s var(--e), opacity .85s var(--e), box-shadow .85s var(--e);
  cursor:pointer;
}
.hcard::after{
  content:""; position:absolute; inset:0;
  background:rgba(22,18,13,.35);
  transition:opacity .85s var(--e);
  pointer-events:none;
}
.hcard__no{
  position:absolute; top:calc(15 * var(--u)); left:calc(17 * var(--u));
  font-size:calc(7.3 * var(--u) * var(--fs-text));
  letter-spacing:.26em;
  color:rgba(255,255,255,.5);
}
.hcard__en{
  margin:0 0 calc(6 * var(--u));
  font-size:calc(7.3 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.03em;
  color:rgba(255,255,255,.48);
}
.hcard__zh{
  margin:0 0 calc(8 * var(--u));
  font-size:calc(21 * var(--u));
  font-weight:500;
  line-height:1.2;
  letter-spacing:.01em;
  color:#fff;
}
.hcard__d{
  margin:0;
  font-size:calc(11.1 * var(--u) * var(--fs-text));
  line-height:1.6;
  color:var(--ink-dim);
  opacity:0; transform:translateY(calc(8 * var(--u)));
  transition:opacity .7s var(--e) .12s, transform .7s var(--e) .12s;
}
.hcard__more{
  display:inline-block;
  align-self:flex-start;
  margin-top:calc(10 * var(--u));
  font-size:calc(8.8 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.02em;
  color:#fff;
  opacity:0; transform:translateY(calc(6 * var(--u)));
  transition:opacity .7s var(--e) .18s, transform .7s var(--e) .18s;
  pointer-events:none;
}
.hcard__more:hover{ text-decoration:underline; text-underline-offset:3px; }
.hcard.is-active{ box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 calc(24 * var(--u)) calc(52 * var(--u)) rgba(0,0,0,.42); }
.hcard.is-active::after{ opacity:0; }
.hcard.is-active .hcard__d,
.hcard.is-active .hcard__more{ opacity:1; transform:none; }
.hcard.is-active .hcard__more{ pointer-events:auto; }
.hcar__hint{
  position:absolute;
  left:50%; bottom:calc(2 * var(--u));
  transform:translateX(-50%);
  margin:0;
  font-size:calc(8.0 * var(--u) * var(--fs-text));
  letter-spacing:.28em;
  color:rgba(255,255,255,.34);
  white-space:nowrap;
}
@media (prefers-reduced-motion:reduce){
  .hcar{ animation:none; }
  .hcard{ transition:none; }
}

/* --- 02 TREATMENTS : in-flow skewed carousel variant --- */
.tcar{
  position:relative;
  left:auto; top:auto;
  width:100%;
  height:auto;
  z-index:auto;
  margin:calc(-6 * var(--u)) 0 0;
  perspective:calc(1500 * var(--u));
  overflow:hidden;
  animation:none;
}
.tcar .hcar__stage{
  position:relative;
  inset:auto;
  height:calc(300 * var(--u));
}
.tcar .hcard{
  --cw:calc(300 * var(--u));
  --ch:calc(276 * var(--u));
}
.tcar .hcard__no{ font-size:calc(7.8 * var(--u) * var(--fs-text)); }
.tcar .hcard__en{ font-size:calc(8.0 * var(--u) * var(--fs-text)); }
.tcar .hcard__zh{ font-size:calc(24 * var(--u)); }
.tcar .hcard__d{ font-size:calc(12.3 * var(--u) * var(--fs-text)); }
.tcar .hcar__hint{
  position:static;
  transform:none;
  margin:calc(18 * var(--u)) 0 0;
  text-align:center;
}
@media (max-width:1000px){
  .tcar .hcar__stage{ height:320px; }
  .tcar .hcard{ --cw:min(300px, 78vw); --ch:296px; }
  .tcar .hcard__no{ font-size:calc(8.5px * var(--fs-text)); }
  .tcar .hcard__en{ font-size:calc(8.5px * var(--fs-text)); }
  .tcar .hcard__zh{ font-size:22px; }
  .tcar .hcard__d{ font-size:calc(13px * var(--fs-text)); }
  .tcar .hcar__hint{ margin-top:20px; }
}

.scroll{
  position:absolute;
  right:calc(26 * var(--u));
  bottom:calc(22 / 675 * 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:calc(7 * var(--u));
  animation:soft-up 1.1s var(--e) 1.0s both;
  z-index:5;
}
.scroll__label{
  font-size:calc(11.9 * var(--u) * var(--fs-text));
  letter-spacing:-.005em;
  color:var(--ink-dim);
}
.scroll__btn{
  width:calc(66 * var(--u)); height:calc(66 * var(--u));
  display:grid; place-items:center;
  padding:0;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.60);
  background:transparent;
  cursor:pointer;
  transition:border-color .25s ease, transform .25s ease;
}
.scroll__btn:hover{
  border-color:#fff;
  transform:translateY(3px);
}
.scroll__disc{
  width:calc(48 * var(--u)); height:calc(48 * var(--u));
  display:grid; place-items:center;
  border-radius:50%;
  background:#fff;
}
.scroll__disc svg{
  width:calc(19 * var(--u)); height:calc(19 * var(--u));
  fill:none; stroke:#141414; stroke-width:1.7;
  stroke-linecap:square; stroke-linejoin:miter;
}

@keyframes plate-in { from{ transform:scale(1.06); } to{ transform:none; } }
@keyframes fade-in  { from{ opacity:0; } to{ opacity:1; } }
@keyframes line-open{ from{ clip-path:inset(-30% -8% 100% -8%); }
                      to  { clip-path:inset(-30% -8% -30% -8%); } }
@keyframes line-rise{ from{ transform:translateY(.6em); opacity:0; }
                      40% { opacity:1; }
                      to  { transform:none; opacity:1; } }
@keyframes pill-in  { from{ opacity:0; transform:translateY(-9px); } to{ opacity:1; transform:none; } }
@keyframes soft-up  { from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes card-in  { from{ opacity:0; transform:translateY(16px) scale(.97); } to{ opacity:1; transform:none; } }
@keyframes dot-in   { from{ opacity:0; transform:scale(.2); } to{ opacity:1; transform:none; } }
@keyframes line-draw{ from{ transform:scaleY(0); } to{ transform:none; } }

.hero__title .line:nth-child(1){ --dl:.10s; }
.hero__title .line:nth-child(2){ --dl:.22s; }
.intro__head .line:nth-child(1){ --dl:.46s; }
.intro__head .line:nth-child(2){ --dl:.54s; }
.intro__head .line:nth-child(3){ --dl:.62s; }
.intro__head .line:nth-child(4){ --dl:.70s; }
.nav__links .pill:nth-child(1){ --pd:.30s; }
.nav__links .pill:nth-child(2){ --pd:.36s; }
.nav__links .pill:nth-child(3){ --pd:.42s; }
.nav__links .pill:nth-child(4){ --pd:.48s; }
.nav__links .pill:nth-child(5){ --pd:.54s; }

:focus-visible{
  outline:2px solid #fff;
  outline-offset:3px;
  border-radius:4px;
}

@media (max-width:1000px){
  :root{ --u:1px; }

  .hero{
    height:auto;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:0 20px calc(28px + env(safe-area-inset-bottom));
  }
  .hero__bg{ object-position:50% 46%; }

  .hero__title{
    position:static;
    margin-top:calc(clamp(84px, 19svh, 150px) + env(safe-area-inset-top));
    font-size:clamp(46px, 15.2vw, 96px);
    line-height:.9;
    letter-spacing:-.045em;
  }
  .hero__title .line:nth-child(1){ margin-top:0; }

  .nav{
    top:calc(16px + env(safe-area-inset-top));
    right:16px;
    z-index:40;
  }

  .burger{
    display:grid;
    place-items:center;
    width:48px; height:38px;
    padding:0;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(0,0,0,.28);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    position:relative;
    z-index:31;
    cursor:pointer;
    animation:pill-in .85s var(--e) .3s both;
  }
  .burger__box{
    display:block;
    position:relative;
    width:17px; height:9px;
  }
  .burger__box span{
    position:absolute;
    left:0;
    width:100%; height:1.5px;
    border-radius:2px;
    background:#fff;
    transition:transform .38s var(--e), opacity .2s ease;
  }
  .burger__box span:first-child{ top:0; }
  .burger__box span:last-child{ bottom:0; }
  body.menu-open .burger{ background:rgba(0,0,0,.5); }
  body.menu-open .burger__box span:first-child{ transform:translateY(3.75px) rotate(45deg); }
  body.menu-open .burger__box span:last-child{ transform:translateY(-3.75px) rotate(-45deg); }

  .nav__links{
    position:fixed;
    inset:0;
    z-index:30;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:16px;
    margin:0;
    padding:0 28px calc(40px + env(safe-area-inset-bottom));
    background:rgba(10,11,11,.72);
    backdrop-filter:blur(22px) saturate(.9);
    -webkit-backdrop-filter:blur(22px) saturate(.9);
    opacity:0;
    visibility:hidden;
    transition:opacity .4s ease, visibility .4s;
  }
  body.menu-open .nav__links{ opacity:1; visibility:visible; }

  .nav__links .pill{
    height:auto;
    padding:0;
    border:0;
    background:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    font-size:clamp(30px, 8.6vw, 46px);
    font-weight:500;
    letter-spacing:-.035em;
    line-height:1.1;
    animation:none;
    opacity:0;
    transform:translateY(18px);
    transition:opacity .5s var(--e), transform .5s var(--e);
  }
  body.menu-open .nav__links .pill{
    opacity:1;
    transform:none;
  }
  .nav__links .pill:nth-child(1){ transition-delay:.10s; }
  .nav__links .pill:nth-child(2){ transition-delay:.16s; }
  .nav__links .pill:nth-child(3){ transition-delay:.22s; }
  .nav__links .pill:nth-child(4){ transition-delay:.28s; }
  .nav__links .pill:nth-child(5){ transition-delay:.36s; }
  .nav__links .pill--phone{
    margin-top:12px;
    max-width:100%;
    height:auto;
    min-height:44px;
    padding:calc(10px * var(--fs-text)) 20px;
    border-radius:999px;
    background:#f3f0ea;
    color:#16140f;
    font-size:calc(15px * var(--fs-text));
    line-height:1.35;
    letter-spacing:-.01em;
    white-space:normal;
    text-align:center;
    opacity:0;
    transform:none;
    transition:opacity .5s var(--e);
  }
  body.menu-open .nav__links .pill--phone{ opacity:1; }

  .hcar{
    position:static;
    margin-top:24px;
    width:100%;
    height:430px;
    perspective:1100px;
    animation:none;
  }
  .hcard{
    --cw:min(252px, 66vw);
    --ch:340px;
    padding:15px;
    border-radius:17px;
  }
  .hcard__no{ top:13px; left:14px; font-size:calc(8px * var(--fs-text)); }
  .hcard__en{ font-size:calc(8px * var(--fs-text)); margin-bottom:5px; }
  .hcard__zh{ font-size:19px; margin-bottom:7px; }
  .hcard__d{ font-size:calc(12.5px * var(--fs-text)); line-height:1.65; }
  .hcard__more{ font-size:calc(12.5px * var(--fs-text)); margin-top:9px; }
  .hcar__hint{ font-size:calc(9px * var(--fs-text)); bottom:-4px; }

  .intro{
    position:static;
    margin-top:26px;
    width:100%;
  }
  .intro__head{ font-size:clamp(19px, 5.4vw, 26px); }
  .intro__body{ margin-top:14px; }
  .intro__body p{ font-size:calc(14px * var(--fs-text)); max-width:400px; }
  .intro__year{ right:auto; left:min(216px, 66%); }

  .scroll{ display:none; }
}

@media (max-width:1000px) and (max-height:640px){
  .hero{ min-height:560px; }
  .hero__title{ margin-top:calc(56px + env(safe-area-inset-top)); }
}

@media (max-width:380px){
  .intro__body p{ font-size:calc(13px * var(--fs-text)); }
  .card__text p{ font-size:calc(12px * var(--fs-text)); }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-delay:0ms !important;
    transition-duration:.01ms !important;
  }
  .line{ clip-path:none; }
}

/* ============================================================
   Full-page sections (beneath the hero)
   Design language: hairline rules, generous white space,
   editorial directory rows. No cards, no icons, one accent rule.
   ============================================================ */

html{ scroll-behavior:smooth; }

.section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  column-gap:calc(90 * var(--u));
  padding:calc(150 * var(--u)) calc(72 * var(--u));
  border-top:1px solid rgba(255,255,255,.09);
  scroll-margin-top:0;
}

.sect__lead{ align-self:start; }
.sect__no{
  display:block;
  margin:calc(2 * var(--u)) 0 calc(44 * var(--u));
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  font-weight:600;
  letter-spacing:.32em;
  color:var(--accent);
}
.sect__title{
  margin:0;
  font-family:var(--font-display);
  font-size:calc(50 * var(--u));
  font-weight:500;
  line-height:1.14;
  letter-spacing:-.01em;
}
.sect__note{
  margin:calc(30 * var(--u)) 0 0;
  max-width:calc(320 * var(--u));
  font-size:calc(14.0 * var(--u) * var(--fs-text));
  line-height:1.85;
  letter-spacing:.01em;
  color:var(--ink-dim);
}
.sect__body{ min-width:0; }

/* 品牌故事 · 分層橫幅 */
.house-band{
  margin:calc(52 * var(--u)) auto 0;
  width:88%;
}
.house-band img{
  width:100%;
  display:block;
  border-radius:calc(4 * var(--u));
}
.house-band__cap{
  margin:calc(16 * var(--u)) 0 0;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(16 * var(--u));
  font-size:calc(11.9 * var(--u) * var(--fs-text));
  letter-spacing:.18em;
  color:rgba(246,239,228,.42);
}
@media (max-width:1000px){
  .house-band{ margin:36px 0 0; }
  .house-band__cap{ font-size:calc(9px * var(--fs-text)); letter-spacing:.14em; flex-wrap:wrap; row-gap:4px; }
}

/* per-section imagery backdrop */
.sect__bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  pointer-events:none; user-select:none; -webkit-user-drag:none;
  animation:plate-in 1.6s var(--e) both;
  z-index:1;
}
.sect__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(10,11,11,.62) 0%, rgba(10,11,11,.30) 34%),
    linear-gradient(to top,    rgba(10,11,11,.74) 0%, rgba(10,11,11,.26) 46%),
    radial-gradient(120% 90% at 50% 42%, rgba(10,11,11,0) 36%, rgba(10,11,11,.52) 100%);
  pointer-events:none;
  animation:fade-in 1.4s ease both;
  z-index:2;
}
.sect__lead, .sect__body{ position:relative; z-index:3; }

/* reveal on scroll (progressive enhancement, .js-gated) */
html.js [data-r]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 1s var(--e), transform 1s var(--e);
}
html.js [data-r].in{ opacity:1; transform:none; }

/* --- 01 METHOD : three editorial rows --- */
.m-row{
  display:grid;
  grid-template-columns:calc(46 * var(--u)) calc(200 * var(--u)) minmax(0,1fr);
  gap:calc(28 * var(--u));
  align-items:baseline;
  padding:calc(30 * var(--u)) 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.m-row:last-child{ border-bottom:1px solid rgba(255,255,255,.10); }
.m-no{
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.08em;
  color:rgba(255,255,255,.42);
}
.m-t{
  margin:0;
  font-size:calc(19 * var(--u));
  font-weight:500;
  letter-spacing:.01em;
  line-height:1.3;
}
.m-d{
  margin:0;
  font-size:calc(14.5 * var(--u) * var(--fs-text));
  line-height:1.8;
  letter-spacing:.01em;
  color:var(--ink-dim);
}

/* --- 02 TREATMENTS : directory rows --- */
.dir__row{
  display:grid;
  grid-template-columns:calc(46 * var(--u)) minmax(0,1fr);
  gap:calc(28 * var(--u));
  padding:calc(34 * var(--u)) 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.dir__row:last-child{ border-bottom:1px solid rgba(255,255,255,.10); }
.dir__no{
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.08em;
  color:rgba(255,255,255,.42);
  padding-top:calc(6 * var(--u));
}
.dir__main h3{
  margin:0;
  font-size:calc(23 * var(--u));
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.005em;
}
.dir__meta{
  margin:calc(9 * var(--u)) 0 0;
  font-size:calc(12.9 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.04em;
  color:rgba(255,255,255,.55);
}
.dir__desc{
  margin:calc(13 * var(--u)) 0 0;
  max-width:calc(460 * var(--u));
  font-size:calc(14.5 * var(--u) * var(--fs-text));
  line-height:1.8;
  letter-spacing:.01em;
  color:var(--ink-dim);
}

/* product subgroups inside row 03 */
.prod{
  margin-top:calc(20 * var(--u));
  padding-top:calc(18 * var(--u));
  border-top:1px solid rgba(255,255,255,.08);
}
.prod__line{
  margin:0 0 calc(8 * var(--u));
  font-size:calc(13.8 * var(--u) * var(--fs-text));
  line-height:1.9;
  letter-spacing:.02em;
  color:rgba(255,255,255,.72);
}
.prod__line b{
  font-weight:500;
  color:rgba(255,255,255,.42);
  margin-right:calc(4 * var(--u));
  letter-spacing:.06em;
}
.prod__line--pending{ color:rgba(255,255,255,.42); }
.prod__line--pending b{ color:rgba(255,255,255,.5); }

/* --- 03 AUTHENTICITY --- */
.brandline{
  margin:calc(10 * var(--u)) 0 0;
  font-size:calc(30 * var(--u));
  font-weight:500;
  line-height:1.5;
  letter-spacing:-.01em;
  color:var(--ink);
}
.brandline sup{
  font-size:.52em;
  font-weight:400;
  letter-spacing:0;
  color:rgba(255,255,255,.55);
  margin-left:.06em;
}
.brandline span{ white-space:nowrap; }
.brandnote{
  margin:calc(34 * var(--u)) 0 0;
  font-size:calc(14.5 * var(--u) * var(--fs-text));
  line-height:1.8;
  letter-spacing:.01em;
  color:var(--ink-dim);
}

/* --- 04 BOOK --- */
.book{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,calc(330 * var(--u)));
  column-gap:calc(96 * var(--u));
  align-items:start;
}
.form{ display:block; }
.f{ display:block; margin:0 0 calc(30 * var(--u)); }
.f__label{
  display:block;
  margin-bottom:calc(10 * var(--u));
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.14em;
  color:rgba(255,255,255,.5);
}
.f__label i{ font-style:normal; font-weight:400; letter-spacing:.04em; color:rgba(255,255,255,.3); }
.f input,
.f textarea{
  display:block;
  width:100%;
  padding:calc(11 * var(--u)) 0;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.22);
  border-radius:0;
  background:transparent;
  color:var(--ink);
  font-family:inherit;
  font-size:calc(16.6 * var(--u) * var(--fs-text));
  letter-spacing:.01em;
  resize:none;
  outline:none;
  transition:border-color .3s ease;
}
.f input::placeholder,
.f textarea::placeholder{ color:rgba(255,255,255,.28); }
.f input:focus,
.f textarea:focus{ border-bottom-color:rgba(255,255,255,.9); }
.f__submit{
  display:inline-flex;
  align-items:center; justify-content:center;
  margin-top:calc(12 * var(--u));
  height:calc(46 * var(--u));
  padding:0 calc(28 * var(--u));
  border:0;
  border-radius:999px;
  background:#f3f0ea;
  color:#16140f;
  font-family:inherit;
  font-size:calc(14.9 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .25s ease, color .25s ease, opacity .25s ease;
}
.f__submit:hover{ background:#fff; }
.f__submit[disabled]{ opacity:.45; cursor:default; }
.f__hint{
  margin:calc(18 * var(--u)) 0 0;
  font-size:calc(11.9 * var(--u) * var(--fs-text));
  line-height:1.7;
  letter-spacing:.02em;
  color:rgba(255,255,255,.35);
}

.contact{ padding-top:calc(4 * var(--u)); }
.c-head{
  margin:0 0 calc(8 * var(--u));
  font-size:calc(14.3 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.2em;
  color:rgba(255,255,255,.6);
}
.c-line{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:calc(20 * var(--u));
  padding:calc(17 * var(--u)) 0;
  border-top:1px solid rgba(255,255,255,.09);
  font-size:calc(15.4 * var(--u) * var(--fs-text));
  letter-spacing:.01em;
}
.c-line span:first-child{
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.12em;
  color:rgba(255,255,255,.45);
  white-space:nowrap;
}
.c-line a{ color:var(--ink); text-decoration:none; transition:opacity .25s ease; }
.c-line a:hover{ opacity:.7; }
.c-val{ text-align:right; }
.c-val--ph{ color:rgba(255,255,255,.35); font-style:italic; }

/* --- footer --- */
.foot{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(20 * var(--u));
  flex-wrap:wrap;
  padding:calc(44 * var(--u)) calc(72 * var(--u));
  border-top:1px solid rgba(255,255,255,.09);
}
.foot p{
  margin:0;
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  line-height:1.8;
  letter-spacing:.02em;
  color:rgba(255,255,255,.45);
}
.foot i{ font-style:normal; color:rgba(255,255,255,.3); }

/* --- flowing brand ribbon (footer marquee) --- */
.mara{
  position:relative;
  width:100%;
  padding:calc(34 * var(--u)) 0 calc(30 * var(--u));
  overflow:hidden;
  isolation:isolate;
}
.mara__strip{
  display:block;
  transform:rotate(-1.4deg);
  background:#f4f1ec;            /* warm off-white, matches cinematic palette */
  color:#0d0f10;
  white-space:nowrap;
  will-change:transform;
}
.mara__track{
  display:inline-flex;
  align-items:center;
  gap:0;
  animation:mara-flow 30s linear infinite;
  will-change:transform;
}
.mara__group{
  display:inline-flex;
  align-items:center;
  flex:none;
}
.mara__it{
  display:inline-flex;
  align-items:baseline;
  padding:calc(14 * var(--u)) calc(34 * var(--u));
  font-weight:700;
  font-size:calc(20.0 * var(--u) * var(--fs-text));
  letter-spacing:.16em;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
}
.mara__ast{
  display:inline-block;
  padding:0 calc(34 * var(--u));
  font-size:calc(16.6 * var(--u) * var(--fs-text));
  line-height:1;
  transform:translateY(-.08em);
  color:rgba(13,15,16,.72);
}
.mara--edge::before,
.mara--edge::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:calc(90 * var(--u));
  z-index:2;
  pointer-events:none;
}
.mara--edge::before{ left:0;  background:linear-gradient(to right, #16120d, rgba(22,18,13,0)); }
.mara--edge::after { right:0; background:linear-gradient(to left,  #16120d, rgba(22,18,13,0)); }
@keyframes mara-flow{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}

/* ============ responsive ============ */
@media (max-width:1000px){
  .section{
    display:block;
    padding:calc(90px + env(safe-area-inset-top)) 22px calc(96px + env(safe-area-inset-bottom));
  }
  .sect__lead{ margin-bottom:46px; }
  .sect__no{ margin-bottom:26px; }
  .sect__title{ font-size:clamp(30px, 8.2vw, 44px); }
  .sect__note{ max-width:none; }

  .m-row{
    grid-template-columns:34px minmax(0,1fr);
    row-gap:8px;
    column-gap:14px;
    padding:22px 0;
  }
  .m-no{ grid-row:1; }
  .m-t{ grid-row:1; grid-column:2; }
  .m-d{ grid-row:2; grid-column:2; }

  .dir__row{
    grid-template-columns:34px minmax(0,1fr);
    column-gap:14px;
    padding:26px 0;
  }
  .dir__main h3{ font-size:22px; }
  .prod__line{ font-size:calc(14.5px * var(--fs-text)); }

  .brandline{ font-size:clamp(24px, 6vw, 32px); }

  .book{ grid-template-columns:minmax(0,1fr); row-gap:54px; }
  .f input, .f textarea{ font-size:calc(18px * var(--fs-text)); }
  .foot{ padding:36px 22px calc(30px + env(safe-area-inset-bottom)); }

  .mara{ padding:26px 0 24px; }
  .mara__strip{ transform:rotate(-1.8deg); }
  .mara__it{ padding:12px 24px; font-size:calc(18px * var(--fs-text)); letter-spacing:.12em; }
  .mara__ast{ padding:0 24px; font-size:calc(14px * var(--fs-text)); }
  .mara--edge::before,
  .mara--edge::after{ width:44px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .mara__track{ animation:none; }
}

/* ============================================================
   04 · VOICES  —  patient stories (quote + roster)
   Editorial reference: large pull-quote on the left, a roster
   of people on the right whose selection drives the quote.
   No imagery backdrop — pure typography, keeps the words in
   focus. Same --u token language as the rest of the site.
   ============================================================ */
#voices{ display:block; }
#voices .sect__lead{ max-width:none; margin-bottom:calc(64 * var(--u)); }
#voices .sect__note{ max-width:calc(480 * var(--u)); }
.rvw__defs{ position:absolute; width:0; height:0; overflow:hidden; }
.rvw{
  display:flex;
  flex-direction:column;
  gap:calc(30 * var(--u));
  max-width:calc(700 * var(--u));
}
.rvw__row{
  display:flex;
  align-items:flex-start;
  gap:calc(16 * var(--u));
}
.rvw__ava{
  width:calc(44 * var(--u));
  height:calc(44 * var(--u));
  flex:none;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:calc(14.9 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.04em;
  color:#16140f;
}
.rvw__ava--a{ background:linear-gradient(135deg,#f3f0ea,#c9c4b8); }
.rvw__ava--b{ background:linear-gradient(135deg,#e9e2d4,#b7b0a2); }
.rvw__ava--c{ background:linear-gradient(135deg,#f5ebe0,#cdbb9f); }
.rvw__ava--d{ background:linear-gradient(135deg,#eee6da,#bdb4a4); }
.rvw__ava--e{ background:linear-gradient(135deg,#f1ece2,#c4bcaa); }
.rvw__col{ min-width:0; flex:1; }
.rvw__meta{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:calc(3 * var(--u)) calc(12 * var(--u));
  margin-bottom:calc(10 * var(--u));
}
.rvw__name{
  font-size:calc(16.6 * var(--u) * var(--fs-text));
  font-weight:500;
  line-height:1.3;
  letter-spacing:.01em;
  color:var(--ink);
}
.rvw__sub{
  font-style:normal;
  font-size:calc(13.1 * var(--u) * var(--fs-text));
  line-height:1.4;
  letter-spacing:.02em;
  color:rgba(255,255,255,.42);
}
.rvw__stars{
  margin-left:auto;
  flex:none;
  width:calc(90 * var(--u));
  height:calc(14 * var(--u));
  fill:#d2ad72;
}
.rvw__bub{
  position:relative;
  border:1px solid rgba(255,255,255,.1);
  border-radius:calc(5 * var(--u)) calc(20 * var(--u)) calc(20 * var(--u)) calc(20 * var(--u));
  background:rgba(255,255,255,.028);
  padding:calc(17 * var(--u)) calc(21 * var(--u));
}
.rvw__txt{
  margin:0;
  font-size:calc(15.0 * var(--u) * var(--fs-text));
  line-height:1.92;
  letter-spacing:.012em;
  color:rgba(255,255,255,.8);
}
.rvw__bub.is-clamp:not(.is-open) .rvw__txt{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.rvw__more{
  margin-top:calc(11 * var(--u));
  padding:0 0 calc(2 * var(--u));
  border:0;
  border-bottom:1px solid rgba(255,255,255,.28);
  background:none;
  font-family:inherit;
  font-size:calc(13.7 * var(--u) * var(--fs-text));
  letter-spacing:.02em;
  color:rgba(255,255,255,.66);
  cursor:pointer;
  transition:color .3s ease, border-color .3s ease;
}
.rvw__more:hover{ color:var(--ink); border-color:rgba(255,255,255,.55); }
.rvw__more[hidden]{ display:none; }
.rvw__src{
  margin:calc(10 * var(--u)) 0 0;
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.03em;
  color:rgba(255,255,255,.3);
}
@media (max-width:1000px){
  .rvw{ gap:26px; max-width:none; }
  .rvw__row{ gap:13px; }
  .rvw__ava{ width:38px; height:38px; font-size:calc(13px * var(--fs-text)); }
  .rvw__meta{ gap:3px 10px; margin-bottom:9px; }
  .rvw__stars{ width:75px; height:12px; margin-left:0; }
  .rvw__bub{ border-radius:4px 16px 16px 16px; padding:14px 16px; }
  .rvw__txt{ font-size:calc(14.5px * var(--fs-text)); line-height:1.88; }
  .rvw__more{ margin-top:9px; font-size:calc(13.5px * var(--fs-text)); }
  .rvw__src{ margin-top:9px; }
}

/* ============================================================
   06 · GLOBE — 我們的位置
   ============================================================ */
#globe .sect__body{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:calc(34 * var(--u));
}
.globe__stage{
  position:relative;
  width:100%;
  max-width:calc(620 * var(--u));
  aspect-ratio:1/1;
}
.globe__stage canvas{
  position:absolute; inset:0;
  width:100%; height:100%;
  display:block;
  cursor:grab;
  touch-action:pan-y;
}
.globe__stage canvas:active{ cursor:grabbing; }
.globe__meta{
  width:100%;
  max-width:calc(620 * var(--u));
}
.globe__line{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(20 * var(--u));
  padding:calc(17 * var(--u)) calc(2 * var(--u));
  border-top:1px solid rgba(255,255,255,.12);
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.24em;
  color:rgba(255,255,255,.5);
}
.globe__line:last-child{
  border-bottom:1px solid rgba(255,255,255,.12);
}
.globe__val{
  color:var(--ink);
  letter-spacing:.1em;
  font-weight:500;
}
@media (max-width:1000px){
  .globe__stage{ max-width:min(88vw, 430px); }
  .globe__meta{ max-width:min(88vw, 430px); margin:0 auto; }
  .globe__line{ font-size:calc(12px * var(--fs-text)); letter-spacing:.18em; padding:15px 2px; }
}

/* ============================================================
   00 · FILM — 品牌形象片
   ============================================================ */
.film{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:calc(150 * var(--u)) calc(72 * var(--u)) calc(96 * var(--u));
  border-top:1px solid rgba(255,255,255,.09);
}
.film__lead{
  margin-bottom:calc(50 * var(--u));
}
.film__no{
  display:block;
  margin:calc(2 * var(--u)) 0 calc(26 * var(--u));
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  font-weight:500;
  letter-spacing:.26em;
  color:rgba(255,255,255,.5);
}
.film__title{
  margin:0;
  font-size:calc(46 * var(--u));
  font-weight:500;
  line-height:1.16;
  letter-spacing:-.015em;
}
.film__note{
  margin:calc(24 * var(--u)) 0 0;
  max-width:calc(560 * var(--u));
  font-size:calc(14.0 * var(--u) * var(--fs-text));
  line-height:1.85;
  letter-spacing:.01em;
  color:var(--ink-dim);
}
.film__stage{
  position:relative;
  margin-inline:auto;
  /* 双端同步适配：高度优先，宽度自适应，16:9 恒定不裁切 */
  width:min(100%, 820px, calc(60vh * 16 / 9));
  aspect-ratio:16/9;
  border:1px solid rgba(255,255,255,.14);
  border-radius:calc(4 * var(--u));
  overflow:hidden;
  background:#000;
  cursor:pointer;
}
.film__video{
  position:absolute; inset:0;
  width:100%; height:100%;
  max-width:100%; max-height:100%;
  object-fit:cover;
  display:block;
}
.film__play{
  position:absolute; inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:calc(18 * var(--u));
  border:0;
  background:rgba(5,6,7,.30);
  color:#fff;
  font:inherit;
  cursor:pointer;
  opacity:1;
  transition:opacity .5s var(--e);
  -webkit-tap-highlight-color:transparent;
}
.film.is-playing .film__play{ opacity:0; pointer-events:none; }
.film__play-disc{
  width:calc(74 * var(--u));
  height:calc(74 * var(--u));
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:transform .5s var(--e), background .4s var(--e);
}
.film__play:hover .film__play-disc{
  transform:scale(1.06);
  background:rgba(255,255,255,.14);
}
.film__play-disc svg{
  width:calc(22 * var(--u));
  height:calc(22 * var(--u));
  fill:#fff;
}
.film__play-txt{
  font-size:calc(13.1 * var(--u) * var(--fs-text));
  letter-spacing:.22em;
  color:rgba(255,255,255,.8);
}
.film__cap{
  margin:calc(24 * var(--u)) auto 0;
  width:min(100%, 820px, calc(60vh * 16 / 9));
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(20 * var(--u));
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.2em;
  color:rgba(255,255,255,.45);
}
@media (max-width:1000px){
  .film{ padding:112px 22px 66px; }
  .film__lead{ margin-bottom:38px; }
  .film__note{ max-width:none; }
  .film__title{ font-size:clamp(30px, 8.2vw, 44px); }
  .film__stage{ width:100%; aspect-ratio:16/9; border-radius:3px; }
  .film__cap{ width:100%; }
  .film__play-disc{ width:64px; height:64px; }
  .film__play-disc svg{ width:20px; height:20px; }
  .film__play-txt{ font-size:calc(12px * var(--fs-text)); letter-spacing:.18em; }
  .film__cap{ font-size:calc(12px * var(--fs-text)); letter-spacing:.16em; flex-wrap:wrap; }
}
@media (prefers-reduced-motion: reduce){
  .film__play-disc{ transition:none; }
}

/* ---------- inline film : shared cinematic video for section pages ---------- */
.vblock{
  min-width:0;
  margin:calc(44 * var(--u)) 0 calc(6 * var(--u));
}
.vblock--top{ margin-top:calc(6 * var(--u)); }
.vblock--last{ margin-bottom:0; }
.vfilm{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:calc(4 * var(--u));
  background:#000;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.vfilm__v{
  position:absolute; inset:0;
  display:block;
  width:100%; height:100%;
  max-width:100%; max-height:100%;
  object-fit:cover;
  background:#000;
}
.vfilm--ratio-169{ aspect-ratio:16/9; }
.vfilm--ratio-43{ aspect-ratio:4/3; }
.vfilm--portrait{
  width:min(100%, calc(390 * var(--u)));
  margin-inline:auto;
  aspect-ratio:9/16;
}
.vfilm__play{
  position:absolute; inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:calc(16 * var(--u));
  background:rgba(5,6,7,.28);
  color:#fff;
  font:inherit;
  cursor:pointer;
  opacity:1;
  transition:opacity .5s var(--e);
  -webkit-tap-highlight-color:transparent;
}
.vfilm.is-playing .vfilm__play{ opacity:0; pointer-events:none; }
.vfilm__disc{
  width:calc(64 * var(--u));
  height:calc(64 * var(--u));
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:transform .5s var(--e), background .4s var(--e);
}
.vfilm:hover .vfilm__disc{
  transform:scale(1.06);
  background:rgba(255,255,255,.14);
}
.vfilm__disc svg{
  width:calc(20 * var(--u));
  height:calc(20 * var(--u));
  fill:#fff;
}
.vfilm__txt{
  font-size:calc(12.5 * var(--u) * var(--fs-text));
  letter-spacing:.22em;
  color:rgba(255,255,255,.8);
}
.vfilm__cap{
  margin:calc(18 * var(--u)) 0 0;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(16 * var(--u));
  font-size:calc(11.9 * var(--u) * var(--fs-text));
  letter-spacing:.18em;
  color:rgba(255,255,255,.42);
}
@media (max-width:1000px){
  .vblock{ margin:34px 0 4px; }
  .vfilm__disc{ width:56px; height:56px; }
  .vfilm__disc svg{ width:18px; height:18px; }
  .vfilm__txt{ font-size:calc(9px * var(--fs-text)); letter-spacing:.18em; }
  .vfilm__cap{ font-size:calc(9px * var(--fs-text)); letter-spacing:.14em; flex-wrap:wrap; row-gap:4px; }
}
/* 3D 皮膚分層旋轉模型（自動循環播放） */
.skin3d{
  margin:calc(44 * var(--u)) auto calc(4 * var(--u));
  width:min(calc(340 * var(--u)), 78%);
  display:block;
}
.skin3d__v{
  width:100%;
  display:block;
}
.skin3d__cap{
  margin:calc(14 * var(--u)) 0 0;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:calc(16 * var(--u));
  font-size:calc(11.9 * var(--u) * var(--fs-text));
  letter-spacing:.18em;
  color:rgba(255,255,255,.42);
}
@media (max-width:1000px){
  .skin3d{ width:min(300px, 82%); }
  .skin3d__cap{ font-size:calc(9px * var(--fs-text)); letter-spacing:.14em; }
}
@media (prefers-reduced-motion: reduce){
  .vfilm__disc{ transition:none; }
}

/* ============ 04 · 預約查詢表單 ============ */
.lead{
  width:100%;
  padding:calc(34 * var(--u)) calc(30 * var(--u));
  background:var(--glass);
  border:1px solid var(--glass-line);
  border-radius:calc(6 * var(--u));
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.lead__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:calc(16 * var(--u)) calc(18 * var(--u));
}
.lead__field{ display:flex; flex-direction:column; gap:calc(7 * var(--u)); }
.lead__field--full{ margin-top:calc(16 * var(--u)); }
.lead__label{
  font-size:calc(13.1 * var(--u) * var(--fs-text)); letter-spacing:.16em; text-transform:uppercase;
  color:rgba(246,239,228,.62);
}
.lead__label b{ color:var(--accent); }
.lead__input{
  width:100%;
  padding:calc(11 * var(--u)) calc(13 * var(--u));
  font-family:inherit; font-size:calc(16.6 * var(--u) * var(--fs-text)); color:var(--ink);
  background:rgba(12,9,6,.42);
  border:1px solid rgba(246,239,228,.18);
  border-radius:calc(3 * var(--u));
  outline:none;
  transition:border-color .35s var(--e), background .35s var(--e);
  -webkit-appearance:none; appearance:none;
}
.lead__input::placeholder{ color:rgba(246,239,228,.28); }
.lead__input:focus{ border-color:var(--accent); background:rgba(12,9,6,.62); }
select.lead__input{
  background-image:linear-gradient(45deg, transparent 50%, rgba(246,239,228,.55) 50%), linear-gradient(135deg, rgba(246,239,228,.55) 50%, transparent 50%);
  background-position:calc(100% - 16px) 50%, calc(100% - 11px) 50%;
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
  padding-right:calc(30 * var(--u));
}
select.lead__input option{ background:#1b1610; color:var(--ink); }
.lead__textarea{ resize:vertical; min-height:calc(80 * var(--u)); line-height:1.7; }
.lead__consent{
  display:flex; align-items:flex-start; gap:calc(10 * var(--u));
  margin-top:calc(20 * var(--u));
  font-size:calc(14.3 * var(--u) * var(--fs-text)); line-height:1.75; color:var(--ink-dim);
  cursor:pointer;
}
.lead__consent input{
  flex:0 0 auto; margin-top:calc(3 * var(--u));
  width:calc(15 * var(--u)); height:calc(15 * var(--u)); accent-color:var(--accent);
  -webkit-appearance:checkbox; appearance:checkbox;
}
.lead__submit{
  margin-top:calc(22 * var(--u));
  padding:calc(14 * var(--u)) calc(34 * var(--u));
  font-family:var(--font-display); font-size:calc(17.8 * var(--u) * var(--fs-text)); letter-spacing:.08em;
  color:var(--ink);
  background:rgba(192,85,63,.22);
  border:1px solid rgba(192,85,63,.55);
  border-radius:calc(3 * var(--u));
  cursor:pointer;
  transition:background .4s var(--e), transform .4s var(--e);
}
.lead__submit:hover{ background:rgba(192,85,63,.34); transform:translateY(-1px); }
.lead__submit:disabled{ opacity:.55; cursor:default; transform:none; }
.lead__submit.is-loading{ opacity:.7; }
.lead__tip{
  margin-top:calc(14 * var(--u));
  font-size:calc(15.4 * var(--u) * var(--fs-text)); line-height:1.7;
}
.lead__tip--ok{ color:#8fbf8a; }
.lead__tip--err{ color:#d98b7a; }
.lead__note{
  margin-top:calc(14 * var(--u));
  font-size:calc(13.1 * var(--u) * var(--fs-text)); letter-spacing:.06em; color:rgba(246,239,228,.42);
}
.lead__note a{ color:var(--ink-dim); text-decoration:underline; text-underline-offset:2px; }

@media (max-width:860px){
  .lead{ padding:24px 18px; border-radius:4px; }
  .lead__grid{ grid-template-columns:1fr; gap:16px; }
  .lead__label{ font-size:calc(12px * var(--fs-text)); }
  .lead__input{ font-size:calc(16px * var(--fs-text)); padding:12px 13px; border-radius:3px; }
  .lead__textarea{ min-height:80px; }
  .lead__consent{ font-size:calc(14px * var(--fs-text)); gap:9px; }
  .lead__consent input{ width:14px; height:14px; }
  .lead__submit{ font-size:calc(17px * var(--fs-text)); padding:14px 26px; width:100%; }
  .lead__tip{ font-size:calc(15px * var(--fs-text)); }
  .lead__note{ font-size:calc(13px * var(--fs-text)); }
}

/* ---------- treatment cards: whole card clickable ---------- */
.hcard.is-active{ cursor:pointer; }
.hcard.is-active:hover .hcard__more{
  color:#fff;
  border-color:rgba(255,255,255,.6);
}
.hcard:not(.is-active){ cursor:pointer; }

/* ---------- anchor landing offset (fixed nav) ---------- */
section[id],
.section[id]{ scroll-margin-top:calc(96 * var(--u)); }
@media (max-width:1000px){
  section[id],
  .section[id]{ scroll-margin-top:calc(120 * var(--u)); }
}
