/* =====================================================================
   ATLANTA CANCER CARE — COMPONENTS
   File:   salient-child/css/acc/acc-components.css
   Needs:  acc-tokens.css, acc-base.css
   Markup: salient-child/template-parts/acc/*.php

   01  Breadcrumbs            12  Office info
   02  Page header            13  Service index + nav list
   03  Cards (shared)         14  Table of contents
   04  Person card            15  Content section + callout
   05  Location card          16  Timeline
   06  Service card           17  Panel, facts, tags, badge
   07  Resource card          18  Steps, disclosure, dining, checklist
   08  CTA band               19  Google map
   09  Appointment block      20  Pre-footer
   10  FAQ                    21  Editor-only notes and preview badge
   11  Stats + alerts

   Breakpoints: 600 (phone), 900 (tablet), 1300 (Salient header), 1600.
   ===================================================================== */


/* =====================================================================
   01  BREADCRUMBS
   ===================================================================== */
.acc-breadcrumbs { margin: 0 0 var(--acc-space-5); }
.acc-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--acc-space-1) 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--acc-fs-xs);
	line-height: 1.5;
}
.acc-breadcrumbs li { margin: 0 !important; color: var(--acc-muted); font-size: inherit !important; line-height: inherit !important; }
.acc-breadcrumbs li + li::before {
	content: "/";
	margin: 0 0.6em;
	color: var(--acc-line-strong);
}
.acc-breadcrumbs a { color: var(--acc-green-ink) !important; text-decoration: none !important; font-weight: var(--acc-fw-medium); }
.acc-breadcrumbs a:hover { text-decoration: underline !important; }
.acc-breadcrumbs [aria-current] { color: var(--acc-muted); }
.acc-breadcrumbs--light li,
.acc-breadcrumbs--light [aria-current] { color: var(--acc-on-dark); }
.acc-breadcrumbs--light a { color: var(--acc-cream) !important; }
/* Long names wrap on phones instead of forcing sideways scroll */
@media (max-width: 600px) {
	.acc-breadcrumbs [aria-current] { display: inline-block; max-width: 100%; }
}


/* =====================================================================
   02  PAGE HEADER
   ===================================================================== */
.acc-page-header {
	padding-block: var(--acc-space-6) var(--acc-space-7);
	border-bottom: 1px solid var(--acc-line);
}
.acc-page-header--warm { background: var(--acc-card); }
.acc-page-header--dark { background: var(--acc-dark-green); color: var(--acc-on-dark); border-bottom: 0; }
.acc-page-header--dark :is(h1, .acc-lead) { color: var(--acc-cream) !important; }

.acc-page-header__grid {
	display: grid;
	gap: var(--acc-space-6);
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
}
@media (min-width: 900px) {
	.acc-page-header.has-side .acc-page-header__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--acc-space-8); }
}
.acc-page-header__title { margin-bottom: var(--acc-space-4) !important; max-width: 18em; word-spacing: 0.04em; }
.acc-page-header__lead { margin: 0 0 var(--acc-space-5) !important; }
.acc-page-header__meta { margin: 0 0 var(--acc-space-5); }
.acc-page-header__actions { margin-top: var(--acc-space-2); }
.acc-page-header__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--acc-radius);
}
@media (max-width: 899px) {
	.acc-page-header__side { order: -1; }                 /* photo first on phones and tablets */
	.acc-page-header__media { max-width: 560px; }
}


/* =====================================================================
   03  CARDS (shared)
   One link per card. .acc-card__link stretches over the whole card so
   the entire card is clickable while screen readers hear one link.
   ===================================================================== */
.acc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--acc-surface);
	border: 1px solid var(--acc-line);
	border-radius: var(--acc-radius);
	overflow: hidden;
	transition: border-color var(--acc-dur) var(--acc-ease), box-shadow var(--acc-dur) var(--acc-ease);
}
.acc-card:hover { border-color: var(--acc-green); box-shadow: var(--acc-shadow); }
.acc-card:focus-within { border-color: var(--acc-dark-green); }
.acc-card--flat:hover { box-shadow: none; border-color: var(--acc-line); }

