/* VeneHealth — component + behaviour styles (paired with theme.json tokens).
   ─────────────────────────────────────────────────────────────────────────
   TOKEN RULE: this file contains ZERO literal token values. Every dimension,
   color, shadow and duration reads a --wp--preset--* or --wp--custom--* var
   defined in theme.json (the single source of truth). Allowed literals: 0,
   1px hairlines, percentages, ch-measures, alpha-white overlays on navy.

   BREAKPOINTS (per the approved design-system HTML — the only three allowed):
     900px  grids 3/4 → 2 cols, grid 5 → 3 cols, header squeeze
     700px  grid 2 → 1 col, trust band → 2 cols, figure grids → 2 cols
     600px  everything → 1 col
   ───────────────────────────────────────────────────────────────────────── */

/* ---- Page chrome stacks flush: kill root blockGap bands between header/main/footer
       and between full-bleed sections (sections own their rhythm via padding) ---- */
.wp-site-blocks>*{margin-block-start:0}
main.wp-block-group>.alignfull{margin-block-start:0}
.wp-block-post-content>.alignfull{margin-block-start:0}

/* ---- Section rhythm & dark sections ---- */
.vh-section{padding-block:var(--wp--preset--spacing--section)}
.vh-section--ruled{border-bottom:1px solid var(--wp--preset--color--line-200)}
.vh-section--navy{background:var(--wp--preset--color--blue-900);color:var(--wp--preset--color--paper)}
.vh-section--navy :is(h1,h2,h3,h4){color:#fff}
.vh-section--navy a:not(.wp-element-button){color:var(--wp--preset--color--gold-500)}

/* ---- Eyebrow / kicker ---- */
.vh-eyebrow{font-family:var(--wp--preset--font-family--body);font-size:var(--wp--preset--font-size--eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--wp--preset--color--blue-500)}
.vh-section--navy .vh-eyebrow,.vh-panel--navy .vh-eyebrow,.vh-statement--navy .vh-eyebrow,.vh-hero .vh-eyebrow,.vh-cta .vh-eyebrow{color:var(--wp--preset--color--gold-300)}

/* ---- Header (sticky, always semi-solid white + blur + hairline, per the design system) ---- */
.vh-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%);border-bottom:1px solid var(--wp--preset--color--line-200);transition:box-shadow var(--wp--custom--motion--duration-base)}
.vh-header.is-scrolled{box-shadow:var(--wp--preset--shadow--sm)}
/* The mobile nav overlay is position:fixed. .vh-header's backdrop-filter creates a
   containing block that would trap that overlay inside the header bar (only the
   first item, "Home", shows). Drop the filter while the overlay is open so it
   covers the full viewport as intended. */
