/** Shopify CDN: Minification failed

Line 337:0 Unexpected "}"

**/
/* ============================================================================
   vh-core.css — VoroHal SleepAid landing system
   ----------------------------------------------------------------------------
   Every landing module (vh-hero, vh-problem, vh-edu, …) is built from the
   primitives at the top of this file. Tokens themselves live in snippets/
   vh-skin.liquid so they can reference Liquid settings later without a CSS
   rebuild; this file only consumes them.
   Breakpoint is 749px to match Shrine's own mobile cutover.
   ========================================================================= */

.vh{
  font-family:var(--vh-sans);
  color:var(--vh-ink-2);
  width:100%;
  box-sizing:border-box;
}
.vh *,.vh *::before,.vh *::after{box-sizing:border-box;}
.vh img{display:block;max-width:100%;}

/* ---- Layout ------------------------------------------------------------ */
.vh-wrap{max-width:1160px;margin:0 auto;padding:0 24px;}
.vh-sec{padding:88px 0;}
.vh-sec--tight{padding:64px 0;}
.vh-sec--wash{background:var(--vh-bg-wash);}
.vh-sec--white{background:var(--vh-surface);}
.vh-sec--ice{background:var(--vh-bg);}
@media(max-width:749px){
  .vh-sec{padding:56px 0;}
  .vh-sec--tight{padding:40px 0;}
  .vh-wrap{padding:0 18px;}
}

/* ---- Type -------------------------------------------------------------- */
.vh-eyebrow{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--vh-accent-deep);
  margin:0 0 14px;
}
.vh-h1,.vh-h2,.vh-h3{
  font-family:var(--vh-serif);
  color:var(--vh-ink);
  font-weight:500;
  letter-spacing:-.02em;
  line-height:1.08;
  margin:0;
}
.vh-h1{font-size:clamp(36px,5.4vw,68px);}
.vh-h2{font-size:clamp(28px,3.6vw,40px);line-height:1.14;}
.vh-h3{font-size:clamp(19px,2vw,23px);line-height:1.25;}
.vh-body{font-size:17px;line-height:1.65;color:var(--vh-ink-2);margin:16px 0 0;}
.vh-body--lg{font-size:18px;}
.vh-muted{color:var(--vh-muted);font-size:13.5px;line-height:1.6;}
.vh-center{text-align:center;}
.vh-measure{max-width:620px;}
.vh-center .vh-measure{margin-left:auto;margin-right:auto;}

/* ---- Buttons ----------------------------------------------------------- */
.vh-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:var(--vh-accent-deep);
  color:#fff;
  text-decoration:none;
  font-family:var(--vh-sans);
  font-size:15px;
  font-weight:600;
  line-height:1;
  padding:17px 34px;
  border:1px solid var(--vh-accent-deep);
  border-radius:999px;
  cursor:pointer;
  transition:background var(--vh-t),border-color var(--vh-t),color var(--vh-t);
}
.vh-btn:hover{background:var(--vh-btn-hover);border-color:var(--vh-btn-hover);color:#fff;}
.vh-btn--ghost{background:transparent;color:var(--vh-accent-deep);}
.vh-btn--ghost:hover{background:var(--vh-accent-soft);border-color:var(--vh-accent-deep);color:var(--vh-accent-deep);}
.vh-btn--block{display:flex;width:100%;}
.vh-link{
  color:var(--vh-accent-deep);
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  border-bottom:1px solid rgba(var(--vh-accent-deep-rgb),.35);
  padding-bottom:2px;
  transition:border-color var(--vh-t);
}
.vh-link:hover{border-color:var(--vh-accent-deep);}

/* ---- Cards ------------------------------------------------------------- */
.vh-card{
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  padding:26px;
}
.vh-card--lg{border-radius:var(--vh-radius-lg);padding:32px;}
.vh-grid{display:grid;gap:20px;}
.vh-grid--2{grid-template-columns:repeat(2,1fr);}
.vh-grid--3{grid-template-columns:repeat(3,1fr);}
.vh-grid--4{grid-template-columns:repeat(4,1fr);}
@media(max-width:989px){
  .vh-grid--4{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:749px){
  .vh-grid--2,.vh-grid--3,.vh-grid--4{grid-template-columns:1fr;}
}

/* Two-column story block: text one side, image the other. */
.vh-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.vh-split--imgfirst .vh-split__media{order:-1;}
@media(max-width:749px){
  .vh-split{grid-template-columns:1fr;gap:28px;}
  .vh-split--imgfirst .vh-split__media,
  .vh-split .vh-split__media{order:-1;}
}

/* ---- IMAGE_SLOT placeholder (brief §12) -------------------------------- */
/* Deliberately loud enough to read as "asset pending", quiet enough to
   screenshot. It never ships a competitor photo, which is the point. */
.vh-slot{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:
    linear-gradient(135deg,rgba(var(--vh-accent-rgb),.16),rgba(255,255,255,.65)),
    var(--vh-bg-wash);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius-lg);
  overflow:hidden;
  padding:18px;
  min-height:140px;
}
.vh-slot::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px dashed rgba(var(--vh-accent-deep-rgb),.28);
  border-radius:calc(var(--vh-radius-lg) - 6px);
  pointer-events:none;
}
.vh-slot__name{
  position:relative;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--vh-accent-deep);
  margin:0;
  word-break:break-word;
}
.vh-slot__desc{
  position:relative;
  font-size:12.5px;
  line-height:1.5;
  color:var(--vh-muted);
  margin:5px 0 0;
}
.vh-slot--fill{height:100%;}
.vh-slot img{width:100%;height:100%;object-fit:cover;}
.vh-slot--photo{padding:0;}
.vh-slot--photo::before{display:none;}

