/* ============================================================
   PEARL ZADEH DDS — v8  ·  "The Dental Spa"
   Boutique wellness aesthetic · scroll-reveal choreography
   Class prefix: pz-   ·   Scoped under #pz-root for WP embed
   ============================================================ */

:root{
  /* Brand greens */
  --ink:#15231c;
  --evergreen:#0e2a23;
  --evergreen-2:#143a2f;
  --evergreen-3:#1c4a3c;
  --sage:#9cae96;
  --sage-soft:#c3cfbd;

  /* Warm spa neutrals (linen / stone / sand) */
  --cream:#f3ead9;
  --cream-2:#faf4e9;
  --linen:#ece2d0;
  --sand:#e2d4bd;
  --stone:#cdbda1;
  --taupe:#b09a7c;

  /* Metal + glow */
  --gold:#c2a45a;
  --gold-soft:#dcc589;
  --gold-deep:#a8893f;
  --amber:#e8c489;   /* candle glow */

  /* Type — strategic 3-family system */
  --font-display:'Fraunces', Georgia, 'Times New Roman', serif;   /* editorial luxury headlines */
  --font-accent:'Cormorant Garamond', Georgia, serif;             /* quotes · stats · flourishes */
  --font-fancy:'Playfair Display', Georgia, serif;                /* services header accent (swapped) */
  --font-body:'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif; /* clean readable body */

  /* Rhythm */
  --maxw:1280px;
  --gutter:clamp(20px, 5vw, 64px);
  --radius:24px;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);

  /* Fluid type scale */
  --fs-eyebrow:clamp(11px,.78rem,13px);
  --fs-body:clamp(15px,1.02rem,17px);
  --fs-lead:clamp(18px,1.4rem,23px);
  --fs-h3:clamp(22px,2.4vw,31px);
  --fs-h2:clamp(34px,5.6vw,72px);
  --fs-h1:clamp(46px,8.4vw,124px);
}

#pz-root, #pz-root *, #pz-root *::before, #pz-root *::after{ box-sizing:border-box; }
#pz-root{ margin:0; }

html, body{ margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.72;
  font-weight:400;
  letter-spacing:.004em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
/* Lenis */
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

#pz-root img{ max-width:100%; display:block; }
#pz-root a{ color:inherit; text-decoration:none; }
#pz-root button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
#pz-root h1,#pz-root h2,#pz-root h3,#pz-root h4{ margin:0; font-weight:500; line-height:1.03; letter-spacing:-.014em; font-optical-sizing:auto; }
#pz-root p{ margin:0; }
#pz-root ::selection{ background:var(--gold); color:#fff; }

/* ---------- Utility ---------- */
.pz-wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.pz-display{ font-family:var(--font-display); font-optical-sizing:auto; }
.pz-accent{ font-family:var(--font-accent); }
.pz-eyebrow{
  font-size:var(--fs-eyebrow); font-weight:600; letter-spacing:.36em; text-transform:uppercase;
  color:var(--gold-deep); display:inline-flex; align-items:center; gap:14px;
}
.pz-eyebrow::before{ display:none; }
.pz-eyebrow.is-light{ color:var(--gold-soft); }
.pz-eyebrow.is-center{ justify-content:center; }
.pz-eyebrow.is-center::after{ display:none; }
.pz-h2{ font-family:var(--font-display); font-size:var(--fs-h2); font-weight:500; line-height:1.0; }
.pz-h1 em, .pz-h2 em, .pz-philo-big em{ font-family:var(--font-accent); font-style:italic; font-weight:500; color:var(--gold-deep); letter-spacing:0; }
.pz-h2 em{ color:var(--gold-deep); }
.pz-lead{ font-size:var(--fs-lead); line-height:1.55; color:color-mix(in srgb, var(--ink) 76%, transparent); font-weight:300; }
.pz-section{ position:relative; padding-block:clamp(34px,4.4vw,64px); }
.pz-center{ text-align:center; }

/* Hairline rule (gold, calm — replaces old iridescent) */
.pz-rule{ height:1px; width:100%; background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold) 70%,transparent); opacity:.5; }

/* ---------- Buttons ---------- */
.pz-btn{
  position:relative; display:inline-flex; align-items:center; gap:12px;
  padding:17px 34px; border-radius:100px; font-size:14px; font-weight:600; letter-spacing:.02em;
  overflow:hidden; isolation:isolate; transition:transform .5s var(--ease), box-shadow .5s var(--ease), color .4s;
  will-change:transform;
}
.pz-btn svg{ width:16px; height:16px; transition:transform .5s var(--ease); }
.pz-btn:hover svg{ transform:translateX(4px); }
.pz-btn--solid{ background:var(--evergreen); color:var(--cream); box-shadow:0 14px 34px -14px rgba(14,42,35,.7); }
.pz-btn--solid::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(120deg,var(--evergreen-3),var(--evergreen-2)); transform:translateY(101%); transition:transform .55s var(--ease); }
.pz-btn--solid:hover{ transform:translateY(-3px); box-shadow:0 24px 48px -16px rgba(14,42,35,.78); }
.pz-btn--solid:hover::before{ transform:translateY(0); }
.pz-btn--gold{ background:linear-gradient(120deg,var(--gold),var(--gold-soft)); color:#3a2f12; box-shadow:0 16px 38px -14px rgba(168,137,63,.6); }
.pz-btn--gold:hover{ transform:translateY(-3px); box-shadow:0 26px 52px -16px rgba(168,137,63,.7); }
.pz-btn--ghost{ border:1px solid color-mix(in srgb,var(--ink) 26%,transparent); color:var(--ink); }
.pz-btn--ghost::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--evergreen); transform:translateY(101%); transition:transform .55s var(--ease); }
.pz-btn--ghost:hover{ color:var(--cream); border-color:var(--evergreen); }
.pz-btn--ghost:hover::before{ transform:translateY(0); }
.pz-btn--light{ border:1px solid rgba(243,234,217,.32); color:var(--cream); }
.pz-btn--light::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--cream); transform:translateY(101%); transition:transform .55s var(--ease); }
.pz-btn--light:hover{ color:var(--evergreen); border-color:var(--cream); }
.pz-btn--light:hover::before{ transform:translateY(0); }
.pz-magnetic{ display:inline-block; }

/* button text colour MUST beat #pz-root a / #pz-root button (ID specificity) */
#pz-root .pz-btn--solid{ color:var(--cream); background:var(--evergreen); }
#pz-root .pz-btn--gold{ color:#3a2f12; background:linear-gradient(120deg,var(--gold),var(--gold-soft)); }
#pz-root .pz-hero-sub{ text-align:center; margin-left:auto; margin-right:auto; }
#pz-root .pz-btn--ghost{ color:var(--ink); }
#pz-root .pz-btn--ghost:hover{ color:var(--cream); }
#pz-root .pz-btn--light{ color:var(--cream); }
#pz-root .pz-btn--light:hover{ color:var(--evergreen); }
#pz-root .pz-btn svg{ color:currentColor; }

/* ============================================================
   PRELOADER — botanical line-draw + curtain
   ============================================================ */
#pz-loader{
  position:fixed; inset:0; z-index:9999; background:var(--evergreen);
  display:grid; place-items:center; overflow:hidden;
}
#pz-loader .pz-load-inner{ position:relative; display:flex; flex-direction:column; align-items:center; gap:26px; }
#pz-loader svg{ width:108px; height:108px; overflow:visible; }
#pz-loader .pz-leaf path, #pz-loader .pz-leaf line{
  fill:none; stroke:var(--gold-soft); stroke-width:1.4; stroke-linecap:round;
  stroke-dasharray:var(--len); stroke-dashoffset:var(--len);
}
.pz-load-name{ font-family:var(--font-display); color:var(--cream); font-size:15px; letter-spacing:.5em; text-transform:uppercase; padding-left:.5em; opacity:0; }
.pz-load-bar{ width:200px; height:1px; background:rgba(243,234,217,.18); position:relative; overflow:hidden; }
.pz-load-bar span{ position:absolute; inset:0; transform-origin:left; transform:scaleX(0); background:linear-gradient(90deg,var(--gold),var(--gold-soft)); }
.pz-load-pct{ position:absolute; top:50%; right:var(--gutter); transform:translateY(-50%); font-family:var(--font-display); font-size:clamp(64px,16vw,200px); color:rgba(243,234,217,.08); font-weight:500; }
.pz-curtain{ position:fixed; inset:0; z-index:9998; pointer-events:none; display:flex; }
.pz-curtain i{ flex:1; background:var(--evergreen); transform:scaleY(0); transform-origin:bottom; }

/* ============================================================
   ATMOSPHERE — grain, cursor, light
   ============================================================ */
.pz-grain{ position:fixed; inset:0; z-index:9000; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.pz-cursor{ position:fixed; top:0; left:0; width:24px; height:24px; border:1px solid rgba(255,255,255,.4); border-radius:50%; pointer-events:none; z-index:9500; transform:translate(-50%,-50%); transition:width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s; background-color:rgba(255,255,255,.05); background-image:radial-gradient(circle at 34% 30%, rgba(255,255,255,.55), rgba(255,255,255,.06) 55%, rgba(150,195,215,.16) 100%); box-shadow:0 4px 12px rgba(0,0,0,.18), inset 0 1px 2px rgba(255,255,255,.7), inset 0 -3px 5px rgba(120,170,195,.3); -webkit-backdrop-filter:blur(1.2px) brightness(1.05); backdrop-filter:blur(1.2px) brightness(1.05); animation:pz-wobble 4.5s ease-in-out infinite; }
.pz-cursor.is-hidden{ opacity:0; }
@media (hover:none){ .pz-cursor{ display:none; } }
@keyframes pz-wobble{ 0%,100%{ border-radius:50% 50% 50% 50%; } 25%{ border-radius:48% 52% 53% 47%; } 50%{ border-radius:52% 48% 47% 53%; } 75%{ border-radius:49% 51% 50% 50%; } }
.pz-droplets{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }

/* ============================================================
   HEADER
   ============================================================ */
.pz-header{ position:fixed; top:0; left:0; width:100%; z-index:1000; padding:22px 0; transition:padding .5s var(--ease), background .5s var(--ease), box-shadow .5s var(--ease); }
.pz-header::before{ content:""; position:absolute; inset:0; background:color-mix(in srgb,var(--cream-2) 82%,transparent); backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2); opacity:0; transition:opacity .5s var(--ease); }
.pz-header.is-stuck{ padding:13px 0; box-shadow:0 1px 0 rgba(21,35,28,.06), 0 18px 40px -34px rgba(14,42,35,.5); }
.pz-header.is-stuck::before{ opacity:1; }
.pz-nav{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.pz-logo{ display:flex; align-items:center; gap:13px; font-family:var(--font-display); font-size:23px; letter-spacing:.02em; color:var(--ink); }
.pz-logo .pz-mark{ width:40px; height:40px; flex:none; }
img.pz-mark{ border-radius:10px; object-fit:cover; box-shadow:0 0 0 1px rgba(194,164,90,.22); }
.pz-footer img.pz-mark{ box-shadow:0 0 0 1px rgba(194,164,90,.42); }
.pz-logo b{ font-weight:600; }
.pz-logo small{ display:block; font-family:var(--font-body); font-size:9.5px; letter-spacing:.42em; text-transform:uppercase; color:var(--gold-deep); margin-top:3px; font-weight:600; }
.pz-menu{ display:flex; align-items:center; gap:34px; }
.pz-menu a{ position:relative; font-size:13.5px; font-weight:500; letter-spacing:.02em; color:color-mix(in srgb,var(--ink) 82%,transparent); }
.pz-menu a::after{ content:""; position:absolute; left:0; bottom:-6px; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease); }
.pz-menu a:hover::after{ transform:scaleX(1); transform-origin:left; }
.pz-header-cta{ display:flex; align-items:center; gap:18px; }
.pz-phone{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink); }
.pz-phone svg{ width:15px; height:15px; color:var(--gold-deep); }
.pz-burger{ display:none; width:46px; height:46px; border-radius:50%; border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); position:relative; }
.pz-burger i{ position:absolute; left:13px; width:20px; height:1.5px; background:var(--ink); transition:.4s var(--ease); }
.pz-burger i:nth-child(1){ top:18px; } .pz-burger i:nth-child(2){ top:23.5px; }
.pz-burger.is-open i:nth-child(1){ top:22px; transform:rotate(45deg); }
.pz-burger.is-open i:nth-child(2){ top:22px; transform:rotate(-45deg); }

.pz-drawer{ position:fixed; inset:0; z-index:999; background:var(--evergreen); clip-path:circle(0% at calc(100% - 46px) 46px); transition:clip-path .7s var(--ease); display:flex; flex-direction:column; justify-content:center; padding:var(--gutter); }
.pz-drawer.is-open{ clip-path:circle(150% at calc(100% - 46px) 46px); }
.pz-drawer a{ font-family:var(--font-display); font-size:clamp(30px,9vw,58px); color:var(--cream); padding:9px 0; border-bottom:1px solid rgba(243,234,217,.12); display:flex; justify-content:space-between; align-items:center; }
.pz-drawer a span{ font-family:var(--font-body); font-size:13px; color:var(--gold-soft); }
.pz-drawer .pz-drawer-foot{ margin-top:36px; color:var(--sage-soft); font-size:14px; line-height:1.9; }

/* ============================================================
   HERO — layered botanical spa portal
   ============================================================ */
.pz-hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding-top:120px; padding-bottom:60px;
  background:
    radial-gradient(120% 90% at 50% -10%, #fbf6ec 0%, var(--cream) 42%, var(--linen) 100%);
}
/* live WebGL silk/marble background */
#pz-silk{ position:absolute; inset:0; z-index:0; width:100%; height:100%; opacity:0; transition:opacity 1.2s var(--ease); }
#pz-silk.is-on{ opacity:.92; }
.pz-hero-video{ position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; opacity:.5; }
/* light scrim keeps headline legible over the flowing colour */
.pz-hero-scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(60% 50% at 50% 46%, rgba(250,244,233,.66), rgba(250,244,233,.12) 60%, transparent 78%); }
/* warm light rays */
.pz-rays{ position:absolute; inset:-20% 0 auto 0; height:120%; z-index:1; pointer-events:none; opacity:.7; mix-blend-mode:screen;
  background:
    conic-gradient(from 200deg at 50% 0%,
      transparent 0deg, rgba(232,196,137,.0) 8deg, rgba(232,196,137,.16) 14deg, transparent 20deg,
      transparent 30deg, rgba(232,196,137,.12) 38deg, transparent 46deg,
      transparent 70deg, rgba(232,196,137,.14) 78deg, transparent 86deg);
  filter:blur(2px); animation:pz-rays 26s ease-in-out infinite alternate; transform-origin:50% 0; }
@keyframes pz-rays{ to{ transform:rotate(6deg) scale(1.08); } }
/* soft mist blobs */
.pz-mist{ position:absolute; border-radius:50%; filter:blur(70px); z-index:1; pointer-events:none; }
.pz-mist.m1{ width:48vw; height:48vw; left:-14vw; top:8%; background:radial-gradient(circle, rgba(156,174,150,.5), transparent 68%); }
.pz-mist.m2{ width:40vw; height:40vw; right:-10vw; bottom:-6%; background:radial-gradient(circle, rgba(232,196,137,.4), transparent 66%); }
.pz-mist.m3{ width:30vw; height:30vw; left:38%; top:34%; background:radial-gradient(circle, rgba(195,207,189,.45), transparent 70%); }
/* particle canvas (pollen-in-sunlight) */
#pz-motes{ position:absolute; inset:0; z-index:2; pointer-events:none; }
/* botanical depth layers */
.pz-botany{ position:absolute; z-index:2; pointer-events:none; will-change:transform; }
.pz-botany svg{ display:block; }
.pz-botany.b-l{ left:-40px; bottom:-30px; width:min(38vw,430px); color:var(--evergreen-2); opacity:.92; }
.pz-botany.b-r{ right:-50px; top:-40px; width:min(34vw,400px); color:var(--evergreen-3); opacity:.9; transform:scaleX(-1); }
.pz-botany.b-r2{ right:6%; bottom:-20px; width:min(20vw,240px); color:var(--sage); opacity:.55; }
.pz-botany.b-l2{ left:8%; top:2%; width:min(16vw,190px); color:var(--sage); opacity:.5; }

