/* ==========================================================================
   DexaFit Cincinnati — Custom CSS Overrides
   Site-wide manual overrides layered on top of the Squarespace template CSS.
   Loaded last in <head> on every page so these rules win the cascade.
   ========================================================================== */

/* ---------------------------------------------------------------------
   Primary navigation — tighten spacing, give dropdowns a proper
   elevated "card" treatment instead of the stock flat/bordered box.
   #header prefix raises specificity so these reliably beat the
   theme's own header-nav rules.
   --------------------------------------------------------------------- */



/* Cap the gap between top-level items so it can't sprawl on very
   wide screens (the theme's default spacing is viewport-relative
   with no upper bound), and trim the nav's font-size down from the
   body-copy size it inherited by default. With 6 dropdowns plus
   "Contact" plus the CTA button all sharing one header row, the
   looser defaults were overflowing onto a second line at common
   desktop widths (e.g. "Contact" wrapping below at ~1440px) —
   tightening both closes that gap with room to spare. */
#header .header-nav-item {
  font-size: 1rem;
}
#header .header-nav-item:not(:first-child):not(.header-actions-action--cart) {
  margin-left: clamp(0.5rem, 0.9vw, 0.8rem);
}
#header .header-nav-item:not(:last-child) {
  margin-right: clamp(0.5rem, 0.9vw, 0.8rem);
}

/* Dropdown panel: sharp shadow + a crisp border + slightly rounded
   corners instead of a flat white box with a hard 1px border sitting
   flush under the header — pushed further (bigger blur, more opacity,
   a hairline border) so it reads as clearly lifted off the page.
   Items are left-aligned (was center-aligned) so the list reads like
   a proper menu rather than a stack of centered labels. */
#header .header-nav-item--folder .header-nav-folder-content {
  padding: 0.5em 0;
  background-color: hsla(var(--white-hsl), 1);
  border: 1px solid hsla(var(--black-hsl), 0.08);
  border-radius: 8px;
  text-align: left;
  box-shadow:
    0 24px 48px hsla(var(--black-hsl), 0.22),
    0 4px 14px hsla(var(--black-hsl), 0.1);
}
/* Small pointer arrow centered under the primary item itself (not the
   panel, which is left-anchored and a different width) so it lines up
   with the middle of "Services", "About", etc. Lives on the item, not
   the panel, so it can be centered independently and only shows while
   the dropdown is open — sits just above the panel's top edge, with a
   z-index above the panel so the seam looks seamless. */
#header .header-nav-item--folder {
  position: relative;
}
#header .header-nav-item--folder::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -5px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid hsla(var(--white-hsl), 1);
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: 11;
}
#header .header-nav-item--folder:hover::before,
#header .header-nav-item--folder:has(> button[aria-expanded='true'])::before {
  opacity: 1;
}
/* Secondary (dropdown) items: each becomes a full-width, left-aligned
   row — previously only the text itself was clickable/hoverable and
   centered. Hover gives a soft fill plus a slight rightward nudge for
   sharp, tactile feedback instead of relying solely on the underline
   sweep. */
#header .header-nav-folder-content .header-nav-folder-item a {
  display: block;
  text-align: left;
  padding: 0.55em 1.5em;
  border-radius: 6px;
  transition: background-color 0.15s ease, padding-left 0.15s ease;
}
#header .header-nav-folder-content .header-nav-folder-item a:hover {
  background-color: hsla(var(--black-hsl), 0.06);
  /* padding-left: 1.75em;*/
}

/* Primary (top-level) items: same soft grey hover fill as the
   dropdown rows, so "Concierge Primary Care", "Services", etc. — and
   standalone links like "Contact" — give the same feedback instead of
   only reacting once a dropdown opens. Painted via an inset ::before
   rather than real padding, so the hover pill doesn't add to the
   item's box size — the nav is tightly fit to one row, and expanding
   the actual element would risk wrapping again. ::after stays free
   for the dropdown chevron below. */
#header .header-nav-item > a,
#header .header-nav-item--folder > button.header-nav-folder-title {
  position: relative;
}
#header .header-nav-item > a::before,
#header .header-nav-item--folder > button.header-nav-folder-title::before {
  content: '';
  position: absolute;
  inset: -0.5em -0.6em;
  background-color: hsla(var(--black-hsl), 0.06);
  border-radius: 6px;
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: -1;
}
#header .header-nav-item > a:hover::before,
#header .header-nav-item--folder:hover > button.header-nav-folder-title::before {
  opacity: 1;
}

