/* ==========================================================================
   OPTIV — health goal landing pages. Scoped to .ovg
   ========================================================================== */

.ovg {
  --paper:  #fbfbf9;
  --stone:  #f3f4f0;
  --card:   #ffffff;
  --ink:    #141714;
  --charcoal: #2e2e2e;
  --accent: #7bfb8e;
  --accent-soft: #e6fced;
  --accent-mid:  #b6f7c4;
  --accent-deep: #14742d;
  --muted:  #6a706a;
  --hairline: rgba(20, 23, 20, 0.10);
  --hairline-lt: rgba(255, 255, 255, 0.14);

  --s2: 14px; --s3: 20px; --s4: 28px; --s5: 40px; --s6: 56px;
  --section-y: clamp(56px, 7vw, 104px);

  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  background: var(--paper);
  color: var(--charcoal);
}
.ovg *, .ovg *::before, .ovg *::after { box-sizing: border-box; }

:where(.ovg) :where(h1,h2,h3) {
  font-family: "Satoshi","Inter",sans-serif;
  font-weight: 700; letter-spacing: -0.028em; line-height: 1.12;
  margin: 0; color: var(--ink);
}
:where(.ovg) :where(p) { margin: 0; line-height: 1.7; }
:where(.ovg) :where(ul) { margin: 0; padding: 0; list-style: none; }
.ovg a { text-decoration: none; }

/* ---- Hero: dark panel over the goal photo, headline-led ----
   Mirrors the pattern that works for paid traffic: one screen of headline,
   then the booking widget immediately beneath as a single continuous block. */
.ovg-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--ink);
  color: rgba(255,255,255,.78);
  border-bottom: 0;
  padding-block: clamp(34px, 5.5vw, 76px) clamp(26px, 4vw, 48px);
}
.ovg-hero-media {
  position: absolute;
  inset: 0;
  z-index: -2;
  order: 0;
  border-radius: 0;
  aspect-ratio: auto;
  background: var(--ink);
}
.ovg-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ovg-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(18,21,18,.82) 0%, rgba(18,21,18,.93) 100%);
}
.ovg-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 900px);
  gap: clamp(24px, 3vw, 44px);
  align-items: center;
}
.ovg-hero-copy { max-width: none; }
.ovg-hero-copy > * + * { margin-top: var(--s3); }
/* The 15ch cap keeps the headline breaking into a tall block, but it must not
   squeeze the paragraph and trust list underneath into a narrow ribbon. */
.ovg-hero .ovg-h1 { max-width: 15ch; }
.ovg-hero .ovg-lead { max-width: 46ch; }
.ovg-hero .ovg-micro { max-width: 46ch; }
.ovg-hero .ovg-trust { max-width: 46ch; }

/* Booking card, sitting beside the headline */
.ovg-hbook {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 40px 70px -40px rgba(0,0,0,.7);
}
.ovg-hbook-banner {
  background: var(--accent);
  color: #10210f;
  padding: 16px 20px;
}
.ovg-hbook-banner strong {
  display: block;
  font-family: "Satoshi","Inter",sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  line-height: 1.2;
}
.ovg-hbook-banner span {
  display: block;
  margin-top: 5px;
  font-size: 12.5px;
  color: rgba(16,33,15,.72);
}
/* No inner scrollbar: the frame is rendered wider than its slot and scaled
   down, so the widget's own text shrinks and the whole thing fits.
   Keep the three numbers in step —
   width = 100 / scale, and the wrapper height = iframe height * scale. */
/* The booking widget is a GoHighLevel embed and form_embed.js (enqueued on
   these pages) sets its height inline to match its content. So no scaling and
   no fixed height here — the script sizes it exactly, on every step. The
   value below is only what shows before that script reports back. */
/* start.optiv.health is a GoHighLevel FUNNEL page, not a GHL widget embed, so
   form_embed.js never reports a height for it — the iframe stayed at its
   fallback height and the booking wizard was clipped. The wizard now posts its
   own height up; this is the fallback until that message arrives, and the
   wrapper no longer hides the overflow. */