.pz-hero-inner{ position:relative; z-index:5; width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); text-align:center; }
.pz-hero-badge{ display:inline-flex; align-items:center; gap:10px; padding:9px 18px 9px 12px; border-radius:100px; background:rgba(255,255,255,.5); border:1px solid rgba(168,137,63,.28); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--evergreen); margin-bottom:30px; }
.pz-hero-badge .pz-dot{ width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px rgba(194,164,90,.2); }
.pz-h1{ font-family:var(--font-display); font-size:var(--fs-h1); font-weight:430; line-height:.94; letter-spacing:-.028em; color:var(--ink); font-optical-sizing:auto; }
.pz-h1 .pz-line{ display:block; overflow:hidden; }
/* masked-line word spans must be block so GSAP transforms apply (inline transforms are ignored) */
.pz-w{ display:block; will-change:transform; }
.pz-h1 em{ font-style:italic; color:var(--gold-deep); }
.pz-hero-sub{ max-width:580px; margin:30px auto 0; text-align:center; font-size:var(--fs-lead); font-weight:300; line-height:1.55; color:color-mix(in srgb,var(--ink) 74%,transparent); }
.pz-hero-cta{ margin-top:42px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.pz-hero-trust{ margin-top:54px; display:inline-flex; align-items:center; gap:26px; flex-wrap:wrap; justify-content:center; padding:16px 26px; border-radius:100px; background:rgba(255,255,255,.42); border:1px solid rgba(21,35,28,.07); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.pz-hero-trust .pz-ht{ display:flex; align-items:center; gap:10px; font-size:12.5px; font-weight:500; color:color-mix(in srgb,var(--ink) 76%,transparent); }
.pz-hero-trust .pz-stars{ color:var(--gold); letter-spacing:2px; font-size:13px; }
.pz-hero-trust .pz-div{ width:1px; height:24px; background:rgba(21,35,28,.12); }
.pz-scrollcue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:6; display:flex; flex-direction:column; align-items:center; gap:9px; color:var(--gold-deep); font-size:10px; letter-spacing:.34em; text-transform:uppercase; }
.pz-scrollcue .pz-mouse{ width:22px; height:35px; border:1.4px solid var(--gold-deep); border-radius:14px; position:relative; }
.pz-scrollcue .pz-mouse::after{ content:""; position:absolute; left:50%; top:7px; width:3px; height:7px; border-radius:2px; background:var(--gold-deep); transform:translateX(-50%); animation:pz-wheel 1.7s var(--ease) infinite; }
@keyframes pz-wheel{ 0%{opacity:0; transform:translate(-50%,0);} 30%{opacity:1;} 100%{opacity:0; transform:translate(-50%,12px);} }

/* ============================================================
   MARQUEE
   ============================================================ */
.pz-marquee{ position:relative; padding:14px 0; background:var(--evergreen); overflow:hidden; }
.pz-marquee + .pz-marquee{ margin-top:-14px; }
.pz-mq-row{ display:flex; gap:30px; width:max-content; will-change:transform; }
.pz-mq-row.r2{ margin-top:6px; }
.pz-mq-item{ display:inline-flex; align-items:center; gap:40px; font-family:var(--font-display); font-size:clamp(12px,1.55vw,20px); color:var(--cream); font-style:italic; font-weight:400; white-space:nowrap; }
.pz-mq-item .pz-spark{ width:11px; height:11px; color:var(--gold); flex:none; }
.pz-mq-item.is-out{ color:transparent; -webkit-text-stroke:1px rgba(243,234,217,.4); }

/* ============================================================
   PHILOSOPHY — big line-mask reveal
   ============================================================ */
.pz-philo{ background:var(--cream); text-align:center; }
.pz-philo .pz-wrap{ max-width:1080px; }
.pz-philo-big{ font-family:var(--font-display); font-size:clamp(28px,4.4vw,58px); line-height:1.18; font-weight:400; color:var(--ink); letter-spacing:-.01em; }
.pz-philo-big .pz-lm{ display:block; overflow:hidden; }
.pz-philo-big em{ font-style:italic; color:var(--gold-deep); }
.pz-philo-big .pz-soft{ color:color-mix(in srgb,var(--ink) 40%,transparent); }
.pz-philo-leaf{ width:54px; height:54px; margin:0 auto 30px; color:var(--gold); }
.pz-philo-leaf path{ fill:none; stroke:currentColor; stroke-width:1.3; }

/* ============================================================
   ABOUT — arched portrait with door reveal
   ============================================================ */
.pz-about{ background:var(--linen); overflow:hidden; }
.pz-about-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(40px,6vw,90px); align-items:center; }
.pz-portrait-wrap{ position:relative; }
.pz-portrait{ position:relative; aspect-ratio:4/5; border-radius:230px 230px 26px 26px; overflow:hidden; box-shadow:0 50px 90px -50px rgba(14,42,35,.55); }
.pz-portrait .pz-ph{ position:absolute; inset:0; background:
   linear-gradient(160deg, rgba(14,42,35,.18), rgba(194,164,90,.14)),
   radial-gradient(120% 80% at 30% 18%, var(--sage-soft), var(--sage) 55%, var(--evergreen-2));
}
.pz-portrait .pz-ph::after{ content:""; position:absolute; inset:0; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode:overlay; }
.pz-portrait .pz-ph-label{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); color:rgba(243,234,217,.7); font-size:11px; letter-spacing:.25em; text-transform:uppercase; text-align:center; width:80%; }
.pz-portrait-img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; object-position:center; }
/* the reveal doors */
.pz-door{ position:absolute; inset:0; z-index:3; display:flex; pointer-events:none; }
.pz-door i{ flex:1; background:linear-gradient(160deg,var(--evergreen-2),var(--evergreen)); }
.pz-door i:first-child{ transform-origin:left; }
.pz-door i:last-child{ transform-origin:right; }
.pz-portrait-badge{ position:absolute; right:-26px; bottom:34px; width:118px; height:118px; z-index:5; }
.pz-portrait-badge .pz-rot{ position:absolute; inset:0; animation:pz-spin 22s linear infinite; }
.pz-portrait-badge .pz-rot text{ font-family:var(--font-body); font-size:8.2px; letter-spacing:3.4px; fill:var(--ink); text-transform:uppercase; font-weight:600; }
.pz-portrait-badge .pz-badge-core{ position:absolute; inset:32px; background:var(--evergreen); border-radius:50%; display:grid; place-items:center; color:var(--gold-soft); }
.pz-portrait-badge .pz-badge-core svg{ width:30px; height:30px; }
@keyframes pz-spin{ to{ transform:rotate(360deg); } }
.pz-portrait-frame{ position:absolute; inset:-14px; border:1px solid rgba(168,137,63,.4); border-radius:240px 240px 34px 34px; z-index:1; pointer-events:none; }

.pz-about-body .pz-h2{ margin:18px 0 22px; font-size:clamp(26px,3vw,42px); line-height:1.12; }
.pz-about-body .pz-h2 .pz-lm{ display:block; overflow:hidden; padding-bottom:.1em; }
.pz-about-body .pz-h2 .pz-altj{ font-family:var(--font-accent); font-weight:600; font-size:1.08em; }
.pz-about-sig{ margin-top:30px; font-family:var(--font-display); font-style:italic; font-size:34px; color:var(--evergreen); }
.pz-about-sig small{ display:block; font-family:var(--font-body); font-style:normal; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); margin-top:6px; font-weight:600; }
.pz-about-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:36px; }
.pz-about-stats .pz-as b{ font-family:var(--font-display); font-size:clamp(28px,2.2vw,38px); color:var(--evergreen); font-weight:500; display:block; line-height:1; }
.pz-about-stats .pz-as span{ font-size:11px; letter-spacing:.03em; color:color-mix(in srgb,var(--ink) 62%,transparent); }
.pz-about-stats .pz-as{ position:relative; }
.pz-about-stats .pz-as:not(:last-child)::after{ content:""; position:absolute; right:-9px; top:22%; height:56%; width:1px; background:rgba(14,42,35,.32); }

/* ============================================================
   SERVICES — pinned horizontal "treatment menu"  (dusk)
   ============================================================ */