/* ---- Chips / stars ----------------------------------------------------- */
.vh-stars{color:var(--vh-star);letter-spacing:2px;font-size:15px;}
.vh-chips{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px;}
.vh-chip{
  display:flex;
  align-items:center;
  gap:11px;
  background:var(--vh-accent-soft);
  border-radius:12px;
  padding:11px 15px;
  font-size:14.5px;
  font-weight:600;
  color:var(--vh-ink);
}
.vh-chip__ic{font-size:16px;line-height:1;flex:0 0 auto;}

/* ---- Accordion (details/summary — works without JS) -------------------- */
.vh-acc{display:grid;gap:12px;}
.vh-ac{
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  overflow:hidden;
}
.vh-ac>summary{
  display:flex;
  align-items:center;
  gap:13px;
  padding:20px 22px;
  cursor:pointer;
  list-style:none;
  font-family:var(--vh-sans);
  font-size:16px;
  font-weight:600;
  color:var(--vh-ink);
}
.vh-ac>summary::-webkit-details-marker{display:none;}
.vh-ac__tick{
  flex:0 0 auto;
  width:22px;height:22px;
  border-radius:50%;
  background:var(--vh-accent-soft);
  color:var(--vh-accent-deep);
  display:grid;place-items:center;
  font-size:12px;font-weight:800;
}
.vh-ac__caret{
  margin-left:auto;
  color:var(--vh-accent-deep);
  transition:transform var(--vh-t);
  flex:0 0 auto;
}
.vh-ac[open] .vh-ac__caret{transform:rotate(180deg);}
.vh-ac__body{padding:0 22px 22px 56px;}
.vh-ac__body p{margin:0 0 10px;font-size:15.5px;line-height:1.65;color:var(--vh-ink-2);}
.vh-ac__body ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;}
.vh-ac__body li{
  position:relative;
  padding-left:18px;
  font-size:15.5px;
  line-height:1.55;
  color:var(--vh-ink-2);
}
.vh-ac__body li::before{
  content:"";
  position:absolute;left:0;top:9px;
  width:6px;height:6px;border-radius:50%;
  background:var(--vh-accent);
}
@media(max-width:749px){
  .vh-ac>summary{padding:17px 16px;font-size:15px;}
  .vh-ac__body{padding:0 16px 18px 16px;}
}

/* ---- H2 guarantee strip ------------------------------------------------ */
.vh-guar{text-align:center;}
.vh-guar .vh-h2{margin-bottom:14px;}

/* ---- H6/H14 risk-free band --------------------------------------------- */
.vh-band{
  background:var(--vh-bg-wash);
  border-top:1px solid var(--vh-line);
  border-bottom:1px solid var(--vh-line);
  text-align:center;
}
.vh-band .vh-btn{margin-top:26px;}

