/* =====================================================================
   VITAZARA — Ozalyn
   Original stylesheet. Palette: lotus, powder, silver, chrome + the
   grounded wellness tones (olive, beige, stone, charcoal, white).
   Prefix "vz-" is used only to avoid framework-like utility naming.
   ===================================================================== */

/* ---------- Design tokens ---------- */
:root {
  --olive:      #7a8460;
  --olive-deep: #56603f;
  --olive-soft: #96a86e;
  --beige:      #e9e0ce;
  --stone:      #d6d2c9;
  --charcoal:   #2c2e2a;
  --ink-soft:   #55574f;
  --white:      #faf9f5;
  --paper:      #f3f0e8;

  --lotus:      #deb2be;
  --lotus-deep: #c48a9c;
  --powder:     #ced6d6;
  --silver:     #c4c8ca;
  --chrome:     #a8aeb2;

  --line:       #e3ddd0;
  --shadow-sm:  0 2px 10px rgba(44,46,42,.06);
  --shadow-md:  0 14px 40px rgba(44,46,42,.10);
  --shadow-lg:  0 30px 80px rgba(44,46,42,.14);

  --radius-s:   14px;
  --radius-m:   22px;
  --radius-l:   34px;
  --radius-pill: 999px;

  --measure:    68ch;
  --gutter:     clamp(1.25rem, 4vw, 3.5rem);
  --shell:      1220px;

  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans:  "Avenir Next", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  font-family: var(--sans);
  color: var(--charcoal);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; line-height: 1.12; letter-spacing: -.01em; }

.vz-shell { width: min(100% - 2*var(--gutter), var(--shell)); margin-inline: auto; }

/* ---------- Type scale ---------- */
.vz-eyebrow {
  font-family: var(--sans);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--olive-deep);
  display: inline-flex;
  align-items: center;
  gap: .7em;
}
.vz-eyebrow::before {
  content: "";
  width: 26px; height: 1px;
  background: var(--lotus-deep);
}

.vz-display { font-size: clamp(2.5rem, 6vw, 4.6rem); }
.vz-h2      { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
.vz-lead    { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--ink-soft); max-width: var(--measure); }

/* ---------- Buttons ---------- */
.vz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  padding: .95em 1.8em;
  border-radius: var(--radius-pill);
  font-weight: 600;
  letter-spacing: .01em;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
  will-change: transform;
}
.vz-btn--solid {
  background: linear-gradient(135deg, var(--olive) 0%, var(--olive-deep) 100%);
  color: var(--white);
  box-shadow: 0 12px 26px rgba(86,96,63,.28);
}
.vz-btn--solid:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(86,96,63,.34); }
.vz-btn--ghost {
  background: var(--white);
  color: var(--charcoal);
  box-shadow: inset 0 0 0 1.5px var(--stone);
}
.vz-btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--olive); transform: translateY(-2px); }
.vz-btn--lotus {
  background: linear-gradient(135deg, var(--lotus) 0%, var(--lotus-deep) 100%);
  color: #4a2e37;
  box-shadow: 0 12px 26px rgba(196,138,156,.3);
}
.vz-btn--lotus:hover { transform: translateY(-3px); }
:focus-visible { outline: 3px solid var(--lotus-deep); outline-offset: 3px; border-radius: 4px; }

/* =====================================================================
   HEADER / NAV
   ===================================================================== */
.vz-header {
  position: sticky; top: 0; z-index: 60;
  backdrop-filter: saturate(140%) blur(14px);
  background: rgba(250,249,245,.72);
  border-bottom: 1px solid transparent;
  transition: border-color .3s var(--ease), background .3s var(--ease);
}
.vz-header.is-stuck { border-color: var(--line); background: rgba(250,249,245,.9); }
.vz-nav { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; height: 74px; }
.vz-brand { display: inline-flex; align-items: baseline; gap: .5ch; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; letter-spacing: -.01em; }
.vz-brand span { width: 8px; height: 8px; border-radius: 50%; background: var(--lotus-deep); display: inline-block; transform: translateY(-2px); }
.vz-brand small { font-family: var(--sans); font-size: .62rem; letter-spacing: .28em; text-transform: uppercase; color: var(--olive); font-weight: 600; margin-left: .3ch; }

