/* =========================================================================
   Realix Base — Homepage
   Mobile-first. Desktop composition matches the approved 1440 artboard
   exactly at >=1440; everything below is a deliberate reflow, not a squeeze.

   Every colour resolves from theme.json first and falls back to a literal so
   this sheet also renders standalone in /preview for visual regression.
   ========================================================================= */

:root {
  --rx-ink:        var(--wp--preset--color--ink, #0A1620);
  --rx-ink-2:      #12283A;
  --rx-ink-3:      #16283A;
  --rx-rule-dark:  #1f3340;
  --rx-teal-deep:  var(--wp--preset--color--teal-deep, #006D77);
  --rx-teal:       var(--wp--preset--color--teal, #00AFC1);
  --rx-cyan:       var(--wp--preset--color--cyan, #00E5F2);
  --rx-cyan-light: var(--wp--preset--color--cyan-light, #BFF6F7);
  --rx-cool-gray:  var(--wp--preset--color--cool-gray, #E7EEF2);
  --rx-slate:      var(--wp--preset--color--slate, #6B7280);
  --rx-surface:    var(--wp--preset--color--surface, #FAFDFF);
  --rx-white:      var(--wp--preset--color--white, #FFF);
  --rx-alert:      var(--wp--preset--color--alert, #B91C1C);
  --rx-alert-dark: #8E1414;
  --rx-alert-lite: #ffd9d9;
  --rx-hairline:   #DCE7EC;
  --rx-on-dark:    #CFEDF1;
  --rx-on-dark-2:  #8dc3ce;
  --rx-whatsapp:   #25A85B;
  --rx-star:       var(--wp--preset--color--rating, #B07A08); /* 3.73:1 on white: rating stars are meaningful graphics (WCAG 1.4.11). The old gold was 2.09:1. */

  /* Gutter ramps to the artboard's 64px only once there is room for it. */
  --rx-gutter: 20px;
  --rx-max: 1312px;
  --rx-radius: 16px;
  --rx-radius-lg: 20px;
  --rx-tap: 44px;
}

@media (min-width: 640px)  {

 :root { --rx-gutter: 32px; } }

@media (min-width: 1024px) {

 :root { --rx-gutter: 48px; } }

@media (min-width: 1280px) {

 :root { --rx-gutter: 64px; } }

/* ---------- primitives ---------- */

.rx-shell { width: 100%; max-width: calc(var(--rx-max) + var(--rx-gutter) * 2);
  margin-inline: auto; padding-inline: var(--rx-gutter); box-sizing: border-box; }

.rx-section { position: relative; overflow: hidden; }

.rx-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 0.17em;
  text-transform: uppercase; color: var(--rx-teal-deep); margin: 0; }

.rx-eyebrow--on-dark { color: var(--rx-cyan); }

.dv { font-family: "Noto Sans Devanagari", Montserrat, system-ui, sans-serif; }

/* A soft off-canvas light. Replaces the pattern fills entirely: nothing sits
   behind body text except flat colour, a photo under a scrim, or this. */
.rx-glow { position: absolute; border-radius: 50%; pointer-events: none; }

/* Reset lives in the base rule so the --ghost / --outline / --on-dark variants,
   declared after it at equal specificity, win. It used to sit at the end of the
   file and silently removed every variant border. */

.rx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--rx-tap); padding: 0 24px; border-radius: 10px; text-decoration: none;
  font-size: 16px; font-weight: 600; line-height: 1; box-sizing: border-box;
  transition: background-color 200ms cubic-bezier(.2,0,0,1), color 200ms cubic-bezier(.2,0,0,1); border: 0; appearance: none; -webkit-appearance: none;
  font-family: inherit; cursor: pointer; }

.rx-btn:focus-visible { outline: 3px solid var(--rx-cyan); outline-offset: 2px; }

.rx-btn--primary { background: var(--rx-teal-deep); color: var(--rx-white); }

.rx-btn--primary:hover { background: var(--rx-ink); color: var(--rx-white); }

.rx-btn--cyan { background: var(--rx-cyan); color: var(--rx-ink); font-weight: 700;
  box-shadow: 0 14px 34px -10px rgba(0,229,242,.55); }

.rx-btn--cyan:hover { background: var(--rx-cyan-light); color: var(--rx-ink); }

.rx-btn--ghost { border: 2px solid var(--rx-cool-gray); color: var(--rx-ink); background: var(--rx-white); }

.rx-btn--ghost:hover { border-color: var(--rx-teal-deep); color: var(--rx-teal-deep); }

.rx-btn--on-dark { border: 2px solid rgba(191,246,247,.38); color: var(--rx-white);
  background: rgba(10,22,32,.35); backdrop-filter: blur(6px); }

.rx-btn--on-dark:hover { background: rgba(191,246,247,.14); }

.rx-btn--outline { border: 2px solid var(--rx-teal-deep); color: var(--rx-teal-deep); background: transparent; }

.rx-btn--outline:hover { background: var(--rx-teal-deep); color: var(--rx-white); }

.rx-btn--lg { min-height: 58px; padding: 0 28px; }

.rx-icon { flex: none; display: block; }

/* =========================================================================
   1. EMERGENCY BAR  — above the navigation, whole bar is one tel: target
   ========================================================================= */

.rx-emergency-bar { background: linear-gradient(90deg, #8E1414 0%, #B91C1C 55%, #8E1414 100%); }

.rx-emergency-bar__inner { display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 46px; padding-block: 6px; }

.rx-emergency-bar__call { display: flex; align-items: center; gap: 14px; text-decoration: none;
  color: var(--rx-white); min-height: var(--rx-tap); }

.rx-emergency-bar__call:focus-visible { outline: 2px solid var(--rx-white); outline-offset: 2px; }

.rx-emergency-bar__label { display: flex; align-items: center; gap: 9px; }

.rx-emergency-bar__label span { font-size: 13px; font-weight: 700; letter-spacing: .02em; }

.rx-pulse { width: 7px; height: 7px; border-radius: 50%; background: #fff; flex: none;
  box-shadow: 0 0 0 4px rgba(255,255,255,.26); }

.rx-emergency-bar__num { display: flex; align-items: center; gap: 8px; font-size: 15px;
  font-weight: 700; letter-spacing: .01em; }

.rx-emergency-bar__rule { width: 1px; height: 16px; background: rgba(255,255,255,.34); flex: none; }

.rx-emergency-bar__meta { display: flex; align-items: center; gap: 18px; }

.rx-emergency-bar__note { font-size: 12px; font-weight: 500; color: var(--rx-alert-lite); }

a.rx-emergency-bar__note { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--10, 0.25rem);
  min-height: var(--wp--preset--spacing--50, 1.5rem); text-decoration: none;
  text-underline-offset: var(--wp--custom--stroke--focus, 3px); }

a.rx-emergency-bar__note:hover, a.rx-emergency-bar__note:focus-visible { color: var(--rx-white); text-decoration: underline; }

.rx-lang { display: flex; align-items: center; gap: 2px; background: rgba(0,0,0,.20);
  border-radius: 999px; padding: 3px; }

.rx-lang a { font-size: 11px; font-weight: 600; color: var(--rx-alert-lite);
  border-radius: 999px; text-decoration: none; line-height: 1; display: inline-flex; align-items: center; min-height: 22px; padding: 4px 11px; }

.rx-lang a[aria-current="true"] { color: var(--rx-alert-dark); background: #fff; font-weight: 700; }

@media (max-width: 1023px) {

 .rx-emergency-bar__note, a.rx-emergency-bar__note { display: none; } }

@media (max-width: 767px) {

 .rx-lightbox .rx-lightbox__prev, .rx-lightbox .rx-lightbox__next { top: auto; bottom: var(--wp--preset--spacing--40, 1rem); transform: none; }

  .rx-emergency-bar__label span, .rx-emergency-bar__rule { display: none; }

  .rx-emergency-bar__inner { justify-content: space-between; }

  .rx-emergency-bar__num { font-size: 15px; }
}

/* =========================================================================
   2. HEADER
   ========================================================================= */

.rx-header { background: var(--rx-white); border-bottom: 1px solid var(--rx-cool-gray);
  position: relative; z-index: 20; }

.rx-header__inner { display: flex; align-items: center; justify-content: space-between;
  gap: 24px; min-width: 0; min-height: 104px; }

.rx-logo { gap: 14px; display: flex; align-items: center; flex: 0 1 auto; min-width: 0; text-decoration: none; }

.rx-logo svg { width: 62px; height: 46px; flex: none; }

.rx-logo__name { display: block; font-size: 19px; font-weight: 700; letter-spacing: -0.015em;
  line-height: 1.1; color: var(--rx-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rx-logo__sub { display: block; font-size: 10px; font-weight: 600; letter-spacing: 0.16em;
  color: var(--rx-teal-deep); text-transform: uppercase; margin-top: 2px; }

.rx-nav { display: flex; align-items: center; gap: 30px; }

.rx-nav a { font-size: 15px; font-weight: 500; color: var(--rx-ink); text-decoration: none;
  padding: 10px 0; position: relative; }

.rx-nav a:hover, .rx-nav a[aria-current="page"] { color: var(--rx-teal-deep); }

/* Current section: colour alone is not enough (WCAG 1.4.1), so a bar too. */
.rx-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0;
  bottom: var(--wp--custom--stroke--hairline, 1px); height: var(--wp--custom--stroke--focus, 3px);
  border-radius: var(--wp--custom--radius--pill, 9999px); background: var(--rx-teal); }

.rx-header__cta { display: flex; align-items: center; gap: 12px; flex: none; min-width: 0; }

.rx-header__cta .rx-btn { min-height: 46px; font-size: 14px; }

.rx-burger { display: none; align-items: center; justify-content: center;
  width: var(--rx-tap); height: var(--rx-tap); border: 1px solid var(--rx-cool-gray);
  border-radius: 8px; background: var(--rx-white); cursor: pointer; }

@media (max-width: 1279px) {

 .rx-nav { gap: 20px; }

 .rx-nav a { font-size: 14px; } }

@media (max-width: 1099px) {

  .rx-nav { display: none; }

  .rx-burger { display: flex; }

  .rx-logo svg { width: 50px; height: 37px; }

  .rx-logo__name { font-size: 17px; }
}

@media (max-width: 599px) {

 .rx-reviews-bar .rx-btn { flex: 1 1 100%; justify-content: center; }

  .rx-header__cta .rx-btn--ghost { display: none; }

  .rx-logo__sub { font-size: 9px; letter-spacing: .12em; }
}

/* Disclosure nav — CSS only, no JS dependency for the markup to be valid. */
.rx-nav-panel { display: none; border-top: 1px solid var(--rx-cool-gray);
  background: var(--rx-white); padding-block: 8px 16px; }

.rx-nav-panel[data-open="true"] { display: block; }

.rx-nav-panel a { display: block; padding: 14px 0; font-size: 16px; font-weight: 500;
  color: var(--rx-ink); text-decoration: none; border-bottom: 1px solid var(--rx-cool-gray); }

.rx-nav-panel a[aria-current="page"] { color: var(--rx-teal-deep); font-weight: 700;
  box-shadow: inset var(--wp--custom--stroke--focus, 3px) 0 0 var(--rx-teal);
  padding-left: var(--wp--preset--spacing--30, 0.75rem); }

/* =========================================================================
   3. HERO
   Desktop: photo full-bleed, horizontal scrim dissolves ink into daylight.
   Mobile:  same photo, scrim rotates to vertical so the text keeps its bed.
   ========================================================================= */

.rx-hero { position: relative; overflow: hidden; background: var(--rx-ink); isolation: isolate; }

.rx-hero__media { position: absolute; inset: 0; z-index: 0; }

.rx-hero__media img { position: absolute; right: 0; top: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 58% 50%; display: block; }

.rx-hero__scrim, .rx-hero__fade-b, .rx-hero__fade-t { position: absolute; z-index: 1; pointer-events: none; }

.rx-hero__scrim { inset: 0; }

.rx-hero__fade-t { left: 0; right: 0; top: 0; height: 120px;
  background: linear-gradient(180deg, rgba(10,22,32,.45) 0%, rgba(10,22,32,0) 100%); }

.rx-hero__fade-b { left: 0; right: 0; bottom: 0; height: 260px;
  background: linear-gradient(180deg, rgba(10,22,32,0) 0%, rgba(10,22,32,.28) 55%, rgba(10,22,32,.62) 100%); }

.rx-hero__glow-a { z-index: 1; left: -200px; top: 20px; width: 820px; height: 680px;
  background: radial-gradient(circle, rgba(0,175,193,.22) 0%, rgba(0,175,193,.07) 45%, rgba(0,175,193,0) 70%); }

.rx-hero__glow-b { z-index: 1; left: 440px; bottom: -220px; width: 620px; height: 520px;
  background: radial-gradient(circle, rgba(0,229,242,.12) 0%, rgba(0,229,242,0) 68%); }

.rx-hero__rule { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; z-index: 3;
  background: linear-gradient(90deg, var(--rx-teal-deep) 0%, var(--rx-teal) 45%, var(--rx-cyan) 100%); }

.rx-hero__body { position: relative; z-index: 2; }

.rx-hero__copy { max-width: 716px; }

.rx-pill { display: inline-flex; align-items: center; gap: 9px; background: rgba(0,229,242,.10);
  border: 1px solid rgba(0,229,242,.32); border-radius: 999px; padding: 7px 15px;
  backdrop-filter: blur(6px); }

.rx-pill span:last-child { font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--rx-cyan-light); }

.rx-dot-live { width: 7px; height: 7px; border-radius: 50%; background: #34d399; flex: none;
  box-shadow: 0 0 0 3px rgba(52,211,153,.22); }

.rx-hero h1 { margin: 26px 0 0; font-weight: 700; letter-spacing: -0.032em; color: var(--rx-white);
  line-height: 1.04; font-size: clamp(34px, 4.6vw, 64px); text-shadow: 0 2px 28px rgba(10,22,32,.55); }

.rx-hero h1 em { font-style: normal; color: var(--rx-cyan); }

.rx-hero__mr { margin: 16px 0 0; font-size: clamp(16px, 1.5vw, 19px); color: var(--rx-on-dark-2); }

.rx-hero__lead { margin: 24px 0 0; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.62;
  color: var(--rx-on-dark); max-width: 45ch; }

.rx-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }

.rx-hero__trust { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 30px;
  margin-top: 48px; padding-top: 26px; border-top: 1px solid rgba(191,246,247,.18); margin-inline: 0; padding-inline: 0; }

.rx-hero__trust li { display: flex; align-items: center; gap: 10px; font-size: 13px;
  font-weight: 600; color: var(--rx-on-dark); list-style: none; }

.rx-hero__card { position: absolute; z-index: 3; right: var(--rx-gutter); bottom: 52px;
  background: rgba(255,255,255,.96); border-radius: var(--rx-radius); padding: 20px 26px;
  box-shadow: 0 26px 60px -18px rgba(0,0,0,.6); display: flex; align-items: center; gap: 18px;
  backdrop-filter: blur(10px); }

.rx-hero__card-ico { width: 48px; height: 48px; border-radius: 13px; flex: none;
  background: linear-gradient(135deg, var(--rx-teal-deep), var(--rx-teal));
  display: flex; align-items: center; justify-content: center; }

.rx-hero__card b { display: block; font-size: 15px; font-weight: 700; line-height: 1.2; color: var(--rx-ink); }

.rx-hero__card > span:not(.rx-hero__card-ico) span { display: block; font-size: 13px; color: #55636B; margin-top: 3px; }

/* --- desktop composition: the artboard --- */
@media (min-width: 1100px) {

  .rx-hero { min-height: 724px; display: flex; align-items: center; }

  .rx-hero__media img { width: 66.67%; }          /* 960 of 1440 */
  .rx-hero__scrim { background: linear-gradient(90deg,
      #0A1620 0%, #0A1620 32%, rgba(10,22,32,.97) 42%, rgba(10,22,32,.86) 52%,
      rgba(10,22,32,.60) 64%, rgba(10,22,32,.28) 78%, rgba(10,22,32,.08) 92%, rgba(10,22,32,0) 100%); }

  .rx-hero__body { width: 100%; padding-block: 86px 0; }
}

/* --- tablet: photo still lateral but the scrim closes up --- */
@media (min-width: 768px) and (max-width: 1099px) {

  .rx-hero { min-height: 620px; display: flex; align-items: center; }

  .rx-hero__media img { width: 72%; }

  .rx-hero__scrim { background: linear-gradient(90deg,
      #0A1620 0%, #0A1620 40%, rgba(10,22,32,.94) 56%, rgba(10,22,32,.70) 74%, rgba(10,22,32,.34) 100%); }

  .rx-hero__body { width: 100%; padding-block: 56px 40px; }

  .rx-hero__copy { max-width: 560px; }

  .rx-hero__card { position: static; margin-top: 32px; width: fit-content; }

  .rx-hero__glow-b { display: none; }
}

/* --- phone: scrim rotates, card joins the flow --- */
@media (max-width: 767px) {

  .rx-hero__media img { width: 100%; object-position: 62% 46%; }

  .rx-hero__scrim { background: linear-gradient(180deg,
      rgba(10,22,32,.72) 0%, rgba(10,22,32,.80) 26%, rgba(10,22,32,.93) 52%, #0A1620 74%, #0A1620 100%); }

  .rx-hero__fade-t, .rx-hero__fade-b, .rx-hero__glow-b { display: none; }

  .rx-hero__glow-a { left: -40%; top: -10%; width: 140%; height: 60%; }

  .rx-hero__body { padding-block: 40px 44px; }

  .rx-hero h1 { margin-top: 20px; }

  .rx-hero__cta { margin-top: 28px; }

  .rx-hero__cta .rx-btn { width: 100%; }

  .rx-hero__trust { margin-top: 32px; gap: 14px; flex-direction: column; align-items: flex-start; }

  .rx-hero__card { position: static; margin-top: 28px; padding: 16px 18px; }
}

/* =========================================================================
   4. CREDENTIAL STRIP
   ========================================================================= */

.rx-creds { background: var(--rx-white); border-bottom: 1px solid var(--rx-cool-gray); }

.rx-creds__grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr));
  min-height: 108px; align-items: center; }

.rx-creds__item { display: flex; align-items: center; gap: 13px; padding: 18px 26px; }

.rx-creds__item + .rx-creds__item { border-left: 1px solid var(--rx-cool-gray); }

.rx-creds__item:first-child { padding-left: 0; }

.rx-creds__item:last-child { padding-right: 0; }

.rx-creds__item b { display: block; font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--rx-ink); }

.rx-creds__item span { display: block; font-weight: 400; color: var(--rx-slate); font-size: 13px; }

@media (max-width: 1099px) {

  .rx-creds__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }

  .rx-creds__item { padding: 18px 20px; }

  .rx-creds__item:nth-child(3n+1) { border-left: 0; padding-left: 0; }

  .rx-creds__item:nth-child(n+4) { border-top: 1px solid var(--rx-cool-gray); }
}

@media (max-width: 719px) {

  .rx-creds__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }

  .rx-creds__item:nth-child(3n+1) { border-left: 1px solid var(--rx-cool-gray); padding-left: 20px; }

  .rx-creds__item:nth-child(odd) { border-left: 0; padding-left: 0; }

  .rx-creds__item:nth-child(n+3) { border-top: 1px solid var(--rx-cool-gray); }

  .rx-creds__item { padding: 16px 14px; }
}

@media (max-width: 400px) {

  .rx-creds__grid { grid-template-columns: 1fr; }

  .rx-creds__item, .rx-creds__item:nth-child(odd), .rx-creds__item:nth-child(3n+1) {
    border-left: 0; padding-left: 0; padding-right: 0; }

  .rx-creds__item + .rx-creds__item { border-top: 1px solid var(--rx-cool-gray); }
}

/* =========================================================================
   5. STAT BAND
   ========================================================================= */

.rx-stats { background: linear-gradient(180deg, #FFF 0%, #EDF4F7 60%, var(--rx-cool-gray) 100%);
  border-bottom: 1px solid var(--rx-hairline); }

.rx-stats .rx-glow { right: -120px; top: -180px; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(0,175,193,.10) 0%, rgba(0,175,193,0) 70%); }

.rx-stats__grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 40px; min-height: 196px; align-items: center; padding-block: 36px; }

.rx-stats__item + .rx-stats__item { border-left: 1px solid #D6E3E9; padding-left: 40px; }

.rx-stats__n { font-size: clamp(38px, 4vw, 54px); font-weight: 700; letter-spacing: -0.035em;
  line-height: 1; color: var(--rx-ink); }

.rx-stats__n i { font-style: normal; color: var(--rx-teal); }

.rx-stats__l { font-size: 14px; font-weight: 600; color: var(--rx-teal-deep); margin-top: 10px; }

@media (max-width: 899px) {

  .rx-stats__grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px 24px; }

  .rx-stats__item + .rx-stats__item { border-left: 0; padding-left: 0; }

  .rx-stats__item:nth-child(even) { border-left: 1px solid #D6E3E9; padding-left: 24px; }
}

@media (max-width: 380px) {

  .rx-stats__grid { grid-template-columns: 1fr; }

  .rx-stats__item:nth-child(even) { border-left: 0; padding-left: 0; }
}

/* =========================================================================
   6. SECTION HEADS (shared)
   ========================================================================= */

.rx-head { display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }

.rx-head h2 { margin: 12px 0 0; font-size: clamp(26px, 3vw, 40px); font-weight: 700;
  letter-spacing: -0.025em; line-height: 1.12; color: var(--rx-ink); }

.rx-head p { margin: 14px 0 0; font-size: clamp(15px, 1.3vw, 16px); line-height: 1.6;
  color: var(--rx-slate); max-width: 58ch; }

@media (max-width: 719px) {

 .rx-head { margin-bottom: 28px; }

 .rx-head .rx-btn { width: 100%; } }

/* =========================================================================
   7. SPECIALITIES
   ========================================================================= */

.rx-specialities { background: var(--rx-surface); padding-block: clamp(48px, 6vw, 84px); }

.rx-spec-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }

.rx-spec { background: var(--rx-white); border: 1px solid var(--rx-cool-gray);
  border-radius: var(--rx-radius); padding: 24px 22px 26px; text-decoration: none; display: block;
  transition: border-color 200ms, box-shadow 200ms, transform 200ms; }

.rx-spec:hover { border-color: var(--rx-teal); transform: translateY(-2px);
  box-shadow: 0 12px 28px -6px rgba(10,22,32,.12); }

.rx-spec__ico { width: 46px; height: 46px; border-radius: 12px; background: var(--rx-cool-gray);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }

.rx-spec h3 { margin: 0; font-size: 17px; font-weight: 700; color: var(--rx-teal-deep); line-height: 1.25; }

.rx-spec p { margin: 8px 0 0; font-size: 13px; line-height: 1.5; color: var(--rx-slate); }

.rx-spec__badge { display: inline-block; margin-top: 12px; font-size: 10px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--rx-teal-deep);
  background: var(--rx-cool-gray); border-radius: 999px; padding: 4px 10px; }

.rx-spec--dark { background: var(--rx-ink); border-color: var(--rx-ink); }

.rx-spec--dark .rx-spec__ico { background: rgba(0,229,242,.14); }

.rx-spec--dark h3 { color: var(--rx-white); }

.rx-spec--dark p { color: var(--rx-cyan-light); }

.rx-spec--dark:hover { border-color: var(--rx-cyan); }

@media (max-width: 1099px) {

 .rx-spec-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }

@media (max-width: 767px)  {

 .rx-spec-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }

  .rx-spec { padding: 18px 16px 20px; }

 .rx-spec__ico { width: 40px; height: 40px; margin-bottom: 14px; }

  .rx-spec h3 { font-size: 15px; } }

@media (max-width: 400px)  {

 .rx-spec-grid { grid-template-columns: 1fr; } }

/* =========================================================================
   8. CARE PROMISE
   ========================================================================= */

.rx-promise { background: var(--rx-ink); padding-block: clamp(48px, 5vw, 72px); }

.rx-promise .rx-glow--a { right: -160px; top: -220px; width: 680px; height: 680px;
  background: radial-gradient(circle, rgba(0,175,193,.20) 0%, rgba(0,175,193,0) 68%); }

.rx-promise .rx-glow--b { left: 120px; bottom: -300px; width: 620px; height: 620px;
  background: radial-gradient(circle, rgba(0,109,119,.34) 0%, rgba(0,109,119,0) 70%); }

.rx-promise__top-rule { position: absolute; left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg, rgba(0,229,242,0) 0%, rgba(0,229,242,.45) 35%,
    rgba(0,229,242,.45) 65%, rgba(0,229,242,0) 100%); }

.rx-promise__grid { position: relative; display: grid; grid-template-columns: 360px 1fr;
  gap: 72px; align-items: start; }

.rx-promise h2 { margin: 14px 0 0; font-size: clamp(24px, 2.8vw, 36px); font-weight: 700;
  letter-spacing: -0.025em; line-height: 1.16; color: var(--rx-white); }

.rx-promise__mr { margin: 10px 0 0; font-size: 16px; color: var(--rx-on-dark-2); }

.rx-pillars { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 40px; }

.rx-pillar__ico { width: 52px; height: 52px; border-radius: 14px; background: rgba(0,229,242,.12);
  border: 1px solid rgba(0,229,242,.28); display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px; }

.rx-pillar h3 { margin: 0; font-size: 19px; font-weight: 600; color: var(--rx-white); }

.rx-pillar p { margin: 10px 0 0; font-size: 15px; line-height: 1.65; color: var(--rx-cyan-light); }

@media (max-width: 1099px) {

 .rx-promise__grid { grid-template-columns: 1fr; gap: 40px; }

  .rx-pillars { gap: 28px; } }

@media (max-width: 767px) {

 .rx-pillars { grid-template-columns: 1fr; gap: 26px; }

  .rx-pillar__ico { width: 44px; height: 44px; margin-bottom: 14px; } }

/* =========================================================================
   9. TARIFF
   ========================================================================= */

.rx-tariff { background: var(--rx-surface); padding-block: clamp(48px, 6vw, 88px); }

.rx-tariff__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }

.rx-tariff h2 { margin: 14px 0 0; font-size: clamp(28px, 3.4vw, 44px); font-weight: 700;
  letter-spacing: -0.03em; line-height: 1.1; color: var(--rx-ink); }

.rx-tariff h2 + h2 { margin-top: 0; color: var(--rx-teal-deep); }

.rx-tariff__lead { margin: 22px 0 0; font-size: 16px; line-height: 1.7; color: var(--rx-ink); max-width: 46ch; }

.rx-note { display: flex; align-items: flex-start; gap: 10px; margin-top: 26px; padding: 14px 18px;
  background: var(--rx-cool-gray); border-radius: 10px; width: fit-content;
  font-size: 14px; font-weight: 600; color: var(--rx-ink); }

.rx-card-dark { background: linear-gradient(158deg, var(--rx-ink-2) 0%, #0C1B27 48%, var(--rx-ink) 100%);
  border-radius: var(--rx-radius-lg); padding: 40px; position: relative; overflow: hidden;
  box-shadow: 0 30px 70px -26px rgba(10,22,32,.55); }

.rx-card-dark .rx-glow { right: -130px; top: -150px; width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(0,229,242,.20) 0%, rgba(0,229,242,0) 68%); }

.rx-card-dark__rule { position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, rgba(0,229,242,0) 0%, rgba(0,229,242,.7) 50%, rgba(0,229,242,0) 100%); }

.rx-card-dark__in { position: relative; }

.rx-rate { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 17px 0; border-bottom: 1px solid var(--rx-ink-3); }

.rx-rate:last-of-type { border-bottom: 0; }

.rx-rate__h { padding-bottom: 16px; border-bottom: 1px solid var(--rx-rule-dark); margin-bottom: 6px;
  align-items: baseline; }

.rx-rate__h span, .rx-rate__h b { font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--rx-on-dark-2); }

.rx-rate__name { font-size: 16px; font-weight: 600; color: var(--rx-white);
  display: flex; align-items: center; gap: 10px; }

.rx-rate__vals { display: flex; gap: 52px; flex: none; }

.rx-rate__vals > * { width: 96px; text-align: right; font-size: 16px; font-weight: 700; color: var(--rx-white); }

.rx-rate__vals > *:last-child { color: var(--rx-cyan-light); }

.rx-rate--icu .rx-rate__name, .rx-rate--icu .rx-rate__vals > * { color: var(--rx-cyan); }

.rx-tariff__foot { display: flex; align-items: center; justify-content: space-between; gap: 20px;
  flex-wrap: wrap; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--rx-rule-dark); }