/* ---- H7 "why it matters" cards ----------------------------------------- */
.vh-icard{
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  padding:24px 22px;
  text-align:center;
}
.vh-icard__ic{
  width:44px;height:44px;
  margin:0 auto 14px;
  border-radius:12px;
  background:var(--vh-accent-soft);
  color:var(--vh-accent-deep);
  display:grid;place-items:center;
}
.vh-icard h3{font-family:var(--vh-sans);font-size:15px;font-weight:700;color:var(--vh-ink);margin:0;}

/* Photo-led cards for the "reasons people look for help" row.
   The card IS the photograph: the four sources are 900x1125 (4:5), so a 4/5
   frame shows each one WHOLE — no crop, no heads cut off, which is what the
   old 16/10 frame was doing. Title and a single sentence sit over a bottom
   scrim instead of in a text block underneath, so nothing competes with the
   picture for height. No icon: it was doing the same job as the photo. */
.vh-icard--photo{
  position:relative;
  display:block;
  margin:0;
  padding:0;
  aspect-ratio:4/5;
  overflow:hidden;
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  background:var(--vh-bg-wash);
  text-align:left;
}
.vh-icard__img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
}
/* The scrim is part of the caption, not a separate node: it has to sit above
   the image and below the type, and one element doing both keeps the stacking
   trivial. Transparent at the top so the photograph is untouched where it
   matters. */
.vh-icard__cap{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:56px 18px 18px;
  background:linear-gradient(180deg,
    rgba(12,32,22,0) 0%,
    rgba(12,32,22,.55) 42%,
    rgba(12,32,22,.88) 100%);
  color:#fff;
}
.vh-icard--photo h3{
  font-family:var(--vh-sans);
  font-size:16px;font-weight:700;line-height:1.25;
  color:#fff;margin:0;padding:0;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.vh-icard__desc{
  margin:5px 0 0;padding:0;
  font-size:13px;line-height:1.45;
  color:rgba(255,255,255,.92);
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
@media(max-width:749px){
  /* One per row on a phone would make four very tall photos; keep the grid at
     two so the row stays scannable. */
  .vh-icards{grid-template-columns:1fr 1fr;gap:12px;}
  .vh-icard__cap{padding:44px 12px 12px;}
  .vh-icard--photo h3{font-size:14px;}
  .vh-icard__desc{font-size:12px;}
}
}

/* ---- H8 mechanism cards ------------------------------------------------ */
.vh-mech{
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius-lg);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.vh-mech__media{aspect-ratio:4/5;}  /* 4/5, not 4/3: the three supplied
   mechanism photos are portrait (0.75-0.80) and a landscape frame would
   centre-crop the airway overlay that is the whole point of card 01. The
   JPEGs are cut to exactly 4:5, so cover() trims nothing. Only
   vh-mechanism uses .vh-mech. */
.vh-mech__body{padding:24px;}
.vh-mech__no{
  font-family:var(--vh-serif);
  font-size:15px;
  font-weight:600;
  color:var(--vh-accent);
  letter-spacing:.06em;
  display:block;
  margin-bottom:8px;
}
.vh-mech__body h3{font-family:var(--vh-serif);font-size:21px;font-weight:500;color:var(--vh-ink);margin:0 0 10px;letter-spacing:-.01em;}
.vh-mech__body p{font-size:15px;line-height:1.6;color:var(--vh-ink-2);margin:0;}

/* ---- H10 apply stepper ------------------------------------------------- */
.vh-step{position:relative;}
.vh-step__media{aspect-ratio:1/1;margin-bottom:16px;}
.vh-step__no{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--vh-accent-deep);color:#fff;
  font-size:13px;font-weight:700;
  margin-right:10px;
}
.vh-step h3{display:flex;align-items:center;font-family:var(--vh-sans);font-size:16px;font-weight:700;color:var(--vh-ink);margin:0 0 8px;}
.vh-step p{font-size:15px;line-height:1.6;color:var(--vh-ink-2);margin:0;}

/* ---- H11 comparison table ---------------------------------------------- */
.vh-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.vh-table{
  width:100%;
  min-width:560px;
  border-collapse:separate;
  border-spacing:0;
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  overflow:hidden;
  font-size:15px;
}
.vh-table th,.vh-table td{
  padding:17px 20px;
  text-align:left;
  border-bottom:1px solid var(--vh-line);
  vertical-align:middle;
}
.vh-table tr:last-child th,.vh-table tr:last-child td{border-bottom:0;}
.vh-table thead th{
  background:var(--vh-bg-wash);
  font-family:var(--vh-sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--vh-ink);
}
.vh-table thead th:first-child{background:var(--vh-surface);}
.vh-table tbody th{
  font-weight:600;
  color:var(--vh-ink);
  width:34%;
}
/* The tick is positioned rather than inline so a wrapping answer stays flush
   with the first line instead of the second line sliding under the check. */