.pz-services{ position:relative; background:
   radial-gradient(120% 120% at 78% 0%, #16463a 0%, var(--evergreen) 46%, #0b211b 100%);
   color:var(--cream); overflow:hidden; }
.pz-services .pz-svc-glow{ position:absolute; width:60vw; height:60vw; right:-20vw; top:-10vw; border-radius:50%; background:radial-gradient(circle, rgba(232,196,137,.22), transparent 64%); filter:blur(50px); pointer-events:none; }
.pz-services .pz-svc-botany{ position:absolute; left:-30px; bottom:-30px; width:min(26vw,320px); color:#0a1f19; opacity:.6; pointer-events:none; }
.pz-svc-head{ position:relative; z-index:3; padding:clamp(34px,4.4vw,60px) 0 0; }
.pz-svc-head .pz-wrap{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.pz-svc-head .pz-h2{ color:var(--cream); max-width:13ch; }
.pz-svc-head .pz-h2 em{ color:var(--gold-soft); }
.pz-svc-headnote{ max-width:340px; color:var(--sage-soft); font-weight:300; }
.pz-svc-progress{ position:relative; z-index:3; max-width:var(--maxw); margin:30px auto 0; padding-inline:var(--gutter); }
.pz-svc-progress .pz-track{ height:2px; background:rgba(243,234,217,.14); border-radius:2px; overflow:hidden; }
.pz-svc-progress .pz-track i{ display:block; height:100%; width:18%; background:linear-gradient(90deg,var(--gold),var(--gold-soft)); border-radius:2px; }

.pz-svc-pin{ position:relative; z-index:3; padding:26px 0 clamp(34px,4.4vw,60px); }
/* default = safe swipeable row (mobile / reduced-motion / no-JS) */
.pz-svc-track{ display:flex; gap:28px; padding-inline:var(--gutter); overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:18px; scrollbar-width:none; }
.pz-svc-track::-webkit-scrollbar{ display:none; }
.pz-svc-card{ position:relative; width:min(78vw,400px); flex:none; border-radius:24px; overflow:hidden; background:rgba(243,234,217,.05); border:1px solid rgba(243,234,217,.12); backdrop-filter:blur(6px); scroll-snap-align:center; }
.pz-svc-media{ position:relative; aspect-ratio:16/12; overflow:hidden; }
.pz-svc-card .pz-ph{ position:absolute; inset:0; z-index:0; background:radial-gradient(135% 130% at 28% 16%, #1d4f40 0%, var(--evergreen) 52%, #091d17 100%); }
.pz-svc-art{ position:absolute; inset:0; z-index:1; width:100%; height:100%; }
.pz-svc-img{ position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform .8s var(--ease); }
.pz-svc-card:hover .pz-svc-img{ transform:scale(1.12); }
.pz-svc-media .pz-slats{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; pointer-events:none; }
.pz-svc-media .pz-slats i{ flex:1; background:var(--evergreen-2); transform-origin:right; transform:scaleX(0); }
.pz-svc-num{ position:absolute; top:14px; left:16px; z-index:4; font-family:var(--font-display); font-size:15px; color:var(--gold-soft); letter-spacing:.1em; }
.pz-svc-icon{ position:absolute; right:16px; bottom:16px; z-index:4; width:46px; height:46px; border-radius:50%; background:rgba(14,42,35,.5); display:grid; place-items:center; color:var(--gold-soft); backdrop-filter:blur(6px); }
.pz-svc-icon svg{ width:22px; height:22px; }
.pz-svc-body{ padding:24px 26px 28px; }
.pz-svc-body h3{ font-family:var(--font-display); font-size:26px; color:var(--cream); margin-bottom:9px; }
.pz-svc-body p{ font-size:14px; color:var(--sage-soft); font-weight:300; line-height:1.6; }
.pz-svc-link{ margin-top:18px; display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft); }
.pz-svc-link svg{ width:14px; height:14px; transition:transform .4s var(--ease); }
.pz-svc-card:hover .pz-svc-link svg{ transform:translateX(4px); }
.pz-svc-hint{ position:relative; z-index:3; text-align:center; color:var(--sage-soft); font-size:11px; letter-spacing:.28em; text-transform:uppercase; padding-bottom:8px; }

/* PINNED STAGE — full-height horizontal scroll (desktop, set by JS) */
.pz-services.is-pinned{ height:100svh; display:flex; flex-direction:column; overflow:hidden; padding:0; }
.pz-services.is-pinned .pz-svc-head{ padding:clamp(78px,7vh,96px) 0 0; flex:0 0 auto; }
.pz-services.is-pinned .pz-svc-progress{ flex:0 0 auto; margin-top:12px; }
.pz-services.is-pinned .pz-svc-pin{ flex:1 1 auto; min-height:0; display:flex; align-items:center; padding:14px 0; }
.pz-services.is-pinned .pz-svc-track{ width:max-content; height:100%; align-items:center; overflow:visible; scroll-snap-type:none; padding-bottom:0; }
.pz-services.is-pinned .pz-svc-card{ display:flex; flex-direction:column; height:min(100%,540px); }
.pz-services.is-pinned .pz-svc-media{ aspect-ratio:auto; flex:1 1 auto; min-height:200px; }
.pz-services.is-pinned .pz-svc-body{ flex:0 0 auto; }
.pz-services.is-pinned .pz-svc-hint{ flex:0 0 auto; padding-bottom:18px; }

/* ============================================================
   EXPERIENCE — sticky stacking cards
   ============================================================ */
.pz-exp{ background:var(--cream); position:relative; }
.pz-exp-head{ text-align:center; margin-bottom:30px; }
.pz-exp-stack{ position:relative; }
.pz-exp-card{ position:sticky; border-radius:26px; overflow:hidden; padding:clamp(34px,5vw,66px); min-height:clamp(320px,46vh,440px);
  display:grid; grid-template-columns:1fr auto; gap:30px; align-items:end;
  box-shadow:0 40px 80px -50px rgba(14,42,35,.5); border:1px solid rgba(168,137,63,.18); }
.pz-exp-card:nth-child(1){ background:linear-gradient(150deg,#163f33,var(--evergreen)); color:var(--cream); }
.pz-exp-card:nth-child(2){ background:linear-gradient(150deg,var(--cream-2),var(--sand)); color:var(--ink); }
.pz-exp-card:nth-child(3){ background:linear-gradient(150deg,#1d4a3c,#0d2620); color:var(--cream); }
.pz-exp-card:nth-child(4){ background:linear-gradient(150deg,var(--linen),var(--stone)); color:var(--ink); }
.pz-exp-info{ max-width:560px; }
.pz-exp-card .pz-exp-k{ font-family:var(--font-display); font-size:clamp(60px,9vw,120px); line-height:.9; opacity:.18; font-weight:500; margin-bottom:14px; }
.pz-exp-card h3{ font-family:var(--font-display); font-size:clamp(28px,4vw,46px); margin-bottom:16px; }
.pz-exp-card p{ font-size:var(--fs-body); line-height:1.7; opacity:.86; max-width:46ch; }
.pz-exp-card.is-light p{ color:color-mix(in srgb,var(--ink) 72%,transparent); }
.pz-exp-emoji{ width:clamp(70px,9vw,120px); height:clamp(70px,9vw,120px); border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); }
.pz-exp-card.is-light .pz-exp-emoji{ background:rgba(14,42,35,.06); border-color:rgba(14,42,35,.12); }
.pz-exp-emoji svg{ width:46px; height:46px; }

/* ============================================================
   PROCESS — pinned scrubbed vine + steps  (your visit)
   ============================================================ */
.pz-proc{ position:relative; background:linear-gradient(180deg,var(--linen),var(--cream)); overflow:hidden; }
.pz-proc-head{ text-align:center; margin-bottom:50px; }
.pz-proc-stage{ position:relative; max-width:1080px; margin-inline:auto; padding-inline:var(--gutter); }
.pz-vine{ position:absolute; left:50%; top:0; height:100%; width:160px; transform:translateX(-50%); z-index:1; pointer-events:none; }
.pz-vine path{ fill:none; stroke:var(--gold); stroke-width:1.6; stroke-linecap:round; }
.pz-vine .pz-vine-leaf{ fill:var(--sage); opacity:.85; }
.pz-proc-steps{ position:relative; z-index:2; display:flex; flex-direction:column; gap:clamp(40px,7vw,90px); }
.pz-proc-step{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.pz-proc-step:nth-child(even){ direction:rtl; }
.pz-proc-step:nth-child(even) > *{ direction:ltr; }
.pz-proc-card{ background:var(--cream-2); border:1px solid rgba(168,137,63,.2); border-radius:22px; padding:clamp(26px,3.4vw,40px); box-shadow:0 30px 60px -46px rgba(14,42,35,.5); position:relative; }
.pz-proc-card .pz-pk{ font-family:var(--font-display); font-size:54px; color:var(--gold); line-height:1; font-weight:500; }
.pz-proc-card h3{ font-family:var(--font-display); font-size:clamp(24px,3vw,34px); margin:8px 0 12px; color:var(--evergreen); }
.pz-proc-card p{ color:color-mix(in srgb,var(--ink) 72%,transparent); line-height:1.7; }
.pz-proc-node{ justify-self:center; width:70px; height:70px; border-radius:50%; background:var(--evergreen); display:grid; place-items:center; color:var(--gold-soft); box-shadow:0 0 0 8px rgba(194,164,90,.12); position:relative; z-index:3; }
.pz-proc-node svg{ width:30px; height:30px; }

/* ============================================================
   BEFORE / AFTER — doors part to reveal slider
   ============================================================ */
.pz-ba{ background:var(--evergreen); color:var(--cream); overflow:hidden; position:relative; }
.pz-ba .pz-ba-glow{ position:absolute; width:50vw; height:50vw; left:-15vw; bottom:-15vw; border-radius:50%; background:radial-gradient(circle,rgba(156,174,150,.28),transparent 66%); filter:blur(50px); }
.pz-ba-grid{ position:relative; z-index:2; display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,80px); align-items:center; }
.pz-ba-copy .pz-h2{ color:var(--cream); margin:16px 0 20px; }
.pz-ba-copy .pz-h2 em{ color:var(--gold-soft); }
.pz-ba-copy p{ color:var(--sage-soft); font-weight:300; line-height:1.7; }
.pz-ba-frame{ position:relative; aspect-ratio:5/4; border-radius:24px; overflow:hidden; box-shadow:0 50px 90px -50px rgba(0,0,0,.6); border:1px solid rgba(243,234,217,.14); user-select:none; }
.pz-ba-img{ position:absolute; inset:0; }
.pz-ba-after{ background:radial-gradient(120% 100% at 40% 20%, #fff 0%, var(--cream-2) 40%, var(--sand) 100%); }
.pz-ba-before{ background:radial-gradient(120% 100% at 40% 20%, #d8d2c4 0%, #b9b2a0 60%, #8f8a79 100%); clip-path:inset(0 50% 0 0); }
.pz-ba-tag{ position:absolute; bottom:16px; z-index:4; font-size:11px; letter-spacing:.2em; text-transform:uppercase; padding:7px 14px; border-radius:100px; background:rgba(14,42,35,.6); color:var(--cream); backdrop-filter:blur(6px); }
.pz-ba-tag.t-before{ left:16px; } .pz-ba-tag.t-after{ right:16px; }
.pz-ba-handle{ position:absolute; top:0; left:50%; width:2px; height:100%; background:var(--cream); z-index:5; transform:translateX(-50%); }
.pz-ba-handle .pz-knob{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%; background:var(--cream); display:grid; place-items:center; color:var(--evergreen); box-shadow:0 10px 26px rgba(0,0,0,.4); cursor:ew-resize; }
.pz-ba-handle .pz-knob svg{ width:24px; height:24px; }
/* parting doors over the frame */
.pz-ba-doors{ position:absolute; inset:0; z-index:8; display:flex; pointer-events:none; }
.pz-ba-doors i{ flex:1; background:linear-gradient(160deg,#16463a,var(--evergreen)); }
.pz-ba-doors i:first-child{ transform-origin:left; border-right:1px solid rgba(194,164,90,.3); }
.pz-ba-doors i:last-child{ transform-origin:right; }

/* ============================================================
   STATS band
   ============================================================ */
.pz-stats{ background:var(--evergreen-2); color:var(--cream); position:relative; overflow:hidden; }
.pz-stats .pz-sheen{ position:absolute; top:0; left:-40%; width:40%; height:100%; background:linear-gradient(90deg,transparent,rgba(232,196,137,.14),transparent); transform:skewX(-18deg); }
.pz-stats-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center; }
.pz-stat b{ font-family:var(--font-display); font-size:clamp(46px,6vw,82px); font-weight:500; line-height:1; display:block; color:var(--cream); }
.pz-stat b em{ color:var(--gold-soft); font-style:normal; }
.pz-stat > span{ font-size:12.5px; letter-spacing:.06em; color:var(--sage-soft); margin-top:10px; display:block; }
.pz-stat{ position:relative; }
.pz-stat:not(:last-child)::after{ content:""; position:absolute; right:-15px; top:14%; height:72%; width:1px; background:rgba(243,234,217,.14); }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.pz-tst{ background:var(--cream); }
.pz-tst-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:46px; }
.pz-tst-rating{ display:flex; align-items:center; gap:14px; }
.pz-tst-rating .pz-g{ width:42px; height:42px; }
.pz-tst-rating b{ font-family:var(--font-display); font-size:30px; color:var(--evergreen); }
.pz-tst-rating .pz-stars{ color:var(--gold); letter-spacing:2px; }
.pz-tst-rating small{ font-size:12px; color:color-mix(in srgb,var(--ink) 60%,transparent); }
.pz-tst-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pz-tst-card{ background:var(--cream-2); border:1px solid rgba(168,137,63,.18); border-radius:22px; padding:34px 30px; position:relative; box-shadow:0 30px 60px -50px rgba(14,42,35,.4); }
.pz-tst-quote{ font-family:var(--font-display); font-size:60px; line-height:.6; color:var(--gold); opacity:.5; height:34px; }
.pz-tst-card p{ font-size:15.5px; line-height:1.75; color:color-mix(in srgb,var(--ink) 82%,transparent); margin:14px 0 24px; }
.pz-tst-foot{ display:flex; align-items:center; gap:13px; }
.pz-tst-av{ width:46px; height:46px; border-radius:50%; background:linear-gradient(140deg,var(--sage),var(--evergreen-2)); display:grid; place-items:center; color:var(--cream); font-family:var(--font-display); font-size:19px; }
.pz-tst-foot b{ font-size:14px; color:var(--ink); display:block; font-weight:600; }
.pz-tst-foot span{ font-size:11.5px; color:var(--gold-deep); letter-spacing:.04em; }
.pz-tst-note{ text-align:center; font-size:11px; color:color-mix(in srgb,var(--ink) 45%,transparent); margin-top:26px; letter-spacing:.02em; }

/* ============================================================
   GALLERY — bento with panel-wipe reveals
   ============================================================ */
.pz-gal{ background:var(--linen); }
.pz-gal-head{ text-align:center; margin-bottom:46px; }
.pz-gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:16px; }
.pz-gal-item{ position:relative; border-radius:18px; overflow:hidden; }
.pz-gal-item .pz-ph{ position:absolute; inset:-9%; }
.pz-gal-img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; }
.pz-gal-item .pz-wipe{ position:absolute; inset:0; z-index:3; background:linear-gradient(160deg,var(--evergreen-2),var(--evergreen)); transform-origin:bottom; transform:scaleY(0); }
.pz-gal-item.g-w{ grid-column:span 2; }
.pz-gal-item.g-a{ grid-column:span 2; grid-row:span 2; }
.pz-gal-cap{ position:absolute; left:0; bottom:0; z-index:4; width:100%; padding:18px; background:linear-gradient(0deg,rgba(14,42,35,.82),transparent); color:var(--cream); transform:translateY(8px); opacity:0; transition:.5s var(--ease); }
.pz-gal-item:hover .pz-gal-cap{ transform:translateY(0); opacity:1; }
.pz-gal-cap b{ font-family:var(--font-display); font-size:18px; display:block; }
.pz-gal-cap span{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-soft); }
.pz-ph-1{ background:linear-gradient(150deg,#1c4a3c,#0d2620); }
.pz-ph-2{ background:linear-gradient(150deg,var(--sand),var(--stone)); }
.pz-ph-3{ background:linear-gradient(150deg,var(--sage-soft),var(--sage)); }
.pz-ph-4{ background:linear-gradient(150deg,#fbf6ec,var(--sand)); }
.pz-ph-5{ background:linear-gradient(150deg,#163f33,var(--evergreen-3)); }
.pz-ph-6{ background:linear-gradient(150deg,var(--stone),var(--taupe)); }
.pz-ph-tex::after{ content:""; position:absolute; inset:0; opacity:.4; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='110'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode:overlay; }

/* ============================================================
   FAQ
   ============================================================ */
.pz-faq{ background:var(--cream); }
.pz-faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,6vw,90px); align-items:start; }
.pz-faq-aside .pz-h2{ margin:16px 0 20px; }
.pz-faq-aside p{ color:color-mix(in srgb,var(--ink) 70%,transparent); margin-bottom:26px; }
.pz-faq-list{ border-top:1px solid rgba(21,35,28,.12); }
.pz-faq-item{ border-bottom:1px solid rgba(21,35,28,.12); }
.pz-faq-q{ width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 4px; font-family:var(--font-display); font-size:clamp(19px,2.2vw,25px); color:var(--ink); }
.pz-faq-q .pz-pm{ position:relative; width:22px; height:22px; flex:none; }
.pz-faq-q .pz-pm::before,.pz-faq-q .pz-pm::after{ content:""; position:absolute; background:var(--gold-deep); border-radius:2px; transition:.45s var(--ease); }
.pz-faq-q .pz-pm::before{ top:50%; left:0; width:100%; height:1.6px; transform:translateY(-50%); }
.pz-faq-q .pz-pm::after{ left:50%; top:0; width:1.6px; height:100%; transform:translateX(-50%); }
.pz-faq-item.is-open .pz-pm::after{ transform:translateX(-50%) scaleY(0); }
.pz-faq-a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease); }
.pz-faq-a > div{ overflow:hidden; }
.pz-faq-a p{ padding:0 4px 28px; color:color-mix(in srgb,var(--ink) 70%,transparent); line-height:1.75; max-width:60ch; }
.pz-faq-item.is-open .pz-faq-a{ grid-template-rows:1fr; }

/* ============================================================
   CTA band — immersive dusk
   ============================================================ */
.pz-cta{ position:relative; background:radial-gradient(120% 120% at 50% 120%, #16463a, var(--evergreen) 50%, #0a1f19 100%); color:var(--cream); overflow:hidden; text-align:center; }
.pz-cta .pz-cta-orb{ position:absolute; width:46vw; height:46vw; left:50%; top:36%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(232,196,137,.3),transparent 62%); filter:blur(40px); animation:pz-breathe 7s ease-in-out infinite; }
@keyframes pz-breathe{ 50%{ transform:translate(-50%,-50%) scale(1.12); opacity:.8; } }
.pz-cta .pz-cta-botany{ position:absolute; bottom:-40px; right:-40px; width:min(28vw,340px); color:#0a1f19; opacity:.6; }
.pz-cta .pz-cta-botany.l{ left:-40px; right:auto; transform:scaleX(-1); }
.pz-cta-inner{ position:relative; z-index:3; max-width:840px; margin-inline:auto; padding-inline:var(--gutter); }
.pz-cta-inner .pz-h2{ color:var(--cream); margin:18px 0 0; }
.pz-cta-inner .pz-h2 em{ color:var(--gold-soft); }
.pz-cta-inner .pz-line{ display:block; overflow:hidden; }
.pz-cta-sub{ margin:24px auto 0; max-width:540px; color:var(--sage-soft); font-weight:300; font-size:var(--fs-lead); }
.pz-cta-cta{ margin-top:40px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.pz-cta-mini{ margin-top:30px; font-size:13px; color:var(--sage-soft); display:inline-flex; gap:20px; flex-wrap:wrap; justify-content:center; }
.pz-cta-mini span{ display:inline-flex; align-items:center; gap:8px; }
.pz-cta-mini svg{ width:15px; height:15px; color:var(--gold-soft); }

/* ============================================================
   CONTACT
   ============================================================ */
.pz-contact{ background:var(--cream); }
.pz-contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,6vw,80px); }
.pz-contact-info .pz-h2{ margin:16px 0 24px; }
.pz-contact-info > p{ color:color-mix(in srgb,var(--ink) 70%,transparent); max-width:42ch; margin-bottom:34px; }
.pz-info-row{ display:flex; gap:18px; padding:22px 0; border-top:1px solid rgba(21,35,28,.1); align-items:center; }
.pz-info-row:last-of-type{ border-bottom:1px solid rgba(21,35,28,.1); }
.pz-info-ic{ width:50px; height:50px; flex:none; border-radius:50%; background:var(--linen); display:grid; place-items:center; color:var(--evergreen); border:1px solid rgba(168,137,63,.24); }
.pz-info-ic svg{ width:22px; height:22px; }
.pz-info-row b{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); display:block; margin-bottom:3px; }
.pz-info-row a,.pz-info-row p{ font-size:16px; color:var(--ink); }
.pz-form{ background:var(--cream-2); border:1px solid rgba(168,137,63,.2); border-radius:26px; padding:clamp(28px,4vw,46px); box-shadow:0 40px 80px -54px rgba(14,42,35,.5); }
.pz-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.pz-field{ position:relative; margin-top:22px; }
.pz-field input,.pz-field select,.pz-field textarea{ width:100%; background:transparent; border:none; border-bottom:1px solid rgba(21,35,28,.2); padding:14px 2px 10px; font-family:inherit; font-size:15px; color:var(--ink); outline:none; transition:border-color .4s; }
.pz-field textarea{ resize:none; min-height:64px; }
.pz-field select{ -webkit-appearance:none; appearance:none; }
.pz-field label{ position:absolute; left:2px; top:14px; font-size:15px; color:color-mix(in srgb,var(--ink) 50%,transparent); pointer-events:none; transition:.35s var(--ease); }
.pz-field input:focus,.pz-field select:focus,.pz-field textarea:focus{ border-color:var(--gold); }
.pz-field input:focus + label,.pz-field input:not(:placeholder-shown) + label,
.pz-field textarea:focus + label,.pz-field textarea:not(:placeholder-shown) + label,
.pz-field.has-val label{ top:-9px; font-size:11px; letter-spacing:.08em; color:var(--gold-deep); }
.pz-form-btn{ margin-top:30px; width:100%; justify-content:center; }
.pz-form-fine{ margin-top:16px; font-size:11.5px; color:color-mix(in srgb,var(--ink) 50%,transparent); text-align:center; }

/* ============================================================
   FOOTER
   ============================================================ */
.pz-footer{ background:var(--evergreen); color:var(--sage-soft); padding-top:clamp(70px,9vw,110px); position:relative; overflow:hidden; }
.pz-footer-botany{ position:absolute; right:-30px; top:-30px; width:min(24vw,300px); color:#0a1f19; opacity:.5; }
.pz-footer-top{ position:relative; z-index:2; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid rgba(243,234,217,.12); }
.pz-footer .pz-logo{ color:var(--cream); margin-bottom:18px; }
.pz-footer .pz-logo small{ color:var(--gold-soft); }
.pz-footer-about{ max-width:34ch; line-height:1.8; font-size:14px; font-weight:300; }
.pz-foot-col h4{ font-family:var(--font-body); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:18px; font-weight:600; }
.pz-foot-col a{ display:block; padding:7px 0; font-size:14px; color:var(--sage-soft); transition:color .3s, padding-left .3s; }
.pz-foot-col a:hover{ color:var(--cream); padding-left:6px; }
.pz-footer-bottom{ position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:28px 0; flex-wrap:wrap; font-size:12.5px; }
.pz-footer-bottom .pz-socials{ display:flex; gap:12px; }
.pz-footer-bottom .pz-socials a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(243,234,217,.18); display:grid; place-items:center; color:var(--sage-soft); transition:.4s var(--ease); }
.pz-footer-bottom .pz-socials a:hover{ background:var(--gold); color:var(--evergreen); border-color:var(--gold); transform:translateY(-3px); }
.pz-footer-bottom .pz-socials svg{ width:16px; height:16px; }

/* ============================================================
   ACCENT TYPOGRAPHY — numerals · quotes · flourishes (Cormorant)
   ============================================================ */
.pz-about-sig,
.pz-about-stats .pz-as b,
.pz-stat b,
.pz-proc-card .pz-pk,
.pz-exp-card .pz-exp-k,
.pz-svc-num,
.pz-tst-quote,
.pz-tst-av{ font-family:var(--font-accent) !important; }
.pz-stat b{ font-weight:500; letter-spacing:-.01em; }
.pz-about-stats .pz-as b{ font-weight:500; }

/* ============================================================
   REVEAL primitives (set by JS; degrade if no JS)
   ============================================================ */
.pz-js [data-reveal]{ opacity:0; }
.pz-js [data-reveal="up"]{ transform:translateY(40px); }
.pz-js [data-reveal="scale"]{ transform:scale(.94); }
.pz-js [data-reveal="left"]{ transform:translateX(-40px); }
.pz-js [data-reveal="right"]{ transform:translateX(40px); }
.pz-no-anim [data-reveal]{ opacity:1 !important; transform:none !important; }

/* ============================================================
   V9 INTERACTIONS — tilt · counter · particle layers
   ============================================================ */
.pz-svc-card{ will-change:transform; transform-style:preserve-3d; }
.pz-svc-card .pz-svc-body,
.pz-svc-card .pz-svc-num,
.pz-svc-card .pz-svc-icon{ transform:translateZ(28px); }
.pz-svc-sheen{ position:absolute; inset:0; z-index:4; pointer-events:none; opacity:0; transition:opacity .4s var(--ease);
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(232,200,140,.22), transparent 60%); }
.pz-svc-card:hover .pz-svc-sheen{ opacity:1; }

/* services "now viewing" counter */
.pz-svc-count{ display:flex; align-items:baseline; gap:6px; color:var(--gold-soft); }
.pz-svc-count b{ font-family:var(--font-fancy); font-size:34px; line-height:1; font-weight:600; color:var(--cream); }
.pz-svc-count span{ font-family:'Inter', system-ui, sans-serif; font-size:13px; letter-spacing:.18em; color:var(--sage-soft); }

/* gallery depth */
.pz-gal-item{ will-change:transform; transform-style:preserve-3d; }
.pz-gal-item .pz-ph{ will-change:transform; }

/* CTA + dusk ambient particles */
#pz-cta-particles{ position:absolute; inset:0; z-index:1; pointer-events:none; }

/* floating decorative orbs (foreground depth, hero) */
.pz-float{ position:absolute; border-radius:50%; pointer-events:none; z-index:3;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.7), rgba(232,200,140,.25) 45%, transparent 70%);
  box-shadow:0 8px 30px rgba(232,200,140,.25); }
.pz-float.f1{ width:14px; height:14px; left:16%; top:38%; }
.pz-float.f2{ width:9px; height:9px; right:20%; top:30%; }
.pz-float.f3{ width:20px; height:20px; right:14%; bottom:26%; opacity:.8; }
.pz-float.f4{ width:7px; height:7px; left:26%; bottom:30%; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .pz-about-grid{ grid-template-columns:1fr; gap:50px; }
  .pz-portrait-wrap{ max-width:460px; margin-inline:auto; }
  .pz-ba-grid{ grid-template-columns:1fr; }
  .pz-faq-grid{ grid-template-columns:1fr; gap:36px; }
  .pz-contact-grid{ grid-template-columns:1fr; }
  .pz-gal-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .pz-gal-item.g-a{ grid-column:span 2; grid-row:span 2; }
  .pz-gal-item.g-b,.pz-gal-item.g-e,.pz-gal-item.g-w{ grid-column:span 1; }
}
@media (max-width:900px){
  .pz-menu,.pz-header-cta .pz-phone{ display:none; }
  .pz-burger{ display:block; }
  .pz-tst-grid{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; }
  .pz-stats-grid{ grid-template-columns:repeat(2,1fr); gap:40px 20px; }
  .pz-stat:nth-child(2)::after{ display:none; }
  .pz-proc-step,.pz-proc-step:nth-child(even){ direction:ltr; grid-template-columns:1fr; gap:18px; text-align:center; }
  .pz-proc-node{ order:-1; }
  .pz-vine{ display:none; }
  .pz-exp-card{ grid-template-columns:1fr; }
  .pz-exp-emoji{ display:none; }
}
@media (max-width:620px){
  :root{ --gutter:20px; }
  .pz-hero{ padding-top:104px; }
  .pz-hero-trust{ gap:14px; padding:14px 18px; }
  .pz-hero-trust .pz-div{ display:none; }
  .pz-about-stats{ grid-template-columns:repeat(2,1fr); gap:24px 18px; }
  .pz-about-stats .pz-as::after{ display:none; }
  .pz-form-row{ grid-template-columns:1fr; }
  .pz-gal-grid{ grid-template-columns:1fr; }
  .pz-gal-item,.pz-gal-item.g-a,.pz-gal-item.g-b,.pz-gal-item.g-e,.pz-gal-item.g-w{ grid-column:span 1; grid-row:span 1; }
  .pz-svc-head .pz-wrap{ flex-direction:column; align-items:flex-start; }
  .pz-footer-top{ grid-template-columns:1fr 1fr; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* ============================================================
   IMPORTED FROM pearl-zadeh.html  —  preloader + hero + philosophy
   (scoped under #pz-root; vars merged minus --ink/--stone)
   ============================================================ */
:root{
  --pearl:#F2EAD5;
  --pearl-soft:#F7F1E0;
  --paper:#FBF7EC;
  --paper-warm:#F6EFDD;
  --green:#0C5C3A;
  --green-deep:#06371F;
  --green-soft:#1A7A50;
  --brass:#A8803A;
  --brass-soft:#C9A465;
  --brass-bright:#D6B06A;
  --ink-soft:rgba(22,36,28,.7);
  --ink-mute:rgba(22,36,28,.46);
  --rule:rgba(22,36,28,.13);
  --rule-soft:rgba(22,36,28,.07);
  --rule-gold:rgba(168,128,58,.34);
  --serif:'Cormorant Garamond',Garamond,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --nav-h:76px;
  --shadow-soft:0 30px 60px -28px rgba(22,36,28,.34),0 12px 24px -18px rgba(22,36,28,.22);
  --shadow-card:0 18px 40px -24px rgba(22,36,28,.28);
}
body.is-loading{ overflow:hidden; height:100vh; }

#pz-root .eyebrow{ font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--green) }
#pz-root .eyebrow--mark{ display:inline-flex;align-items:center;gap:14px }
#pz-root .eyebrow--mark::before{ content:"";width:8px;height:8px;background:var(--green) }
#pz-root .wrap{ width:100%;max-width:1320px;margin:0 auto;padding:0 clamp(20px,4.5vw,60px) }
#pz-root .section{ position:relative;padding:clamp(36px,4.4vw,64px) 0 }
#pz-root .section--pearl{ background:var(--pearl) }
#pz-root .section--stone{ background:var(--stone) }
#pz-root /* LOADER */
.loader{ position:fixed;inset:0;z-index:9999;background:var(--pearl);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:38px;transition:opacity .7s cubic-bezier(.4,0,.2,1) .2s,visibility 0s linear .9s }
#pz-root .loader.is-done{ opacity:0;visibility:hidden;pointer-events:none }
#pz-root .loader__stage{ position:relative;width:clamp(160px,18vw,210px);height:clamp(160px,18vw,210px) }
#pz-root .loader__tooth{ position:absolute;inset:0;width:100%;height:100% }
#pz-root .loader__tooth-shape{ fill:#E8C967;stroke:var(--green);stroke-width:1.4;animation:toothClean 2.2s cubic-bezier(.4,0,.3,1) .3s forwards;filter:drop-shadow(0 8px 24px rgba(12,92,58,.12)) }
#pz-root .loader__glass{ position:absolute;top:50%;left:50%;width:62px;height:62px;transform:translate(-50%,-50%) translateX(-100px);animation:glassSweep 2.2s cubic-bezier(.55,.08,.45,1) .3s forwards }
#pz-root .loader__ring{ fill:rgba(255,255,255,.18);stroke:var(--green);stroke-width:2.4 }
#pz-root .loader__handle{ fill:none;stroke:var(--green);stroke-width:3.2;stroke-linecap:round }
#pz-root .loader__shine{ fill:rgba(255,255,255,.55) }
#pz-root .loader__brand{ text-align:center;opacity:0;animation:brandIn .7s ease 1.4s forwards }
#pz-root .loader__name{ font-family:var(--serif);font-size:22px;letter-spacing:.04em;color:var(--green) }
#pz-root .loader__tag{ margin-top:6px;font-family:var(--sans);font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--brass) }
#pz-root .loader__bar{ position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rule);overflow:hidden }
#pz-root .loader__bar::after{ content:"";position:absolute;left:0;top:0;width:0;height:100%;background:var(--green);animation:barFill 2.8s cubic-bezier(.7,0,.3,1) forwards }
#pz-root /* ===================== HERO (450-style: headline top, #pz-root media left, #pz-root stacked cards right, #pz-root buttons below) ===================== */
.hero{ position:relative;background:linear-gradient(180deg,var(--pearl) 0%,var(--pearl-soft) 55%,var(--paper-warm) 100%);padding:calc(var(--nav-h) + clamp(12px,1.6vw,22px)) 0 clamp(36px,4.5vh,64px);min-height:100vh;overflow:hidden }
#pz-root .hero__backdrop{ position:absolute;left:0;right:0;bottom:0;width:100%;z-index:0;pointer-events:none;opacity:0;transition:opacity 2s ease .5s }
#pz-root .hero.in .hero__backdrop{ opacity:.9 }
#pz-root .hero__backdrop svg{ width:100%;height:auto;display:block }
#pz-root .hero__backdrop .ln{ stroke-dasharray:var(--len,1800);stroke-dashoffset:var(--len,1800) }
#pz-root .hero.in .hero__backdrop.draw .ln{ stroke-dashoffset:0;transition:stroke-dashoffset 2.6s cubic-bezier(.4,0,.2,1) }
#pz-root .hero__inner{ position:relative;z-index:2;width:100% }
#pz-root /* headline sits across the top */
.hero__head{ margin-bottom:clamp(22px,2.6vw,36px);max-width:none }
#pz-root .hero__eyebrow{ display:flex;align-items:center;gap:16px;margin-bottom:clamp(18px,2vw,26px);opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1) }
#pz-root .hero__eyebrow::before{ content:"";display:block;width:52px;height:1px;background:var(--green) }
#pz-root .hero.in .hero__eyebrow{ opacity:1;transform:none;transition-delay:.2s }
#pz-root .hero__title{ font-family:var(--serif);font-weight:400;font-size:clamp(38px,5.2vw,76px);line-height:1.0;max-width:none;letter-spacing:-.02em;color:var(--ink) }
#pz-root .hero__title .l1, #pz-root .hero__title .l2{ display:inline }
#pz-root .hero__title .w{ display:inline-block;overflow:hidden;vertical-align:bottom }
#pz-root .hero__title .w>span{ display:inline-block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.16,.84,.24,1) }
#pz-root .hero.in .hero__title .w>span{ transform:translateY(0) }
#pz-root .hero__title .l1 .w:nth-of-type(1)>span{ transition-delay:.3s }
#pz-root .hero__title .l1 .w:nth-of-type(2)>span{ transition-delay:.38s }
#pz-root .hero__title .l1 .w:nth-of-type(3)>span{ transition-delay:.46s }
#pz-root .hero__title .l1 .w:nth-of-type(4)>span{ transition-delay:.54s }
#pz-root .hero__title .whole{ font-style:italic;font-weight:500;color:var(--green) }
#pz-root .hero__title .l2{ display:inline }
#pz-root .hero__title .l2 .w>span{ transition-delay:.62s }
#pz-root /* main grid: big media left, #pz-root stacked cards right */
.hero__grid{ display:grid;grid-template-columns:minmax(0,1.62fr) minmax(290px,1fr);gap:clamp(18px,2vw,30px);align-items:stretch }
@media(max-width:940px){
  #pz-root .hero__grid{ grid-template-columns:1fr }
}
#pz-root .hero__media{ position:relative;border-radius:2px;overflow:hidden;box-shadow:var(--shadow-soft);opacity:0;transform:translateY(28px) scale(.985);clip-path:inset(0 0 100% 0);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1) .45s,transform 1.4s cubic-bezier(.2,.7,.2,1) .45s,clip-path 1.5s cubic-bezier(.16,.84,.24,1) .45s }
#pz-root .hero.in .hero__media{ opacity:1;transform:none;clip-path:inset(0 0 0% 0) }
#pz-root .hero__media img{ width:100%;height:100%;object-fit:cover;object-position:50% 32%;transform:scale(1.12);transition:transform 9s cubic-bezier(.2,.7,.2,1) .4s }
#pz-root .hero.in .hero__media img{ transform:scale(1) }
#pz-root .hero__media video{ width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block;transform:scale(1.01) }
#pz-root .hero__media::before{ content:"";position:absolute;inset:14px;border:1px solid rgba(214,176,106,.5);z-index:3;pointer-events:none }
#pz-root .hero__media::after{ content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,55,31,.08) 0%,transparent 28%,transparent 60%,rgba(6,55,31,.46) 100%);pointer-events:none;z-index:2 }
#pz-root .hero__plate{ position:absolute;left:22px;bottom:20px;z-index:4;display:flex;align-items:center;gap:11px;color:rgba(242,234,213,.95) }
#pz-root .hero__plate svg{ width:16px;height:16px;stroke:var(--brass-soft);stroke-width:1.4;fill:none }
#pz-root .hero__plate-txt{ font-family:var(--sans);font-size:10px;letter-spacing:.32em;text-transform:uppercase }
#pz-root /* three premium cards stacked top-to-bottom */
.hero__cards{ display:grid;grid-template-rows:repeat(3,1fr);gap:clamp(14px,1.5vw,18px) }
@media(max-width:940px){
  #pz-root .hero__cards{ grid-template-rows:auto;gap:14px }
}
#pz-root .icard{ position:relative;overflow:hidden;border:1px solid rgba(214,176,106,.28);border-radius:2px;background:linear-gradient(155deg,#0E5A39 0%,#0A4A30 38%,#073D24 68%,#052E1B 100%);min-height:0;display:flex;align-items:stretch;box-shadow:var(--shadow-card);opacity:0;transform:translateX(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease,border-color .55s ease }
@media(max-width:940px){
  #pz-root .icard{ min-height:132px }
}
#pz-root .hero.in .icard{ opacity:1;transform:none }
#pz-root .hero.in .icard:nth-child(1){ transition-delay:1.05s }
#pz-root .hero.in .icard:nth-child(2){ transition-delay:1.15s }
#pz-root .hero.in .icard:nth-child(3){ transition-delay:1.25s }
#pz-root .icard:hover, #pz-root .icard:focus-visible{ box-shadow:0 30px 56px -26px rgba(5,30,18,.6);border-color:rgba(214,176,106,.7);transform:translateY(-4px) }
#pz-root .icard__bg{ display:none }
#pz-root /* fine gold inner hairline frame, #pz-root Rolex-style */
.icard::before{ content:"";position:absolute;inset:9px;border:1px solid rgba(214,176,106,.22);border-radius:1px;z-index:1;pointer-events:none;transition:border-color .55s ease }
#pz-root .icard:hover::before, #pz-root .icard:focus-visible::before{ border-color:rgba(214,176,106,.4) }
#pz-root .icard__shine{ position:absolute;top:0;left:-130%;width:70%;height:100%;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 0%,rgba(214,176,106,0) 20%,rgba(232,201,135,.55) 48%,rgba(255,243,210,.75) 52%,rgba(214,176,106,0) 80%,transparent 100%);transform:skewX(-18deg) }
#pz-root .icard:hover .icard__shine, #pz-root .icard:focus-visible .icard__shine{ animation:cardShine 1.15s cubic-bezier(.4,0,.2,1) }
#pz-root .icard__body{ position:relative;z-index:3;padding:clamp(18px,1.7vw,24px);display:flex;flex-direction:column;justify-content:center;gap:4px }
#pz-root .icard__label{ font-family:var(--sans);font-size:9.5px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--brass-bright);display:flex;align-items:center;gap:9px }
#pz-root .icard__label::before{ content:"";width:16px;height:1px;background:var(--brass-bright) }
#pz-root .icard__title{ font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.8vw,25px);line-height:1.08;letter-spacing:-.01em;color:var(--paper) }
#pz-root .icard__title em{ font-style:italic;color:var(--brass-bright) }
#pz-root .icard__sub{ font-family:var(--sans);font-size:12px;color:rgba(247,241,224,.72);letter-spacing:.01em;margin-top:2px }
#pz-root .icard__mark{ position:absolute;top:14px;right:14px;z-index:3;width:24px;height:24px;opacity:.55 }
#pz-root .icard__mark svg{ width:100%;height:100%;stroke:var(--brass-soft);stroke-width:1;fill:none }
#pz-root .icard:hover .icard__mark, #pz-root .icard:focus-visible .icard__mark{ opacity:.95 }
#pz-root /* buttons below the media */
.hero__actions{ margin-top:clamp(24px,2.8vw,36px);display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1) }
#pz-root .hero.in .hero__actions{ opacity:1;transform:none;transition-delay:1.18s }
#pz-root .hero__sub{ margin:0 0 clamp(20px,2.4vw,30px);max-width:50ch;font-size:clamp(15px,1.15vw,17px);line-height:1.62;color:var(--ink-soft);opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1) }
#pz-root .hero.in .hero__sub{ opacity:1;transform:none;transition-delay:.86s }
#pz-root .section--stone .gword{ -webkit-text-stroke-color:var(--green-deep) }
#pz-root /* WHOLE */
.whole__body{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start }
@media(max-width:820px){
  #pz-root .whole__body{ grid-template-columns:1fr;gap:44px }
}
#pz-root .whole__stmt{ font-family:var(--serif);font-weight:400;font-size:clamp(27px,3.2vw,42px);line-height:1.16;letter-spacing:-.01em;color:var(--ink) }
#pz-root .whole__stmt em{ font-style:italic;color:var(--green) }
#pz-root .whole__txt{ font-size:16px;line-height:1.78;color:var(--ink-soft);max-width:46ch }
#pz-root .whole__txt p+p{ margin-top:1.2em }
#pz-root .whole__sig{ display:inline-block;width:58px;height:58px;margin-top:30px }
#pz-root /* REVEAL */
.rv{ opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1) }
#pz-root .rv.in{ opacity:1;transform:none }
#pz-root .rv.d1{ transition-delay:.12s }
#pz-root .rv.d2{ transition-delay:.24s }
#pz-root .rv.d3{ transition-delay:.36s }
@media(prefers-reduced-motion:reduce){
  #pz-root .rv{ opacity:1;transform:none }
  #pz-root .hero__title .w>span{ transform:none }
  #pz-root .loader{ display:none }
}
#pz-root /* 3 + 7 — side boxes: shaded photo instead of flat gradient, #pz-root parallax zoom on hover */
.icard__bg{ display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:brightness(.5) saturate(.85) contrast(1.02);transform:scale(var(--s,1.06)) translate3d(var(--px,0px),var(--py,0px),0);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s ease;will-change:transform }
#pz-root .icard:hover .icard__bg, #pz-root .icard:focus-within .icard__bg{ --s:1.16;filter:brightness(.6) saturate(.95) }
#pz-root .icard::after{ content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(160deg,rgba(8,68,44,.55),rgba(7,56,34,.42) 42%,rgba(4,40,24,.82)) }
#pz-root .icard::before{ z-index:2 }
#pz-root .icard__shine{ z-index:3 }
#pz-root .icard__body{ z-index:4 }
#pz-root .icard__mark{ z-index:4 }
#pz-root /* 1 — philosophy heading + minimal tooth "heartbeat" line, #pz-root scroll-triggered with light flare */
.phead{ font-family:var(--serif);font-weight:400;font-size:clamp(34px,5.4vw,68px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin:0 }
#pz-root .phead em{ font-style:italic;color:var(--green) }
#pz-root .toothline{ position:relative;width:100%;max-width:820px;margin:30px auto 0 }
#pz-root .toothline svg{ display:block;width:100%;height:auto;overflow:visible }
#pz-root .toothline__path{ fill:none;stroke:var(--green);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--tl,1200);stroke-dashoffset:var(--tl,1200);opacity:.9 }
#pz-root .toothline.in .toothline__path{ transition:stroke-dashoffset 2.2s linear;stroke-dashoffset:0 }
#pz-root .toothline__dot{ opacity:0 }
#pz-root .toothline.in .toothline__dot{ opacity:1 }
#pz-root .toothline__flare{ position:absolute;left:50%;top:50%;width:260px;height:260px;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(circle,rgba(214,176,106,.45),rgba(214,176,106,0) 65%);opacity:0;transition:opacity 1.2s ease .7s }
#pz-root .toothline.in .toothline__flare{ opacity:1 }
@media(prefers-reduced-motion:reduce){
  #pz-root .toothline__path{ transition:none;stroke-dashoffset:0 }
  #pz-root .toothline__flare{ transition:none }
  #pz-root .icard__bg{ transition:none }
}
#pz-root /* ===== BATCH 2 REFINEMENTS ===== */

/* hero — tighten vertical rhythm so the CTA is on-screen */
.hero__head{ margin-bottom:clamp(14px,1.8vw,24px) }
#pz-root .hero__sub{ margin:clamp(12px,1.6vw,20px) 0 clamp(12px,1.4vw,18px);max-width:66ch;font-size:clamp(14px,1.05vw,16px);line-height:1.5 }
#pz-root .hero__actions{ margin-top:clamp(12px,1.4vw,20px) }
@media(min-width:941px){
  #pz-root .hero{ padding-bottom:clamp(26px,3.2vh,48px) }
}
#pz-root /* philosophy — close the gaps before/after the heading + line */
.whole.section{ padding:clamp(28px,3.4vw,48px) 0 }
#pz-root .whole .shead{ margin-bottom:clamp(16px,2.4vh,28px);align-items:start }
#pz-root .whole .toothline{ margin:10px auto 2px;max-width:640px }
#pz-root .whole .whole__body{ margin-top:clamp(2px,1vh,10px) }
#pz-root /* toothline — scroll-scrubbed draw (JS drives dashoffset + dot) */
.toothline svg{ max-height:122px }
#pz-root .toothline__path, #pz-root .toothline.in .toothline__path{ transition:stroke-dashoffset .12s linear }
#pz-root .toothline__dot{ opacity:0;transition:opacity .3s ease }
#pz-root /* care — keyword headline + photo tiles + scroll-entry stagger */
.care .phead{ max-width:20ch }
#pz-root .care .tiles.rv{ opacity:1;transform:none;transition:none }
#pz-root /* reviews — accordion */
.reviews .phead{ max-width:16ch }
#pz-root /* ===== BATCH 3 ===== */

/* tooth — bolder, #pz-root taller, #pz-root with roots */
.toothline svg{ max-height:178px }
#pz-root .whole .toothline{ max-width:680px;margin:14px auto 6px }
#pz-root .toothline__path{ stroke-width:3 }
#pz-root .toothline__roots{ fill:none;stroke:var(--green);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:320;stroke-dashoffset:320;opacity:.92 }
#pz-root .toothline.in .toothline__roots{ stroke-dashoffset:0;transition:stroke-dashoffset 1s cubic-bezier(.2,.7,.2,1) .45s }
#pz-root /* side cards — continuous breathing zoom so they never look static */
.icard__bg{ animation:icardBreath 9.5s ease-in-out infinite }
#pz-root .icard:nth-child(2) .icard__bg{ animation-delay:-3.2s }
#pz-root .icard:nth-child(3) .icard__bg{ animation-delay:-6.4s }
#pz-root .icard:hover .icard__bg, #pz-root .icard:focus-within .icard__bg{ animation-play-state:paused }
#pz-root /* one-shot glisten on entry (JS-triggered) */
.icard__shine.glint{ animation:cardShine 1.5s cubic-bezier(.4,0,.2,1) }
@media(prefers-reduced-motion:reduce){
  #pz-root .toothline__roots{ transition:none;stroke-dashoffset:0 }
  #pz-root .icard__bg{ animation:none;transform:scale(1.06) }
}
#pz-root /* ---- revision pass: legibility, #pz-root tooth, #pz-root care emblems & spacing ---- */
/* 2 — mercury-free / side-card legibility */
.icard__sub{ font-size:13.5px;color:rgba(247,241,224,.96);font-weight:400;letter-spacing:.012em }
#pz-root .icard__label{ font-size:10.5px;color:var(--brass-bright) }
#pz-root .icard__title{ color:#FFF9EC }
#pz-root .icard__title em{ color:var(--brass-bright) }
#pz-root .hero__sub{ color:rgba(22,36,28,.9) }
#pz-root /* 3 — tooth: bolder line + faint defined silhouette */
.toothline svg{ max-height:200px }
#pz-root .toothline__fill{ fill:var(--green);opacity:0;transition:opacity 1.1s ease .5s }
#pz-root .toothline.in .toothline__fill{ opacity:.10 }
#pz-root .toothline__path{ stroke-width:5;filter:drop-shadow(0 2px 5px rgba(6,55,31,.18)) }
#pz-root .toothline__roots{ stroke-width:4.5 }
#pz-root /* 4 — care: trimmed spacing (was super-extra) */
.section.care{ padding:clamp(26px,3.2vw,46px) 0 }
@media(prefers-reduced-motion:reduce){
  #pz-root .toothline__fill{ transition:none;opacity:.10 }
}
#pz-root .care .phead{ max-width:none;text-wrap:balance }
@media(min-width:900px){
  #pz-root .care .phead{ white-space:nowrap;font-size:clamp(30px,3.7vw,50px);text-wrap:nowrap }
}
#pz-root .hero__sub{ color:var(--ink);text-shadow:0 1px 14px var(--pearl),0 0 26px var(--pearl),0 1px 2px rgba(247,241,224,.92) }
#pz-root .hero__actions .tlink{ color:var(--green-deep);text-shadow:0 1px 12px var(--pearl),0 0 22px var(--pearl) }
#pz-root .hero__actions .tlink__line{ background:var(--green-deep) }
#pz-root .hero{ padding-bottom:calc(25vw + clamp(48px,7vh,112px)) }
@media(min-width:941px){
  #pz-root .hero{ padding-bottom:calc(25vw + clamp(56px,7vh,120px)) }
}
#pz-root .hero__sub{ margin-top:clamp(34px,5vh,66px) }
#pz-root .hero__actions{ margin-top:clamp(22px,2.4vw,32px) }
#pz-root .hero__left{ display:flex;flex-direction:column;gap:clamp(12px,1.3vw,18px) }
#pz-root .hero__left .hero__media{ flex:1 1 auto;min-height:0 }
#pz-root .pulse-cta{ position:relative;display:flex;align-items:center;justify-content:center;height:clamp(46px,3.6vw,56px);border:1px solid var(--green);border-radius:2px;background:rgba(12,92,58,.05);text-decoration:none;overflow:hidden;animation:ctaPulse 5s ease-in-out infinite }
#pz-root .pulse-cta:hover{ background:rgba(12,92,58,.11) }
#pz-root .pulse-cta__svg{ position:absolute;inset:0;width:100%;height:100%;z-index:1 }
#pz-root .pulse-cta__base{ fill:none;stroke:var(--green);stroke-width:1.3;stroke-opacity:.32 }
#pz-root .pulse-cta__beat{ animation:beatRun 5s linear infinite;filter:drop-shadow(0 0 5px rgba(12,92,58,.5)) }
#pz-root .pulse-cta__beat path{ fill:none;stroke:var(--green);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round }
#pz-root .pulse-cta__label{ position:relative;z-index:2;font-family:var(--sans);font-weight:600;font-size:clamp(12px,1.02vw,14px);letter-spacing:.26em;text-transform:uppercase;color:var(--green-deep);padding:0 clamp(16px,2.4vw,30px);background:linear-gradient(90deg,transparent,rgba(251,247,236,.92) 16%,rgba(251,247,236,.92) 84%,transparent) }
#pz-root .icard__shine, #pz-root .icard__shine.glint{ display:none!important;animation:none!important }
#pz-root .hero__birds{ position:absolute;top:0;left:0;right:0;bottom:0;z-index:5;pointer-events:none;overflow:hidden }
#pz-root .hero__birds svg{ width:100%;height:100%;display:block }
#pz-root .hero{ padding-bottom:calc(25vw + clamp(22px,3.2vh,48px)) }
@media(min-width:941px){
  #pz-root .hero{ padding-bottom:calc(25vw + clamp(26px,3.2vh,52px)) }
}
@media(prefers-reduced-motion:reduce){
  #pz-root .pulse-cta, #pz-root .pulse-cta__beat{ animation:none }
}
#pz-root .hero__backdrop{ height:20vw;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 3.4vw);mask-image:linear-gradient(180deg,transparent 0,#000 3.4vw) }
#pz-root .hero__backdrop svg{ margin-top:-5vw }
#pz-root .hero{ padding-bottom:calc(20vw + clamp(14px,2.2vh,32px)) }
@media(min-width:941px){
  #pz-root .hero{ padding-bottom:calc(20vw + clamp(16px,2.2vh,36px)) }
}
#pz-root .hero__eyebrow::before{ display:none }
#pz-root .whole__head{ text-align:center;margin:0 auto clamp(34px,5vh,60px);max-width:1040px }
#pz-root .phead--center{ margin:0 auto }
#pz-root .whole .whole__head .toothline{ margin:clamp(8px,1.8vh,20px) auto 0;max-width:680px }
#pz-root .whole__body{ align-items:start }

/* keyframes used by the imported components */
@keyframes toothClean{ 0%{fill:#E8C967}60%{fill:#F5E5B3}100%{fill:#FDFCF6} }
@keyframes glassSweep{ 0%{transform:translate(-50%,-50%) translateX(-100px) rotate(-8deg)}50%{transform:translate(-50%,-50%) translateX(0) rotate(0)}100%{transform:translate(-50%,-50%) translateX(100px) rotate(8deg)} }
@keyframes brandIn{ to{opacity:1} }
@keyframes barFill{ to{width:100%} }
@keyframes cardShine{ 0%{left:-130%}100%{left:230%} }
@keyframes icardBreath{ 0%{transform:scale(1.06) translate3d(0,0,0)}50%{transform:scale(1.13) translate3d(-1.6%,-1.2%,0)}100%{transform:scale(1.06) translate3d(0,0,0)} }
@keyframes beatRun{ from{transform:translateX(-30px)}to{transform:translateX(630px)} }
@keyframes ctaPulse{ 0%,100%{box-shadow:0 0 0 0 rgba(12,92,58,0)}50%{box-shadow:0 0 0 3px rgba(12,92,58,.06),0 8px 22px rgba(12,92,58,.10)} }

#pz-root .pz-ilink{ color:var(--gold-deep); font-weight:700; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2px; text-decoration-color:var(--gold-deep); transition:color .25s ease,text-decoration-color .25s ease; }
#pz-root .pz-ilink:hover{ color:var(--gold); text-decoration-color:var(--gold); }

/* ============================================================
   MOBILE REFINEMENTS  ·  enhancement layer
   Scoped to small screens only — desktop layout is untouched.
   Fixes: (1) header inflating & overlapping content,
          (2) hero video not going full-width,
          (3) doctor portrait collapsing to 0×0.
   ============================================================ */

/* ---- 1 · HEADER --------------------------------------------------
   At ≤900px the burger appears, but the desktop "Book a Visit" pill
   was never hidden: it wrapped to two lines AND squeezed the wordmark
   onto two lines, inflating the fixed header to ~142px so it sat on
   top of the H1 and every section below. Hide the pill (it already
   lives in the drawer), keep the wordmark on one line, and show the
   frosted backdrop so content scrolls cleanly underneath. */
@media (max-width:900px){
  #pz-root .pz-header .pz-btn--solid{ display:none; }
  #pz-root .pz-header .pz-logo span,
  #pz-root .pz-header .pz-logo b{ white-space:nowrap; }
  /* tighten the wordmark's vertical footprint so the bar stays ~one row */
  #pz-root .pz-header .pz-logo span{ line-height:1.05; }
  #pz-root .pz-header .pz-header-cta{ gap:0; }
  #pz-root .pz-header::before{ opacity:1; }
  /* a little extra top room so the compact bar never kisses the headline */
  #pz-root .hero{ padding-top:calc(var(--nav-h) + 26px); }
}

/* slightly tighter logo on very narrow phones so it never crowds the burger */
@media (max-width:380px){
  #pz-root .pz-header .pz-logo{ font-size:21px; gap:11px; }
  #pz-root .pz-header .pz-logo .pz-mark{ width:36px; height:36px; }
}

/* ---- 2 · HERO MEDIA ---------------------------------------------
   Inside the collapsed single-column grid the video kept its intrinsic
   ~266px width and floated centered. Stretch it to full width with a
   cinematic ratio so it reads as a proper hero image on mobile. */
@media (max-width:940px){
  #pz-root .hero__left{ width:100%; }
  /* width:100% + the UA <figure> margin-inline:40px overflowed the column and
     clipped the video on the right — zero the margin so it sits flush. */
  #pz-root .hero__left .hero__media{ width:100%; margin:0; aspect-ratio:16/10; min-height:0; }
}

/* ---- 3 · DOCTOR PORTRAIT ----------------------------------------
   The ≤1080 rule applies margin-inline:auto to the portrait grid item,
   which shrinks it to content width. Its children are all
   position:absolute (zero intrinsic width), so with aspect-ratio:4/5
   the whole portrait — and Dr. Zadeh's photo — collapsed to 0×0.
   A definite width restores a real size while staying centered. */
@media (max-width:1080px){
  #pz-root .pz-portrait-wrap{ width:100%; }
}
@media (max-width:480px){
  /* trim the tall arch a touch on small phones + keep the badge on-canvas */
  #pz-root .pz-portrait{ border-radius:170px 170px 22px 22px; }
  #pz-root .pz-portrait-frame{ border-radius:178px 178px 28px 28px; }
  #pz-root .pz-portrait-badge{ width:92px; height:92px; right:-8px; bottom:18px; }
}

/* ---- 4 · DRAWER MENU LEGIBILITY ---------------------------------
   `#pz-root a{ color:inherit }` (ID specificity) was overriding
   `.pz-drawer a{ color:var(--cream) }`, so the menu links inherited
   --ink (a near-black green) on the dark-green drawer and were almost
   invisible. A matching ID-level selector restores the intended cream. */
@media (max-width:900px){
  #pz-root .pz-drawer a{ color:var(--cream); }
  #pz-root .pz-drawer a:hover,
  #pz-root .pz-drawer a:focus-visible{ color:var(--gold-soft); }
}

/* ---- 5 · ALWAYS-ON "BOOK A VISIT" (mobile) ----------------------
   The header pill is hidden on mobile to keep the bar to one row, so a
   floating pill keeps booking one tap away anywhere on the page. It
   matches the solid header button (evergreen + cream + gold hairline),
   tucks away while the fullscreen menu is open, and never shows on
   desktop (which already has the header pill). */
@media (max-width:900px){
  #pz-root .pz-book-fab{
    position:fixed; left:50%;
    transform:translateX(-50%) translateY(0);
    bottom:calc(16px + env(safe-area-inset-bottom,0px));
    z-index:900; display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; border-radius:100px;
    background:var(--evergreen); color:var(--cream);
    font-family:var(--font-body); font-size:14px; font-weight:600; letter-spacing:.02em;
    border:1px solid rgba(214,176,106,.5);
    box-shadow:0 18px 42px -14px rgba(8,30,20,.72);
    opacity:0; pointer-events:none;
    transition:opacity .55s var(--ease), transform .55s var(--ease);
  }
  #pz-root .pz-book-fab.is-ready{ opacity:1; pointer-events:auto; }
  #pz-root .pz-book-fab.is-hidden{
    opacity:0 !important; pointer-events:none !important;
    transform:translateX(-50%) translateY(16px);
  }
  #pz-root .pz-book-fab:active{ transform:translateX(-50%) translateY(1px); }
  #pz-root .pz-book-fab svg{ width:15px; height:15px; }
  /* keep the last footer content clear of the floating button */
  #pz-root .pz-footer{ padding-bottom:calc(98px + env(safe-area-inset-bottom,0px)); }
}
@media (min-width:901px){
  #pz-root .pz-book-fab{ display:none !important; }
}

/* ---- 6 · CTA SUB-PARAGRAPH CENTERING ----------------------------
   `#pz-root p{ margin:0 }` (ID specificity) overrode `.pz-cta-sub`'s
   `margin:.. auto ..`, so the narrower paragraph sat left-aligned under
   the centered heading instead of centered. (The author already patched
   `.pz-hero-sub` the same way.) Restoring the auto side-margins centers
   it; mobile is unaffected since the paragraph already fills the column. */
#pz-root .pz-cta-sub{ margin-left:auto; margin-right:auto; }

/* ============================================================
   ADD-ON SECTIONS  ·  Video Testimonials + Meet the Team
   New classes only; scoped under #pz-root. Desktop >=1081 for
   existing layout is untouched (media queries below hit only
   the new pz-vid-* / pz-team-* classes).
   ============================================================ */

/* ---- VIDEO TESTIMONIALS (evergreen screening band) -------------- */
#pz-root .pz-vid{ padding-block:clamp(58px,7vw,100px); background:radial-gradient(120% 120% at 50% -10%, var(--evergreen-3), var(--evergreen) 55%, var(--ink) 100%); color:var(--cream); overflow:hidden; }
#pz-root .pz-vid-head{ max-width:720px; margin:0 auto 46px; text-align:center; }
#pz-root .pz-vid-head .pz-h2{ color:var(--cream); }
#pz-root .pz-vid-head .pz-h2 em{ color:var(--gold-soft); font-style:italic; }
#pz-root .pz-vid-note{ margin:16px auto 0; max-width:560px; color:var(--sage-soft); font-weight:300; font-size:var(--fs-lead); }
#pz-root .pz-vid-featured{ max-width:940px; margin:0 auto 26px; }
#pz-root .pz-vid-grid{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
#pz-root .pz-vid-frame{ position:relative; border-radius:18px; overflow:hidden; background:#0a1f19; border:1px solid rgba(214,176,106,.34); box-shadow:0 30px 70px -30px rgba(6,20,14,.8); }
#pz-root .pz-vid-embed{ position:relative; width:100%; aspect-ratio:16/9; }
#pz-root .pz-vid-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
#pz-root .pz-vid-embed video{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; object-fit:contain; background:#07130e; }

/* ============================================================
   NAV SUB-MENUS  ·  desktop dropdowns + mobile accordions
   New classes only; scoped under #pz-root.
   ============================================================ */
#pz-root .pz-nav-item{ position:relative; }
#pz-root .pz-nav-item > a{ display:inline-flex; align-items:center; gap:6px; }
#pz-root .pz-nav-item > a::before{ /* caret */ }
#pz-root .pz-nav-item > a{ position:relative; }
#pz-root .pz-nav-item > a:after{ /* keep the shared underline from .pz-menu a::after */ }
/* hover bridge so the pointer can travel into the panel */
#pz-root .pz-nav-item::after{ content:""; position:absolute; left:0; right:0; top:100%; height:16px; }
#pz-root .pz-dd{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px);
  min-width:238px; background:var(--cream-2); border:1px solid rgba(21,35,28,.10);
  border-radius:16px; padding:10px; display:flex; flex-direction:column; gap:2px;
  box-shadow:0 26px 54px -22px rgba(21,35,28,.45);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s var(--ease), transform .28s var(--ease); z-index:80;
}
#pz-root .pz-nav-item:hover .pz-dd,
#pz-root .pz-nav-item:focus-within .pz-dd{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
#pz-root .pz-dd a{ padding:9px 14px; border-radius:10px; font-size:13px; font-weight:500; white-space:nowrap; color:color-mix(in srgb,var(--ink) 84%,transparent); transition:background .25s var(--ease), color .25s var(--ease); }
#pz-root .pz-dd a::after{ display:none !important; }
#pz-root .pz-dd a:hover{ background:var(--evergreen); color:var(--cream); }

/* mobile drawer accordions */
@media (max-width:900px){
  #pz-root .pz-drawer{ justify-content:flex-start; overflow-y:auto; padding-top:calc(var(--nav-h) + 26px); padding-bottom:40px; }
  #pz-root .pz-drawer .pz-dgrp{ border-bottom:1px solid rgba(243,234,217,.12); }
  #pz-root .pz-drawer .pz-dgrp summary{
    font-family:var(--font-display); font-size:clamp(26px,7.6vw,44px); color:var(--cream);
    padding:11px 0; list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  }
  #pz-root .pz-drawer .pz-dgrp summary::-webkit-details-marker{ display:none; }
  #pz-root .pz-drawer .pz-dgrp summary::after{ content:"+"; font-family:var(--font-body); font-size:24px; color:var(--gold-soft); line-height:1; }
  #pz-root .pz-drawer .pz-dgrp[open] summary::after{ content:"\2013"; }
  #pz-root .pz-drawer .pz-dgrp a{
    font-family:var(--font-accent); font-size:clamp(17px,4.8vw,21px); color:var(--sage-soft);
    padding:7px 0 7px 16px; border-bottom:1px solid rgba(243,234,217,.06); justify-content:flex-start;
  }
  #pz-root .pz-drawer .pz-dgrp a:last-child{ border-bottom:none; margin-bottom:6px; }
  #pz-root .pz-drawer .pz-dgrp a:hover{ color:var(--gold-soft); }

/* ---- inside-page team grid + reviews (new classes) ---- */
#pz-root .pz-teamx{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:24px; margin-top:14px; }
#pz-root .pz-teamx figure{ margin:0; }
#pz-root .pz-teamx-ph{ aspect-ratio:4/5; border-radius:18px; overflow:hidden; background:var(--linen); box-shadow:0 20px 44px -24px rgba(21,35,28,.45); }
#pz-root .pz-teamx-ph img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s var(--ease); }
#pz-root .pz-teamx figure:hover .pz-teamx-ph img{ transform:scale(1.05); }
#pz-root .pz-teamx h3{ font-family:var(--font-display); font-weight:500; font-size:19px; margin:15px 0 3px; color:var(--evergreen); }
#pz-root .pz-teamx-role{ font-family:var(--font-body); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:9px; }
#pz-root .pz-teamx p{ font-size:14px; line-height:1.65; color:color-mix(in srgb,var(--ink) 78%,transparent); }

#pz-root .pz-revx-rating{ display:flex; align-items:center; gap:14px; justify-content:center; text-align:left; margin:2px 0 24px; font-family:var(--font-body); font-size:13.5px; line-height:1.5; color:color-mix(in srgb,var(--ink) 72%,transparent); }
#pz-root .pz-revx-rating b{ font-family:var(--font-display); font-size:34px; color:var(--evergreen); }
#pz-root .pz-revx{ display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:18px; margin-top:6px; }
#pz-root .pz-revx-card{ background:var(--cream-2); border:1px solid rgba(21,35,28,.08); border-radius:18px; padding:24px; }
#pz-root .pz-revx-stars{ color:var(--gold); letter-spacing:2px; font-size:13px; }
#pz-root .pz-revx-card p{ font-size:14.5px; line-height:1.7; color:color-mix(in srgb,var(--ink) 82%,transparent); margin:10px 0 14px; }
#pz-root .pz-revx-who{ font-family:var(--font-display); font-weight:500; font-size:14px; color:var(--evergreen); }

/* =====================================================================
   LUXURY INSIDE-PAGE EDITION  ·  nested menus + parallax + motion
   All selectors are overlay-only (pz-page-*) or gated by .pz-mo,
   so the homepage is never affected. Reveal states hide only when JS
   has added .pz-mo (graceful fallback: no JS = fully visible).
   ===================================================================== */

/* ---- nested desktop flyout ---- */
#pz-root .pz-dd-item{ position:relative; }
#pz-root .pz-dd-item > a{ display:flex !important; align-items:center; justify-content:space-between; gap:12px; }
#pz-root .pz-dd-car{ font-style:normal; font-size:16px; color:var(--gold-deep); transition:transform .3s var(--ease); }
#pz-root .pz-dd-item:hover > a .pz-dd-car{ transform:translateX(3px); }
#pz-root .pz-dd-item::after{ content:""; position:absolute; top:0; bottom:0; left:100%; width:16px; }
#pz-root .pz-dd-fly{ position:absolute; top:-11px; left:calc(100% + 9px); min-width:224px; background:var(--cream-2);
  border:1px solid rgba(21,35,28,.10); border-radius:16px; padding:10px; display:flex; flex-direction:column; gap:2px;
  box-shadow:0 28px 58px -24px rgba(21,35,28,.5); opacity:0; visibility:hidden; pointer-events:none;
  transform:translateX(8px); transition:opacity .26s var(--ease), transform .26s var(--ease); z-index:95; }
#pz-root .pz-dd-item:hover .pz-dd-fly, #pz-root .pz-dd-item:focus-within .pz-dd-fly{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(0); }
#pz-root .pz-dd-fly a{ padding:8px 13px; border-radius:9px; font-size:12.5px; white-space:nowrap; color:color-mix(in srgb,var(--ink) 82%,transparent); }
#pz-root .pz-dd-fly a::after{ display:none !important; }
#pz-root .pz-dd-fly a:hover{ background:var(--evergreen); color:var(--cream); }

/* ---- mobile sub-lists ---- */
@media (max-width:900px){
  #pz-root .pz-msub{ display:flex; flex-wrap:wrap; gap:5px 8px; padding:0 0 12px 16px; margin-top:-2px; }
  #pz-root .pz-drawer .pz-msub a{ font-family:var(--font-body) !important; font-size:12.5px !important; color:var(--sage-soft) !important;
    padding:5px 11px !important; border:1px solid rgba(243,234,217,.16) !important; border-radius:20px !important; }
  #pz-root .pz-drawer .pz-msub a:hover{ color:var(--gold-soft) !important; border-color:var(--gold-soft) !important; }
}

/* ---- HERO: layered parallax atmosphere ---- */
#pz-root .pz-page-hero{ position:relative; padding-top:6px; z-index:0; }
#pz-root .pz-page-hero::before{ content:""; position:absolute; top:-160px; right:-170px; width:540px; height:540px; border-radius:50%;
  background:radial-gradient(circle at 50% 50%, color-mix(in srgb,var(--gold) 30%,transparent), transparent 62%);
  filter:blur(6px); z-index:-2; transform:translateY(calc(var(--pz-scroll,0) * 0.10px)); pointer-events:none; }
#pz-root .pz-page-hero::after{ content:""; position:absolute; top:-120px; left:-150px; width:360px; height:360px; border-radius:50%;
  border:1px solid color-mix(in srgb,var(--gold) 34%,transparent); opacity:.45; z-index:-2;
  transform:translateY(calc(var(--pz-scroll,0) * 0.22px)); pointer-events:none; }
#pz-root .pz-page-kicker{ display:inline-flex; align-items:center; gap:13px; }
#pz-root .pz-page-kicker::before{ content:""; width:36px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); }
#pz-root .pz-page-title{ position:relative; }
#pz-root .pz-page-meta{ margin-top:26px; }
#pz-root .pz-page-tag{ background:color-mix(in srgb,var(--evergreen) 6%,var(--cream-2)); border:1px solid color-mix(in srgb,var(--evergreen) 16%,transparent);
  border-radius:30px; padding:8px 15px; color:var(--evergreen); font-weight:500; }
#pz-root .pz-page-tag svg{ color:var(--gold-deep); }

/* ---- section headings get a gold seam ---- */
#pz-root .pz-page-sec > h2::before{ content:""; display:block; width:42px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft)); margin-bottom:20px; }

/* ---- points as elevated cards + scroll reveal ---- */
#pz-root .pz-page-points{ gap:14px; }
#pz-root .pz-page-points li{ background:var(--cream-2); border:1px solid rgba(21,35,28,.07); border-radius:16px; padding:17px 19px;
  transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s var(--ease), opacity .7s var(--ease); }
#pz-root .pz-page-points li:hover{ transform:translateY(-4px); box-shadow:0 22px 46px -26px rgba(21,35,28,.45); border-color:color-mix(in srgb,var(--gold) 45%,transparent); }
#pz-root .pz-page-points li .pz-page-tick{ background:color-mix(in srgb,var(--evergreen) 10%,var(--cream)); }

/* ---- related cards elevate ---- */
#pz-root .pz-page-rel{ transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease), background .55s var(--ease), opacity .7s var(--ease); }
#pz-root .pz-page-rel:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -26px rgba(21,35,28,.5); }

/* ---- final CTA becomes a full-bleed jewel panel with shimmer ---- */
#pz-root .pz-page-final{ border:0 !important; margin-top:clamp(52px,6vw,76px); padding:clamp(42px,6vw,74px) clamp(28px,5vw,64px);
  border-radius:30px; position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(135deg,var(--evergreen) 0%,var(--evergreen-2) 55%,var(--ink) 130%);
  box-shadow:0 40px 80px -40px rgba(12,42,35,.75); }