.acc-card__link {
	color: var(--acc-heading) !important;
	text-decoration: none !important;
}
.acc-card__link::after {           /* the stretched hit area */
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.acc-card:hover .acc-card__link { text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 0.18em; }
.acc-card__link:focus-visible { outline: none !important; }
.acc-card:has(.acc-card__link:focus-visible) { outline: 3px solid var(--acc-focus); outline-offset: 2px; }
/* Inner links (tel:) must stay clickable above the stretched link */
.acc-card a:not(.acc-card__link) { position: relative; z-index: 2; }

/* Shared "view more" line inside cards */
.acc-person-card__more,
.acc-location-card__more,
.acc-resource-card__label {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin-top: auto;
	padding-top: var(--acc-space-3);
	font-size: var(--acc-fs-sm);
	font-weight: var(--acc-fw-bold);
	color: var(--acc-green-ink);
}
.acc-person-card__more::after,
.acc-location-card__more::after,
.acc-resource-card__label::after { content: "\2192"; transition: transform var(--acc-dur) var(--acc-ease); }
.acc-card:hover :is(.acc-person-card__more, .acc-location-card__more, .acc-resource-card__label)::after { transform: translateX(3px); }


/* =====================================================================
   04  PERSON CARD (physicians and APPs)
   ===================================================================== */
.acc-person-card__photo { border-radius: 0; }
.acc-person-card__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	font-family: var(--acc-font-head);
	font-size: 3rem;
	color: var(--acc-green);
	background: var(--acc-sage-light);
}
.acc-person-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: var(--acc-space-2);
	padding: var(--acc-space-4) var(--acc-space-4) var(--acc-space-5);
}
.acc .acc-person-card__name {
	margin: 0 !important;
	font-size: var(--acc-fs-h5) !important;
	line-height: 1.3 !important;
	font-family: var(--acc-font-head) !important;
	word-spacing: 0.06em;
	font-weight: var(--acc-fw-medium) !important;
}
.acc-person-card__cred { font-weight: var(--acc-fw-regular); }
.acc .acc-person-card__role {
	margin: 0 !important;
	font-size: var(--acc-fs-xs) !important;
	font-weight: var(--acc-fw-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--acc-green-ink) !important;
}
.acc .acc-person-card__services,
.acc .acc-person-card__locations {
	margin: 0 !important;
	font-size: var(--acc-fs-sm) !important;
	line-height: 1.5 !important;
	color: var(--acc-muted) !important;
}
.acc-person-card__locations { display: flex; gap: 0.35em; align-items: flex-start; }
.acc-person-card__locations .acc-icon { width: 1em; height: 1em; margin-top: 0.2em; flex: none; color: var(--acc-green); }

.acc-person-card--compact { flex-direction: row; align-items: center; }
.acc-person-card--compact .acc-person-card__photo { width: 88px; flex: none; aspect-ratio: 1; }
.acc-person-card--compact .acc-person-card__body { padding: var(--acc-space-3) var(--acc-space-4); gap: var(--acc-space-1); }
.acc-person-card--compact .acc-person-card__more { display: none; }

/* Phones: two across, smaller text */
@media (max-width: 600px) {
	.acc-grid--4:has(.acc-person-card:not(.acc-person-card--compact)) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--acc-space-3); }
	.acc-person-card__body { padding: var(--acc-space-3); }
	.acc .acc-person-card__name { font-size: 1rem !important; }
	.acc .acc-person-card__services { display: none; }
	.acc-person-card__more { font-size: var(--acc-fs-xs); }
}


/* =====================================================================
   05  LOCATION CARD
   ===================================================================== */
.acc-location-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--acc-space-5);
}
.acc .acc-location-card__name {
	margin: 0 0 var(--acc-space-3) !important;
	font-size: var(--acc-fs-h4) !important;
	font-weight: var(--acc-fw-medium) !important;
}
.acc-location-card__facts { margin: 0; display: grid; gap: var(--acc-space-2); }
.acc-location-card__facts > div { display: grid; grid-template-columns: 1.1rem 1fr; gap: var(--acc-space-2); align-items: start; }
.acc-location-card__facts dt { margin: 0; padding-top: 0.2em; color: var(--acc-green); }
.acc-location-card__facts dt .acc-icon { width: 1.05rem; height: 1.05rem; display: block; }
.acc .acc-location-card__facts dd { margin: 0; font-size: var(--acc-fs-sm); line-height: 1.5; color: var(--acc-text); }
.acc-location-card__tel { font-weight: var(--acc-fw-bold); color: var(--acc-heading) !important; text-decoration: none !important; }
.acc-location-card__tel:hover { text-decoration: underline !important; }
.acc-location-card__hours { display: block; }


