/* Rockland Recovery Group — design tokens.
   Every value here was checked against WCAG 2.1 AA. Notably #4CACDB is 2.55:1
   on white and therefore never carries text; it appears only on dark grounds
   and as decorative rule. */

:root {
  --ink:        #16202B;
  --body:       #55636F;
  --muted:      #63707C;
  --deep:       #0C4DA2;
  --navy:       #08316B;
  --sea:        #2E7CA6;  /* light blue darkened for text, 4.62:1 */
  --sea-icon:   #3E92C2;  /* light blue darkened for icons, 3.45:1 */
  --sky:        #4CACDB;  /* decorative / on dark only */
  --amber:      #FFBC42;
  --amber-ink:  #3D2A00;  /* 8.19:1 on amber */
  --tint:       #F4F9FC;
  --line:       #E1E9F0;
  --line-strong:#D8E3EC;
  --field:      #7299BA;  /* input border, 3.01:1 */
  --on-navy:    #A9C6E4;  /* 7.15:1 on navy */
  --on-navy-2:  #7FA9D6;  /* 5.14:1 on navy */
  --on-deep:    #C8DDF3;  /* 5.81:1 on deep blue */
  --shadow:     0 1px 2px rgba(12,77,162,.04), 0 18px 40px -28px rgba(12,77,162,.35);
  --wrap:       1200px;
  --pad:        40px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: #fff;
  color: var(--body);
  font-family: "Archivo", "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: "Epilogue", "Archivo", sans-serif;
  color: var(--ink);
  margin: 0;
  line-height: 1.18;
  text-wrap: balance;
}

a { color: var(--deep); }
a:hover { color: var(--navy); }

/* WCAG 2.4.7 / 2.4.11 */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--deep);
  outline-offset: 2px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

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

.rrg-skip {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: #fff; color: var(--deep); padding: 14px 20px; font-weight: 600;
}
.rrg-skip:focus { left: 0; }

.rrg-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); }
.rrg-icon { flex-shrink: 0; }

