/* sprint 03 — reproduce the measured GoDaddy homepage rhythm without redesigning it */
:root {
  --obc-blue: #75aab0;
  --obc-blue-dark: #537d82;
  --obc-ink: #1b1b1b;
  --obc-grey: #5e5e5e;
  --obc-mist: #f6f6f6;
  --obc-white: #fff;
  --obc-content: 1112px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
}

body {
  margin: 0;
  background: var(--obc-white);
  color: var(--obc-grey);
  font-family: Lato, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

a {
  color: inherit;
  text-underline-offset: 3px;
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--obc-blue-dark);
  outline-offset: 4px;
}

.obc-announcement {
  min-height: 46px;
  margin: 0;
  padding: 10px 24px;
  background: var(--obc-blue);
  color: #000;
}

.obc-announcement p {
  margin: 0;
  font-size: 16px;
  line-height: 26px;
}

.obc-announcement a {
  text-decoration: none;
}

/* sprint 25 — option three from the nav lab, on the real header.

   Three words carry the whole site and the rest live in a panel behind the first of them. The bar
   and the panel are both held to the page's own measure, which is what puts the mark on the same
   line as the hero copy and every heading below it. */
.obc-nav-shell.wp-block-group {
  /* The page's own margin, worked out the way the page works it out: the hero is a 1240 box centred
     inside a padded cover, so its copy starts at whichever is greater, the padding or half the
     leftover. Setting a max-width and a gutter here instead adds the gutter on top of that and puts
     the mark 60px inside the hero copy, which was the first attempt and was still wrong. */
  --obc-margin: max(clamp(20px, 5vw, 72px), calc((100% - 1240px) / 2));

  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0 var(--obc-margin);
  min-height: 92px;
}

.obc-nav-shell .obc-desktop-navigation {
  flex: 1 1 auto;
}

.obc-nav-shell .obc-desktop-navigation .wp-block-navigation__container {
  gap: clamp(20px, 3vw, 42px);
}

.obc-nav-shell .obc-desktop-navigation a {
  color: #294f4b;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* the booking button, held at the right margin */
.obc-nav-shell .obc-nav-book {
  flex: 0 0 auto;
  margin-left: clamp(16px, 2vw, 28px);
}

.obc-nav-shell .obc-nav-book .wp-block-button__link {
  padding: 12px 22px;
  border-radius: 999px;
  /* 5 September 2026 — colostrum gold, which is the logo's own gold and not the Warm Gold that was
     here for an hour. Amanda: "the gold I gave you is not the same gold that is used in the logo. We
     want colostrum gold."

     Flat #E9C471 rather than the ramp, and that is the point rather than a shortcut: the mark beside
     it in the bar is a single flat #E9C471, so a gradient here would be a button that nearly matches
     the logo, which reads worse than one that plainly does not. BRAND.md's rule about the flat being
     a fallback is about filling a large area; this is 43px tall and sits eight pixels from the thing
     it is matching.

     Ink on it is 8.6:1, the best this button has had. */
  background: #e9c471;
  color: #1f2c31;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* 5 September 2026 — Clinical Teal, at Amanda's word, in place of the Milk Teal that was here for an
   hour. A button already gold cannot answer by going gold, which is what buttons.css does to every
   other button on the site, so this one needs somewhere else to go, and gold to teal is a change of
   hue rather than of brightness, which is the kind the eye is quickest at.

   A HOVER HAS TO BE READ TWICE: against the button it replaces, and against whatever the button sits
   on. That rule is here because the bar moved three times on 5 September and this line was wrong
   after two of them, each time by checking one of the pair and not the other. Deep Green vanished
   into a navy bar at 1.27:1; Clinical Teal vanished into a teal bar; Deep Navy vanishes into this
   one at 1.27:1 again.

   Milk Teal answers both against a Deep Green bar: 3.51:1 against the bar so the shape is still
   there, 5.56:1 for Ink on it, and gold to teal is a change of hue rather than of brightness, which
   is the kind the eye is quickest at. Ivory reads harder against the bar and was not taken, because
   gold going pale is what a disabled control does. */
.obc-nav-shell .obc-nav-book .wp-block-button__link:hover {
  background: #75aab0;
  color: #1f2c31;
}

/* 30 August 2026 — Amanda asked for gold on the press. Warm Gold means readiness in the palette,
   which is what the moment of pressing this is. Ink on it rather than white: 7.2:1 against 2.1:1,
   and the same pairing rule the milk teal underneath it follows. :active covers the keyboard as
   well as the mouse, so it is not a gesture only a pointer can see. */
.obc-nav-shell .obc-nav-book .wp-block-button__link:active {
  background: #d7b47a;
  color: #1f2c31;
}

/* the panel. Shut by default, and it grows out of the bar rather than appearing under it. Height is
   not animated: the panel's height depends on what is in it, and animating to a guessed height
   either clips the last row or leaves a gap beneath it. */
.obc-panel.wp-block-group {
  position: absolute;
  z-index: 40;
  right: 0;
  left: 0;
  border-bottom: 1px solid rgba(41, 79, 75, 0.12);
  background: #fff;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0.22s;
  visibility: hidden;
}

/* sprint 32 — the panel opens without JavaScript.
 *
 * It used to open only when nav.js added `is-open`, so a script that failed took about twenty links
 * with it: the panel is the only route to the FAQ, the journal club, the students page, the referral
 * forms and the rest. Three top-level links survived on a desktop and, on a phone, nothing did.
 *
 * :hover and :focus-within do the same job in CSS and cost nothing. :focus-within matters more than
 * the hover: it is what makes the panel reachable by keyboard at all, which until now was also
 * something only the script provided.
 *
 * Scoped to .no-js, and that scoping is not tidiness. Unscoped, the two fought: CSS opens the instant
 * the pointer arrives and closes the instant it leaves, while nav.js is deliberately slower at both,
 * so moving quickly across the words made the panel half close and open again. The owner saw it
 * within the hour of it shipping. With the script running, the script owns the panel.
 *
 * nav.js is still worth having and this does not replace it. What it adds is the timing — waiting
 * before opening so crossing the word does not open it, and waiting longer before closing so the
 * pointer can travel down into the panel. Those are the manners. This is the menu existing. */
.obc-nav-shell.is-open + .obc-panel.wp-block-group,
.is-open > .obc-panel.wp-block-group,
.no-js .obc-nav-shell:hover > .obc-panel.wp-block-group,
.no-js .obc-nav-shell:focus-within > .obc-panel.wp-block-group,
.no-js .obc-nav-shell:hover + .obc-panel.wp-block-group,
.no-js .obc-nav-shell:focus-within + .obc-panel.wp-block-group {
  opacity: 1;
  transform: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s;
  visibility: visible;
}

.obc-panel .obc-panel-inner.wp-block-columns {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(24px, 3vw, 38px) max(clamp(20px, 5vw, 72px), calc((100% - 1240px) / 2)) clamp(28px, 3.4vw, 44px);
  gap: clamp(20px, 3vw, 44px);
}

.obc-panel .obc-panel-title {
  margin: 0 0 14px;
  color: #537d82;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.obc-panel .obc-panel-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.obc-panel .obc-panel-list li {
  margin: 0 0 9px;
}

.obc-panel .obc-panel-list a {
  color: #294f4b;
  font-size: 14px;
  line-height: 1.45;
  text-decoration: none;
}

.obc-panel .obc-panel-list a:hover {
  text-decoration: underline;
}

/* the arrow that says a word has something behind it */
.obc-nav-shell [data-nl-trigger] > span::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 7px;
  border-right: 1px solid currentcolor;
  border-bottom: 1px solid currentcolor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.22s ease;
}

.obc-nav-shell.is-open [data-nl-trigger] > span::after {
  transform: translateY(1px) rotate(-135deg);
}

/* 29 August 2026 — the header carries the Book Support Now button, a Referrals link and a hamburger
   that opens the panel, on every width. The panel and the button no longer come off on a phone (the
   burger owns the panel there); only the Referrals word does, since it also lives inside the menu. */
.obc-nav-shell .obc-nav-actions {
  flex: 0 0 auto;
  margin-left: auto;
  gap: clamp(10px, 1.6vw, 22px);
}

.obc-nav-shell .obc-nav-actions .obc-nav-book { margin-left: 0; }

.obc-nav-shell .obc-nav-referrals { margin: 0; flex: 0 0 auto; }

.obc-nav-shell .obc-nav-referrals a {
  color: #f6efe6;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
}

.obc-nav-shell .obc-nav-referrals a:hover { text-decoration: underline; }

/* 17 September 2026 — the magnifier, and the box it pops open.

   Drawn rather than fetched: a ring and a handle in the current colour, so it reads against the bar
   and turns milk teal beside the hamburger without a second file to keep in step.

   Shut is the CSS default and open is a class the script adds, which is the way round that survives
   a script that never arrives: without one there is no half-built box in the header, and the
   magnifier is still a link to a page with a search field on it. */
.obc-nav-shell { position: relative; }

.obc-nav-shell .obc-search-open { flex: 0 0 auto; margin: 0; }

.obc-nav-shell .obc-search-open .wp-block-button__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 999px;
  background: transparent;
  color: #f6efe6;
}