.vz-menu { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.2rem); list-style: none; }
.vz-menu a { font-size: .95rem; font-weight: 500; color: var(--ink-soft); position: relative; padding: .3em 0; transition: color .25s var(--ease); }
.vz-menu a::after { content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--olive); border-radius:2px; transition: width .3s var(--ease); }
.vz-menu a:hover { color: var(--charcoal); }
.vz-menu a:hover::after { width: 100%; }
.vz-nav .vz-btn { padding: .7em 1.4em; }

.vz-burger { display: none; width: 46px; height: 46px; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 1.5px var(--stone); align-items:center; justify-content:center; }
.vz-burger span, .vz-burger span::before, .vz-burger span::after {
  content:""; display:block; width:20px; height:2px; background:var(--charcoal); border-radius:2px; transition: transform .3s var(--ease), opacity .2s;
}
.vz-burger span { position: relative; }
.vz-burger span::before { position:absolute; top:-6px; }
.vz-burger span::after  { position:absolute; top:6px; }
.vz-burger.is-open span { background: transparent; }
.vz-burger.is-open span::before { transform: translateY(6px) rotate(45deg); }
.vz-burger.is-open span::after  { transform: translateY(-6px) rotate(-45deg); }

/* =====================================================================
   HERO
   ===================================================================== */
.vz-hero { position: relative; overflow: hidden; }
.vz-hero__bg { position:absolute; inset:0; z-index:-2; }
.vz-hero__bg img { width:100%; height:100%; object-fit: cover; }
.vz-hero__veil { position:absolute; inset:0; z-index:-1; background:
  linear-gradient(105deg, rgba(250,249,245,.92) 0%, rgba(250,249,245,.6) 46%, rgba(250,249,245,.15) 100%); }
.vz-hero__grid {
  display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 3rem;
  padding-block: clamp(3.5rem, 9vw, 7rem);
}
.vz-hero__eyebrow { margin-bottom: 1.4rem; }
.vz-hero h1 { margin-bottom: 1.4rem; }
.vz-hero h1 em { font-style: normal; color: var(--olive-deep); position: relative; }
.vz-hero h1 em::after { content:""; position:absolute; left:0; right:0; bottom:.08em; height:.32em; background: var(--lotus); opacity:.45; z-index:-1; border-radius: 4px; }
.vz-hero__actions { display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }
.vz-hero__meta { display:flex; gap:2.2rem; margin-top:2.6rem; flex-wrap:wrap; }
.vz-hero__meta div strong { display:block; font-family:var(--serif); font-size:1.7rem; color:var(--charcoal); }
.vz-hero__meta div span { font-size:.82rem; color:var(--ink-soft); letter-spacing:.03em; }

.vz-hero__stage { position: relative; display:grid; place-items:center; min-height: 420px; }
.vz-hero__halo { position:absolute; width:min(120%, 520px); aspect-ratio:1; border-radius:50%;
  background: radial-gradient(circle at 40% 35%, var(--lotus) 0%, rgba(222,178,190,0) 62%),
              radial-gradient(circle at 70% 70%, var(--powder) 0%, rgba(206,214,214,0) 60%);
  filter: blur(6px); animation: vz-float 9s ease-in-out infinite; }
.vz-hero__ring { position:absolute; width:min(110%, 460px); aspect-ratio:1; border-radius:50%; border:1px dashed rgba(86,96,63,.3); animation: vz-spin 40s linear infinite; }
.vz-hero__product { position:relative; width:min(78%, 340px); filter: drop-shadow(0 30px 50px rgba(44,46,42,.22)); animation: vz-float 7s ease-in-out infinite; }
.vz-hero__tag { position:absolute; background:var(--white); box-shadow: var(--shadow-md); border-radius: var(--radius-pill); padding:.55em 1.1em; font-size:.82rem; font-weight:600; display:flex; align-items:center; gap:.5ch; }
.vz-hero__tag::before { content:""; width:8px; height:8px; border-radius:50%; }
.vz-hero__tag--a { top:12%; right:2%; } .vz-hero__tag--a::before { background: var(--olive); }
.vz-hero__tag--b { bottom:14%; left:0; }  .vz-hero__tag--b::before { background: var(--lotus-deep); }

