/* ============================================================
   頤安本草 · 首頁專用（home.css）
   取代 Tailwind CDN，與 dongfang.css 共用設計 token
   ============================================================ */

/* Hero 水印 · 香檳金褐（參考 OAKVILLE WELLNESS 側欄字色） */
:root{
  --hero-wm:#C5B390;
  --hero-wm-rgb:197,179,144;
  --hero-wm-soft:rgba(var(--hero-wm-rgb),.58);
  --hero-wm-mid:rgba(var(--hero-wm-rgb),.42);
  --hero-wm-faint:rgba(var(--hero-wm-rgb),.24);
  --hero-wm-ghost:rgba(var(--hero-wm-rgb),.16);
  --hero-wm-en-a:rgba(var(--hero-wm-rgb),.36);
  --hero-wm-en-b:rgba(var(--hero-wm-rgb),.28);
  --hero-wm-en-mask:linear-gradient(90deg, #000 0%, #000 66%, rgba(0,0,0,.32) 84%, transparent 100%),
    linear-gradient(180deg, #000 0%, #000 60%, rgba(0,0,0,.18) 78%, transparent 94%);
}

/* ── 首頁 Hero 排版 ── */
.hero-grid{ align-items:start; }
.hero-portrait{
  position:relative;
  padding:48px 12px 8px;
  overflow:hidden;
}
@media(min-width:768px){
  .hero-portrait{ padding:56px 16px 12px; }
}
@media(min-width:1024px){
  .hero-portrait{ position:sticky; top:96px; z-index:2; }
}
.df-home-hero__copy-col{ z-index:2; }

/* ── 按鈕 ── */
.btn-cin{
  display:inline-flex; align-items:center; gap:12px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.btn-cin:focus-visible{ outline:2px solid var(--ochre); outline-offset:3px; }
.btn-cin:hover{ transform:translateY(-2px); }
.btn-cin:active{ transform:translateY(0) scale(.985); }

/* ── 專科卡 ── */
.spec-card{
  display:block; text-decoration:none; color:inherit;
  transition:background .5s, border-color .5s, transform .5s cubic-bezier(.2,.7,.2,1);
}
.spec-card:hover{ transform:translateY(-4px); }
.spec-card:hover .spec-num{ color:var(--cinnabar); }
.spec-ico{ color:var(--pine); }
.spec-card:hover .spec-ico{ stroke:var(--cinnabar); }
.spec-num{ transition:color .4s; }
.spec-ico{ transition:stroke .4s; }

/* ──  eyebrow ── */
.eyebrow-rule{
  display:inline-block; width:26px; height:1px;
  background:currentColor; vertical-align:middle;
  margin-right:14px; opacity:.8;
}

/* ── 首頁區塊 ── */
.df-home-section{ padding:96px 0; }
@media(min-width:768px){ .df-home-section{ padding:144px 0; } }
.df-home-section--md{ padding:64px 0; }
@media(min-width:768px){ .df-home-section--md{ padding:80px 0; } }
.df-home-section--sm{ padding:96px 0; }
@media(min-width:768px){ .df-home-section--sm{ padding:128px 0; } }
.df-home-section--deep{ background:var(--paper-deep); }
.df-home-section--pine{ background:var(--pine-deep); color:rgba(var(--paper-rgb),.88); }

/* ── Hero ── */
.df-home-hero{
  position:relative; overflow-x:clip; overflow-y:visible;
  padding-top:84px;
  isolation:isolate;
}
@media(min-width:768px){ .df-home-hero{ padding-top:88px; } }

/* ── Hero 背景文字藝術 ── */
.df-home-hero__type{
  position:absolute; inset:0;
  pointer-events:none; user-select:none;
  z-index:0; overflow:hidden;
}
.df-home-hero__type-stack{
  position:absolute;
  left:50%;
  top:46%;
  transform:translate(-72%, -50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
/* EN brand watermark — .df-home-hero__type-stack (same layer as ZH 頤安本草) */
/* ZH home hero · 頤安本草 watermark — same 隸書 art as brand seal PNGs */
.df-home-hero__type-cn{
  display:block;
  width:min(58vw, 560px);
  aspect-ratio:1;
  transform:rotate(-2.5deg) scaleX(1.05);
  filter:drop-shadow(0 2px 0 rgba(var(--hero-wm-rgb),.08));
}
.df-home-hero__type-cn__art{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:.48;
}
/* EN home hero · OAKVILLE / WELLNESS two-line brand (type-stack) */
.df-home-hero__type-en-brand--stack{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.1em;
  width:min(64.8vw, 648px);
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-weight:600;
  font-size:clamp(3.2rem, 10.2vw, 6.571rem);
  line-height:0.86;
  letter-spacing:.07em;
  text-transform:uppercase;
  transform:rotate(-2.5deg);
  transform-origin:left center;
  filter:drop-shadow(0 2px 0 rgba(var(--hero-wm-rgb),.09));
}
.df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line{
  display:block;
  white-space:nowrap;
  color:var(--hero-wm-en-a);
}
.df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line--accent{
  color:var(--hero-wm-en-b);
  margin-left:.5em;
  letter-spacing:.09em;
  padding-left:0;
}
/* Legacy hook — keep selector for any non-stack usage */
.df-home-hero__type-en-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.06em;
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-weight:600;
  text-transform:uppercase;
  color:var(--hero-wm-ghost);
}
.df-home-hero__type-en-brand__line{
  display:block;
  white-space:nowrap;
}
.df-home-hero__type-en-brand__line--accent{
  color:var(--hero-wm-faint);
}
.df-home-hero__type-en{
  position:absolute;
  margin:0;
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-weight:500;
  letter-spacing:.38em;
  text-transform:uppercase;
  white-space:nowrap;
}
.df-home-hero__type-en--side{
  left:clamp(8px, 1.5vw, 24px);
  top:50%;
  transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-size:clamp(16px, 1.2vw, 18px);
  color:var(--hero-wm-soft);
}
.df-home-hero__type-en--below{
  position:static;
  transform:none;
  writing-mode:horizontal-tb;
  font-size:clamp(16px, 1.15vw, 19px);
  letter-spacing:.48em;
  color:var(--hero-wm-mid);
  padding-left:.48em;
}
.df-home-hero__type-en--rear{
  display:none;
}
.df-home-hero__content{
  position:relative;
  z-index:1;
}
.df-home-hero__copy-col{
  position:relative;
  min-width:0;
}
@media(min-width:1024px){
  html[lang="en"] .df-home-hero__type-stack{
    left:33%;
    top:33%;
    transform:translate(-74%, -52%);
  }
  .df-home-hero__type-stack{
    left:40%;
    top:34%;
    transform:translate(-50%, -50%);
  }
  .df-home-hero__type-cn{
    width:min(36vw, 440px);
  }
  .df-home-hero__type-cn__art{
    opacity:.26;
    -webkit-mask-image:linear-gradient(90deg, #000 5%, #000 62%, rgba(0,0,0,.25) 84%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 58%, rgba(0,0,0,.15) 78%, transparent 92%);
    mask-image:linear-gradient(90deg, #000 5%, #000 62%, rgba(0,0,0,.25) 84%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 58%, rgba(0,0,0,.15) 78%, transparent 92%);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack{
    width:auto;
    max-width:min(45.6vw, 552px);
    font-size:clamp(2.971rem, 6.96vw, 4.571rem);
    gap:0.12em;
    -webkit-mask-image:var(--hero-wm-en-mask);
    mask-image:var(--hero-wm-en-mask);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line--accent{
    margin-left:.48em;
  }
  .df-home-hero__type-en--below{ display:none; }
  .df-home-hero__copy-col{
    padding-left:clamp(0px, 4vw, 48px);
  }
  .df-home-hero__type-en--side{
    left:clamp(12px, 2vw, 28px);
    font-size:14.3px;
    letter-spacing:.34em;
  }
  .df-home-hero__type-en--rear{
    display:block;
    right:clamp(12px, 2.5vw, 48px);
    left:auto;
    top:14%;
    writing-mode:vertical-rl;
    font-size:14.3px;
    letter-spacing:.4em;
    color:var(--hero-wm-mid);
  }
}
@media(max-width:1023px){
  html[lang="en"] .df-home-hero__type-stack{
    left:72%;
    top:18%;
    transform:translate(-30%, -50%);
  }
  .df-home-hero__type-stack{
    left:62%;
    top:30%;
    transform:translate(-40%, -50%);
    opacity:1;
  }
  /* 手機：水印淡出並遮罩右下，避免壓住導語／資歷 */
  .df-home-hero__type-cn{
    width:min(62vw, 320px);
  }
  .df-home-hero__type-cn__art{
    opacity:.30;
    -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,.55) 0%, #000 35%, #000 70%, rgba(0,0,0,.2) 88%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 42%, rgba(0,0,0,.35) 68%, rgba(0,0,0,.08) 88%, transparent 100%);
    mask-image:linear-gradient(90deg, rgba(0,0,0,.55) 0%, #000 35%, #000 70%, rgba(0,0,0,.2) 88%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 42%, rgba(0,0,0,.35) 68%, rgba(0,0,0,.08) 88%, transparent 100%);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack{
    width:auto;
    max-width:min(52vw, 260px);
    font-size:clamp(1.714rem, 7.5vw, 2.667rem);
    -webkit-mask-image:linear-gradient(90deg, #000 0%, #000 48%, rgba(0,0,0,.18) 78%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 42%, rgba(0,0,0,.1) 68%, transparent 92%);
    mask-image:linear-gradient(90deg, #000 0%, #000 48%, rgba(0,0,0,.18) 78%, transparent 100%),
      linear-gradient(180deg, #000 0%, #000 42%, rgba(0,0,0,.1) 68%, transparent 92%);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line{
    color:rgba(var(--hero-wm-rgb),.16);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line--accent{
    color:rgba(var(--hero-wm-rgb),.12);
  }
  .df-home-hero__type-en--side{
    right:10px;
    left:auto;
    top:auto;
    bottom:22%;
    transform:none;
    writing-mode:horizontal-tb;
    letter-spacing:.32em;
    font-size:14.3px;
  }
  .df-home-hero__lead,
  .df-home-hero__main .df-home-trust-line{
    text-shadow:0 0 18px rgba(var(--paper-rgb),.92), 0 0 8px rgba(var(--paper-rgb),.7), 0 1px 0 rgba(var(--paper-rgb),.55);
  }
  html[lang="en"] .df-home-hero__title{
    text-shadow:0 0 28px rgba(var(--paper-rgb),.96), 0 0 12px rgba(var(--paper-rgb),.8), 0 1px 0 rgba(var(--paper-rgb),.6);
  }
}
@media(min-width:768px) and (max-width:1023px){
  html[lang="en"] .df-home-hero__type-en-brand--stack{
    max-width:min(64vw, 380px);
    font-size:clamp(2.286rem, 8vw, 3.429rem);
  }
  .df-home-hero__type-cn__art{ opacity:.28; }
}
@media(max-width:639px){
  html[lang="en"] .df-home-hero__type-stack{
    left:88%;
    top:10%;
    transform:translate(-18%, -50%);
  }
  .df-home-hero__type-stack{
    left:82%;
    top:18%;
    transform:translate(-28%, -50%);
  }
  .df-home-hero__type-cn{
    width:min(46vw, 200px);
  }
  .df-home-hero__type-cn__art{ opacity:.14; }
  html[lang="en"] .df-home-hero__type-en-brand--stack{
    max-width:min(42vw, 160px);
    font-size:clamp(1.333rem, 6.5vw, 1.905rem);
    gap:0.06em;
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line{
    color:rgba(var(--hero-wm-rgb),.14);
  }
  html[lang="en"] .df-home-hero__type-en-brand--stack .df-home-hero__type-en-brand__line--accent{
    margin-left:.3em;
    color:rgba(var(--hero-wm-rgb),.10);
  }
  .df-home-hero__type-en--below{
    letter-spacing:.36em;
    font-size:14.3px;
  }
  .df-home-hero__main .df-home-trust-lines{
    position:relative; z-index:2;
    margin-right:12vw;
    padding:8px 0;
    background:linear-gradient(90deg, rgba(var(--paper-rgb),.94) 0%, rgba(var(--paper-rgb),.82) 62%, transparent 100%);
  }
}
@media(max-width:479px){
  html[lang="en"] .df-home-hero__type-stack{
    left:92%;
    top:8%;
    transform:translate(-12%, -50%);
  }
  .df-home-hero__type-stack{
    left:88%;
    top:14%;
    transform:translate(-22%, -50%);
  }
  .df-home-hero__type-cn{ width:min(38vw, 152px); }
  .df-home-hero__type-cn__art{ opacity:.12; }
  html[lang="en"] .df-home-hero__type-en-brand--stack{
    font-size:clamp(1.143rem, 5.8vw, 1.619rem);
    max-width:min(36vw, 140px);
  }
}
@media(prefers-reduced-motion:reduce){
  .df-home-hero__type-cn,
  .df-home-hero__type-en-brand--stack{ transform:rotate(-2.5deg); }
}

.df-home-hero__wash-a{
  position:absolute; top:-128px; right:-160px;
  width:640px; height:640px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--pine-rgb),.10), transparent 62%);
}
.df-home-hero__wash-b{
  position:absolute; top:33%; left:-208px;
  width:560px; height:560px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--cinnabar-rgb),.07), transparent 60%);
}
.df-home-hero__grid{
  display:grid; gap:40px 48px;
  padding:48px 0 64px;
}
@media(min-width:768px){ .df-home-hero__grid{ padding:64px 0 80px; } }
@media(min-width:1024px){
  .df-home-hero__grid{
    grid-template-columns:1.08fr 0.92fr;
    align-items:center;
    gap:28px 36px;
    padding:72px 0 88px;
  }
}
@media(min-width:1024px) and (max-width:1279px){
  .df-home-hero__grid{
    grid-template-columns:1.12fr 0.88fr;
    gap:24px 28px;
  }
}
.df-home-hero__copy-row{
  display:flex; align-items:flex-start;
  gap:clamp(16px, 2.5vw, 28px);
  min-width:0;
}
.df-home-hero__vcol{
  display:none; flex-direction:column; align-items:center;
  gap:16px; padding-top:12px; flex-shrink:0;
}
@media(min-width:1024px){ .df-home-hero__vcol{ display:flex; } }
@media(min-width:1024px) and (max-width:1399px){
  .df-home-hero__vcol{ display:none; }
}
.df-home-hero__vline{
  writing-mode:vertical-rl; text-orientation:upright;
  font-size:16.2px; letter-spacing:.45em;
}
.df-home-hero__vline--faint{ color:var(--ink-faint); }
.df-home-hero__vline--cin{ color:var(--cinnabar); }
.df-home-hero__vsep{ width:1px; height:48px; background:var(--line); }
.df-home-hero__main{
  flex:1; min-width:0;
  position:relative;
}
@media(min-width:1024px){
  .df-home-hero__main{
    padding:20px 0 24px clamp(12px, 2vw, 32px);
  }
}
.df-home-hero__eyebrow{
  font-size:18.1px; letter-spacing:.35em; color:var(--ochre); margin:0 0 16px;
  position:relative; z-index:1;
}
@media(min-width:1024px){ .df-home-hero__eyebrow{ margin-bottom:20px; } }
.df-home-hero__title{
  font-weight:900; color:var(--pine); line-height:var(--line-height-heading);
  letter-spacing:.04em; font-size:var(--heading-hero); margin:0;
  text-wrap:balance;
  position:relative; z-index:1;
  text-shadow:0 0 28px rgba(var(--paper-rgb),.88), 0 1px 0 rgba(var(--paper-rgb),.55);
}
html[lang="en"] .df-home-hero__title{
  letter-spacing:.02em;
  text-shadow:0 0 32px rgba(var(--paper-rgb),.92), 0 0 14px rgba(var(--paper-rgb),.68), 0 1px 0 rgba(var(--paper-rgb),.55);
}
.df-home-hero__tagline{
  margin:14px 0 0; max-width:22em;
  font-size:clamp(1rem,2.2vw,1.286rem); line-height:1.7;
  font-weight:600; letter-spacing:.06em; color:var(--pine);
  position:relative; z-index:1;
}
.df-home-hero__tagline-link{
  color:inherit; text-decoration:none;
  border-bottom:1px solid rgba(var(--cinnabar-rgb),.35);
  transition:border-color .2s, color .2s;
}
.df-home-hero__tagline-link:hover{
  color:var(--cinnabar); border-bottom-color:var(--cinnabar);
}
@media(min-width:1024px){ .df-home-hero__tagline{ margin-top:18px; } }
.df-home-hero__lead{
  max-width:48ch; margin:24px 0 0;
  font-size:var(--text-md); line-height:var(--line-height-prose); color:var(--ink-soft);
  text-wrap:pretty;
  position:relative; z-index:1;
}
@media(min-width:768px){ .df-home-hero__lead{ margin-top:28px; } }
.df-home-hero__actions{
  display:flex; flex-wrap:wrap; align-items:center; gap:16px 20px;
  margin-top:32px;
  position:relative; z-index:2;
}
@media(min-width:1024px){ .df-home-hero__actions{ margin-top:40px; } }
.df-home-hero__cta{
  gap:12px; padding:16px 32px;
  background:var(--cinnabar); color:var(--shell-deep);
  font-size:19px; letter-spacing:.18em; border-radius:4px;
  box-shadow:0 14px 30px -12px rgba(var(--cinnabar-rgb),.6);
  position:relative; z-index:2;
}
.df-home-hero__wa{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px; font-size:19px; letter-spacing:.14em; color:var(--pine);
}
.df-home-hero__wa-dot{
  width:8px; height:8px; border-radius:50%; background:var(--pine-light);
}
/* ── 首頁肖像卡 · Hero 品牌款 / About 醫師款 ── */
.df-photo-card{
  position:relative;
  margin:0;
  width:100%;
  max-width:400px;
  margin-inline:auto;
  overflow:clip;
}
@media(min-width:1024px){
  .df-photo-card--hero{ max-width:none; }
}
.df-photo-card__deco{
  position:absolute; bottom:-8px; left:0;
  width:64px; height:64px;
  background:rgba(var(--pine-rgb),.08);
  border-radius:4px;
  pointer-events:none;
  display:none;
}
.df-photo-card__deco--tr{
  left:auto; right:0; bottom:auto; top:-8px;
  background:rgba(var(--cinnabar-rgb),.07);
}
@media(min-width:640px){
  .df-photo-card__deco{
    display:block; bottom:-12px; left:-12px;
    width:72px; height:72px;
  }
  .df-photo-card__deco--tr{ right:-12px; top:-12px; }
}
@media(min-width:1024px){
  .df-photo-card__deco{ bottom:-16px; left:-16px; width:80px; height:80px; }
  .df-photo-card__deco--tr{ right:-16px; top:-16px; }
}
.df-photo-card__logo,
.seal--hero{
  position:absolute; top:-32px; right:16px;
  opacity:1; display:none; z-index:10;
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
@media(min-width:768px){
  .df-photo-card__logo,
  .seal--hero{
    display:block; top:-40px; right:24px;
  }
}
.df-photo-card__frame{
  overflow:hidden;
  border-radius:4px;
  box-shadow:0 30px 60px -30px rgba(var(--pine-deep-rgb),.55);
  transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s;
}
/* Hero 肖像 · 保留原框角飾，僅減輕嵌入陰影 */
.df-photo-card--hero .df-photo-card__frame{
  border:1px solid rgba(var(--paper-rgb),.55);
  box-shadow:0 22px 44px -34px rgba(var(--pine-deep-rgb),.22);
}
.df-photo-card--about .df-photo-card__frame{
  box-shadow:0 24px 50px -28px rgba(var(--pine-deep-rgb),.5);
}
@media(hover:hover){
  .df-photo-card:hover .df-photo-card__frame{
    transform:translateY(-3px);
    box-shadow:0 36px 64px -28px rgba(var(--pine-deep-rgb),.48);
  }
  .df-photo-card--hero:hover .df-photo-card__frame{
    transform:translateY(-2px);
    box-shadow:0 26px 48px -30px rgba(var(--pine-deep-rgb),.26);
  }
  .df-photo-card--brand:hover .df-photo-card__logo,
  .df-photo-card--brand:hover .seal--hero{
    transform:translateY(-2px);
  }
}
.df-photo-card__img{
  display:block;
  width:100%;
  object-fit:cover;
  object-position:top center;
}
.df-photo-card--hero .df-photo-card__img{ height:380px; }
@media(min-width:640px){ .df-photo-card--hero .df-photo-card__img{ height:440px; } }
@media(min-width:1024px){ .df-photo-card--hero .df-photo-card__img{ height:480px; } }
.df-photo-card--about .df-photo-card__img{ height:440px; }
.df-photo-card__shade{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 50%, rgba(var(--pine-deep-rgb),.58) 100%);
}
.df-photo-card__cap{
  position:absolute; bottom:20px; left:20px;
  display:flex; align-items:center; gap:12px;
  margin:0;
}
.df-photo-card__name{
  font-family:var(--font-lishu);
  color:var(--paper);
  font-size:clamp(1.286rem, 2.5vw, 1.429rem);
  letter-spacing:.2em;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
  line-height:1;
}
@media(prefers-reduced-motion:reduce){
  .df-photo-card__frame,
  .df-photo-card__logo,
  .seal--hero{ transition:none; }
  .df-photo-card:hover .df-photo-card__frame{ transform:none; }
}
.df-home-hero__scroll{
  display:flex; justify-content:center; padding-bottom:32px;
}
.df-home-hero__scroll-inner{
  display:flex; flex-direction:column; align-items:center;
  gap:8px; color:var(--ink-faint);
}
.df-home-hero__scroll-label{ font-size:16.2px; letter-spacing:.4em; }
.df-home-hero__scroll-line{ width:1px; height:32px; background:var(--line); }

/* ── Trust strip ── */
.df-home-trust-strip{
  padding:28px 0;
  display:flex; flex-direction:column; align-items:center;
  justify-content:space-between; gap:20px;
}
@media(min-width:768px){
  .df-home-trust-strip{ flex-direction:row; }
}
.df-home-trust-strip__tagline{
  font-size:18.1px; letter-spacing:.2em; color:var(--ochre-light);
  display:flex; align-items:center; gap:12px; margin:0;
}
.df-home-trust-strip__tagline-line{
  width:24px; height:1px; background:rgba(174,138,71,.6);
}
.df-home-trust-strip__items{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:12px 40px; font-size:18.1px; letter-spacing:.08em;
}
.df-home-trust-strip__item{
  display:flex; align-items:center; gap:10px;
}
.df-home-trust-strip__dot{
  width:6px; height:6px; border-radius:50%; background:var(--ochre-light);
}
.df-home-trust-strip__sep{
  display:none; width:1px; height:16px;
  background:rgba(var(--ink-rgb),.12); align-self:center;
}
@media(min-width:768px){ .df-home-trust-strip__sep{ display:block; } }

/* ── Trust (credentials + metrics) ── */
.df-home-trust__credentials{
  padding-bottom:32px; margin-bottom:40px;
  border-bottom:1px solid var(--line); text-align:center;
}
.df-home-trust__credentials .df-home-trust-strip__tagline{
  justify-content:center; color:var(--ochre); margin:0;
}
.df-home-trust__credentials .df-home-trust-strip__tagline-line{ background:rgba(174,138,71,.55); }
.df-home-trust__credentials .df-home-trust-strip__items{
  margin-top:16px; color:var(--ink-soft); font-size:17.1px; letter-spacing:.1em;
}
.df-home-trust__credentials .df-home-trust-strip__dot{ background:var(--ochre); }
.df-home-trust__credentials .df-home-trust-strip__sep{ background:var(--line); }
.df-home-trust-strip__item--pay{ font-weight:700; color:var(--pine); }
.df-home-trust-strip__item--pay .df-home-trust-strip__dot{ background:var(--cinnabar); width:7px; height:7px; }
.df-home-trust-strip__item--emph{ font-weight:700; color:var(--pine); letter-spacing:.12em; }
.df-home-trust-strip__item--emph .df-home-trust-strip__dot{ background:var(--cinnabar); width:7px; height:7px; }

/* ── Payment coverage in pricing section ── */
.df-home-pricing-pay .df-pay-banner{ margin:48px 0 0; }

/* ── Chips ── */
.df-home-chips{
  display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:40px;
}
.df-home-chip{
  padding:10px 20px; border:1px solid var(--line); border-radius:4px;
  font-size:18.1px; letter-spacing:.1em; color:var(--pine); background:rgba(255,255,255,.62);
}
.df-home-chip--sm{ padding:8px 16px; }
.df-home-chip--pay{
  border-color:rgba(174,138,71,.55);
  background:rgba(255,251,242,.88);
  color:var(--pine); font-weight:700;
}

/* ── Section typography ── */
.df-home-eyebrow{
  font-size:18.1px; letter-spacing:.35em; color:var(--ochre); margin:0 0 12px;
}
.df-home-eyebrow--center{ text-align:center; }
.df-home-title{
  font-weight:900; color:var(--pine); line-height:var(--line-height-heading);
  letter-spacing:.03em; font-size:var(--heading-section); margin:0;
}
.df-home-title--sm{ font-size:var(--heading-block); }
.df-home-title--center{ text-align:center; }
.df-home-sub{
  font-size:var(--text-md); line-height:var(--line-height-prose); color:var(--ink-soft); margin:0;
}
.df-home-sub--center{ text-align:center; margin-top:16px; font-size:var(--text-md); color:var(--ink-soft); }
.df-home-sub--note{ margin:0; font-size:18.1px; color:var(--ink-faint); }
.df-container--rel{ position:relative; }
.df-home-sub--center strong{ color:var(--pine); font-weight:600; }
.df-home-head{
  display:flex; flex-direction:column; gap:24px; margin-bottom:64px;
}
@media(min-width:768px){
  .df-home-head{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
}
.df-home-head--mb-sm{ margin-bottom:48px; }
.df-home-head__aside{
  font-size:19px; line-height:2; color:var(--ink-soft);
  max-width:24rem; margin:0;
}
@media(min-width:768px){ .df-home-head__aside{ text-align:right; } }

/* ── About ── */
.df-home-about{
  position:relative;
  overflow:hidden;
}
.df-home-about__wash{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 88% 22%, rgba(174,138,71,.09), transparent 52%),
    radial-gradient(circle at 8% 78%, rgba(var(--pine-rgb),.06), transparent 48%);
}
.df-home-about-grid{
  position:relative;
  display:grid; gap:48px 64px; align-items:center;
}
@media(min-width:1024px){ .df-home-about-grid{ grid-template-columns:5fr 7fr; } }
.df-home-about-img-wrap{ position:relative; max-width:440px; }
.df-home-about-body p{
  font-size:21px; line-height:2.1; color:var(--ink-soft);
  max-width:54ch; margin:0;
}
.df-home-about-body p + p{ margin-top:20px; }
.df-home-about-chips{ display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.df-home-about-cta{ margin:28px 0 0; }
.df-home-about-cta .df-home-link{
  font-size:19px; letter-spacing:.12em; color:var(--cinnabar);
}

/* ── Spec grid ── */
.df-home-spec-grid{
  display:grid; border-top:1px solid var(--line); border-left:1px solid var(--line);
}
@media(min-width:640px){ .df-home-spec-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:1024px){ .df-home-spec-grid{ grid-template-columns:repeat(4,1fr); } }
.df-home-spec-card{
  padding:32px 36px;
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.42);
}
.df-home-spec-card:hover{ background:rgba(255,255,255,.72); }
@media(min-width:1024px){ .df-home-spec-card{ padding:36px; } }
.df-home-spec-card__top{
  display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:32px;
}
.df-home-spec-card__num{
  font-weight:700; font-size:2.857rem; color:rgba(174,138,71,.7);
}
.df-home-spec-card__title{
  font-weight:700; font-size:1.429rem; letter-spacing:.06em;
  color:var(--pine); margin:0 0 12px;
}
.df-home-spec-card__desc{
  font-size:18.6px; line-height:1.95; color:var(--ink-soft); margin:0;
}
.df-home-spec-card__link{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:24px; font-size:18.1px; letter-spacing:.12em;
  color:var(--cinnabar); opacity:.7; transition:opacity .3s;
}
.spec-card:hover .df-home-spec-card__link{ opacity:1; }
.df-home-tags-wrap{ margin-top:56px; text-align:center; }
.df-home-tags-wrap .df-home-eyebrow{ text-align:center; margin-bottom:16px; }
.df-home-tags-more{ text-align:center; margin-top:24px; }

/* ── Creed ── */
.df-home-creed{
  position:relative; overflow:hidden;
  padding:112px 0;
}
@media(min-width:768px){ .df-home-creed{ padding:160px 0; } }
.df-home-creed__wash{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 70% 30%, rgba(174,138,71,.12), transparent 55%);
}
.df-home-creed__watermark{
  position:absolute; right:-24px; top:50%; transform:translateY(-50%);
  font-family:var(--font-lishu); font-weight:400; color:rgba(61,92,79,.15); line-height:1;
  font-size:26vw; user-select:none; pointer-events:none;
}
html[lang="en"] .df-home-creed__watermark{
  font-family:"Cormorant Garamond",serif; font-style:italic; font-weight:600;
  right:clamp(12px, 3vw, 40px); top:50%; transform:translateY(-50%);
  letter-spacing:.02em; font-size:clamp(2.286rem, 10vw, 6.667rem);
  line-height:1; color:rgba(var(--paper-rgb),.10);
  max-width:min(50vw, 480px); text-align:right; white-space:nowrap;
}
.df-home-creed__inner{ position:relative; max-width:48rem; }
.df-home-creed__seal{ margin-bottom:40px; }
.df-home-creed__quote{
  font-weight:300; color:var(--paper); line-height:1.7;
  letter-spacing:.05em; font-size:var(--heading-display); margin:0;
}
.df-home-creed__cite{
  font-size:19px; letter-spacing:.2em; color:rgba(var(--paper-rgb),.58); margin:28px 0 0;
}
.df-home-creed__body{
  font-size:20px; line-height:2.1; color:rgba(var(--paper-rgb),.78);
  max-width:52ch; margin:40px 0 0;
}

/* ── Insights / news cards ── */
.df-home-insights-grid{
  display:grid; gap:48px 56px;
}
@media(min-width:1024px){ .df-home-insights-grid{ grid-template-columns:7fr 5fr; align-items:start; } }
.df-home-news-list{ display:flex; flex-direction:column; gap:16px; }
.df-home-news-card{
  display:block; padding:24px;
  border:1px solid var(--line); border-radius:4px;
  background:rgba(255,255,255,.58); color:inherit; text-decoration:none;
  transition:box-shadow .35s;
}
.df-home-news-card:hover{ box-shadow:0 18px 40px -26px rgba(var(--pine-deep-rgb),.35); }
.df-home-news-card__date{
  font-size:16.2px; letter-spacing:.2em; color:var(--ochre);
}
.df-home-news-card__title{
  font-weight:700; font-size:21.9px; letter-spacing:.06em;
  color:var(--pine); margin:8px 0;
}
.df-home-news-card__excerpt{
  font-size:18.6px; line-height:1.9; color:var(--ink-soft); margin:0;
}

/* ── Schedule ── */
.df-home-schedule-grid{
  display:grid; gap:48px 64px; align-items:start;
  min-width:0;
}
.df-home-schedule-grid > *{ min-width:0; }
@media(min-width:1024px){ .df-home-schedule-grid{ grid-template-columns:4fr 8fr; } }
.df-home-schedule-info p{
  font-size:20px; line-height:2.05; color:var(--ink-soft);
  max-width:34ch; margin:0;
}
.df-home-schedule-info .rule-fade{ margin:32px 0; max-width:200px; }
.df-home-schedule-link{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:28px; font-size:19px; letter-spacing:.12em; color:var(--pine);
}
.df-home-schedule-link--tel{
  display:inline-flex; margin-top:12px;
  font-size:18.1px; letter-spacing:.1em; color:var(--ink-soft);
}
.df-home-hours{
  border-top:2px solid var(--pine);
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.df-home-hours__head{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);
  font-size:18.1px; letter-spacing:.14em; color:var(--ink-faint);
  padding:16px 0; border-bottom:1px solid var(--line);
}
.df-home-hours__head span:not(:first-child){ text-align:center; }
.df-home-hours__row{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);
  align-items:center; padding:24px 0;
  border-bottom:1px solid var(--line);
}
@media(max-width:767px){
  .df-home-hours__head{
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
    font-size:15.2px;
    letter-spacing:.08em;
    padding:12px 0;
  }
  .df-home-hours__head span:first-child{ display:none; }
  .df-home-hours__row{
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
    align-items:center;
    padding:16px 0;
  }
  .df-home-hours__day{
    grid-column:1 / -1;
    font-size:20px;
    letter-spacing:.06em;
    padding-bottom:8px;
    margin-bottom:2px;
    border-bottom:1px solid var(--line-soft);
  }
  .df-home-hours__cell{
    text-align:center;
    font-size:19px;
    padding:10px 6px;
    background:var(--paper-deep);
    border-radius:3px;
  }
  .df-home-hours__cell--span{
    grid-column:1 / -1;
    background:transparent;
    padding:4px 0;
  }
}
.df-home-hours__row:last-child{ border-bottom:0; }
.df-home-hours__day{
  font-size:21.9px; letter-spacing:.1em; color:var(--pine);
}
.df-home-hours__day--muted{ color:var(--ink-faint); }
.df-home-hours__cell{
  text-align:center; font-size:21.9px; color:var(--cinnabar);
}
.df-home-hours__cell--muted{ color:var(--ink-faint); }
.df-home-hours__cell--span{ grid-column:span 2; }

/* ── Pricing ── */
.df-home-pricing-head{ text-align:center; max-width:36rem; margin:0 auto 64px; }
.df-home-pricing-grid{
  display:grid; gap:40px 64px; align-items:start;
}
@media(min-width:1024px){ .df-home-pricing-grid{ grid-template-columns:1fr 1fr; } }
.df-home-price-list h3{
  font-weight:700; font-size:23.8px; letter-spacing:.1em;
  color:var(--pine); padding-bottom:16px;
  border-bottom:2px solid var(--pine); margin:0;
}
.df-home-price-list ul{ list-style:none; margin:8px 0 0; padding:0; }
.df-home-price-list li{
  display:flex; flex-wrap:wrap; align-items:baseline;
  justify-content:space-between; gap:8px 16px;
  padding:20px 0; border-bottom:1px solid var(--line);
}
.df-home-price-list__name{
  font-size:21.9px; color:var(--pine);
  flex:1 1 auto; min-width:min(100%, 12rem);
}
.df-home-price-list__note{
  display:block; font-size:17.1px; color:var(--ink-faint); margin-top:4px;
}
.df-home-price-list__amt{
  font-size:21.9px; color:var(--cinnabar); white-space:nowrap;
  flex-shrink:0; margin-left:auto;
}
@media(max-width:479px){
  .df-home-price-list li{
    flex-direction:column; align-items:flex-start; gap:6px;
  }
  .df-home-price-list__amt{ margin-left:0; }
}
.df-home-price-list__cur{
  font-family:"Cormorant Garamond",serif;
  font-size:18.1px; color:var(--ink-faint); margin-right:4px;
}
.df-home-price-list__fine{
  margin:16px 0 0; font-size:16.2px; line-height:1.75; color:var(--ink-faint);
}
.df-home-membership{ margin-top:56px; }
.df-home-membership__title{
  font-weight:700; font-size:23.8px; letter-spacing:.1em;
  color:var(--pine); text-align:center; margin:0 0 28px;
}
.df-home-membership__grid{
  display:grid; gap:20px;
}
@media(min-width:768px){ .df-home-membership__grid{ grid-template-columns:repeat(3,1fr); } }
.df-home-membership__card{
  padding:24px 22px; border:1px solid var(--line);
  background:rgba(255,255,255,.52); border-radius:4px;
}
.df-home-membership__card h4{
  margin:0; font-size:21px; font-weight:700; color:var(--pine);
}
.df-home-membership__en{
  margin:4px 0 16px; font-size:16.2px; color:var(--ink-faint);
  font-family:"Cormorant Garamond",serif; font-style:italic;
}
.df-home-membership__card dl{ margin:0; }
.df-home-membership__card dl div{
  display:flex; justify-content:space-between; gap:12px;
  padding:8px 0; border-bottom:1px solid var(--line-soft);
  font-size:17.1px;
}
.df-home-membership__card dt{ color:var(--ink-soft); }
.df-home-membership__card dd{ margin:0; font-weight:600; color:var(--pine); }
.df-home-membership__valid{
  margin:14px 0 0; font-size:16.2px; color:var(--cinnabar);
}
.df-home-calc{
  background:rgba(255,255,255,.58); border:1px solid var(--line); border-radius:4px;
  box-shadow:0 24px 50px -30px rgba(var(--pine-deep-rgb),.4);
  padding:32px 40px;
}
@media(min-width:1024px){ .df-home-calc{ padding:40px; } }
.df-home-calc__head{
  display:flex; align-items:center; gap:12px; margin-bottom:28px;
}
.df-home-calc__seal{ --seal-size:38px; flex-shrink:0; }
.df-home-calc__title{
  font-weight:700; font-size:23.8px; letter-spacing:.08em;
  color:var(--pine); margin:0;
}
.df-home-calc__fields{ display:flex; flex-direction:column; gap:24px; }
.df-home-calc__total{
  display:flex; align-items:flex-end; justify-content:space-between;
  padding-top:24px; border-top:1px solid var(--line);
}
.df-home-calc__total-label{
  font-size:18.1px; letter-spacing:.1em; color:var(--ink-faint);
}
.df-home-calc__total-amt{
  font-weight:900; font-size:2.143rem; line-height:1; color:var(--pine);
}
.df-home-calc__total-amt .df-home-price-list__cur{ vertical-align:top; }
.df-home-calc__note{
  font-size:16.2px; color:var(--ink-faint); text-align:right; margin:8px 0 0;
}
.df-home-calc__submit{
  display:block; text-align:center; margin-top:0;
  padding:16px; background:var(--pine-deep); color:var(--paper);
  letter-spacing:.18em; border-radius:4px;
}

/* ── Booking form ── */
.df-home-booking{
  position:relative;
  overflow:hidden;
}
@media(max-width:767px){
  .df-home-booking.df-home-section{ padding-bottom:56px; }
}
.df-home-booking__glow{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:480px; height:480px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--cinnabar-rgb),.06), transparent 60%);
}
.df-home-booking__inner{
  position:relative; max-width:760px; margin:0 auto;
}
.df-home-booking__head{ text-align:center; margin-bottom:48px; }
.df-home-form{
  background:rgba(255,255,255,.58); border:1px solid var(--line); border-radius:4px;
  box-shadow:0 24px 60px -34px rgba(var(--pine-deep-rgb),.45);
  padding:28px 20px;
}
@media(min-width:768px){ .df-home-form{ padding:40px; } }
.df-home-form__grid{
  display:grid; gap:24px;
}
@media(min-width:768px){ .df-home-form__grid{ grid-template-columns:1fr 1fr; } }
.df-home-form__grid + .df-home-form__grid{ margin-top:24px; }
.df-home-form label{ display:block; }
.df-home-form label span{
  display:block; font-size:19px; letter-spacing:.06em;
  color:var(--pine); margin-bottom:8px;
}
.df-home-form input,
.df-home-form select{
  width:100%; padding:14px 16px;
  background:var(--paper-deep); border:1px solid var(--line);
  border-radius:4px; font-family:"Noto Serif TC",serif;
  font-size:20px; color:var(--ink);
  transition:border-color .25s;
}
.df-home-form input:focus,
.df-home-form select:focus{
  outline:none; border-color:var(--cinnabar);
}
.df-home-form input::placeholder{ color:var(--ink-faint); }
.df-home-form__submit{
  width:100%; margin-top:24px; padding:16px;
  background:var(--cinnabar); color:var(--shell-deep);
  font-size:20px; letter-spacing:.2em; border:0; border-radius:4px;
  cursor:pointer; font-family:"Noto Serif TC",serif;
  box-shadow:0 14px 34px -14px rgba(var(--cinnabar-rgb),.6);
}
.df-home-form__success{
  display:none; text-align:center; font-size:18.1px;
  letter-spacing:.06em; color:var(--pine);
  padding:12px 16px; margin-top:24px;
  background:var(--paper-deep); border:1px solid var(--line); border-radius:4px;
}
.df-home-form__success.show{ display:block; }
.df-home-form__legal{
  text-align:center; font-size:16.2px; letter-spacing:.05em;
  color:var(--ink-faint); margin:16px 0 0;
}

/* ── Unified home trust lines (hero + trust strip) ── */
.df-home-trust-lines{
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.df-home-trust-line{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:8px 12px; margin:0; line-height:1.45;
  font-size:17.1px; letter-spacing:.08em; color:var(--ink-soft);
}
.df-home-trust-line--lead{
  font-size:18.1px; color:var(--pine);
}
.df-home-trust-line__group{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
}
.df-home-hero__main .df-home-trust-lines{
  align-items:flex-start; margin:14px 0 18px;
}
.df-home-hero__main .df-home-trust-line{ justify-content:flex-start; }
.df-home-trust__credentials .df-home-trust-lines{ margin-top:18px; max-width:52rem; margin-left:auto; margin-right:auto; }
.df-home-trust-line__star{ color:var(--ochre); font-size:18px; line-height:1; }
.df-home-trust-line__sep{ color:var(--line); user-select:none; }
.df-home-trust-line__emph{ font-weight:700; color:var(--pine); letter-spacing:.1em; }
.df-home-hero__main .df-home-trust-line__emph{ color:var(--pine-deep); }
.df-home-trust-line--sub{ display:none; }

.df-home-trust-specs{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px 12px; margin-top:4px; width:100%;
}
.df-home-hero__main .df-home-trust-specs{ justify-content:flex-start; }
.df-home-trust-spec{
  display:inline-flex; padding:8px 16px; border:1px solid var(--line); border-radius:4px;
  background:rgba(var(--paper-rgb),.72); text-decoration:none;
  transition:border-color .25s, background .25s, box-shadow .25s;
}
.df-home-trust-spec:hover{
  border-color:var(--ochre); background:var(--paper);
  box-shadow:0 6px 18px -12px rgba(var(--pine-rgb),.35);
}
.df-home-trust-spec__title{
  margin:0; font-weight:700; font-size:1.429rem; letter-spacing:.06em;
  color:var(--pine); line-height:1.2;
}
.df-home-trust-spec--focus{
  border-color:rgba(var(--cinnabar-rgb),.35);
  background:rgba(var(--cinnabar-rgb),.06);
}
.df-home-trust-spec--focus .df-home-trust-spec__title{ color:var(--cinnabar); }
.df-home-trust-spec--focus:hover{ border-color:var(--cinnabar); }

/* ── Hero trust micro-block (legacy) ── */
.df-home-hero__trust{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px;
  font-size:18.1px; letter-spacing:.08em; color:var(--pine);
  margin:16px 0 20px;
  position:relative; z-index:1;
}
.df-home-hero__trust-star{ color:var(--ochre); font-size:19px; }
.df-home-hero__trust-sep{ color:var(--ink-faint); }
.df-home-hero__trust-emph{ font-weight:700; color:var(--pine-deep); letter-spacing:.1em; }
.df-home-hero__trust--pay{
  color:var(--ochre); font-weight:600; letter-spacing:.1em;
  margin-top:0; margin-bottom:20px;
}

/* ── Booking funnel (2-step) ── */
.df-funnel__head{ margin-bottom:28px; }
.df-funnel__progress{
  display:flex; align-items:center; justify-content:center; gap:0;
  margin-bottom:10px;
}
.df-funnel__dot{
  width:10px; height:10px; border-radius:50%;
  background:var(--line); transition:background .25s, transform .25s;
}
.df-funnel__dot.is-active{ background:var(--cinnabar); transform:scale(1.15); }
.df-funnel__line{
  width:48px; height:2px; background:var(--line); margin:0 8px;
}
.df-funnel__step-label{
  text-align:center; font-size:17.1px; letter-spacing:.12em; color:var(--ink-faint);
}
.df-funnel__question{
  font-size:21.9px; letter-spacing:.06em; color:var(--pine);
  margin:0 0 20px; font-weight:500;
}
.df-funnel__options{
  display:grid; grid-template-columns:1fr; gap:10px;
  margin-bottom:24px;
}
@media(min-width:560px){
  .df-funnel__options{ grid-template-columns:1fr 1fr; gap:12px; }
}
@media(max-width:559px){
  .df-funnel__opt{ padding:12px 10px; font-size:17.1px; letter-spacing:.04em; }
}
.df-funnel__opt{
  min-height:48px; padding:14px 12px;
  background:var(--paper-deep); border:1px solid var(--line);
  border-radius:4px; font-family:"Noto Serif TC",serif;
  font-size:19px; letter-spacing:.06em; color:var(--ink);
  cursor:pointer; transition:border-color .2s, background .2s, box-shadow .2s;
}
.df-funnel__opt:hover{ border-color:var(--pine); background:rgba(var(--pine-rgb),.04); }
.df-funnel__opt:focus-visible{ outline:2px solid var(--ochre); outline-offset:2px; }
.df-funnel__opt.is-selected{
  border-color:var(--cinnabar); background:rgba(var(--cinnabar-rgb),.06);
  box-shadow:inset 0 0 0 1px var(--cinnabar);
}
.df-funnel__opt[aria-pressed="true"]{ font-weight:500; color:var(--pine); }
.df-funnel__date{ display:block; margin-bottom:8px; }
.df-funnel__date span{
  display:block; font-size:19px; letter-spacing:.06em;
  color:var(--pine); margin-bottom:8px;
}
.df-funnel__error{
  font-size:17.1px; letter-spacing:.04em; color:var(--cinnabar);
  margin:0 0 12px;
}
.df-funnel__prefill{
  font-size:17.1px; letter-spacing:.06em; color:var(--pine);
  padding:10px 14px; margin:16px 0 0;
  background:rgba(var(--pine-rgb),.06); border-radius:4px;
  border-left:3px solid var(--ochre);
}
.df-funnel__nav{ margin-top:28px; }
.df-funnel__nav--split{
  display:flex; flex-direction:column; gap:16px; align-items:stretch;
}
@media(min-width:480px){
  .df-funnel__nav--split{
    flex-direction:row; align-items:center; justify-content:space-between;
  }
}
.df-funnel__next{ width:100%; padding:16px; border:0; cursor:pointer; }
.df-funnel__back{
  background:none; border:0; padding:12px 0; cursor:pointer;
  font-family:"Noto Serif TC",serif; font-size:19px;
}
.df-funnel__submit{ width:100%; margin-top:0 !important; }
@media(min-width:480px){ .df-funnel__submit{ width:auto; flex:1; max-width:320px; margin-left:auto; } }
.df-funnel__step[hidden]{ display:none !important; }

/* ── Mobile sticky conversion bar ── */
.df-sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:45;
  display:flex; gap:10px; padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background:rgba(250,247,242,.94); backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  box-shadow:0 -8px 32px -12px rgba(var(--pine-deep-rgb),.25);
}
.df-sticky-cta[hidden]{ display:none !important; }
@media(min-width:1024px){ .df-sticky-cta{ display:none !important; } }
.df-sticky-cta__btn{
  flex:1; min-height:48px; display:inline-flex; align-items:center; justify-content:center;
  font-family:"Noto Serif TC",serif; font-size:19px; letter-spacing:.14em;
  border-radius:4px; text-decoration:none; transition:transform .2s;
}
.lang-en .df-sticky-cta__btn,
.lang-en .df-funnel__label,
.lang-en .df-funnel__submit,
.lang-en .df-home-calc__label,
html[lang="en"] .df-sticky-cta__btn,
html[lang="en"] .df-funnel__label,
html[lang="en"] .df-funnel__submit,
html[lang="en"] .df-home-calc__label{
  font-family:"Noto Serif",Georgia,"Times New Roman",serif; letter-spacing:.08em;
}
.df-sticky-cta__btn:active{ transform:scale(.98); }
.df-sticky-cta__btn--primary{
  background:var(--cinnabar); color:var(--shell-deep);
  box-shadow:0 8px 24px -10px rgba(var(--cinnabar-rgb),.55);
}
.df-sticky-cta__btn--wa{
  background:var(--pine-deep); color:var(--paper);
  box-shadow:0 8px 24px -10px rgba(var(--pine-deep-rgb),.55);
}
@media(max-width:1023px){
  body.sticky-cta-visible .df-wa-float,
  body:has(.df-sticky-cta:not([hidden])) .df-wa-float{
    /* sticky 底欄已含 WhatsApp，隱藏浮鈕避免雙重疊壓 */
    visibility:hidden;
    pointer-events:none;
    opacity:0;
  }
  body.sticky-cta-visible{
    padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px));
  }
  body.sticky-cta-visible .df-footer{
    padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px));
  }
}

