
  :root{
    --cream:#f6f1ea;
    --cream-deep:#efe6d8;
    --ink:#211d1a;
    --ink-soft:#4a4340;
    --gold:#a9804f;
    --gold-deep:#7c5c37;
    --rose:#b98a7c;
    --line:rgba(33,29,26,0.12);
    --white:#fffdfa;
    --shadow: 0 20px 60px rgba(33,29,26,0.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;
    /* sitelink / anchor traffic lands mid-page — keep the section heading clear of the fixed nav */
    scroll-padding-top:92px;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.serif{
    font-family:'Cormorant Garamond','Songti SC','STSong',serif;
    font-weight:500;
    letter-spacing:0.02em;
  }
  .cn{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif; font-weight:300;}
  .cn.serif{font-family:'Songti SC','STSong',serif; font-weight:500;}
  a{color:inherit; text-decoration:none;}
  img{display:block; max-width:100%;}
  main{display:flex; flex-direction:column;}
  main > .hero{order:1;}
  main > .trust-strip{order:2;}
  main > .about{order:3;}
  main > .gallery-teaser{order:4;}
  main > .services{order:5;}
  main > .grad-band{order:6;}
  main > .standards{order:7;}
  main > .cta{order:8;}
  main > .faq{order:9;}
  .wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-size:12px;
    letter-spacing:0.32em;
    text-transform:uppercase;
    color:var(--gold-deep);
    margin:0 0 14px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 34px;
    border:1px solid var(--ink);
    color:var(--ink);
    font-size:13px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    transition:transform .18s ease, background .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
    background:transparent;
  }
  .btn:hover{background:var(--ink); color:var(--cream);}
  .btn:active{transform:scale(.96);}
  .btn.primary{background:var(--ink); color:var(--cream);}
  .btn.primary:hover{background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;}
  .btn.light{border-color:rgba(255,255,255,.65); color:#fff;}
  .btn.light:hover{background:#fff; color:var(--ink);}
  [data-language-fragment][hidden]{display:none !important;}
  .lang-en{font-size:.82em; letter-spacing:.04em; opacity:.72;}
  .hero-proofline{
    margin:16px 0 0; max-width:760px; color:rgba(255,255,255,.88);
    font-size:12px; line-height:1.65; letter-spacing:.08em; text-transform:uppercase;
    text-shadow:0 2px 14px rgba(0,0,0,.55);
  }

  /* STICKY BOOK ME CTA */
  .sticky-book{
    position:fixed; right:28px; bottom:calc(28px + env(safe-area-inset-bottom, 0px)); z-index:190;
    background:var(--gold-deep); color:#fff; font-family:'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;
    font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
    padding:15px 24px; border-radius:3px; box-shadow:0 10px 26px rgba(33,29,26,.2);
    display:flex; align-items:center; gap:8px;
    opacity:0; transform:translateY(16px) scale(.94); pointer-events:none;
    transition:opacity .35s ease, transform .35s ease, background .3s ease, box-shadow .3s ease;
  }
  .sticky-book.show{opacity:1; transform:none; pointer-events:auto;}
  .sticky-book:hover{background:var(--ink); box-shadow:0 18px 40px rgba(33,29,26,.4);}
  .sticky-book:active{transform:scale(.95);}
  .sticky-book .cn-inline{display:block; font-size:10.5px; letter-spacing:.04em; text-transform:none; color:rgba(255,255,255,.75); margin-top:2px;}
  @media (max-width:640px){
    .sticky-book{
      left:50%; right:auto; bottom:calc(12px + env(safe-area-inset-bottom, 0px));
      width:auto; max-width:76vw; justify-content:center; padding:11px 18px;
      border-radius:999px; font-size:10.5px; white-space:nowrap;
      transform:translate(-50%,16px) scale(.94);
    }
    .sticky-book.show{transform:translateX(-50%);}
    .sticky-book .cn-inline{display:none;}
  }

  /* NAV */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:200;
    padding:22px 0;
    transition:.4s ease;
    background:transparent;
  }
  header.nav.scrolled{
    background:rgba(246,241,234,0.92);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    padding:14px 0;
    box-shadow:0 1px 0 var(--line);
  }
  .nav-inner{display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:0 auto; padding:0 32px;}
  .logo{font-family:'Cormorant Garamond',serif; font-size:22px; letter-spacing:0.3em; color:var(--ink);}
  header.nav:not(.scrolled) .logo, header.nav:not(.scrolled) .nav-links a, header.nav:not(.scrolled) .nav-toggle span{color:#fff;}
  .nav-links{display:flex; gap:30px; font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase;}
  .nav-links a{position:relative; padding-bottom:4px;}
  .nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
  .nav-links a:hover::after{transform:scaleX(1);}
  .nav-links a.nav-book-btn{
    padding:10px 20px; border-radius:3px; background:var(--gold-deep); color:#fff !important;
    transition:transform .2s ease, background .3s ease, box-shadow .3s ease;
    box-shadow:0 6px 18px rgba(124,92,55,.28);
  }
  .nav-links a.nav-book-btn::after{display:none;}
  .nav-links a.nav-book-btn:hover{background:var(--ink); transform:translateY(-1px); box-shadow:0 10px 22px rgba(33,29,26,.3);}
  .nav-links a.nav-book-btn:active{transform:scale(.96);}
  .nav-actions{display:flex; align-items:center; gap:10px; margin-left:-12px;}
  .language-switch{display:inline-flex; align-items:center; gap:3px; margin-left:4px;}
  .language-switch button{appearance:none; border:0; background:transparent; color:inherit; padding:7px 4px; font:500 10px 'Jost',sans-serif; letter-spacing:.12em; cursor:pointer; opacity:.52;}
  .language-switch button[aria-pressed="true"]{opacity:1; border-bottom:1px solid currentColor;}
  header.nav:not(.scrolled) .language-switch button{color:#fff;}
  .mobile-language-switch{display:none;}
  .nav-cta{display:none;}
  .nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:0; padding:6px; width:44px; height:44px; align-items:center; justify-content:center;}
  .nav-toggle span{width:24px; height:1px; background:var(--ink); display:block; transition:transform .3s ease, opacity .25s ease, background .3s ease;}
  .nav-toggle{position:relative; z-index:210;}
  .nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0; transform:scaleX(.4);}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  header.nav:not(.scrolled) .nav-toggle.open span{background:var(--ink);}

  /* HERO */
  .hero{
    position:relative; height:100vh; height:100svh; min-height:640px;
    display:flex; align-items:flex-end;
    color:#fff; overflow:hidden;
  }
  @media (min-width:641px){
    .hero{min-height:820px;}
  }
  /* the wrapper must not become a flex item of .hero — pin it behind instead */
  .hero picture{position:absolute; inset:0; display:block;}
  .hero img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    object-position:50% 50%;
    transform:none;
  }
  .hero::before{
    content:'';position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(15,12,10,.82) 0%, rgba(15,12,10,.57) 34%, rgba(15,12,10,.12) 61%, rgba(15,12,10,.04) 100%);
    z-index:1;
  }
  .hero-content{position:relative; z-index:2; width:100%; padding:0 32px 90px; max-width:1240px; margin:0 auto;}
  .hero .eyebrow{color:rgba(255,255,255,.92); text-shadow:0 2px 16px rgba(0,0,0,.6);}
  .hero h1{
    font-size:clamp(44px,7vw,92px);
    line-height:0.98; margin:0 0 20px; color:#fff; text-shadow:0 4px 26px rgba(0,0,0,.6);
  }
  .hero h1 em{font-style:italic; color:var(--cream-deep);}
  .hero p.sub{
    max-width:560px; font-size:16px; line-height:1.75; color:rgba(255,255,255,.94); margin:0 0 34px; font-weight:300; text-shadow:0 2px 14px rgba(0,0,0,.55);
  }
  .hero p.sub .cn{display:block; margin-top:6px; font-size:14.5px; color:rgba(255,255,255,.78); text-shadow:0 2px 14px rgba(0,0,0,.55);}
  .hero-meta{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:26px; text-shadow:0 2px 12px rgba(0,0,0,.55);}
  .hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .hero-pricing{
    margin:16px 0 0; max-width:580px; font-size:12.5px; line-height:1.75;
    color:rgba(255,255,255,.88); text-shadow:0 2px 10px rgba(0,0,0,.55);
  }
  .hero-pricing .cn{display:block; margin-top:3px; font-size:12px; color:rgba(255,255,255,.66);}
  @media (max-width:640px){ .hero-pricing{display:none;} }
  .hero-urgency{
    margin:18px 0 0; font-size:12px; letter-spacing:.03em; color:rgba(255,255,255,.72);
    text-shadow:0 2px 10px rgba(0,0,0,.5); display:flex; align-items:center; gap:8px;
  }
  .hero-urgency::before{content:'●'; color:var(--gold); font-size:8px;}
  .hero-urgency .cn{display:block; margin-top:2px; font-size:11px; color:rgba(255,255,255,.58);}
  .hero-positioning{max-width:590px; margin:0 0 30px; font-size:18px; line-height:1.7; color:rgba(255,255,255,.94); text-shadow:0 2px 14px rgba(0,0,0,.55);}
  .hero-positioning .lang-en{display:block; margin-top:5px; font-size:13px;}
  .sub-short{display:none;}
  @media (max-width:640px){
    /* --- MOBILE HERO -------------------------------------------------
       Use the rose portrait from the desktop story, with a mobile-specific
       focal point that preserves the eyes and surrounding flowers. */
    /* .hero is a <section>, so it inherits section{padding:80px 0} — that dead
       band was pushing the type block ~80px up off the bottom of the screen */
    .hero{background:var(--ink); height:100svh; min-height:680px; padding:0;}
    .hero picture{inset:0; height:100%;}
    .hero img{
      object-fit:cover;
      object-position:50% 50%;
      transform:none;
    }
    .hero::before{
      background:linear-gradient(180deg,
        rgba(20,16,13,.20) 0%,
        rgba(20,16,13,.05) 32%,
        rgba(20,17,14,.12) 54%,
        rgba(20,17,14,.76) 83%,
        rgba(20,17,14,.92) 100%);
    }
    .hero-content{padding:0 24px calc(34px + env(safe-area-inset-bottom,0px));}
    .m-hide{display:none;}
    .sub-full{display:none;}
    .sub-short{display:block;}
    .hero-meta{
      font-size:10.5px; letter-spacing:.22em; margin-bottom:13px;
      color:rgba(255,255,255,.62);
    }
    .hero h1{font-size:clamp(50px,14.5vw,66px); line-height:.92; margin:0 0 15px;}
    .hero p.sub{display:none;}
    .hero p.sub .cn{font-size:12.5px; margin-top:8px; letter-spacing:.02em;}
    /* one full-width primary action, one quiet text link */
    .hero-actions{flex-direction:column; align-items:stretch; gap:17px; flex-wrap:nowrap;}
    .hero-actions .btn.light{
      background:var(--cream); border-color:var(--cream); color:var(--ink);
      justify-content:center; padding:17px 22px; font-size:12.5px; letter-spacing:.16em;
    }
    .hero-actions .btn.light:hover{background:var(--cream); color:var(--ink);}
    .hero-actions .btn.primary,
    .hero-actions .btn.primary:hover{
      background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.35);
      border-radius:0; padding:0 0 7px; color:rgba(255,255,255,.9);
      align-self:flex-start; justify-content:flex-start;
      font-size:11.5px; letter-spacing:.2em;
    }
    .hero-urgency{display:none;}   /* also stated in the FAQ + booking section */
  }

  /* Short desktop windows (including high-DPI laptops or enlarged browser UI):
     compact the hero so its copy never rises into the fixed navigation. */
  @media (min-width:901px) and (max-height:820px){
    .hero-content{padding-bottom:38px;}
    .hero-meta{display:none;}
    .hero h1{font-size:clamp(48px,5.2vw,72px); margin-bottom:14px;}
    .hero p.sub{max-width:590px; font-size:14px; line-height:1.6; margin-bottom:18px;}
    .hero p.sub .cn{font-size:12.5px; margin-top:4px;}
    .hero-actions{gap:12px;}
    .hero-actions .btn{padding:13px 28px; font-size:11.5px;}
    .hero-pricing{margin-top:10px; max-width:620px; font-size:11.5px; line-height:1.55;}
    .hero-pricing .cn{font-size:10.5px; margin-top:2px;}
  }

  /* SECTION generic */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin:0 auto 64px; text-align:center;}
  .section-head h2{font-size:clamp(30px,4vw,46px); margin:0 0 18px;}
  .section-head p{color:var(--ink-soft); font-size:15.5px; line-height:1.8;}
  .center{text-align:center;}

  /* PHILOSOPHY */
  .philosophy{background:var(--ink); color:var(--cream);}
  .philosophy .wrap{max-width:820px; text-align:center;}
  .philosophy .eyebrow{color:var(--gold-deep);}
  .philosophy blockquote{
    font-family:'Cormorant Garamond',serif; font-style:italic;
    font-size:clamp(24px,3.4vw,34px); line-height:1.55; margin:0 0 30px; font-weight:400;
  }
  .philosophy .cn-block{color:rgba(246,241,234,.62); font-size:15px; line-height:1.9; max-width:640px; margin:0 auto;}

  /* IMMEDIATE TRUST — reassurance before visitors start comparing */
  .trust-strip{padding:0; background:var(--white); border-bottom:1px solid var(--line); content-visibility:visible;}
  .trust-grid{max-width:1160px; margin:0 auto; padding:23px 32px; display:grid; grid-template-columns:repeat(4,1fr);}
  .trust-item{padding:2px 22px; text-align:center; border-right:1px solid var(--line); font-size:13px; color:var(--ink);}
  .trust-item:last-child{border-right:0;}
  .trust-item strong{display:block; font:500 19px 'Cormorant Garamond','Songti SC',serif; margin-bottom:2px;}
  .trust-item span{display:block; color:var(--ink-soft); font-size:11px; letter-spacing:.04em;}

  /* ABOUT */
  .about{display:grid; grid-template-columns:0.85fr 1fr; gap:0; align-items:stretch;}
  .about-img{position:relative; min-height:560px;}
  .about-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%;}
  .about-text{display:flex; flex-direction:column; justify-content:center; padding:70px 72px;}
  .about-text h2{font-size:clamp(28px,3.6vw,42px); margin:0 0 24px;}
  .about-text p{font-size:15.5px; line-height:1.85; color:var(--ink-soft); margin:0 0 16px;}
  .about-text p.cn{font-size:14px; color:#8a8079;}
  .about-sig{margin-top:28px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; color:var(--gold-deep);}

  /* SERVICES */
  .services{background:var(--white);}
  .beauty-category{max-width:1120px; margin:0 auto 72px; padding:48px 50px 42px; background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .beauty-category-head{display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:end; margin-bottom:38px;}
  .beauty-category-head h3{margin:8px 0 0; max-width:390px; font-size:40px; line-height:1.08;}
  .beauty-category-head p{margin:0; max-width:600px; color:#726860; font-size:15px; line-height:1.9;}
  .beauty-options{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .beauty-option{padding:30px 28px 28px;}
  .beauty-option + .beauty-option{border-left:1px solid var(--line);}
  .beauty-option-label{display:block; margin-bottom:14px; color:var(--gold-deep); font-size:10px; letter-spacing:.18em; text-transform:uppercase;}
  .beauty-option h4{margin:0 0 12px; font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:500;}
  .beauty-option p{margin:0; color:#746a63; font-size:13px; line-height:1.8;}
  .beauty-category-foot{display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:30px;}
  .beauty-category-note{margin:0; color:#8b8179; font-size:12px; line-height:1.7;}
  .beauty-category .btn{flex:0 0 auto;}
  .deposit-box{
    max-width:980px; margin:0 auto 70px; background:var(--cream-deep); padding:44px 48px; border:1px solid var(--line);
  }
  .deposit-lede{font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:var(--gold-deep); margin:0 0 6px;}
  .deposit-lede .cn{display:block; font-family:'Jost',sans-serif; font-size:12px; font-weight:300; color:#9a8f86; margin-top:4px;}
  .deposit-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin:22px 0 30px;}
  .deposit-item h4{font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; margin:0 0 8px; color:var(--ink);}
  .deposit-item h4 .cn-inline{display:block; font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); font-weight:400; margin-top:3px;}
  .deposit-item p{font-size:13.5px; line-height:1.75; color:var(--ink-soft); margin:0;}
  .deposit-item p .cn{display:block; font-size:12px; color:#a49a90; margin-top:5px;}
  .deposit-note{font-size:13px; line-height:1.8; color:var(--ink-soft); border-top:1px solid var(--line); padding-top:18px; margin:14px 0 0;}
  .deposit-note .cn{display:block; font-size:11.5px; color:#a49a90; margin-top:4px;}
  .deposit-details{margin-top:24px; border-top:1px solid var(--line); padding-top:18px;}
  .deposit-details summary{cursor:pointer; color:var(--gold-deep); font-size:12px; letter-spacing:.06em; list-style-position:inside;}
  .deposit-details[open] summary{margin-bottom:16px;}
  .guarantee-band{
    display:flex; align-items:flex-start; gap:9px;
    background:rgba(169,128,79,.10); border:1px solid rgba(169,128,79,.28);
    border-radius:10px; padding:11px 14px; margin:0 0 18px;
    font-size:13px; line-height:1.55; color:var(--gold-deep); font-weight:400;
  }
  .guarantee-band .cn-inline{display:block; font-size:11.5px; color:#a08a6f; margin-top:3px; letter-spacing:0;}
  .tier-featured{position:relative; z-index:1; border-top:2px solid var(--gold); background:#fbf7f0; box-shadow:0 16px 38px rgba(33,29,26,.08);}
  .recommend-tag{position:absolute; top:18px; right:18px; background:var(--gold-deep); color:#fff; font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:7px 14px; box-shadow:0 6px 18px rgba(124,92,55,.4);}

  /* TERMS */
  .terms-list{max-width:840px; margin:0 auto; display:flex; flex-direction:column; gap:34px;}
  .terms-item{border-top:1px solid var(--line); padding-top:26px;}
  .terms-item h4{font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; color:var(--ink); margin:0 0 12px;}
  .terms-item h4 .cn-inline{display:block; font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); font-weight:400; margin-top:4px;}
  .terms-item p{font-size:13.5px; line-height:1.85; color:var(--ink-soft); margin:0;}
  .terms-item p .cn{display:block; font-size:12px; color:#a49a90; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line);}

  /* GRADUATION BAND */
  .grad-band{background:var(--ink); color:var(--cream); padding:56px 0;}
  .grad-inner{display:grid; grid-template-columns:190px 1fr; gap:38px; align-items:center; max-width:920px; margin:0 auto;}
  .grad-photo img{width:100%; height:auto; object-fit:cover; aspect-ratio:1/1;}
  .grad-copy h2{font-size:clamp(28px,3.6vw,40px); margin:0 0 20px; color:var(--cream);}
  .grad-copy p{font-size:15px; line-height:1.85; color:rgba(246,241,234,.72); margin:0 0 14px;}
  .grad-copy p.cn{font-size:13.5px; color:rgba(246,241,234,.5);}
  .grad-copy .btn{margin-top:14px;}
  @media (max-width:880px){
    .grad-band{padding:42px 0;}
    .grad-inner{grid-template-columns:104px 1fr; gap:22px;}
    .grad-copy h2{font-size:24px; margin-bottom:10px;}
    .grad-copy p{display:none;}
    .grad-copy .btn{padding:11px 14px; margin-top:4px; font-size:10px;}
  }

  /* STANDARDS */
  .standards{background:var(--cream-deep);}
  .standards{padding:64px 0;}
  .standards .section-head{margin-bottom:28px;}
  .standards-table-wrap{max-width:1000px; margin:0 auto; -webkit-overflow-scrolling:touch;}
  .standards-table{width:100%; max-width:1000px; margin:0 auto; border-collapse:collapse; background:var(--white);}
  .standards-table th, .standards-table td{border:1px solid var(--line); padding:20px 22px; text-align:left; vertical-align:top; font-size:13.5px; line-height:1.7; color:var(--ink-soft);}
  .standards-table thead th{background:var(--ink); color:var(--cream); font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:400;}
  .standards-table thead th .cn{display:block; font-size:10.5px; color:rgba(246,241,234,.6); margin-top:3px;}
  .standards-table td strong{display:block; font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:var(--ink); margin-bottom:4px;}
  .standards-table td .cn{display:block; font-size:12px; color:#a49a90; margin-top:5px;}
  .standards-note{max-width:1000px; margin:26px auto 0; text-align:center; font-size:12.5px; color:#9a8f86; line-height:2;}
  .standards-note .cn{display:block; font-size:11.5px; color:#b3a99f;}
  .standards-table-wrap,.standards-note{display:none;}
  .standards.expanded .standards-table-wrap{display:block;}
  .standards.expanded .standards-note{display:block;}
  .standards-toggle{display:block; margin:0 auto;}
  .tiers{display:grid; grid-template-columns:1fr 1.18fr 1fr; gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
  .tier{border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column;}
  .tier-img{position:relative; height:340px; overflow:hidden;}
  .tier-img img{width:100%; height:100%; object-fit:cover; object-position:var(--tier-pos, 50% 18%); transition:transform .8s ease;}
  .tier:hover .tier-img img, .tier:active .tier-img img{transform:scale(1.02);}
  .tier-tag{position:absolute; top:18px; left:18px; background:rgba(246,241,234,.92); color:var(--ink); font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:7px 14px;}
  .promo-tag{position:absolute; top:18px; right:18px; background:var(--gold-deep); color:#fff; font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:7px 14px; box-shadow:0 6px 18px rgba(124,92,55,.4);}
  .tiers-2{grid-template-columns:repeat(2,1fr); max-width:900px; margin:0 auto; border-left:1px solid var(--line); border-right:1px solid var(--line);}
  .tier-body{padding:38px 34px 42px; display:flex; flex-direction:column; flex:1;}
  .tier-body h3{font-size:26px; margin:0 0 4px;}
  .tier-body .cn-title{font-size:13.5px; color:#9a8f86; margin:0 0 18px;}
  .price{font-size:15px; color:var(--gold-deep); margin:0 0 4px; font-weight:400;}
  .price .amt{font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:600; color:var(--ink);}
  .duration{font-size:12.5px; color:#9a8f86; margin:0 0 20px;}
  .tier-desc{font-size:14px; line-height:1.75; color:var(--ink-soft); margin:0 0 22px;}
  .tier-desc .cn{display:block; font-size:12.5px; color:#a49a90; margin-top:6px;}
  .tier-list{list-style:none; margin:0 0 30px; padding:0; font-size:13px; color:var(--ink-soft); line-height:2; border-top:1px solid var(--line); padding-top:18px; flex:1;}
  .tier-list li{padding-left:16px; position:relative;}
  .tier-list li::before{content:'—'; position:absolute; left:0; color:var(--gold);}
  .tier-list .cn{display:block; color:#a49a90; font-size:11.5px;}
  .tier-table{width:100%; border-collapse:collapse; font-size:13px; color:var(--ink-soft); border-top:1px solid var(--line); margin-bottom:26px; flex:1;}
  .tier-table tr{border-bottom:1px solid var(--line);}
  .tier-table th, .tier-table td{text-align:left; padding:14px 0; vertical-align:top; font-weight:400;}
  .tier-table th{width:110px; padding-right:14px; color:var(--gold-deep); font-size:12.5px; letter-spacing:.02em;}
  .tier-table th .cn, .tier-table td .cn{display:block; font-size:11.5px; color:#a49a90; margin-top:3px; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;}
  .tier-body .btn{align-self:flex-start;}
  .tier-choice-note{
    margin:-7px 0 24px; padding:12px 14px; border-left:2px solid rgba(169,128,79,.55);
    background:rgba(169,128,79,.07); color:#665c53; font-size:14px; line-height:1.65;
  }
  .tier-featured .tier-choice-note{background:rgba(169,128,79,.12); border-left-color:var(--gold-deep); color:#54483e; font-weight:500;}
  .tier-highlights{display:flex; flex-wrap:wrap; gap:7px 14px; margin:0 0 24px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:12px; color:var(--ink-soft);}
  .tier-highlights > span::before{content:'\2713'; color:var(--gold-deep); margin-right:5px;}
  .tier-table{display:none;}
  .tier-table.expanded{display:table;}
  .package-detail-toggle{appearance:none; border:0; border-bottom:1px solid var(--ink); background:transparent; color:var(--ink); padding:0 0 5px; margin:0 0 26px; align-self:flex-start; cursor:pointer; font:400 11px 'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; letter-spacing:.1em; text-transform:uppercase;}
  .mobile-detail-toggle{display:none; width:100%; margin:-8px 0 26px; padding:12px 0; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; color:var(--gold-deep); font:500 11px 'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;}
  @media (max-width:640px){
    .tier-table.mobile-collapsed tr:nth-child(n+4){display:none;}
    .mobile-detail-toggle{display:block;}
    .tiers{grid-template-columns:1fr;}
    .tier-featured{border:1px solid var(--gold); box-shadow:0 14px 34px rgba(33,29,26,.07);}
  }
  .price-note{max-width:900px; margin:56px auto 0; text-align:center; font-size:12.5px; color:#9a8f86; line-height:2;}
  .price-note .cn{display:block; font-size:11.5px; color:#b3a99f;}

  /* GALLERY TEASER */
  .gallery-teaser{background:var(--cream-deep); padding:88px 0 82px;}
  .gallery-teaser .section-head{position:relative; margin-bottom:38px;}
  .gallery-teaser .section-head::after{
    content:'✧'; display:block; margin:22px auto 0; color:var(--gold); font-size:18px; letter-spacing:.3em;
  }
  .teaser-carousel{
    display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr); grid-template-rows:repeat(2,minmax(0,1fr));
    gap:18px; max-width:1160px; margin:0 auto 46px; padding:0 32px;
  }
  .tc-card{
    position:relative; width:100%; height:100%; min-height:300px; overflow:hidden; border-radius:2px;
    display:block; transition:transform .45s ease, box-shadow .45s ease;
  }
  .tc-card:first-child{grid-column:1; grid-row:1 / span 2; min-height:660px;}
  .tc-card:hover, .tc-card:active{transform:translateY(-5px); box-shadow:0 24px 50px rgba(33,29,26,.18);}
  .tc-card img{width:100%; height:100%; object-fit:cover; object-position:center; background:#171310; display:block; transition:opacity .45s ease, transform 1s cubic-bezier(.2,.7,.2,1);}
  .tc-card:hover img{transform:scale(1.018);}
  .tc-card img.lz{opacity:0;}
  .tc-card::before{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(180deg, rgba(20,17,14,0) 64%, rgba(20,17,14,.52) 100%);
  }
  .tc-card span{
    position:absolute; left:17px; right:17px; bottom:15px; z-index:2; color:rgba(255,255,255,.94);
    font-family:'Cormorant Garamond','Songti SC','STSong',serif; font-size:16px; font-weight:500; letter-spacing:.035em;
  }
  .tc-card:first-child span{left:24px; bottom:22px; font-size:21px;}
  .teaser-cta{text-align:center;}
  @media (max-width:820px){
    .gallery-teaser{padding:72px 0 68px;}
    .gallery-teaser .section-head{margin-bottom:30px;}
    .teaser-carousel{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:12px; padding:0 20px; margin:0 0 32px;}
    .tc-card{min-height:0; aspect-ratio:1/1;}
    .tc-card:first-child{grid-column:1 / span 2; grid-row:auto; min-height:0; aspect-ratio:4/5;}
    .tc-card span,.tc-card:first-child span{left:17px; right:17px; bottom:16px; font-size:17px;}
  }

  /* FAQ */
  .faq{background:var(--white);}
  .faq .section-head h2{font-size:clamp(30px,4.2vw,46px);}
  .faq-list{max-width:800px; margin:0 auto; border-top:1px solid var(--line);}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-h{margin:0;}
  .faq-q{
    display:flex; align-items:center; justify-content:space-between; width:100%;
    padding:26px 4px; cursor:pointer; gap:24px;
    background:none; border:0; color:inherit; font:inherit; text-align:left;
  }
  .faq-q-text{display:block; font-size:19px; font-weight:500;}
  .faq-q .cn{display:block; font-size:13px; color:#a49a90; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; margin-top:3px;}
  .faq-icon{font-size:20px; color:var(--gold-deep); transition:.3s; flex-shrink:0;}
  .faq-item.open .faq-icon{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .45s ease;}
  .faq-a-inner{padding:0 4px 28px; font-size:14.5px; line-height:1.85; color:var(--ink-soft); max-width:680px;}
  .faq-a-inner .cn{display:block; margin-top:10px; font-size:13px; color:#a49a90;}

  .review-bridge{background:var(--cream-deep); padding:72px 0; text-align:center;}
  .review-bridge blockquote{max-width:760px; margin:0 auto 16px; font:400 clamp(25px,3.4vw,38px)/1.45 'Cormorant Garamond','Songti SC',serif;}
  .review-bridge cite{font-style:normal; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep);}

  /* CTA */
  .cta{
    position:relative; padding:150px 0; text-align:center; color:#fff; overflow:hidden;
  }
  .cta img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%; filter:saturate(.68) brightness(.72);}
  .cta::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,9,7,.92) 0%, rgba(10,9,7,.96) 50%, rgba(10,9,7,.93) 100%);}
  .cta-inner{position:relative; z-index:2; max-width:640px; margin:0 auto; padding:52px 40px; background:rgba(8,7,6,.72); border-radius:4px; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);}
  .cta .eyebrow{color:#f5e2c2 !important; text-shadow:0 2px 16px rgba(0,0,0,.75); font-weight:600;}
  .promo-banner{
    display:inline-block; margin:0 0 20px; padding:10px 20px; border-radius:3px;
    background:rgba(169,128,79,.16); border:1px solid rgba(169,128,79,.4);
    font-size:12.5px; letter-spacing:.02em; color:#f5e2c2;
  }
  .promo-banner .cn{display:block; margin-top:3px; font-size:11.5px; color:rgba(255,255,255,.7);}
  .cta-trust-row{
    display:flex; flex-wrap:wrap; justify-content:center; gap:10px 14px; list-style:none;
    margin:0 0 30px; padding:0;
  }
  .cta-trust-row li{
    display:flex; flex-direction:column; align-items:center; gap:2px;
    font-size:11.5px; letter-spacing:.04em; color:rgba(255,255,255,.9);
    padding:9px 18px; border:1px solid rgba(255,255,255,.25); border-radius:3px;
  }
  .cta-trust-row li::before{content:'✓ '; color:var(--gold);}
  .cta-trust-row li .cn{font-size:10.5px; color:rgba(255,255,255,.62); margin-top:1px;}
  .cta h2{font-size:clamp(32px,5vw,54px); margin:0 0 20px; color:#fff; text-shadow:0 4px 28px rgba(0,0,0,.75);}
  .cta p{font-size:15px; line-height:1.85; color:rgba(255,255,255,.96); margin:0 0 36px; text-shadow:0 2px 14px rgba(0,0,0,.65);}
  .booking-review{margin:0 auto 32px; padding:20px 22px; max-width:560px; border-top:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); font:400 21px/1.55 'Cormorant Garamond','Songti SC',serif; color:#fff;}
  .booking-review cite{display:block; margin-top:10px; font:400 10px 'Jost',sans-serif; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.66);}
  .cta-note{margin-top:26px; font-size:12.5px; color:rgba(255,255,255,.85); line-height:1.9; text-shadow:0 2px 12px rgba(0,0,0,.6);}

  /* BOOKING / E-TRANSFER CARD */
  .booking-card{
    text-align:left; background:var(--cream); color:var(--ink);
    border-radius:4px; padding:44px 40px; margin:0 0 30px; box-shadow:0 18px 48px rgba(0,0,0,.22);
  }
  .booking-eyebrow{
    font-family:'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--gold-deep); font-weight:600; margin-bottom:22px; text-align:center;
  }
  .booking-eyebrow .cn-inline{display:block; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; font-size:11.5px; letter-spacing:.02em; text-transform:none; color:var(--ink-soft); font-weight:400; margin-top:4px;}
  .booking-progress{display:grid; grid-template-columns:repeat(3,1fr); max-width:620px; margin:0 auto 32px; color:rgba(255,255,255,.54);}
  .booking-progress-step{position:relative; padding:0 8px; text-align:center; font-size:10px; letter-spacing:.08em;}
  .booking-progress-step::before{content:attr(data-step); display:flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0 auto 8px; border:1px solid rgba(255,255,255,.42); border-radius:50%; background:rgba(10,9,7,.5); color:#fff;}
  .booking-progress-step:not(:last-child)::after{content:''; position:absolute; top:15px; left:calc(50% + 20px); right:calc(-50% + 20px); height:1px; background:rgba(255,255,255,.25);}
  .booking-progress-step.active,.booking-progress-step.done{color:#fff;}
  .booking-progress-step.active::before,.booking-progress-step.done::before{background:var(--gold-deep); border-color:var(--gold);}
  .booking-progress-step.done::before{content:'\2713';}
  .booking-stage3-title{margin:4px 0 20px; padding-top:4px; text-align:center; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); font-weight:500;}
  /* Step 2 only appears after Step 1's Cal.com booking is completed; Step 1 then hides */
  .step2-hidden{display:none;}
  .step1-hidden{display:none;}
  .cta .booking-copy{font-size:15px; line-height:1.8; color:var(--ink); margin:0 0 22px; text-align:center; text-shadow:none;}
  .cta .booking-copy .cn{display:block; margin-top:5px; font-size:12.5px; color:#a49a90; text-shadow:none;}
  .booking-email{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    background:var(--cream-deep); border-radius:14px;
    padding:18px 22px; margin:0 0 22px; font-family:'Jost',sans-serif; font-size:16px; letter-spacing:.01em;
  }
  .copy-btn{
    font-family:'Jost',sans-serif; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
    background:transparent; color:var(--ink); border:1px solid var(--ink); border-radius:20px; padding:8px 16px; cursor:pointer; transition:.25s; flex-shrink:0;
    min-height:44px; display:inline-flex; align-items:center; justify-content:center;
  }
  .copy-btn:hover{background:var(--ink); color:var(--cream);}
  .copy-btn.copied{background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;}

  /* agree checkbox that gates the e-transfer email */
  .booking-check{
    display:flex; gap:12px; align-items:flex-start; cursor:pointer; margin:0 0 24px;
    background:rgba(169,128,79,.08); border-radius:14px; padding:18px 20px;
  }
  .booking-check input{position:absolute; opacity:0; width:1px; height:1px;}
  .booking-check-box{
    flex-shrink:0; width:20px; height:20px; margin-top:1px; border-radius:5px;
    border:1.5px solid var(--gold-deep); background:var(--cream); position:relative; transition:.2s ease;
  }
  .booking-check-box::after{
    content:''; position:absolute; left:5px; top:1px; width:6px; height:11px;
    border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); opacity:0; transition:.15s ease;
  }
  .booking-check input:checked ~ .booking-check-box{background:var(--gold-deep); border-color:var(--gold-deep);}
  .booking-check input:checked ~ .booking-check-box::after{opacity:1;}
  .booking-check input:focus-visible ~ .booking-check-box{outline:2px solid var(--gold); outline-offset:2px;}
  .booking-check-text{font-size:13px; line-height:1.75; color:var(--ink-soft); text-shadow:none;}
  .booking-check-text .cn{display:block; margin-top:5px; font-size:12px; color:#a49a90;}
  .booking-check-link{color:var(--gold-deep); text-decoration:underline; text-underline-offset:2px;}
  .booking-check-link:hover{color:var(--ink);}
  .booking-check.locked{cursor:not-allowed;}
  .booking-check.locked .booking-check-box{opacity:.4;}
  .booking-check.locked .booking-check-text{opacity:.55;}
  #termsModalCheckLabel{
    opacity:0; max-height:0; margin:0; padding:0 20px; overflow:hidden;
    transition:opacity .4s ease, max-height .4s ease, margin .4s ease, padding .4s ease;
  }
  #termsModalCheckLabel.revealed{opacity:1; max-height:260px; margin:16px 0 0; padding:18px 20px;}
  .terms-hint{
    display:flex; align-items:center; gap:8px; font-size:12.5px; letter-spacing:.02em;
    color:var(--gold-deep); background:rgba(169,128,79,.08); border-radius:10px;
    padding:12px 16px; margin:0 0 14px;
  }
  .terms-hint.unlocked{color:#4a7c4e; background:rgba(74,124,78,.1);}
  .terms-read-btn{
    display:inline-flex; align-items:center; gap:8px; background:none; cursor:pointer;
    border:1px solid var(--gold-deep); color:var(--gold-deep); font-size:12.5px; letter-spacing:.08em;
    text-transform:uppercase; padding:11px 20px; border-radius:30px; margin:0 0 18px; transition:.25s ease;
  }
  .terms-read-btn:hover{background:var(--gold-deep); color:#fff;}
  .terms-read-btn.done{border-color:#4a7c4e; color:#4a7c4e;}
  .terms-read-btn.done:hover{background:#4a7c4e; color:#fff;}
  .agreement-form{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0 24px;}
  .agreement-field{display:flex; flex-direction:column; gap:7px;}
  .agreement-field.full{grid-column:1 / -1;}
  .agreement-field label{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:500;}
  .agreement-field input,.agreement-field select{
    width:100%; min-height:46px; border:1px solid var(--line); border-radius:10px;
    background:var(--white); color:var(--ink); padding:11px 13px; font:400 14px 'Jost',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;
  }
  .agreement-submit{grid-column:1 / -1; width:100%; justify-content:center; border-radius:30px; cursor:pointer;}
  .agreement-submit:disabled{opacity:.45; cursor:not-allowed;}
  .agreement-status{grid-column:1 / -1; margin:0 !important; padding:12px 14px; border-radius:10px; font-size:12.5px !important; line-height:1.65 !important; text-align:left; text-shadow:none !important; background:rgba(169,128,79,.08); color:var(--ink-soft) !important;}
  .agreement-status.success{background:rgba(74,124,78,.11); color:#365e39 !important;}
  .agreement-status.error{background:rgba(155,67,55,.09); color:#7a372f !important;}

  /* Terms & Conditions — popup modal, opened from the booking step */
  .terms-modal{
    position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center;
    padding:16px;
  }
  .terms-modal.open{display:flex;}
  .terms-modal-backdrop{position:absolute; inset:0; background:rgba(20,17,14,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);}
  .terms-modal-card{
    position:relative; background:var(--white); max-width:920px; width:100%; height:94vh; height:94dvh; max-height:94vh; max-height:94dvh;
    border-radius:20px; box-shadow:0 40px 100px rgba(0,0,0,.5); padding:36px 44px 26px;
    display:flex; flex-direction:column; opacity:0; transform:translateY(18px) scale(.97);
    transition:opacity .3s ease, transform .3s ease;
  }
  .terms-modal.open .terms-modal-card{opacity:1; transform:none;}
  .terms-modal-close{
    position:absolute; top:16px; right:18px; width:44px; height:44px; border-radius:50%; border:1px solid var(--line);
    background:var(--cream); color:var(--ink); font-size:22px; line-height:1; cursor:pointer; transition:.2s ease; z-index:2;
    display:flex; align-items:center; justify-content:center;
  }
  .terms-modal-close:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
  .terms-modal-head{padding-right:30px; margin-bottom:4px; flex-shrink:0;}

  /* exit-reassurance popup — shown if the Cal.com calendar is closed without booking */
  .confirm-modal{
    position:fixed; inset:0; z-index:550; display:none; align-items:center; justify-content:center; padding:20px;
  }
  .confirm-modal.open{display:flex;}
  .confirm-modal-backdrop{position:absolute; inset:0; background:rgba(20,17,14,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);}
  .confirm-modal-card{
    position:relative; background:var(--white); max-width:420px; width:100%;
    border-radius:20px; box-shadow:0 40px 100px rgba(0,0,0,.5); padding:40px 32px 32px; text-align:center;
    opacity:0; transform:translateY(18px) scale(.97); transition:opacity .3s ease, transform .3s ease;
  }
  .confirm-modal.open .confirm-modal-card{opacity:1; transform:none;}
  .confirm-modal-close{
    position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
    background:var(--cream); color:var(--ink); font-size:20px; line-height:1; cursor:pointer; transition:.2s ease;
    display:flex; align-items:center; justify-content:center;
  }
  .confirm-modal-close:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
  .confirm-modal-icon{font-size:30px; margin-bottom:12px;}
  .confirm-modal-card h3{font-family:'Cormorant Garamond',serif; font-size:24px; margin:0 0 14px; color:var(--ink);}
  .confirm-modal-card p{font-size:13.5px; line-height:1.85; color:var(--ink-soft); margin:0 0 26px;}
  .confirm-modal-card p .cn{display:block; margin-top:8px; font-size:12px; color:#a49a90;}

  /* scrollable terms box inside the modal — must read to the end before the checkbox unlocks */
  .terms-scroll{
    flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; border-top:1px solid var(--line); margin-top:12px;
    padding:24px 14px 14px; scroll-behavior:smooth; font-size:16px;
  }
  .terms-scroll::-webkit-scrollbar{width:8px;}
  .terms-scroll::-webkit-scrollbar-thumb{background:var(--gold-deep); opacity:.4; border-radius:4px;}
  .terms-scroll .terms-list{max-width:100%; gap:30px;}
  .terms-scroll .terms-item h4{font-size:21px;}
  .terms-scroll .terms-item p{font-size:15.5px; line-height:1.9;}
  .terms-scroll .terms-item p .cn{font-size:13.5px;}
  .terms-scroll-cue{
    text-align:center; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--gold-deep); padding:2px 0 0; opacity:.8; flex-shrink:0;
  }
  .terms-scroll-cue.done{display:none;}
  @media (max-width:640px){
    .terms-modal{padding:0;}
    .terms-modal-card{padding:26px 18px 18px; max-height:100vh; max-height:100dvh; height:100vh; height:100dvh; border-radius:0;}
    .terms-scroll{font-size:15px; padding:18px 6px 10px;}
    .terms-scroll .terms-item h4{font-size:18px;}
    .terms-scroll .terms-item p{font-size:14.5px; line-height:1.85;}
  }

  /* reveal / lock states for the e-transfer info */
  .booking-locked{
    display:flex; align-items:center; justify-content:center; text-align:center; flex-direction:column;
    gap:4px; padding:30px 20px; border:1.5px dashed var(--line); border-radius:14px;
    font-size:13px; color:#a49a90;
  }
  .booking-locked .cn{font-size:12px;}
  .booking-unlocked{display:none;}
  .booking-reveal.unlocked .booking-locked{display:none;}
  .booking-reveal.unlocked .booking-unlocked{display:block; animation:bookingFadeIn .45s ease;}
  @keyframes bookingFadeIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

  .booking-amount{
    display:flex; align-items:center; justify-content:space-between;
    background:rgba(169,128,79,.09); border-radius:14px;
    padding:18px 22px; margin:0 0 26px; font-size:13.5px; color:var(--ink-soft);
  }
  .booking-amount strong{font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--gold-deep);}
  .booking-actions{display:flex; gap:12px; flex-wrap:wrap;}
  .booking-actions .btn{
    flex:1; min-width:200px; text-align:center; font-size:12px; border-radius:30px; padding:16px 20px; letter-spacing:.06em;
  }
  .booking-actions .btn.light{background:transparent; border-color:var(--ink); color:var(--ink);}
  .booking-actions .btn.light:hover{background:var(--ink); color:var(--cream);}
  .booking-actions .btn.primary{background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;}
  .booking-actions .btn.primary:hover{background:var(--ink); border-color:var(--ink);}
  .booking-card-step .booking-copy{text-align:center; margin-bottom:24px;}
  .booking-card-step .booking-actions{justify-content:center;}
  .cta .booking-microcopy{
    text-align:center; font-size:12.5px; line-height:1.6; color:var(--ink-soft); text-shadow:none;
    margin:16px 0 0; padding:10px 16px; background:rgba(169,128,79,.08); border-radius:10px;
  }
  .cta .booking-microcopy .cn{display:block; margin-top:3px; font-size:11.5px; color:#a49a90; text-shadow:none;}
  .cta .booking-alt-contact{margin:16px 0 0; text-align:center; font-size:12.5px; color:var(--ink-soft); text-shadow:none;}
  .booking-alt-contact a{text-decoration:underline; color:var(--gold-deep);}
  .booking-alt-contact .cn{display:block; margin-top:3px; font-size:11.5px; color:#a49a90;}
  .booking-consult{margin:18px 0 0; text-align:center; font-size:13.5px; line-height:1.65; color:rgba(255,255,255,.72);}
  .booking-consult a{color:#f5e2c2; text-decoration:none; border-bottom:1px solid rgba(245,226,194,.55); padding-bottom:2px;}
  @media (max-width:560px){
    .booking-card{padding:32px 24px; border-radius:16px;}
    .faq .section-head h2{font-size:28px; line-height:1.18;}
    .agreement-form{grid-template-columns:1fr;}
    .agreement-field.full,.agreement-submit,.agreement-status{grid-column:1;}
    .booking-email{flex-direction:column; align-items:stretch; text-align:center;}
    .booking-actions{flex-direction:column;}
  }

  /* Conversion-first homepage order: the calendar appears before FAQ and secondary reading. */
  main{display:flex; flex-direction:column;}
  main > .hero{order:1;}
  main > .trust-strip{order:2;}
  main > .gallery-teaser{order:3;}
  main > .about{order:4;}
  main > .services{order:5;}
  main > .conversion-reviews{order:6;}
  main > .cta{order:7;}
  main > .faq{order:8;}
  main > .terms-modal{order:20;}
  main > .grad-band,
  main > .standards{display:none;}
  #booking-calendar{scroll-margin-top:104px;}

  .services{display:flex; flex-direction:column;}
  .services > .wrap:first-child{order:1;}
  .services > .tiers{order:2;}
  .services > .wrap{order:3;}
  .services > .beauty-category{order:4;}
  .services > .review-bridge{display:none;}
  .beauty-category[open]{padding-bottom:42px;}
  .beauty-summary{
    list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
    gap:20px; padding:4px 0 22px; color:var(--ink); font:500 12px 'Jost',sans-serif;
    letter-spacing:.14em; text-transform:uppercase;
  }
  .beauty-summary::-webkit-details-marker{display:none;}
  .beauty-summary::after{content:'＋'; font-size:18px; color:var(--gold-deep);}
  .beauty-category[open] .beauty-summary::after{content:'−';}

  .conversion-reviews{padding:92px 0; background:#211d1a; color:#fff;}
  .conversion-reviews .section-head{margin-bottom:38px;}
  .conversion-reviews .section-head h2{color:#fff;}
  .conversion-reviews .section-head p{color:rgba(255,255,255,.68);}
  .conversion-review-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
  .conversion-review-card{
    min-width:0; padding:30px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.035);
  }
  .conversion-review-card .stars{color:#d8b477; letter-spacing:.12em; font-size:13px;}
  .conversion-review-card blockquote{margin:18px 0; font:400 21px/1.55 'Cormorant Garamond','Songti SC',serif;}
  .conversion-review-card p{margin:0; color:rgba(255,255,255,.72); font-size:13px; line-height:1.8;}
  .conversion-review-card cite{display:block; margin-top:20px; color:#d8b477; font:500 10px 'Jost',sans-serif; letter-spacing:.12em; text-transform:uppercase;}
  .conversion-review-note{max-width:760px; margin:22px auto 0; text-align:center; font-size:12px; line-height:1.7; color:rgba(255,255,255,.56);}
  .conversion-review-more{margin-top:28px; text-align:center;}
  .conversion-review-more a{color:#fff; border-bottom:1px solid rgba(255,255,255,.45); padding-bottom:4px; font-size:11px; letter-spacing:.12em; text-transform:uppercase;}
  @media (max-width:640px){
    .hero-proofline{font-size:10.5px; line-height:1.7; letter-spacing:.045em; text-transform:none;}
    .conversion-reviews{padding:70px 0; overflow:hidden;}
    .conversion-review-grid{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:0 6vw 12px; scrollbar-width:none;}
    .conversion-review-grid::-webkit-scrollbar{display:none;}
    .conversion-review-card{flex:0 0 84vw; padding:25px; scroll-snap-align:center;}
    .conversion-review-card blockquote{font-size:20px;}
    .cta{padding:92px 0;}
    .cta-inner{padding:34px 18px;}
    .cta .promo-banner,.cta .cta-trust-row,.cta .booking-review{display:none;}
    #booking-calendar{scroll-margin-top:82px;}
  }

  /* FOOTER */
  footer{background:var(--ink); color:rgba(246,241,234,.7); padding:80px 0 30px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid rgba(246,241,234,.12);}
  .foot-logo{font-family:'Cormorant Garamond',serif; font-size:24px; letter-spacing:.28em; color:#fff; margin-bottom:16px;}
  .foot-grid p{font-size:13.5px; line-height:1.8; color:rgba(246,241,234,.55); max-width:280px;}
  .foot-col h4{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(246,241,234,.85); margin:0 0 18px; font-weight:400;}
  .foot-col a{display:block; font-size:13.5px; color:rgba(246,241,234,.6); margin-bottom:12px; transition:.25s;}
  .foot-col a:hover{color:var(--gold);}
  .footer-app-link{appearance:none; display:block; border:0; border-bottom:1px solid rgba(246,241,234,.28); background:transparent; color:rgba(246,241,234,.56); padding:0 0 3px; margin-top:20px; font:400 11px 'Jost',sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;}
  .footer-app-link:hover{color:var(--gold);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12px; color:rgba(246,241,234,.4); flex-wrap:wrap; gap:10px;}

  .reveal{opacity:0; transform:translateY(8px); transition:opacity .45s ease, transform .45s ease;}
  .reveal.in{opacity:1; transform:none;}

  @media (max-width: 980px){
    .about{grid-template-columns:1fr;}
    .about-img{min-height:380px;}
    .about-text{padding:56px 32px;}
    .tiers{grid-template-columns:1fr;}
    .beauty-category{margin-left:20px; margin-right:20px; padding:40px 30px 34px;}
    .beauty-category-head{grid-template-columns:1fr; gap:18px;}
    .beauty-options{grid-template-columns:1fr;}
    .beauty-option + .beauty-option{border-left:0; border-top:1px solid var(--line);}
    .beauty-category-foot{align-items:flex-start; flex-direction:column;}
    .foot-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
    .deposit-grid{grid-template-columns:1fr; gap:22px;}
    .deposit-box{padding:32px 24px;}
    .standards-table{font-size:12px;}
    .standards-table th, .standards-table td{padding:14px 12px;}
  }
  @media (max-width:720px){
    .trust-grid{grid-template-columns:1fr 1fr; padding:12px 16px;}
    .trust-item{padding:14px 8px;}
    .trust-item:nth-child(2){border-right:0;}
    .trust-item:nth-child(-n+2){border-bottom:1px solid var(--line);}
    .review-bridge{padding:58px 24px;}
  }
  @media (max-width: 560px){
    .standards-table-wrap{overflow-x:auto;}
    .standards-table{min-width:560px;}
  }

  /* accessibility, focus & motion preferences */
  a, button{-webkit-tap-highlight-color:transparent;}
  a:focus-visible, button:focus-visible, input:focus-visible{outline:2px solid var(--gold-deep); outline-offset:3px;}
  .skip-link{position:fixed; top:-80px; left:16px; z-index:400; background:var(--ink); color:#fff; padding:12px 22px; font-size:13px; letter-spacing:.08em; transition:top .25s ease;}
  .skip-link:focus{top:14px;}
  .nav-backdrop{position:fixed; inset:0; background:rgba(20,17,14,.45); opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:195;}
  .nav-backdrop.show{opacity:1; pointer-events:auto;}
  body.no-scroll{overflow:hidden;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *, *::before, *::after{animation-duration:.01ms !important; transition-duration:.01ms !important;}
    .reveal{opacity:1; transform:none;}
  }
  /* 导航单独在 900px 就切换成抽屉，与 graduation.html / gallery.html 保持一致。
     否则 721–900px 之间，横排导航会挤到 logo 上、甚至溢出视口。*/
  @media (max-width: 900px){
    .nav-inner{padding:0 20px;}
    .nav-links{position:fixed; top:0; right:0; height:100vh; height:100dvh; width:78%; max-width:340px; background:var(--cream); flex-direction:column; padding:110px 40px; gap:28px; transform:translateX(100%); transition:.4s ease; box-shadow:-10px 0 40px rgba(0,0,0,.15); color:var(--ink) !important; overflow-y:auto; overscroll-behavior:contain;}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{color:var(--ink) !important;}
    .nav-actions{margin:0; width:100%; display:flex; align-items:center; gap:14px;}
    .nav-actions .nav-book-btn{display:flex; flex:1; align-items:center; justify-content:center; min-height:44px; padding:8px 10px !important; font-size:10.5px !important; text-align:center;}
    .desktop-language-switch{display:none;}
    .mobile-language-switch{display:inline-flex; margin-left:auto; margin-right:6px; padding:2px; gap:2px; border:1px solid rgba(246,241,234,.5); border-radius:3px; background:rgba(246,241,234,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); position:relative; z-index:210;}
    .mobile-language-switch button{min-width:42px; min-height:40px; padding:8px 9px; color:var(--ink)!important; opacity:.72; border:0; border-radius:2px;}
    .mobile-language-switch button[aria-pressed="true"]{background:var(--gold-deep); color:#fff!important; opacity:1; border:0;}
    .nav-toggle{display:flex;}
    header.nav:not(.scrolled) .nav-toggle span{background:#fff;}
  }
  @media (max-width: 720px){
    .nav-links{position:fixed; top:0; right:0; height:100vh; height:100dvh; width:78%; max-width:340px; background:var(--cream); flex-direction:column; padding:110px 40px; gap:28px; transform:translateX(100%); transition:.4s ease; box-shadow:-10px 0 40px rgba(0,0,0,.15); color:var(--ink) !important; overflow-y:auto; overscroll-behavior:contain;}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{color:var(--ink) !important;}
    .nav-toggle{display:flex;}
    header.nav:not(.scrolled) .nav-toggle span{background:#fff;}
    section{padding:64px 0;}
    .foot-grid{grid-template-columns:1fr;}
  }
  /* 901–1120px：7 项横排在 30px 间距下会贴到 logo，这一档收窄间距 */
  @media (max-width:1120px) and (min-width:901px){ .nav-links{gap:22px;} }

  /* Short trust module: visible before pricing without becoming another long section. */
  .about{display:block; padding:72px 0; background:var(--cream);}
  .about-img{display:none;}
  .about-text{max-width:900px; margin:0 auto; padding:0 32px; text-align:center;}
  .about-text h2{max-width:760px; margin:0 auto 18px; font-size:clamp(30px,4vw,46px);}
  .about-text p{max-width:720px; margin:0 auto 12px; font-size:16px; line-height:1.75; color:#514943;}
  .about-sig{margin-top:20px;}

  /* Premium readability: quiet copy remains understated, but never faint or tiny. */
  .trust-item span{font-size:13px; color:#5d554f; letter-spacing:.02em;}
  .tier-body .cn-title,.duration{font-size:14px; color:#746a63;}
  .tier-desc{font-size:14.5px;}
  .tier-desc .cn,.tier-list .cn{font-size:14px; color:#71675f;}
  .tier-list,.tier-highlights{font-size:14px; letter-spacing:0;}
  .price-note,.price-note .cn{font-size:14px; color:#746a63;}
  .cta .booking-microcopy,.cta .booking-microcopy .cn,
  .cta .booking-alt-contact,.booking-alt-contact .cn{font-size:14px; color:#625950;}

  /* The $299 collection is the clear decision anchor. */
  .tier-featured{border:1px solid var(--gold); background:#f7efe3; box-shadow:0 22px 54px rgba(84,58,30,.15);}
  .tier-featured .price .amt{font-size:36px;}

  /* Skip layout and paint work for below-the-fold editorial sections. */
  .about,.gallery-teaser,.services,.grad-band,.standards,.review-bridge,.faq,.cta{content-visibility:auto; contain-intrinsic-size:1px 780px;}