.obc-nav-shell .obc-search-open .wp-block-button__link:hover,
.obc-nav-shell .obc-search-open .wp-block-button__link:focus-visible {
  background: transparent;
  color: #75aab0;
}

.obc-nav-shell .obc-search-open .wp-block-button__link::before {
  content: "";
  width: 14px;
  height: 14px;
  margin: -3px 0 0 -3px;
  border: 2px solid currentcolor;
  border-radius: 50%;
}

.obc-nav-shell .obc-search-open .wp-block-button__link::after {
  content: "";
  position: absolute;
  right: 11px;
  bottom: 10px;
  width: 2px;
  height: 8px;
  border-radius: 2px;
  background: currentcolor;
  transform: rotate(-45deg);
}

/* the word is for a screen reader: a bare icon with no name is a button announced as nothing */
.obc-nav-shell .obc-search-open .wp-block-button__link > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.obc-nav-shell .obc-search-panel.wp-block-group {
  display: none;
  position: absolute;
  z-index: 45;
  top: 100%;
  right: 24px;
  width: min(380px, calc(100vw - 32px));
  margin: 0;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(20, 40, 38, 0.24);
}

.obc-nav-shell .obc-search-panel.is-wired { display: block; }
.obc-nav-shell .obc-search-panel[hidden] { display: none; }

.obc-search-panel .wp-block-search__inside-wrapper,
.obc-search-page .wp-block-search__inside-wrapper {
  padding: 4px 4px 4px 16px;
  border: 1px solid rgba(41, 79, 75, 0.32);
  border-radius: 999px;
  background: #fff;
}

.obc-search-panel .wp-block-search__input,
.obc-search-page .wp-block-search__input {
  padding: 9px 0;
  border: 0;
  background: transparent;
  color: #1f2c31;
  font: inherit;
}

.obc-search-panel .wp-block-search__input:focus,
.obc-search-page .wp-block-search__input:focus { outline: none; }

.obc-search-panel .wp-block-search__inside-wrapper:focus-within,
.obc-search-page .wp-block-search__inside-wrapper:focus-within {
  border-color: #4f8f8b;
  box-shadow: 0 0 0 3px rgba(79, 143, 139, 0.22);
}

.obc-search-panel .wp-block-search__button,
.obc-search-page .wp-block-search__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #294f4b;
  color: #fff;
  cursor: pointer;
}

.obc-search-panel .wp-block-search__button svg,
.obc-search-page .wp-block-search__button svg { fill: currentcolor; }