/* ---------- buttons ---------- */
.rrg-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-weight: 600; font-size: 17px; text-decoration: none;
  padding: 15px 26px; border-radius: 3px; min-height: 52px;
  border: 1.5px solid transparent; cursor: pointer;
}
.rrg-btn--primary { background: var(--amber); color: var(--amber-ink); }
.rrg-btn--primary:hover { background: #F0AC2E; color: var(--amber-ink); }
.rrg-btn--outline { background: #fff; color: var(--deep); border-color: var(--deep); }
.rrg-btn--outline:hover { background: var(--tint); color: var(--navy); }
.rrg-btn--outline-light { background: transparent; color: #fff; border-color: #72A2D5; }
.rrg-btn--outline-light:hover { background: rgba(255,255,255,.1); color: #fff; }
.rrg-btn--solid { background: var(--deep); color: #fff; font-size: 15px; min-height: 46px; padding: 12px 18px; }
.rrg-btn--solid:hover { background: var(--navy); color: #fff; }
.rrg-btn--ghost { background: #fff; color: var(--deep); border-color: #C9DCEE; font-size: 15px; min-height: 46px; padding: 12px 18px; }
.rrg-btn--ghost-solid { background: #fff; color: var(--deep); border-color: var(--deep); font-size: 15px; }

/* ---------- utility bar + header ---------- */
.rrg-utility { background: var(--navy); color: #DCE9F5; font-size: 13px; }
.rrg-utility__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; }
.rrg-utility__list { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.rrg-utility__list li { display: flex; align-items: center; gap: 8px; }
.rrg-utility__list .rrg-icon { stroke: var(--sky); }
.rrg-utility__cta { color: #fff; font-weight: 600; text-decoration: none; }

.rrg-header { border-bottom: 1px solid #E4EBF2; background: #fff; }
.rrg-header__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; }
.rrg-brand { display: flex; flex-direction: column; text-decoration: none; }
.rrg-brand__name { font-family: "Epilogue", sans-serif; font-weight: 700; font-size: 21px; letter-spacing: -.02em; color: var(--deep); }
.rrg-brand__sub { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }

/* The supplied artwork is a stacked lockup at roughly 2.2:1, so it is sized by
   height to sit inside the header band. The color file carries about 16% of
   baked-in padding and the reversed one is cropped tight, which is why the two
   are given different heights: it is the mark that should match across the
   page, not the canvas around it. */
.rrg-brand--mark { display: block; line-height: 0; }
.rrg-brand__img { display: block; }

/* Sized on the descendant image, not on the class. A WebP plugin on this site
   wraps every tag in <picture> and carries the class up onto the wrapper, which
   has no intrinsic aspect ratio — height on the wrapper leaves the image itself
   at its full 600px. */
.rrg-brand--mark img { display: block; width: auto; height: 76px; max-width: 280px; }
.rrg-brand--footer img { height: 56px; }
/* ---------- primary navigation ----------

   Six top-level items, a logo and a phone button need about 1100px of header.
   Below that the bar becomes a panel rather than wrapping or shrinking past
   legibility, which is why the breakpoint is unusually wide at 1180px: a
   landscape tablet gets the panel, and gets a better menu for it. */

.rrg-nav__list { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; font-size: 14px; font-weight: 500; }
.rrg-nav__list > li { position: relative; }
.rrg-nav__list a { color: #33414E; text-decoration: none; display: block; }
.rrg-nav__list a:hover { color: var(--deep); text-decoration: underline; }

/* The page you are on, and the section you are in. WordPress marks both, and
   the ancestor state is what tells you where a deep program page sits. */
.rrg-nav__link { padding: 8px 0; white-space: nowrap; }
.rrg-nav__list > .current-menu-item .rrg-nav__link,
.rrg-nav__list > .current-menu-ancestor .rrg-nav__link,
.rrg-nav__list > .current-page-ancestor .rrg-nav__link {
  color: var(--deep);
  box-shadow: inset 0 -2px 0 var(--deep);
}

/* The chevron is written by the script, so it only appears where the toggle
   it belongs to exists. */
.rrg-nav__toggle {
  appearance: none; background: none; border: 0; padding: 6px 2px; margin-left: 3px;
  color: inherit; cursor: pointer; line-height: 0;
}
.rrg-nav__toggle svg { transition: transform .16s ease; }
.rrg-nav__item--open > .rrg-nav__row .rrg-nav__toggle svg { transform: rotate(180deg); }
.rrg-nav__row { display: flex; align-items: center; }

/* Submenus. Hover and focus-within keep this working with the script disabled;
   the open class is what the toggle button drives when it is not. */
.rrg-nav__sub {
  position: absolute; left: -18px; top: 100%; z-index: 60;
  margin: 0; padding: 14px 18px; list-style: none;
  background: #fff; border: 1px solid var(--line);
  border-radius: 4px; box-shadow: var(--shadow);
  min-width: 268px;
  visibility: hidden; opacity: 0; transform: translateY(-4px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s;
}
.rrg-nav__list > li:hover > .rrg-nav__sub,
.rrg-nav__list > li:focus-within > .rrg-nav__sub,
.rrg-nav__list > .rrg-nav__item--open > .rrg-nav__sub {
  visibility: visible; opacity: 1; transform: translateY(0);
}
.rrg-nav__sub li { break-inside: avoid; }
.rrg-nav__sub a { padding: 7px 0; font-size: 14px; color: var(--body); }
.rrg-nav__sub a:hover { color: var(--deep); }
.rrg-nav__sub .current-menu-item > a { color: var(--deep); font-weight: 600; }

/* Ten or thirteen links in a single column is a wall. The class is set from the
   child count in functions.php, so the split follows the menu rather than a
   guess baked into the stylesheet. */
.rrg-nav__item--wide > .rrg-nav__sub { columns: 2; column-gap: 34px; min-width: 520px; }

/* A 520px panel hung off its own item runs off one edge or the other depending
   on where that item sits, and the menu is client-editable so the order is not
   fixed. Anchoring the wide ones to the nav instead of to the item keeps them
   on screen wherever the item moves to. */
.rrg-nav { position: relative; }
.rrg-nav__list > .rrg-nav__item--wide { position: static; }
.rrg-nav__item--wide > .rrg-nav__sub { left: 0; right: auto; }

/* Actions live in the panel only. */
.rrg-nav__actions { display: none; }

/* The toggle button is the panel's control and is irrelevant on the bar. */
.rrg-navtoggle { display: none; }
.rrg-header .rrg-btn { font-size: 15px; padding: 12px 20px; min-height: 46px; }

/* ---------- hero ---------- */
.rrg-hero { background: linear-gradient(180deg, var(--tint) 0%, #fff 100%); border-bottom: 1px solid #E4EBF2; }
.rrg-hero__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: start; padding-top: 64px; padding-bottom: 72px; }
.rrg-hero__copy { display: flex; flex-direction: column; gap: 22px; }
.rrg-eyebrow {
  display: flex; align-items: center; gap: 10px; margin: 0;
  font-size: 12px; font-weight: 600; letter-spacing: .13em;
  text-transform: uppercase; color: var(--deep);
}
.rrg-eyebrow .rrg-icon { stroke: var(--deep); }
.rrg-hero__h1 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.07; max-width: 16ch; }
.rrg-hero__lede { font-size: 18.5px; line-height: 1.62; max-width: 52ch; margin: 0; }
.rrg-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.rrg-hero__note { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--muted); margin: 0; }
.rrg-hero__note .rrg-icon { stroke: var(--muted); }

/* ---------- facility card ---------- */
.rrg-fac { background: #fff; border: 1px solid var(--line-strong); border-radius: 4px; box-shadow: var(--shadow); overflow: hidden; }
.rrg-fac__head { background: var(--deep); padding: 15px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.rrg-fac__eyebrow { margin: 0; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--on-deep); }
.rrg-fac__badge { margin: 0; display: inline-flex; align-items: center; gap: 6px; background: var(--amber); color: var(--amber-ink); font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 2px; }
.rrg-fac__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 16px; }
.rrg-fac__title { font-size: 19px; font-weight: 600; letter-spacing: -.012em; }
.rrg-fac__addr { font-style: normal; font-size: 14.5px; line-height: 1.55; color: var(--body); margin: 0; }
.rrg-fac__facts { list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px solid #E9EFF5; display: flex; flex-direction: column; gap: 9px; }
.rrg-fac__facts li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #33414E; }
.rrg-fac__facts .rrg-icon { stroke: var(--sea-icon); }
.rrg-fac__actions { display: flex; gap: 10px; }
.rrg-fac__actions .rrg-btn { flex: 1 1 0; }
.rrg-nap__tel { font-weight: 600; }

/* ---------- trust strip ---------- */
.rrg-trustband { border-bottom: 1px solid #E4EBF2; background: #fff; }
.rrg-trust { list-style: none; margin: 0; padding: 22px 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }
.rrg-trust li { display: flex; align-items: center; gap: 11px; font-size: 14.5px; color: #33414E; }
.rrg-trust .rrg-icon { stroke: var(--sea-icon); }

/* ---------- body region (block editor) ---------- */
.rrg-body__grid { display: grid; grid-template-columns: 8fr 4fr; gap: 48px; padding-top: 68px; padding-bottom: 68px; }
.rrg-body__content > * { margin-block: 0 1.1em; }
.rrg-body__content > :last-child { margin-bottom: 0; }
.rrg-body__content h2 { font-size: 2.05rem; letter-spacing: -.02em; margin-top: 1.6em; }
.rrg-body__content h3 { font-size: 1.3rem; margin-top: 1.5em; }
.rrg-body__content p { max-width: 68ch; }
.rrg-body__content ul, .rrg-body__content ol { max-width: 66ch; }
.rrg-body__content li::marker { color: var(--sea); }
.rrg-body__content img { max-width: 100%; height: auto; }

.rrg-callout { background: var(--tint); border: 1px solid #DCE8F2; border-radius: 4px; padding: 24px; position: sticky; top: 24px; }
.rrg-callout h2 { font-size: 1.05rem; margin-bottom: 8px; }
.rrg-callout p { font-size: 14.5px; line-height: 1.6; margin: 0 0 16px; }
.rrg-callout .rrg-btn { width: 100%; font-size: 15px; }

/* ---------- closing CTA ---------- */
.rrg-cta { background: var(--deep); color: var(--on-deep); }
.rrg-cta__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: center; padding-top: 66px; padding-bottom: 66px; }
.rrg-cta__h { color: #fff; font-size: clamp(1.6rem, 2.6vw, 2.25rem); font-weight: 700; letter-spacing: -.022em; max-width: 20ch; margin-bottom: 14px; }
.rrg-cta__lede { color: var(--on-deep); font-size: 17px; max-width: 50ch; margin: 0 0 22px; }
.rrg-cta__form { background: #fff; border-radius: 4px; padding: 28px; }
.rrg-cta__form h2 { font-size: 1.25rem; margin-bottom: 14px; }

/* ---------- footer ---------- */
.rrg-footer { background: var(--navy); color: var(--on-navy); font-size: 14px; }
/* Buttons carry their own color. Without the exclusion this rule wins on
   specificity and paints the footer's amber call button pale blue on amber,
   a contrast of 1.04:1 — the button reads as blank. */
.rrg-footer a:not(.rrg-btn) { color: var(--on-navy); text-decoration: none; }
.rrg-footer a:not(.rrg-btn):hover { color: #fff; text-decoration: underline; }
.rrg-footer__h { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.rrg-footer__locations { border-bottom: 1px solid #14477F; padding: 44px 0 40px; }
.rrg-footer__lochead { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.rrg-footer__locgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; }
.rrg-footer__loc h3 { font-size: 15px; font-weight: 600; line-height: 1.3; margin-bottom: 6px; }
.rrg-footer__loc h3 a { color: #fff; }
.rrg-footer__loctype { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--on-navy-2); margin: 0 0 7px; }
.rrg-footer__loc address { font-style: normal; font-size: 13.5px; line-height: 1.55; margin: 0 0 6px; }
.rrg-footer__hours { font-size: 13px; color: var(--on-navy-2); margin: 0 0 6px; }
.rrg-footer__dir { font-size: 13.5px; color: #fff; font-weight: 500; }
.rrg-footer__main { padding: 44px 0 40px; }
.rrg-footer__grid { display: grid; grid-template-columns: 3fr 2fr 2fr 2fr 3fr; gap: 32px; }
.rrg-footer__brandcol { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.rrg-footer__brandcol p { font-size: 13.5px; line-height: 1.6; margin: 0; }
.rrg-brand--footer .rrg-brand__name { color: #fff; font-size: 20px; }
.rrg-brand--footer .rrg-brand__sub { color: var(--on-navy-2); }
.rrg-footer__cred { display: flex; gap: 10px; font-size: 12.5px; line-height: 1.45; margin: 0; }
.rrg-footer__cred .rrg-icon { stroke: var(--sky); }
.rrg-footer__hco { display: block; color: var(--on-navy-2); }
.rrg-footer__col { display: flex; flex-direction: column; gap: 10px; }
.rrg-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 13.5px; }
.rrg-footer__legal { border-top: 1px solid #14477F; padding: 22px 0; }
.rrg-footer__legalin { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.rrg-footer__legalin p { margin: 0; font-size: 13px; color: var(--on-navy-2); }
.rrg-footer__legallinks { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; font-size: 13px; }

/* ---------- sticky mobile bar ---------- */
.rrg-sticky { display: none; }

/* ---------- Gravity Forms ---------- */
/* The band sets a light color for navy, and the form sits on a white card
   inside it. Anything Gravity Forms renders that we have not styled by hand
   inherited that light blue onto white: the "First" and "Last" sublabels came
   out at 1.39:1, which is invisible. Reset the inherited color at the card so
   new form fields cannot fail the same way. */
.rrg-cta__form { color: var(--ink); }
.rrg-cta__form .gform_wrapper h2,
.rrg-cta__form .gform_wrapper h3 { color: var(--ink); }
.rrg-cta__form .gform_wrapper .gfield_label { font-size: 13.5px; font-weight: 600; color: #33414E; }
.rrg-cta__form .gform_wrapper input[type="text"],
.rrg-cta__form .gform_wrapper input[type="email"],
.rrg-cta__form .gform_wrapper input[type="tel"],
.rrg-cta__form .gform_wrapper select,
.rrg-cta__form .gform_wrapper textarea {
  border: 1px solid var(--field); border-radius: 3px; padding: 12px 14px;
  min-height: 48px; font-size: 15px; font-family: inherit; color: var(--ink); width: 100%;
}
.rrg-cta__form .gform_wrapper .gform_button {
  background: var(--deep); color: #fff; border: 0; border-radius: 3px;
  padding: 14px 22px; min-height: 50px; font-weight: 600; font-size: 16px; cursor: pointer; width: 100%;
}
.rrg-cta__form .gform_wrapper .gform_button:hover { background: var(--navy); }
.rrg-cta__form .gform_wrapper .gfield_required { color: #96271F; }
.rrg-cta__form .gform_wrapper .validation_message { color: #96271F; font-size: 13.5px; }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  :root { --pad: 24px; }
  .rrg-hero__grid, .rrg-body__grid, .rrg-cta__grid { grid-template-columns: 1fr; gap: 32px; }
  .rrg-footer__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rrg-footer__locgrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rrg-trust { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rrg-callout { position: static; }
  .rrg-utility__list li:nth-child(n+3) { display: none; }
}

@media (max-width: 782px) {
  body { font-size: 16px; }
  /* The header phone button becomes icon-only here. Hiding its text with
     display:none would take it out of the accessibility tree too and leave an
     unlabelled link, so the label is moved out of sight instead. */
  .rrg-header__in > .rrg-btn span {
    position: absolute !important;
    width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
  .rrg-header__in { gap: 12px; }
  .rrg-navtoggle__label { display: none; }
  .rrg-header__in > .rrg-btn { min-width: 46px; padding: 12px; }
  .rrg-brand--mark img { height: 58px; }
  .rrg-hero__grid { padding-top: 32px; padding-bottom: 36px; }
  .rrg-hero__actions .rrg-btn { width: 100%; }
  .rrg-footer__grid, .rrg-footer__locgrid, .rrg-trust { grid-template-columns: 1fr; }
  .rrg-utility__list { gap: 16px; font-size: 12px; }
  .rrg-utility__list li:nth-child(n+2) { display: none; }

  /* Phone is the primary action in an urgent vertical — keep it reachable. */
  .rrg-sticky {
    display: flex; gap: 10px; align-items: center;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    background: #fff; border-top: 1px solid var(--line-strong);
    box-shadow: 0 -6px 20px -12px rgba(22,32,43,.28); padding: 11px 14px;
  }
  .rrg-sticky .rrg-btn--primary { flex: 1 1 auto; }
  .rrg-sticky .rrg-btn { min-height: 52px; }
  body { padding-bottom: 78px; }
}

/* ---------- byline and people ----------

   "Clinically reviewed" rather than "medically reviewed": the reviewers hold
   LADC and LICSW licenses, not medical degrees. The review line is set apart
   from the author line because it is the one carrying the weight. */

.rrg-byline { display: grid; gap: 8px; margin: 4px 0 0; }
.rrg-byline__line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0; font-size: 14.5px; color: var(--body); }
.rrg-byline__avatar img { display: block; width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
.rrg-byline__label { color: var(--muted); }
.rrg-byline a { color: var(--deep); text-decoration: none; font-weight: 600; }
.rrg-byline a:hover { text-decoration: underline; }
.rrg-byline__on { color: var(--muted); }
.rrg-byline__line--review .rrg-icon { stroke: var(--sea); }

/* On a treatment page the credit sits above the body, because somebody deciding
   whether to trust what a page says about risk wants to know a clinician checked
   it before they read it, not after.

   Sitting there it needs to read as metadata about the page rather than as the
   page's first sentence. A rule above it did not do that: the copy started flush
   against it and the two ran together. Its own quiet surface separates them, and
   the space below is what actually keeps the article's opening line an opening
   line. --body on --tint is 5.89:1, --muted 4.84:1, --deep 7.70:1. */
.rrg-byline--compact {
  margin: 26px 0 32px;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--tint);
  font-size: 14px;
}
/* Its own row, always. At the width of the content column this wraps anyway, and
   a deliberate break reads better than an accidental one. */
.rrg-byline--compact .rrg-byline__how { flex-basis: 100%; margin-top: 3px; }

.rrg-personcard {
  display: grid; grid-template-columns: 104px 1fr; gap: 20px; align-items: start;
  background: var(--tint); border: 1px solid var(--line);
  border-radius: 4px; padding: 22px 24px;
}
.rrg-personcard + .rrg-personcard { margin-top: 14px; }
.rrg-personcard__media img { display: block; width: 104px; height: 104px; object-fit: cover; border-radius: 50%; }
.rrg-personcard__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); margin: 0 0 6px; }
.rrg-personcard__name { font-size: 1.15rem; margin-bottom: 3px; }
body .rrg-personcard__name { font-size: 1.15rem; line-height: 1.3; }
.rrg-personcard__name a { color: var(--ink); text-decoration: none; }
.rrg-personcard__name a:hover { color: var(--deep); text-decoration: underline; }
.rrg-personcard__role { font-size: 13.5px; color: var(--sea); font-weight: 600; margin: 0 0 8px; }
.rrg-personcard__bio { margin: 0; font-size: 14.5px; line-height: 1.62; color: var(--body); }
.rrg-personcard__spec { margin: 10px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--body); }
.rrg-personcard__speclabel { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }

.rrg-person__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--tint); border: 1px solid var(--line-strong);
  border-radius: 999px; padding: 7px 14px;
  font-size: 13.5px; color: var(--body); margin: 0;
}
.rrg-person__badge .rrg-icon { stroke: var(--sea); }

/* Somebody who has left. Reads as a statement of fact rather than a warning:
   the review credits that point here are still good. White ground because the
   hero is a tint-to-white gradient and a tinted panel disappears into the top
   of it. --body on white is 6.2:1. */
.rrg-person__note {
  margin: 0; max-width: 62ch;
  background: #fff; border: 1px solid var(--line);
  border-left: 3px solid var(--sea-icon); border-radius: 6px;
  padding: 12px 16px;
  font-size: 14.5px; line-height: 1.6; color: var(--body);
}

/* ---------- related reading ---------- */

.rrg-related { background: var(--tint); }
.rrg-related__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(264px, 1fr)); gap: 18px;
}
.rrg-related__card {
  display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid var(--line-strong);
  border-radius: 4px; overflow: hidden; text-decoration: none;
  transition: box-shadow .14s ease, border-color .14s ease;
}
.rrg-related__card:hover { border-color: var(--field); box-shadow: var(--shadow); }
.rrg-related__media { display: block; }
.rrg-related__media img { display: block; width: 100%; height: 158px; object-fit: cover; }
.rrg-related__body { display: flex; flex-direction: column; gap: 7px; padding: 16px 18px 18px; }
.rrg-related__cat { font-size: 11.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--sea); }
.rrg-related__title { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 1rem; line-height: 1.35; color: var(--ink); }
body a.rrg-related__card { color: var(--ink); }

/* The one link from the blog into the treatment pages, in place of the
   conversion band that used to sit here. */
.rrg-related__treatment {
  display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
  margin: 26px 0 0; padding-top: 20px;
  border-top: 1px solid var(--line-strong);
  font-size: 15px; color: var(--body);
}
.rrg-related__treatment a { color: var(--deep); font-weight: 600; }

/* ---------- blog post ---------- */

.rrg-posthead__h1 { font-size: clamp(1.85rem, 3.2vw, 2.5rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.14; margin-bottom: 16px; }
body .rrg-posthead__h1 { font-size: clamp(1.85rem, 3.2vw, 2.5rem); line-height: 1.14; }
.rrg-posthead__meta { margin: 12px 0 0; font-size: 13.5px; color: var(--muted); }
/* Same grid as the body above it, so the cards line up under the article
   rather than running the full width of the page. A 1200px measure on a
   biography is well past a comfortable line length. */
.rrg-post__foot { display: grid; grid-template-columns: 8fr 4fr; gap: 48px; padding-bottom: 56px; }
.rrg-post__foot > div { grid-column: 1; }
@media (max-width: 1000px) {
  .rrg-post__foot { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 600px) {
  .rrg-personcard { grid-template-columns: 1fr; gap: 14px; }
  .rrg-personcard__media img { width: 84px; height: 84px; }
}

/* ---------- towns index ---------- */

.rrg-towns { background: var(--tint); }
.rrg-towns__county + .rrg-towns__county { margin-top: 40px; }
.rrg-towns__countyh {
  font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 16px;
  padding-bottom: 10px; border-bottom: 1px solid var(--line-strong);
}
body .rrg-towns__countyh { font-size: 12.5px; line-height: 1.3; }

.rrg-towns__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(248px, 1fr)); gap: 14px;
}
.rrg-town {
  background: #fff; border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 18px 20px 16px;
}
.rrg-town__name { font-size: 1.05rem; font-weight: 600; color: var(--ink); margin-bottom: 5px; }
body .rrg-town__name { font-size: 1.05rem; line-height: 1.3; }
.rrg-town__drive {
  display: flex; align-items: center; gap: 7px;
  margin: 0 0 12px; font-size: 13px; color: var(--muted);
}
.rrg-town__drive .rrg-icon { stroke: var(--sea-icon); flex-shrink: 0; }

.rrg-town__services { list-style: none; margin: 0; padding: 0; }
.rrg-town__services li { border-top: 1px solid var(--line); }
.rrg-town__services li:first-child { border-top: 0; }
.rrg-town__services a { display: block; padding: 7px 0; font-size: 14px; line-height: 1.4; color: var(--deep); text-decoration: none; }
.rrg-town__services a:hover { text-decoration: underline; }

/* ---------- sidebar section list ----------

   The callout and the list stick together rather than the callout alone, so a
   reader four thousand pixels into a substance page can still reach the other
   substances. Capped to the viewport with its own scroll, because ten items
   under the callout is taller than a short laptop screen. */

.rrg-aside__stack {
  position: sticky; top: 24px;
  display: grid; gap: 18px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.rrg-aside__stack .rrg-callout { position: static; top: auto; }

.rrg-sidenav { border: 1px solid var(--line); border-radius: 4px; padding: 18px 20px 14px; background: #fff; }
.rrg-sidenav__h { font-size: 12.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; margin-bottom: 10px; }
body .rrg-sidenav__h { font-size: 12.5px; line-height: 1.3; }
.rrg-sidenav__h a { color: var(--muted); text-decoration: none; }
.rrg-sidenav__h a:hover { color: var(--deep); text-decoration: underline; }

.rrg-sidenav__list { list-style: none; margin: 0; padding: 0; }
.rrg-sidenav__list li { border-top: 1px solid var(--line); }
.rrg-sidenav__list li:first-child { border-top: 0; }
.rrg-sidenav__list a {
  display: block; padding: 9px 0;
  font-size: 14.5px; line-height: 1.4;
  color: var(--body); text-decoration: none;
}
.rrg-sidenav__list a:hover { color: var(--deep); }
/* The page you are on: marked, not removed, so the set stays legible. */
.rrg-sidenav__list .is-current a { color: var(--ink); font-weight: 600; }
.rrg-sidenav__list .is-current { border-left: 3px solid var(--deep); padding-left: 11px; margin-left: -14px; }

@media (max-width: 1000px) {
  /* Stacked under the body, nothing to stick to and nothing to cap. */
  .rrg-aside__stack { position: static; max-height: none; overflow: visible; }
}

/* ---------- the centers, one row each ----------

   Used only on the treatment centers hub. Three photographs per center, sized
   to a fixed frame because the source images are a mix of portrait phone shots
   and landscape drone stills and nothing else would line up. */

.rrg-facrows { background: var(--tint); padding: 60px 0 68px; }
.rrg-facrows__head { max-width: 62ch; margin-bottom: 40px; }

.rrg-facrow {
  display: grid; grid-template-columns: 7fr 5fr; gap: 48px;
  align-items: center;
  padding: 40px 0;
  border-top: 1px solid var(--line-strong);
}
.rrg-facrow:first-of-type { border-top: 0; padding-top: 0; }

/* One large photograph with two stacked beside it. */
.rrg-facrow__media {
  display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr;
  gap: 10px; height: 400px;
}
.rrg-facrow__media figure { margin: 0; overflow: hidden; border-radius: 4px; background: #fff; }
.rrg-facrow__media figure:first-child { grid-row: 1 / 3; }
.rrg-facrow__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* A center with only one photograph should not leave two empty frames. */
.rrg-facrow__media:has(figure:only-child) { grid-template-columns: 1fr; grid-template-rows: 1fr; }

/* Alternate the side so three rows do not read as a list. */
.rrg-facrow--flip .rrg-facrow__media { order: 2; }
.rrg-facrow--flip .rrg-facrow__copy  { order: 1; }

.rrg-facrow__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.rrg-facrow__name { font-size: 1.45rem; letter-spacing: -.02em; line-height: 1.2; }
body .rrg-facrow__name { font-size: 1.45rem; line-height: 1.2; }
.rrg-facrow__name a { color: var(--ink); text-decoration: none; }
.rrg-facrow__name a:hover { color: var(--deep); text-decoration: underline; }
.rrg-facrow__type { font-size: 13px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--sea); margin: 0; }
.rrg-facrow__lede { margin: 0; font-size: 16px; line-height: 1.62; max-width: 46ch; }
.rrg-facrow__addr { font-style: normal; font-size: 15px; line-height: 1.62; color: var(--body); margin: 0; }
.rrg-facrow__facts { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 7px; font-size: 14px; color: var(--body); }
.rrg-facrow__facts li { display: flex; align-items: center; gap: 8px; }
.rrg-facrow__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }

@media (max-width: 1000px) {
  .rrg-facrow { grid-template-columns: 1fr; gap: 28px; padding: 32px 0; }
  /* Stacked, the photographs lead whichever side they were on. */
  .rrg-facrow--flip .rrg-facrow__media,
  .rrg-facrow--flip .rrg-facrow__copy { order: initial; }
  .rrg-facrow__media { height: 300px; }
}
@media (max-width: 600px) {
  .rrg-facrow__media { grid-template-columns: 1fr; grid-template-rows: 1fr; height: 240px; }
  .rrg-facrow__media figure:not(:first-child) { display: none; }
  .rrg-facrow__actions .rrg-btn { flex: 1 1 auto; }
}

/* ---------- hub child grid ----------

   The generated list of a hub's children. Sized so ten substances and three
   about-pages both look deliberate: auto-fit rather than a fixed track count,
   so the row fills whatever the child count happens to be. */

.rrg-children { background: var(--tint); }
.rrg-children__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(264px, 1fr)); gap: 16px;
}
.rrg-children__card {
  display: flex; flex-direction: column; gap: 8px; height: 100%;
  background: #fff; border: 1px solid var(--line-strong);
  border-left: 3px solid var(--sea-icon);
  border-radius: 3px; padding: 20px 22px;
  text-decoration: none;
  transition: border-left-color .14s ease, box-shadow .14s ease;
}
.rrg-children__card:hover { border-left-color: var(--deep); box-shadow: var(--shadow); }
.rrg-children__name { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 1.05rem; color: var(--ink); line-height: 1.3; }
.rrg-children__text { font-size: 14.5px; line-height: 1.6; color: var(--body); }
.rrg-children__more { margin-top: auto; padding-top: 4px; font-size: 13.5px; font-weight: 600; color: var(--deep); }
body a.rrg-children__card { color: var(--ink); }
body a.rrg-children__card:hover { color: var(--ink); }

/* ---------- admissions ----------

   Full width, no reading column. This page is a sequence rather than an
   article, and a 60ch measure with a callout beside it would fight the steps
   and the form for the same horizontal space. */

.rrg-hero--wide { background: var(--navy); border-bottom: 0; }
.rrg-hero--wide .rrg-wrap { padding-top: 64px; padding-bottom: 68px; }
.rrg-hero__wide {
  display: flex; flex-direction: column; align-items: flex-start; gap: 20px;
  max-width: 800px;
}
body .rrg-hero--wide .rrg-hero__h1   { color: #fff; max-width: 18ch; }
body .rrg-hero--wide .rrg-hero__lede { color: #E4EEF8; max-width: 60ch; }
body .rrg-hero--wide .rrg-eyebrow    { color: var(--on-navy); }
body .rrg-hero--wide .rrg-eyebrow .rrg-icon { stroke: var(--on-navy); }
body .rrg-hero--wide .rrg-hero__note { color: #E4EEF8; }
body .rrg-hero--wide .rrg-hero__note .rrg-icon { stroke: #E4EEF8; }

/* The insurance form.

   The form asks for a date of birth and a member ID, which is more than any
   other form on the site. The column beside it exists to earn that: what the
   details are for, what happens next, and how long it takes. */
.rrg-verify { background: var(--tint); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rrg-verify__grid {
  display: grid; grid-template-columns: 5fr 7fr; gap: 56px;
  align-items: start;
  /* Longhand. The shorthand resets padding-left/right, which wipes out the
     gutter .rrg-wrap sets and drops this band 40px left of every other one. */
  padding-top: 72px; padding-bottom: 72px;
}
.rrg-verify__h { font-size: clamp(1.5rem, 2.6vw, 2rem); letter-spacing: -.02em; margin-bottom: 14px; }
.rrg-verify__copy .rrg-prose { max-width: 46ch; }

.rrg-verify__steps { list-style: none; counter-reset: v; margin: 26px 0 0; padding: 0; display: grid; gap: 14px; }
.rrg-verify__steps li {
  counter-increment: v;
  display: grid; grid-template-columns: 26px 1fr; gap: 12px;
  align-items: start; font-size: 15.5px; line-height: 1.55;
}
.rrg-verify__steps li::before {
  content: counter(v);
  display: grid; place-items: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: #fff; border: 1px solid var(--line-strong);
  font-size: 12.5px; font-weight: 600; color: var(--deep);
  font-variant-numeric: tabular-nums;
}

.rrg-verify__or { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 28px 0 0; font-size: 15px; }

.rrg-verify__form {
  background: #fff; border: 1px solid var(--line);
  border-radius: 4px; padding: 30px 30px 26px;
  box-shadow: var(--shadow);
}
.rrg-verify__note {
  display: flex; gap: 9px; align-items: flex-start;
  margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line);
  font-size: 13px; line-height: 1.55; color: var(--muted);
}
.rrg-verify__note .rrg-icon { stroke: var(--muted); flex-shrink: 0; margin-top: 2px; }

/* The closing band on this page carries no form, so the two-column grid would
   leave half of it empty. */
.rrg-cta__grid--single { grid-template-columns: minmax(0, 720px); justify-content: center; text-align: center; }
.rrg-cta__grid--single .rrg-hero__actions { justify-content: center; }
/* Both the heading and the lede carry a max-width. text-align centers the text
   inside those boxes, but the boxes themselves stay left-aligned unless the
   margins are told otherwise, which left the heading sitting off-center above
   a centered paragraph. */
.rrg-cta__grid--single .rrg-cta__h,
.rrg-cta__grid--single .rrg-cta__lede { margin-left: auto; margin-right: auto; }

@media (max-width: 1000px) {
  .rrg-verify__grid { grid-template-columns: 1fr; gap: 34px; padding-top: 48px; padding-bottom: 48px; }
  .rrg-hero--wide .rrg-wrap { padding-top: 44px; padding-bottom: 46px; }
}
@media (max-width: 782px) {
  .rrg-verify__form { padding: 22px 20px 20px; }
  .rrg-verify__or .rrg-btn { width: 100%; }
}

/* ---------- breadcrumbs ----------

   The trail sits between the header and the hero rather than inside each hero,
   so it looks the same on the five templates and none of them has to make room
   for it. The separator is drawn here rather than written into the markup: as
   content it would be read out between every step. */

.rrg-crumbs { background: var(--tint); border-bottom: 1px solid var(--line); }
.rrg-crumbs__list {
  display: flex; flex-wrap: wrap; align-items: center;
  list-style: none; margin: 0; padding: 11px 0;
  font-size: 13.5px; line-height: 1.5;
}
.rrg-crumbs__list li { display: flex; align-items: center; min-width: 0; }
.rrg-crumbs__list li + li::before {
  content: "";
  width: 6px; height: 6px; margin: 0 10px;
  border-right: 1.5px solid var(--field);
  border-bottom: 1.5px solid var(--field);
  transform: rotate(-45deg);
  flex-shrink: 0;
}
.rrg-crumbs a { color: var(--deep); text-decoration: none; }
.rrg-crumbs a:hover { color: var(--navy); text-decoration: underline; }
.rrg-crumbs .breadcrumb_last { color: var(--body); }

@media (max-width: 782px) {
  .rrg-crumbs__list { font-size: 12.5px; padding: 9px 0; }
  .rrg-crumbs__list li + li::before { margin: 0 7px; }
}

/* ---------- navigation panel ----------

   Everything here is behind .rrg-js. With no script the toggle button would do
   nothing, so it stays hidden and the menu renders as a plain expanded list
   under the header — slightly ungainly, but every link is reachable, which a
   drawer that cannot open would not be. */

@media (max-width: 1200px) {
  .rrg-header__in { flex-wrap: wrap; }
  .rrg-header__in > .rrg-btn { order: 2; margin-left: auto; }
  .rrg-navtoggle { order: 3; }
  .rrg-nav { order: 4; width: 100%; }

  .rrg-nav__list { flex-direction: column; gap: 0; font-size: 16px; }
  .rrg-nav__list > li { position: static; border-top: 1px solid var(--line); }
  .rrg-nav__list > li:first-child { border-top: 0; }
  .rrg-nav__row { justify-content: space-between; }
  .rrg-nav__link { padding: 14px 0; white-space: normal; }
  .rrg-nav__list > .current-menu-item .rrg-nav__link,
  .rrg-nav__list > .current-menu-ancestor .rrg-nav__link,
  .rrg-nav__list > .current-page-ancestor .rrg-nav__link { box-shadow: none; font-weight: 600; }

  /* Stacked, not floated. */
  .rrg-nav__sub {
    position: static; visibility: visible; opacity: 1; transform: none;
    background: none; border: 0; border-radius: 0; box-shadow: none;
    min-width: 0; padding: 0 0 14px 2px;
  }
  .rrg-nav__item--wide > .rrg-nav__sub { columns: 1; min-width: 0; left: auto; right: auto; }
  .rrg-nav__sub a { padding: 9px 0 9px 14px; border-left: 2px solid var(--line); }
  .rrg-nav__sub a:hover { border-left-color: var(--deep); }

  .rrg-navtoggle {
    display: inline-flex; align-items: center; gap: 9px;
    appearance: none; background: none; border: 1px solid var(--line-strong);
    border-radius: 4px; padding: 10px 14px; min-height: 46px;
    font: inherit; font-size: 15px; font-weight: 600; color: var(--ink); cursor: pointer;
  }
  .rrg-navtoggle:hover { border-color: var(--field); }
  .rrg-navtoggle__bars { display: block; width: 18px; }
  .rrg-navtoggle__bars span { display: block; height: 2px; background: currentColor; border-radius: 2px; }
  .rrg-navtoggle__bars span + span { margin-top: 4px; }

  .rrg-nav__actions { display: flex; flex-direction: column; gap: 10px; margin-top: 26px; }
  .rrg-nav__actions .rrg-btn { width: 100%; }

  /* With the script running the list becomes a drawer. visibility, not just the
     transform, so nothing inside it is focusable while it is closed. */
  .rrg-js .rrg-nav {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 90;
    width: min(400px, 88vw); order: initial;
    background: #fff; padding: 22px 24px 48px;
    overflow-y: auto; overscroll-behavior: contain;
    box-shadow: -12px 0 44px -24px rgba(8,49,107,.55);
    visibility: hidden; transform: translateX(101%);
    /* visibility is discrete, so a plain duration would flip it halfway through
       the slide: closed it is delayed until the panel has left, open it happens
       at once, otherwise the first link is unfocusable when focus moves to it. */
    transition: transform .22s ease, visibility 0s linear .22s;
  }
  .rrg-js .rrg-nav.is-open {
    visibility: visible; transform: none;
    transition: transform .22s ease, visibility 0s;
  }

  .rrg-js .rrg-nav__sub { display: none; }
  .rrg-js .rrg-nav__item--open > .rrg-nav__sub { display: block; }
}

@media (min-width: 1201px) {
  .rrg-navtoggle { display: none; }
}

.rrg-nav__scrim {
  position: fixed; inset: 0; z-index: 80;
  background: rgba(8,32,60,.45);
  opacity: 0; pointer-events: none; transition: opacity .22s ease;
}
.rrg-nav__scrim.is-on { opacity: 1; pointer-events: auto; }
.rrg-navlock { overflow: hidden; }

/* ------------------------------------------------------------------
   Elementor coexistence.

   Elementor's global kit stylesheet targets bare elements through a body
   class — `.elementor-kit-11 h2` — which is specificity (0,1,1) and beats a
   single class of ours. Elementor stays active through the transition so the
   legacy the_content() still renders, so the shell needs to out-specify it.

   Prefixing with `body` matches that specificity and our later load order
   wins the tie. Scoped to the shell only: anything inside .rrg-body__content
   is deliberately left to Elementor and theme.json.
   ------------------------------------------------------------------ */

body .rrg-hero__h1 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.07; letter-spacing: -.025em; font-weight: 700; }
body .rrg-hero__lede { font-size: 18.5px; line-height: 1.62; }
body .rrg-fac__title { font-size: 19px; line-height: 1.25; font-weight: 600; letter-spacing: -.012em; }
body .rrg-fac__eyebrow { font-size: 11.5px; letter-spacing: .14em; }
body .rrg-fac__badge { font-size: 12px; }
body .rrg-fac__addr { font-size: 14.5px; line-height: 1.55; }
body .rrg-callout h2 { font-size: 1.05rem; line-height: 1.3; }
body .rrg-cta__h { font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.14; }
body .rrg-cta__form h2 { font-size: 1.25rem; line-height: 1.3; }
body .rrg-footer__h { font-size: 12px; letter-spacing: .14em; line-height: 1.4; }
body .rrg-footer__loc h3 { font-size: 15px; line-height: 1.3; font-weight: 600; }
body .rrg-eyebrow { font-size: 12px; letter-spacing: .13em; line-height: 1.4; }
body .rrg-btn { font-size: 17px; line-height: 1.2; }
body .rrg-btn--solid, body .rrg-btn--ghost, body .rrg-btn--ghost-solid { font-size: 15px; }
body .rrg-brand__name { font-size: 21px; line-height: 1.1; }
body .rrg-brand__sub { font-size: 10.5px; line-height: 1.2; }
body .rrg-trust li { font-size: 14.5px; line-height: 1.45; }
body .rrg-utility { font-size: 13px; line-height: 1.4; }
body .rrg-footer { font-size: 14px; line-height: 1.6; }
body .rrg-footer__loc address { font-size: 13.5px; line-height: 1.55; }
body .rrg-footer__links { font-size: 13.5px; }

@media (max-width: 782px) {
  body .rrg-hero__h1 { font-size: 2rem; }
}

/* Elementor's kit also styles bare `a`, which out-specifies our button
   classes and rendered the solid button as blue-on-blue. Colors restated at
   matching specificity — these are contrast-critical, not cosmetic. */
body .rrg-btn--primary        { background: var(--amber); color: var(--amber-ink); }
body .rrg-btn--primary:hover  { background: #F0AC2E; color: var(--amber-ink); }
body .rrg-btn--solid          { background: var(--deep); color: #fff; }
body .rrg-btn--solid:hover    { background: var(--navy); color: #fff; }
body .rrg-btn--outline        { background: #fff; color: var(--deep); border-color: var(--deep); }
body .rrg-btn--outline:hover  { background: var(--tint); color: var(--navy); }
body .rrg-btn--outline-light  { background: transparent; color: #fff; border-color: #72A2D5; }
body .rrg-btn--ghost          { background: #fff; color: var(--deep); border-color: #C9DCEE; }
body .rrg-btn--ghost-solid    { background: #fff; color: var(--deep); border-color: var(--deep); }

body .rrg-utility            { color: #DCE9F5; }
body .rrg-utility a:not(.rrg-btn) { color: #fff; }
body .rrg-crumbs a           { color: var(--deep); }
body .rrg-crumbs a:hover     { color: var(--navy); }
body .rrg-crumbs .breadcrumb_last { color: var(--body); }
body .rrg-nav__list a        { color: #33414E; }
body .rrg-brand__name        { color: var(--deep); }
body .rrg-brand--footer .rrg-brand__name { color: #fff; }
body .rrg-footer             { color: var(--on-navy); }
body .rrg-footer a:not(.rrg-btn)       { color: var(--on-navy); }
body .rrg-footer a:not(.rrg-btn):hover { color: #fff; }
body .rrg-footer__loc h3 a   { color: #fff; }
body .rrg-footer__dir        { color: #fff; }
body .rrg-footer__h          { color: #fff; }
body .rrg-cta                { color: var(--on-deep); }
body .rrg-cta__h             { color: #fff; }
body .rrg-cta__lede          { color: var(--on-deep); }
body .rrg-fac__eyebrow       { color: var(--on-deep); }
body .rrg-fac__badge         { color: var(--amber-ink); }
body .rrg-eyebrow            { color: var(--deep); }
body .rrg-hero__note         { color: var(--muted); }

/* ---------- related services (generated internal links) ---------- */
.rrg-relatedband { border-top: 1px solid var(--line); background: var(--tint); }
.rrg-related { padding: 44px 0 48px; }
.rrg-related__h { font-size: 1.35rem; letter-spacing: -.015em; margin-bottom: 20px; }
.rrg-related__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.rrg-related__list a {
  display: flex; flex-direction: column; gap: 3px; height: 100%;
  background: #fff; border: 1px solid var(--line-strong); border-left: 3px solid var(--sea-icon);
  border-radius: 3px; padding: 14px 16px; text-decoration: none; min-height: 62px; justify-content: center;
}
.rrg-related__list a:hover { border-left-color: var(--deep); background: #fff; }
.rrg-related__name { font-weight: 600; font-size: 14.5px; color: var(--ink); line-height: 1.35; }
.rrg-related__meta { font-size: 12.5px; color: var(--muted); }
body .rrg-related__h { font-size: 1.35rem; line-height: 1.25; }
body .rrg-related__list a { color: var(--ink); }
@media (max-width: 1000px) { .rrg-related__list { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px)  { .rrg-related__list { grid-template-columns: 1fr; } }

/* Summary box at the top of a treatment page, and the crisis note at the foot.
   Both are the theme's own tint surface rather than anything new, so a treatment
   page keeps one visual vocabulary. --body on --tint is 5.89:1. */
.rrg-keypoints {
  background: var(--tint); border: 1px solid var(--line);
  border-left: 3px solid var(--amber);
  border-radius: 4px; padding: 20px 24px; margin: 0 0 30px;
}
.rrg-body__content .rrg-keypoints__h {
  font-size: 1.06rem; margin: 0 0 10px; color: var(--ink); letter-spacing: -.005em;
}
.rrg-keypoints ul { margin: 0; padding-left: 20px; max-width: 68ch; }
.rrg-keypoints li { margin-bottom: 7px; line-height: 1.55; color: var(--body); }
.rrg-keypoints li:last-child { margin-bottom: 0; }

/* Full width of the content column. `.rrg-body__content p` caps paragraphs at
   68ch, and at this smaller size 68ch is narrower than the body text above it,
   so the note read as an inset rather than a footer to the article. The class
   needs the column in its selector to outrank that rule. */
.rrg-body__content .rrg-medical-note {
  margin: 34px 0 0; padding: 14px 18px;
  background: var(--tint); border: 1px solid var(--line); border-radius: 4px;
  font-size: 13.5px; line-height: 1.55; color: var(--body);
  max-width: none;
}

/* Tables in body copy. Gutenberg wraps core/table in a figure, which is what
   scrolls on a narrow screen so the page itself never does. Header is navy at
   12.6:1, well clear of the minimum. */
/* min-width:0 on the column is the load-bearing part. A grid item defaults to
   min-width:auto, so it refuses to shrink below its widest child and the table
   pushes the whole page sideways instead of scrolling inside its own figure. */
.rrg-body__content { min-width: 0; }
.rrg-body__content .wp-block-table { overflow-x: auto; max-width: 100%; margin-bottom: 1.6em; }
.rrg-body__content .wp-block-table table {
  border-collapse: collapse; width: 100%; min-width: 520px; font-size: 14.5px;
}
.rrg-body__content .wp-block-table th {
  background: var(--navy); color: #fff; text-align: left; font-weight: 600;
  padding: 11px 14px; border: 0; line-height: 1.4;
}
.rrg-body__content .wp-block-table td {
  padding: 11px 14px; border: 1px solid var(--line); vertical-align: top;
  line-height: 1.55; color: var(--body);
}
.rrg-body__content .wp-block-table tbody tr:nth-child(even) td { background: var(--tint); }
.rrg-body__content .wp-block-table td:first-child { font-weight: 600; color: var(--ink); }

/* Body-copy components. Deliberately NOT called .rrg-callout: that name is the
   sidebar's, and a post that redefined it restyled the sidebar on every page it
   appeared on. Anything meant for the article body is namespaced rrg-note,
   rrg-warning, rrg-timeline. */

.rrg-note {
  background: var(--card-bg, #fff); border: 1px solid var(--line);
  border-left: 3px solid var(--deep); border-radius: 4px;
  padding: 18px 22px; margin: 0 0 1.6em;
}
.rrg-body__content .rrg-note__h { font-size: 1.02rem; margin: 0 0 7px; color: var(--ink); }
.rrg-note p { margin: 0; }

/* A warning that carries real risk. Red is reserved for this: nothing else on
   the site uses it, so it keeps its meaning. #8E2A22 on #FDECEC is 7.4:1, and
   the meaning does not rest on the color alone. */
.rrg-warning {
  background: #FDECEC; border: 1px solid #F3CFCB;
  border-left: 3px solid #A8261C; border-radius: 4px;
  padding: 18px 22px; margin: 0 0 1.6em; color: #5C1F19;
}
.rrg-warning strong { color: #8E2A22; }
.rrg-warning p { margin: 0; }

/* An ordered sequence, so it is an <ol> and the numbers are real. */
.rrg-body__content ol.rrg-timeline { list-style: none; padding: 0 0 0 26px; margin: 0 0 1.6em; position: relative; max-width: 68ch; }
.rrg-timeline::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: var(--line-strong); }
.rrg-timeline > li { position: relative; margin: 0 0 18px; }
.rrg-timeline > li:last-child { margin-bottom: 0; }
.rrg-timeline > li::before {
  content: ""; position: absolute; left: -26px; top: 7px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--amber); box-shadow: 0 0 0 2px var(--deep);
}
.rrg-timeline > li strong { display: block; color: var(--ink); margin-bottom: 3px; }

/* ---------- table of contents ---------- */
.rrg-toc {
  background: var(--tint); border: 1px solid #DCE8F2; border-radius: 4px;
  padding: 22px 26px 24px; margin: 2em 0 2.4em; max-width: 68ch;
}
.rrg-toc__h {
  font-size: 11.5px !important; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--deep); margin: 0 0 12px !important;
}
.rrg-toc__list { list-style: none; margin: 0; padding: 0; counter-reset: toc; display: flex; flex-direction: column; gap: 8px; }
.rrg-toc__list li { counter-increment: toc; display: flex; gap: 12px; align-items: baseline; margin: 0; }
.rrg-toc__list li::before {
  content: counter(toc, decimal-leading-zero);
  font-size: 12px; font-weight: 600; color: var(--sea); flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.rrg-toc__list a { color: var(--ink); text-decoration: none; font-size: 15.5px; line-height: 1.45; }
.rrg-toc__list a:hover { color: var(--deep); text-decoration: underline; }
body .rrg-toc__list a { color: var(--ink); }
body .rrg-toc__h { color: var(--deep); }

/* anchored headings should not land under a sticky element */
.rrg-body__content h2 { scroll-margin-top: 24px; }

/* ---------- facility photo grid ---------- */
.rrg-gallery { border-top: 1px solid var(--line); padding: 48px 0 52px; }
.rrg-gallery__h { font-size: 1.35rem; letter-spacing: -.015em; margin-bottom: 20px; }
body .rrg-gallery__h { font-size: 1.35rem; line-height: 1.25; }
.rrg-gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.rrg-gallery__grid li { margin: 0; }
.rrg-gallery__grid img { width: 100%; height: 200px; object-fit: cover; border-radius: 3px; display: block; background: var(--tint); }
@media (max-width: 1000px) { .rrg-gallery__grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px)  { .rrg-gallery__grid { grid-template-columns: 1fr; } .rrg-gallery__grid img { height: 220px; } }

/* gallery adapts to how many photos a facility actually has */
.rrg-gallery--three .rrg-gallery__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.rrg-gallery--two   .rrg-gallery__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.rrg-gallery--one   .rrg-gallery__grid { grid-template-columns: minmax(0, 620px); }
.rrg-gallery--one   .rrg-gallery__grid img { height: 320px; }
@media (max-width: 1000px) {
  .rrg-gallery--three .rrg-gallery__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* facility map: a flat image, not an embed. No third-party request from the page. */
.rrg-fac__map { display: block; border-bottom: 1px solid #E4EBF2; background: var(--tint); }
.rrg-fac__map img { display: block; width: 100%; height: 132px; object-fit: cover; }
.rrg-fac__map:hover { opacity: .93; }
.rrg-fac__map:focus-visible { outline: 3px solid var(--deep); outline-offset: -3px; }

/* ---------- homepage ---------- */
.rrg-hero--home .rrg-hero__h1 { max-width: 20ch; }
.rrg-callout--hero { position: static; }
.rrg-callout--hero .rrg-callout__foot {
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--muted); margin: 14px 0 0;
}
.rrg-callout--hero .rrg-callout__foot .rrg-icon { stroke: var(--sea-icon); }

/* centers */
.rrg-centers { border-top: 1px solid var(--line); background: var(--tint); padding: 56px 0 60px; }
.rrg-centers__head { max-width: 62ch; margin-bottom: 28px; }
.rrg-centers__h { font-size: 1.9rem; letter-spacing: -.02em; margin-bottom: 10px; }
body .rrg-centers__h { font-size: 1.9rem; line-height: 1.2; }
.rrg-centers__head p { margin: 0; }
.rrg-centers__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }
.rrg-center {
  background: #fff; border: 1px solid var(--line-strong); border-top: 3px solid var(--deep);
  border-radius: 3px; padding: 22px 20px; display: flex; flex-direction: column; gap: 8px;
}
.rrg-center__name { font-size: 16px; line-height: 1.3; font-weight: 600; }
body .rrg-center__name { font-size: 16px; line-height: 1.3; }
.rrg-center__name a { color: var(--ink); text-decoration: none; }
.rrg-center__name a:hover { color: var(--deep); text-decoration: underline; }
.rrg-center__type { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--sea); margin: 0; }
.rrg-center address { font-style: normal; font-size: 13.5px; line-height: 1.55; margin: 0; color: var(--body); }
.rrg-center__hours { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); margin: 0; }
.rrg-center__hours .rrg-icon { stroke: var(--sea-icon); }
.rrg-center__links { margin-top: auto; padding-top: 12px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.rrg-center__links .rrg-btn { width: 100%; }
.rrg-center__dir { font-size: 13.5px; font-weight: 500; }

/* levels of care */
.rrg-levels { border-top: 1px solid var(--line); padding: 56px 0 60px; }
.rrg-levels__h { font-size: 1.9rem; letter-spacing: -.02em; margin-bottom: 8px; }
body .rrg-levels__h { font-size: 1.9rem; line-height: 1.2; }
.rrg-levels__lede { max-width: 60ch; margin-bottom: 26px; }
.rrg-levels__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.rrg-levels__grid a {
  display: flex; flex-direction: column; gap: 6px; height: 100%;
  border: 1px solid var(--line-strong); border-left: 3px solid var(--sea-icon);
  border-radius: 3px; padding: 16px 18px; text-decoration: none; background: #fff;
}
.rrg-levels__grid a:hover { border-left-color: var(--deep); }
.rrg-levels__name { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 15.5px; color: var(--ink); }
.rrg-levels__desc { font-size: 13.5px; line-height: 1.55; color: var(--body); }
body .rrg-levels__grid a { color: var(--ink); }

@media (max-width: 1000px) {
  .rrg-centers__grid, .rrg-levels__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .rrg-centers__grid, .rrg-levels__grid { grid-template-columns: 1fr; }
}

/* ---------- homepage hero with media ---------- */
.rrg-hero--media .rrg-hero__grid { grid-template-columns: 6fr 6fr; align-items: center; }
.rrg-hero__media { margin: 0; border-radius: 4px; overflow: hidden; box-shadow: var(--shadow); }
.rrg-hero__media img { display: block; width: 100%; height: 420px; object-fit: cover; }
.rrg-hero__aside { position: relative; }

/* Where the aside is the admissions card rather than an image, it is 217px in a
   column the copy fills to 400 or more. Left aligned to the top that read as a
   hole; centered, the space around it reads as intentional. */
.rrg-hero--card .rrg-hero__grid { align-items: center; }
.rrg-hero__badge {
  position: absolute; left: 18px; bottom: 18px;
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 11px 15px; box-shadow: 0 8px 24px -14px rgba(16,28,41,.4);
  font-size: 12.5px; line-height: 1.35; color: var(--body);
}
.rrg-hero__badge .rrg-icon { stroke: var(--deep); }
.rrg-hero__badge strong { color: var(--ink); font-weight: 600; }

/* center card photo */
.rrg-center { padding: 0; overflow: hidden; }
.rrg-center > :not(.rrg-center__media) { margin-left: 20px; margin-right: 20px; }
.rrg-center__media { display: block; margin: 0 0 4px; }
.rrg-center__media img { display: block; width: 100%; height: 138px; object-fit: cover; }
.rrg-center__name { margin-top: 16px; }
.rrg-center__links { padding-bottom: 20px; }

/* ---------- editor-built sections ---------- */
.rrg-sec { padding: 56px 0; border-top: 1px solid var(--line); }
.rrg-sec__narrow { max-width: 760px; }
.rrg-sec__h { font-size: 1.9rem; letter-spacing: -.02em; margin-bottom: 16px; }
body .rrg-sec__h { font-size: 1.9rem; line-height: 1.2; }
.rrg-sec__intro { max-width: 62ch; margin-bottom: 26px; }
.rrg-prose > * { margin: 0 0 1.05em; max-width: 68ch; }
.rrg-prose > :last-child { margin-bottom: 0; }
.rrg-prose h3 { font-size: 1.2rem; margin-top: 1.6em; }
.rrg-prose li::marker { color: var(--sea); }

.rrg-sec__split { display: grid; grid-template-columns: 6fr 6fr; gap: 48px; align-items: center; }
.rrg-sec--img-left .rrg-sec__copy { order: 2; }
.rrg-sec--img-left .rrg-sec__media { order: 1; }
.rrg-sec__media img { display: block; width: 100%; height: 340px; object-fit: cover; border-radius: 4px; }

/* auto-fit rather than a fixed three: four cards make four columns, three make
   three, and neither leaves an orphan on a row of its own. */
.rrg-sec__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.rrg-sec__cards li { margin: 0; }
.rrg-sec__card {
  display: flex; flex-direction: column; gap: 7px; height: 100%;
  border: 1px solid var(--line-strong); border-top: 3px solid var(--sea-icon);
  border-radius: 3px; padding: 20px 22px; text-decoration: none; background: #fff;
}
a.rrg-sec__card:hover { border-top-color: var(--deep); }
.rrg-sec__cardtitle { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 1.05rem; color: var(--ink); }
.rrg-sec__cardtext { font-size: 14.5px; line-height: 1.6; color: var(--body); }
body a.rrg-sec__card { color: var(--ink); }

.rrg-faq__item { border-top: 1px solid var(--line); padding: 18px 0; }
.rrg-faq__item:last-child { border-bottom: 1px solid var(--line); }
.rrg-faq__item h3 { font-size: 1.08rem; margin-bottom: 6px; }
body .rrg-faq__item h3 { font-size: 1.08rem; line-height: 1.35; }
.rrg-faq__item p { margin: 0; max-width: 68ch; }

@media (max-width: 1000px) {
  .rrg-hero--media .rrg-hero__grid, .rrg-sec__split { grid-template-columns: 1fr; }
  .rrg-sec--img-left .rrg-sec__copy, .rrg-sec--img-left .rrg-sec__media { order: initial; }
  .rrg-hero__media img { height: 300px; }
  .rrg-sec__cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .rrg-sec__cards { grid-template-columns: 1fr; }
  .rrg-hero__badge { position: static; margin-top: 12px; }
}

/* ---------- steps: dark band, real sequence ---------- */
.rrg-steps { background: var(--navy); color: var(--on-navy); border-top: 0; padding: 62px 0 66px; }
.rrg-steps__head { max-width: 60ch; margin-bottom: 34px; }
.rrg-steps__h { color: #fff; font-size: 2rem; letter-spacing: -.02em; margin-bottom: 10px; }
body .rrg-steps__h { color: #fff; font-size: 2rem; line-height: 1.18; }
.rrg-steps__head p { color: var(--on-navy); margin: 0; }
.rrg-steps__list {
  list-style: none; margin: 0 0 32px; padding: 0; counter-reset: step;
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px;
}
.rrg-steps__list li { counter-increment: step; position: relative; padding-top: 44px; }
.rrg-steps__list li::before {
  content: counter( step, decimal-leading-zero );
  position: absolute; top: 0; left: 0;
  font-family: "Epilogue", sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .1em; color: var(--amber);
  border-top: 2px solid var(--amber); padding-top: 12px; min-width: 46px;
}
.rrg-steps__list h3 { color: #fff; font-size: 1.05rem; margin-bottom: 7px; }
body .rrg-steps__list h3 { color: #fff; font-size: 1.05rem; line-height: 1.3; }
.rrg-steps__list p { color: var(--on-navy); font-size: 14.5px; line-height: 1.62; margin: 0; }
.rrg-steps__cta .rrg-btn { display: inline-flex; }

/* The steps band, light.

   On the homepage this section is a dark interruption under a light hero. On
   admissions the hero is already navy, so the same treatment stacked two large
   blue areas with a white sliver between them. */
.rrg-admissions .rrg-steps { background: #fff; color: var(--body); border-top: 1px solid var(--line); }
body .rrg-admissions .rrg-steps__h,
body .rrg-admissions .rrg-steps__list h3 { color: var(--ink); }
.rrg-admissions .rrg-steps__head p,
.rrg-admissions .rrg-steps__list p { color: var(--body); }
/* The amber rule and numeral read as decoration on navy and as a warning on
   white, so on the light band they take the brand blue instead. */
.rrg-admissions .rrg-steps__list li::before { color: var(--deep); border-top-color: var(--sea-icon); }

/* ---------- insurance ---------- */
.rrg-ins { background: var(--tint); }
.rrg-ins__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: center; }
.rrg-ins__actions { margin-top: 22px; }
.rrg-ins__logos ul {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px;
}
.rrg-ins__logos li {
  background: #fff; border: 1px solid var(--line-strong); border-radius: 3px;
  display: flex; align-items: center; justify-content: center; padding: 14px 16px; min-height: 74px;
}
.rrg-ins__logos img { max-width: 100%; height: auto; max-height: 40px; width: auto; display: block; }
.rrg-ins__note { font-size: 12.5px; color: var(--muted); margin: 14px 0 0; }

/* ---------- testimonials ---------- */
.rrg-quotes__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.rrg-quotes__grid li { margin: 0; }
.rrg-quotes__grid figure {
  margin: 0; height: 100%; background: #fff;
  border: 1px solid var(--line-strong); border-top: 3px solid var(--amber);
  border-radius: 3px; padding: 24px 24px 20px;
  display: flex; flex-direction: column; gap: 18px;
}
.rrg-quotes__grid blockquote { margin: 0; }
.rrg-quotes__grid blockquote p { margin: 0; font-size: 15.5px; line-height: 1.68; color: var(--ink); }
.rrg-quotes__grid figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); }
.rrg-quotes__grid figcaption img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.rrg-quotes__grid figcaption strong { display: block; font-size: 14.5px; color: var(--ink); }
.rrg-quotes__role { display: block; font-size: 12.5px; color: var(--muted); }

/* ---------- team ---------- */
.rrg-team { background: var(--tint); }
.rrg-team__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; }
.rrg-team__grid li { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.rrg-team__grid img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 3px; margin-bottom: 8px; background: #fff; }
.rrg-team__name { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 15px; color: var(--ink); }
.rrg-team__role { font-size: 13px; line-height: 1.45; color: var(--muted); }
.rrg-team__more { margin: 24px 0 0; }

/* ---------- proof band ---------- */
.rrg-proof { background: var(--deep); color: var(--on-deep); padding: 46px 0 50px; }
.rrg-proof__h { color: #fff; font-size: 1.35rem; letter-spacing: -.015em; margin-bottom: 26px; }
body .rrg-proof__h { color: #fff; font-size: 1.35rem; line-height: 1.25; }
.rrg-proof__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.rrg-proof__grid li { margin: 0; display: flex; flex-direction: column; gap: 5px; border-left: 2px solid rgba(255,255,255,.28); padding-left: 18px; }
.rrg-proof__v { font-family: "Epilogue", sans-serif; font-size: 2.1rem; font-weight: 700; color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.05; }
.rrg-proof__l { font-size: 13.5px; line-height: 1.5; color: var(--on-deep); }

@media (max-width: 1000px) {
  .rrg-steps__list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rrg-ins__grid { grid-template-columns: 1fr; gap: 32px; }
  .rrg-quotes__grid { grid-template-columns: 1fr; }
  .rrg-team__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .rrg-proof__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .rrg-steps__list, .rrg-proof__grid { grid-template-columns: 1fr; }
  .rrg-team__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rrg-ins__logos ul { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* ---------- FAQ: two columns, native disclosure ---------- */
.rrg-faqsec__grid { display: grid; grid-template-columns: 4fr 8fr; gap: 56px; align-items: start; }
.rrg-faqsec__aside { position: sticky; top: 28px; }
.rrg-faqsec__aside p { margin: 0 0 20px; max-width: 34ch; }

.rrg-q { border-bottom: 1px solid var(--line-strong); }
.rrg-q:first-child { border-top: 1px solid var(--line-strong); }
.rrg-q summary {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 19px 0; cursor: pointer; list-style: none;
  font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 1.08rem;
  color: var(--ink); line-height: 1.35;
}
.rrg-q summary::-webkit-details-marker { display: none; }
.rrg-q summary:hover .rrg-q__text { color: var(--deep); }
.rrg-q summary:focus-visible { outline: 3px solid var(--deep); outline-offset: 3px; border-radius: 2px; }

/* plus / minus drawn in CSS so it needs no icon font or svg */
.rrg-q__icon { position: relative; flex-shrink: 0; width: 20px; height: 20px; }
.rrg-q__icon::before, .rrg-q__icon::after {
  content: ""; position: absolute; background: var(--deep);
  top: 50%; left: 50%; transform: translate(-50%, -50%);
}
.rrg-q__icon::before { width: 14px; height: 2px; }
.rrg-q__icon::after  { width: 2px; height: 14px; transition: transform .18s ease; }
.rrg-q[open] .rrg-q__icon::after { transform: translate(-50%, -50%) scaleY(0); }
@media (prefers-reduced-motion: reduce) { .rrg-q__icon::after { transition: none; } }

.rrg-q__a { padding: 0 0 20px; }
.rrg-q__a p { margin: 0; max-width: 68ch; font-size: 15.5px; line-height: 1.68; }

/* The plain text layout keeps a reading measure, but it starts on the same left
   edge as every other band. Centring it inside the wrap put a lone prose
   section 220px to the right of the section above and below it. */
.rrg-sec__narrow { margin-left: 0; margin-right: 0; }

@media (max-width: 1000px) {
  .rrg-faqsec__grid { grid-template-columns: 1fr; gap: 28px; }
  .rrg-faqsec__aside { position: static; }
}

/* Levels of care sits between two white sections and the closing CTA. Tinting
   it restores the alternation into the CTA without adding a fourth dark band,
   which would cost the CTA its weight as the only dark moment down there. */
.rrg-levels { background: var(--tint); }
.rrg-levels__grid a { background: #fff; }

/* ---------- facility page ---------- */
.rrg-hero--facility .rrg-hero__grid { grid-template-columns: 7fr 5fr; align-items: start; }
.rrg-fac--page { position: sticky; top: 24px; }

/* The general responsive rule at the top of this file cannot reach these two:
   a class on the hero out-specifies a bare `.rrg-hero__grid`, media query or
   not. Without this the address card stays in a five-column track on a phone. */
@media (max-width: 1000px) {
  .rrg-hero--facility .rrg-hero__grid { grid-template-columns: 1fr; gap: 28px; }
  .rrg-fac--page { position: static; }
}

/* Hero photograph.

   The photo sits under a navy wash rather than beside the copy, so the client
   can drop in any picture of their building without having to think about
   whether the headline will still be readable on top of it. The wash is heavy
   on the left, where the words are, and lifts towards the right, where the
   address card covers it anyway.

   Worst case is a photograph that is pure white: at 90% the composite is
   #21467A, which leaves white text at 9.5:1 and the pale blue lede at 5.4:1.
   Every real photograph is darker than that, so the contrast holds whatever
   they upload. */
.rrg-hero--photo {
  position: relative;
  isolation: isolate;
  background: var(--navy);
  border-bottom: 0;
}
.rrg-hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rrg-hero__bg img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: var(--focus, 50% 50%);
}
.rrg-hero__bg::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(8,49,107,.45) 0%, rgba(8,49,107,0) 45%),
    linear-gradient(90deg, rgba(8,49,107,.95) 0%, rgba(8,49,107,.88) 50%, rgba(8,49,107,.55) 100%);
}

/* Restated at body specificity: Elementor's kit stylesheet still sets colors
   on h1, p and a, and it out-specifies a bare class selector. */
body .rrg-hero--photo .rrg-hero__h1   { color: #fff; }
body .rrg-hero--photo .rrg-hero__lede { color: #E4EEF8; }
body .rrg-hero--photo .rrg-eyebrow    { color: var(--on-navy); }
body .rrg-hero--photo .rrg-eyebrow .rrg-icon { stroke: var(--on-navy); }
body .rrg-hero--photo .rrg-hero__note { color: #E4EEF8; }
body .rrg-hero--photo .rrg-hero__note .rrg-icon { stroke: #E4EEF8; }

/* The address card is the one opaque thing in the hero, so it gets a shadow
   deep enough to read against a photograph rather than against white. */
.rrg-hero--photo .rrg-fac--page {
  box-shadow: 0 2px 6px rgba(4,22,48,.18), 0 28px 60px -30px rgba(4,22,48,.65);
}

@media (max-width: 900px) {
  /* Stacked, the copy runs the full width, so the horizontal wash would leave
     the last lines sitting over the lightest part of the photo. */
  .rrg-hero__bg::after {
    background: linear-gradient(180deg, rgba(8,49,107,.94) 0%, rgba(8,49,107,.90) 100%);
  }
}

/* ---------------------------------------------------------------------------
   Listing pages: the blog, categories, search, 404, and the article lists on a
   person's page. One card and one grid across all of them.
   --------------------------------------------------------------------------- */

.rrg-archhead { border-bottom: 1px solid var(--line); padding: 46px 0 34px; }
.rrg-archhead__h1 {
  font-family: "Epilogue", sans-serif; font-weight: 700;
  font-size: clamp(2rem, 1.35rem + 2.2vw, 3rem);
  line-height: 1.08; letter-spacing: -.025em; color: var(--ink);
  margin: 10px 0 0; max-width: 20ch; text-wrap: balance;
}
.rrg-archhead__intro { margin-top: 16px; max-width: 62ch; }
.rrg-archhead__intro p { margin: 0 0 12px; font-size: 1.0625rem; line-height: 1.68; color: var(--body); }
.rrg-archhead__intro p:last-child { margin-bottom: 0; }
.rrg-archhead__count { margin: 12px 0 0; font-size: .95rem; color: var(--muted); }

/* Category filter. Wraps, so every category is visible at once: a sideways
   scrolling strip hid the last three behind a gesture, which on a phone made
   them effectively unreachable. */
.rrg-topics { border-bottom: 1px solid var(--line); padding: 18px 0 20px; }
.rrg-topics ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rrg-topics__link {
  display: inline-flex; align-items: baseline; gap: 6px;
  padding: 7px 14px; border-radius: 999px;
  font-size: .9375rem; font-weight: 600; line-height: 1.35;
  color: var(--body); text-decoration: none;
  background: #fff; border: 1px solid var(--line-strong);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.rrg-topics__link:hover { background: var(--tint); border-color: var(--field); color: var(--deep); }
.rrg-topics__n { font-size: 12px; font-weight: 600; color: var(--muted); font-variant-numeric: tabular-nums; }

/* The category being viewed. Color alone does not carry this, so the current
   item is also the only filled pill and is marked aria-current. */
body .rrg-topics__link.is-current { background: var(--deep); border-color: var(--deep); color: #fff; }
body .rrg-topics__link.is-current .rrg-topics__n { color: var(--on-deep); }

.rrg-sec--list { padding: 44px 0 56px; }
.rrg-listhead {
  font-family: "Epilogue", sans-serif; font-weight: 600;
  font-size: 1.0625rem; letter-spacing: .01em; color: var(--muted);
  margin: 0 0 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.rrg-sec--tint { background: var(--tint); border-top: 1px solid var(--line); }

/* Card grid */
.rrg-cardgrid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 26px 24px;
}
.rrg-card { display: flex; flex-direction: column; }
.rrg-card__media { display: block; overflow: hidden; border-radius: 10px; background: var(--tint); }
.rrg-card__media img {
  display: block; width: 100%; height: 186px; object-fit: cover;
  transition: transform .35s ease;
}
.rrg-card:hover .rrg-card__media img { transform: scale(1.03); }
/* The body grows and the meta line is pushed to the foot of it, so bylines and
   dates sit on one line across a row instead of stepping up and down with the
   length of each excerpt. */
.rrg-card__body { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; flex: 1 1 auto; }
.rrg-card__meta { margin-top: auto; }
.rrg-card__cat { margin: 0; font-size: 11.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
body .rrg-card__cat a { color: var(--sea); text-decoration: none; }
body .rrg-card__cat a:hover { color: var(--deep); text-decoration: underline; }
.rrg-card__title {
  font-family: "Epilogue", sans-serif; font-weight: 600;
  font-size: 1.125rem; line-height: 1.32; letter-spacing: -.01em; margin: 0;
}
body .rrg-card__title a { color: var(--ink); text-decoration: none; }
body .rrg-card__title a:hover { color: var(--deep); text-decoration: underline; }
.rrg-card__excerpt { margin: 0; font-size: .9375rem; line-height: 1.62; color: var(--body); }
.rrg-card__meta {
  margin: 8px 0 0; margin-top: auto; padding-top: 4px; font-size: 13px; color: var(--muted);
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px;
}
.rrg-card__by { font-weight: 600; color: var(--body); }
.rrg-card__by::after { content: "·"; margin-left: 8px; color: var(--muted); font-weight: 400; }

/* The lead card on the first page of the blog only. */
.rrg-cardgrid--lead .rrg-card--lead { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr 1fr; gap: 28px; align-items: center; }
.rrg-cardgrid--lead .rrg-card--lead .rrg-card__media img { height: 320px; }
.rrg-cardgrid--lead .rrg-card--lead .rrg-card__body { padding-top: 0; gap: 11px; }
.rrg-cardgrid--lead .rrg-card--lead .rrg-card__title { font-size: clamp(1.4rem, 1.05rem + 1.1vw, 1.85rem); }
.rrg-cardgrid--lead .rrg-card--lead .rrg-card__excerpt { font-size: 1.0125rem; }

/* Pagination */
.rrg-pager { margin-top: 40px; border-top: 1px solid var(--line); padding-top: 22px; }
.rrg-pager ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rrg-pager a, .rrg-pager span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 13px; border-radius: 8px;
  font-size: .9375rem; font-weight: 600; text-decoration: none;
  border: 1px solid var(--line-strong); color: var(--body);
  font-variant-numeric: tabular-nums;
}
body .rrg-pager a { color: var(--deep); }
body .rrg-pager a:hover { background: var(--tint); border-color: var(--field); }
body .rrg-pager .current { background: var(--deep); border-color: var(--deep); color: #fff; }
.rrg-pager .dots { border-color: transparent; }

/* Search form */
.rrg-search { display: flex; gap: 8px; margin-top: 18px; max-width: 480px; }
.rrg-search__field {
  flex: 1 1 auto; min-width: 0; height: 46px; padding: 0 14px;
  border: 1px solid var(--field); border-radius: 8px;
  font: inherit; font-size: 1rem; color: var(--ink); background: #fff;
}
.rrg-search__field:focus-visible { outline: 3px solid var(--sea-icon); outline-offset: 1px; }
body .rrg-btn.rrg-search__go { flex: 0 0 auto; }

.rrg-empty { font-size: 1.0625rem; color: var(--body); margin: 0; }
.rrg-empty--rich p { font-size: 1.0625rem; color: var(--body); margin: 0 0 26px; max-width: 60ch; }

/* Specialties list on a person page */
.rrg-callout--plain { background: #fff; border: 1px solid var(--line-strong); }
.rrg-speclist { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rrg-speclist li {
  font-size: 13px; font-weight: 600; color: var(--body);
  background: var(--tint); border: 1px solid var(--line);
  border-radius: 999px; padding: 4px 11px;
}

@media (max-width: 1000px) {
  .rrg-cardgrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .rrg-archhead { padding: 32px 0 26px; }
  .rrg-topics { padding: 14px 0 16px; }
  .rrg-topics ul { gap: 7px; }
  .rrg-topics__link { padding: 6px 12px; font-size: .875rem; }
  .rrg-cardgrid { grid-template-columns: 1fr; gap: 30px; }
  .rrg-cardgrid--lead .rrg-card--lead { grid-template-columns: 1fr; gap: 14px; }
  .rrg-cardgrid--lead .rrg-card--lead .rrg-card__media img { height: 210px; }
  .rrg-card__media img { height: 200px; }
  .rrg-sec--list { padding: 32px 0 40px; }
  .rrg-search { flex-wrap: wrap; }
  .rrg-search__field { flex-basis: 100%; }
}

/* A grid holding fewer cards than it has tracks. */
.rrg-cardgrid--n1 { grid-template-columns: minmax(0, 380px); }
.rrg-cardgrid--n2 { grid-template-columns: repeat(2, minmax(0, 380px)); }
.rrg-sec__lede { margin: -6px 0 20px; font-size: 1rem; color: var(--body); max-width: 60ch; }

/* ---------------------------------------------------------------------------
   Featured articles. Questions rather than teasers, so no thumbnails: five sit
   in a row without any of them becoming a postage stamp, and the section reads
   as a set of answers rather than a blog feed.
   --------------------------------------------------------------------------- */

.rrg-sec--articles { background: var(--tint); border-top: 1px solid var(--line); }
.rrg-qgrid { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.rrg-qgrid--n4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.rrg-qgrid--n5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
/* Six splits into two rows of three rather than six slivers. */
.rrg-qgrid--n6 { grid-template-columns: repeat(3, minmax(0,1fr)); }

.rrg-qcard {
  display: flex; flex-direction: column; gap: 9px; height: 100%;
  padding: 20px 18px 18px; border-radius: 12px;
  background: #fff; border: 1px solid var(--line-strong);
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.rrg-qcard:hover { border-color: var(--field); box-shadow: var(--shadow); transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .rrg-qcard { transition: none; } .rrg-qcard:hover { transform: none; } }

.rrg-qcard__title {
  font-family: "Epilogue", sans-serif; font-weight: 600;
  font-size: 1.05rem; line-height: 1.33; letter-spacing: -.012em; color: var(--ink);
}
/* Pushed to the foot so the prompt lines up across cards of unequal title length. */
.rrg-qcard__go { margin-top: auto; padding-top: 4px; font-size: 13.5px; font-weight: 600; color: var(--deep); }
body a.rrg-qcard { color: var(--ink); }
body a.rrg-qcard:hover .rrg-qcard__title { color: var(--deep); }

.rrg-sec__more { margin: 24px 0 0; font-size: .9375rem; }
body .rrg-sec__more a { color: var(--deep); font-weight: 600; }

@media (max-width: 1080px) {
  .rrg-qgrid, .rrg-qgrid--n4, .rrg-qgrid--n5, .rrg-qgrid--n6 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .rrg-qgrid, .rrg-qgrid--n4, .rrg-qgrid--n5, .rrg-qgrid--n6 { grid-template-columns: 1fr; }
  .rrg-qcard { padding: 16px 16px 15px; }
}

/* Listing head with an onward link beside it. The copy keeps its measure and
   the column that was empty carries the link out of the listing and into
   treatment, which at the foot of the page almost nobody reached. */
.rrg-archhead--split { padding-bottom: 40px; }
.rrg-archhead__grid { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 48px; align-items: start; }
.rrg-archhead__copy { min-width: 0; }
/* The left column is wide enough to run the intro past ninety characters a
   line, which is well past comfortable. The measure stays capped. */
.rrg-archhead--split .rrg-archhead__intro { max-width: 64ch; }

/* The base callout sticks to a long sidebar. This one sits in a short header,
   where sticky has nothing to travel against. */
.rrg-callout--arch { margin-top: 6px; position: static; top: auto; }
.rrg-callout__eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); line-height: 1.45; }
body .rrg-callout--arch .rrg-callout__h { font-size: 1.2rem; line-height: 1.3; margin: 0 0 8px; }
body .rrg-callout--arch .rrg-callout__h a { color: var(--ink); text-decoration: none; }
body .rrg-callout--arch .rrg-callout__h a:hover { color: var(--deep); text-decoration: underline; }

@media (max-width: 1000px) {
  .rrg-archhead__grid { grid-template-columns: 1fr; gap: 28px; }
  .rrg-callout--arch { margin-top: 0; }
}

/* Corporate address in the footer brand column. Quieter than the four location
   blocks above it, because it is the company rather than somewhere to arrive. */
.rrg-footer__org {
  margin: 18px 0 0; font-style: normal; font-size: 14px; line-height: 1.6;
  color: var(--on-navy);
}
.rrg-footer__orglabel {
  display: block; margin-bottom: 4px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--on-navy-2);
}

/* People, linked to their profiles. Faces and credentials on the page that is
   meant to answer who is behind this, with the detail one click away rather
   than duplicated here. */
.rrg-sec--people { background: var(--tint); border-top: 1px solid var(--line); }
.rrg-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.rrg-person__card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; height: 100%;
  padding: 20px 18px 18px; border-radius: 12px;
  background: #fff; border: 1px solid var(--line-strong); text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.rrg-person__card:hover { border-color: var(--field); box-shadow: var(--shadow); }
.rrg-person__media { display: block; margin-bottom: 10px; }
.rrg-person__media img { display: block; width: 92px; height: 92px; object-fit: cover; border-radius: 50%; }
.rrg-person__name {
  font-family: "Epilogue", sans-serif; font-weight: 600;
  font-size: 1.0125rem; line-height: 1.32; color: var(--ink);
}
body a.rrg-person__card { color: var(--ink); }
body a.rrg-person__card:hover .rrg-person__name { color: var(--deep); text-decoration: underline; }
.rrg-person__role { font-size: 13.5px; line-height: 1.5; color: var(--body); }
.rrg-person__badge {
  margin-top: 8px; display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .04em; color: var(--sea);
}
.rrg-person__badge .rrg-icon { stroke: var(--sea); flex: 0 0 auto; }

@media (max-width: 1000px) { .rrg-people { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 760px)  { .rrg-people { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
  .rrg-person__media img { width: 74px; height: 74px; } }

/* Team index. Three across so the biography has room to be worth reading. */
.rrg-people--detail { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.rrg-people--detail .rrg-person__media img { width: 108px; height: 108px; }
.rrg-person__bio { margin-top: 6px; font-size: 14px; line-height: 1.6; color: var(--body); }

.rrg-sec--narrowband { background: var(--tint); border-top: 1px solid var(--line); }
.rrg-revlist { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rrg-revlist li { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; font-size: 1rem; }
.rrg-revlist .rrg-icon { stroke: var(--sea); flex: 0 0 auto; align-self: center; }
body .rrg-revlist a { color: var(--deep); font-weight: 600; }
.rrg-revlist__role { color: var(--muted); font-size: 14px; }

@media (max-width: 1000px) { .rrg-people--detail { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 620px)  { .rrg-people--detail { grid-template-columns: 1fr; } }

/* Where a person is based, on the team card. */
.rrg-person__at {
  margin-top: 8px; display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; font-weight: 600; color: var(--muted);
}
.rrg-person__at .rrg-icon { stroke: var(--muted); flex: 0 0 auto; }

/* The accreditation ID links to the public record. */
body .rrg-footer__hco a { color: var(--on-navy); text-decoration: underline; text-underline-offset: 2px; }
body .rrg-footer__hco a:hover { color: #fff; }

/* Care arranged elsewhere, kept visibly apart from what happens on site. */
.rrg-levels__referred { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line-strong); }
.rrg-levels__referredh { display: flex; align-items: center; gap: 7px; margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.rrg-levels__referredb { margin: 0 0 12px; font-size: .9375rem; line-height: 1.6; color: var(--body); max-width: 68ch; }
.rrg-levels__referred ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rrg-levels__referred li a {
  display: inline-block; padding: 6px 13px; border-radius: 999px;
  background: #fff; border: 1px solid var(--line-strong);
  font-size: .875rem; font-weight: 600; text-decoration: none;
}
body .rrg-levels__referred li a { color: var(--body); }
body .rrg-levels__referred li a:hover { color: var(--deep); border-color: var(--field); }

/* The visible text here is the link, which is light on navy. The heading itself
   inherited near-black, so removing the link would make the name disappear. */
.rrg-footer__loc h3 { color: var(--on-navy); }

/* Share your story. One block per center, using the theme's own tokens rather
   than the pasted widget's separate font stack and color variables. */
.rrg-sec--reviews { padding: 40px 0 44px; }
.rrg-revhead { font-family: "Epilogue", sans-serif; font-weight: 700; font-size: 1.4rem; letter-spacing: -.018em; color: var(--ink); margin: 0 0 4px; }
.rrg-revaddr { margin: 0 0 20px; font-size: .9375rem; color: var(--muted); }
.rrg-revgrid { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.rrg-revcard {
  display: flex; flex-direction: column; gap: 6px; height: 100%;
  padding: 18px 16px 16px; border-radius: 12px;
  background: #fff; border: 1px solid var(--line-strong); text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.rrg-revcard:hover { border-color: var(--field); box-shadow: var(--shadow); }
.rrg-revcard__name { font-family: "Epilogue", sans-serif; font-weight: 600; font-size: 1rem; color: var(--ink); }
.rrg-revcard__why { font-size: 13.5px; line-height: 1.55; color: var(--body); }
.rrg-revcard__go { margin-top: auto; padding-top: 8px; font-size: 13.5px; font-weight: 600; color: var(--deep); }
body a.rrg-revcard { color: var(--ink); }
body a.rrg-revcard:hover .rrg-revcard__name { color: var(--deep); }

@media (max-width: 1000px) { .rrg-revgrid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px)  { .rrg-revgrid { grid-template-columns: 1fr; } }

/* The questions page. Groups of questions, each an accordion. */
.rrg-sec--faqpage { padding: 40px 0 52px; }
.rrg-faqgroup + .rrg-faqgroup { margin-top: 34px; }
.rrg-faqgroup__h {
  font-family: "Epilogue", sans-serif; font-weight: 700; font-size: 1.15rem;
  letter-spacing: -.01em; color: var(--ink);
  margin: 0 0 12px; padding-bottom: 9px; border-bottom: 2px solid var(--line-strong);
  max-width: 780px;
}
.rrg-sec--faqpage .rrg-q { max-width: 780px; }

/* Third-party review feed. The widget brings its own styling, so this only
   gives it room and keeps it from running off the side on a small screen. */
.rrg-sec--reviewfeed { padding: 36px 0 44px; }
/* The widget lays its cards out on a grid with a -8px gutter, so it reaches
   8px past its container on each side. Padding absorbs that instead of it
   becoming a scrollbar, and leaves the cards flush with the page grid. */
/* clip rather than auto: the only thing reaching past the edge is a tooltip
   that is hidden until hover, and a scroll container for two pixels of hidden
   decoration puts a scrollbar under the reviews. clip still stops any future
   overflow from widening the page. */
.rrg-reviewfeed { max-width: 100%; padding: 0 8px; overflow-x: clip; }
.rrg-reviewfeed img { max-width: 100%; height: auto; }
.rrg-reviewfeed__note { margin: 18px 0 0; font-size: 13.5px; color: var(--muted); max-width: 70ch; }

/* Workshop. Reuses the question card as a plain block, so the topic list matches
   the rest of the site without a second card style. */
.rrg-qcard--static { cursor: default; }
.rrg-qcard--static:hover { border-color: var(--line-strong); box-shadow: none; transform: none; }
.rrg-ws__where { margin: 0 0 12px; font-size: .9375rem; line-height: 1.55; color: var(--body); }
.rrg-ws__rsvp { margin: 4px 0 0; }

/* Invitation band: copy and action on one row, so the button carries the weight
   the action deserves rather than sitting under it as a text link. */
.rrg-invite { background: var(--tint); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 30px 0; }
/* The copy sits next to the button rather than being pushed apart from it. A
   1fr column with a 62ch cap left nearly four hundred pixels of nothing in the
   middle, which is the same imbalance the first version had, sideways. */
.rrg-invite__grid { display: grid; grid-template-columns: minmax(0, 74ch) auto; gap: 20px 44px; align-items: center; justify-content: start; }
.rrg-invite__h { font-family: "Epilogue", sans-serif; font-weight: 700; font-size: 1.3rem; letter-spacing: -.018em; color: var(--ink); margin: 0 0 6px; }
.rrg-invite__copy p { margin: 0; font-size: 1rem; line-height: 1.62; color: var(--body); }
body .rrg-btn.rrg-invite__btn { flex: 0 0 auto; white-space: nowrap; }

@media (max-width: 760px) {
  .rrg-invite__grid { grid-template-columns: 1fr; gap: 16px; }
  body .rrg-btn.rrg-invite__btn { justify-self: stretch; text-align: center; }
}

/* Editorial standards: the count of reviewed pages, under the reviewer list. */
.rrg-editorial__count { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }

/* Link from a review line to the standards that describe the review. */
.rrg-byline__how { font-size: 13px; font-weight: 600; white-space: nowrap; }
body .rrg-byline__how { color: var(--deep); }

/* The reviewer badge on a person page leads to the standards. */
body .rrg-person__badge a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
body .rrg-person__badge a:hover { color: var(--deep); }