.ovg-hbook-frame {
  position: relative;
  overflow: visible;
}
.ovg-hbook-iframe {
  display: block;
  width: 100%;
  height: 1150px;
  border: 0;
  overflow: hidden;
  transition: height .2s ease;
}
.ovg-hbook-fallback { padding: 28px; text-align: center; }

/* The standalone booking section is redundant now the widget is in the hero. */
.ovg > #book { display: none; }

.ovg-hero .ovg-eyebrow {
  background: transparent;
  border: 0;
  padding: 0;
  color: var(--accent);
  letter-spacing: .18em;
  font-size: 11.5px;
}
.ovg-hero .ovg-dot { background: var(--accent); }

.ovg-hero .ovg-h1 {
  color: #fff;
  text-transform: uppercase;
  font-size: clamp(2.4rem, 8.6vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.ovg-hero .ovg-lead { color: rgba(255,255,255,.74); max-width: 54ch; }
.ovg-hero .ovg-micro { color: rgba(255,255,255,.55); }

/* The widget below is the call to action — a second one competes with it. */
.ovg-hero .ovg-btn { display: none; }

.ovg-hero .ovg-trust { border-top-color: rgba(255,255,255,.14); }
.ovg-hero .ovg-trust li { color: rgba(255,255,255,.8); }

/* ---- Booking block: continues the hero, no seam ---- */
.ovg > #book {
  background: var(--ink);
  border-bottom: 0;
  padding-top: 0;
  padding-bottom: clamp(36px, 5vw, 72px);
}
.ovg > #book .ovg-head { display: none; }

.ovg-cal-banner {
  background: var(--accent);
  color: #10210f;
  padding: 18px 22px;
}
.ovg-cal-banner strong {
  display: block;
  font-family: "Satoshi","Inter",sans-serif;
  font-size: clamp(1.05rem, 2.4vw, 1.3rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
.ovg-cal-banner span {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: rgba(16,33,15,.72);
}
.ovg-cal-note { color: rgba(255,255,255,.5); }
.ovg-cal-note a { color: var(--accent); }

.ovg-wrap { width: 100%; max-width: 1120px; margin-inline: auto; padding-inline: clamp(18px,4vw,32px); }

/* The hero runs wider than the rest of the page so the booking widget has
   room for its five step tabs without them truncating. */
.ovg-hero .ovg-wrap { max-width: 1440px; }

/* Booking wizard sits directly under the hero, above the rest of the page.
   Done with flex order rather than moving the markup so the change is a
   single, reversible line. Note: DOM order is unchanged, so keyboard and
   screen-reader users still reach the wizard in its original position. */
.ovg { display: flex; flex-direction: column; }
.ovg > * { order: 3; }
.ovg > .ovg-hero { order: 1; }
.ovg > #book { order: 2; }
.ovg > #book { border-bottom: 1px solid var(--hairline); }
.ovg-section { padding-block: var(--section-y); }
.ovg-section--white { background: var(--card); }
.ovg-section--stone { background: var(--stone); }

.ovg-h1 { font-size: clamp(2.3rem, 5.6vw, 3.9rem); line-height: 1.06; }
.ovg-h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
.ovg-lead { font-size: clamp(1rem,1.2vw,1.12rem); color: var(--muted); }
.ovg-micro { font-size: 13px; color: var(--muted); margin-top: var(--s2); }
.ovg-fine { font-size: 12px; color: var(--muted); margin-top: var(--s3); }
.ovg-note { margin-top: var(--s4); font-size: 14px; color: var(--muted); }

.ovg-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase;
  padding: 8px 15px; border-radius: 999px;
  color: var(--accent-deep); background: var(--accent-soft); border: 1px solid var(--accent-mid);
}
.ovg-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent-deep); }
.ovg-kicker {
  display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: var(--accent-deep); margin-bottom: var(--s3);
}