/* Dropdown indicator: a small chevron on every primary item that
   opens a dropdown (Concierge Primary Care, Services, Memberships,
   About, Resources) — but not on plain links like "Contact" — so
   it's clear at a glance which items reveal a submenu. Flips upside
   down on hover/open to reinforce the state. */
#header .header-nav-item--folder > button.header-nav-folder-title::after {
  content: '';
  display: inline-block;
  width: 0.42em;
  height: 0.42em;
  margin-left: 0.45em;
  margin-bottom: 0.08em;
  border-right: 0.13em solid currentColor;
  border-bottom: 0.13em solid currentColor;
  border-radius: 0 0 1px 0;
  vertical-align: middle;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
#header .header-nav-item--folder:hover > button.header-nav-folder-title::after,
#header .header-nav-item--folder > button.header-nav-folder-title[aria-expanded='true']::after {
  transform: rotate(225deg);
}

/* Header "Book Appointment" CTA: smaller footprint than the default
   primary-button size, freeing up horizontal room in the header row.
   Scoped to the header CTA only (via the padding custom properties'
   fallback pattern) so buttons elsewhere on the site are untouched. */
#header .header-actions-action--cta {
  --primary-button-padding-x: 0.9rem;
  --primary-button-padding-y: 0.55rem;
}
#header .header-actions-action--cta .sqs-button-element--primary {
  font-size: 0.85rem;
}

/* ---------------------------------------------------------------------
   Homepage-only nav redesign — Services mega-menu columns + grouped
   Health Insights dropdown (desktop), and matching group labels in the
   mobile drill-down panes.

   Scoped to `body.homepage` (unlike the generic #header rules above,
   which are pre-existing and already apply site-wide): this nav content
   restructure is index.html-only per the brief, but custom-overrides.css
   loads on every page, so these new selectors would otherwise be inert
   noise elsewhere anyway — scoping keeps that explicit and matches the
   pattern used for the mobile-button-width fix earlier in this file.
   --------------------------------------------------------------------- */

/* Services dropdown: widen the panel and lay its three groups out as a
   2-column grid (DEXA & Body Composition / Performance side by side),
   with Health Optimization spanning the full width below — matches the
   brief's example layout. Health Insights reuses .nav-mega-group /
   .nav-mega-group-title for its heading style but stays single-column
   (only 2 items per group; no need for the grid). */
body.homepage #header .header-nav-folder-content--mega {
  min-width: 34rem;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
body.homepage #header .header-nav-folder-content--mega .nav-mega-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1rem;
}
body.homepage #header .header-nav-folder-content--mega .nav-mega-group-title,
body.homepage #header .header-nav-folder-content--mega .nav-mega-group--wide {
  grid-column: 1 / -1;
}

/* Group heading: an eyebrow label, not a link — smaller, spaced-out
   caps, muted so it reads as a section divider rather than another
   clickable row. Shared by the Services grid and the Health Insights
   single-column groups. */
body.homepage #header .nav-mega-group-title {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsla(var(--black-hsl), 0.5);
  padding: 0.9em 1.5em 0.3em;
}
body.homepage #header .header-nav-folder-item:first-child,
body.homepage #header .nav-mega-group-title:first-child {
  padding-top: 0.4em;
}

/* Mobile menu panes: same group-label treatment, inserted as plain
   (non-tappable) rows between a folder's actual links. Doesn't touch
   Squarespace's own folder-toggle JS contract — it only cares about
   .header-menu-nav-folder[data-folder] / [data-folder-id], not what
   else lives inside a pane's .header-menu-nav-folder-content. Turns out
   this theme's mobile overlay renders "light" (dark text on a light
   panel, confirmed live) rather than the dark-on-navy I'd assumed —
   muted dark to match, same formula as the desktop .nav-mega-group-title
   above. Bonus finding while testing: tapping a folder here expands its
   pane inline in place (tap again to collapse) rather than sliding to a
   separate full-screen pane — genuine expand/collapse, not drill-down. */
body.homepage .header-menu-nav-group-title {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsla(var(--black-hsl), 0.5);
  padding: 1.1em 1.25em 0.4em;
}