.rx-tariff__foot p { margin: 0; font-size: 13px; color: var(--rx-on-dark-2); line-height: 1.5; }

@media (max-width: 1099px) {

 .rx-tariff__grid { grid-template-columns: 1fr; gap: 40px; } }

@media (max-width: 767px) {

  .rx-card-dark { padding: 24px 20px; }

  .rx-rate__vals { gap: 16px; }

  .rx-rate__vals > * { width: auto; min-width: 72px; font-size: 15px; }

  .rx-rate__name { font-size: 15px; }

  .rx-rate__h span, .rx-rate__h b { font-size: 10px; letter-spacing: .08em; }

  .rx-note { width: auto; }

  .rx-tariff__foot .rx-btn { width: 100%; }
}

@media (max-width: 400px) {

  .rx-rate { flex-wrap: wrap; gap: 6px; }

  .rx-rate__vals { width: 100%; justify-content: space-between; }

  .rx-rate__vals > * { text-align: left; }

  .rx-rate__vals > *:last-child { text-align: right; }
}

/* =========================================================================
   10. INSURANCE
   ========================================================================= */

.rx-insurance { background: var(--rx-white); border-block: 1px solid var(--rx-cool-gray);
  padding-block: clamp(40px, 4vw, 60px); }

.rx-insurance__row { display: flex; align-items: center; justify-content: space-between; gap: 64px; }