@keyframes vz-float { 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-14px);} }
@keyframes vz-spin  { to { transform: rotate(360deg);} }

/* marquee strip below hero */
.vz-strip { background: var(--charcoal); color: var(--beige); overflow: hidden; }
.vz-strip__track { display:flex; gap:3rem; padding-block:.85rem; white-space:nowrap; width:max-content; animation: vz-marquee 26s linear infinite; }
.vz-strip__track span { font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; opacity:.85; display:inline-flex; gap:1rem; align-items:center; }
.vz-strip__track span::before { content:"✦"; color: var(--lotus); }
@keyframes vz-marquee { to { transform: translateX(-50%);} }

/* =====================================================================
   PHILOSOPHY (split editorial)
   ===================================================================== */
.vz-philos { padding-block: clamp(4rem, 9vw, 7rem); }
.vz-philos__grid { display:grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem,5vw,4.5rem); align-items:center; }
.vz-philos__figure { position:relative; }
.vz-philos__figure img { width:100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-l); box-shadow: var(--shadow-md); }
.vz-philos__note { position:absolute; bottom:-26px; right:-14px; background:var(--white); border-radius:var(--radius-m); box-shadow:var(--shadow-md); padding:1.1rem 1.3rem; max-width:230px; }
.vz-philos__note strong { font-family:var(--serif); font-size:1.05rem; }
.vz-philos__note p { font-size:.84rem; color:var(--ink-soft); margin-top:.25rem; }
.vz-philos h2 { margin:1.2rem 0 1.3rem; }
.vz-philos__lead { font-size: clamp(1.1rem,1.7vw,1.35rem); color:var(--ink-soft); }
.vz-values { display:grid; grid-template-columns: repeat(2, 1fr); gap:1.4rem; margin-top:2.2rem; }
.vz-value { padding-left:1.1rem; border-left:2px solid var(--lotus); }
.vz-value h3 { font-size:1.05rem; margin-bottom:.3rem; }
.vz-value p { font-size:.9rem; color:var(--ink-soft); }

/* =====================================================================
   PRODUCT OVERVIEW (feature band)
   ===================================================================== */
.vz-product { background: linear-gradient(180deg, var(--paper) 0%, var(--white) 100%); padding-block: clamp(4rem,9vw,7rem); }
.vz-product__head { text-align:center; max-width:640px; margin:0 auto clamp(2.5rem,5vw,3.5rem); }
.vz-product__head h2 { margin:1rem 0 1rem; }
.vz-product__head p { margin-inline:auto; }
.vz-product__layout { display:grid; grid-template-columns: 1fr auto 1fr; gap: clamp(1.5rem,4vw,3rem); align-items:center; }
.vz-feature-col { display:grid; gap:1.6rem; }
.vz-feat { display:flex; gap:1rem; align-items:flex-start; }
.vz-feat__ico { flex:0 0 46px; height:46px; border-radius:14px; display:grid; place-items:center; background:var(--white); box-shadow:var(--shadow-sm); }
.vz-feat__ico svg { width:22px; height:22px; }
.vz-feat h3 { font-size:1.05rem; margin-bottom:.25rem; }
.vz-feat p { font-size:.9rem; color:var(--ink-soft); }
.vz-feature-col--right .vz-feat { flex-direction: row-reverse; text-align:right; }
.vz-product__center { position:relative; display:grid; place-items:center; }
.vz-product__disc { position:absolute; width:340px; height:340px; border-radius:50%; background:
  radial-gradient(circle at 50% 40%, rgba(150,168,110,.35), rgba(150,168,110,0) 62%),
  radial-gradient(circle at 60% 75%, rgba(222,178,190,.4), rgba(222,178,190,0) 60%);
  filter: blur(4px); }
.vz-product__center img { position:relative; width:min(72vw,270px); filter: drop-shadow(0 26px 44px rgba(44,46,42,.2)); }