/* ---------------------------------------------------------------------
   Homepage hero — stronger, more deliberate scrim + type/button polish
   so the headline reads reliably over the photo instead of depending
   on that specific image's tones, and the CTA feels more intentional.
   --------------------------------------------------------------------- */

/* Tried a cleaner approach here first: adding a plain <div> as a
   sibling grid item inside .fluid-engine, positioned with a plain
   `grid-area` matching the union of the eyebrow/heading/paragraph/
   button blocks' own row/column lines (visible in the page's own
   <style> block, e.g. `.fe-block-83f61af7b3f5a5bbca57{grid-area:
   9/3/12/15}`) — no clip-path, no pixel math, genuinely native to
   Squarespace's own grid. It doesn't work: Fluid Engine's own JS
   re-renders `.fluid-engine`'s children at runtime and strips any
   element that isn't one of its recognized fe-blocks, so the div gets
   silently removed after load (confirmed by inspecting the live DOM —
   only the original 4 fe-blocks remained). Squarespace doesn't allow
   arbitrary elements injected into that specific container, full
   stop — this isn't a CSS problem to solve.

   So: back to using the theme's own .section-background-overlay
   element (a real, stable, non-JS-managed Squarespace element — the
   thing the "overlay opacity" slider in Squarespace's own Style
   Editor controls). A clip-path panel sized around the text (an
   earlier version of this rule) broke on smaller screens — Fluid
   Engine reflows the eyebrow/heading/paragraph/button onto an
   entirely different mobile grid (different row/column lines, see the
   media query in the page's own <style> block), so a panel shaped for
   one desktop measurement landed in the wrong place once the layout
   changed underneath it. A directional gradient across the *whole*
   section sidesteps that: it isn't tied to any specific text position
   or breakpoint, so it holds up at any screen size with no
   measuring — same navy as the panel version, just spread as a
   left-to-right wash (strongest behind the text column, fading into
   the clear photo) instead of a hard-edged box. */
[data-section-id="66f04a69231c593f45f8d239"] .section-background-overlay {
  opacity: 1 !important;
  background-color: transparent !important;
  background-image: linear-gradient(
      100deg,
      hsla(208.68, 96.81%, 16%, 0.95) 0%,
      hsla(208.68, 96.81%, 16%, 0.78) 58%,
      hsla(208.68, 96.81%, 16%, 0.52) 88%,
      hsla(208.68, 96.81%, 16%, 0) 98%
    ) !important;
}
@media (min-width: 1024px) {
  [data-section-id="66f04a69231c593f45f8d239"] .section-background-overlay {
    background-image: linear-gradient(
      100deg,
      hsla(208.68, 96.81%, 26%, 0.95) 0%,
      hsla(208.68, 96.81%, 26%, 0.78) 28%,
      hsla(208.68, 96.81%, 26%, 0.42) 52%,
      hsla(208.68, 96.81%, 26%, 0) 72%
    ) !important;
  }
}

/* Eyebrow: smaller and lighter-weight than the heading it introduces,
   in the brand accent blue (light blue) instead of bold white — reads
   as a deliberate kicker label rather than a second, competing
   headline. Not bold: the smaller size/letter-spacing/color already
   differentiate it without needing extra weight. */
[data-section-id="66f04a69231c593f45f8d239"] .eyebrow-text {
  font-size: 0.8rem;
  font-weight: 400;
  color: hsla(var(--accent-hsl), 1);
  letter-spacing: 2px;
  line-height: 1.02!important;
}

/* Heading, paragraph and button all sit in independently-positioned
   Fluid Engine grid cells (not normal document flow), so margin-top
   on one block only moves that block — it doesn't pull the next one
   closer. Values below are solved from each block's original
   (unmodified) position so every gap lands at a consistent ~16px
   (tightened further from an earlier ~22px pass), rather than just
   shifting a gap from one side of a block to the other. Original
   gaps were eyebrow→heading 67px, heading→paragraph 26px,
   paragraph→button 51px — pixel values measured at desktop width.

   Mobile uses a completely different set of grid-area row/column
   lines (see this section's own <style> block, under its own
   `max-width: 767px` rule) with much more compact natural spacing
   already, so these same fixed-pixel margins overshot badly there —
   eyebrow and heading ended up directly on top of each other.
   Scoped to `min-width: 768px` (Squarespace's own breakpoint here) so
   mobile just keeps its own natural, already-non-overlapping
   spacing instead. */