.rx-insurance__intro { flex: none; width: 400px; }

.rx-insurance__intro h2 { margin: 12px 0 0; font-size: clamp(22px, 2.4vw, 30px); font-weight: 700;
  letter-spacing: -0.02em; line-height: 1.15; }

.rx-insurance__list { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; flex: 1; }

.rx-ins { display: flex; flex-direction: column; gap: 10px; }

.rx-ins b { font-size: 15px; font-weight: 700; color: var(--rx-ink); }

.rx-ins span { font-size: 13px; line-height: 1.5; color: var(--rx-slate); }

@media (max-width: 1099px) {

 .rx-insurance__row { flex-direction: column; align-items: flex-start; gap: 32px; }

  .rx-insurance__intro { width: auto; }

 .rx-insurance__list { width: 100%; grid-template-columns: repeat(2, minmax(0,1fr)); } }

@media (max-width: 480px) {

 .rx-insurance__list { grid-template-columns: 1fr; gap: 20px; } }

/* =========================================================================
   11. CONSULTANTS
   ========================================================================= */

.rx-consultants { background: var(--rx-surface); padding-block: clamp(48px, 6vw, 84px); }

.rx-doc-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }

.rx-doc { background: var(--rx-white); border: 1px solid var(--rx-cool-gray);
  border-radius: var(--rx-radius); overflow: hidden; text-decoration: none; display: block;
  transition: border-color 200ms, box-shadow 200ms; }