/* =====================================================================
   LIFESTYLE INSPIRATION (overlap collage)
   ===================================================================== */
.vz-life { padding-block: clamp(4rem,9vw,7rem); }
.vz-life__grid { display:grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem,5vw,4rem); align-items:center; }
.vz-life__stack { position:relative; min-height: 480px; }
.vz-life__stack figure { position:absolute; border-radius: var(--radius-l); overflow:hidden; box-shadow: var(--shadow-lg); }
.vz-life__stack img { width:100%; height:100%; object-fit: cover; }
.vz-life__stack .vz-life__a { width:66%; aspect-ratio: 3/4; top:0; left:0; z-index:2; }
.vz-life__stack .vz-life__b { width:56%; aspect-ratio: 4/5; bottom:0; right:0; z-index:3; border:6px solid var(--white); }
.vz-life__stack .vz-life__badge { position:absolute; z-index:4; top:8%; right:6%; background:var(--white); border-radius:var(--radius-pill); box-shadow:var(--shadow-md); padding:.7em 1.1em; font-size:.8rem; font-weight:600; }
.vz-life h2 { margin:1rem 0 1.2rem; }
.vz-life__list { list-style:none; display:grid; gap:1rem; margin-top:1.8rem; }
.vz-life__list li { display:flex; gap:.9rem; align-items:flex-start; font-size:.97rem; color:var(--ink-soft); }
.vz-life__list li::before { content:""; flex:0 0 22px; height:22px; border-radius:50%; background: var(--lotus); position:relative; margin-top:2px; }
.vz-life__list li span { position:absolute; }

/* checkmark using pseudo on marker */
.vz-life__list li { position:relative; }
.vz-life__mk { display:inline-grid; place-items:center; flex:0 0 24px; height:24px; border-radius:50%; background:linear-gradient(135deg,var(--olive-soft),var(--olive)); margin-top:1px; }
.vz-life__mk svg { width:12px; height:12px; }

/* =====================================================================
   EVERYDAY WELLNESS (ritual timeline)
   ===================================================================== */
.vz-daily { background: var(--charcoal); color: var(--beige); padding-block: clamp(4rem,9vw,7rem); position:relative; overflow:hidden; }
.vz-daily::before { content:""; position:absolute; top:-140px; right:-120px; width:420px; height:420px; border-radius:50%; background: radial-gradient(circle, rgba(196,138,156,.35), rgba(196,138,156,0) 68%); }
.vz-daily__head { max-width:620px; margin-bottom: clamp(2.5rem,5vw,3.5rem); position:relative; }
.vz-daily .vz-eyebrow { color: var(--lotus); }
.vz-daily .vz-eyebrow::before { background: var(--lotus); }
.vz-daily__head h2 { color: var(--white); margin:1rem 0 1rem; }
.vz-daily__head p { color: rgba(233,224,206,.8); }
.vz-ritual { display:grid; grid-template-columns: repeat(3, 1fr); gap:1.6rem; position:relative; }
.vz-moment { background: rgba(250,249,245,.05); border:1px solid rgba(233,224,206,.14); border-radius: var(--radius-m); padding:1.8rem 1.5rem; transition: transform .35s var(--ease), background .35s var(--ease); }
.vz-moment:hover { transform: translateY(-6px); background: rgba(250,249,245,.09); }
.vz-moment__time { font-family:var(--serif); font-size:2.2rem; color:var(--lotus); line-height:1; }
.vz-moment h3 { color:var(--white); font-size:1.15rem; margin:.9rem 0 .5rem; }
.vz-moment p { font-size:.9rem; color: rgba(233,224,206,.78); }

/* =====================================================================
   ORDER SECTION
   ===================================================================== */