#home-h1,
#home-h2-customized-insights,
#home-h2-stay-ahead,
#home-h2-roadmap,
#home-h2-your-goal,
#home-h2-dexafit-ai,
#home-h2-trusted-ally,
#home-h2-join-community,
#home-h2-visit-us {
  line-height: 1.02;
}

/* These headings are hand-placed inside raw Code blocks rather than
   Squarespace's native Heading tool, so the theme's Heading 1 / Heading 2
   type-scale formula (site.css, driven by --heading-1-size-value: 4.5 and
   --heading-2-size-value: 4) never resolves for them — confirmed by testing
   a bare, class-less <h1> anywhere on this page: it still renders at a flat
   1rem (16px), the browser's inherited default, not the ~4.5rem the theme
   variables call for. Setting explicit sizes here so the hero headline and
   the page's section headings actually read as headings instead of body
   text. Values mirror the theme's own desktop targets (4.5rem / 4rem) and
   clamp() down smoothly for narrow viewports instead of relying on the
   theme's non-functional vw-based formula. */
#home-h1 {
  font-size: clamp(2.25rem, 1.4rem + 4.2vw, 4.5rem);
}
#home-h2-customized-insights,
#home-h2-stay-ahead,
#home-h2-roadmap,
#home-h2-your-goal,
#home-h2-dexafit-ai,
#home-h2-trusted-ally,
#home-h2-join-community,
#home-h2-visit-us {
  font-size: clamp(2rem, 1.3rem + 3.6vw, 4rem);
}
#block-83f61af7b3f5a5bbca57 .sqs-html-content p {
  max-width: 34em;
}

/* "Book Now": subtle shadow + lift on hover so it reads as an
   intentional, elevated call-to-action rather than a flat tile
   sitting on top of the photo. */
#block-f1fc4c9a91292539a299 a.sqs-block-button-element {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
#block-f1fc4c9a91292539a299 a.sqs-block-button-element:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32);
}

/* ---------------------------------------------------------------------
   Buttons — pill shape site-wide (this page).
   --------------------------------------------------------------------- */

/* Squarespace's own Style Editor has a "pill" preset for button shape
   (border-radius: 300px, gated behind a `.primary-button-shape-pill`/
   `.secondary-button-shape-pill` class on an ancestor), but the site
   isn't using it — buttons currently get their corner radius from
   four separate --primary-button-rounded-border-*-radius custom
   properties (10px each). Rather than toggle a body-level shape class
   (which could carry other unrelated shape-preset side effects),
   this sets border-radius directly using the theme's own "pill" value
   on every button variant found on this page: primary/secondary
   sqs-button-element buttons (header CTA, hero "Book Now", inline
   content CTAs like "About the Practice") and the plain .btn class.
   !important beats the theme's per-corner longhand radius rules. */
.sqs-button-element--primary,
.sqs-button-element--secondary,
a.btn,
button.btn {
  border-radius: 300px !important;
}

/* ---------------------------------------------------------------------
   Homepage slider ("Your Health, Your Future") — text card.
   --------------------------------------------------------------------- */

/* The card behind each slide's title/description/button ships as a
   flat, fully-opaque white rectangle with square corners. Round the
   corners to match the softer, pill-leaning look used elsewhere on the
   site, and drop the opacity slightly so a hint of the slide photo
   shows through instead of the text sitting on a hard white cutout.
   Scoped to this section's id (the only place .list-item-card-background
   is used) so it can't leak onto any other card-background element. */
[data-section-id="6764f8ca8d49df3201d59c98"] .slide-content.list-item-card-background {
  background-color: hsla(var(--white-hsl), 0.85) !important;
  border-radius: 16px !important;
}

/* Title and body copy: fixed line-height on the title (the theme's
   default is tighter and starts crowding on two-line titles like
   "Manage & Prevent Chronic Disease"), plus `text-wrap: pretty` on
   both so the last line of a wrap doesn't strand a single short word
   (an orphan) — the browser looks ahead across the whole block instead
   of only balancing greedily line-by-line. */