.vh-header:has(.wp-block-navigation__responsive-container.is-menu-open){backdrop-filter:none;-webkit-backdrop-filter:none}
/* Bar background bleeds full width; bar CONTENT lives in the design-system container (1200px envelope, 24px gutters) */
.vh-header .vh-header__inner{min-height:72px;padding-block:12px;max-width:var(--wp--custom--layout--container);margin-inline:auto;padding-inline:var(--wp--custom--layout--gutter);box-sizing:border-box}
.vh-header .wp-block-navigation a{color:var(--wp--preset--color--ink-900);font-weight:500}
.vh-header .wp-block-navigation a:hover{color:var(--wp--preset--color--blue-500)}
/* over a dark hero before solidifying */
.vh-header.over-dark:not(.is-scrolled) .wp-block-navigation a,
.vh-header.over-dark:not(.is-scrolled) .vh-lang a,
.vh-header.over-dark:not(.is-scrolled) .vh-lang .is-active{color:#fff}

/* ---- Promo bar ($25 off) — navy, never a 2nd gold: link stays white ---- */
.vh-promo{background:var(--wp--preset--color--blue-900);color:#fff;text-align:center;font-size:var(--wp--preset--font-size--small);padding:8px 16px}
.vh-promo a{color:#fff;text-decoration:underline;font-weight:600}
.vh-promo a:hover{color:var(--wp--preset--color--gold-300)}

/* ---- Language switcher (EN | ES) ---- */
.vh-lang{display:inline-flex;align-items:center;gap:6px;font-family:var(--wp--preset--font-family--heading);font-size:.9rem;font-weight:500}
.vh-lang a{color:var(--wp--preset--color--slate-500);text-decoration:none;transition:color var(--wp--custom--motion--duration-fast)}
.vh-lang a:hover,.vh-lang a:focus{color:var(--wp--preset--color--gold-500)}
.vh-lang .is-active{color:var(--wp--preset--color--blue-500);font-weight:600}
.vh-lang .sep{color:var(--wp--preset--color--line-200)}

/* ---- Hero (photo / video cover) ---- */
.vh-hero{position:relative;display:flex;align-items:center;min-height:var(--wp--custom--hero--min-height);overflow:hidden;color:#fff}
.vh-hero__media,.vh-hero__media video,.vh-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vh-hero__overlay{position:absolute;inset:0;background:var(--wp--preset--gradient--hero-overlay)}
.vh-hero__content{position:relative;z-index:2;width:100%}
.vh-hero :is(h1,h2){color:#fff}
.vh-hero p{color:rgba(255,255,255,.92)}
.vh-hero h1+p{margin-block-start:var(--wp--custom--hero--text-gap)}
.vh-hero .wp-block-buttons{margin-block-start:var(--wp--custom--hero--cta-gap)}
/* Full-viewport hero (home): fills the screen below the promo bar + header.
   --vh-chrome is set by theme.js to the real chrome height; 134px fallback. */
.vh-hero--full{min-height:calc(100vh - var(--vh-chrome,134px))}
.vh-hero--full{min-height:calc(100svh - var(--vh-chrome,134px))}

/* ---- Page-head banner (navy gradient interior-page opener — design-system .pagehead) ---- */
.vh-pagehead{background:var(--wp--preset--gradient--navy-depth);color:#fff;padding-block:var(--wp--custom--pagehead--pad-block)}
.vh-pagehead :is(h1,h2,h3){color:#fff}
.vh-pagehead p{color:rgba(255,255,255,.85)}
.vh-pagehead .vh-eyebrow{color:var(--wp--preset--color--gold-300)}

/* ---- Buttons ---- */
.wp-element-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--wp--custom--button--min-height);border:var(--wp--custom--button--border-width) solid transparent;transition:transform var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease),background-color var(--wp--custom--motion--duration-fast),color var(--wp--custom--motion--duration-fast),box-shadow var(--wp--custom--motion--duration-fast)}
.wp-element-button:hover{transform:scale(1.02)}
.wp-element-button:active{transform:scale(.99)}
.is-style-vh-secondary>.wp-element-button,.wp-block-button.is-style-vh-secondary .wp-element-button{background:transparent;color:var(--wp--preset--color--blue-500);border:var(--wp--custom--button--border-width) solid var(--wp--preset--color--blue-500)}
.is-style-vh-secondary>.wp-element-button:hover{background:var(--wp--preset--color--blue-500);color:#fff}
.vh-on-dark .is-style-vh-secondary>.wp-element-button{color:#fff;border-color:rgba(255,255,255,.6)}
.vh-on-dark .is-style-vh-secondary>.wp-element-button:hover{background:#fff;color:var(--wp--preset--color--blue-900)}

/* ---- Cards ---- */
.vh-card{background:var(--wp--preset--color--surface);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--card);box-shadow:var(--wp--preset--shadow--sm);transition:transform var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease),box-shadow var(--wp--custom--motion--duration-base)}
.vh-card:hover{transform:translateY(-5px);box-shadow:var(--wp--preset--shadow--lg)}

/* Service card (bento) with growing gold accent line */
.vh-service-card{position:relative;overflow:hidden}
.vh-service-card::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--wp--preset--color--gold-500);transition:width var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease)}
.vh-service-card:hover::before{width:100%}
.vh-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--wp--custom--radius--md);background:rgba(0,72,144,.08);color:var(--wp--preset--color--blue-500)}
/* Service-card internal rhythm — these cards carry blockGap:0, so the icon/title/text spacing lives here */
.vh-service-card .vh-ico{margin-bottom:var(--wp--preset--spacing--sm)}
.vh-service-card h4{margin:0 0 var(--wp--preset--spacing--2-xs);line-height:1.25}