.vz-order { padding-block: clamp(4rem,9vw,7rem); }
.vz-order__card { display:grid; grid-template-columns: .95fr 1.05fr; border-radius: var(--radius-l); overflow:hidden; box-shadow: var(--shadow-lg); background:var(--white); }
.vz-order__aside { background: linear-gradient(160deg, var(--olive) 0%, var(--olive-deep) 100%); color:var(--white); padding: clamp(2rem,4vw,3.4rem); position:relative; overflow:hidden; display:flex; flex-direction:column; }
.vz-order__aside::after { content:""; position:absolute; bottom:-100px; left:-80px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle, rgba(222,178,190,.4), rgba(222,178,190,0) 66%); }
.vz-order__aside .vz-eyebrow { color: var(--lotus); }
.vz-order__aside .vz-eyebrow::before { background: var(--lotus); }
.vz-order__aside h2 { color:var(--white); margin:1rem 0 1.2rem; }
.vz-order__aside p { color: rgba(250,249,245,.85); font-size:.98rem; }
.vz-order__price { margin-top:auto; display:flex; align-items:baseline; gap:.6ch; padding-top:2rem; position:relative; }
.vz-order__price strong { font-family:var(--serif); font-size:3.2rem; line-height:1; }
.vz-order__price span { color: rgba(250,249,245,.8); }
.vz-order__ship { margin-top:.6rem; font-size:.82rem; color:rgba(250,249,245,.75); position:relative; }
.vz-order__form { padding: clamp(2rem,4vw,3.4rem); display:flex; flex-direction:column; }
.vz-order__form h3 { font-size:1.5rem; margin-bottom:.4rem; }
.vz-order__form > p { color:var(--ink-soft); font-size:.92rem; margin-bottom:1.8rem; }
.vz-field { margin-bottom:1.3rem; }
.vz-field label { display:block; font-size:.82rem; font-weight:600; letter-spacing:.02em; margin-bottom:.5rem; color:var(--charcoal); }
.vz-field input {
  width:100%; padding:.95em 1.1em; border-radius:var(--radius-s);
  border:1.5px solid var(--stone); background:var(--paper);
  font: inherit; color:var(--charcoal); transition:border-color .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
}
.vz-field input:focus { outline:none; border-color:var(--olive); background:var(--white); box-shadow:0 0 0 4px rgba(122,132,96,.12); }
.vz-field input.is-invalid { border-color: var(--lotus-deep); background:#fdf5f7; }
.vz-field__err { display:none; color:var(--lotus-deep); font-size:.8rem; margin-top:.4rem; }
.vz-field.is-invalid .vz-field__err { display:block; }
.vz-order__summary { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.2rem; background:var(--paper); border-radius:var(--radius-s); margin-bottom:1.4rem; }
.vz-order__summary span { font-size:.9rem; color:var(--ink-soft); }
.vz-order__summary strong { font-family:var(--serif); font-size:1.3rem; }
.vz-order__form .vz-btn { width:100%; }
.vz-order__trust { margin-top:1rem; font-size:.78rem; color:var(--ink-soft); text-align:center; }

/* =====================================================================
   FAQ
   ===================================================================== */
.vz-faq { padding-block: clamp(4rem,9vw,7rem); background: linear-gradient(180deg, var(--white), var(--paper)); }
.vz-faq__grid { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,5vw,4rem); align-items:start; }
.vz-faq__intro { position:sticky; top:100px; }
.vz-faq__intro h2 { margin:1rem 0 1rem; }
.vz-faq__intro p { color:var(--ink-soft); }
.vz-faq__intro a { color:var(--olive-deep); font-weight:600; border-bottom:1.5px solid var(--lotus); }
.vz-acc { display:grid; gap:1rem; }
.vz-acc__item { border:1px solid var(--line); border-radius: var(--radius-m); background:var(--white); overflow:hidden; transition: box-shadow .3s var(--ease), border-color .3s var(--ease); }
.vz-acc__item.is-open { box-shadow: var(--shadow-md); border-color: transparent; }
.vz-acc__q { width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.3rem 1.5rem; text-align:left; font-family:var(--serif); font-size:1.08rem; }
.vz-acc__ico { flex:0 0 26px; height:26px; border-radius:50%; position:relative; box-shadow: inset 0 0 0 1.5px var(--stone); transition:background .3s; }
.vz-acc__ico::before, .vz-acc__ico::after { content:""; position:absolute; background:var(--charcoal); border-radius:2px; top:50%; left:50%; transform:translate(-50%,-50%); transition: transform .3s var(--ease), background .3s; }
.vz-acc__ico::before { width:11px; height:2px; }
.vz-acc__ico::after  { width:2px; height:11px; }
.vz-acc__item.is-open .vz-acc__ico { background:var(--olive); box-shadow:none; }
.vz-acc__item.is-open .vz-acc__ico::before,
.vz-acc__item.is-open .vz-acc__ico::after { background:var(--white); }
.vz-acc__item.is-open .vz-acc__ico::after { transform: translate(-50%,-50%) scaleY(0); }
.vz-acc__a { max-height:0; overflow:hidden; transition: max-height .4s var(--ease); }
.vz-acc__a p { padding:0 1.5rem 1.4rem; color:var(--ink-soft); font-size:.95rem; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.vz-footer { background: var(--charcoal); color: var(--beige); padding-block: clamp(3rem,6vw,4.5rem) 2rem; }
.vz-footer__top { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(233,224,206,.16); }
.vz-footer__brand .vz-brand { color:var(--white); font-size:1.4rem; }
.vz-footer__brand p { margin-top:1rem; font-size:.9rem; color:rgba(233,224,206,.75); max-width:32ch; }
.vz-footer h4 { font-family:var(--sans); font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; color:var(--lotus); margin-bottom:1.1rem; }
.vz-footer ul { list-style:none; display:grid; gap:.7rem; }
.vz-footer ul a { font-size:.92rem; color:rgba(233,224,206,.82); transition:color .25s; }
.vz-footer ul a:hover { color:var(--white); }
.vz-footer address { font-style:normal; font-size:.92rem; color:rgba(233,224,206,.82); line-height:1.9; }
.vz-footer address a:hover { color:var(--white); }
.vz-footer__bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-top:1.8rem; flex-wrap:wrap; }
.vz-footer__bottom p { font-size:.82rem; color:rgba(233,224,206,.65); }
.vz-footer__legal { display:flex; gap:1.4rem; flex-wrap:wrap; }
.vz-footer__legal a { font-size:.82rem; color:rgba(233,224,206,.7); }
.vz-footer__legal a:hover { color:var(--white); }

