/* ============================================================
   Gemini OB/GYN — Theme styles  (matched to Figma 466:6396)
   ============================================================ */

/* ----------------------------------------------------------
   0. Local fonts — Trajan Pro (Regular + Bold)
---------------------------------------------------------- */
@font-face {
	font-family: "Trajan Pro";
	src: url("../fonts/TrajanPro-Regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Trajan Pro";
	src: url("../fonts/TrajanPro-Bold.otf") format("opentype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
/* Some Figma references use "Trajan Pro 3" — alias to the same files */
@font-face {
	font-family: "Trajan Pro 3";
	src: url("../fonts/TrajanPro-Regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Trajan Pro 3";
	src: url("../fonts/TrajanPro-Bold.otf") format("opentype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Optima — local files in /fonts */
@font-face {
	font-family: "Optima";
	src: url("../fonts/OPTIMA.TTF") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Optima";
	src: url("../fonts/Optima_Italic.ttf") format("truetype");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Optima";
	src: url("../fonts/Optima Medium.ttf") format("truetype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Optima";
	src: url("../fonts/OPTIMA_B.TTF") format("truetype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ----------------------------------------------------------
   1. Tokens (sourced from Figma)
---------------------------------------------------------- */
:root {
	/* Surfaces */
	--c-bg:           #FFFFFF;
	--c-bg-cream:     #F4ECDF;   /* warm cream — used in welcome / footer band areas */
	--c-bg-soft:      #F9F9F9;   /* utility nav, light bands */
	--c-bg-stats:     #EEEEEE;   /* stats bar */
	--c-surface:      #FFFFFF;
	--c-card-dark:    #323232;   /* dark physician card / dark band */
	--c-band-dark:    #2E2E2E;   /* black band sections (Comprehensive Healthcare, Office) */

	/* Type colors (Figma) */
	--c-headline:     #2E2E41;   /* large display headings */
	--c-section:      #424242;   /* "Meet the Physicians" tone */
	--c-body:         #697382;   /* body copy */
	--c-ink:          #1A1A1A;
	--c-ink-soft:     #494858;   /* utility text */
	--c-ink-muted:    #6E6E6E;
	--c-line:         rgba(46, 46, 65, 0.12);

	/* On-dark tokens */
	--c-on-dark:        #FFFFFF;
	--c-on-dark-soft:   #EFEFEF;
	--c-on-dark-muted:  #CBBFBA;   /* warm taupe used on doctor cards */
	--c-on-dark-meta:   #C5BCA9;

	/* Accents */
	--c-accent:       #A78A5C;   /* warm gold */
	--c-accent-soft:  #D7BB89;
	--c-star:         #C99A3F;

	/* Typography */
	--ff-display: "Trajan Pro", "Cinzel", "Trajan Pro 3", "Adobe Caslon Pro", Georgia, "Times New Roman", serif;
	--ff-body:    "Optima", "Optima Nova", "URW Classico", Candara, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--ff-ui:      "Mulish", "Helvetica Neue", Arial, sans-serif;

	--fs-base:      16px;
	--fs-eyebrow:   13px;
	--fs-body:      18px;
	--fs-body-lg:   22px;
	--fs-lede:      20px;

	--fs-h1:        clamp(2.4rem, 4.5vw, 3.75rem);   /* 60px peak — "Gemini OBGYN" hero */
	--fs-h1-sub:    clamp(1.6rem, 3vw, 2.5rem);      /* 40px — "Board-certified..." */
	--fs-h2:        clamp(2rem, 3.4vw, 2.8125rem);   /* 45px — section titles */
	--fs-h2-pre:    clamp(1.25rem, 2vw, 1.6875rem);  /* 27px — "Welcome to" */
	--fs-h3:        clamp(1.4rem, 2vw, 1.6875rem);
	--fs-h4:        1.15rem;

	/* Spacing */
	--gap-xs: 0.5rem;
	--gap-sm: 1rem;
	--gap:    1.5rem;
	--gap-lg: 2.5rem;
	--gap-xl: 4rem;

	--section-pad-y: clamp(3rem, 6vw, 6rem);

	/* Layout */
	--container-max: 1370px;
	--container-pad: clamp(1.25rem, 4vw, 2.1875rem);   /* 35px on desktop */

	--radius-sm: 5px;
	--radius:    12px;
	--radius-card: 20px;
	--radius-lg: 24px;
	--radius-pill: 999px;

	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
	--shadow:    0 8px 24px rgba(24, 24, 24, 0.08);
	--shadow-lg: 0 18px 48px rgba(24, 24, 24, 0.18);

	--ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ----------------------------------------------------------
   2. Base
---------------------------------------------------------- */
html { font-size: var(--fs-base); }
body {
	font-family: var(--ff-body);
	font-size: var(--fs-body);
	line-height: 1.65;
	color: var(--c-body);
	background: var(--c-bg);
}

a { color: var(--c-headline); transition: color 0.2s var(--ease); }
a:hover { color: var(--c-accent); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ff-display);
	font-weight: 400;
	line-height: 1.2;
	color: var(--c-headline);
	letter-spacing: 0.01em;
	text-transform: uppercase;   /* Trajan-style caps */
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

img { max-width: 100%; height: auto; display: block; }

.skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	width: auto;
	height: auto;
	padding: 8px 14px;
	background: var(--c-headline);
	color: #fff;
	clip: auto;
	z-index: 1000;
}

/* ----------------------------------------------------------
   3. Layout primitives
---------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding-left: var(--container-pad);
	padding-right: var(--container-pad);
}

.eyebrow {
	display: inline-block;
	font-family: var(--ff-display);
	font-size: var(--fs-eyebrow);
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin: 0 0 0.85rem;
}

.section-head { margin-bottom: 2.5rem; }
.section-head--center { text-align: center; }

/* Default section title — Figma: Trajan Pro 400, 45px, line-height 64px, #424242 */
.section-title {
	font-family: var(--ff-display);
	font-size: 45px;
	font-style: normal;
	font-weight: 400;
	line-height: 64px;
	color: #424242;
	text-align: center;
	margin: 0 0 0.75rem;
	letter-spacing: 0.02em;
	font-variant-caps: all-small-caps;
	text-transform: none;
}
.section-title--light { color: var(--c-on-dark); }

.rich-text { font-size: var(--fs-body-lg); line-height: 1.7; color: var(--c-body); }
.rich-text p { margin-bottom: 1.1em; }
.rich-text--light { color: var(--c-on-dark-muted); }
.rich-text--light p { color: var(--c-on-dark-muted); }

/* ----------------------------------------------------------
   4. Buttons
---------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 1.75rem;
	font-family: var(--ff-display);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	border: 2px solid transparent;
	border-radius: var(--radius-sm);
	cursor: pointer;
	text-decoration: none;
	transition: all 0.25s var(--ease);
	white-space: nowrap;
}

.btn--primary {
	background: #000;
	color: #fff;
	border-color: #000;
}
.btn--primary:hover {
	background: var(--c-headline);
	border-color: var(--c-headline);
	color: #fff;
}

.btn--ghost {
	background: transparent;
	color: var(--c-headline);
	border-color: var(--c-headline);
}
.btn--ghost:hover {
	background: #000;
	border-color: #000;
	color: #fff;
}

.btn--ghost.btn--light {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
}
.btn--ghost.btn--light:hover {
	background: #fff;
	color: var(--c-headline);
	border-color: #fff;
}

.btn--lg {
	padding: 1.15rem 2.25rem;
	font-size: 1.05rem;
}

/* ----------------------------------------------------------
   5. Header  — fixed at top, transparent over hero, white on scroll
---------------------------------------------------------- */
:root { --header-h: 105px; --utility-h: 38px; }

.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 100;
	transition: background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

/* Utility nav — light gray bar always at top of header */
.utility-nav {
	background: var(--c-bg-soft);
	color: var(--c-ink-soft);
	font-family: var(--ff-ui);
	font-size: 14px;
}
.utility-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	justify-content: flex-end;
	align-items: center;
	padding: 8px 0;
	list-style: none;
	margin: 0;
	min-height: var(--utility-h);
}
.utility-nav__list li { display: inline-flex; align-items: center; }
.utility-nav__list a {
	color: inherit;
	text-decoration: none;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.utility-nav__list a:hover { color: var(--c-accent); }
.utility-nav__spacer { flex: 1; }
.utility-nav__proud-label {
	font-family: var(--ff-ui);
	font-weight: 500;
	font-size: 14px;
	color: var(--c-ink-soft);
	letter-spacing: 0.01em;
}
.utility-nav__proud-logo {
	margin-left: 0.4rem;
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.utility-nav__proud-logo a { display: inline-flex; align-items: center; line-height: 0; }
.utility-nav__proud-logo img,
.utility-nav__proud-logo svg {
	height: 24px;
	width: auto;
	max-width: 220px;
	max-height: 24px;
	display: block;
	object-fit: contain;
}

/* Main header band — transparent initially, white on scroll */
.site-header__main {
	background: transparent;
	transition: background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.site-header.is-scrolled .site-header__main,
body:not(.has-hero) .site-header__main {
	background: #fff;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.06);
}

/* Single-row layout: brand | nav | CTA */
.site-header__inner {
	display: flex;
	gap: 2rem;
	align-items: center;
	justify-content: space-between;
	padding-top: 0.85rem;
	padding-bottom: 0.85rem;
	min-height: calc(var(--header-h) - var(--utility-h));
}

.site-header__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	flex-shrink: 0;
}
.site-header__logo img {
	max-height: 80px;
	width: auto;
	display: block;
}
.site-header__logo--text {
	font-family: var(--ff-display);
	font-size: 1.75rem;
	color: var(--c-headline);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.site-header__cobrand img {
	max-height: 24px;
	width: auto;
	display: block;
}

/* Mobile menu toggle (hidden until breakpoint) */
.site-header__menu-toggle {
	display: none;
	width: 42px;
	height: 42px;
	flex-direction: column;
	gap: 5px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 0;
	color: var(--c-headline);
}
.site-header__menu-toggle span {
	width: 24px; height: 2px;
	background: currentColor;
	transition: transform 0.25s var(--ease), opacity 0.25s var(--ease);
}
.site-header__menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header__menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-header__menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Primary nav, inline with brand + CTA — right-aligned next to the CTA button */
.site-nav { flex: 1; display: flex; justify-content: flex-end; min-width: 0; padding-right: 1.5rem; }
.site-nav__list,
.site-nav__list ul.site-nav__list {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(0.75rem, 1.5vw, 1.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.site-nav__list > li { flex-shrink: 0; }
.site-nav__list a,
.site-nav__list li > a {
	color: #2D2D41;
	font-family: var(--ff-body);          /* Optima */
	font-size: 14px;
	font-style: normal;
	font-weight: 550;
	line-height: 16px;                    /* 114.286% */
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
	padding: 0.65rem 0;
	display: inline-block;
	white-space: nowrap !important;       /* multi-word items stay on one line */
	word-break: keep-all;
	transition: color 0.2s var(--ease);
}
.site-nav__list a:hover { color: var(--c-accent); }

/* Active state — the current page and every ancestor in the menu chain
   (parent + grandparent) take the same warm-gold colour as :hover, so the
   top-level section stays lit while viewing a child or detail page. */
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-parent > a,
.site-nav__list .current-menu-ancestor > a,
.site-nav__list .current_page_item > a,
.site-nav__list .current_page_parent > a,
.site-nav__list .current_page_ancestor > a,
.site-nav__list .current-menu-item > a:hover,
.site-nav__list .current-menu-ancestor > a:hover {
	color: var(--c-accent);
}

.site-nav__list .menu-item-has-children { position: relative; }
.site-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: #fff;
	box-shadow: var(--shadow);
	padding: 0.5rem 0;
	margin: 0;
	list-style: none;
	border-radius: var(--radius-sm);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s var(--ease), transform 0.2s var(--ease), visibility 0.2s;
	z-index: 50;
}
.site-nav__list .menu-item-has-children:hover > .sub-menu,
.site-nav__list .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.site-nav__list .sub-menu a {
	display: block;
	padding: 0.6rem 1rem;
	font-size: 0.85rem;
	color: var(--c-headline);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	/* Override the top-level nowrap so long items (e.g. "Bio Identical
	   Hormone Therapy") wrap inside their column instead of overflowing. */
	white-space: normal !important;
	line-height: 1.3;
}
.site-nav__list .sub-menu a:hover { background: var(--c-bg-cream); color: var(--c-headline); }

/* Long, flat first-level dropdowns (e.g. Services) can run past the bottom of
   the screen, hiding the last items. Flow them into two columns so every item
   is visible at once. Scoped to dropdowns with no third-level fly-out so the
   column layout never splits or clips a sub-sub-menu, and capped to the
   viewport height with a scroll fallback for very small screens. */
@media (min-width: 1101px) {
	.site-nav__list > .menu-item-has-children > .sub-menu:not(:has(.sub-menu)):has(:nth-child(13)) {
		column-count: 2;
		column-gap: 1.5rem;
		width: 560px;
		max-width: 92vw;
		max-height: calc(100vh - 140px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.site-nav__list > .menu-item-has-children > .sub-menu:has(:nth-child(13)) > li {
		break-inside: avoid;
	}
}

/* Active state inside dropdowns — current grandchild + its parent stay lit */
.site-nav__list .sub-menu .current-menu-item > a,
.site-nav__list .sub-menu .current-menu-parent > a,
.site-nav__list .sub-menu .current-menu-ancestor > a,
.site-nav__list .sub-menu .current_page_item > a,
.site-nav__list .sub-menu .current_page_parent > a,
.site-nav__list .sub-menu .current_page_ancestor > a {
	color: var(--c-accent);
}

/* Third-level submenu — flies out beside its level-2 parent rather than
   stacking on top of the level-2 panel. */
.site-nav__list .sub-menu .sub-menu {
	top: 0;
	left: 100%;
	margin-left: 2px;
}
/* Caret on level-2 items that open a third level */
.site-nav__list .sub-menu .menu-item-has-children > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}
.site-nav__list .sub-menu .menu-item-has-children > a::after {
	content: "\203A";          /* › */
	font-size: 1.15em;
	line-height: 1;
	opacity: 0.55;
}

/* CTA button — uses /assets/button-bg.svg as the shape (black flag w/ arrow tip) */
.site-header__cta {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.site-header__book {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 249px;
	height: 40px;
	padding: 0 30px 0 18px;       /* leaves room on the right for the arrow tip */
	background: url("../assets/button-bg.svg") center / 249px 40px no-repeat;
	color: #fff;
	font-family: var(--ff-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: filter 0.2s var(--ease), transform 0.2s var(--ease);
}
.site-header__book span {
	color: #fff;
	white-space: nowrap;
}
.site-header__book:hover {
	filter: brightness(1.2);
	transform: translateX(2px);
}
.site-header__book span { color: #fff; }

/* Push site main below the fixed header on pages WITHOUT a hero overlay.
   --header-offset is the real header height measured by global.js (updates
   on resize); --header-h is the static no-JS fallback. */
.site-main { padding-top: var(--header-offset, var(--header-h)); }
body.has-hero .site-main { padding-top: 0; }

/* ----------------------------------------------------------
   6. Hero carousel  (image already has overlay baked in)
   Figma: 1440 × 630 hero. Text starts ~y:282, CTAs ~y:517.
   "Gemini OBGYN" — Trajan Pro Regular 60px uppercase, color #000.
   "Board-certified OB-GYNs in Pembroke Pines, FL" — Optima 40px, #000.
---------------------------------------------------------- */
.hero-carousel { position: relative; background: var(--c-bg-cream); margin-bottom: -4px; }
.hero-carousel__track .slick-list,
.hero-carousel__track .slick-track { line-height: 0; }

.hero-carousel__slide {
	position: relative;
	min-height: clamp(560px, 60vw, 820px);   /* taller hero — more visual presence */
	overflow: hidden;
	background: var(--c-bg-cream);
}
/* Background image fills the slide (absolute, behind content) */
.hero-carousel__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.hero-carousel__bg img {
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

@media screen and (max-width: 1024px) {
	.hero-carousel__bg img { object-position: right; }
}

/* Inner takes the slide's full height and flex-centers content vertically */
.hero-carousel__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	min-height: clamp(560px, 60vw, 820px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(2.5rem, 6vw, 5rem);
	padding-bottom: clamp(2.5rem, 6vw, 5rem);
}
.hero-carousel__content {
	max-width: 720px;
	color: #000;
}
.hero-carousel__eyebrow {
	font-family: var(--ff-display);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #000;
	margin: 0 0 1rem;
}
/* "Gemini OBGYN" — 60px Trajan Pro UPPERCASE, line-height 76px, color #000 */
.hero-carousel__title {
	font-family: var(--ff-display);
	font-weight: 400;
	font-size: clamp(2.5rem, 4.2vw, 3.75rem);   /* 40 → 60px */
	line-height: 1.08;                           /* ~76px @ 60 */
	letter-spacing: 0.01em;
	color: #000;
	text-transform: uppercase;
	margin: 0 0 0.6rem;
}
/* "Board-certified OB-GYNs in Pembroke Pines, FL" — 40px Optima, color #000 */
.hero-carousel__subtitle {
	font-family: var(--ff-body);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.8vw, 2.5rem);     /* 24 → 40px */
	line-height: 1.32;                            /* ~53px @ 40 */
	letter-spacing: 0;
	color: #000;
	margin: 0 0 1.5rem;
	text-transform: none;
}
.hero-carousel__body {
	font-family: var(--ff-body);
	font-size: 1.1rem;
	color: var(--c-body);
	margin-bottom: 1.75rem;
	max-width: 580px;
}
.hero-carousel__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
}
/* CTAs sit on the cream area: dark primary + dark outlined */
.hero-carousel__ctas .btn--primary {
	background: #000;
	border-color: #000;
	color: #fff;
	min-width: 240px;
	padding: 1.05rem 2rem;
}
.hero-carousel__ctas .btn--primary:hover { background: var(--c-headline); border-color: var(--c-headline); }
.hero-carousel__ctas .btn--ghost {
	background: transparent;
	border-color: var(--c-headline);
	color: var(--c-headline);
	min-width: 230px;
	padding: 1.05rem 1.5rem;
}
.hero-carousel__ctas .btn--ghost:hover { background: #000; border-color: #000; color: #fff; }

/* Button-with-arrow variant — Figma shows label + circled arrow icon on the right */
.btn--with-arrow {
	gap: 0.85rem;
	padding-right: 0.75rem;
}
.btn--with-arrow .btn__arrow {
	flex-shrink: 0;
	transition: transform 0.25s var(--ease);
}
.btn--with-arrow:hover .btn__arrow { transform: translateX(3px); }

/* Slick overrides — Figma has no prev/next arrows on the hero carousel */
.hero-carousel .slick-prev,
.hero-carousel .slick-next { display: none !important; }

/* Figma has no carousel dots — hide them */
.hero-carousel .slick-dots { display: none !important; }
.hero-carousel__track:not(.slick-initialized) .hero-carousel__slide + .hero-carousel__slide {
	display: none;
}

/* ----------------------------------------------------------
   6a. Doctor Names Band — thin dark strip under the hero
---------------------------------------------------------- */
.doctor-band {
	background: var(--c-card-dark);   /* #323232 */
	color: #FFF;
	padding: 1rem 0;
	text-align: left;
}
.doctor-band__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	gap: 0.85rem 1.4rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.doctor-band__item {
	font-family: var(--ff-display);
	font-size: 20px;   /* 25px on desktop */
	font-weight: 500;
	letter-spacing: 0.06em;
	color: #FFF;
	line-height: 1.3;
	font-variant-caps: all-small-caps;   /* Trajan-style small caps from mixed-case input */
	text-transform: none;
}
.doctor-band__item a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s var(--ease);
}
.doctor-band__item a:hover { color: var(--c-accent-soft); }
.doctor-band__sep {
	color: var(--c-accent);
	font-size: 1.25rem;
	line-height: 1;
	font-weight: 700;
	user-select: none;
}

@media (max-width: 640px) {
	.doctor-band__list { gap: 0.75rem; flex-direction: column; }
	.doctor-band__sep { display: none; }
	.doctor-band__item { text-align: center; }
}

/* ----------------------------------------------------------
   6b. Stats bar (Group 1280) — between hero and welcome
---------------------------------------------------------- */
.stats-bar {
	background: var(--c-bg-stats);
	padding: 1.75rem 0;
}
.stats-bar__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	align-items: center;
}
.stats-bar__cell {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	justify-content: center;
	color: #000;
	border-right: 1px solid rgba(0,0,0,0.18);
	padding: 0.5rem 1rem;
}
.stats-bar__cell:last-child { border-right: 0; }

.stats-bar__icon {
	flex-shrink: 0;
	width: 48px; height: 48px;
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--c-accent);
}
.stats-bar__icon img,
.stats-bar__icon svg {
	max-width: 100%; max-height: 100%;
}
.stats-bar__text {
	font-family: var(--ff-display);
	font-size: 1.05rem;
	font-weight: 500;
	color: #000;
	line-height: 1.25;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.stats-bar__text-soft {
	font-family: var(--ff-body);
	font-size: 1.05rem;
	color: #000;
	letter-spacing: 0.01em;
	text-transform: none;
	font-weight: 400;
}

/* ----------------------------------------------------------
   6c. Reviews carousel — standalone section
---------------------------------------------------------- */
.reviews {
	padding: var(--section-pad-y) 0 0;
	margin-bottom: -1px;
	background: var(--c-bg-cream);
	text-align: center;
}
.reviews--white { background: #fff; }
.reviews--dark  { background: var(--c-card-dark); color: #fff; }
.reviews--dark .reviews__quote,
.reviews--dark .reviews__author { color: #fff; }
.reviews--dark .reviews .slick-dots li button:before { color: #fff; }

.reviews__track {
	max-width: 1024px;
	margin: 0 auto;
}
.reviews__slide {
	margin: 0;
	padding: 0 1rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
}
.reviews__stars {
	display: inline-flex;
	gap: 0.4rem;
	color: #CBBFBA;            /* warm taupe — Figma star fill */
	margin-bottom: 0.25rem;
}
.reviews__star { display: block; }
.reviews__quote {
	color: #2D2D41;
	text-align: center;
	font-family: var(--ff-body);          /* Optima → Optima Nova → URW Classico → Candara → fallback */
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	line-height: 33px;                     /* 150% */
	margin: 0;
}
.reviews__author {
	color: #323232;
	text-align: center;
	font-family: var(--ff-body);
	font-size: 22px;
	font-style: normal;
	font-weight: 550;
	line-height: 32px;                     /* ~145.5% */
	margin: 0;
}

/* Slick dots inside reviews — small open circles, filled when active */
.reviews .slick-dots {
	position: static;
	margin-top: 1.25rem;
	display: flex !important;
	justify-content: center;
	gap: 0.65rem;
	padding: 0;
	list-style: none;
}
.reviews .slick-dots li { width: auto; height: auto; margin: 0; }
.reviews .slick-dots li button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 1px solid var(--c-ink);
	border-radius: 50%;
	background: transparent;
	font-size: 0;
	cursor: pointer;
	transition: background 0.2s var(--ease);
	box-sizing: border-box;
}
.reviews .slick-dots li button:before { content: none; }
.reviews .slick-dots li.slick-active button { background: var(--c-ink); }
.reviews--dark .slick-dots li button { border-color: rgba(255,255,255,0.7); }
.reviews--dark .slick-dots li.slick-active button { background: #fff; }

.reviews .slick-prev,
.reviews .slick-next {
	width: 36px; height: 36px;
}
.reviews .slick-prev:before,
.reviews .slick-next:before { color: var(--c-ink); font-size: 24px; }

/* ----------------------------------------------------------
   7. Welcome  — image full-bleed left, content right with divider
---------------------------------------------------------- */
.welcome {
	background: var(--c-bg);
	overflow: hidden;
}
.welcome__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	align-items: stretch;
	min-height: clamp(420px, 50vw, 620px);
}
.welcome__media {
	position: relative;
	min-height: 100%;
}
.welcome__media img {
	width: 100%;
	height: 100%;
	min-height: clamp(420px, 50vw, 620px);
	object-fit: cover;
	border-radius: 0;
	aspect-ratio: auto;
	display: block;
}
.welcome__content {
	padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 4.5rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;        /* keeps button at intrinsic width */
	max-width: 720px;
}

/* Welcome heading: "Welcome to" small + "Gemini OBGYN" big */
.welcome__title {
	font-family: var(--ff-display);
	color: var(--c-headline);
	margin: 0 0 1.25rem;
	line-height: 1.1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.welcome__title-pre {
	display: block;
	font-size: var(--fs-h2-pre);
	font-weight: 400;
	margin-bottom: 0.25rem;
	letter-spacing: 0.04em;
}
.welcome__title-main {
	display: block;
	font-size: var(--fs-h2);
	font-weight: 500;
}
/* Figma 572:22324 — Optima Regular 22px / 38px / #697382 */
.welcome__body {
	margin-bottom: 1.75rem;
	color: #697382;
	font-family: var(--ff-body);
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	line-height: 38px;
}
.welcome__body p { color: inherit; font-size: inherit; line-height: inherit; }

/* ----------------------------------------------------------
   8. Physicians  (cream background, dark cards)
---------------------------------------------------------- */
.physicians {
	padding: var(--section-pad-y) 0 clamp(2rem, 3vw, 3rem);
	background: #F4F4F4;
	overflow-x: hidden;   /* contain the right-edge bleed so the page doesn't scroll horizontally */
}
.physicians .section-head { margin-bottom: 3rem; }
.physicians__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
	margin-bottom: 2.5rem;
	align-items: stretch;
	max-width: 90%;
	margin-inline: auto;
}

/* Mobile — 1 per row (stacked) */
@media (max-width: 820px) {
			.physicians__grid { grid-template-columns: 1fr; gap: 1rem; max-width: 100%; }
}

/* Carousel layout — wraps the slick track and adds room for side arrows */
.physicians__carousel {
	position: relative;
	margin-bottom: 2.5rem;
}
.physicians__track {
	margin: 0 -1rem;
}
.physicians__track .slick-list {
	overflow: hidden;                       /* allow right-side peek past list right */
	clip-path: inset(0 -100vw 0 0);          /* clip on the left so slides don't bleed past container left */
}
.physicians__track .slick-track { display: flex; align-items: stretch; }
.physicians__track .doctor-card.slick-slide {
	height: auto;                /* equalize via flex parent */
	margin: 0 1rem;              /* gutter between slides */
	box-sizing: border-box;
	float: none;                 /* override slick's default float */
}

/* Pre-init: render cards in a horizontal row so there is no FOUC stacking */
.physicians__track:not(.slick-initialized) {
	display: flex;
	gap: 2rem;
	overflow: hidden;
}
.physicians__track:not(.slick-initialized) .doctor-card {
	flex: 0 0 calc((100% - 4rem) / 3);
	min-width: 0;
}

/* Side arrows — circular, neutral, sit just outside the cards */
.physicians__arrow,
.physicians__arrow:hover,
.physicians__arrow:focus,
.physicians__arrow:active {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 45px;
	height: 45px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	padding: 0;
	color: #000;        /* override slick's default `color: transparent` so SVG strokes stay visible */
	opacity: 1;         /* lock opacity — no fade on interaction */
	cursor: pointer;
}
.physicians__arrow:focus-visible {
	outline: 2px solid #000;
	outline-offset: 4px;
	border-radius: 50%;
}
.physicians__arrow.slick-prev { left: -64px; }
.physicians__arrow.slick-next { right: -64px; }   /* hidden until last card is reached */
.physicians__carousel.is-at-end .physicians__arrow.slick-next { display: inline-flex !important; }
.physicians__arrow.slick-disabled { opacity: 1; cursor: pointer; }   /* always visible, never dimmed */
.physicians__arrow::before { display: none; }   /* kill default slick chevron glyph */
.physicians__arrow svg { display: block; }


.doctor-card {
	background: var(--c-card-dark);                /* #323232 */
	border-radius: var(--radius-card);              /* 20px */
	padding: 2.5rem 1.75rem 2rem;                   /* generous top, side, bottom */
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 1.75rem;
	color: #fff;
	text-align: left;
}

/* Circular photo, centered */
.doctor-card__photo {
	width: 268px;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	margin: 0 auto;
}
.doctor-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Body — left aligned, comfortable spacing */
.doctor-card__body {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	width: 100%;
	align-items: stretch;
	flex: 1;
}
.doctor-card__name {
	font-family: var(--ff-display);
	font-weight: 700;
	font-size: 1.6875rem;          /* 27px */
	line-height: 1.2;
	color: var(--c-on-dark-soft);   /* #efefef */
	margin: 0;
	letter-spacing: 0.02em;
	text-transform: none;
	font-variant-caps: all-small-caps;
}
.doctor-card__credentials {
	font-family: var(--ff-body);
	font-size: 1.25rem;            /* 20px */
	font-weight: 400;
	color: var(--c-on-dark-muted); /* #cbbfba */
	margin: 0;
	letter-spacing: 0.02em;
	text-transform: none;
}
.doctor-card__bio {
	font-family: var(--ff-body);
	font-size: 1.0625rem;          /* 17px */
	font-weight: 400;
	color: #fff;
	margin: 0;
	line-height: 1.4;
}
.doctor-card__review {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
}
.doctor-card__review blockquote {
	margin: 0;
	font-family: var(--ff-body);
	font-size: 1.0625rem;          /* 17px */
	color: #fff;
	line-height: 1.4;
	font-style: normal;
	font-weight: 400;
}
.doctor-card__quote { display: none; }

/* Thin divider above quote */
.doctor-card__divider {
	border: 0;
	height: 1px;
	background: rgba(255, 255, 255, 0.45);
	margin: 0.25rem 0 0.4rem;
	width: 100%;
}

/* Google Reviews link with G logo (monochrome #CBBFBA)
   `margin-top: auto` anchors this row + the CTA below it to the bottom of the
   card so they align horizontally across cards regardless of review length. */
.doctor-card__google {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--ff-body);
	font-size: 1rem;
	color: #CBBFBA;
	text-decoration: none;
	margin: auto 0 0;
	transition: color 0.2s var(--ease);
	align-self: flex-start;
}
.doctor-card__google:hover { color: #fff; }
.doctor-card__google-icon {
	flex-shrink: 0;
	color: #CBBFBA;     /* drives the SVG fill via currentColor */
}
.doctor-card__google:hover .doctor-card__google-icon { color: #fff; }

/* Single "Learn More" button with circled arrow — pinned to card bottom, intrinsic width */
.doctor-card__cta {
	margin-top: -0.8rem;
	align-self: flex-start;          /* don't stretch with .doctor-card__body */
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1rem 1.5rem;
	font-family: var(--ff-display);
	font-weight: 700;
	font-size: 1.125rem;            /* 18px */
	letter-spacing: 0.06em;
	color: #fff;
	text-decoration: none;
	border: 1px solid #fff;
	border-radius: var(--radius-sm);
	background: transparent;
	transition: background 0.25s var(--ease), color 0.25s var(--ease);
	font-variant-caps: all-small-caps;
}
.doctor-card__cta:hover { background: #fff; color: var(--c-card-dark); }
.doctor-card__cta-arrow { flex-shrink: 0; transition: transform 0.25s var(--ease); }
.doctor-card__cta:hover .doctor-card__cta-arrow { transform: translateX(3px); }

.physicians__ctas {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* ----------------------------------------------------------
   9. Services — Women's Health Services tile grid
---------------------------------------------------------- */
.services {
	padding: var(--section-pad-y) 0;
	background: #fff;
}

/* Figma 572:22628 — "what we offer" eyebrow: Trajan Pro 27px / lh 64px / #424242 */
.services .eyebrow {
	color: #424242;
	text-align: center;
	font-family: var(--ff-display);
	font-size: 27px;
	font-style: normal;
	font-weight: 400;
	line-height: 64px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0;
	font-variant-caps: normal;
}
/* Figma 572:22629 — "Women's Health Services" title: Trajan 45px / lh 64px / #424242 */
.services .section-title {
	color: #424242;
	text-align: center;
	font-family: var(--ff-display);
	font-size: 45px;
	font-style: normal;
	font-weight: 400;
	line-height: 64px;
	letter-spacing: 0.02em;
	margin: 0;
	font-variant-caps: all-small-caps;
	text-transform: none;
}
.services .section-head { margin-bottom: 2rem; }

.services__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1rem;
	list-style: none;
	margin: 0; padding: 0;
}
.service-tile {
	display: block;
	position: relative;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	color: #fff;
	text-decoration: none;
	background: var(--c-card-dark);
}
.service-tile__media {
	position: absolute; inset: 0;
}
.service-tile__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--ease);
}
.service-tile:hover .service-tile__media img { transform: scale(1.05); }
.service-tile__label {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem 1.5rem;                  /* breathing room from edges */
	z-index: 2;
	color: #FFF;
	text-align: center;
	font-family: var(--ff-display);
	font-size: 21px;
	font-style: normal;
	font-weight: 700;
	line-height: 24px;                 /* 118.519% */
	letter-spacing: 0.02em;
	font-variant-caps: all-small-caps;
	text-transform: none;
}

#pojo-a11y-toolbar {
	top: 500px !important;
}

@media screen and (max-width: 1060px) {
	.services__grid { grid-template-columns: repeat(3, 1fr); }
	.service-tile__label { font-size: 20px; line-height: 22px; }
}

@media screen and (max-width: 520px) {
	.service-tile__label { font-size: 16px; line-height: 18px; }
}

/* Play badge bottom-right of every tile (white circle + black play arrow) */
.service-tile::before {
	content: "";
	position: absolute;
	right: 0.85rem;
	bottom: 0.95rem;
	z-index: 3;
	width: 27px;
	height: 27px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='27' height='27' viewBox='0 0 27 27' fill='none'><circle cx='13.4516' cy='13.4517' r='13.4516' transform='rotate(-90 13.4516 13.4517)' fill='white'/><path d='M18.1508 12.768C18.5999 13.1135 18.5999 13.7907 18.1508 14.1363L12.0472 18.8324C11.4795 19.2692 10.6575 18.8645 10.6575 18.1483L10.6575 8.75597C10.6575 8.03972 11.4795 7.63504 12.0472 8.0718L18.1508 12.768Z' fill='black'/></svg>") center/27px no-repeat;
	transition: transform 0.25s var(--ease);
}
.service-tile:hover::before { transform: scale(1.1); }

/* ----------------------------------------------------------
   10. Healthcare text band — white bg, centered, hr dividers
---------------------------------------------------------- */
.healthcare-text {
	padding: clamp(2rem, 4vw, 3.5rem) 0;
	background: #fff;
	text-align: center;
}
.healthcare-text > .container {
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid #9BAAB9;
}
/* Figma 572:22648 — Trajan Pro Bold 27px / 42px line-height / #424242 */
.healthcare-text .section-title {
	color: #424242;
	font-family: var(--ff-display);
	font-size: 27px;
	font-style: normal;
	font-weight: 700;
	line-height: 42px;
	letter-spacing: 0.02em;
	margin: 0 0 1.5rem;
	text-transform: none;
	font-variant-caps: all-small-caps;
	text-align: center;
}
/* Figma 572:22646 — Optima Regular 24px / 31px line-height / #424242 */
.healthcare-text__body {
	max-width: 1120px;
	margin: 0 auto;
	color: #424242;
	font-family: var(--ff-body);
	font-size: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 31px;
	text-align: center;
}
.healthcare-text__body p { color: inherit; font-size: inherit; line-height: inherit; }

/* ----------------------------------------------------------
   11. Office + map  — split: dark hero + light details
---------------------------------------------------------- */
.office-map {
	background: #fff;
}
.office-map__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	min-height: 620px;
}
.office-map__card {
	display: flex;
	flex-direction: column;
}

/* Dark top region — heading + intro */
.office-map__hero {
	background: var(--c-card-dark);              /* #323232 */
	color: #fff;
	padding-top: clamp(2.25rem, 4vw, 3.25rem);
	padding-bottom: clamp(2.25rem, 4vw, 3.25rem);
	padding-left: max(clamp(1.75rem, 4vw, 3rem), calc((100vw - var(--container-max)) / 2 + var(--container-pad)));
	padding-right: clamp(1.75rem, 4vw, 3rem);
}
.office-map__title {
	color: #FFF;
	font-family: var(--ff-display);
	font-size: 45px;
	font-style: normal;
	font-weight: 400;
	line-height: 48px;                     /* 106.667% */
	margin: 0 0 1rem;
	letter-spacing: 0.02em;
	text-transform: none;
	font-variant-caps: all-small-caps;
}
.office-map__intro {
	color: #FFF;
	font-family: var(--ff-body);
	font-size: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 31px;                     /* 129.167% */
	margin: 0;
}

/* Light bottom region — address, phone, divider, directions */
.office-map__details {
	background: #F7F7F7;
	color: var(--c-body);
	padding-top: clamp(1.75rem, 4vw, 2.5rem);
	padding-bottom: clamp(1.75rem, 4vw, 2.5rem);
	padding-left: max(clamp(1.75rem, 4vw, 3rem), calc((100vw - var(--container-max)) / 2 + var(--container-pad)));
	padding-right: clamp(1.75rem, 4vw, 3rem);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	flex: 1;
}
.office-map__row {
	display: flex;
	gap: 1rem;
	align-items: center;
}
.office-map__icon {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	display: block;
}
.office-map__address {
	color: #323232;
	font-family: var(--ff-body);
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	line-height: 38px;                     /* 172.727% */
	margin: 0;
}
.office-map__address p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.office-map__phone {
	color: #323232;
	font-family: var(--ff-body);
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	line-height: 38px;                     /* 172.727% */
	text-decoration: none;
}
.office-map__phone:hover { color: var(--c-accent); }

.office-map__divider {
	border: 0;
	height: 1px;
	background: #9BAAB9;
	margin: 0.5rem 0 0.25rem;
}

.office-map__directions-heading {
	color: #424242;
	font-family: var(--ff-display);
	font-size: 27px;
	font-style: normal;
	font-weight: 400;
	line-height: 46px;                     /* 170.37% */
	margin: 0 0 0.5rem;
	font-variant-caps: all-small-caps;
	text-transform: none;
	letter-spacing: 0.02em;
}
.office-map__directions-body {
	color: #424242;
	font-family: var(--ff-body);
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	line-height: 38px;
	margin: 0 0 0.85rem;
}
.office-map__directions-link {
	display: inline-block;
	color: var(--c-headline);
	font-family: var(--ff-display);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	font-variant-caps: all-small-caps;
}
.office-map__directions-link:hover { color: var(--c-accent); }

.office-map__map {
	min-height: 620px;
	background: #d8dde0;
}
.office-map__map iframe {
	width: 100%;
	height: 100%;
	min-height: 620px;
	border: 0;
	display: block;
}

/* ----------------------------------------------------------
   12. Todd Goldberg — centered cream card
---------------------------------------------------------- */
.todd-goldberg {
	padding: 0 0 clamp(2rem, 4vw, 4rem);
	background: #F4F4F4;
}
.todd-goldberg__card {
	background: #E8E2D5;                              /* warm beige card */
	border-radius: 16px;
	padding: clamp(2.5rem, 5vw, 3.75rem) 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}
.todd-goldberg__media {
	margin-bottom: 0.5rem;
}
.todd-goldberg__media img {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.todd-goldberg__title {
	color: #424242;
	text-align: center;
	font-family: var(--ff-display);   /* Trajan Pro → Cinzel fallback */
	font-size: 27px;
	font-style: normal;
	font-weight: 700;
	line-height: 48px;                /* 177.778% */
	margin: 0;
	letter-spacing: 0.02em;
	font-variant-caps: all-small-caps;
	text-transform: none;
}
.todd-goldberg__body {
	color: #424242;
	text-align: center;
	font-family: var(--ff-body);     /* Optima → fallback */
	font-size: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 31px;                /* 129.167% */
	max-width: 720px;
	margin: 0 auto;
}
.todd-goldberg__body p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.todd-goldberg__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
	margin-top: 0.75rem;
	justify-content: center;
}
.todd-goldberg__ctas .btn--primary {
	min-width: 200px;
}
.todd-goldberg__ctas .btn--ghost {
	min-width: 200px;
	padding-right: 1rem;
}

/* ----------------------------------------------------------
   13. Insurances — circular bordered logo tiles
---------------------------------------------------------- */
.insurances {
	padding: var(--section-pad-y) 0;
	background: #fff;
	text-align: center;
	border-bottom: 1px solid var(--c-line);   /* hairline divider — Figma 836:10345 */
}
/* Same Trajan 45/48 pattern as other section titles */
.insurances .section-title {
	color: #424242;
	font-family: var(--ff-display);
	font-size: 45px;
	font-style: normal;
	font-weight: 400;
	line-height: 48px;
	letter-spacing: 0.02em;
	margin: 0 0 1rem;
	font-variant-caps: all-small-caps;
	text-transform: none;
	text-align: center;
}
.insurances__lede {
	max-width: 1060px;
	margin: 0 auto;
	color: #424242;
	font-family: var(--ff-body);
	font-size: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 31px;
	text-align: center;
}
.insurances__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1.75rem 1.75rem;
	align-items: center;
	justify-items: center;
	margin: 3rem 0 0;
	list-style: none;
	padding: 0;
}
.insurances__cell {
	width: 100%;
	max-width: 150px;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--c-line);
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.insurances__cell:hover {
	border-color: rgba(46, 46, 65, 0.25);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
}
.insurances__cell img {
	max-width: 100%;
	max-height: 60%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

/* ----------------------------------------------------------
   14. Schedule band — cream block, white CTA
---------------------------------------------------------- */
.schedule-band {
	padding: clamp(3rem, 5vw, 4.5rem) 0;
	background: #E4DEDB;                   /* Figma section bg */
	text-align: center;
}
.schedule-band__inner {
	max-width: 880px;
	margin: 0 auto;
}
.schedule-band__logo {
	max-height: 92px;
	margin: 0 auto 1.25rem;
}
/* Figma 572:22683 — Trajan Pro Regular 45px / 48px line-height / #424242 */
.schedule-band .section-title {
	color: #424242;
	font-family: var(--ff-display);
	font-size: clamp(1.9rem, 5vw, 45px);
	font-style: normal;
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0.02em;
	margin: 0 0 1rem;
	font-variant-caps: all-small-caps;
	text-transform: none;
	text-align: center;
}
/* Figma 572:22685 — Optima Regular 24px / 31px line-height / #424242 */
.schedule-band__body {
	color: #424242;
	font-family: var(--ff-body);
	font-size: clamp(1.1875rem, 2.6vw, 24px);
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	margin: 0.75rem auto 1.75rem;
	max-width: 940px;
	text-align: center;
	word-break: auto-phrase;
}
.schedule-band__ctas {
	display: flex;
	gap: 0.875rem;
	justify-content: center;
	flex-wrap: wrap;
}
/* Figma — white pill button: 5px radius, Trajan Pro Bold 22px / 36px / #000 */
.schedule-band__ctas .btn--primary {
	background: #FFF;
	border-color: #FFF;
	border-radius: 5px;
	color: #000;
	text-align: center;
	font-family: var(--ff-display);
	font-size: 22px;
	font-style: normal;
	font-weight: 700;
	line-height: 36px;                      /* 163.636% */
	letter-spacing: 0.04em;
	padding: 0.5rem 2rem;
	font-variant-caps: all-small-caps;
	text-transform: none;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	max-width: 100%;                        /* never exceed the container */
}
.schedule-band__ctas .btn--primary:hover {
	background: var(--c-headline);
	border-color: var(--c-headline);
	color: #fff;
}

@media (max-width: 410px) {
	/* Shrink the CTA so it fits within the viewport on small phones */
	.schedule-band__ctas .btn--primary {
		font-size: 18px;
		padding: 0.5rem 1.25rem;
		letter-spacing: 0.02em;
	}
}

/* ----------------------------------------------------------
   15. Footer  — white bg, 4 columns: contact | services x2 | about
---------------------------------------------------------- */
.site-footer {
	background: #fff;
	color: var(--c-headline);
	padding-top: clamp(2.5rem, 4vw, 4rem);
	border-top: 1px solid var(--c-line);
}

.site-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding-bottom: 1.5rem;
}
.site-footer__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.site-footer__logo img,
.site-footer__logo svg {
	width: auto;
	height: 70px;
	max-height: none;
	display: block;
}
.site-footer__cobrand img { max-height: 40px; width: auto; display: block; }
.site-footer__topline { display: flex; align-items: center; }
.site-footer__topline img,
.site-footer__topline svg {
	width: 252px;
	height: 60px;
	max-height: none;
	display: block;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1.05fr 1.4fr 1.2fr;
	gap: clamp(2rem, 4vw, 3.5rem);
	padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(2rem, 4vw, 3rem);
	/* border-top: 1px solid var(--c-line); */
}
.site-footer__heading {
	font-family: var(--ff-display);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--c-headline);
	margin: 0 0 1.1rem;
	font-variant-caps: all-small-caps;
	text-transform: none;
}
.site-footer__heading--inline { margin-top: 1.5rem; }
.site-footer__address {
	font-family: var(--ff-body);
	font-style: normal;
	line-height: 1.55;
	color: var(--c-headline);
	margin-bottom: 0.85rem;
}
.site-footer__address p { margin: 0; }

.site-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.site-footer__list a {
	color: var(--c-headline);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-family: var(--ff-body);
	font-size: 1rem;
}
.site-footer__list a:hover { color: var(--c-accent); }
.site-footer__icon {
	flex-shrink: 0;
	width: 25px;
	height: 25px;
}

/* Office hours table */
.site-footer__hours-list { margin: 0; }
.site-footer__hours-row {
	display: flex;
	gap: 1rem;
	font-family: var(--ff-body);
	font-size: 0.95rem;
	padding: 0.3rem 0;
}
.site-footer__hours-row dt { color: var(--c-body); margin: 0; min-width: 90px; }
.site-footer__hours-row dd { color: var(--c-headline); margin: 0; font-weight: 500; }

/* Services list — fills column-by-column into 2 columns (Figma 42 behavior).
   Each list item is left-aligned and trimmed of stray whitespace at the
   PHP level so the second column starts flush with the first. */
.site-footer__services {
	list-style: none;
	margin: 0;
	padding: 0;
	column-count: 2;
	column-gap: 2rem;
	text-align: left;
}
.site-footer__services li {
	margin: 0 0 0.6rem;
	padding: 0;
	break-inside: avoid;
	text-align: left;
}
.site-footer__services a {
	color: var(--c-headline);
	text-decoration: none;
	font-family: var(--ff-body);
	font-size: 0.95rem;
	line-height: 1.4;
	display: block;
	padding-left: 0;
	text-indent: 0;
}
.site-footer__services a:hover { color: var(--c-accent); }

/* About block */
.site-footer__about-body {
	font-family: var(--ff-body);
	color: var(--c-body);
	font-size: 0.95rem;
	line-height: 1.55;
}
.site-footer__about-body p { margin: 0 0 0.85em; color: inherit; }
.site-footer__about-link {
	display: inline-block;
	font-family: var(--ff-body);
	color: #1A73E8;                    /* Figma — Alliance link uses brand blue */
	font-size: 0.95rem;
	font-weight: 500;
	text-decoration: underline;
	margin-top: 0.25rem;
}
.site-footer__about-link:hover { color: #0E55B3; }

.site-footer__bottom {
	border-top: 1px solid var(--c-line);
	padding: 1.25rem 0;
}
.site-footer__legal {
	font-family: var(--ff-body);
	font-size: 0.85rem;
	color: var(--c-body);
}
.site-footer__legal p { margin: 0; }

/* ----------------------------------------------------------
   16. Floating button
---------------------------------------------------------- */
.floating-btn {
	position: fixed;
	bottom: 80px;
	z-index: 90;
	display: inline-flex;
	align-items: center;
	gap: 1.1rem;
	width: 288px;
	min-height: 92px;
	padding: 0 26px;
	background: #CBBFBA;
	color: #fff;
	font-family: var(--ff-display);
	font-weight: 700;
	font-size: 20px;
	line-height: 24px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 5px;
	box-shadow: -2px 4px 7.9px 1px rgba(0,0,0,0.44);
	transition: transform 0.3s var(--ease), background 0.3s var(--ease);
}
.floating-btn:hover {
	background: #a89a92;
	color: #fff;
	transform: translateY(-2px);
}
.floating-btn--right-bottom { right: clamp(1rem, 3vw, 2rem); }
.floating-btn--left-bottom  { left:  clamp(1rem, 3vw, 2rem); }

.floating-btn__icon {
	display: inline-flex;
	width: 46px; height: 46px;
	align-items: center; justify-content: center;
	color: #fff;
	flex-shrink: 0;
}
.floating-btn__icon svg { width: 100%; height: 100%; display: block; }
.floating-btn__icon img { max-width: 100%; max-height: 100%; }

.floating-btn__text {
	display: inline-flex;
	flex-direction: column;
	gap: 0;
	line-height: 24px;
	text-align: left;
}
.floating-btn__label,
.floating-btn__subtitle {
	font-family: var(--ff-display);
	font-size: 20px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #fff;
}

/* ----------------------------------------------------------
   17. Responsive
---------------------------------------------------------- */
@media (max-width: 1280px) {
	.physicians__arrow.slick-prev { left: -8px; }
	.physicians__arrow.slick-next { right: -8px; }
}

@media (max-width: 1100px) {
	.physicians__arrow { display: none !important; }   /* hide arrow on tablet & mobile */

	.physicians__track .slick-dots {
		display: flex !important;
		justify-content: center;
		align-items: center;
		gap: 0.5rem;
		list-style: none;
		margin: 1.5rem 0 0;
		padding: 0;
	}
	.physicians__track .slick-dots li {
		width: 10px;
		height: 10px;
		margin: 0;
	}
	.physicians__track .slick-dots li button {
		width: 10px;
		height: 10px;
		padding: 0;
		border: 1px solid #000;
		border-radius: 50%;
		background: transparent;
		font-size: 0;
		line-height: 0;
		color: transparent;
		cursor: pointer;
	}
	.physicians__track .slick-dots li button::before { display: none; }   /* kill slick's default ::before glyph */
	.physicians__track .slick-dots li.slick-active button { background: #000; }
}

@media (max-width: 1100px) {
	.physicians__grid { grid-template-columns: repeat(2, 1fr); }
	.physicians__track:not(.slick-initialized) .doctor-card { flex-basis: calc((100% - 2rem) / 2); }
	.insurances__grid { grid-template-columns: repeat(4, 1fr); }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.site-footer__col--about { grid-column: 1 / -1; }
	.office-map__inner { grid-template-columns: 1fr; }
	.office-map__map, .office-map__map iframe { min-height: 360px; }
	.site-header__meta { gap: 0.75rem 1.25rem; }

	.site-header__menu-toggle { display: inline-flex; }
	.site-header__inner { flex-wrap: wrap; }
	.site-header__cta { display: none; }
	.site-nav {
		order: 4;
		flex-basis: 100%;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.35s var(--ease);
		justify-content: flex-start;
	}
	.site-nav.is-open {
		/* Cap to the viewport and scroll so a long menu is fully reachable. */
		max-height: calc(100vh - 200px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		padding: 0.25rem clamp(1rem, 4vw, 2rem) 1rem;
		background: #fff;
		padding-bottom: 50px;
	}
	.site-nav__list {
		flex-direction: column;
		gap: 0;
		width: 100%;
		padding: 0.5rem 0;
	}
	.site-nav__list .menu-item-has-children { position: relative; }
	.site-nav__list a {
		padding: 0.85rem 0;
		border-bottom: 1px solid var(--c-line);
		width: 100%;
		color: var(--c-headline);
	}
	/* Leave room for the caret toggle so it never overlaps a long label. */
	.site-nav__list .menu-item-has-children > a { padding-right: 52px; }

	.site-nav__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		padding: 0 0 0 1rem;
		background: transparent;
		/* Collapsed by default on mobile; expanded only when toggled. */
		display: none;
	}
	.site-nav__list .menu-item-has-children.is-expanded > .sub-menu { display: block; }
	.site-nav__list .sub-menu a { color: var(--c-ink-soft); }

	/* Tappable caret that opens/closes each sub-menu (injected by global.js). */
	.site-nav__sub-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 0;
		right: 0;
		width: 52px;
		height: 52px;
		padding: 0;
		background: transparent;
		border: 0;
		border-bottom: 1px solid var(--c-line);
		color: var(--c-headline);
		cursor: pointer;
		border-bottom: 0px;
	}
	.site-nav__sub-toggle::before {
		content: "";
		width: 9px;
		height: 9px;
		margin-top: -4px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform 0.2s var(--ease), margin 0.2s var(--ease);
	}
	.site-nav__list .menu-item-has-children.is-expanded > .site-nav__sub-toggle::before {
		margin-top: 4px;
		transform: rotate(-135deg);
	}
	/* Nested caret aligns with its (shorter) row height. */
	.site-nav__list .sub-menu .site-nav__sub-toggle { height: 46px; }
}

/* Desktop keeps hover-driven dropdowns — the mobile caret is hidden there. */
@media (min-width: 1101px) {
	.site-nav__sub-toggle { display: none; }
}

@media (max-width: 820px) {
	.welcome__inner { grid-template-columns: 1fr; min-height: 0; }
	.welcome__media img { min-height: 320px; max-height: 460px; }
	.welcome__content { padding: 2rem 1.5rem; }

	.todd-goldberg__ctas .btn--primary,
	.todd-goldberg__ctas .btn--ghost { min-width: 180px; }

	.stats-bar__grid { grid-template-columns: 1fr; gap: 0.5rem; }
	.stats-bar__cell { border-right: 0; border-bottom: 1px solid rgba(0,0,0,0.18); padding: 1rem; }
	.stats-bar__cell:last-child { border-bottom: 0; }

	.utility-nav__list { justify-content: center; }
}

@media screen and (max-width: 740px) {
	.physicians__grid { grid-template-columns: 1fr; gap: 1rem; }
	.physicians__track:not(.slick-initialized) .doctor-card { flex-basis: 100%; }
	.physicians__arrow { width: 38px; height: 38px; }
}

@media (max-width: 767px) {
    #pojo-a11y-toolbar {
        top: auto !important;
        bottom: 0px !important;
    }
}

@media (max-width: 640px) {
	.services__grid   { grid-template-columns: repeat(2, 1fr); }
	.insurances__grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
	.site-footer__services { grid-template-columns: 1fr; }

	.hero-carousel__slide { min-height: 540px; }
	.hero-carousel__overlay { background: linear-gradient(180deg, rgba(244,236,223,0.5) 0%, rgba(244,236,223,0.95) 100%); }
	.hero-carousel__ctas .btn { width: 100%; }

	.site-header__inner { padding: 0.75rem 0; }
	.site-header__cta .btn { padding: 0.65rem 0.95rem; font-size: 0.85rem; }

	.floating-btn {
		width: auto;
		min-height: 0;
		padding: 0.85rem 1.1rem;
		gap: 0.75rem;
		font-size: 14px;
		line-height: 16px;
	}
	.floating-btn__icon { width: 32px; height: 32px; }
	.floating-btn__label,
	.floating-btn__subtitle { font-size: 14px; line-height: 16px; }
}

/* ============================================================
   18. Stakeholder feedback fixes
   ============================================================ */

/* --- Hero / doctor band: kill any sub-pixel gap between sections --- */
.hero-carousel,
.hero-carousel .slick-list,
.hero-carousel .slick-track,
.hero-carousel__slide,
.hero-carousel__bg { font-size: 0; line-height: 0; }
.hero-carousel__inner { font-size: var(--fs-base); line-height: 1.65; }
.hero-carousel__slide { display: block; vertical-align: top; }
.hero-carousel__bg img { display: block; vertical-align: top; }
.hero-carousel + .doctor-band { margin-top: -1px; }   /* belt-and-braces overlap */

/* --- Stars: warm taupe per Figma reviews block --- */
.reviews__stars { gap: 0.5rem; }
.reviews__star  { color: #CBBFBA; }

/* --- Divider line between healthcare-text and the office/map block --- */
.healthcare-text + .office-map,
.healthcare-text + .todd-goldberg {
	border-top: 1px solid var(--c-line);
}
.healthcare-text { padding-bottom: clamp(2rem, 4vw, 3.5rem); }

/* --- Office map: lighter color palette + smaller default size --- */
.office-map__map { min-height: 480px; }
.office-map__map iframe {
	min-height: 480px;
	filter: grayscale(0.55) saturate(0.85) contrast(0.95);
	transition: filter 0.3s var(--ease);
}
.office-map__map iframe:hover { filter: grayscale(0) saturate(1) contrast(1); }
.office-map__divider {
	margin: 1rem 0 0.75rem;
	background: rgba(46, 46, 65, 0.18);
}

/* --- Doctor card body: anchor the action area to the bottom ---
   `flex: 1` on .doctor-card__body (rule 8) already makes the body fill the
   card. Adding min-height: 100% on top of that pushed children past the card's
   bottom padding because the percentage resolves against the card's full
   (padded) height. */
.doctor-card__review { margin-bottom: 0; }

/* --- Hero responsiveness: avoid header overlapping hero copy --- */
@media (max-width: 1100px) {
	.hero-carousel__inner {
		padding-top: calc(var(--header-h) + 0.5rem);
	}
}

@media (max-width: 820px) {
	.hero-carousel__inner { padding-top: calc(var(--header-h) + 1.25rem); }
}

@media (max-width: 640px) {
	.site-header__inner { gap: 0.75rem; }
	.hero-carousel__inner {
		padding-top: calc(var(--utility-h) + 80px);
		padding-bottom: 2.25rem;
		background: #faebd738;
	}

	.hero-carousel__content {
		margin-top: 127px;
    text-align: center;
	}
	.hero-carousel__title { word-break: break-word; background: #ffffffad;
        padding: 20px 10px; padding-bottom: 0px; margin-bottom: 0px; }
	.hero-carousel__subtitle {
		background: #ffffffad;
    padding: 20px 10px;
	}
	.hero-carousel__ctas { flex-direction: column; align-items: stretch; margin-top: 20px; }
	.hero-carousel__ctas .btn { min-width: 0; width: 100%; }
}