[data-section-id="6764f8ca8d49df3201d59c98"] .list-item-content__title {
  line-height: 1.2 !important;
  text-wrap: pretty;
}
[data-section-id="6764f8ca8d49df3201d59c98"] .list-item-content__description p {
  text-wrap: pretty;
}

/* ---------------------------------------------------------------------
   Homepage "What's Your Goal?" section — gallery image + arrows.
   --------------------------------------------------------------------- */

/* Image: the Squarespace gallery block's own `.slide` wrapper already
   has `overflow: hidden` around the `<img>`, so rounding it is enough
   to clip the photo into rounded corners (no separate rule needed on
   the `<img>` itself). Matches the 16px radius used on the hero
   slider's text card above for a consistent corner treatment. */
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-block-slideshow .slide {
  border-radius: 16px;
}

/* Arrows: this gallery block's default prev/next controls are flat,
   translucent-black rectangular tabs — replace them with the same
   floating circular accent-blue button used by the hero slider above
   (.user-items-list-banner-slideshow__arrow-button): same 60px circle,
   same accent color/opacity, own drawn chevron (the hero slider's
   arrow icon is inline SVG markup that doesn't exist in this block's
   plain `<a class="previous">`/`<a class="next">` DOM, so it's
   recreated here as a background image on `::before`). Left/right and
   vertical centering stay untouched — the theme's own CSS/JS already
   places these correctly; only appearance changes. */
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .previous,
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .next {
  width: 30px !important;
  height: 30px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  background-color: hsla(var(--accent-hsl), 0.7) !important;
  border-radius: 50% !important;
  transition: background-color 0.15s ease;
}
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .previous {
  left:1rem;
}
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .next {
  right:1rem;
}
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .previous:hover,
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .next:hover {
  background-color: hsla(var(--accent-hsl), 1) !important;
}
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .previous::before,
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .next::before {
  content: '' !important;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 18'%3E%3Cpath d='M34.15 1.39L41.93 9.18L34.15 16.96' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath d='M1.19 9.17H40.68' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
[data-section-id="676456659621d82c02e4486c"] .sqs-gallery-controls .previous::before {
  transform: scaleX(-1);
}

/* ---------------------------------------------------------------------
   Buttons — consistent size everywhere outside the header/nav.
   --------------------------------------------------------------------- */

/* Every button block on the page (Book Now, Book Appointment, Get
   DexaFit Now/Today, About Us, the slider "Learn More" CTAs) already
   shares the same padding (16px 20.8px) and the theme's own primary
   button size — 20.2px, driven by --primary-button-font-font-size:
   1.25rem — except the two homepage sliders' "Learn More" buttons,
   which were each configured with a smaller custom font size
   (1rem/16px, set in that section's own inline <style> block). Forcing
   those back to 1.25rem (rather than a hardcoded px) matches every
   other button using the theme's own size value, so it stays in sync
   if that value is ever changed globally. The header's own CTA is
   deliberately sized down separately above and is left alone here. */
[data-section-id="66f04a69231c593f45f8d244"] .list-item-content__button,
[data-section-id="6764f8ca8d49df3201d59c98"] .list-item-content__button {
  font-size: 1.25rem !important;
}

/* ---------------------------------------------------------------------
   Footer — make it stand out, shrink its CTA button.
   --------------------------------------------------------------------- */

/* Was a flat white section with gray text/headings, blending straight
   into the rest of the page. Dark navy background (same family as the
   hero) makes it read as its own deliberate block. Links (Policies/
   Connect/Learn/Services items, phone, email, copyright's "Find a
   DexaFit near you") are already accent blue and need no change; only
   the plain gray paragraph text (column headers "Policies"/"Connect"/
   "Learn"/"Services", the "Know your body..." heading, and the
   copyright line) needs to flip to white. */
[data-section-id="66f04a68231c593f45f8d1d5"] .section-background {
  background-color: hsla(208.68, 96.81%, 16%, 1) !important;
}
[data-section-id="66f04a68231c593f45f8d1d5"] h3,
[data-section-id="66f04a68231c593f45f8d1d5"] .sqs-html-content p {
  color: hsla(var(--white-hsl), 1) !important;
}
/* The four column headers ("Policies", "Connect", "Learn", "Services")
   aren't plain paragraph text — the site's rich-text editor wrapped
   each one in its own <span class="sqsrte-text-color--black">, which
   carries an explicit color that wins over the inherited white above
   (a direct rule on the element always beats an inherited one, no
   matter how the inherited value was set). Needs its own override.
   The links themselves are separate <a> elements, not part of this
   span, so they're untouched. */
[data-section-id="66f04a68231c593f45f8d1d5"] .sqsrte-text-color--black {
  color: hsla(var(--white-hsl), 1) !important;
}

/* "Get DexaFit Today" footer CTA: smaller footprint than the site's
   default primary-button size, the same way the header CTA is scaled
   down above — scoped to this one footer button block only, so every
   other button on the page (including the identical-looking hero
   "Book Now") is untouched. */
#block-a406f4ae855d28936001 {
  --primary-button-padding-x: 0.9rem;
  --primary-button-padding-y: 0.55rem;
}
#block-a406f4ae855d28936001 .sqs-button-element--primary {
  font-size: 0.85rem !important;
}