/* =====================================================================
   06  SERVICE CARD
   ===================================================================== */
.acc-service-card {
	padding: var(--acc-space-5) var(--acc-space-5) var(--acc-space-5);
	padding-right: calc(var(--acc-space-5) + 1.5rem);
	gap: var(--acc-space-2);
	border-left: 3px solid var(--acc-green);
}
.acc .acc-service-card__title {
	margin: 0 !important;
	font-size: var(--acc-fs-h5) !important;
	font-family: var(--acc-font-head) !important;
	font-weight: var(--acc-fw-medium) !important;
	line-height: 1.3 !important;
}
.acc .acc-service-card__text { margin: 0 !important; font-size: var(--acc-fs-sm) !important; line-height: 1.55 !important; color: var(--acc-muted) !important; }
.acc-service-card__arrow {
	position: absolute;
	right: var(--acc-space-4);
	top: var(--acc-space-5);
	width: 1.1rem;
	height: 1.1rem;
	color: var(--acc-green);
	transition: transform var(--acc-dur) var(--acc-ease);
}
.acc-service-card:hover .acc-service-card__arrow { transform: translateX(3px); }


/* =====================================================================
   07  RESOURCE CARD
   ===================================================================== */
.acc-resource-card {
	padding: var(--acc-space-5);
	gap: var(--acc-space-2);
	border-top: 3px solid var(--acc-dark-green);
}
.acc .acc-resource-card__title { margin: 0 !important; font-size: var(--acc-fs-h5) !important; font-family: var(--acc-font-head) !important; font-weight: var(--acc-fw-medium) !important; line-height: 1.3 !important; }
.acc .acc-resource-card__text { margin: 0 !important; font-size: var(--acc-fs-sm) !important; line-height: 1.55 !important; color: var(--acc-muted) !important; }


/* =====================================================================
   08  CTA BAND
   ===================================================================== */
.acc-cta {
	display: grid;
	gap: var(--acc-space-5) var(--acc-space-7);
	align-items: center;
	padding: clamp(1.75rem, 1rem + 3vw, 3.5rem);
	border-radius: var(--acc-radius);
}
@media (min-width: 900px) {
	.acc-cta { grid-template-columns: minmax(0, 1.4fr) auto; }
}
.acc-cta--dark { background: var(--acc-dark-green); }
.acc-cta--warm { background: var(--acc-card); border: 1px solid var(--acc-line); }
.acc-cta--plain { background: transparent; border-top: 1px solid var(--acc-line); border-radius: 0; padding-inline: 0; }
.acc .acc-cta__title { margin: 0 0 var(--acc-space-2) !important; font-size: var(--acc-fs-h3) !important; }
.acc .acc-cta__text { margin: 0 !important; max-width: 36em; }
.acc-cta--dark .acc-cta__title { color: var(--acc-cream) !important; }
.acc-cta--dark .acc-cta__text { color: var(--acc-on-dark) !important; }
.acc-cta__actions { justify-content: flex-start; }
.acc-cta__copy > .acc-btn { margin-top: var(--acc-space-5); }
@media (min-width: 900px) { .acc-cta__actions { justify-content: flex-end; } }


/* =====================================================================
   09  APPOINTMENT BLOCK
   ===================================================================== */