.vh-table td.is-vh{
  position:relative;
  padding-left:46px;
  color:var(--vh-ink);font-weight:600;
  background:rgba(var(--vh-accent-soft-rgb),.35);
}
.vh-table td.is-other{color:var(--vh-muted);}
.vh-table .vh-tick{
  position:absolute;left:20px;top:17px;
  color:var(--vh-accent-deep);font-weight:800;
}
@media(max-width:749px){
  .vh-table th,.vh-table td{padding:13px 14px;font-size:14px;}
  .vh-table td.is-vh{padding-left:36px;}
  .vh-table .vh-tick{left:14px;top:13px;}
  .vh-table tbody th{width:32%;}
}

/* ---- H12 refill cards --------------------------------------------------- */
.vh-refill{
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.vh-refill--best{border:2px solid var(--vh-accent);background:var(--vh-accent-soft);}
.vh-refill__media{aspect-ratio:4/3;}
.vh-refill h3{font-family:var(--vh-sans);font-size:16px;font-weight:700;color:var(--vh-ink);margin:0;}
.vh-refill__price{font-family:var(--vh-serif);font-size:26px;color:var(--vh-ink);letter-spacing:-.02em;}
.vh-refill__per{font-size:13px;color:var(--vh-muted);margin:0;}
.vh-refill .vh-btn{margin-top:auto;padding:14px 20px;font-size:14px;}

/* ---- Footer trust trio (brief §8.3) ------------------------------------ */
.vh-trust{
  background:var(--vh-surface);
  border-top:1px solid var(--vh-line);
  padding:44px 0;
}
.vh-trust__card{
  display:flex;
  align-items:flex-start;
  gap:14px;
  background:var(--vh-bg);
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius);
  padding:20px 22px;
}
.vh-trust__ic{
  flex:0 0 auto;
  width:38px;height:38px;
  border-radius:11px;
  background:var(--vh-accent-soft);
  color:var(--vh-accent-deep);
  display:grid;place-items:center;
}
.vh-trust__card h3{font-family:var(--vh-sans);font-size:15px;font-weight:700;color:var(--vh-ink);margin:0 0 3px;}
.vh-trust__card p{font-size:13.5px;line-height:1.5;color:var(--vh-muted);margin:0;word-break:break-word;}

/* ---- Medical disclaimer ------------------------------------------------ */
.vh-disc{
  background:var(--vh-danger-soft);
  border-top:1px solid var(--vh-line);
  padding:26px 0;
}
.vh-disc p{
  max-width:900px;margin:0 auto;
  font-size:12.5px;line-height:1.65;color:var(--vh-muted);text-align:center;
}

/* ---- Contact page ------------------------------------------------------ */
.vh-contact{max-width:620px;margin:0 auto;}
.vh-field{display:grid;gap:7px;margin-bottom:16px;}
.vh-field label{font-size:13px;font-weight:600;color:var(--vh-ink);}
.vh-field input,.vh-field textarea{
  font-family:var(--vh-sans);
  font-size:15px;
  color:var(--vh-ink);
  background:var(--vh-surface);
  border:1px solid var(--vh-line);
  border-radius:12px;
  padding:13px 15px;
  width:100%;
}
.vh-field input:focus,.vh-field textarea:focus{outline:2px solid var(--vh-accent);outline-offset:1px;}
.vh-field textarea{min-height:150px;resize:vertical;}
.vh-formnote{font-size:13px;color:var(--vh-muted);margin:14px 0 0;}
.vh-formok{
  background:var(--vh-accent-soft);
  border:1px solid var(--vh-accent);
  border-radius:12px;
  padding:14px 16px;
  font-size:14px;
  color:var(--vh-ink);
  margin-bottom:18px;
}


/* ---- Full-bleed hero (sections/vh-hero.liquid) -------------------------
   Mechanics mirror the reference store: an absolutely-positioned media layer
   under a horizontal scrim that is dense on the text side and clears by ~76%,
   so the photograph stays visible instead of being flattened by a full-frame
   wash. The section itself is never width-constrained — only the inner column
   is — which is what makes the image span the viewport.
   ---------------------------------------------------------------------- */