/* =====================================================================
   COOKIE BANNER
   ===================================================================== */
.vz-cookie { position:fixed; z-index:80; left:50%; bottom:24px; transform:translateX(-50%) translateY(20px); width:min(100% - 2rem, 560px); background:var(--white); border-radius:var(--radius-l); box-shadow:var(--shadow-lg); padding:1.6rem; opacity:0; pointer-events:none; transition: opacity .4s var(--ease), transform .4s var(--ease); }
.vz-cookie.is-visible { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.vz-cookie h3 { font-size:1.15rem; margin-bottom:.5rem; }
.vz-cookie p { font-size:.88rem; color:var(--ink-soft); margin-bottom:1.1rem; }
.vz-cookie p a { color:var(--olive-deep); border-bottom:1.5px solid var(--lotus); }
.vz-cookie__actions { display:flex; gap:.7rem; flex-wrap:wrap; }
.vz-cookie__actions .vz-btn { flex:1; min-width:120px; padding:.75em 1em; font-size:.9rem; }
.vz-cookie__prefs { display:none; margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.vz-cookie__prefs.is-open { display:block; }
.vz-pref { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.7rem 0; }
.vz-pref h4 { font-family:var(--serif); font-size:.98rem; font-weight:600; text-transform:none; letter-spacing:0; color:var(--charcoal); margin:0; }
.vz-pref p { font-size:.8rem; margin:0; }
.vz-switch { position:relative; flex:0 0 46px; width:46px; height:26px; border-radius:var(--radius-pill); background:var(--stone); transition:background .3s; cursor:pointer; }
.vz-switch::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:var(--white); box-shadow:var(--shadow-sm); transition:transform .3s var(--ease); }
.vz-switch.is-on { background:var(--olive); }
.vz-switch.is-on::after { transform: translateX(20px); }
.vz-switch.is-locked { background:var(--olive-soft); cursor:not-allowed; opacity:.7; }

/* =====================================================================
   TOAST
   ===================================================================== */
.vz-toast { position:fixed; z-index:90; top:22px; left:50%; transform:translateX(-50%) translateY(-20px); background:var(--charcoal); color:var(--white); padding:.9em 1.4em; border-radius:var(--radius-pill); font-size:.9rem; box-shadow:var(--shadow-lg); opacity:0; pointer-events:none; transition:opacity .3s var(--ease), transform .3s var(--ease); display:flex; align-items:center; gap:.6ch; }
.vz-toast.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
.vz-toast::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--lotus); }