/* ---------------------------------------------------------------------
   Referrizer voucher widget — hidden.
   --------------------------------------------------------------------- */

/* Renders a full inline voucher card at the very bottom of the page,
   after the footer. Two elements share this id (a leftover from the
   embed's own markup), so the id selector alone catches both. */
#referrizer-popup-widget {
  display: none !important;
}

/* ---------------------------------------------------------------------
   Utility nav bar — replaces the native announcement bar.
   --------------------------------------------------------------------- */

/* Squarespace's own announcement-bar widget (JS-rendered from the
   Settings > Announcement Bar text field) has been turned off site-wide
   (showAnnouncementBar:false in the page's static-context JSON), and the
   body keeps the "announcement-bar-reserved-space" class it would
   otherwise add itself — that class's own site.css rules already do the
   correct fixed-header math (2.3em bar + header height), so reusing it
   here means this bar doesn't need its own layout/spacing rules, only
   its own look. The dropzone the widget used to fill now holds a plain,
   permanent, right-aligned nav instead: Contact and the phone number —
   the two "how to reach us" items that don't need a click into a
   dropdown. (About stayed in the primary nav below, alongside Services /
   Memberships / Pricing / Resources — it's core wayfinding, not utility
   content.) Not a promo — no dismiss control, since closing it would
   remove navigation. */
.sqs-announcement-bar-dropzone {
  min-height: 2.3em;
}
.utility-nav-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.6em;
  min-height: 2.3em;
  padding: 0 4vw;
  background: #333;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.utility-nav-bar a {
  color: #fff;
  text-decoration: none;
}
.utility-nav-bar a:hover {
  color: hsla(var(--accent-hsl), 1);
}
.utility-nav-bar .utility-nav-divider {
  width: 1px;
  height: 0.9em;
  background: rgba(255, 255, 255, 0.35);
}

/* Below the site's mobile breakpoint: keep the bar (don't drop it).
   It used to be hidden here on the reasoning that Contact was still one
   tap away in the hamburger menu — but the nav redesign above removed
   Contact from the mobile menu entirely (it's not in the brief's approved
   item list), and the phone number was never in the hamburger to begin
   with. Hiding this bar would leave mobile visitors with no way to reach
   either one, so it stays, just tightened up: smaller text and less
   padding so "Contact | (513) 201-7889" reads as a compact strip instead
   of the same spacious desktop bar shrunk down. */
@media (max-width: 767px) {
  .utility-nav-bar {
    padding: 0 4vw;
    font-size: 0.72rem;
    gap: 0.45em;
  }
}

/* ---------------------------------------------------------------------
   "Book Appointment" button — stop it wrapping to two lines.
   --------------------------------------------------------------------- */

/* Every other "Book Appointment" button on the page renders as a single
   ~231x62px pill; this one alone sits in a narrower grid cell that's a
   few px short of what "Book Appointment" needs at this font size, so it
   wraps to two lines and balloons to 92px tall. white-space:nowrap lets
   it overflow its cell by that same handful of px instead of wrapping —
   invisible in practice, and it matches every sibling button again. */
#block-f1fc4c9a91292539a299 .sqs-block-button-element {
  white-space: nowrap;
}

/* ---------------------------------------------------------------------
   Mobile hamburger menu — smaller nav type.
   --------------------------------------------------------------------- */