#pz-root .pz-page-final::before{ content:""; position:absolute; inset:0;
  background:linear-gradient(115deg,transparent 32%,rgba(220,197,137,.16) 50%,transparent 68%);
  transform:translateX(-120%); animation:pz-sheen 7s var(--ease) infinite; pointer-events:none; }
#pz-root .pz-page-final::after{ content:""; position:absolute; bottom:-90px; right:-70px; width:280px; height:280px; border-radius:50%;
  border:1px solid rgba(220,197,137,.25); pointer-events:none; }
@keyframes pz-sheen{ 0%,22%{ transform:translateX(-120%);} 62%,100%{ transform:translateX(120%);} }
#pz-root .pz-page-final h2{ color:var(--cream); }
#pz-root .pz-page-final h2 em{ color:var(--gold-soft); }
#pz-root .pz-page-final p{ color:var(--sage-soft); }

/* ---- team / review cards get reveal + lift ---- */
#pz-root .pz-teamx figure{ transition:opacity .7s var(--ease), transform .7s var(--ease); }
#pz-root .pz-revx-card{ transition:opacity .7s var(--ease), transform .7s var(--ease), box-shadow .5s var(--ease); }
#pz-root .pz-revx-card:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -26px rgba(21,35,28,.4); }

/* ---- REVEAL STATES (only when JS added .pz-mo) ---- */
#pz-root.pz-mo .pz-page-points li,
#pz-root.pz-mo .pz-page-rel,
#pz-root.pz-mo .pz-teamx figure,
#pz-root.pz-mo .pz-revx-card{ opacity:0; transform:translateY(22px); }
#pz-root.pz-mo .pz-page-points li.pz-in,
#pz-root.pz-mo .pz-page-rel.pz-in,
#pz-root.pz-mo .pz-teamx figure.pz-in,
#pz-root.pz-mo .pz-revx-card.pz-in{ opacity:1; transform:none; }
#pz-root.pz-mo .pz-in:nth-child(2){ transition-delay:.06s; }
#pz-root.pz-mo .pz-in:nth-child(3){ transition-delay:.12s; }
#pz-root.pz-mo .pz-in:nth-child(4){ transition-delay:.18s; }
#pz-root.pz-mo .pz-in:nth-child(5){ transition-delay:.24s; }
#pz-root.pz-mo .pz-in:nth-child(6){ transition-delay:.30s; }