/* =====================================================================
   SECONDARY PAGES (legal / habits / success)
   ===================================================================== */
.vz-subhero { background: linear-gradient(160deg, var(--paper), var(--white)); padding-block: clamp(3rem,7vw,5rem); border-bottom:1px solid var(--line); }
.vz-subhero .vz-eyebrow { margin-bottom:1rem; }
.vz-subhero h1 { font-size: clamp(2.1rem,4.5vw,3.4rem); margin-bottom:1rem; }
.vz-subhero p { color:var(--ink-soft); max-width:60ch; font-size:1.05rem; }
.vz-subhero__date { margin-top:1.2rem; font-size:.82rem; color:var(--ink-soft); letter-spacing:.02em; }

.vz-doc { padding-block: clamp(3rem,7vw,5rem); }
.vz-doc__layout { display:grid; grid-template-columns: 240px 1fr; gap: clamp(2rem,5vw,4rem); align-items:start; }
.vz-doc__toc { position:sticky; top:100px; border-left:2px solid var(--line); padding-left:1.2rem; display:grid; gap:.7rem; }
.vz-doc__toc a { font-size:.88rem; color:var(--ink-soft); transition:color .2s; }
.vz-doc__toc a:hover { color:var(--olive-deep); }
.vz-doc__body { max-width: var(--measure); }
.vz-doc__body h2 { font-size:1.5rem; margin:2.4rem 0 .9rem; scroll-margin-top:100px; }
.vz-doc__body h2:first-child { margin-top:0; }
.vz-doc__body h3 { font-size:1.12rem; margin:1.6rem 0 .6rem; }
.vz-doc__body p, .vz-doc__body li { color:var(--ink-soft); font-size:.98rem; margin-bottom:.9rem; }
.vz-doc__body ul, .vz-doc__body ol { padding-left:1.3rem; margin-bottom:1rem; }
.vz-doc__body li { margin-bottom:.5rem; }
.vz-doc__body strong { color:var(--charcoal); }
.vz-callout { background:var(--paper); border-radius:var(--radius-m); padding:1.4rem 1.6rem; border-left:3px solid var(--lotus); margin:1.6rem 0; }
.vz-callout p { margin:0; font-size:.94rem; }