/* Provider card */
.vh-provider{overflow:hidden}
.vh-provider .vh-provider__media{aspect-ratio:1/1;overflow:hidden;background:var(--wp--preset--color--line-200)}
.vh-provider .vh-provider__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--wp--custom--motion--duration-slow) var(--wp--custom--motion--ease)}
.vh-provider:hover .vh-provider__media img{transform:scale(1.04)}
/* Editability fix (QC): core/image wraps the provider photo in a <figure> inside the 4/5 media box; force that wrapper to fill so the cover-crop holds and cards stay equal height. No-op on legacy direct-<img> markup, so safe for the rollout recipe too. */
.vh-provider .vh-provider__media :where(figure,.wp-block-image){height:100%;margin:0}
.vh-chip{display:inline-block;font-size:.72rem;border:1px solid var(--wp--preset--color--line-200);color:var(--wp--preset--color--slate-500);border-radius:var(--wp--custom--radius--pill);padding:4px 10px;font-weight:500}
/* Credentials: gold deepened toward ink via color-mix so small text passes WCAG AA on white (per qa/uiux-review.md) */
.vh-cred{color:color-mix(in srgb,var(--wp--preset--color--gold-600) 68%,var(--wp--preset--color--ink-900));font-weight:600;font-size:.8rem;font-family:var(--wp--preset--font-family--heading)}

/* Trust band — contained rounded navy card (matches design-system .trust: 34px pad / 20px gap) */
.vh-trust{background:var(--wp--preset--color--blue-900);color:#fff;border-radius:var(--wp--custom--radius--card);padding:var(--wp--custom--band--padding);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--wp--custom--band--gap);text-align:center;box-shadow:var(--wp--preset--shadow--md)}
.vh-stat__n{font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:1.9rem;color:var(--wp--preset--color--gold-500);line-height:1}
.vh-stat__l{color:rgba(255,255,255,.8);font-size:.85rem;margin-top:6px}
/* Light variant (paper pages that already carry a navy section) */
.vh-trust--light{background:var(--wp--preset--color--surface);color:var(--wp--preset--color--ink-900);border:1px solid var(--wp--preset--color--line-200);box-shadow:var(--wp--preset--shadow--sm)}
.vh-trust--light .vh-stat__n{color:var(--wp--preset--color--blue-700)}
.vh-trust--light .vh-stat__l{color:var(--wp--preset--color--slate-500)}

/* Pricing / membership — equal heights, CTAs bottom-aligned across the row */
.vh-price{background:var(--wp--preset--color--surface);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--card);box-shadow:var(--wp--preset--shadow--sm);position:relative;display:flex;flex-direction:column;height:100%}
.vh-price>.wp-block-buttons:last-child,.vh-price>p:last-of-type{margin-top:auto}
.vh-price--feat{border-color:var(--wp--preset--color--gold-500);box-shadow:var(--wp--preset--shadow--md)}
.vh-price__flag{position:absolute;top:-12px;right:18px;background:var(--wp--preset--color--gold-300);color:var(--wp--preset--color--ink-900);font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:.72rem;padding:5px 12px;border-radius:var(--wp--custom--radius--pill)}
.vh-price__amt{font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:2.2rem;color:var(--wp--preset--color--blue-700);line-height:1}

/* Media / figure */
.vh-media,.vh-media img{border-radius:var(--wp--custom--radius--card)}
.vh-media img{display:block;width:100%;height:100%;object-fit:cover}

/* FAQ (core/details) */
.vh-faq details{border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--md);margin-bottom:10px;background:var(--wp--preset--color--surface)}
.vh-faq summary{cursor:pointer;padding:18px 20px;font-family:var(--wp--preset--font-family--heading);font-weight:600;color:var(--wp--preset--color--ink-900);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.vh-faq summary::after{content:"\2304";color:var(--wp--preset--color--blue-500);font-size:1.3em;line-height:1;transition:transform var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease)}
.vh-faq details[open] summary::after{transform:rotate(180deg)}
.vh-faq summary::-webkit-details-marker{display:none}
.vh-faq details[open]>summary{color:var(--wp--preset--color--blue-500)}
.vh-faq details>*:not(summary){padding:0 20px 18px;color:var(--wp--preset--color--slate-500)}

/* ---- Scroll reveal (progressive enhancement) ---- */
.vh-js .vh-reveal{opacity:0;transform:translateY(20px);transition:opacity var(--wp--custom--motion--duration-slow) var(--wp--custom--motion--ease),transform var(--wp--custom--motion--duration-slow) var(--wp--custom--motion--ease)}
.vh-reveal.is-in{opacity:1;transform:none}