@media (prefers-reduced-motion: reduce){
  #pz-root .pz-page-final::before{ animation:none; }
}


}

#pz-root .pz-vid-cap{ display:flex; align-items:center; gap:10px; padding:16px 20px; font-family:var(--font-body); font-size:14px; letter-spacing:.02em; color:var(--cream); background:linear-gradient(180deg, rgba(28,74,60,.5), rgba(14,42,35,.55)); border-top:1px solid rgba(214,176,106,.2); }
#pz-root .pz-vid-cap svg{ width:16px; height:16px; color:var(--gold-soft); flex:none; }
#pz-root .pz-vid-cta{ text-align:center; margin-top:44px; }

/* ---- MEET THE TEAM (light spa band) ---------------------------- */
#pz-root .pz-team{ padding-block:clamp(58px,7vw,100px); background:linear-gradient(180deg, var(--cream-2), var(--linen)); }
#pz-root .pz-team-head{ max-width:720px; margin:0 auto 54px; text-align:center; }
#pz-root .pz-team-head .pz-h2 em{ color:var(--gold-deep); font-style:italic; }
#pz-root .pz-team-note{ margin:16px auto 0; max-width:600px; color:color-mix(in srgb,var(--ink) 68%,transparent); font-size:var(--fs-lead); font-weight:300; }
#pz-root .pz-team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; max-width:1180px; margin:0 auto; }
#pz-root .pz-team-card{ background:var(--cream); border:1px solid rgba(21,35,28,.08); border-radius:22px; padding:28px 24px; text-align:center; box-shadow:0 20px 46px -30px rgba(21,35,28,.4); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
#pz-root .pz-team-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(21,35,28,.5); }
#pz-root .pz-team-card.is-lead{ background:radial-gradient(130% 130% at 50% 0%, var(--evergreen-3), var(--evergreen) 70%); color:var(--cream); border-color:rgba(214,176,106,.4); }
#pz-root .pz-team-avatar{ width:118px; height:118px; margin:0 auto 20px; border-radius:120px 120px 26px 26px; overflow:hidden; position:relative; background:linear-gradient(160deg, var(--evergreen-2), var(--evergreen)); display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 1px rgba(214,176,106,.5), 0 14px 30px -14px rgba(8,30,20,.6); }
#pz-root .pz-team-card.is-lead .pz-team-avatar{ background:linear-gradient(160deg, var(--cream), var(--sand)); }
#pz-root .pz-team-avatar img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#pz-root .pz-team-avatar .pz-mono{ font-family:var(--font-display); font-size:34px; letter-spacing:.04em; color:var(--evergreen); }
#pz-root .pz-team-avatar svg{ width:52px; height:52px; color:rgba(220,197,137,.85); }
#pz-root .pz-team-name{ font-family:var(--font-display); font-size:22px; line-height:1.15; margin:0 0 4px; }
#pz-root .pz-team-role{ font-family:var(--font-accent); font-size:17px; letter-spacing:.01em; color:var(--gold-deep); margin:0 0 12px; }
#pz-root .pz-team-card.is-lead .pz-team-role{ color:var(--gold-soft); }
#pz-root .pz-team-bio{ font-size:14.5px; line-height:1.6; color:color-mix(in srgb,var(--ink) 70%,transparent); margin:0; }
#pz-root .pz-team-card.is-lead .pz-team-bio{ color:var(--sage-soft); }