.ovg-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 54px; padding: 17px 34px; border-radius: 999px;
  font-size: 16px; font-weight: 600; border: 0; cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}
.ovg-btn--primary { background: var(--accent); color: #10210f; box-shadow: 0 10px 26px -14px rgba(20,116,45,.6); }
.ovg-btn--primary:hover { background: #6cf581; color: #10210f; transform: translateY(-2px); }
.ovg-btn--xl { min-height: 60px; padding: 20px 42px; font-size: 17px; }
.ovg-actions-center { text-align: center; }

/* ---- Hero ---- */
.ovg-hero {
  background: linear-gradient(180deg, #fff 0%, var(--paper) 100%);
  padding-block: clamp(32px,5vw,72px) clamp(40px,6vw,88px);
  border-bottom: 1px solid var(--hairline);
}
.ovg-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px,4vw,64px); align-items: center; }
.ovg-hero-copy > * + * { margin-top: var(--s4); }
.ovg-hero-copy .ovg-btn { margin-top: var(--s5); }
.ovg-hero-copy .ovg-micro { margin-top: var(--s2); }
.ovg-lead { max-width: 46ch; }
.ovg-hero-media { border-radius: 24px; overflow: hidden; aspect-ratio: 4/3; background: var(--stone); }
.ovg-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ovg-trust {
  display: flex; flex-wrap: wrap; gap: 10px var(--s5);
  margin-top: var(--s5) !important; padding-top: var(--s4);
  border-top: 1px solid var(--hairline);
}
.ovg-trust li { font-size: 13.5px; font-weight: 500; color: var(--charcoal); position: relative; padding-left: 18px; }
.ovg-trust li::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 8px; height: 8px; border-radius: 50%; background: var(--accent);
}

/* ---- Heads ---- */
.ovg-head { max-width: 60ch; margin-bottom: clamp(28px,4vw,48px); }
.ovg-head--center { margin-inline: auto; text-align: center; }
.ovg-head h2 + p { margin-top: var(--s3); }

/* ---- Signals ---- */
.ovg-signals { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 12px; }
.ovg-signals li {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 20px; min-height: 62px;
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 14px;
  font-size: 15px; line-height: 1.45;
  transition: border-color .25s ease, transform .25s ease;
}
.ovg-signals li::before {
  content: ""; width: 9px; height: 9px; border-radius: 50%; flex: none;
  background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft);
}
.ovg-signals li:hover { border-color: var(--accent-mid); transform: translateY(-2px); }

/* ---- Why / looks ---- */
.ovg-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,4vw,64px); align-items: start; }
.ovg-split .ovg-h2 { margin-bottom: var(--s3); }
.ovg-looks { display: grid; gap: var(--s3); }
.ovg-look { background: var(--card); border: 1px solid var(--hairline); border-radius: 16px; padding: var(--s4); }
.ovg-look h3 { font-size: 1.05rem; margin-bottom: 10px; }
.ovg-look p { font-size: 14.5px; color: var(--muted); }

/* ---- Steps ---- */
.ovg-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: var(--s3); }
.ovg-step { background: var(--paper); border: 1px solid var(--hairline); border-radius: 18px; padding: var(--s4); }
.ovg-step-n {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: var(--accent); color: #10210f; font-family: "Satoshi",sans-serif;
  font-weight: 700; font-size: 15px; margin-bottom: var(--s3);
}
.ovg-step h3 { font-size: 1.05rem; margin-bottom: 10px; }
.ovg-step p { font-size: 14.5px; color: var(--muted); }