.rx-doc:hover { border-color: var(--rx-teal); box-shadow: 0 12px 28px -6px rgba(10,22,32,.12); }

.rx-doc__top { position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--rx-teal-deep), var(--rx-cyan));
  display: flex; align-items: center; justify-content: center; height: 260px; }

.rx-doc__top::after { content: ""; position: absolute; inset: 0;
  background: radial-gradient(130% 150% at 18% 0%, rgba(255,255,255,.30) 0%,
    rgba(255,255,255,.06) 45%, rgba(255,255,255,0) 72%); }

/* Ink fill, computed: white initials reach 3.74:1 even over the cyan end of the
   gradient (large text needs 3:1). The old 18% white fill measured 2.40:1. */
.rx-doc__mono { position: relative; z-index: 1; width: 78px; height: 78px; border-radius: 50%;
  background: color-mix(in srgb, var(--rx-ink) 40%, transparent); border: 2px solid rgba(255,255,255,.5);
  display: flex; align-items: center; justify-content: center; font-size: 25px; font-weight: 700;
  color: #fff; letter-spacing: .03em; }

.rx-doc__top img { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 30%; }

.rx-doc__body { padding: 22px 22px 24px; }

.rx-doc h2, .rx-doc h3 { margin: 0; font-size: 18px; font-weight: 700; color: var(--rx-ink); }

.rx-doc p { margin: 6px 0 0; font-size: 13px; color: var(--rx-slate); }

.rx-doc__tag { display: inline-block; margin-top: 14px; font-size: 11px; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase; color: var(--rx-teal-deep);
  background: var(--rx-cool-gray); border-radius: 999px; padding: 5px 11px; }

@media (max-width: 1099px) {

 .rx-doc-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

@media (max-width: 480px)  {

 .rx-doc-grid { grid-template-columns: 1fr; }

 .rx-doc__mono { width: 64px; height: 64px; font-size: 21px; } }

/* =========================================================================
   12. PATIENT VOICE
   ========================================================================= */

.rx-voice { background: linear-gradient(180deg, #F3F8FA 0%, var(--rx-cool-gray) 100%);
  border-block: 1px solid var(--rx-hairline); padding-block: clamp(48px, 6vw, 84px); }

.rx-voice .rx-glow { left: -180px; bottom: -240px; width: 640px; height: 640px;
  background: radial-gradient(circle, rgba(0,175,193,.12) 0%, rgba(0,175,193,0) 70%); }

.rx-voice__grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }

.rx-quote { background: var(--rx-white); border: 1px solid var(--rx-hairline);
  border-radius: var(--rx-radius); padding: 28px 26px; display: flex; flex-direction: column; gap: 16px; }

.rx-stars { display: flex; gap: 3px; }

.rx-quote blockquote { margin: 0; font-size: 16px; line-height: 1.62; color: var(--rx-ink); }

.rx-quote figcaption { font-size: 13px; color: var(--rx-slate); margin-top: auto;
  display: flex; align-items: center; gap: 8px; }

.rx-quote figcaption b { color: var(--rx-ink); font-weight: 600; }

@media (max-width: 1023px) {

 .rx-voice__grid { grid-template-columns: 1fr; } }

/* =========================================================================
   13. GALLERY
   ========================================================================= */

.rx-gallery { background: var(--rx-surface); padding-block: clamp(48px, 6vw, 84px); }

.rx-gallery__grid { display: grid; gap: 16px;
  grid-template-columns: repeat(4, minmax(0,1fr)); grid-template-rows: 260px 200px; }

.rx-gallery__grid figure { margin: 0; border-radius: var(--rx-radius); overflow: hidden; position: relative; }

.rx-gallery__grid img { width: 100%; height: 100%; object-fit: cover; display: block; }

.rx-gallery__grid figure:nth-child(1) { grid-column: span 2; grid-row: span 2; }

.rx-gallery__cap { position: absolute; left: 16px; bottom: 16px; background: rgba(255,255,255,.94);
  border-radius: 999px; padding: 7px 14px; font-size: 12px; font-weight: 600; color: var(--rx-ink); }

@media (max-width: 899px) {

 .rx-gallery__grid { grid-template-columns: repeat(2, minmax(0,1fr));
  grid-template-rows: 240px 170px 170px; }

 .rx-gallery__grid figure:nth-child(1) { grid-column: span 2; grid-row: span 1; } }

@media (max-width: 480px) {

 .rx-gallery__grid { grid-template-columns: 1fr; grid-template-rows: none; }

  .rx-gallery__grid figure { height: 200px; }

 .rx-gallery__grid figure:nth-child(1) { height: 240px; grid-column: span 1; } }

/* =========================================================================
   14. EMERGENCY BAND
   ========================================================================= */

.rx-eband {
  padding-block: clamp(36px, 4vw, 56px); background: linear-gradient(115deg, #7E1111 0%, #A81717 46%, #B91C1C 100%); }

.rx-eband .rx-glow--a { left: -140px; top: -180px; width: 620px; height: 620px;
  background: radial-gradient(circle, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 68%); }

.rx-eband .rx-glow--b { right: -120px; bottom: -240px; width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(0,0,0,.20) 0%, rgba(0,0,0,0) 70%); }

.rx-eband__row { position: relative; display: flex; align-items: center;
  justify-content: space-between; gap: 32px; }

.rx-eband__lead { display: flex; align-items: center; gap: 26px; }

.rx-eband__ico { width: 68px; height: 68px; border-radius: 18px; flex: none;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center; }

.rx-eband h2 { margin: 0; font-size: clamp(22px, 2.6vw, 32px); font-weight: 700;
  letter-spacing: -0.02em; color: var(--rx-white); line-height: 1.15; }

.rx-eband p { margin: 8px 0 0; font-size: 16px; color: var(--rx-alert-lite); }

.rx-eband__mr { margin-top: 6px !important; font-size: 15px !important; color: #ffd9d9 !important; }

.rx-eband__call { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 0 30px;
  background: var(--rx-white); border-radius: 12px; font-size: clamp(18px, 2vw, 22px);
  font-weight: 700; color: var(--rx-alert); flex: none; text-decoration: none; box-sizing: border-box; }

.rx-eband__call:hover { background: var(--rx-alert-lite); color: var(--rx-alert-dark); }

@media (max-width: 1023px) {

 .rx-eband__row { flex-direction: column; align-items: flex-start; gap: 24px; }

  .rx-eband__call { width: 100%; justify-content: center; } }

@media (max-width: 599px) {

 .rx-eband__lead { gap: 16px; }

  .rx-eband__ico { width: 52px; height: 52px; border-radius: 14px; } }

/* =========================================================================
   15. VISIT
   ========================================================================= */

.rx-visit { background: var(--rx-white); padding-block: clamp(48px, 6vw, 84px); }

.rx-visit__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 64px; align-items: center; }

.rx-visit h2 { margin: 12px 0 0; font-size: clamp(26px, 3vw, 40px); font-weight: 700;
  letter-spacing: -0.025em; line-height: 1.12; }

.rx-facts { margin: 26px 0 0; padding: 0; list-style: none; display: grid; gap: 18px; }

.rx-facts li { display: flex; align-items: flex-start; gap: 12px; }

.rx-facts b { display: block; font-size: 15px; font-weight: 600; color: var(--rx-ink); line-height: 1.4; }

.rx-facts span { display: block; font-size: 14px; color: var(--rx-slate); line-height: 1.5; margin-top: 2px; }

.rx-access { margin-top: 24px; padding: 16px 18px; border: 1px solid #F3D7A8; background: #FDF6E9;
  border-radius: 10px; font-size: 14px; line-height: 1.55; color: #6B4E16; }

.rx-access b { color: #5A3F0F; }

.rx-visit__map { border-radius: var(--rx-radius-lg); overflow: hidden; border: 1px solid var(--rx-cool-gray);
  background: var(--rx-cool-gray); min-height: 380px; }

.rx-visit__map svg, .rx-visit__map iframe { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; }

@media (max-width: 1023px) {

 .rx-visit__grid { grid-template-columns: 1fr; gap: 36px; }

  .rx-visit__map { min-height: 300px; }

 .rx-visit__map svg, .rx-visit__map iframe { min-height: 300px; } }

/* =========================================================================
   16. BOOK CTA
   ========================================================================= */

.rx-cta { background: var(--rx-surface); padding-block: clamp(48px, 5vw, 76px); }

.rx-cta__panel { background: linear-gradient(118deg, var(--rx-ink) 0%, #0D3A45 52%, var(--rx-teal-deep) 100%);
  border-radius: 24px; padding: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 60px); position: relative;
  overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 40px;
  box-shadow: 0 34px 80px -30px rgba(0,109,119,.55); }

.rx-cta__panel .rx-glow--a { right: -120px; top: -200px; width: 620px; height: 620px;
  background: radial-gradient(circle, rgba(0,229,242,.24) 0%, rgba(0,229,242,0) 68%); }

.rx-cta__panel .rx-glow--b { left: -100px; bottom: -220px; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(0,175,193,.20) 0%, rgba(0,175,193,0) 70%); }

.rx-cta__copy { position: relative; max-width: 60ch; }

.rx-cta h2 { margin: 0; font-size: clamp(24px, 3vw, 38px); font-weight: 700;
  letter-spacing: -0.025em; line-height: 1.15; color: var(--rx-white); }

.rx-cta p { margin: 14px 0 0; font-size: 16px; line-height: 1.65; color: var(--rx-cyan-light); }

.rx-cta__btns { position: relative; display: flex; gap: 12px; flex: none; flex-wrap: wrap; }

@media (max-width: 1023px) {

 .rx-cta__panel { flex-direction: column; align-items: flex-start; gap: 28px; } }

@media (max-width: 599px) {

 .rx-cta__btns { width: 100%; }

 .rx-cta__btns .rx-btn { width: 100%; } }

/* =========================================================================
   17. FOOTER
   ========================================================================= */

.rx-footer { background: var(--rx-ink); padding-block: clamp(44px, 5vw, 72px) 40px; color: var(--rx-cyan-light); }

.rx-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 56px; }

.rx-footer__h { margin: 0 0 18px; font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--rx-cyan); }

/* Footer links were 16px tall — fine for a mouse, poor for a thumb. */

.rx-footer a { color: var(--rx-cyan-light); text-decoration: none; font-size: 14px; display: inline-flex; align-items: center; min-height: 36px; line-height: 1.4; }

.rx-footer a:hover { color: var(--rx-white); text-decoration: underline; }

.rx-footer a.rx-footer__ico { gap: var(--wp--preset--spacing--30, 0.75rem); }

.rx-footer__policies { display: flex; flex-wrap: wrap; column-gap: var(--wp--preset--spacing--50, 1.5rem); }

.rx-footer__ico .rx-icon { flex: none; color: var(--rx-cyan); }

.rx-footer p { margin: 0 0 12px; font-size: 14px; line-height: 1.65; color: var(--rx-on-dark); }

.rx-footer__legal { margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--rx-rule-dark);
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

.rx-footer__legal p { margin: 0; font-size: 13px; color: var(--rx-on-dark-2); }

.rx-footer__logo { display: block; margin-bottom: 20px; }

.rx-footer__logo img, .rx-footer__logo svg { height: 46px; width: auto; display: block; }

.rx-footer__logo img { width: auto; filter: none; height: 76px; }

@media (max-width: 1023px) {

 .rx-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px; } }

@media (max-width: 599px)  {

 .rx-footer__grid { grid-template-columns: 1fr; gap: 28px; } }

/* =========================================================================
   18. MOBILE ACTION BAR — call / WhatsApp / directions
   ========================================================================= */

.rx-mobilebar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  background: var(--rx-white); border-top: 1px solid var(--rx-cool-gray);
  box-shadow: 0 -8px 24px -12px rgba(10,22,32,.3);
  padding-bottom: env(safe-area-inset-bottom, 0); }