/* ---- responsive (new sections only) ---------------------------- */
@media (max-width:1080px){
  #pz-root .pz-team-grid{ grid-template-columns:repeat(2,1fr); gap:20px; }
}
@media (max-width:900px){
  #pz-root .pz-vid-grid{ grid-template-columns:1fr; gap:20px; }
}
@media (max-width:560px){
  #pz-root .pz-team-grid{ grid-template-columns:1fr; }
  #pz-root .pz-vid-cap{ font-size:13px; padding:14px 16px; }
}

/* ============================================================
   SERVICE SUB-PAGES — in-site overlay "pages"
   Internalises the former external service links. Verdant Pearl theme.
   Scoped under #pz-root. z-index sits below grain(9000)/cursor(9500),
   above the fixed header(1000). Overlay carries data-lenis-prevent so
   its own scroll works while Lenis ignores it.
   ============================================================ */
#pz-root .pz-page-overlay{
  position:fixed; inset:0; z-index:8000;
  background:var(--cream); color:var(--ink);
  overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .5s var(--ease), transform .6s var(--ease), visibility 0s linear .5s;
}
#pz-root .pz-page-overlay.is-open{
  opacity:1; visibility:visible; transform:none;
  transition:opacity .5s var(--ease), transform .6s var(--ease), visibility 0s;
}
/* belt-and-braces scroll lock for the page behind (overlay already covers it) */
html.pz-page-locked, html.pz-page-locked body{ overflow:hidden !important; }

/* soft atmospheric wash that travels with the viewport */
#pz-root .pz-page-overlay::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 520px at 84% -8%, rgba(194,164,90,.16), transparent 60%),
    radial-gradient(760px 520px at 4% 104%, rgba(20,58,47,.10), transparent 62%);
}

/* ---------- slim sticky sub-header (shared across pages) ---------- */
#pz-root .pz-page-bar{
  position:sticky; top:0; z-index:4;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:13px var(--gutter);
  background:color-mix(in srgb,var(--cream-2) 86%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid color-mix(in srgb,var(--gold-deep) 20%,transparent);
}
#pz-root .pz-page-back{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-body); font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--ink);
  padding:9px 16px 9px 13px; border-radius:100px;
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); background:transparent;
  transition:background .35s var(--ease), color .35s, border-color .35s, transform .35s var(--ease);
}
#pz-root .pz-page-back svg{ width:17px; height:17px; transition:transform .4s var(--ease); }
#pz-root .pz-page-back:hover{ background:var(--evergreen); color:var(--cream); border-color:var(--evergreen); }
#pz-root .pz-page-back:hover svg{ transform:translateX(-3px); }