.acc-appt {
	padding: var(--acc-space-5);
	background: var(--acc-surface);
	border: 1px solid var(--acc-line);
	border-top: 4px solid var(--acc-dark-green);
	border-radius: var(--acc-radius);
}
.acc .acc-appt__title { font-size: var(--acc-fs-h4) !important; margin: 0 0 var(--acc-space-2) !important; }
.acc .acc-appt__text { font-size: var(--acc-fs-sm) !important; color: var(--acc-muted) !important; margin: 0 0 var(--acc-space-4) !important; }
.acc-appt__offices {
	list-style: none;
	margin: 0 0 var(--acc-space-4) !important;
	padding: 0 !important;
	border-top: 1px solid var(--acc-line);
}
.acc-appt__offices li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--acc-space-1) var(--acc-space-3);
	margin: 0 !important;
	padding: var(--acc-space-3) 0;
	border-bottom: 1px solid var(--acc-line);
}
.acc-appt__office { font-weight: var(--acc-fw-medium); color: var(--acc-heading); font-size: var(--acc-fs-sm); }
.acc-appt__tel {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: var(--acc-fw-bold);
	font-size: var(--acc-fs-sm);
	color: var(--acc-heading) !important;
	text-decoration: none !important;
	min-height: 24px;
}
.acc-appt__tel:hover { text-decoration: underline !important; }
.acc-appt__tel .acc-icon { width: 1em; height: 1em; color: var(--acc-green); }
.acc-appt__forms { margin: var(--acc-space-3) 0 0 !important; text-align: center; }

/* Sticky sidebar on large screens (not on phones: it would cover content) */
@media (min-width: 900px) {
	.acc-person__side, .acc-service__side { position: sticky; top: calc(var(--acc-header-h) + 1rem); display: grid; gap: var(--acc-space-5); align-content: start; }
}
@media (max-width: 899px) {
	.acc-person__side, .acc-service__side { display: grid; gap: var(--acc-space-5); }
}


/* =====================================================================
   10  FAQ
   ===================================================================== */
.acc-faq { border-top: 1px solid var(--acc-line); }
.acc-faq__item { border-bottom: 1px solid var(--acc-line); }
.acc-faq__q {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--acc-space-4);
	padding: var(--acc-space-4) 0;
	min-height: 48px;
	cursor: pointer;
	list-style: none;
	font-family: var(--acc-font-head);
	font-size: var(--acc-fs-h5);
	font-weight: var(--acc-fw-medium);
	color: var(--acc-heading);
}
.acc-faq__q::-webkit-details-marker { display: none; }
.acc-faq__q:hover { color: var(--acc-green-ink); }
.acc-faq__icon { width: 1.25rem; height: 1.25rem; flex: none; color: var(--acc-green); transition: transform var(--acc-dur) var(--acc-ease); }
.acc-faq__item[open] .acc-faq__icon { transform: rotate(180deg); }
.acc-faq__a { padding: 0 0 var(--acc-space-5); }


/* =====================================================================
   11  STATS AND ALERTS
   ===================================================================== */
.acc-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--acc-space-5);
	margin: 0;
}
.acc-stats__item {
	display: flex;
	flex-direction: column-reverse;       /* number reads first visually, label first in the DOM order for dt/dd */
	gap: var(--acc-space-1);
	padding-left: var(--acc-space-4);
	border-left: 2px solid var(--acc-sage-pale);
}
.acc-stats__value {
	margin: 0;
	font-family: var(--acc-font-head);
	font-size: var(--acc-fs-display);
	font-weight: var(--acc-fw-medium);
	line-height: 1;
	color: var(--acc-heading);
}
.acc-stats__label { margin: 0; font-size: var(--acc-fs-sm); color: var(--acc-muted); line-height: 1.4; }
.acc-stats--dark .acc-stats__value { color: var(--acc-cream); }
.acc-stats--dark .acc-stats__label { color: var(--acc-on-dark); }