/* This is a separate overlay nav tree from the desktop <nav
   class="header-nav-list"> (Squarespace's own "header-menu-*" mobile
   component), styled entirely through inherited/ancestor rules — every
   link and folder-title in it is a bare, class-less <a>. Default renders
   at 40px, oversized for a phone screen; scaled down to something closer
   to typical mobile nav sizing. */
@media (max-width: 767px) {
  .header-menu-nav-list a {
    font-size: 1.3rem;
  }
}

/* Row spacing: measured live at 0 — every row (top-level items and the
   nested links inside an expanded folder pane) was ~32px tall with zero
   gap between them and zero internal padding, packed edge-to-edge.
   Padding on every row gives each one a ~50px+ tap target (Apple/Google
   both recommend ~44-48px minimum) with visible breathing room, and a
   hairline divider between top-level items (only — the border-bottom
   selector is scoped to direct children of .header-menu-nav-wrapper, so
   the nested rows inside a folder stay visually clustered under their
   own .header-menu-nav-group-title instead of getting a divider each). */
@media (max-width: 767px) {
  .header-menu-nav-item {
    padding-top: 0.8em;
    padding-bottom: 0.8em;
  }
  .header-menu-nav-wrapper > .container.header-menu-nav-item {
    border-bottom: 1px solid hsla(var(--black-hsl), 0.08);
  }
  .header-menu-nav-wrapper > .container.header-menu-nav-item:last-child {
    border-bottom: none;
  }
}

/* ---------------------------------------------------------------------
   Homepage only — content CTA buttons full-width & centered on mobile.
   --------------------------------------------------------------------- */

/* This stylesheet is shared across every page, so these rules are
   scoped to the `homepage` body class Squarespace adds only to
   index.html — every other page's buttons are untouched.

   Targets the in-page CTA buttons (e.g. "Book Appointment", "Learn
   More") via Squarespace's own button-block markup
   (.sqs-block-button-container > .sqs-block-button-element). This
   deliberately does NOT touch the persistent header "Book
   Appointment" pill or the mobile nav overlay's CTA — those are a
   separate .btn component living in the fixed header/hamburger menu,
   not a page-content block. */
@media (max-width: 767px) {
  body.homepage .sqs-block-button-container {
    justify-content: center;
    text-align: center;
  }
  /* border-box so width:100% includes the button's own ~21px
     horizontal padding — left content-box (the default), the button's
     rendered box was 100% of its container PLUS that padding on top,
     overflowing past its container/the viewport edge (this is what
     made the "Our Services" carousel's Book Appointment button run
     wider than the screen). */
  body.homepage .sqs-block-button-element {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  /* The hero and "What's Your Goal?" Book Appointment buttons live in
     Fluid Engine grid blocks (fe-block-*) whose own mobile grid-column
     span Squarespace baked narrower than every other full-width CTA
     block on the page (2/5 and 2/6 of the 8-column mobile grid, vs.
     2/10 = full width everywhere else) — so width:100% above just
     fills an already-narrow cell instead of the full screen. Widen
     the grid cell itself to match every other full-width block.
     Needs the extra body.homepage class for specificity: the page's
     own inline grid-area rule for these blocks has otherwise-equal
     specificity and comes later in the document, so without it that
     rule would win instead of this override. */
  body.homepage .fe-block-f1fc4c9a91292539a299,
  body.homepage .fe-block-yui_3_17_2_1_1736771922030_9476 {
    grid-column: 2 / 10;
  }
}

/* ---------------------------------------------------------------------
   Homepage only — remove the cookie consent banner.
   --------------------------------------------------------------------- */

/* Squarespace's own native GDPR cookie banner (Settings > Cookie Banner,
   not a page block or custom code — it self-mounts at
   .cookie-banner-mount-point, a fixed bottom bar, on every page). It was
   getting in the way of scrolling/testing this page. display:none is
   enough: unlike the announcement bar, this banner doesn't reserve
   layout space via a body class, so there's no companion "collapse the
   reserved gap" rule needed here (compare the announcement-bar-dropzone
   handling above). Scoped to body.homepage, matching every other change
   in this file this session — remove that prefix (or ask) if this
   should come off every page instead of just the homepage mockup. */
body.homepage .cookie-banner-mount-point {
  display: none !important;
}