#pz-root a.pz-page-bar-logo{
  display:flex; align-items:center; gap:11px; padding:4px 6px; border:none; border-radius:12px;
  font-family:var(--font-display); font-size:19px; letter-spacing:.02em; color:var(--ink);
}
#pz-root a.pz-page-bar-logo:hover{ background:transparent; transform:none; }
#pz-root .pz-page-bar-logo img{ width:34px; height:34px; border-radius:9px; box-shadow:0 0 0 1px rgba(194,164,90,.22); }
#pz-root .pz-page-bar-logo span{ line-height:1.05; }
#pz-root .pz-page-bar-logo span b{ font-weight:500; }
#pz-root .pz-page-bar-logo span small{ display:block; font-family:var(--font-body); font-size:9px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold-deep); margin-top:2px; }
#pz-root .pz-page-bar .pz-btn{ padding:12px 22px; font-size:12.5px; }

@media (max-width:680px){
  #pz-root .pz-page-bar-logo{ position:absolute; left:50%; transform:translateX(-50%); }
  #pz-root .pz-page-bar-logo span{ display:none; }
  #pz-root .pz-page-back{ font-size:0; gap:0; padding:11px; }      /* icon only */
  #pz-root .pz-page-back svg{ width:18px; height:18px; }
  #pz-root .pz-page-bar .pz-page-book{ font-size:12px; padding:11px 18px; }
}

/* ---------- page container ---------- */
#pz-root .pz-page-pages{ position:relative; z-index:1; }
#pz-root .pz-page-page{ display:none; }
#pz-root .pz-page-page.is-active{ display:block; }
#pz-root .pz-page-inner{ width:100%; max-width:912px; margin-inline:auto; padding:clamp(34px,6vw,84px) var(--gutter) clamp(60px,8vw,116px); }

/* ---------- hero ---------- */
#pz-root .pz-page-hero{ position:relative; }
#pz-root .pz-page-sprig{ position:absolute; top:-14px; right:0; width:clamp(92px,15vw,162px); color:color-mix(in srgb,var(--evergreen) 20%,transparent); pointer-events:none; }
@media (max-width:760px){ #pz-root .pz-page-sprig{ opacity:.45; width:90px; top:0; } }
#pz-root .pz-page-kicker{ font-family:var(--font-body); font-size:var(--fs-eyebrow); font-weight:600; letter-spacing:.36em; text-transform:uppercase; color:var(--gold-deep); margin:0; }
#pz-root .pz-page-title{ font-family:var(--font-display); font-weight:500; line-height:1.02; letter-spacing:-.015em; font-size:clamp(40px,7vw,84px); margin:18px 0 0; max-width:14ch; }
#pz-root .pz-page-title em{ font-family:var(--font-accent); font-style:italic; color:var(--gold-deep); }
#pz-root .pz-page-lead{ font-size:var(--fs-lead); line-height:1.5; font-weight:300; margin:22px 0 0; max-width:46ch; color:color-mix(in srgb,var(--ink) 78%,transparent); }
#pz-root .pz-page-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
#pz-root .pz-page-tag{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:.03em; color:var(--evergreen-2);
  padding:8px 15px; border-radius:100px;
  background:color-mix(in srgb,var(--sage-soft) 38%,var(--cream-2));
  border:1px solid color-mix(in srgb,var(--gold-deep) 22%,transparent);
}
#pz-root .pz-page-tag svg{ width:14px; height:14px; color:var(--gold-deep); }
#pz-root .pz-page-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }

/* ---------- divider ---------- */
#pz-root .pz-page-rule{ height:1px; margin:clamp(34px,5vw,56px) 0; opacity:.6;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--gold-deep) 58%,transparent) 18%,color-mix(in srgb,var(--gold-deep) 58%,transparent) 82%,transparent); }

/* ---------- body sections ---------- */
#pz-root .pz-page-sec{ margin-top:clamp(30px,4.4vw,50px); }
#pz-root .pz-page-sec h2{ font-family:var(--font-display); font-weight:500; font-size:clamp(24px,3.3vw,38px); line-height:1.08; letter-spacing:-.012em; margin:0 0 16px; }
#pz-root .pz-page-sec h2 em{ font-family:var(--font-accent); font-style:italic; color:var(--gold-deep); }
#pz-root .pz-page-sec p{ font-size:var(--fs-body); line-height:1.78; color:color-mix(in srgb,var(--ink) 82%,transparent); }
#pz-root .pz-page-sec p + p{ margin-top:16px; }

/* points list */
#pz-root .pz-page-points{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:13px; }
#pz-root .pz-page-points li{
  display:grid; grid-template-columns:auto 1fr; gap:15px; align-items:start;
  padding:18px 20px; border-radius:18px;
  background:linear-gradient(180deg,var(--cream-2),color-mix(in srgb,var(--cream-2) 55%,var(--cream)));
  border:1px solid color-mix(in srgb,var(--gold-deep) 15%,transparent);
  box-shadow:0 18px 40px -34px rgba(20,58,47,.5);
}
#pz-root .pz-page-points li b{ display:block; font-family:var(--font-body); font-weight:600; font-size:15.5px; color:var(--ink); margin-bottom:3px; }
#pz-root .pz-page-points li span{ font-size:14.5px; line-height:1.62; color:color-mix(in srgb,var(--ink) 70%,transparent); }
#pz-root .pz-page-tick{ width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(circle at 35% 28%, var(--evergreen-3), var(--evergreen)); color:var(--gold-soft); }
#pz-root .pz-page-tick svg{ width:16px; height:16px; }

/* numbered steps */
#pz-root .pz-page-steps{ list-style:none; counter-reset:s; margin:22px 0 0; padding:0; display:grid; gap:12px; }
#pz-root .pz-page-steps li{ counter-increment:s; position:relative; padding:18px 20px 18px 72px; border-radius:18px;
  background:var(--cream-2); border:1px solid color-mix(in srgb,var(--gold-deep) 14%,transparent); }
#pz-root .pz-page-steps li::before{ content:counter(s,decimal-leading-zero); position:absolute; left:20px; top:16px;
  font-family:var(--font-display); font-size:27px; color:var(--gold-deep); font-weight:500; line-height:1; }
#pz-root .pz-page-steps li b{ display:block; font-family:var(--font-body); font-weight:600; font-size:15.5px; margin-bottom:3px; }
#pz-root .pz-page-steps li span{ font-size:14.5px; line-height:1.62; color:color-mix(in srgb,var(--ink) 70%,transparent); }

/* aside callout (dark, on-brand) */
#pz-root .pz-page-aside{ position:relative; margin-top:clamp(30px,4.4vw,50px); padding:clamp(28px,3.6vw,44px); border-radius:22px; overflow:hidden; color:var(--cream);
  background:radial-gradient(120% 150% at 0% 0%, var(--evergreen-3), var(--evergreen) 58%, var(--ink));
  box-shadow:0 30px 70px -42px rgba(14,42,35,.85); }
#pz-root .pz-page-aside p{ position:relative; z-index:1; font-family:var(--font-accent); font-style:italic; font-size:clamp(20px,2.6vw,28px); line-height:1.4; color:var(--cream); max-width:30ch; }
#pz-root .pz-page-quote{ position:absolute; top:30px; left:20px; font-family:var(--font-display); font-size:90px; line-height:0; color:var(--gold-soft); opacity:.42; }
#pz-root .pz-page-botany{ position:absolute; right:-34px; bottom:-54px; width:210px; color:rgba(220,197,137,.15); }

/* related */
#pz-root .pz-page-related{ margin-top:clamp(40px,5vw,62px); }
#pz-root .pz-page-related h3{ font-family:var(--font-body); font-size:var(--fs-eyebrow); font-weight:600; letter-spacing:.32em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 18px; }
#pz-root .pz-page-rel-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(218px,1fr)); gap:13px; }
#pz-root a.pz-page-rel{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; border-radius:16px;
  background:var(--cream-2); border:1px solid color-mix(in srgb,var(--gold-deep) 18%,transparent);
  font-family:var(--font-display); font-size:18px; line-height:1.15; color:var(--ink);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s, background .4s; }
#pz-root a.pz-page-rel svg{ width:18px; height:18px; color:var(--gold-deep); transition:transform .4s var(--ease); flex:none; }
#pz-root a.pz-page-rel:hover{ transform:translateY(-3px); background:#fffdf7; border-color:color-mix(in srgb,var(--gold-deep) 42%,transparent); box-shadow:0 24px 50px -34px rgba(20,58,47,.6); }
#pz-root a.pz-page-rel:hover svg{ transform:translateX(4px); }

/* final CTA */
#pz-root .pz-page-final{ margin-top:clamp(44px,5.4vw,66px); text-align:center; padding-top:clamp(34px,4.4vw,50px);
  border-top:1px solid color-mix(in srgb,var(--gold-deep) 22%,transparent); }
#pz-root .pz-page-final h2{ font-family:var(--font-display); font-weight:500; font-size:clamp(26px,3.8vw,46px); line-height:1.05; margin:0; }
#pz-root .pz-page-final h2 em{ font-family:var(--font-accent); font-style:italic; color:var(--gold-deep); }
#pz-root .pz-page-final p{ margin:14px auto 26px; max-width:46ch; color:color-mix(in srgb,var(--ink) 72%,transparent); }
#pz-root .pz-page-final .pz-page-actions{ justify-content:center; }

/* ---------- entrance animation on open ---------- */
@media (prefers-reduced-motion:no-preference){
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *{ opacity:0; transform:translateY(20px); animation:pz-page-rise .7s var(--ease) forwards; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(1){ animation-delay:.04s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(2){ animation-delay:.10s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(3){ animation-delay:.16s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(4){ animation-delay:.22s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(5){ animation-delay:.28s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(6){ animation-delay:.34s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(7){ animation-delay:.40s; }
  #pz-root .pz-page-page.pz-page-animate .pz-page-inner > *:nth-child(n+8){ animation-delay:.46s; }
}
@keyframes pz-page-rise{ to{ opacity:1; transform:none; } }

/* Compact mega-menu + elegant dark-gold dropdowns. Override/new rules only. */

/* ---- all dropdown panels: dark gold, gold hairline, deep shadow ---- */
#pz-root .pz-dd{
  background:linear-gradient(158deg,#241d0f 0%,#191308 100%) !important;
  border:1px solid rgba(220,197,137,.34) !important;
  box-shadow:0 26px 60px rgba(8,10,7,.55), inset 0 0 0 1px rgba(220,197,137,.10) !important;
}
#pz-root .pz-dd a{ color:#efe7d4 !important; }
#pz-root .pz-dd a::after{ display:none !important; }
#pz-root .pz-dd a:hover{ background:var(--evergreen) !important; color:#fff !important; box-shadow:inset 2px 0 0 var(--gold-soft); }

/* ---- mega layout: CENTERED under Services so it never clips ---- */
#pz-root .pz-dd.pz-mega{ left:50%; right:auto; top:calc(100% + 8px);
  transform:translateX(-50%) translateY(8px); width:min(640px,94vw); box-sizing:border-box;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2px 16px; padding:22px 24px; }
#pz-root .pz-nav-item:hover .pz-dd.pz-mega, #pz-root .pz-nav-item:focus-within .pz-dd.pz-mega{
  transform:translateX(-50%) translateY(0); }
#pz-root .pz-mega-col{ display:flex; flex-direction:column; gap:1px; min-width:0; }
#pz-root .pz-mega-col + .pz-mega-col{ border-left:1px solid rgba(220,197,137,.14); padding-left:16px; }
#pz-root .pz-dd.pz-mega .pz-mega-h{ font-family:var(--font-display) !important; font-weight:600;
  font-size:11px !important; letter-spacing:.13em; text-transform:uppercase; color:#e6c877 !important;
  padding:2px 10px 9px !important; margin-bottom:6px; border-bottom:1px solid rgba(220,197,137,.26); }
#pz-root .pz-dd.pz-mega .pz-mega-h:hover{ background:transparent !important; color:#fff !important; box-shadow:none; }
#pz-root .pz-dd.pz-mega a{ padding:6px 10px; border-radius:7px; font-size:11.5px; line-height:1.3;
  white-space:normal; color:#e4dac2 !important; transition:background .18s var(--ease), color .18s var(--ease); }
#pz-root .pz-dd.pz-mega a:not(.pz-mega-h):hover{ background:var(--evergreen) !important; color:#fff !important; }

/* ---- mobile: nested sub-accordions (short until tapped) ---- */
@media (max-width:900px){
  #pz-root .pz-drawer .pz-dgrp .pz-dsub{ border-bottom:1px solid rgba(243,234,217,.09); }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub > summary{ font-family:var(--font-accent); font-weight:600; font-size:clamp(18px,5vw,23px);
    color:var(--sage-soft); padding:9px 0 9px 14px; list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub > summary::-webkit-details-marker{ display:none; }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub > summary::after{ content:"+"; color:var(--gold-soft); font-family:var(--font-body); font-size:20px; line-height:1; }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub[open] > summary::after{ content:"\2013"; }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub a{ font-family:var(--font-body) !important; font-size:14px !important; color:var(--sage-soft) !important;
    padding:6px 0 6px 30px !important; border:none !important; display:block; }
  #pz-root .pz-drawer .pz-dgrp .pz-dsub a:hover{ color:var(--gold-soft) !important; }
}

/* ============================================================
   INSIDE PAGES — Verdant Pearl editorial layout + full header.
   Overlay-only (all selectors under #pz-root .pz-page-*, .pz-pnav, .pz-px-*).
   ============================================================ */

/* ---- full header (mirrors homepage, lives inside the overlay) ---- */
#pz-root .pz-pnav{ position:sticky; top:0; z-index:30;
  background:color-mix(in srgb,var(--cream-2) 90%,transparent);
  -webkit-backdrop-filter:blur(16px) saturate(1.25); backdrop-filter:blur(16px) saturate(1.25);
  border-bottom:1px solid color-mix(in srgb,var(--gold-deep) 22%,transparent);
  box-shadow:0 12px 34px -30px rgba(14,42,35,.55); }
#pz-root .pz-pnav-inner{ max-width:1340px; margin-inline:auto; padding:11px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:22px; }
#pz-root a.pz-plogo{ display:flex; align-items:center; gap:12px; cursor:pointer;
  font-family:var(--font-display); font-size:22px; letter-spacing:.02em; color:var(--ink); }
#pz-root a.pz-plogo img{ width:40px; height:40px; border-radius:10px; object-fit:cover; box-shadow:0 0 0 1px rgba(194,164,90,.24); }
#pz-root .pz-plogo b{ font-weight:600; }
#pz-root .pz-plogo small{ display:block; font-family:var(--font-body); font-size:9.5px; letter-spacing:.42em; text-transform:uppercase; color:var(--gold-deep); margin-top:3px; font-weight:600; }
#pz-root .pz-pnav .pz-menu{ gap:clamp(15px,1.7vw,30px); }
#pz-root .pz-pnav-cta{ display:flex; align-items:center; gap:16px; }
#pz-root .pz-pphone{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink); white-space:nowrap; }
#pz-root .pz-pphone svg{ width:15px; height:15px; color:var(--gold-deep); }
#pz-root .pz-pburger{ display:none; width:46px; height:46px; border-radius:13px; background:transparent;
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); position:relative; cursor:pointer; }
#pz-root .pz-pburger i{ position:absolute; left:13px; width:20px; height:1.6px; background:var(--ink); transition:.4s var(--ease); }
#pz-root .pz-pburger i:nth-child(1){ top:18px; } #pz-root .pz-pburger i:nth-child(2){ top:24px; }
#pz-root .pz-pburger.is-open i:nth-child(1){ top:22px; transform:rotate(45deg); }
#pz-root .pz-pburger.is-open i:nth-child(2){ top:22px; transform:rotate(-45deg); }

/* mobile accordion */
#pz-root .pz-pmob{ display:none; border-top:1px solid color-mix(in srgb,var(--gold-deep) 16%,transparent);
  padding:12px var(--gutter) 22px; max-height:calc(100vh - 68px); overflow-y:auto; }
#pz-root .pz-pmob.is-open{ display:block; }
#pz-root .pz-pmob-back{ display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep);
  padding:8px 0 12px; }
#pz-root .pz-pmob-back svg{ width:16px; height:16px; }
#pz-root .pz-pmg{ border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent); }
#pz-root .pz-pmg > summary{ list-style:none; cursor:pointer; padding:13px 2px;
  font-family:var(--font-display); font-size:19px; color:var(--ink); display:flex; align-items:center; justify-content:space-between; }
#pz-root .pz-pmg > summary::-webkit-details-marker{ display:none; }
#pz-root .pz-pmg > summary::after{ content:""; width:9px; height:9px; border-right:1.6px solid var(--gold-deep); border-bottom:1.6px solid var(--gold-deep); transform:rotate(45deg); transition:transform .35s var(--ease); margin-right:4px; }
#pz-root .pz-pmg[open] > summary::after{ transform:rotate(-135deg); }
#pz-root .pz-pmg a{ display:block; padding:9px 2px 9px 14px; font-size:14.5px; color:color-mix(in srgb,var(--ink) 78%,transparent); cursor:pointer; }
#pz-root .pz-pmg a:hover{ color:var(--evergreen); }
#pz-root a.pz-pmob-flat{ display:block; padding:13px 2px; font-family:var(--font-display); font-size:19px; color:var(--ink); border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent); cursor:pointer; }

/* ---- container: wider, two-column ---- */
#pz-root .pz-page-inner{ max-width:1240px; padding:clamp(20px,3vw,40px) var(--gutter) clamp(56px,7vw,104px); }