.obc-search-panel .wp-block-search__button:hover,
.obc-search-page .wp-block-search__button:hover { background: #4f8f8b; }

/* the results themselves: a heading, the sentence the page already tells a search engine, and air
   between one answer and the next */
.obc-search-page {
  padding: 56px 24px 88px;
}

.obc-search-page .obc-search-title {
  margin: 0 0 20px;
  font-size: clamp(26px, 3.2vw, 38px);
  line-height: 1.15;
}

/* the box sits under the heading rather than in the middle of the page: the theme's constrained
   layout centres a block that states a width, and a search field is not a headline */
.obc-search-page .obc-search-again {
  max-width: 420px;
  margin: 0 auto 40px 0;
}

.obc-search-page .obc-search-hit {
  margin: 0 0 6px;
  font-size: clamp(19px, 1.8vw, 23px);
  line-height: 1.3;
}

.obc-search-page .obc-search-hit a { color: #294f4b; text-decoration: none; }
.obc-search-page .obc-search-hit a:hover { text-decoration: underline; }

.obc-search-page .obc-search-say {
  max-width: 62ch;
  margin: 0 0 34px;
  color: #4a5a5e;
  line-height: 1.6;
}

.obc-search-page .obc-search-none { max-width: 58ch; line-height: 1.7; }

.obc-search-page .obc-search-pages { margin-top: 24px; }

/* without the script the box cannot be opened, so it is never drawn; the magnifier stays a link to
   /?s=, which is the search page with a field on it */
.no-js .obc-nav-shell .obc-search-panel.wp-block-group { display: none; }

/* the hamburger: a plain button that draws three lines and toggles the panel */
.obc-nav-shell .obc-burger { flex: 0 0 auto; margin: 0; }

.obc-nav-shell .obc-burger .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 6px;
  background: transparent;
  color: #f6efe6;
  border-radius: 0;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.obc-nav-shell .obc-burger .wp-block-button__link:hover { background: transparent; color: #75aab0; }

.obc-nav-shell .obc-burger .wp-block-button__link::before {
  content: "";
  display: block;
  width: 24px;
  height: 15px;
  background:
    linear-gradient(currentcolor, currentcolor) left top / 100% 2px no-repeat,
    linear-gradient(currentcolor, currentcolor) left center / 100% 2px no-repeat,
    linear-gradient(currentcolor, currentcolor) left bottom / 100% 2px no-repeat;
}

/* the burger is not a word with a chevron behind it, so remove the chevron the panel draws on any
   trigger */
.obc-nav-shell .obc-burger [data-nl-trigger] > span::after { display: none !important; }

/* without the script the burger cannot toggle, so it comes off the same way the old WordPress
   hamburger did: the .no-js panel opens on hover and focus, and the footer answers a touch screen */
.no-js .obc-nav-shell .obc-burger { display: none; }

/* the panel scrolls when it is taller than the screen — five columns stack into one tall list on a
   phone now that the burger owns it */
.obc-panel.wp-block-group { max-height: calc(100vh - 80px); overflow-y: auto; }

@media (max-width: 640px) {
  /* a narrow phone keeps the mark, the Book Support Now button and the hamburger; Referrals is in the
     menu behind the burger, so its word comes off the bar to make room */
  .obc-nav-shell .obc-nav-referrals { display: none; }
}

/* sprint 25 — the mark stands where HOME used to be in the menu. A logo that returns you to the
   front page is the one navigation convention every visitor already knows, and it buys back the
   width that the word was spending.

   The shell is a flex row, and it is one in the block itself rather than here. As a constrained
   group WordPress gave every child automatic side margins, and an automatic margin inside a flex row
   swallows the free space: the mark and the menu both ended up floating in the middle with the
   margins empty either side. Overriding that in CSS is a fight. Declaring the layout the block
   actually has is not. */
.obc-nav-shell.wp-block-group {
  gap: clamp(16px, 3vw, 40px);
}

.obc-nav-shell .obc-mark {
  flex: 0 0 auto;
  margin: 0;
  line-height: 0;
}

.obc-nav-shell .obc-mark img {
  display: block;
  width: auto;
  height: clamp(44px, 5vw, 64px);
}

/* the menu takes the rest of the row and stays centred within it, which keeps it where it was */
.obc-nav-shell .obc-desktop-navigation {
  flex: 1 1 auto;
}

@media (max-width: 781px) {
  /* the phone shows the mark and the hamburger, one at each end */
  .obc-nav-shell.wp-block-group {
    justify-content: space-between;
  }

  .obc-nav-shell .obc-mobile-navigation {
    flex: 0 0 auto;
  }
}

.obc-nav-shell {
  min-height: 80px;
  margin: 0;
  padding: 0 32px;
  /* 29 August 2026 — the bar is dark rather than mist. Everything on it flips with it: the Referrals
     word, the hamburger and the mark are all read against a dark ground now, so their colours are
     set below rather than inherited from the light header they were drawn for.
     5 September 2026 — Deep Navy, then Clinical Teal, then back to the Deep Green it started the day
     as, at Amanda's word while the scheme is reworked. Worth recording that it is the best ground of
     the three for the things standing on it: the Referrals word reads 7.95:1 against 10.09 on navy
     and 3.27 on teal, and the gold button's own edge is 5.44:1 against 6.91 and 2.24. */
  background: #294f4b;
}

.obc-desktop-navigation {
  min-height: 80px;
}

.obc-desktop-navigation .wp-block-navigation__container {
  gap: 34px;
}

.obc-desktop-navigation .wp-block-navigation-item__content {
  color: var(--obc-ink);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 24px;
  text-decoration: none;
  white-space: nowrap;
}

.obc-desktop-navigation .wp-block-navigation__submenu-container {
  border: 0;
  box-shadow: 0 8px 24px rgb(0 0 0 / 15%);
}

.obc-mobile-navigation {
  display: none !important;
}

.obc-hero {
  padding: 24px 24px 76px;
}

.obc-site-title {
  margin: 0;
  color: var(--obc-ink);
  font-family: Cabin, Arial, sans-serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 23px;
  text-transform: uppercase;
}

.obc-site-tagline {
  margin: 4px 0 21px;
  color: var(--obc-grey);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 3px;
  line-height: 20px;
}

.obc-hero-image {
  width: 750px;
  max-width: 100%;
  margin: 0 auto;
}

.obc-hero-image img {
  display: block;
  width: 750px;
  height: 500px;
  object-fit: cover;
}

.obc-hero-copy {
  margin: 21px auto 22px;
  color: var(--obc-grey);
  font-size: 16px;
  line-height: 24px;
}

.obc-pill .wp-block-button__link {
  min-width: 314px;
  padding: 17px 32px;
  border-radius: 999px;
  background: var(--obc-blue);
  color: var(--obc-ink);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 2px;
  text-decoration: none;
}

.obc-section {
  padding: 78px 24px;
}

.obc-section > * {
  max-width: var(--obc-content);
  margin-inline: auto;
}

.obc-section-title {
  margin: 0 auto 44px;
  color: #595959;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 20px;
  text-transform: uppercase;
}

.obc-section-title::after {
  display: block;
  width: 48px;
  height: 1px;
  margin: 16px auto 0;
  background: var(--obc-blue);
  content: "";
}

.obc-cta-section,
.obc-explore,
.obc-book-again,
.obc-closing-band {
  background: var(--obc-blue);
}

.obc-card-grid {
  gap: 26px;
  margin-bottom: 0;
}

.obc-link-card {
  min-height: 158px;
  padding: 38px 24px 28px;
  background: var(--obc-white);
  text-align: center;
}

.obc-link-card h2,
.obc-book-again h2:not(.obc-section-title) {
  margin: 0;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 28px;
  text-transform: uppercase;
}

.obc-link-card h2 a,
.obc-book-again h2 a {
  color: var(--obc-ink);
  text-decoration: none;
}

.obc-link-card p {
  margin: 8px 0 0;
  color: #808080;
  font-size: 14px;
}

.obc-about-columns,
.obc-service-columns,
.obc-contact-columns {
  gap: 64px;
}

.obc-about-image img {
  display: block;
  width: 100%;
  aspect-ratio: 515 / 234;
  object-fit: cover;
}

.obc-about-copy h3 {
  margin: 0 0 24px;
  color: var(--obc-ink);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.3;
}

.obc-about-copy p,
.obc-services p,
.obc-contact p {
  margin: 0 0 18px;
}

.obc-services h4,
.obc-contact h4 {
  margin: 0 0 20px;
  color: var(--obc-ink);
  font-size: 22px;
  font-weight: 400;
  line-height: 28px;
}

.obc-services h4:not(:first-child) {
  margin-top: 40px;
}

.obc-book-again h2:last-child {
  margin: 0;
}

.obc-widget-note {
  color: #808080;
  font-size: 13px;
  font-style: italic;
}

.obc-closing-band {
  padding: 72px 24px 28px;
}

.obc-footer {
  padding: 54px 24px 62px;
  background: var(--obc-white);
  color: var(--obc-grey);
  font-size: 14px;
}

.obc-footer > * {
  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
}

.obc-footer .wp-block-button__link {
  min-width: 160px;
  padding: 13px 28px;
  background: var(--obc-ink);
  color: var(--obc-white);
  font-size: 13px;
  letter-spacing: 2px;
}

.obc-not-migrated {
  min-height: 55vh;
  padding: 100px 24px;
  text-align: center;
}

/* sprint 04 — reproduce the portrait-led team directory without generic card chrome */
.obc-team-page {
  margin: 0;
  padding: 0 24px 220px;
  background: var(--obc-white);
}

.obc-team-brand {
  padding: 24px 0 57px;
}

.obc-team-content {
  width: min(100%, var(--obc-content));
  margin: 0 auto;
}

.obc-team-page-title,
.obc-team-section-title {
  margin: 0 0 12px;
  color: var(--obc-grey);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 22px;
  text-transform: uppercase;
}

.obc-team-section-title {
  margin-top: 78px;
}

.obc-team-rule {
  width: 100%;
  max-width: none !important;
  margin: 0 0 40px;
  border: 0;
  border-top: 1px solid #8c8c8c;
}

.obc-team-grid {
  display: grid;
  width: 100%;
  max-width: none !important;
  margin: 0;
  gap: 1px;
}

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

.obc-primary-team-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.obc-secondary-team-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.obc-provider-card {
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.obc-featured-provider {
  min-height: 489px;
}

.obc-provider-card .wp-block-cover__image-background {
  object-position: center;
}

.obc-provider-card .wp-block-cover__inner-container {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: 0 28px 70px;
}

.obc-standard-provider::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 50% 0 0;
  background: linear-gradient(to bottom, transparent, rgb(0 0 0 / 34%));
  pointer-events: none;
}

.obc-standard-provider .wp-block-cover__inner-container {
  padding-bottom: 68px;
}

.obc-standard-provider p {
  margin: 0 0 22px;
  color: var(--obc-white);
  font-size: 16px;
  line-height: 22px;
  text-align: center;
}

.obc-provider-name {
  color: inherit;
}

.obc-standard-provider .obc-provider-name {
  color: var(--obc-white);
  font-weight: 700;
  text-decoration: underline;
}

.obc-provider-note {
  color: var(--obc-white);
  font-size: 14px;
}

.obc-provider-pill .wp-block-button__link,
.obc-provider-pill .obc-provider-name {
  min-width: 132px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--obc-blue);
  color: var(--obc-ink);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 18px;
  text-align: center;
  text-decoration: none;
}

.obc-featured-name {
  width: 100%;
}

.obc-featured-name .obc-provider-pill,
.obc-featured-name .wp-block-button__link {
  max-width: 440px;
}

.obc-featured-name .wp-block-button__link {
  padding-right: 18px;
  padding-left: 18px;
  font-size: 12px;
  letter-spacing: 1.5px;
}

/* sprint 05 — reproduce the measured two-choice Book Now gateway */
.obc-book-page {
  margin: 0;
  padding: 0 24px 242px;
  background: var(--obc-white);
}

.obc-book-brand {
  padding: 24px 0 65px;
}

.obc-book-hero {
  padding-bottom: 80px;
}

.obc-book-title {
  width: 725px;
  max-width: 100%;
  margin: 0 auto;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 28px;
}

.obc-book-content {
  width: min(100%, var(--obc-content));
  margin: 0 auto;
}

.obc-book-prompt {
  margin: 0;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 37px;
}

.obc-book-rule {
  width: 100%;
  max-width: none !important;
  margin: 7px 0 32px;
  border: 0;
  border-top: 1px solid #8c8c8c;
}

.obc-book-choices {
  display: grid;
  grid-template-columns: repeat(2, 435px);
  width: 918px;
  max-width: 100%;
  margin: 0 auto;
  gap: 48px;
}

.obc-book-choice-wrap {
  width: 435px;
  margin: 0;
}

.obc-book-choice {
  display: flex;
  width: 435px;
  min-height: 470px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 14px;
  border-radius: 0;
  background: var(--obc-blue);
  color: #000;
  text-align: center;
  text-decoration: none;
}

.obc-book-choice-label {
  display: block;
  max-width: 407px;
  font-family: Cabin, Arial, sans-serif;
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.3;
  text-transform: uppercase;
}

.obc-book-choice-detail {
  display: block;
  margin-top: 18px;
  font-size: 16px;
  line-height: 24px;
}

.obc-book-source-media {
  display: none;
}

/* sprint 06 — reproduce the prenatal directory's measured card grids */
.obc-waiting-page {
  margin: 0;
  padding: 0 24px 261px;
  background: var(--obc-white);
}

.obc-waiting-brand {
  padding: 24px 0 65px;
}

.obc-waiting-content {
  width: min(100%, var(--obc-content));
  margin: 0 auto;
}

.obc-waiting-title,
.obc-waiting-section-title {
  margin: 0;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 37px;
}

.obc-waiting-grid {
  display: grid;
  max-width: none !important;
  margin-right: auto;
  margin-left: auto;
  gap: 48px;
}

.obc-waiting-grid-three {
  grid-template-columns: repeat(3, 339px);
  width: 1113px;
}

.obc-waiting-grid-two {
  grid-template-columns: repeat(2, 435px);
  width: 918px;
}

.obc-waiting-gateways {
  margin-top: 40px;
}

.obc-waiting-card {
  display: flex;
  width: 100%;
  min-height: 470px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 38px 14px;
  background: var(--obc-blue);
  color: #000;
  text-align: center;
  text-decoration: none;
}

.obc-card-label {
  display: block;
  font-family: Cabin, Arial, sans-serif;
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.3;
  text-transform: uppercase;
}

.obc-card-detail {
  display: block;
  margin-top: 18px;
  font-size: 16px;
  line-height: 24px;
}

.obc-booking-title {
  margin-top: 80px;
}

.obc-waiting-bookings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 918px;
  max-width: 100%;
  min-height: 238px;
  margin: 28px auto 0;
  gap: 48px;
}

.obc-booking-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  margin: 0;
  text-align: center;
}