/* ---- Focus visibility ---- */
a:focus-visible,button:focus-visible,.wp-element-button:focus-visible,summary:focus-visible{outline:2px solid var(--wp--preset--color--blue-500);outline-offset:2px}
.vh-section--navy a:focus-visible,.vh-hero a:focus-visible,.vh-pagehead a:focus-visible{outline-color:#fff}
/* Inline links on dark covers/bands (e.g. "or call ...") must be legible: white + underline */
.vh-cta a:not(.wp-element-button),.vh-hero a:not(.wp-element-button){color:#fff;text-decoration:underline}
.vh-cta a:not(.wp-element-button):hover,.vh-hero a:not(.wp-element-button):hover{color:var(--wp--preset--color--gold-300)}

@media (prefers-reduced-motion: reduce){
  .vh-js .vh-reveal{opacity:1;transform:none;transition:none}
  .vh-card,.vh-provider .vh-provider__media img,.wp-element-button{transition:none!important}
  .wp-element-button:hover{transform:none}
  .vh-hero__media video{display:none}
}

/* ---- Header Book CTA: gold, per the approved design system (visible on the light header). ---- */
.vh-util .wp-element-button{white-space:nowrap}

/* ===== Deterministic layout primitives (mirror the design-system .wrap/.grid/.sec-head) ===== */
.vh-wrap{max-width:var(--wp--custom--layout--container);margin-inline:auto;padding-inline:var(--wp--custom--layout--gutter);box-sizing:border-box}
.vh-wrap--narrow{max-width:760px}
/* Anti-double-gutter guard: inside a constrained/padded layout the gutter already exists */
.is-layout-constrained>.vh-wrap,.has-global-padding>.vh-wrap{padding-inline:0;max-width:var(--wp--style--global--content-size,1152px)}
.vh-grid{display:grid;gap:var(--wp--preset--spacing--gap)}
.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)}
.vh-grid--5{grid-template-columns:repeat(5,1fr)}
.vh-sec-head{max-width:720px;margin:0 auto var(--wp--custom--section-head--gap);text-align:center}
.vh-sec-head .vh-eyebrow{display:block;margin-bottom:10px}
.vh-sec-head h2{margin:0 0 12px}
.vh-sec-head p{color:var(--wp--preset--color--slate-500);font-size:1.0625rem;margin:0}

/* Card internals when built in html (match design-system .card: 26px pad) */
.vh-card.vh-pad{padding:var(--wp--custom--card--padding)}
.vh-card h3{font-size:1.2rem;margin:0 0 8px}
.vh-card p{color:var(--wp--preset--color--slate-500);font-size:.95rem;margin:0}
.vh-card .vh-more{display:inline-block;margin-top:14px;font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:.9rem;color:var(--wp--preset--color--blue-500);text-decoration:none}
.vh-card .vh-more:hover{color:var(--wp--preset--color--gold-600)}