/* ---- No subscription ---- */
.ovg-nosub {
  background: var(--ink); color: #fff; text-align: center;
  padding-block: clamp(48px,6vw,92px);
  position: relative; overflow: hidden; isolation: isolate;
}
.ovg-nosub::before {
  content: ""; position: absolute; inset: -40% -10% auto -10%; height: 150%; z-index: -1;
  background: radial-gradient(45% 55% at 50% 0%, rgba(123,251,142,.26) 0%, transparent 66%);
}
.ovg-nosub-kicker { font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.ovg-nosub-head {
  font-family: "Satoshi","Inter",sans-serif; font-weight: 700;
  font-size: clamp(2rem,6vw,3.6rem); line-height: 1.06; letter-spacing: -.032em;
  color: var(--accent); margin-top: var(--s4);
}
.ovg-nosub-sub { margin: var(--s4) auto 0; max-width: 52ch; color: rgba(255,255,255,.72); }
.ovg-nosub-points { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; margin-top: var(--s6); }
.ovg-nosub-points li {
  border: 1px solid var(--hairline-lt); border-radius: 999px;
  padding: 11px 18px; font-size: 13.5px; color: rgba(255,255,255,.9);
}

/* ---- Your journey ---- */
.ovg-section--ink { background: var(--ink); color: rgba(255,255,255,.75); }
.ovg-section--ink :where(h2,h3) { color: #fff; }
.ovg-section--ink .ovg-lead { color: rgba(255,255,255,.6); }
.ovg-kicker--light { color: var(--accent); }

.ovg-journey { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.ovg-jcard {
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  border-radius: 18px;
  padding: var(--s4);
  transition: border-color .3s ease, background .3s ease, transform .3s ease;
}
.ovg-jcard:hover {
  border-color: rgba(123,251,142,.35);
  background: rgba(255,255,255,.06);
  transform: translateY(-3px);
}
.ovg-jweek {
  display: inline-block;
  font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent);
}
.ovg-jcard h3 { font-size: 1.2rem; margin-top: 10px; }
.ovg-jcard p { font-size: 14.5px; line-height: 1.7; color: rgba(255,255,255,.55); margin-top: 12px; }
.ovg-jpill {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: var(--s3); padding: 10px 16px;
  border-radius: 12px; background: rgba(123,251,142,.10);
  font-size: 12.5px; font-weight: 600; color: var(--accent);
  line-height: 1.35;
}
.ovg-jnote {
  margin-top: var(--s5);
  max-width: 70ch;
  font-size: 13px;
  line-height: 1.7;
  color: rgba(255,255,255,.42);
}

@media (max-width: 767px) {
  .ovg-journey { grid-template-columns: 1fr; }
  .ovg-jcard { padding: var(--s3); }
}

/* ---- What's included ---- */
.ovg-incl { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: var(--s3); }
.ovg-incl-item {
  background: var(--paper); border: 1px solid var(--hairline);
  border-left: 3px solid var(--accent); border-radius: 0 16px 16px 0;
  padding: var(--s4);
}
.ovg-incl-item h3 { font-size: 1.05rem; margin-bottom: 10px; }
.ovg-incl-item p { font-size: 14.5px; color: var(--muted); }

/* ---- Calendar / booking wizard ----
   The embed is cross-origin, so its typography can't be touched directly.
   Instead the whole frame is rendered wider than the slot and scaled down:
   text gets smaller and the block gets proportionally shorter in one move.
   Keep width and height in step with the scale factor —
   width = 100 / scale, visible height = iframe height * scale. */
.ovg-cal {
  position: relative;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: 20px;
  overflow: hidden;
  height: 1230px;            /* 1640 * 0.75 */
}
.ovg-cal-iframe {
  display: block;
  width: 133.334%;           /* 100 / 0.75 */
  height: 1640px;
  border: 0;
  overflow: hidden;
  transform: scale(0.75);
  transform-origin: 0 0;
}
.ovg-cal-note {
  margin-top: var(--s3);
  text-align: center;
  font-size: 13px;
  color: var(--muted);
}
.ovg-cal-note a { color: var(--accent-deep); text-decoration: underline; }

/* ---- FAQ ---- */
.ovg-faq { border-top: 1px solid var(--hairline); }
.ovg-faq-item { border-bottom: 1px solid var(--hairline); }
.ovg-faq-q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  background: none; border: 0; padding-block: var(--s4); min-height: 60px; cursor: pointer; text-align: left;
  font-family: "Satoshi","Inter",sans-serif; font-weight: 700; font-size: clamp(1rem,1.4vw,1.14rem);
  letter-spacing: -.02em; color: var(--ink);
}
.ovg-faq-sign {
  flex: none; width: 32px; height: 32px; display: grid; place-items: center;
  border-radius: 50%; border: 1px solid var(--hairline); font-size: 18px; font-weight: 400;
  transition: transform .3s ease, background .3s ease;
}
.ovg-faq-q[aria-expanded="true"] .ovg-faq-sign { transform: rotate(135deg); background: var(--accent); border-color: transparent; }
.ovg-faq-a { padding-bottom: var(--s4); max-width: 70ch; font-size: 15px; line-height: 1.75; color: var(--muted); }

/* ---- Final ---- */
.ovg-final-wrap { background: var(--paper); padding-block: 0 var(--section-y); }
.ovg-final {
  border-radius: 28px; text-align: center; padding: clamp(36px,5vw,72px) clamp(20px,4vw,56px);
  background: radial-gradient(60% 80% at 50% 110%, rgba(123,251,142,.4) 0%, transparent 65%), linear-gradient(160deg,#eef4fd,#fff);
  border: 1px solid var(--hairline);
}
.ovg-final-h { font-size: clamp(1.9rem,4.6vw,3rem); margin-top: var(--s3); }
.ovg-final > p { margin: var(--s3) auto var(--s5); max-width: 46ch; color: var(--muted); }

/* ---- Sticky ---- */
.ovg-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; display: none;
  align-items: center; justify-content: space-between; gap: var(--s2);
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,.95); backdrop-filter: blur(12px);
  border-top: 1px solid var(--hairline);
}
.ovg-sticky-label { font-size: 12px; color: var(--muted); line-height: 1.3; }
.ovg-sticky-label strong { display: block; color: var(--ink); font-size: 14px; font-weight: 600; }
.ovg-sticky .ovg-btn { min-height: 44px; padding: 12px 22px; font-size: 15px; }