.obc-booking-option h4 {
  margin: 0 0 14px;
  color: var(--obc-grey);
  font-size: 19px;
  font-weight: 400;
  line-height: 28px;
}

.obc-booking-option p {
  min-height: 62px;
  margin: 0 0 20px;
  font-size: 15px;
  line-height: 23px;
}

.obc-waiting-booking,
.obc-map-button .wp-block-button__link {
  padding: 13px 28px;
  border-radius: 999px;
  background: var(--obc-blue);
  color: var(--obc-ink);
  font-size: 13px;
  letter-spacing: 1px;
  text-decoration: none;
}

.obc-provider-title {
  margin-top: 66px;
  margin-bottom: 39px;
}

.obc-provider-grid-last,
.obc-location-middle,
.obc-location-middle + .obc-waiting-grid {
  margin-top: 80px;
}

.obc-location-title {
  margin-top: 82px;
  margin-bottom: 80px;
}

.obc-location-middle {
  margin-top: 48px;
}

.obc-location-grid-last {
  margin-top: 80px;
}

.obc-map-button {
  margin-top: 70px;
}

/* sprint 07 — reproduce the postnatal directory and policy layout */
.obc-baby-page {
  margin: 0;
  padding: 0 24px 40px;
  background: var(--obc-white);
}