.rx-mobilebar__in { display: grid; grid-template-columns: repeat(3, 1fr); }

.rx-mobilebar a { display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; min-height: 58px; text-decoration: none; font-size: 11px; font-weight: 700;
  color: var(--rx-ink); letter-spacing: .02em; }

.rx-mobilebar a + a { border-left: 1px solid var(--rx-cool-gray); }

.rx-mobilebar a:first-child { background: var(--rx-alert); color: var(--rx-white); }

@media (max-width: 767px) {

  .rx-mobilebar { display: block; }

  body { padding-bottom: 58px; }
}

/* =========================================================================
   19. GLOBAL GUARDS
   ========================================================================= */

html { -webkit-text-size-adjust: 100%; overflow-x: clip; }

body { overflow-x: hidden; }

.rx-section img { max-width: 100%; }

.rx-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {

  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }

  .rx-spec:hover { transform: none; }
}

/* =========================================================================
   20. BREAKPOINT FIXES — found by the 375/414/768/1024/1280/1440 audit
   ========================================================================= */

/* The header row could not shrink, so logo + nav CTA + burger pushed the
   document to 540px wide on a 375px phone. Three changes: let the row shrink,
   let the logo truncate rather than force width, and below 600px drop the
   booking button from the bar — it lives in the disclosure panel and in the
   fixed bottom bar, so nothing is lost. */

.rx-logo span { min-width: 0; }

@media (max-width: 599px) {

  .rx-header__cta .rx-btn--primary { display: none; }

  .rx-nav-panel .rx-btn { display: flex; width: 100%; margin-top: 14px; }
}

@media (min-width: 600px) {

 .rx-nav-panel .rx-btn { display: none; } }