.acc-alert {
	display: flex;
	gap: var(--acc-space-3);
	padding: var(--acc-space-4) var(--acc-space-5);
	border-radius: var(--acc-radius);
	border: 1px solid var(--acc-line);
	border-left-width: 4px;
	background: var(--acc-surface);
}
.acc-alert__icon { width: 1.35rem; height: 1.35rem; flex: none; margin-top: 0.15em; }
.acc-alert--info { border-left-color: var(--acc-green); }
.acc-alert--info .acc-alert__icon { color: var(--acc-green); }
.acc-alert--warning { border-left-color: #B7791F; background: #FFF8E8; }
.acc-alert--warning .acc-alert__icon { color: #8A5A00; }
.acc-alert--urgent { border-left-color: var(--acc-red); background: var(--acc-red-tint); }
.acc-alert--urgent .acc-alert__icon { color: var(--acc-red); }
.acc .acc-alert__title { margin: 0 0 var(--acc-space-1) !important; color: var(--acc-heading); }
.acc .acc-alert__content p { font-size: var(--acc-fs-sm); }


/* =====================================================================
   12  OFFICE INFO
   ===================================================================== */
.acc-office { display: grid; gap: var(--acc-space-4); }
.acc .acc-office__name { font-size: var(--acc-fs-h4) !important; margin: 0 !important; }
.acc-office__item .acc-label { display: flex; align-items: center; gap: 0.45em; }
.acc-office__item .acc-label .acc-icon { width: 1rem; height: 1rem; color: var(--acc-green); }
.acc .acc-office address { margin: 0 0 var(--acc-space-2) !important; line-height: 1.55; }
.acc-office__tel { font-size: var(--acc-fs-lg); font-weight: var(--acc-fw-bold); color: var(--acc-heading) !important; text-decoration: none !important; }
.acc-office__tel:hover { text-decoration: underline !important; }
.acc-office__hours { margin: 0; display: grid; gap: var(--acc-space-1); }
.acc-office__hours > div { display: flex; flex-wrap: wrap; gap: 0 var(--acc-space-3); }
.acc-office__hours dt { font-weight: var(--acc-fw-medium); }
.acc-office__hours dd { margin: 0; color: var(--acc-muted); }
.acc .acc-office__nohours { margin: 0 !important; font-size: var(--acc-fs-sm); }
.acc-office__more { margin-top: var(--acc-space-1); }

@media (min-width: 900px) {
	.acc-office--row { grid-template-columns: 1.3fr 1fr 0.8fr 1.3fr; gap: var(--acc-space-6); align-items: start; }
}
@media (min-width: 600px) and (max-width: 899px) {
	.acc-office--row { grid-template-columns: 1fr 1fr; }
}


/* =====================================================================
   13  SERVICE INDEX AND NAV LIST
   ===================================================================== */
.acc-service-index__groups { display: grid; gap: var(--acc-space-6); }
.acc-service-index--list .acc-service-index__groups { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.acc .acc-service-index__label {
	font-family: var(--acc-font-body) !important;
	font-size: var(--acc-fs-xs) !important;
	font-weight: var(--acc-fw-bold) !important;
	letter-spacing: var(--acc-tracking-label) !important;
	text-transform: uppercase !important;
	color: var(--acc-green-ink) !important;
	margin: 0 0 var(--acc-space-3) !important;
	padding-bottom: var(--acc-space-2);
	border-bottom: 2px solid var(--acc-dark-green);
}
.acc-nav-list { list-style: none; margin: 0 !important; padding: 0 !important; }
.acc-nav-list li { margin: 0 !important; border-bottom: 1px solid var(--acc-line); }
.acc-nav-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--acc-space-2);
	min-height: 44px;
	padding: var(--acc-space-2) 0;
	color: var(--acc-heading) !important;
	font-weight: var(--acc-fw-medium);
	text-decoration: none !important;
}
.acc-nav-list a::after { content: "\2192"; color: var(--acc-green); opacity: 0; transform: translateX(-4px); transition: opacity var(--acc-dur), transform var(--acc-dur); }
.acc-nav-list a:hover { color: var(--acc-green-ink) !important; }
.acc-nav-list a:hover::after { opacity: 1; transform: none; }
.acc-nav-list a[aria-current="page"] { color: var(--acc-green-ink) !important; font-weight: var(--acc-fw-bold); box-shadow: inset 3px 0 0 var(--acc-gold); padding-left: var(--acc-space-3); }
.acc-nav-list a[aria-current="page"]::after { opacity: 0; }


/* =====================================================================
   14  TABLE OF CONTENTS ("On this page")
   ===================================================================== */
.acc-toc {
	margin: 0 0 var(--acc-space-6);
	padding: var(--acc-space-4) 0;
	border-block: 1px solid var(--acc-line);
}
.acc .acc-toc__label { margin: 0 0 var(--acc-space-2) !important; font-size: var(--acc-fs-xs) !important; font-weight: var(--acc-fw-bold); letter-spacing: var(--acc-tracking-label); text-transform: uppercase !important; color: var(--acc-muted) !important; }
.acc-toc__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--acc-space-2);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.acc-toc__list li { margin: 0 !important; }
.acc-toc__list a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0.35em 0.9em;
	border: 1px solid var(--acc-line-strong);
	border-radius: 999px;
	font-size: var(--acc-fs-sm);
	font-weight: var(--acc-fw-medium);
	color: var(--acc-heading) !important;
	text-decoration: none !important;
	background: var(--acc-surface);
}
.acc-toc__list a:hover { border-color: var(--acc-dark-green); background: var(--acc-sage-light); }
.acc-location__toc-wrap .acc-toc { margin: var(--acc-space-5) 0 0; border-top: 0; }
/* Phones: one scrollable row instead of a tall stack of pills */
@media (max-width: 600px) {
	.acc-toc__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px !important; -webkit-overflow-scrolling: touch; }
	.acc-toc__list::-webkit-scrollbar { display: none; }
	.acc-toc__list a { white-space: nowrap; }
}