.obc-baby-brand {
  padding: 24px 0 65px;
}

.obc-baby-content {
  width: min(100%, var(--obc-content));
  margin: 0 auto;
}

.obc-baby-title {
  width: 725px;
  max-width: 100%;
  margin: 0 auto;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 28px;
}

.obc-baby-referral {
  width: 725px;
  max-width: 100%;
  margin: 22px auto 0;
  font-size: 16px;
  line-height: 24px;
}

.obc-baby-section-title {
  margin: 0;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 37px;
}

.obc-baby-prompt {
  margin-top: 57px;
}

.obc-baby-grid {
  display: grid;
  max-width: none !important;
  margin-right: auto;
  margin-left: auto;
  gap: 48px;
}

.obc-baby-grid-three {
  grid-template-columns: repeat(3, 339px);
  width: 1113px;
}

.obc-baby-grid-two {
  grid-template-columns: repeat(2, 339px);
  width: 726px;
}

.obc-baby-gateways {
  margin-top: 40px;
}

.obc-baby-card {
  display: flex;
  width: 100%;
  min-height: 470px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 38px 14px;
  background: var(--obc-blue);
  color: #000;
  text-align: center;
  text-decoration: none;
}

.obc-baby-booking-title {
  margin-top: 80px;
}

.obc-baby-bookings {
  display: grid;
  grid-template-columns: repeat(2, 339px);
  width: 726px;
  min-height: 267px;
  margin: 40px auto 0;
  gap: 48px;
}

.obc-baby-booking-option {
  margin: 0;
  text-align: center;
}

.obc-baby-booking-option h4 {
  margin: 0 0 14px;
  color: var(--obc-grey);
  font-size: 19px;
  font-weight: 400;
  line-height: 28px;
}

.obc-baby-booking-option p {
  min-height: 0;
  margin: 0 0 33px;
  font-size: 15px;
  line-height: 24px;
}

.obc-baby-booking,
.obc-baby-map .wp-block-button__link,
.obc-baby-questions {
  padding: 11px 28px;
  border-radius: 999px;
  background: var(--obc-blue);
  color: var(--obc-ink);
  font-size: 13px;
  letter-spacing: 1px;
  line-height: 18px;
  text-decoration: none;
}

.obc-baby-provider-title {
  margin-top: 0;
  margin-bottom: 40px;
}

.obc-baby-gap-small {
  margin-top: 48px;
}

.obc-baby-gap-large {
  margin-top: 80px;
}

.obc-baby-location-title {
  margin-top: 160px;
  margin-bottom: 39px;
}

.obc-baby-last-location {
  grid-template-columns: 532px;
  width: 532px;
}

.obc-baby-map {
  margin-top: 160px;
}

.obc-baby-map .wp-block-button,
.obc-baby-map .wp-block-button__link {
  width: 725px;
}

.obc-baby-map .wp-block-button__link {
  padding-top: 19px;
  padding-bottom: 19px;
  border-radius: 0;
  text-align: center;
}

.obc-baby-policy {
  display: grid !important;
  grid-template-columns: 435px 553px;
  margin-top: 80px;
  gap: 38px;
}

.obc-baby-policy .wp-block-column {
  margin: 0;
}

.obc-baby-policy figure,
.obc-baby-policy img {
  display: block;
  width: 339px;
  height: 226px;
  margin: 0;
  object-fit: cover;
}

.obc-baby-policy h4 {
  margin: 0 0 16px;
  color: var(--obc-grey);
  font-size: 19px;
  font-weight: 400;
  line-height: 28px;
}

.obc-baby-policy p {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 20px;
}

.obc-baby-policy .wp-block-buttons {
  margin-top: 36px;
}

body:has(.obc-baby-page) .obc-footer {
  min-height: 456px;
}

/* sprint 08 — reproduce the long-form three-column consult catalogue */
.obc-consult-page {
  margin: 0;
  padding: 0 24px 60px;
  background: var(--obc-white);
}

.obc-consult-brand {
  padding: 24px 0 65px;
}

.obc-consult-hero-card {
  width: 532px;
  height: 470px;
  margin: 0 auto;
  background: var(--obc-blue);
}

.obc-consult-title-row {
  display: grid;
  grid-template-columns: 605px 176px;
  width: 798px;
  margin: 104px auto 0;
  gap: 16px;
}

.obc-consult-title-row h1 {
  margin: 10px 0 0;
  color: var(--obc-grey);
  font-size: 31px;
  font-weight: 400;
  line-height: 36px;
}

.obc-consult-title-row .wp-block-button__link,
.obc-consult-action.obc-consult-button,
.obc-consult-gift .wp-block-button__link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 11px 27px;
  border-radius: 999px;
  background: var(--obc-blue);
  color: var(--obc-ink);
  font-size: 13px;
  letter-spacing: 1px;
  line-height: 18px;
  text-align: center;
  text-decoration: none;
}

.obc-consult-title-row .wp-block-button__link {
  width: 176px;
  min-height: 56px;
}

.obc-consult-intro {
  width: 725px;
  max-width: 100%;
  margin: 94px auto 0;
  text-align: center;
}

.obc-consult-intro h4,
.obc-consult-card h4,
.obc-gift-columns h4,
.obc-consult-cancellation h4 {
  margin: 0 0 24px;
  color: var(--obc-grey);
  font-size: 19px;
  font-weight: 400;
  line-height: 28px;
}

.obc-consult-intro p,
.obc-consult-card p,
.obc-gift-columns p,
.obc-consult-cancellation p {
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 24px;
}

.obc-consult-section-title {
  width: 1112px;
  max-width: 100%;
  margin: 80px auto 39px;
  color: var(--obc-grey);
  font-size: 25px;
  font-weight: 400;
  line-height: 37px;
}

.obc-consult-grid {
  display: grid;
  grid-template-columns: repeat(3, 339px);
  grid-template-rows: 840px 1300px 700px;
  width: 1113px;
  max-width: 100%;
  margin: 0 auto;
  gap: 48px;
}

.obc-consult-card {
  position: relative;
  margin: 0;
  color: var(--obc-grey);
}

.obc-consult-card img {
  display: block;
  width: 339px;
  height: 169px;
  margin: 0 0 24px;
  object-fit: cover;
}

.obc-consult-card p a:not(.obc-consult-button) {
  font-weight: 700;
}

.obc-consult-card .obc-consult-button {
  margin-top: 8px;
}

.obc-consult-gift {
  width: 1112px;
  max-width: 100%;
  margin: 48px auto 0;
}

.obc-consult-gift > figure,
.obc-consult-gift > figure img {
  display: block;
  width: 1112px;
  height: 556px;
  margin: 0;
  object-fit: cover;
}

.obc-consult-gift .obc-consult-section-title {
  margin-top: 32px;
}

.obc-gift-columns {
  display: grid !important;
  grid-template-columns: 725px 314px;
  margin: 0;
  gap: 48px;
}