/* The emergency band's call button was not border-box, so at 768px its
   padding pushed it 28px past the shell and the section clipped it. */

.rx-footer a.rx-footer__logo { display: block; min-height: 0; }

/* Language toggle: keep the 46px bar height on desktop, grow the target on touch. */

@media (max-width: 767px) {

 .rx-lang a { min-height: 36px; padding: 8px 12px; } }

/* Belt and braces: a future pattern must never be able to scroll the page
   sideways. `clip` rather than `hidden` so it cannot create a scroll container. */

/* --- second audit pass --- */

/* The mobile rule hid every span inside the label, which took the live pulse
   dot with it. Hide only the text. */
@media (max-width: 767px) {

  .rx-emergency-bar__label span:not(.rx-pulse) { display: none; }

  .rx-emergency-bar__label .rx-pulse { display: block; }
}

/* The 32px touch target turned the EN pill into a circle. Keep the pill shape
   on pointer devices and only grow it where a thumb is used. */

@media (max-width: 767px) {

 .rx-lang a { min-height: 34px; padding: 8px 13px; } }

/* Phone hero: the scrim was dark enough to lose the ward behind it. Lift the
   top third so the photograph still reads, without touching contrast on the
   headline, which sits lower. */
@media (max-width: 767px) {

  .rx-hero__scrim { background: linear-gradient(180deg,
      rgba(10,22,32,.46) 0%, rgba(10,22,32,.62) 20%, rgba(10,22,32,.88) 44%,
      rgba(10,22,32,.97) 62%, #0A1620 78%, #0A1620 100%); }
}

@media (max-width: 767px) {

 .rx-lang a { padding: 8px 18px; } }

/* =========================================================================
   21. CONTRAST CORRECTIONS
   The automated pass cannot resolve text sitting on a gradient, so those
   pairs were computed by hand against the LIGHTEST stop — the worst case.
   Two failed and are corrected here.

     #ffd9d9 on #C62222 .... 4.43:1  FAIL at 12px  (emergency bar note)
     #ffd9d9 on #D02626 .... 4.05:1  FAIL at 16px  (emergency band body)
     #ffbcbc on #D02626 .... 3.30:1  FAIL at 15px  (emergency band Marathi)

   Capping both gradients at the brand alert token #B91C1C fixes all three:

     #ffd9d9 on #B91C1C .... 4.99:1  PASS
     #ffffff on #B91C1C .... 9.34:1  PASS

   Everything else that the script flagged sits on ink or teal and passes:
     #fff    on #143046 ... 13.60:1   #8dc3ce on #0A1620 ... 7.03:1
     #00E5F2 on #0A1620 ... 8.76:1    #BFF6F7 on #006D77 ... 5.13:1
   ========================================================================= */

/* =========================================================================
   22. INNER PAGES
   Reuses the homepage primitives. Only genuinely new shapes are defined here.
   ========================================================================= */

.rx-page { padding-block: clamp(40px, 5vw, 72px); background: var(--rx-surface); }

.rx-page__head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 48px); }

.rx-page__head h1 { margin: 12px 0 0; font-size: clamp(30px, 4vw, 52px); font-weight: 700;
  letter-spacing: -0.03em; line-height: 1.08; color: var(--rx-ink); }

.rx-page__head p { margin: 20px 0 0; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.65; color: var(--rx-ink); }

.rx-performed { margin: 0; padding-left: var(--wp--preset--spacing--50, 1.5rem); font-size: var(--wp--preset--font-size--body, 1rem);
  line-height: var(--wp--custom--line-height--relaxed, 1.65); color: var(--rx-ink); }

.rx-prose p { margin: 0 0 18px; font-size: 17px; line-height: 1.7; max-width: 66ch; color: var(--rx-ink); }

/* Editor-written pages (legal pages, anything without a pattern). */
.rx-prose h2 { margin: var(--wp--preset--spacing--60, 2rem) 0 var(--wp--preset--spacing--30, 0.75rem);
  font-size: var(--wp--preset--font-size--h3, 1.5rem); line-height: var(--wp--custom--line-height--snug, 1.25); color: var(--rx-ink); }

.rx-prose ul { margin: 0 0 var(--wp--preset--spacing--40, 1rem); padding-left: var(--wp--preset--spacing--50, 1.5rem); max-width: 66ch; }

.rx-prose li { margin-bottom: var(--wp--preset--spacing--20, 0.5rem); font-size: var(--wp--preset--font-size--body-lead, 1.125rem);
  line-height: var(--wp--custom--line-height--relaxed, 1.65); color: var(--rx-ink); }

/* --- emergency page: number first, nothing competing with it --- */
.rx-emg { background: var(--rx-ink); padding-block: clamp(40px, 5vw, 72px); }

.rx-emg .rx-glow--a { left: -160px; top: -200px; width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(185,28,28,.34) 0%, rgba(185,28,28,0) 70%); }

.rx-emg h1 { margin: 0 0 8px; font-size: clamp(26px, 3vw, 38px); font-weight: 700;
  letter-spacing: -0.025em; color: var(--rx-white); }

.rx-emg__nums { display: grid; gap: 12px; margin: 24px 0 0; }

.rx-emg__num { display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: var(--rx-alert); border-radius: 14px; padding: 18px 26px; text-decoration: none;
  font-size: clamp(26px, 4vw, 44px); font-weight: 700; letter-spacing: -0.02em; color: var(--rx-white); }

.rx-emg__num:hover { background: #8E1414; color: var(--rx-white); }

.rx-emg__num small { font-size: 13px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: #ffd9d9; flex: none; }

.rx-emg__hours { margin: 22px 0 0; font-size: 17px; font-weight: 600; color: var(--rx-cyan-light); }

.rx-emg__blocks { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px;
  margin-top: 46px; padding-top: 34px; border-top: 1px solid var(--rx-rule-dark); }

.rx-emg__block h2 { margin: 16px 0 0; font-size: 18px; font-weight: 600; color: var(--rx-white); }

.rx-emg__block p { margin: 10px 0 0; font-size: 15px; line-height: 1.65; color: var(--rx-on-dark); }

@media (max-width: 899px) {

 .rx-emg__blocks { grid-template-columns: 1fr; gap: 24px; } }

/* --- tariff table --- */
.rx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--rx-cool-gray); border-radius: var(--rx-radius); background: var(--rx-white); }

.rx-table { width: 100%; border-collapse: collapse; min-width: 680px; }

.rx-table caption { text-align: left; padding: 20px 22px 0; font-size: 13px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--rx-teal-deep); }

.rx-table th, .rx-table td { padding: 15px 22px; text-align: right; font-size: 15px;
  border-bottom: 1px solid var(--rx-cool-gray); }

.rx-table th:first-child, .rx-table td:first-child { text-align: left; }

.rx-table thead th { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--rx-slate); border-bottom: 2px solid var(--rx-cool-gray); }

.rx-table tbody th { font-weight: 600; color: var(--rx-ink); }

.rx-table tbody td { font-weight: 600; color: var(--rx-ink); font-variant-numeric: tabular-nums; }

.rx-table tr:last-child th, .rx-table tr:last-child td { border-bottom: 0; }

.rx-table tr.is-icu { background: #EDF7F8; }

.rx-table tr.is-icu th, .rx-table tr.is-icu td { color: var(--rx-teal-deep); }

.rx-foot-notes { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }

.rx-foot-notes li { font-size: 14px; line-height: 1.55; color: var(--rx-slate); }

/* --- generic icon-and-text grid used by insurance, facilities, visit --- */
.rx-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }

.rx-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }

.rx-tile { background: var(--rx-white); border: 1px solid var(--rx-cool-gray);
  border-radius: var(--rx-radius); padding: 26px 24px; }

.rx-tile__ico { width: 46px; height: 46px; border-radius: 12px; background: var(--rx-cool-gray);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }

.rx-tile h2, .rx-tile h3 { margin: 0; font-size: 18px; font-weight: 700; color: var(--rx-ink); }

.rx-tile p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: var(--rx-slate); }

.rx-tile figure { margin: 0 0 18px; border-radius: 10px; overflow: hidden; height: 180px; }

.rx-tile figure img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 1023px) {

 .rx-grid-3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }

@media (max-width: 639px)  {

 .rx-grid-3, .rx-grid-2 { grid-template-columns: 1fr; } }

/* --- vision / mission --- */
.rx-vm { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; margin-top: 40px; }

.rx-vm > div { background: var(--rx-ink); border-radius: var(--rx-radius); padding: 32px 30px; }

.rx-vm h2 { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--rx-cyan); }

.rx-vm p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--rx-white); }

@media (max-width: 767px) {

 .rx-vm { grid-template-columns: 1fr; } }

/* --- service and doctor detail --- */
.rx-detail { display: grid; grid-template-columns: 1.5fr 1fr; gap: 56px; align-items: start; }

.rx-list-check { margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }

.rx-list-check li { display: flex; align-items: flex-start; gap: 12px; font-size: 16px;
  line-height: 1.55; color: var(--rx-ink); }

.rx-aside { background: var(--rx-white); border: 1px solid var(--rx-cool-gray);
  border-radius: var(--rx-radius); padding: 26px 24px; position: sticky; top: 24px; }