/* ---- Reveal ---- */
.ovg-reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.ovg-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .ovg *, .ovg *::before { transition: none !important; animation: none !important; }
  .ovg-reveal { opacity: 1 !important; transform: none !important; }
}

/* ---- Responsive ---- */
@media (max-width: 1200px) {
  .ovg-hero-grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 660px); }
  .ovg-hero .ovg-h1 { max-width: 18ch; }
  .ovg-hero .ovg-lead,
  .ovg-hero .ovg-micro,
  .ovg-hero .ovg-trust { max-width: none; }
}

@media (max-width: 991px) {
  .ovg-hero-grid, .ovg-split { grid-template-columns: 1fr; }
  .ovg-hero-media { order: -1; }
  .ovg-lead { max-width: none; }
  .ovg-hero-copy { max-width: none; }
  .ovg-hero .ovg-h1 { max-width: none; }
  .ovg-hero .ovg-lead,
  .ovg-hero .ovg-micro,
  .ovg-hero .ovg-trust { max-width: none; }
  .ovg-hbook { max-width: 800px; margin-inline: auto; }
}

@media (max-width: 767px) {
  .ovg { --section-y: 44px; --s3: 16px; --s4: 22px; --s5: 32px; --s6: 44px; padding-bottom: 80px; }
  .ovg-sticky { display: flex; }

  /* Hero */
  .ovg-hero { padding-block: 24px 28px; }
  .ovg-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .ovg-hero-copy { max-width: none; }
  .ovg-hero-copy > * + * { margin-top: 14px; }
  .ovg-hero .ovg-h1 { font-size: clamp(2.1rem, 9.4vw, 3rem); line-height: 1.04; }
  .ovg-hero .ovg-lead { font-size: 15px; }
  .ovg-hero .ovg-trust { gap: 8px 20px; margin-top: 20px !important; padding-top: 16px; }
  .ovg-trust li { font-size: 12.5px; padding-left: 16px; }
  .ovg-hbook { border-radius: 14px; }
  .ovg-hbook-banner { padding: 14px 16px; }
  .ovg-hbook-banner strong { font-size: 1rem; }
  .ovg-hbook-banner span { font-size: 12px; }
  .ovg-hbook-frame { height: auto; }
  .ovg-hbook-iframe { width: 100%; height: 820px; transform: none; }

  /* Section heads */
  .ovg-head { margin-bottom: 24px; }
  .ovg-h2 { font-size: clamp(1.5rem, 6.6vw, 1.95rem); line-height: 1.16; }
  .ovg-lead { font-size: 15px; }
  .ovg-kicker { margin-bottom: 12px; font-size: 10.5px; letter-spacing: .13em; }

  /* Recognising the signs */
  .ovg-signals { gap: 10px; }
  .ovg-signals li { font-size: 14.5px; padding: 14px 16px; min-height: 54px; gap: 10px; }
  .ovg-note { margin-top: 20px; font-size: 13.5px; }

  /* The thinking */
  .ovg-split { gap: 26px; }
  .ovg-looks { gap: 12px; }
  .ovg-look { padding: 18px; border-radius: 14px; }
  .ovg-look h3 { font-size: 1rem; margin-bottom: 8px; }
  .ovg-look p { font-size: 14px; }

  /* Your journey */
  .ovg-journey { grid-template-columns: 1fr; gap: 12px; }
  .ovg-jcard { padding: 18px; border-radius: 14px; }
  .ovg-jcard h3 { font-size: 1.08rem; margin-top: 8px; }
  .ovg-jcard p { font-size: 14px; margin-top: 10px; }
  .ovg-jpill { margin-top: 14px; padding: 9px 13px; font-size: 12px; }
  .ovg-jnote { margin-top: 24px; font-size: 12.5px; }

  /* What you get */
  .ovg-incl { gap: 12px; }
  .ovg-incl-item { padding: 18px; }
  .ovg-incl-item h3 { font-size: 1rem; margin-bottom: 8px; }
  .ovg-incl-item p { font-size: 14px; }

  /* Steps */
  .ovg-steps { gap: 12px; }
  .ovg-step { padding: 20px; border-radius: 14px; }
  .ovg-step-n { width: 34px; height: 34px; font-size: 14px; margin-bottom: 14px; }
  .ovg-step h3 { font-size: 1rem; }
  .ovg-step p { font-size: 14px; }

  /* Booking wizard */
  .ovg-cal {
    border-radius: 14px;
    height: 1400px;          /* 1750 * 0.80 */
  }
  .ovg-cal-iframe {
    width: 125%;             /* 100 / 0.80 */
    height: 1750px;
    transform: scale(0.80);
  }
  .ovg-cal-note { font-size: 12.5px; margin-top: 14px; }

  /* FAQ */
  .ovg-faq-q { padding-block: 18px; min-height: 56px; font-size: 1rem; gap: 14px; }
  .ovg-faq-sign { width: 28px; height: 28px; font-size: 16px; }
  .ovg-faq-a { font-size: 14.5px; padding-bottom: 18px; }

  /* Final CTA */
  .ovg-final { border-radius: 18px; padding: 30px 20px; }
  .ovg-final-h { font-size: clamp(1.6rem, 7vw, 2.1rem); }
  .ovg-final > p { margin-block: 16px 26px; font-size: 15px; }
  .ovg-final .ovg-btn { width: 100%; }
  .ovg-btn--xl { min-height: 54px; padding: 17px 28px; font-size: 16px; }
  .ovg-fine { font-size: 11.5px; }

  .ovg-sticky .ovg-btn { width: auto; }
}

@media (max-width: 400px) {
  .ovg { --section-y: 38px; }
  .ovg-wrap { padding-inline: 15px; }
  .ovg-h1 { font-size: 1.8rem; }
  .ovg-h2 { font-size: 1.42rem; }
  .ovg-signals li { font-size: 13.5px; padding: 12px 14px; }
}