/* Trust badges (hero / section) */
.vh-badges{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.vh-badges--center{justify-content:center}
.vh-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--wp--preset--font-family--body);font-weight:500;font-size:.92rem;color:var(--wp--preset--color--ink-900)}
.vh-badge::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--wp--preset--color--gold-500);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;flex:none}
.vh-hero .vh-badges .vh-badge,.vh-badges--on-dark .vh-badge{color:#fff}

/* Promo / feature panel (memberships, medicare) — contained rounded panel */
.vh-panel{border-radius:var(--wp--custom--radius--card);padding:var(--wp--custom--panel--padding);display:flex;gap:28px;align-items:center;flex-wrap:wrap;box-shadow:var(--wp--preset--shadow--md)}
.vh-panel--navy{background:var(--wp--preset--color--blue-900);color:#fff}
.vh-panel--navy :is(h2,h3){color:#fff}
.vh-panel--gold{background:var(--wp--preset--gradient--gold-tint);border:1px solid var(--wp--preset--color--gold-300)}
.vh-panel__body{flex:1 1 360px}
.vh-panel__body p{margin:.5em 0 0}
.vh-panel--navy .vh-panel__body p{color:rgba(255,255,255,.85)}
.vh-panel__aside{flex:0 0 auto}

/* Testimonials */
.vh-quote{background:var(--wp--preset--color--surface);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--card);padding:var(--wp--custom--card--padding);box-shadow:var(--wp--preset--shadow--sm)}
.vh-quote__stars{color:var(--wp--preset--color--gold-500);letter-spacing:2px;font-size:.95rem}
.vh-quote__text{margin:10px 0 14px;color:var(--wp--preset--color--ink-900);font-size:1rem;line-height:1.6}
.vh-quote__by{font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:.9rem;color:var(--wp--preset--color--blue-700)}

/* ---- Lead forms (static UI; the forms plugin replaces these fields at integration) ---- */
.vh-form{display:block;text-align:left}
.vh-form .vh-form__row{margin-bottom:var(--wp--custom--form--field-gap)}
.vh-form .vh-form__two{display:grid;grid-template-columns:1fr 1fr;gap:var(--wp--custom--form--field-gap)}
.vh-form label{display:block;font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:.82rem;color:var(--wp--preset--color--ink-900);margin-bottom:var(--wp--custom--form--label-gap)}
.vh-form input,.vh-form select,.vh-form textarea{box-sizing:border-box;width:100%;border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--button);padding:var(--wp--custom--form--input-pad-block) var(--wp--custom--form--input-pad-inline);font-family:var(--wp--preset--font-family--body);font-size:1rem;background:var(--wp--preset--color--surface);color:var(--wp--preset--color--ink-900)}
.vh-form input[type="checkbox"],.vh-form input[type="radio"]{width:auto;display:inline-block;vertical-align:middle;margin:0 8px 0 0}
.vh-form label:has(input[type="checkbox"]),.vh-form label:has(input[type="radio"]){display:flex;align-items:center;gap:8px;font-weight:500;min-height:32px;margin-bottom:0}
.vh-form input:focus,.vh-form select:focus,.vh-form textarea:focus{outline:2px solid var(--wp--preset--color--blue-500);outline-offset:1px;border-color:var(--wp--preset--color--blue-500)}
.vh-form__consent{display:flex;gap:8px;align-items:flex-start;font-size:.82rem;color:var(--wp--preset--color--slate-500);margin-bottom:var(--wp--custom--form--field-gap)}
.vh-form__consent input{width:auto;margin-top:3px}
.vh-form__submit{background:var(--wp--preset--color--gold-500);color:var(--wp--preset--color--ink-900);font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:1rem;border:none;border-radius:var(--wp--custom--radius--button);padding:var(--wp--custom--button--pad-block) var(--wp--custom--button--pad-inline);cursor:pointer;min-height:var(--wp--custom--button--min-height);transition:background var(--wp--custom--motion--duration-fast)}
.vh-form__submit:hover{background:var(--wp--preset--color--gold-600)}
.vh-form__note{font-size:.8rem;color:var(--wp--preset--color--slate-500);margin-top:12px}

/* ---- Footer (spacing lives here, not in pattern markup: 56 / 30 / 36) ---- */
.vh-footer{padding-block:var(--wp--custom--footer--pad-top) var(--wp--custom--footer--pad-bottom)}
/* Footer links are quiet white-80 per the design system; gold on hover ONLY */
.vh-footer a:not(.wp-element-button){color:rgba(255,255,255,.8)}
.vh-footer a:not(.wp-element-button):hover{color:var(--wp--preset--color--gold-500)}
/* Footer content in the design-system container (not wideSize) */
.vh-footer .wp-block-columns{gap:var(--wp--custom--footer--cols-gap);max-width:var(--wp--custom--layout--container);margin-inline:auto;padding-inline:var(--wp--custom--layout--gutter);box-sizing:border-box}
.vh-footer__copy{border-top:1px solid rgba(255,255,255,.14);margin-top:var(--wp--custom--footer--copy-gap);padding-top:var(--wp--custom--footer--copy-pad)}

/* ===== Section archetypes (the anti-repetition library; compose design-system tokens only) ===== */

/* Split media/text rows (50/50). Apply to wp:columns; --flip handled by column order in markup. */
.wp-block-columns.vh-split{gap:var(--wp--preset--spacing--xl)}
/* Keep split sections within one screen: media defaults to 4:3 (inline aspect-ratio,
   e.g. the 4:5 spotlight portraits, still wins over this). */
.vh-split .vh-media img{aspect-ratio:4/3;object-fit:cover;width:100%;object-position:50% 20%}

/* Numbered process steps */
.vh-steps{display:grid;gap:var(--wp--preset--spacing--gap);counter-reset:vh-step}
.vh-steps--3{grid-template-columns:repeat(3,1fr)}
.vh-steps--4{grid-template-columns:repeat(4,1fr)}
.vh-step{position:relative}
.vh-step__num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--wp--custom--radius--pill);background:rgba(0,72,144,.08);color:var(--wp--preset--color--blue-500);font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:1.15rem;margin-bottom:14px}
.vh-step h3{font-size:1.1rem;margin:0 0 8px}
.vh-step p{color:var(--wp--preset--color--slate-500);font-size:.95rem;margin:0}
.vh-step:not(:last-child)::before{content:"";position:absolute;top:23px;left:58px;right:0;height:1px;background:var(--wp--preset--color--line-200)}