.rx-aside h2 { margin: 0 0 16px; font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--rx-teal-deep); }

.rx-aside .rx-btn { width: 100%; margin-top: 8px; }

.rx-statutory { margin-top: 26px; padding: 16px 18px; border: 1px solid #F3D7A8;
  background: #FDF6E9; border-radius: 10px; font-size: 14px; line-height: 1.55; color: #6B4E16; }

@media (max-width: 1023px) {

 .rx-detail { grid-template-columns: 1fr; gap: 32px; }

  .rx-aside { position: static; } }

/* =========================================================================
   23. FORMS
   ========================================================================= */

.rx-form { max-width: 760px; }

.rx-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 24px; }

.rx-field { margin: 0 0 20px; }

.rx-field label { display: block; font-size: 14px; font-weight: 600; color: var(--rx-ink); margin-bottom: 7px; }

.rx-field label span { color: var(--rx-alert); }

.rx-field input, .rx-field select, .rx-field textarea {
  width: 100%; box-sizing: border-box; min-height: var(--rx-tap); padding: 11px 14px;
  border: 1px solid var(--rx-slate); border-radius: 8px; background: var(--rx-white);
  font: inherit; font-size: 16px; color: var(--rx-ink); }

.rx-field textarea { min-height: 110px; resize: vertical; }

.rx-field input:focus, .rx-field select:focus, .rx-field textarea:focus {
  outline: 3px solid var(--rx-teal-deep); outline-offset: 1px; border-color: var(--rx-teal-deep); }

.rx-field input:invalid:not(:placeholder-shown) { border-color: var(--rx-alert); }

.rx-hint { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--rx-slate); }

.rx-consent { margin: 4px 0 0; font-size: 14px; line-height: 1.55; color: var(--rx-slate); max-width: 60ch; }

.rx-form button { margin-top: 22px; }

/* Honeypot. Off-screen rather than display:none — some bots skip hidden
   fields, and a screen reader still gets the label telling it to leave it. */
.rx-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 639px) {

 .rx-form__grid { grid-template-columns: 1fr; } }

/* =========================================================================
   24. INLINE CONTACT LINKS
   Audit found phone and email links inside tiles and notices rendering
   16–18px tall. On a phone these are the primary action on the page, so they
   get a real target without becoming buttons.
   ========================================================================= */

.rx-tile p a, .rx-access a, .rx-prose a {
  display: inline-block; min-height: 34px; line-height: 34px;
  color: var(--rx-teal-deep); font-weight: 600; text-decoration: underline;
  text-underline-offset: 3px; }

.rx-tile p a:hover, .rx-access a:hover, .rx-prose a:hover { color: var(--rx-ink); }

@media (max-width: 767px) {

  .rx-tile p a, .rx-access a { min-height: 44px; line-height: 44px; }
}

/* =========================================================================
   25. LOCKUP
   The supplied mark carries the wordmark, so the header prints no text
   beside it. Sized by height; the 357.58 x 90 viewBox sets the width.
   ========================================================================= */

.rx-logo img { display: block; width: auto; max-width: 100%; height: 56px; }

.rx-logo:focus-visible { outline: 3px solid var(--rx-teal-deep); outline-offset: 4px; border-radius: 4px; }

/* The footer ships a real knockout file, so no filter is applied to it —
   a brightness/invert filter would flatten this mark's three brand colours
   into one. */

/* =========================================================================
   26. LOCKUP — Realix / Risk Care Hospital endorsement mark
   3.32:1, three text tiers. Measured cap heights as a fraction of the
   lockup: REALIX 32.8%, "RISK CARE HOSPITAL" 10.0%, tagline 8.4%.
   At a 56px lockup that is 18.4 / 5.6 / 4.7px — the wordmark reads, the
   lower two tiers are texture. See the note in the build status doc: a
   header variant without the tagline would fix that properly.
   ========================================================================= */

@media (max-width: 1099px) {

 .rx-logo img { height: 46px; } }

@media (max-width: 599px)  {

 .rx-logo img { height: 38px; } }

@media (max-width: 380px)  {

 .rx-logo img { height: 32px; } }

/* Give the taller lockup room rather than cramping it. */

@media (max-width: 1099px) {

 .rx-header__inner { min-height: 84px; } }

/* The footer has room, so the endorsement reads properly there. */

@media (max-width: 599px) {

 .rx-footer__logo img { height: 58px; } }

/* =========================================================================
   27. REVIEW FIXES — 22 September 2026
   ========================================================================= */

/* BUG: .rx-doc__body is a <span>. Inline elements do not lay out block
   padding, so every consultant card rendered with its name, qualification
   and tag flush to the card edge. Same latent bug on the hero card. */
.rx-doc__body,
.rx-hero__card > span:not(.rx-hero__card-ico) { display: block; }

button.rx-btn { border: 0; }

/* Facility tiles now carry the gallery's caption pill instead of a heading
   above the photo, so the two sections read as one system. */
.rx-tile--photo { padding: 0; overflow: hidden; }

.rx-tile--photo figure { margin: 0; height: 220px; border-radius: 0; position: relative; }

.rx-tile--photo .rx-gallery__cap { left: 16px; bottom: 16px; font-size: 13px; padding: 8px 15px; }

.rx-tile--photo .rx-tile__text { padding: 22px 24px 26px; }

.rx-tile--photo h2 { margin: 0; font-size: 18px; font-weight: 700; }

.rx-tile--photo p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: var(--rx-slate); }

@media (max-width: 480px) {

 .rx-tile--photo figure { height: 180px; } }

/* Text-only facility tile — for what is on site but not photographed. */
.rx-tile--text { display: flex; gap: 14px; align-items: flex-start; }

.rx-tile--text .rx-tile__ico { margin-bottom: 0; flex: none; }

/* Long empanelment lists. Multi-column so 46 insurers do not become a
   46-screen scroll, and still one column on a phone. */
.rx-panel-list { columns: 3; column-gap: 40px; margin: 24px 0 0; padding: 0; list-style: none; }

.rx-panel-list li { break-inside: avoid; display: flex; gap: 10px; padding: 7px 0;
  font-size: 14px; line-height: 1.45; color: var(--rx-ink); border-bottom: 1px solid var(--rx-cool-gray); }

.rx-panel-list li span:first-child { color: var(--rx-teal-deep); font-weight: 700;
  font-variant-numeric: tabular-nums; flex: none; min-width: 22px; }

@media (max-width: 1023px) {

 .rx-panel-list { columns: 2; } }

@media (max-width: 599px)  {

 .rx-panel-list { columns: 1; } }

.rx-empanel { display: flex; align-items: center; gap: 16px; margin: 0 0 28px;
  padding: 18px 22px; background: var(--rx-cool-gray); border-radius: var(--rx-radius); }

.rx-empanel b { display: block; font-size: 16px; font-weight: 700; color: var(--rx-ink); }

/* Ink, not slate: slate on cool-gray computes to 4.12:1 (fails AA 4.5:1). */
.rx-empanel span { display: block; font-size: 14px; color: var(--rx-ink); margin-top: 3px; }

/* Consultant card: portrait when one exists, monogram until then. */

.rx-doc__opd { display: flex; align-items: center; gap: 6px; margin: 10px 0 0 !important;
  font-size: 13px; color: var(--rx-slate); }

@media (max-width: 480px) {

 .rx-doc__top { height: 220px; } }

/* The logo link shrank to 32px on a phone once the lockup scaled down. Keep
   the mark's size, grow the target around it. */
@media (max-width: 767px) {

 .rx-logo { min-height: 44px; } }

.rx-tile--photo .rx-tile__text p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--rx-ink); }

/* Icon tiles centre their glyph regardless of the element used. A broad
   descendant rule had been overriding the hero card tile's flex centring. */
.rx-hero__card-ico, .rx-tile__ico, .rx-spec__ico, .rx-pillar__ico, .rx-eband__ico {
  display: flex !important; align-items: center; justify-content: center; }

/* Portraits are square now, so the card crops from a little higher to keep
   the eyeline in the upper third rather than dead centre. */

/* =========================================================================
   24. SPECIALITY, CONSULTANT AND STORY INDEXES AND DETAIL
   Tokens only: theme.json presets and the --rx- palette above.
   ========================================================================= */

.rx-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--20, 0.5rem);
  margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
  font-size: var(--wp--preset--font-size--caption, 0.875rem);
  color: var(--rx-slate);
}