/* =====================================================================
   15  CONTENT SECTION AND CALLOUT
   ===================================================================== */
.acc-content-section + .acc-content-section,
.acc-content-section + .acc-callout,
.acc-service__content + .acc-content-section,
.acc-service__content + .acc-callout,
.acc-callout + .acc-content-section { margin-top: var(--acc-space-7); }
.acc .acc-content-section > h2 { font-size: var(--acc-fs-h3) !important; margin-bottom: var(--acc-space-4) !important; }

.acc-callout {
	padding: var(--acc-space-5) var(--acc-space-6);
	background: var(--acc-sage-light);
	border-radius: var(--acc-radius);
}
.acc .acc-callout__title { font-size: var(--acc-fs-h4) !important; }
.acc-callout .acc-kicker { color: var(--acc-dark-green); }


/* =====================================================================
   16  TIMELINE (education and training)
   ===================================================================== */
.acc-timeline {
	position: relative;
	list-style: none;
	margin: 0 0 var(--acc-space-5) !important;
	padding: 0 0 0 1.75rem !important;
}
.acc-timeline::before {
	content: "";
	position: absolute;
	left: 0.35rem;
	top: 0.5rem;
	bottom: 0.5rem;
	width: 2px;
	background: var(--acc-line);
}
.acc-timeline__item { position: relative; margin: 0 !important; padding: 0 0 var(--acc-space-5) !important; display: grid; gap: 2px; }
.acc-timeline__item:last-child { padding-bottom: 0 !important; }
.acc-timeline__item::before {
	content: "";
	position: absolute;
	left: -1.75rem;
	top: 0.3rem;
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 50%;
	background: var(--acc-cream);
	border: 2px solid var(--acc-green);
}
.acc-timeline__label { font-size: var(--acc-fs-xs); font-weight: var(--acc-fw-bold); letter-spacing: 0.05em; text-transform: uppercase; color: var(--acc-green-ink); }
.acc-timeline__title { font-family: var(--acc-font-head); font-size: var(--acc-fs-h5); color: var(--acc-heading); line-height: 1.35; }
.acc-timeline__detail { font-size: var(--acc-fs-sm); color: var(--acc-muted); }


/* =====================================================================
   17  PANEL, FACTS, TAGS, BADGE
   ===================================================================== */
.acc-panel {
	padding: var(--acc-space-5);
	background: var(--acc-surface);
	border: 1px solid var(--acc-line);
	border-radius: var(--acc-radius);
}
.acc .acc-panel__title {
	font-family: var(--acc-font-body) !important;
	font-size: var(--acc-fs-xs) !important;
	font-weight: var(--acc-fw-bold) !important;
	letter-spacing: var(--acc-tracking-label);
	text-transform: uppercase;
	color: var(--acc-muted) !important;
	margin: 0 0 var(--acc-space-3) !important;
}
.acc .acc-panel__note { margin: var(--acc-space-4) 0 0 !important; font-size: var(--acc-fs-sm) !important; color: var(--acc-muted) !important; }