/* Habits page */
.vz-habits { padding-block: clamp(3.5rem,8vw,6rem); }
.vz-habits__feature { display:grid; grid-template-columns: 1fr 1fr; border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-md); margin-bottom: clamp(2.5rem,6vw,4rem); background:var(--white); }
.vz-habits__feature figure { min-height: 320px; }
.vz-habits__feature img { width:100%; height:100%; object-fit:cover; }
.vz-habits__feature__body { padding: clamp(1.8rem,4vw,3rem); display:flex; flex-direction:column; justify-content:center; }
.vz-habits__feature__body h2 { font-size: clamp(1.6rem,3vw,2.2rem); margin:.8rem 0 1rem; }
.vz-habits__feature__body p { color:var(--ink-soft); }
.vz-habits__grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap:1.6rem; }
.vz-habit { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.8rem; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.vz-habit:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.vz-habit__no { font-family:var(--serif); font-size:1.1rem; color:var(--lotus-deep); }
.vz-habit h3 { font-size:1.2rem; margin:.6rem 0 .6rem; }
.vz-habit p { font-size:.93rem; color:var(--ink-soft); }

/* Success page */
.vz-success { min-height: 78vh; display:grid; place-items:center; padding-block: clamp(3rem,8vw,6rem); text-align:center; }
.vz-success__card { max-width:600px; background:var(--white); border-radius:var(--radius-l); box-shadow:var(--shadow-lg); padding: clamp(2.2rem,5vw,3.6rem); }
.vz-success__check { width:82px; height:82px; margin:0 auto 1.6rem; border-radius:50%; background:linear-gradient(135deg,var(--olive-soft),var(--olive)); display:grid; place-items:center; box-shadow:0 12px 30px rgba(86,96,63,.3); animation: vz-pop .5s var(--ease); }
.vz-success__check svg { width:38px; height:38px; }
@keyframes vz-pop { 0%{ transform:scale(.6); opacity:0;} 60%{ transform:scale(1.08);} 100%{ transform:scale(1); opacity:1;} }
.vz-success h1 { font-size: clamp(1.9rem,4vw,2.8rem); margin-bottom:.8rem; }
.vz-success > .vz-success__card p { color:var(--ink-soft); margin-bottom:1.6rem; }
.vz-success__order { background:var(--paper); border-radius:var(--radius-m); padding:1.4rem; margin-bottom:1.8rem; display:grid; gap:.7rem; text-align:left; }
.vz-success__row { display:flex; justify-content:space-between; align-items:center; font-size:.95rem; }
.vz-success__row span { color:var(--ink-soft); }
.vz-success__row strong { font-family:var(--serif); }
.vz-success__row--total { border-top:1px dashed var(--stone); padding-top:.7rem; }
.vz-success__row--total strong { font-size:1.3rem; color:var(--olive-deep); }
.vz-success__actions { display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }

/* reveal-on-scroll */
.vz-reveal { opacity:0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.vz-reveal.is-in { opacity:1; transform:none; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1080px) {
  .vz-hero__grid { grid-template-columns: 1fr; }
  .vz-hero__stage { order:-1; min-height: 340px; }
  .vz-hero__veil { background: linear-gradient(180deg, rgba(250,249,245,.85), rgba(250,249,245,.55)); }
  .vz-philos__grid { grid-template-columns: 1fr; }
  .vz-philos__figure { max-width: 460px; }
  .vz-life__grid { grid-template-columns: 1fr; }
  .vz-life__stack { max-width: 460px; margin-inline:auto; }
  .vz-faq__grid { grid-template-columns: 1fr; }
  .vz-faq__intro { position:static; }
  .vz-order__card { grid-template-columns: 1fr; }
  .vz-doc__layout { grid-template-columns: 1fr; }
  .vz-doc__toc { position:static; display:none; }
  .vz-footer__top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .vz-menu, .vz-nav > .vz-btn { display:none; }
  .vz-burger { display:flex; }
  .vz-menu.is-open { display:flex; position:fixed; inset:74px 0 auto; flex-direction:column; align-items:flex-start; gap:0; background:var(--white); padding:1rem var(--gutter) 1.5rem; box-shadow:var(--shadow-md); border-top:1px solid var(--line); }
  .vz-menu.is-open li { width:100%; }
  .vz-menu.is-open a { display:block; padding:.9rem 0; font-size:1.05rem; border-bottom:1px solid var(--line); }
  .vz-menu.is-open a::after { display:none; }
  .vz-product__layout { grid-template-columns: 1fr; }
  .vz-feature-col--right .vz-feat { flex-direction: row; text-align:left; }
  .vz-product__center { order:-1; margin-bottom:1rem; }
  .vz-product__disc { width:260px; height:260px; }
  .vz-ritual { grid-template-columns: 1fr; }
  .vz-habits__feature { grid-template-columns: 1fr; }
  .vz-habits__feature figure { min-height: 240px; }
}
@media (max-width: 560px) {
  .vz-hero__meta { gap:1.4rem; }
  .vz-values { grid-template-columns: 1fr; }
  .vz-footer__top { grid-template-columns: 1fr; }
  .vz-footer__bottom { flex-direction:column; align-items:flex-start; }
  .vz-cookie { bottom:12px; padding:1.3rem; }
  .vz-cookie__actions .vz-btn { flex-basis:100%; }
}