.rx-crumbs a {
  color: var(--rx-teal-deep);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.rx-crumbs a:hover { color: var(--rx-ink); }

.rx-detail__h {
  margin: var(--wp--preset--spacing--70, 3rem) 0 0;
  font-size: var(--wp--preset--font-size--h3, 1.5rem);
  font-weight: 700;
  color: var(--rx-ink);
}

.rx-detail > div > .rx-detail__h:first-child,
.rx-page__head + .rx-detail__h { margin-top: 0; }

.rx-detail__h + .rx-spec-grid,
.rx-detail__h + .rx-doc-grid,
.rx-detail__h + .rx-voice__grid { margin-top: var(--wp--preset--spacing--50, 1.5rem); }

.rx-list-check svg,
.rx-doc__opd svg,
.rx-spec__ico svg { color: var(--rx-teal-deep); flex: none; }

.rx-doc-grid--2 { grid-template-columns: 1fr; }

.rx-aside .rx-btn + .rx-btn { margin-top: var(--wp--preset--spacing--30, 0.75rem); }

.rx-facts--profile { margin-top: var(--wp--preset--spacing--50, 1.5rem); }

.rx-facts--profile span {
  display: block;
  font-size: var(--wp--preset--font-size--caption, 0.875rem);
  color: var(--rx-slate);
}

.rx-portrait {
  margin: 0;
  max-width: calc(2 * var(--wp--preset--spacing--100, 8rem) + var(--wp--preset--spacing--60, 2rem));
  border-radius: var(--rx-radius);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, var(--rx-teal-deep), var(--rx-cyan));
  display: flex;
  align-items: center;
  justify-content: center;
}

.rx-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}

.rx-portrait .rx-doc__mono { position: static; }

.rx-profile {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--wp--preset--spacing--70, 3rem);
  align-items: start;
}

/* Mobile first: one column, then side by side from 1024px. */
@media (min-width: 1024px) {

  .rx-doc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .rx-profile {
    grid-template-columns:
      minmax(0, calc(var(--wp--preset--spacing--100, 8rem) + var(--wp--preset--spacing--90, 6rem) + var(--wp--preset--spacing--40, 1rem)))
      minmax(0, 1fr);
  }

  .rx-portrait { max-width: none; }
}

.rx-prose--spaced { margin-top: var(--wp--preset--spacing--60, 2rem); }

.rx-stars svg { color: var(--rx-star); }

/* --- search form, results, not-found --- */
.rx-page .search-form {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30, 0.75rem);
  max-width: var(--wp--style--global--content-size, 45rem);
}

.rx-page .search-form label { flex: 1 1 calc(2 * var(--wp--preset--spacing--100, 8rem)); }

.rx-page .search-field {
  width: 100%;
  box-sizing: border-box;
  min-height: var(--rx-tap);
  padding: var(--wp--preset--spacing--30, 0.75rem) var(--wp--preset--spacing--40, 1rem);
  border: var(--wp--custom--stroke--hairline, 1px) solid var(--rx-slate);
  border-radius: var(--wp--preset--spacing--20, 0.5rem);
  background: var(--rx-white);
  font: inherit;
  color: var(--rx-ink);
}

.rx-page .search-field:focus { outline: var(--wp--custom--stroke--focus, 3px) solid var(--rx-teal-deep); outline-offset: var(--wp--custom--stroke--hairline, 1px); }

.rx-page .search-submit {
  min-height: var(--rx-tap);
  padding: 0 var(--wp--preset--spacing--50, 1.5rem);
  border: 0;
  border-radius: var(--wp--preset--spacing--20, 0.5rem);
  background: var(--rx-teal-deep);
  color: var(--rx-white);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.rx-page .search-submit:hover { background: var(--rx-ink); }

.rx-search__count {
  margin: var(--wp--preset--spacing--50, 1.5rem) 0 0;
  color: var(--rx-slate);
}

.rx-results {
  margin: var(--wp--preset--spacing--40, 1rem) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--wp--preset--spacing--40, 1rem);
  max-width: var(--wp--style--global--content-size, 45rem);
}

.rx-results .rx-eyebrow { margin: 0 0 var(--wp--preset--spacing--20, 0.5rem); }

.rx-results h2 a { color: var(--rx-ink); text-decoration: none; }

.rx-results h2 a:hover,
.rx-results h2 a:focus-visible { color: var(--rx-teal-deep); text-decoration: underline; }

.rx-grid--spaced { margin-top: var(--wp--preset--spacing--70, 3rem); grid-template-columns: 1fr; }

.rx-tile--link { display: block; text-decoration: none; }

.rx-tile--link:hover { border-color: var(--rx-teal); }

.rx-tile__ico svg { color: var(--rx-teal-deep); }

.rx-callout { margin-top: var(--wp--preset--spacing--60, 2rem); }

.rx-page .nav-links {
  display: flex;
  gap: var(--wp--preset--spacing--30, 0.75rem);
  margin-top: var(--wp--preset--spacing--60, 2rem);
}

@media (min-width: 1024px) {

  .rx-grid--spaced { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.rx-table-wrap:focus-visible { outline: var(--wp--custom--stroke--focus, 3px) solid var(--rx-teal-deep); outline-offset: var(--wp--custom--stroke--focus, 3px); }

/* Header, main and footer are full-bleed sections that butt together. The
   global blockGap is for content inside them, not the gaps between them. */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Photo viewer. Each gallery photo links to its full file, so it still opens
   without script; the script upgrades that to a native <dialog>. */

.rx-zoom { position: relative; display: block; width: 100%; height: 100%; cursor: zoom-in; }

.rx-zoom img { width: 100%; height: 100%; object-fit: cover; display: block; }

.rx-zoom:focus-visible { outline: var(--wp--custom--stroke--focus, 3px) solid var(--rx-teal);
  outline-offset: calc(-1 * var(--wp--custom--stroke--focus, 3px)); }

.rx-zoom ~ .rx-gallery__cap { pointer-events: none; }

.rx-zoom__ico { position: absolute; top: var(--wp--preset--spacing--30, 0.75rem); right: var(--wp--preset--spacing--30, 0.75rem);
  width: var(--wp--preset--spacing--60, 2rem); height: var(--wp--preset--spacing--60, 2rem);
  border-radius: 50%; background: color-mix(in srgb, var(--rx-ink) 55%, transparent);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--wp--custom--duration--base, 200ms); }

.rx-zoom:hover .rx-zoom__ico, .rx-zoom:focus-visible .rx-zoom__ico { background: color-mix(in srgb, var(--rx-ink) 80%, transparent); }

.rx-lightbox { padding: 0; border: 0; background: transparent; max-width: 94vw; max-height: 92vh; overflow: visible; }

.rx-lightbox::backdrop { background: color-mix(in srgb, var(--rx-ink) 90%, transparent); }

.rx-lightbox figure { margin: 0; }

.rx-lightbox img { display: block; width: auto; height: auto; max-width: 94vw;
  max-height: calc(92vh - var(--wp--preset--spacing--70, 3rem)); margin: 0 auto; border-radius: var(--rx-radius); }

.rx-lightbox figcaption { margin-top: var(--wp--preset--spacing--30, 0.75rem); text-align: center;
  font-size: var(--wp--preset--font-size--body, 1rem); font-weight: 500; color: var(--rx-white); }

.rx-lightbox button { position: fixed; width: var(--rx-tap); height: var(--rx-tap); border-radius: 50%; border: 0;
  cursor: pointer; background: color-mix(in srgb, var(--rx-white) 16%, transparent); color: var(--rx-white);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--wp--custom--duration--base, 200ms); }

.rx-lightbox button:hover { background: color-mix(in srgb, var(--rx-white) 30%, transparent); }

.rx-lightbox button:focus-visible { outline: var(--wp--custom--stroke--focus, 3px) solid var(--rx-white);
  outline-offset: var(--wp--custom--stroke--focus, 3px); }

.rx-lightbox__close { top: var(--wp--preset--spacing--40, 1rem); right: var(--wp--preset--spacing--40, 1rem); }

.rx-lightbox__prev { left: var(--wp--preset--spacing--40, 1rem); top: 50%; transform: translateY(-50%); }

.rx-lightbox__next { right: var(--wp--preset--spacing--40, 1rem); top: 50%; transform: translateY(-50%); }

.rx-lightbox[data-single] .rx-lightbox__prev, .rx-lightbox[data-single] .rx-lightbox__next { display: none; }

@media (prefers-reduced-motion: reduce) {

 .rx-zoom__ico, .rx-lightbox button { transition: none; } }

/* Google reviews bar, under a set of reviews. */

.rx-reviews-bar { margin-top: var(--wp--preset--spacing--60, 2rem); display: flex; align-items: center;
  gap: var(--wp--preset--spacing--40, 1rem); flex-wrap: wrap; background: var(--rx-white);
  border: var(--wp--custom--stroke--hairline, 1px) solid var(--rx-cool-gray); border-radius: var(--rx-radius);
  padding: var(--wp--preset--spacing--50, 1.5rem); }

.rx-reviews-bar__g { flex: none; width: var(--rx-tap); height: var(--rx-tap); border-radius: 50%; background: var(--rx-white);
  border: var(--wp--custom--stroke--hairline, 1px) solid var(--rx-cool-gray);
  display: flex; align-items: center; justify-content: center; }

.rx-reviews-bar p { flex: 1 1 18rem; margin: 0; font-size: var(--wp--preset--font-size--caption, 0.875rem);
  line-height: var(--wp--custom--line-height--normal, 1.5); color: var(--rx-slate); }

.rx-reviews-bar b { display: block; font-size: var(--wp--preset--font-size--body-lead, 1.125rem); color: var(--rx-ink);
  margin-bottom: var(--wp--preset--spacing--10, 0.25rem); }