.acc-facts { padding: var(--acc-space-5); background: var(--acc-card); border-radius: var(--acc-radius); }
.acc .acc-facts__title { font-family: var(--acc-font-body) !important; font-size: var(--acc-fs-xs) !important; font-weight: var(--acc-fw-bold) !important; letter-spacing: var(--acc-tracking-label); text-transform: uppercase; color: var(--acc-muted) !important; margin: 0 0 var(--acc-space-3) !important; }
.acc-facts dl { margin: 0; display: grid; gap: var(--acc-space-4); }
.acc-facts dt { font-size: var(--acc-fs-xs); font-weight: var(--acc-fw-bold); color: var(--acc-muted); margin-bottom: 2px; }
.acc-facts dd { margin: 0; font-size: var(--acc-fs-sm); line-height: 1.55; color: var(--acc-heading); }
.acc-facts__list { list-style: none; margin: 0 !important; padding: 0 !important; }
.acc-facts__list li { margin: 0 0 2px !important; font-size: var(--acc-fs-sm) !important; }

.acc-tags { display: flex; flex-wrap: wrap; gap: var(--acc-space-2); list-style: none; margin: 0 !important; padding: 0 !important; }
.acc-tags li { margin: 0 !important; }
.acc-tag {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0.3em 0.85em;
	border-radius: 999px;
	background: var(--acc-sage-light);
	color: var(--acc-dark-green) !important;   /* dark text on the tint: 12.9:1 (sage text would fail at 4.2:1) */
	font-size: var(--acc-fs-sm);
	font-weight: var(--acc-fw-medium);
	line-height: 1.3;
	text-decoration: none !important;
}
a.acc-tag:hover { background: var(--acc-sage-pale); }
.acc-tags--static .acc-tag { background: var(--acc-card); border: 1px solid var(--acc-line); }

.acc-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	margin: 0 0 var(--acc-space-4) !important;
	padding: 0.4em 0.9em 0.4em 0.7em;
	border: 1px solid var(--acc-line-strong);
	border-radius: 999px;
	background: var(--acc-surface);
	font-size: var(--acc-fs-sm) !important;
	font-weight: var(--acc-fw-medium);
	color: var(--acc-heading) !important;
}
.acc-badge .acc-icon { width: 1.1em; height: 1.1em; color: var(--acc-gold-deep); }


/* =====================================================================
   18  STEPS, DISCLOSURE, DINING, CHECKLIST
   ===================================================================== */
.acc-step { display: grid; grid-template-columns: 2.5rem 1fr; gap: var(--acc-space-4); padding: var(--acc-space-5) 0; border-bottom: 1px solid var(--acc-line); }
.acc-step:first-child { padding-top: 0; }
.acc-step:last-child { border-bottom: 0; }
.acc-step__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--acc-sage-light);
	color: var(--acc-dark-green);
}
.acc-step__icon .acc-icon { width: 1.2rem; height: 1.2rem; }
.acc .acc-step__title { font-family: var(--acc-font-body) !important; font-size: var(--acc-fs-base) !important; font-weight: var(--acc-fw-bold) !important; margin: 0.4rem 0 var(--acc-space-2) !important; }
.acc-step .acc-prose p { font-size: var(--acc-fs-sm); }

.acc-disclosure { border-top: 1px solid var(--acc-line); }
.acc-disclosure:last-child { border-bottom: 1px solid var(--acc-line); }
.acc-disclosure summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--acc-space-3);
	min-height: 44px;
	padding: var(--acc-space-2) 0;
	cursor: pointer;
	list-style: none;
	font-weight: var(--acc-fw-medium);
	font-size: var(--acc-fs-sm);
	color: var(--acc-heading);
}
.acc-disclosure summary::-webkit-details-marker { display: none; }
.acc-disclosure__icon { width: 1.1rem; height: 1.1rem; color: var(--acc-green); transition: transform var(--acc-dur) var(--acc-ease); }
.acc-disclosure[open] .acc-disclosure__icon { transform: rotate(180deg); }
.acc-disclosure .acc-prose { padding-bottom: var(--acc-space-3); }