/* Offer / price callout band: copy + CTA left, price display right */
.vh-offer{background:var(--wp--preset--gradient--gold-tint);border:1px solid var(--wp--preset--color--gold-300);border-radius:var(--wp--custom--radius--card);padding:var(--wp--custom--panel--padding)}
.vh-offer__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--wp--preset--spacing--xl);align-items:center}
.vh-offer__amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--wp--preset--spacing--gap)}
.vh-offer__amounts p{margin:6px 0 0;color:var(--wp--preset--color--slate-500)}
.vh-offer__cta{display:flex;align-items:center;gap:18px;margin-top:18px;flex-wrap:wrap}
.vh-offer__amt{font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:clamp(2.2rem,4vw,3.4rem);color:var(--wp--preset--color--blue-700);line-height:1}
.vh-offer p{margin:0}

/* Treatment / price menu list */
.vh-menu{margin:0;padding:0;list-style:none}
.vh-menu__item{padding-block:16px;border-bottom:1px solid var(--wp--preset--color--line-200)}
.vh-menu__row{display:flex;align-items:baseline;gap:12px}
.vh-menu__name{font-family:var(--wp--preset--font-family--heading);font-weight:600;color:var(--wp--preset--color--ink-900);font-size:1.05rem}
.vh-menu__dots{flex:1;border-bottom:1px dashed var(--wp--preset--color--line-200);transform:translateY(-4px)}
/* No price -> no dot leader (the leader exists to connect a name to its price) */
.vh-menu__row:not(:has(.vh-menu__price)) .vh-menu__dots{display:none}
.vh-menu__price{font-family:var(--wp--preset--font-family--heading);font-weight:700;color:var(--wp--preset--color--blue-700);white-space:nowrap}
.vh-menu__desc{color:var(--wp--preset--color--slate-500);font-size:.95rem;margin:6px 0 0}

/* Provider / specialist spotlight (asymmetric editorial row) */
.vh-spotlight__rule{width:56px;height:3px;background:var(--wp--preset--color--gold-500);border:none;margin:14px 0}

/* Comparison cards (navy header + body) */
.vh-compare{overflow:hidden;padding:0}
.vh-compare__head{background:var(--wp--preset--color--blue-900);padding:18px var(--wp--custom--card--padding)}
.vh-compare__head :is(h3,h4){color:#fff;margin:0}
.vh-compare__body{padding:var(--wp--custom--card--padding)}

/* Statement band (centered large type) */
.vh-statement{max-width:68ch;margin-inline:auto;text-align:center}
.vh-statement__rule{width:64px;height:3px;background:var(--wp--preset--color--gold-500);border:none;margin:18px auto 0}
.vh-refrain{border-left:3px solid var(--wp--preset--color--gold-500);padding-left:18px;font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:1.15rem;color:var(--wp--preset--color--blue-700);line-height:1.7}
.vh-section--navy .vh-refrain{color:#fff}

/* Checklist (gold-check items) */
.vh-checklist{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.vh-checklist--2col{grid-template-columns:1fr 1fr;gap:12px 24px}
.vh-checklist li{position:relative;padding-left:30px}
.vh-checklist li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--wp--preset--color--gold-500);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat}

/* Gallery: masonry + figure grid with captions (design-system .figrid/.fig/.cap) */
.vh-masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--wp--preset--spacing--sm)}
.vh-masonry .vh-fig{margin:0}
.vh-masonry .vh-fig img{aspect-ratio:4/3;object-fit:cover}
.vh-figrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--wp--preset--spacing--sm)}
.vh-figrid .vh-fig img{height:200px}
.vh-fig{margin:0}
.vh-fig img{display:block;width:100%;object-fit:cover;border-radius:var(--wp--custom--radius--card)}
.vh-cap{font-size:.78rem;color:var(--wp--preset--color--slate-500);padding:10px 12px 0}

/* Hours / visit-us band */
.vh-hours{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--wp--preset--spacing--gap)}
.vh-hours>*+*{border-left:1px solid var(--wp--preset--color--line-200);padding-left:var(--wp--preset--spacing--gap)}

/* Note / disclaimer (design-system .note: gold left border) */
.vh-note{background:var(--wp--preset--color--surface);border:1px solid var(--wp--preset--color--line-200);border-left:4px solid var(--wp--preset--color--gold-500);border-radius:var(--wp--custom--radius--sm);padding:14px 18px;color:var(--wp--preset--color--slate-500);font-size:var(--wp--preset--font-size--small)}
.vh-note p{margin:0}