.vh-hero{
  position:relative;
  width:100%;
  min-height:var(--vh-hero-h,600px);
  overflow:hidden;
  isolation:isolate;
  background:var(--vh-bg-wash);
}
.vh-hero__media,
.vh-hero__media picture{position:absolute;inset:0;display:block;width:100%;height:100%;}
.vh-hero__image{
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:center;
}
.vh-hero__image--mobile{display:none;}
.vh-hero__scrim{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(12,32,22,var(--vh-hero-overlay,.65)),
    rgba(12,32,22,calc(var(--vh-hero-overlay,.65) * .62)) 44%,
    rgba(12,32,22,0) 76%);
}
/* No photography yet: a full-width brand wash, so the band still reads as a
   deliberate hero rather than an empty strip. */
.vh-hero__placeholder{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 100% at 78% 30%, rgba(var(--vh-accent-rgb),.30), transparent 62%),
    linear-gradient(160deg, var(--vh-bg-wash), var(--vh-bg) 70%);
}
.vh-hero__slot{
  position:absolute;right:24px;bottom:20px;left:auto;
  max-width:330px;margin:0;
  text-align:right;
  font-size:12px;font-weight:700;letter-spacing:.04em;
  color:var(--vh-accent-deep);
}
.vh-hero__slot span{
  display:block;margin-top:5px;
  font-size:11.5px;font-weight:400;line-height:1.5;color:var(--vh-muted);
}

.vh-hero__inner{
  position:relative;z-index:2;
  display:flex;align-items:center;
  width:min(100% - 48px,1160px);
  min-height:var(--vh-hero-h,600px);
  margin-inline:auto;
}
.vh-hero__inner--left{justify-content:flex-start;}
.vh-hero__inner--center{justify-content:center;}
.vh-hero__inner--right{justify-content:flex-end;}
.vh-hero__content{width:min(100%,560px);padding-block:64px;}
.vh-hero__content--left{text-align:left;}
.vh-hero__content--center{text-align:center;}
.vh-hero__content--right{text-align:right;}