.acc-dining {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: var(--acc-space-4) var(--acc-space-6);
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
.acc-dining li { margin: 0 !important; padding-top: var(--acc-space-3); border-top: 2px solid var(--acc-dark-green); display: grid; gap: 2px; }
.acc-dining__name { font-family: var(--acc-font-head); font-size: var(--acc-fs-h5); color: var(--acc-heading); }
.acc-dining__note { font-size: var(--acc-fs-sm); color: var(--acc-muted); }

.acc-checklist { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: var(--acc-space-4); }
.acc-checklist li { display: grid; grid-template-columns: 1.5rem 1fr; gap: var(--acc-space-3); margin: 0 !important; font-size: var(--acc-fs-base); line-height: 1.5; color: var(--acc-heading); }
.acc-checklist .acc-icon { width: 1.5rem; height: 1.5rem; color: var(--acc-green); }


/* =====================================================================
   19  GOOGLE MAP (location page)
   ===================================================================== */
.acc-gmap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(circle at 50% 45%, var(--acc-cream) 0 18%, transparent 19%),
		var(--acc-sage-light);
	border-radius: var(--acc-radius) var(--acc-radius) 0 0;
	overflow: hidden;
}
.acc-gmap__fallback {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--acc-space-2);
	font-weight: var(--acc-fw-bold);
	color: var(--acc-heading) !important;
	text-decoration: none !important;
}
.acc-gmap__fallback .acc-icon { width: 2.25rem; height: 2.25rem; color: var(--acc-dark-green); }
.acc-gmap.is-loaded .acc-gmap__fallback { display: none; }
@media (max-width: 600px) { .acc-gmap { aspect-ratio: 1 / 1; } }


/* =====================================================================
   20  PRE-FOOTER (all offices)
   ===================================================================== */
.acc-prefooter {
	padding-block: var(--acc-space-7);
	background: var(--acc-card);
	border-top: 1px solid var(--acc-line);
}
.acc-prefooter__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--acc-space-4);
	margin-bottom: var(--acc-space-5);
}
.acc .acc-prefooter__title { margin: 0 !important; font-size: var(--acc-fs-h3) !important; }
.acc-prefooter__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
	gap: 0 var(--acc-space-5);
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
.acc-prefooter__list li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0 !important;
	padding: var(--acc-space-3) 0;
	border-top: 1px solid var(--acc-line-strong);
}
.acc-prefooter__name { font-family: var(--acc-font-head) !important; font-size: var(--acc-fs-h5); color: var(--acc-heading) !important; text-decoration: none !important; }
.acc-prefooter__name:hover { text-decoration: underline !important; }
.acc-prefooter__tel { font-weight: var(--acc-fw-bold); font-size: var(--acc-fs-sm); color: var(--acc-green-ink) !important; text-decoration: none !important; min-height: 24px; }
.acc-prefooter__tel:hover { text-decoration: underline !important; }


/* =====================================================================
   21  EDITOR-ONLY NOTES AND PREVIEW BADGE (never shown to patients)
   ===================================================================== */
.acc-editor-note {
	margin: var(--acc-space-4) 0 !important;
	padding: var(--acc-space-3) var(--acc-space-4);
	border: 1px dashed var(--acc-red);
	border-radius: var(--acc-radius-sm);
	background: var(--acc-red-tint);
	color: var(--acc-red-deep) !important;
	font-size: var(--acc-fs-sm) !important;
}
.acc-preview-badge {
	position: fixed;
	left: 16px;
	bottom: 16px;
	z-index: 99998;
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--acc-dark-green);
	color: var(--acc-cream);
	font: 500 13px/1.3 var(--acc-font-body);
	box-shadow: var(--acc-shadow);
}
.acc-preview-badge a { color: var(--acc-cream) !important; font-weight: 700; text-decoration: underline !important; }
@media print { .acc-preview-badge, .acc-editor-note { display: none !important; } }


/* =====================================================================
   22  SMALL PARTS (component inner wrappers)
   ===================================================================== */
.acc-page-header__main { min-width: 0; }
.acc-alert__body { min-width: 0; }
.acc .acc-faq__heading { margin: 0 0 var(--acc-space-4) !important; font-size: var(--acc-fs-h3) !important; }