/* ===== Responsive (only 900 / 700 / 600 — see header comment) ===== */
@media(max-width:900px){
  .vh-grid--3,.vh-grid--4{grid-template-columns:repeat(2,1fr)}
  .vh-grid--5{grid-template-columns:repeat(3,1fr)}
  .vh-steps--3,.vh-steps--4{grid-template-columns:repeat(2,1fr)}
  .vh-step:not(:last-child)::before{display:none}
  .vh-header__inner{gap:10px}
  .vh-util .wp-element-button{padding:10px 14px;font-size:.9rem}
}
@media(max-width:700px){
  .vh-grid--2{grid-template-columns:1fr}
  .vh-offer__grid{grid-template-columns:1fr}
  .vh-trust{grid-template-columns:repeat(2,1fr)}
  .vh-figrid{grid-template-columns:repeat(2,1fr)}
  .vh-masonry{grid-template-columns:repeat(2,1fr)}
  .vh-hours{grid-template-columns:1fr}
  .vh-hours>*+*{border-left:none;border-top:1px solid var(--wp--preset--color--line-200);padding-left:0;padding-top:var(--wp--preset--spacing--sm)}
}
@media(max-width:600px){
  .vh-grid--2,.vh-grid--3,.vh-grid--4,.vh-grid--5{grid-template-columns:1fr}
  .vh-steps--3,.vh-steps--4{grid-template-columns:1fr}
  .vh-form .vh-form__two{grid-template-columns:1fr}
  .vh-checklist--2col{grid-template-columns:1fr}
  .vh-figrid{grid-template-columns:1fr}
  .vh-masonry{grid-template-columns:1fr}
}

/* ---- Service list (women's health): 2-col icon rows on soft paper tiles ---- */
.vh-svclist{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--wp--preset--spacing--sm);margin:0;padding:0;list-style:none}
.vh-svclist__item{display:flex;align-items:flex-start;gap:var(--wp--preset--spacing--sm);background:var(--wp--preset--color--paper);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--md);padding:var(--wp--custom--card--padding);transition:border-color var(--wp--custom--motion--duration-fast)}
.vh-svclist__item:hover{border-color:var(--wp--preset--color--gold-300)}
.vh-svclist__item:last-child:nth-child(odd){grid-column:1/-1}
.vh-svclist .vh-ico{flex:none;border-radius:var(--wp--custom--radius--pill)}
.vh-svclist__name{font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:1.05rem;color:var(--wp--preset--color--ink-900);margin:0 0 .25em}
.vh-svclist__desc{color:var(--wp--preset--color--slate-500);font-size:.95rem;margin:0}
@media(max-width:700px){.vh-svclist{grid-template-columns:1fr}}

/* ===== Specialist picker (aesthetics): CSS-only radio-tab toggle ===== */
/* TIER 1: all content is always in the DOM; TIER 2: hidden radios + general-sibling
   combinator toggle the panels with no JS. The radios and BOTH .vh-panel groups are
   direct siblings inside .vh-team — that adjacency is what makes the toggle work. */
.vh-team{max-width:var(--wp--custom--layout--container);margin-inline:auto}
/* Visually-hidden but keyboard-focusable radios (native radio-group semantics) */
.vh-team__radio{position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
/* Equal tabs, >=44px tap target */
.vh-team__tabs{display:flex;gap:var(--wp--preset--spacing--sm);margin-bottom:var(--wp--preset--spacing--lg)}
.vh-team__tab{flex:1 1 0;min-height:56px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 16px;text-align:center;cursor:pointer;background:var(--wp--preset--color--paper);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--md);position:relative;transition:background var(--wp--custom--motion--duration-fast),box-shadow var(--wp--custom--motion--duration-fast),border-color var(--wp--custom--motion--duration-fast)}
.vh-team__tab .nm{font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:1rem;color:var(--wp--preset--color--ink-900)}
.vh-team__tab .cr{font-size:.8rem;color:var(--wp--preset--color--slate-500)}
.vh-team__tab::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:3px;border-radius:3px;background:var(--wp--preset--color--gold-500);transform:scaleX(0);transition:transform var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease)}
.vh-team__tab:hover{border-color:var(--wp--preset--color--gold-300)}
/* Keyboard focus ring: when a radio is focused, ring its matching label */
#tab-z:focus-visible~.vh-team__tabs label[for=tab-z],
#tab-j:focus-visible~.vh-team__tabs label[for=tab-j]{outline:2px solid var(--wp--preset--color--blue-500);outline-offset:2px}
/* Active tab: surface lift + gold underline */
#tab-z:checked~.vh-team__tabs label[for=tab-z],
#tab-j:checked~.vh-team__tabs label[for=tab-j]{background:var(--wp--preset--color--surface);border-color:var(--wp--preset--color--gold-300);box-shadow:var(--wp--preset--shadow--sm)}
#tab-z:checked~.vh-team__tabs label[for=tab-z]::after,
#tab-j:checked~.vh-team__tabs label[for=tab-j]::after{transform:scaleX(1)}
/* Panels: hidden by default, revealed by the matching checked radio.
   Scoped to .vh-team so the global .vh-panel band component is untouched, and the
   inherited flex/padding/shadow from .vh-panel is neutralised here. */