/* ── Reviews header ── */
.df-home-reviews-head{
  text-align:center; max-width:36rem; margin:0 auto 56px;
}

/* ── Social header ── */
.df-home-social-head{
  display:flex; flex-direction:column; gap:24px; margin-bottom:40px;
}
@media(min-width:768px){
  .df-home-social-head{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
}

.df-home-about-body .u-cinnabar{ color:var(--cinnabar); }
.df-home-tags-wrap{ margin-top:56px; }
.df-home-link{ font-size:19px; letter-spacing:.12em; color:var(--cinnabar); }
.df-home-link--sm{ font-size:18.1px; }
.df-home-sub--md{ max-width:28rem; margin-top:16px; }
.df-home-creed__wash{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 70% 30%, rgba(174,138,71,.12), transparent 55%); }
.df-home-creed__inner{ position:relative; max-width:48rem; }
.df-home-creed__quote em{ color:var(--ochre-light); font-style:normal; }
.df-home-reviews-head p{ font-size:19px; color:var(--ink-soft); margin-top:16px; }
.df-home-reviews-head strong{ color:var(--pine); font-weight:600; }
.df-home-reviews-cta-wrap{ text-align:center; margin-top:40px; }
.df-home-reviews-cta-wrap .df-reviews-cta{ margin-bottom:16px; }
.df-home-booking__head{ text-align:center; margin-bottom:48px; }
.df-home-booking__glow{ position:absolute; top:0; left:50%; transform:translateX(-50%); width:480px; height:480px; border-radius:50%; pointer-events:none; background:radial-gradient(circle, rgba(var(--cinnabar-rgb),.06), transparent 60%); }
.overflow-hidden{ overflow:hidden; }