.vh-hero__eyebrow{
  margin:0 0 14px;
  font-size:12px;font-weight:700;line-height:1.2;
  letter-spacing:.14em;text-transform:uppercase;
}
.vh-hero__heading{
  max-width:14ch;margin:0;
  font-family:var(--vh-serif);font-weight:500;
  font-size:clamp(38px,4.6vw,64px);
  line-height:1.02;letter-spacing:-.025em;
}
.vh-hero__content--center .vh-hero__heading{margin-inline:auto;}
.vh-hero__content--right .vh-hero__heading{margin-left:auto;}
.vh-hero__text{max-width:46ch;margin-top:18px;font-size:17px;line-height:1.6;}
.vh-hero__text p{margin:0;}
.vh-hero__content--center .vh-hero__text{margin-inline:auto;}
.vh-hero__content--right .vh-hero__text{margin-left:auto;}
.vh-hero__meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:22px 0 0;font-size:14px;
}
.vh-hero__content--center .vh-hero__meta{justify-content:center;}
.vh-hero__content--right .vh-hero__meta{justify-content:flex-end;}
.vh-hero__button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;margin-top:28px;padding:15px 34px;
  border-radius:999px;
  background:var(--vh-accent-deep);color:#fff;
  font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;
  transition:background var(--vh-t),transform var(--vh-t);
}
.vh-hero__button:hover{background:var(--vh-btn-hover);color:#fff;transform:translateY(-1px);}

/* Two type schemes: white over a photographed scrim, ink over the wash. */
.vh-hero--light .vh-hero__heading{color:#fff;}
.vh-hero--light .vh-hero__eyebrow{color:rgba(255,255,255,.86);}
.vh-hero--light .vh-hero__text,
.vh-hero--light .vh-hero__meta{color:rgba(255,255,255,.9);}
.vh-hero--light .vh-hero__button{background:#fff;color:var(--vh-ink);}
.vh-hero--light .vh-hero__button:hover{background:var(--vh-accent-soft);color:var(--vh-ink);}
.vh-hero--dark .vh-hero__heading{color:var(--vh-ink);}
.vh-hero--dark .vh-hero__eyebrow{color:var(--vh-accent-deep);}
.vh-hero--dark .vh-hero__text{color:var(--vh-ink-2);}
.vh-hero--dark .vh-hero__meta{color:var(--vh-muted);}

@media(max-width:749px){
  .vh-hero,.vh-hero__inner{min-height:var(--vh-hero-h-mob,620px);}
  .vh-hero__inner{width:min(100% - 36px,1160px);}
  .vh-hero__content{padding-block:48px;width:100%;}
  .vh-hero__heading{max-width:none;}
  /* On a phone the scrim covers the frame, otherwise type sits on open photo. */
  .vh-hero__scrim{
    background:linear-gradient(180deg,
      rgba(12,32,22,calc(var(--vh-hero-overlay,.65) * .55)),
      rgba(12,32,22,var(--vh-hero-overlay,.65)) 62%);
  }
  .vh-hero__image--desktop{display:none;}
  .vh-hero__image--mobile{display:block;}
  /* Keep the shot note pinned low — static flow inside the absolute media
     layer floats it above the headline, which reads like a caption for the
     wrong thing. It disappears entirely once a photo is uploaded. */
  .vh-hero__slot{right:auto;left:18px;bottom:16px;max-width:none;text-align:left;}
}

/* ---- Pillars ------------------------------------------------------------
   Three-pillar trust row under the buy box (snippets/vh-pillars.liquid).
   The icon box is a fixed square so the three glyphs sit on one optical
   baseline even though their drawn heights differ; centring the SVG inside it
   rather than sizing each SVG to its own content is what stops the truck from
   riding higher than the map. Collapses to one column on mobile — a 3-up of
   110px icons on a 390px screen shrinks them past legibility.
   --------------------------------------------------------------------- */
.vh-pillars{background:var(--vh-surface);padding:64px 0;}
.vh-pillars__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px;
  align-items:start;
}
.vh-pillar{text-align:center;}
.vh-pillar__ic{
  display:flex;align-items:center;justify-content:center;
  width:104px;height:104px;margin:0 auto 18px;
  color:var(--vh-ink);
}
.vh-pillar__ic svg{width:100%;height:100%;display:block;}
.vh-pillar__title{
  font-family:var(--vh-sans);font-weight:800;
  font-size:clamp(22px,2.2vw,30px);line-height:1.15;
  color:var(--vh-ink);margin:0 0 10px;letter-spacing:-.01em;
}
.vh-pillar__sub{
  font-family:var(--vh-sans);font-size:clamp(15px,1.3vw,18px);line-height:1.5;
  color:var(--vh-ink-2);margin:0;
}
/* Scope line for the order-count claim — deliberately quieter than the
   headline figure but never hidden. See the header of vh-pillars.liquid. */
.vh-pillar__scope{
  font-family:var(--vh-sans);font-size:13px;line-height:1.5;
  color:var(--vh-muted);margin:4px 0 0;
}
@media(max-width:749px){
  .vh-pillars{padding:40px 0;}
  .vh-pillars__grid{grid-template-columns:1fr;gap:34px;}
  .vh-pillar__ic{width:88px;height:88px;margin-bottom:14px;}
}

/* ---- How-it-works reserved slot (sections/vh-howitworks.liquid) ----------
   Empty on the storefront by design; these styles only matter once content is
   added, plus the editor-only reserved marker.
   ---------------------------------------------------------------------- */
.vh-hiw__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.vh-hiw__grid--solo{grid-template-columns:1fr;max-width:72ch;}
.vh-hiw__body{margin-top:16px;}
.vh-hiw__body p{margin:0 0 14px;}
.vh-hiw__media img,
.vh-hiw__media iframe,
.vh-hiw__media video{
  display:block;width:100%;height:auto;
  border:1px solid var(--vh-line);
  border-radius:var(--vh-radius-lg);
}
.vh-hiw__reserved{
  border:1px dashed var(--vh-line);
  border-radius:var(--vh-radius-lg);
  background:var(--vh-bg-wash);
  padding:40px 28px;
  text-align:center;
}
.vh-hiw__reserved-title{
  margin:0;
  font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--vh-accent-deep);
}
.vh-hiw__reserved-note{
  margin:10px auto 0;max-width:56ch;
  font-size:14px;line-height:1.6;color:var(--vh-muted);
}
@media(max-width:749px){
  .vh-hiw__grid{grid-template-columns:1fr;gap:28px;}
}