.vh-team .vh-panel{display:none;padding:0;box-shadow:none;border-radius:0;gap:0;align-items:initial;flex-wrap:initial;scroll-margin-top:var(--vh-chrome,134px)}
#tab-z:checked~.vh-panel--z{display:block}
#tab-j:checked~.vh-panel--j{display:block}
/* Inner "Her Treatments" sub-head */
.vh-sub-head{max-width:720px;margin:0 0 var(--wp--preset--spacing--lg);text-align:left}
.vh-sub-head .vh-eyebrow{display:block;margin-bottom:8px}
.vh-sub-head h4{margin:0;font-size:1.35rem}
/* Square portraits inside the picker split rows (inline aspect-ratio:1 wins; this guards object-fit) */
.vh-team .vh-split .vh-media img{aspect-ratio:1;object-fit:cover}
/* Print: show both specialists */
@media print{.vh-team .vh-panel{display:block!important}}
/* Smooth in-page scroll only when motion is welcome */
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
/* Stack tabs full-width on the smallest screens */
@media(max-width:600px){.vh-team__tabs{flex-direction:column}}
/* Picker sub-head: styled to match the main .vh-sec-head (centered eyebrow + h2-scale
   heading) so the two read as the same level of header. + top spacing from the bio above. */
.vh-team .vh-sub-head{max-width:720px;margin-inline:auto;margin-top:var(--wp--preset--spacing--3-xl);text-align:center}
.vh-team .vh-sub-head .vh-eyebrow{margin-bottom:10px;font-size:1.0625rem}
.vh-team .vh-sub-head h4{font-size:var(--wp--preset--font-size--h-2);font-weight:600;line-height:1.1}
/* Blog post cards (grid) */
.vh-post{background:var(--wp--preset--color--surface);border:1px solid var(--wp--preset--color--line-200);border-radius:var(--wp--custom--radius--card);overflow:hidden;box-shadow:var(--wp--preset--shadow--sm);transition:transform var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease),box-shadow var(--wp--custom--motion--duration-base);display:flex;flex-direction:column}
.vh-post:hover{transform:translateY(-5px);box-shadow:var(--wp--preset--shadow--lg)}
.vh-post__img{margin:0}
.vh-post__img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.vh-post__body{padding:var(--wp--custom--card--padding)}
.vh-post__body .vh-eyebrow{display:block;margin-bottom:8px}
.vh-post__body h3{font-size:1.15rem;margin:0 0 10px;line-height:1.3}
.vh-post__body p{color:var(--wp--preset--color--slate-500);font-size:.95rem;margin:0}
.vh-post__body .vh-more{margin-top:14px}
.vh-post__body .vh-more a{font-family:var(--wp--preset--font-family--heading);font-weight:600;font-size:.9rem;color:var(--wp--preset--color--blue-500);text-decoration:none}
.vh-post__body .vh-more a:hover{color:var(--wp--preset--color--gold-600)}
/* Contact-form spam honeypot: visually removed, kept in the accessibility tree off-screen. */
.vh-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* Post-submit confirmation / error banner (injected by theme.js). */
.vh-form__status{margin:0 0 var(--wp--preset--spacing--sm);padding:12px 16px;border-radius:var(--wp--custom--radius--sm,10px);font-weight:600;line-height:1.4}
.vh-form__status.is-ok{background:#E7F6EC;color:#12683A;border:1px solid #B7E2C6}
.vh-form__status.is-err{background:#FDECEC;color:#9B1C1C;border:1px solid #F3C0C0}
/* Image crop focus — pick these from the image block's Styles panel to control
   where a cover-cropped photo is anchored, e.g. keep heads in frame on group photos. */
.is-style-vh-focus-top img{object-position:center top!important}
.is-style-vh-focus-upper img{object-position:50% 22%!important}
.is-style-vh-focus-center img{object-position:center!important}
.is-style-vh-focus-lower img{object-position:50% 78%!important}
.is-style-vh-focus-bottom img{object-position:center bottom!important}