/* ---- hero: split copy + figure ---- */
#pz-root .pz-px-hero{ position:relative; display:grid; grid-template-columns:1.32fr .94fr;
  gap:clamp(26px,4vw,66px); align-items:center;
  padding:clamp(26px,4vw,54px) 0 clamp(24px,3vw,40px); }
#pz-root .pz-px-sprig{ position:absolute; top:-6px; right:0; width:clamp(78px,11vw,132px);
  color:color-mix(in srgb,var(--evergreen) 20%,transparent); pointer-events:none; z-index:0; }
@media (max-width:760px){ #pz-root .pz-px-sprig{ opacity:.4; width:78px; } }
#pz-root .pz-px-copy{ position:relative; z-index:1; }
#pz-root .pz-px-kicker{ font-family:var(--font-body); font-size:11.5px; font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:var(--gold-deep); margin:0;
  display:inline-flex; align-items:center; gap:12px; }
#pz-root .pz-px-kicker::before{ content:""; width:30px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); }
#pz-root .pz-px-title{ font-family:var(--font-display); font-weight:500; line-height:1.02; letter-spacing:-.015em;
  font-size:clamp(38px,5.6vw,74px); margin:16px 0 0; }
#pz-root .pz-px-title em{ font-family:var(--font-accent); font-style:italic; color:var(--gold-deep); }
#pz-root .pz-px-lead{ font-size:clamp(16px,1.35vw,19px); line-height:1.55; font-weight:300; margin:18px 0 0; max-width:46ch;
  color:color-mix(in srgb,var(--ink) 80%,transparent); }
#pz-root .pz-px-tags{ display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
#pz-root .pz-px-tag{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:500;
  padding:8px 15px; border-radius:100px; color:var(--evergreen);
  background:color-mix(in srgb,var(--evergreen) 6%,var(--cream-2));
  border:1px solid color-mix(in srgb,var(--evergreen) 15%,transparent); }
#pz-root .pz-px-tag svg{ width:14px; height:14px; color:var(--gold-deep); }
#pz-root .pz-px-act{ display:flex; flex-wrap:wrap; gap:13px; margin-top:26px; }

/* hero figure card */
#pz-root .pz-px-fig{ position:relative; overflow:hidden; border-radius:24px;
  padding:clamp(24px,2.4vw,34px);
  background:linear-gradient(158deg,#12332a 0%,var(--evergreen) 55%,#0a2019 100%);
  color:var(--cream); box-shadow:0 30px 60px -34px rgba(10,32,25,.7);
  border:1px solid rgba(220,197,137,.16); }
#pz-root .pz-px-fig::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(220,197,137,.12); }
#pz-root .pz-px-fig-bg{ position:absolute; right:-30px; bottom:-26px; width:210px; height:210px;
  color:var(--gold-soft); opacity:.14; pointer-events:none; }
#pz-root .pz-px-fig-eyebrow{ font-family:var(--font-body); font-size:10.5px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft); margin:0 0 16px; position:relative; }
#pz-root .pz-px-fig ul{ list-style:none; margin:0; padding:0; position:relative; display:grid; gap:13px; }
#pz-root .pz-px-fig li{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; font-size:14px; line-height:1.5; color:color-mix(in srgb,var(--cream) 92%,transparent); }
#pz-root .pz-px-fig li b{ color:var(--cream); font-weight:600; }
#pz-root .pz-px-fig li .ic{ width:26px; height:26px; flex:none; border-radius:8px; display:grid; place-items:center;
  background:rgba(220,197,137,.14); color:var(--gold-soft); }
#pz-root .pz-px-fig li .ic svg{ width:15px; height:15px; }
#pz-root .pz-px-fig .pz-px-fig-note{ position:relative; margin:16px 0 0; padding-top:15px; font-size:12.5px; line-height:1.5;
  color:var(--sage-soft); border-top:1px solid rgba(220,197,137,.18); }

/* ---- divider ---- */
#pz-root .pz-px-rule{ height:1px; margin:clamp(26px,3.4vw,44px) 0 0;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--gold-deep) 40%,transparent),transparent); opacity:.7; }

/* ---- body: main + sticky aside ---- */
#pz-root .pz-px-body{ display:grid; grid-template-columns:minmax(0,1fr) 318px; gap:clamp(30px,4.4vw,70px);
  align-items:start; margin-top:clamp(28px,3.6vw,48px); }
#pz-root .pz-px-main{ min-width:0; }
#pz-root .pz-px-aside{ position:sticky; top:96px; display:grid; gap:16px; }

/* sections */
#pz-root .pz-px-sec + .pz-px-sec{ margin-top:clamp(28px,3.6vw,46px); }
#pz-root .pz-px-sec > h2{ font-family:var(--font-display); font-weight:500; letter-spacing:-.01em;
  font-size:clamp(23px,2.5vw,32px); line-height:1.12; margin:0 0 4px; color:var(--ink); }
#pz-root .pz-px-sec > h2::before{ content:""; display:block; width:38px; height:2px; border-radius:2px; margin-bottom:16px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft)); }
#pz-root .pz-px-sec p{ font-size:16px; line-height:1.72; margin:14px 0 0; max-width:64ch;
  color:color-mix(in srgb,var(--ink) 82%,transparent); }
#pz-root .pz-px-sec p:first-of-type{ margin-top:0; }
#pz-root .pz-px-sec p a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
#pz-root .pz-px-lede{ font-family:var(--font-accent); font-size:clamp(20px,2.1vw,27px); line-height:1.5; font-weight:500;
  color:color-mix(in srgb,var(--ink) 90%,transparent); margin:0; max-width:38ch; }
#pz-root .pz-px-lede em{ font-style:italic; color:var(--gold-deep); }

/* checklist (non-sequential) */
#pz-root ul.pz-px-list{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:11px; }
#pz-root ul.pz-px-list li{ display:grid; grid-template-columns:auto 1fr; gap:13px; align-items:start;
  font-size:15.5px; line-height:1.55; color:color-mix(in srgb,var(--ink) 82%,transparent); }
#pz-root ul.pz-px-list li .tk{ width:24px; height:24px; flex:none; border-radius:7px; display:grid; place-items:center;
  background:color-mix(in srgb,var(--evergreen) 9%,var(--cream)); color:var(--evergreen); margin-top:1px; }
#pz-root ul.pz-px-list li .tk svg{ width:14px; height:14px; }

/* feature grid (cards) */
#pz-root .pz-px-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:20px; }
#pz-root .pz-px-card{ position:relative; border-radius:16px; padding:19px 20px;
  background:var(--cream-2); border:1px solid rgba(21,35,28,.08);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease); }
#pz-root .pz-px-card:hover{ transform:translateY(-4px); box-shadow:0 22px 46px -28px rgba(21,35,28,.45);
  border-color:color-mix(in srgb,var(--gold) 46%,transparent); }
#pz-root .pz-px-card .ic{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; margin-bottom:12px;
  background:color-mix(in srgb,var(--evergreen) 8%,var(--cream)); color:var(--gold-deep); }
#pz-root .pz-px-card .ic svg{ width:18px; height:18px; }
#pz-root .pz-px-card h3{ font-family:var(--font-display); font-size:18px; font-weight:600; color:var(--ink); margin:0 0 5px; }
#pz-root .pz-px-card p{ font-size:13.5px; line-height:1.55; color:color-mix(in srgb,var(--ink) 68%,transparent); margin:0; max-width:none; }

/* numbered steps (real sequence only) */
#pz-root .pz-px-steps{ counter-reset:pxs; display:grid; gap:12px; margin-top:20px; }
#pz-root .pz-px-step{ counter-increment:pxs; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start;
  padding:18px 20px; border-radius:16px; background:var(--cream-2); border:1px solid rgba(21,35,28,.07); }
#pz-root .pz-px-step::before{ content:counter(pxs,decimal-leading-zero); font-family:var(--font-fancy); font-weight:600;
  font-size:22px; line-height:1; color:var(--gold-deep);
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:color-mix(in srgb,var(--evergreen) 8%,var(--cream)); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 30%,transparent); }
#pz-root .pz-px-step h3{ font-family:var(--font-display); font-size:17.5px; font-weight:600; color:var(--ink); margin:2px 0 4px; }
#pz-root .pz-px-step p{ font-size:14px; line-height:1.55; color:color-mix(in srgb,var(--ink) 70%,transparent); margin:0; max-width:none; }

/* pull quote */
#pz-root .pz-px-quote{ position:relative; margin:clamp(26px,3.4vw,44px) 0 0; padding:clamp(22px,2.6vw,30px) clamp(24px,3vw,34px);
  border-radius:18px; background:color-mix(in srgb,var(--evergreen) 5%,var(--cream-2));
  border:1px solid color-mix(in srgb,var(--evergreen) 12%,transparent); }
#pz-root .pz-px-quote::before{ content:"\201C"; position:absolute; top:-6px; left:16px; font-family:var(--font-fancy); font-size:78px; line-height:1; color:color-mix(in srgb,var(--gold) 55%,transparent); }
#pz-root .pz-px-quote p{ font-family:var(--font-accent); font-style:italic; font-size:clamp(20px,2.2vw,27px); line-height:1.4;
  color:var(--evergreen); margin:0 0 0 30px; max-width:none; }
#pz-root .pz-px-quote cite{ display:block; margin:14px 0 0 30px; font-family:var(--font-body); font-style:normal; font-size:12px;
  font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); }

/* aside cards */
#pz-root .pz-side-card{ border-radius:18px; padding:22px 22px 24px; background:var(--cream-2);
  border:1px solid rgba(21,35,28,.08); box-shadow:0 20px 44px -34px rgba(14,42,35,.5); }
#pz-root .pz-side-card.is-green{ background:linear-gradient(160deg,#12332a,var(--evergreen)); color:var(--cream); border-color:rgba(220,197,137,.18); }
#pz-root .pz-side-h{ font-family:var(--font-body); font-size:10.5px; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 15px; }
#pz-root .is-green .pz-side-h{ color:var(--gold-soft); }
#pz-root .pz-side-row{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; padding:9px 0; font-size:14px; line-height:1.45; }
#pz-root .pz-side-row + .pz-side-row{ border-top:1px solid rgba(21,35,28,.07); }
#pz-root .is-green .pz-side-row + .pz-side-row{ border-top-color:rgba(220,197,137,.16); }
#pz-root .pz-side-row .ic{ width:30px; height:30px; flex:none; border-radius:8px; display:grid; place-items:center;
  background:color-mix(in srgb,var(--evergreen) 8%,var(--cream)); color:var(--gold-deep); }
#pz-root .is-green .pz-side-row .ic{ background:rgba(220,197,137,.14); color:var(--gold-soft); }
#pz-root .pz-side-row .ic svg{ width:16px; height:16px; }
#pz-root .pz-side-row a{ color:inherit; }
#pz-root .pz-side-row b{ display:block; font-weight:600; color:var(--ink); font-size:14.5px; }
#pz-root .is-green .pz-side-row b{ color:var(--cream); }
#pz-root .pz-side-row span{ color:color-mix(in srgb,var(--ink) 62%,transparent); font-size:13px; }
#pz-root .is-green .pz-side-row span{ color:var(--sage-soft); }
#pz-root .pz-hours{ list-style:none; margin:0; padding:0; }
#pz-root .pz-hours li{ display:flex; justify-content:space-between; gap:14px; padding:6px 0; font-size:13.5px;
  color:color-mix(in srgb,var(--ink) 74%,transparent); }
#pz-root .pz-hours li + li{ border-top:1px solid rgba(21,35,28,.06); }
#pz-root .pz-hours li b{ color:var(--ink); font-weight:600; }
#pz-root .pz-hours li.is-closed{ color:color-mix(in srgb,var(--ink) 48%,transparent); }
#pz-root .pz-chips{ display:flex; flex-wrap:wrap; gap:7px; }
#pz-root .pz-chip{ font-size:11px; font-weight:600; letter-spacing:.04em; padding:6px 11px; border-radius:100px;
  color:var(--evergreen); background:color-mix(in srgb,var(--evergreen) 7%,var(--cream));
  border:1px solid color-mix(in srgb,var(--evergreen) 15%,transparent); }
#pz-root .pz-side-card.is-green .pz-btn{ width:100%; justify-content:center; margin-top:4px; }
#pz-root .pz-side-cta-p{ font-size:13.5px; line-height:1.5; color:var(--sage-soft); margin:0 0 15px; }

/* related */
#pz-root .pz-px-rel{ margin-top:clamp(28px,3.6vw,46px); }
#pz-root .pz-px-rel h2{ font-family:var(--font-body); font-size:11.5px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 15px; }
#pz-root .pz-px-rel-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
#pz-root a.pz-px-relcard{ display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer;
  padding:16px 18px; border-radius:14px; background:var(--cream-2); border:1px solid rgba(21,35,28,.08);
  font-family:var(--font-display); font-size:16px; color:var(--ink);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease), background .5s var(--ease); }
#pz-root a.pz-px-relcard svg{ width:18px; height:18px; color:var(--gold-deep); flex:none; transition:transform .4s var(--ease); }
#pz-root a.pz-px-relcard:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -30px rgba(21,35,28,.5);
  border-color:color-mix(in srgb,var(--gold) 46%,transparent); }
#pz-root a.pz-px-relcard:hover svg{ transform:translateX(4px); }

/* final CTA band */
#pz-root .pz-px-cta{ position:relative; overflow:hidden; margin-top:clamp(40px,5vw,68px);
  border-radius:26px; padding:clamp(40px,5.4vw,68px) clamp(26px,4vw,58px); text-align:center;
  background:linear-gradient(155deg,#12332a 0%,var(--evergreen) 55%,#0a2019 100%); color:var(--cream);
  box-shadow:0 40px 80px -44px rgba(10,32,25,.75); border:1px solid rgba(220,197,137,.16); }
#pz-root .pz-px-cta::after{ content:""; position:absolute; bottom:-90px; right:-70px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle,rgba(220,197,137,.2),transparent 68%); pointer-events:none; }
#pz-root .pz-px-cta h2{ position:relative; font-family:var(--font-display); font-weight:500; font-size:clamp(26px,3.6vw,44px); line-height:1.06; margin:0; }
#pz-root .pz-px-cta h2 em{ font-family:var(--font-accent); font-style:italic; color:var(--gold-soft); }
#pz-root .pz-px-cta p{ position:relative; margin:14px auto 26px; max-width:48ch; color:var(--sage-soft); font-weight:300; }
#pz-root .pz-px-cta .pz-px-act{ position:relative; justify-content:center; margin-top:0; }

/* ---- scroll reveal (gated on motion; visible otherwise) ---- */
#pz-root.pz-mo .pz-rvx{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
#pz-root.pz-mo .pz-rvx.pz-in{ opacity:1; transform:none; }
#pz-root.pz-mo .pz-px-grid.pz-rvx.pz-in > *,
#pz-root.pz-mo .pz-px-steps.pz-rvx.pz-in > *{ animation:pz-px-rise .6s var(--ease) both; }
@keyframes pz-px-rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }

/* ---- responsive ---- */
@media (max-width:1080px){
  #pz-root .pz-pnav .pz-menu, #pz-root .pz-pnav-cta .pz-pphone{ display:none; }
  #pz-root .pz-pburger{ display:grid; place-items:center; }
}
@media (max-width:980px){
  #pz-root .pz-px-body{ grid-template-columns:1fr; gap:36px; }
  #pz-root .pz-px-aside{ position:static; grid-template-columns:repeat(2,1fr); display:grid; }
  #pz-root .pz-px-aside .pz-side-cta{ grid-column:1 / -1; }
}
@media (max-width:820px){
  #pz-root .pz-px-hero{ grid-template-columns:1fr; gap:28px; }
  #pz-root .pz-px-fig{ order:2; }
  #pz-root .pz-px-rel-grid{ grid-template-columns:1fr; }
}
@media (max-width:620px){
  #pz-root .pz-px-aside{ grid-template-columns:1fr; }
  #pz-root .pz-px-grid{ grid-template-columns:1fr; }
  #pz-root .pz-pnav-inner{ gap:11px; }
  #pz-root a.pz-plogo span{ display:none; }
  #pz-root .pz-pnav-cta{ gap:9px; }
  #pz-root .pz-pnav-cta .pz-btn{ padding:11px 15px; font-size:12.5px; }
}
@media (max-width:380px){
  #pz-root .pz-pnav-cta .pz-btn{ padding:10px 13px; gap:6px; }
  #pz-root .pz-pnav-cta .pz-btn svg{ display:none; }
}

/* ---- multi-page additions ---- */
html{ scroll-behavior:smooth; }
#pz-root .pz-pnav.is-stuck{ box-shadow:0 1px 0 rgba(21,35,28,.06), 0 20px 44px -34px rgba(14,42,35,.6); }
/* standalone inside pages: gentle load-in for the hero */
@media (prefers-reduced-motion:no-preference){
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *{ opacity:0; transform:translateY(16px); animation:pz-px-rise .6s var(--ease) forwards; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *:nth-child(1){ animation-delay:.05s; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *:nth-child(2){ animation-delay:.11s; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *:nth-child(3){ animation-delay:.17s; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *:nth-child(4){ animation-delay:.23s; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-copy > *:nth-child(5){ animation-delay:.29s; }
  #pz-root.pz-mo .pz-px-hero > .pz-px-fig{ opacity:0; transform:translateY(20px); animation:pz-px-rise .7s var(--ease) .18s forwards; }
}

/* ---- feedback round (jul 2026): clickable hero cards + footer privacy link ---- */
#pz-root a.icard{color:inherit;text-decoration:none;cursor:pointer}
#pz-root a.icard:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}
#pz-root .pz-privlink{color:inherit;opacity:.6;text-decoration:underline;text-underline-offset:3px;transition:opacity .3s ease}
#pz-root .pz-privlink:hover{opacity:1}