.obc-gift-columns .wp-block-column {
  margin: 0;
}

.obc-consult-cancellation {
  width: 725px;
  max-width: 100%;
  margin: 80px auto 0;
  text-align: center;
}

body:has(.obc-consult-page) .obc-footer {
  min-height: 456px;
}

/* sprint 03 — preserve the current full-height dark mobile navigation treatment */
.obc-mobile-drawer,
.obc-mobile-navigation .wp-block-navigation__responsive-container.is-menu-open {
  padding: 72px 24px 32px;
  background: #161616 !important;
  color: var(--obc-white) !important;
}

.obc-mobile-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  width: 100%;
  align-items: stretch;
  gap: 0;
}

.obc-mobile-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100%;
  padding: 12px 24px;
  border-bottom: 1px solid rgb(255 255 255 / 12%);
}

.obc-mobile-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: var(--obc-white);
  font-size: 22px;
  line-height: 34px;
  text-decoration: none;
}

@media (max-width: 900px) {
  .obc-desktop-navigation {
    display: none !important;
  }

  .obc-mobile-navigation {
    display: flex !important;
    min-height: 88px;
    align-items: center;
  }

  .obc-nav-shell {
    min-height: 88px;
    padding: 0 34px;
  }

  .obc-about-columns,
  .obc-service-columns,
  .obc-contact-columns {
    gap: 30px;
  }
}

@media (max-width: 600px) {
  .obc-announcement {
    min-height: 58px;
    padding: 8px 22px;
  }

  .obc-announcement p {
    font-size: 14px;
    line-height: 21px;
  }

  .obc-hero {
    padding: 26px 24px 54px;
  }

  .obc-site-title {
    font-size: 15px;
    line-height: 20px;
  }

  .obc-site-tagline {
    margin-top: 4px;
    margin-bottom: 22px;
    font-size: 14px;
  }

  .obc-hero-image {
    width: 342px;
    max-width: 100%;
  }

  .obc-hero-image img {
    width: 342px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 342 / 228;
  }

  .obc-hero-copy {
    margin: 22px 0;
    font-size: 16px;
    line-height: 23px;
  }

  .obc-pill,
  .obc-pill .wp-block-button__link {
    width: 100%;
    min-width: 0;
  }

  .obc-section {
    padding: 58px 24px;
  }

  .obc-section-title {
    margin-bottom: 34px;
    font-size: 13px;
    line-height: 19px;
  }

  .obc-card-grid,
  .obc-about-columns,
  .obc-service-columns,
  .obc-contact-columns {
    display: block;
  }

  .obc-link-card {
    min-height: 110px;
    margin-bottom: 16px;
    padding: 29px 18px 21px;
  }

  .obc-link-card h2,
  .obc-book-again h2:not(.obc-section-title) {
    font-size: 19px;
    line-height: 25px;
  }

  .obc-about-image,
  .obc-service-columns .wp-block-column,
  .obc-contact-columns .wp-block-column {
    margin-bottom: 40px;
  }

  .obc-about-copy h3,
  .obc-services h4,
  .obc-contact h4 {
    font-size: 20px;
    line-height: 26px;
  }

  .obc-footer {
    padding: 42px 24px 48px;
  }

  /* sprint 05 — match the measured stacked gateway at 390 pixels */
  .obc-book-page {
    padding: 0 24px 197px;
  }

  .obc-book-brand {
    padding: 26px 0 53px;
  }

  .obc-book-hero {
    padding-bottom: 64px;
  }

  .obc-book-title {
    width: 342px;
    font-size: 24px;
    line-height: 28px;
  }

  .obc-book-prompt {
    font-size: 20px;
    line-height: 25px;
  }

  .obc-book-rule {
    margin-top: 8px;
    margin-bottom: 17px;
  }

  .obc-book-choices {
    grid-template-columns: 342px;
    width: 342px;
    gap: 24px;
  }

  .obc-book-choice-wrap,
  .obc-book-choice {
    width: 342px;
  }

  .obc-book-choice {
    min-height: 160px;
    padding: 18px 16px;
  }

  .obc-book-choice-label {
    font-size: 28px;
    line-height: 36px;
  }

  .obc-book-choice-detail {
    margin-top: 10px;
    font-size: 14px;
    line-height: 20px;
  }

  /* sprint 06 — match the measured 342-by-160 prenatal stack */
  .obc-waiting-page {
    padding: 0 24px 222px;
  }

  .obc-waiting-brand {
    padding: 26px 0 55px;
  }

  .obc-waiting-title,
  .obc-waiting-section-title {
    font-size: 20px;
    line-height: 28px;
  }

  .obc-waiting-title {
    font-size: 19px;
  }

  .obc-waiting-grid {
    grid-template-columns: 342px;
    width: 342px;
    gap: 24px;
  }

  .obc-waiting-gateways {
    margin-top: 25px;
  }

  .obc-waiting-card {
    min-height: 160px;
    padding: 18px 16px;
  }

  .obc-card-label {
    font-size: 28px;
    line-height: 36px;
  }

  .obc-card-detail {
    margin-top: 10px;
    font-size: 14px;
    line-height: 20px;
  }

  .obc-booking-title {
    margin-top: 74px;
  }

  .obc-waiting-bookings {
    grid-template-columns: 342px;
    width: 342px;
    min-height: 0;
    margin-top: 25px;
    gap: 38px;
  }

  .obc-booking-option p {
    min-height: 0;
  }

  .obc-provider-title {
    margin-top: 63px;
    margin-bottom: 25px;
  }

  .obc-provider-grid-last,
  .obc-location-middle,
  .obc-location-middle + .obc-waiting-grid {
    margin-top: 40px;
  }

  .obc-provider-grid-last,
  .obc-location-grid-last,
  .obc-location-middle + .obc-waiting-grid {
    margin-top: 64px;
  }

  .obc-location-middle {
    margin-top: 24px;
  }

  .obc-location-title {
    margin-top: 91px;
    margin-bottom: 25px;
  }

  .obc-map-button {
    margin-top: 50px;
  }

  /* sprint 07 — preserve the measured postnatal mobile sequence */
  .obc-baby-page {
    padding: 0 24px 60px;
  }

  .obc-baby-brand {
    padding: 26px 0 55px;
  }

  .obc-baby-title {
    width: 342px;
    font-size: 24px;
    line-height: 28px;
  }

  .obc-baby-referral {
    width: 342px;
    margin-top: 22px;
    font-size: 14px;
    line-height: 21px;
  }

  .obc-baby-section-title {
    font-size: 20px;
    line-height: 28px;
  }

  .obc-baby-prompt {
    margin-top: 71px;
  }

  .obc-baby-grid {
    grid-template-columns: 342px;
    width: 342px;
    gap: 24px;
  }

  .obc-baby-gateways {
    margin-top: 24px;
  }

  .obc-baby-card {
    height: 160px;
    min-height: 160px;
    max-height: 160px;
    overflow: hidden;
    padding: 8px 16px;
  }

  .obc-baby-booking-title {
    margin-top: 64px;
  }

  .obc-baby-bookings {
    grid-template-columns: 342px;
    width: 342px;
    min-height: 0;
    margin-top: 24px;
    gap: 25px;
  }

  .obc-baby-booking-option p {
    min-height: 0;
    margin-bottom: 33px;
  }

  .obc-baby-provider-title {
    margin-top: 64px;
    margin-bottom: 25px;
  }

  .obc-baby-gap-small {
    margin-top: 24px;
  }

  .obc-baby-gap-large {
    margin-top: 64px;
  }

  .obc-baby-location-title {
    margin-top: 128px;
    margin-bottom: 24px;
  }

  .obc-baby-last-location {
    width: 342px;
  }

  .obc-baby-map {
    margin-top: 128px;
  }

  .obc-baby-map .wp-block-button,
  .obc-baby-map .wp-block-button__link {
    width: 342px;
  }

  .obc-baby-policy {
    display: block !important;
    margin-top: 64px;
  }

  .obc-baby-policy figure,
  .obc-baby-policy img {
    width: 342px;
    height: 228px;
  }

  .obc-baby-policy .wp-block-column:last-child {
    margin-top: 32px;
  }

  .obc-baby-policy h4 {
    width: 342px;
  }

  .obc-baby-policy p {
    line-height: 24px;
  }

  .obc-baby-policy .wp-block-buttons {
    margin-top: 39px;
  }

  /* sprint 08 — stack every consult service and gift section at 390 pixels */
  .obc-consult-page {
    padding: 0 24px 60px;
  }

  .obc-consult-brand {
    padding: 26px 0 55px;
  }

  .obc-consult-hero-card {
    width: 342px;
    height: 160px;
  }

  .obc-consult-title-row {
    display: block;
    width: 342px;
    margin-top: 80px;
    text-align: center;
  }

  .obc-consult-title-row h1 {
    width: 294px;
    margin: 0 auto 24px;
    font-size: 24px;
    line-height: 28px;
  }

  .obc-consult-intro {
    width: 342px;
    margin-top: 80px;
  }

  .obc-consult-section-title {
    width: 342px;
    margin-top: 80px;
    margin-bottom: 25px;
    font-size: 20px;
    line-height: 28px;
  }

  .obc-consult-grid {
    grid-template-columns: 342px;
    grid-template-rows: none;
    width: 342px;
    gap: 64px;
  }

  .obc-consult-card img {
    width: 342px;
    height: 171px;
  }

  .obc-consult-gift {
    width: 342px;
    margin-top: 64px;
  }

  .obc-consult-gift > figure,
  .obc-consult-gift > figure img {
    width: 342px;
    height: 171px;
  }

  .obc-consult-gift .obc-consult-section-title {
    margin-top: 64px;
  }

  .obc-gift-columns {
    display: block !important;
  }

  .obc-gift-columns .wp-block-column + .wp-block-column {
    margin-top: 64px;
  }

  .obc-consult-cancellation {
    width: 342px;
    margin-top: 80px;
  }

  /* sprint 04 — match the source directory's single portrait column on phones */
  .obc-team-page {
    padding: 0 36px 198px;
  }

  .obc-team-brand {
    padding: 26px 0 58px;
  }

  .obc-team-page-title,
  .obc-team-section-title {
    font-size: 14px;
    line-height: 21px;
  }

  .obc-team-page-title {
    max-width: 300px;
  }

  .obc-team-rule {
    margin-bottom: 23px;
  }

  .obc-team-section-title {
    margin-top: 58px;
  }

  .obc-team-grid,
  .obc-featured-grid,
  .obc-primary-team-grid,
  .obc-secondary-team-grid {
    grid-template-columns: 1fr;
  }

  .obc-provider-card .wp-block-cover__inner-container {
    padding-right: 20px;
    padding-left: 20px;
  }

  .obc-featured-grid > .obc-provider-card:first-child {
    min-height: 501px !important;
  }

  .obc-primary-team-grid > .obc-provider-card:nth-child(2) {
    min-height: 569px !important;
  }

  .obc-primary-team-grid > .obc-provider-card:nth-child(4),
  .obc-primary-team-grid > .obc-provider-card:nth-child(6) {
    min-height: 629px !important;
  }

  .obc-secondary-team-grid > .obc-provider-card:first-child {
    min-height: 549px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* sprint 12 — layout for the generated profile and content pages. Everything below styles native
   core blocks (cover, columns, buttons, gallery, file) rather than hand-written markup, so the pages
   stay editable in the block editor while keeping the captured source rhythm. */
.obc-provider-page {
  margin: 0;
  padding: 0 0 48px;
  background: var(--obc-white);
}

.obc-provider-brand {
  padding: 32px 24px 24px;
  text-align: center;
}

.obc-provider-hero,
.obc-provider-consult,
.obc-provider-bookings {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  align-items: start;
  width: var(--obc-content);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 24px;
  gap: 40px;
}

.obc-provider-hero {
  padding-bottom: 48px;
  gap: 48px;
}

.obc-provider-hero-body {
  min-width: 0;
}

.obc-provider-portrait {
  margin: 0;
}

.obc-provider-portrait img {
  width: 330px;
  height: 330px;
  max-width: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.obc-provider-name {
  margin: 0 0 20px;
  color: var(--obc-ink);
  font-size: 22px;
  line-height: 1.35;
}

.obc-provider-bio-title {
  margin: 24px 0 12px;
  color: var(--obc-ink);
  font-size: 17px;
  line-height: 1.4;
}

.obc-provider-bio {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
}

/* the source states each section as a small, wide-tracked rule rather than a banner */
.obc-provider-prompt,
.obc-page-title {
  width: var(--obc-content);
  max-width: 100%;
  margin: 48px auto 24px;
  padding: 0 24px 12px;
  border-bottom: 1px solid #d9d9d9;
  color: var(--obc-grey);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.14em;
  text-align: left;
  text-transform: uppercase;
}

.obc-provider-consult .obc-provider-prompt,
.obc-provider-bookings .obc-provider-prompt {
  grid-column: 1 / -1;
  width: auto;
  margin: 48px 0 24px;
  padding: 0 0 12px;
}

.obc-provider-gateway,
.obc-provider-actions,
.obc-provider-gallery {
  width: var(--obc-content);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 24px;
}

/* a choice tile: a cover block carrying the photograph with its label as a button inside */
.obc-provider-choices.wp-block-columns {
  gap: 24px;
  margin-bottom: 16px;
}

.obc-provider-choice-cell.wp-block-column {
  min-width: 0;
}

.obc-provider-tile.wp-block-cover {
  min-height: 340px;
  padding: 24px;
  background: #d5d5d5;
}

.obc-provider-tile-plain {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 340px;
  padding: 24px;
  background: #d5d5d5;
}

.obc-provider-choice-actions.wp-block-buttons,
.obc-provider-choice-label {
  margin: 0;
}

.obc-provider-choice .wp-block-button__link,
.obc-provider-choice-label {
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--obc-white);
  font-size: 30px;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

.obc-provider-choice .wp-block-button__link:hover {
  background: transparent;
  text-decoration: underline;
}

.obc-provider-consult-image {
  margin: 0;
}

.obc-provider-consult-image img {
  width: 330px;
  max-width: 100%;
  height: auto;
}

.obc-provider-consult-title,
.obc-provider-option-title {
  margin: 0 0 12px;
  color: var(--obc-ink);
  font-size: 17px;
  line-height: 1.4;
  text-align: center;
}

.obc-provider-consult-text,
.obc-provider-option-text {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.7;
  text-align: center;
}

.obc-provider-booking-intro {
  text-align: center;
}

.obc-provider-options.wp-block-columns {
  gap: 40px;
  margin: 0 0 32px;
}

.obc-provider-option.wp-block-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-align: center;
}

.obc-provider-option-actions.wp-block-buttons {
  margin-top: auto;
}

/* a section with no picture beside it should still use the full width */
.obc-provider-bookings:not(:has(.obc-provider-booking-intro)) .obc-provider-options {
  grid-column: 1 / -1;
}

.obc-provider-action .wp-block-button__link,
.obc-page-action .wp-block-button__link {
  padding: 11px 22px;
  border-radius: 4px;
  background: var(--obc-blue);
  color: var(--obc-white);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: uppercase;
}

.obc-provider-action .wp-block-button__link:hover,
.obc-page-action .wp-block-button__link:hover {
  background: var(--obc-blue-dark);
}

.obc-provider-action-row.wp-block-buttons,
.obc-page-action-row.wp-block-buttons {
  gap: 24px;
  margin-bottom: 32px;
}

.obc-provider-slides.wp-block-gallery {
  gap: 16px;
  margin-bottom: 32px;
}

.obc-provider-slides.wp-block-gallery .wp-block-image img {
  height: 240px;
  object-fit: cover;
}

/* prose, promotional, download and contact sections on the content pages */
.obc-page-prose,
.obc-page-promo,
.obc-page-downloads,
.obc-page-contact {
  width: var(--obc-content);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 24px 40px;
  text-align: center;
}

.obc-page-subtitle {
  margin: 28px 0 12px;
  color: var(--obc-ink);
  font-size: 17px;
  line-height: 1.45;
}

.obc-page-text {
  margin: 0 auto 14px;
  max-width: 760px;
  font-size: 15px;
  line-height: 1.75;
}

.obc-page-image {
  margin: 0 auto 24px;
}

.obc-page-image img {
  width: 600px;
  max-width: 100%;
  height: auto;
}

.obc-page-promo {
  background: var(--obc-mist);
}

/* a referral form is the document a family carries to a prescriber; make it read as a file */
.obc-page-download.wp-block-file {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 24px 0;
  font-size: 14px;
}

.obc-page-download .wp-block-file__button {
  padding: 12px 24px;
  border-radius: 4px;
  background: var(--obc-ink);
  color: var(--obc-white);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.obc-page-download .wp-block-file__button::before {
  content: "⬇ ";
}

.obc-page-download .wp-block-file__button:hover {
  background: #000;
}

@media (max-width: 900px) {
  .obc-provider-hero,
  .obc-provider-consult,
  .obc-provider-bookings {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 24px;
  }
}

@media (max-width: 600px) {
  .obc-provider-hero,
  .obc-provider-gateway,
  .obc-provider-consult,
  .obc-provider-bookings,
  .obc-provider-actions,
  .obc-provider-gallery,
  .obc-page-prose,
  .obc-page-promo,
  .obc-page-downloads,
  .obc-page-contact {
    width: 342px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .obc-provider-prompt,
  .obc-page-title {
    width: 342px;
    margin-top: 36px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .obc-provider-consult .obc-provider-prompt,
  .obc-provider-bookings .obc-provider-prompt {
    width: auto;
    padding-right: 0;
    padding-left: 0;
  }

  .obc-provider-name {
    font-size: 26px;
  }

  .obc-provider-portrait img {
    width: 300px;
    height: 300px;
  }

  .obc-provider-tile.wp-block-cover,
  .obc-provider-tile-plain {
    min-height: 240px;
  }

  .obc-provider-choice .wp-block-button__link,
  .obc-provider-choice-label {
    font-size: 24px;
  }

  .obc-provider-slides.wp-block-gallery .wp-block-image img {
    height: 200px;
  }
}

/* sprint 14 — these rows were centred by a layout attribute that made the block invalid in the
   editor. The attribute is gone; the centring lives here instead. */
.obc-provider-choice-actions.wp-block-buttons,
.obc-provider-option-actions.wp-block-buttons,
.obc-provider-action-row.wp-block-buttons,
.obc-page-action-row.wp-block-buttons,
.obc-featured-name.wp-block-buttons {
  justify-content: center;
}

/* sprint 32 — the footer's link list. Quiet: it is a safety net and a place to look things up, not
   the thing the footer is for. Four columns on a desktop, stacking to two on a phone rather than to
   one, because seventeen links in a single column is a lot of scrolling past. */
.obc-footer .obc-foot-nav {
  margin: 0 auto 26px;
  padding: 0 4vw;
  max-width: 1100px;
  gap: 18px;
}

.obc-footer .obc-foot-title {
  margin: 0 0 8px;
  color: #f5f5f5;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.obc-footer .obc-foot-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.obc-footer .obc-foot-list li { margin: 0 0 6px; }

.obc-footer .obc-foot-list a {
  color: #f5f5f5b5;
  font-size: 0.92rem;
  text-decoration: none;
}

.obc-footer .obc-foot-list a:hover,
.obc-footer .obc-foot-list a:focus-visible {
  color: #f5f5f5;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 781px) {
  .obc-footer .obc-foot-nav { flex-wrap: wrap !important; }
  .obc-footer .obc-foot-nav > .wp-block-column {
    flex-basis: calc(50% - 9px) !important;
    margin-bottom: 14px;
  }
}


/* sprint 32 — the hamburger goes when the script that opens it is not there.
 *
 * It is WordPress's own navigation block and the overlay needs JavaScript. Left in place without one
 * it is a visible button that does nothing, which is worse than no button: somebody presses it,
 * nothing happens, and they conclude the site is broken rather than scrolling. Every link it would
 * have shown is in the footer.
 */
.no-js .obc-mobile-navigation { display: none !important; }

/* sprint 36 — a semantic H1 for the Finder page that names it for search and assistive tech without
   changing the visual design, which opens on a question by intent. Standard visually-hidden pattern:
   present in the DOM and read by screen readers and crawlers, off-screen for sighted users. */
/* 29 August 2026 — the hamburger is three lines and nothing else. The word stays in the markup
   because a button with no text has no name for a screen reader, and it is the same one visually
   hidden pattern rather than a second one. */
.obc-nav-shell .obc-burger .wp-block-button__link > span,
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  position: absolute !important;
  word-wrap: normal !important;
}
