/**
 * Cura — Main stylesheet
 *
 * Warm cream + deep teal + coral. Plus Jakarta Sans humanist (sans-only).
 * Soft pill-shape buttons, generous rounded cards, healthcare-friendly.
 */

/* ============================================================
 * 1. Tokens
 * ============================================================ */
:root {
	--cura-bg:         #FBF6F2;
	--cura-paper:      #FFFFFF;
	--cura-cream-deep: #F2EAE2;
	--cura-teal:       #1F4548;
	--cura-teal-deep:  #0F2628;
	--cura-teal-soft:  #345B5F;
	--cura-teal-paper: #E5EDED;
	--cura-coral:      #F08A6E;
	--cura-coral-deep: #D9694A;
	--cura-coral-soft: #FCE2D7;
	--cura-sage:       #B5C4B1;
	--cura-sage-soft:  #E3EBE0;
	--cura-ochre:      #D4A04C;
	--cura-ink:        #2A2A2A;
	--cura-ink-soft:   #4A4A4A;
	--cura-ink-muted:  #737373;
	--cura-ink-subtle: #A3A3A3;
	--cura-border:     #EADFD3;
	--cura-border-strong:#D9CABA;
	--cura-success:    #3F8A56;
	--cura-danger:     #C2473F;
	--cura-text-inv:   #FBF6F2;

	--cura-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--cura-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;

	--cura-radius-sm:   0.5rem;
	--cura-radius-md:   0.875rem;
	--cura-radius-lg:   1.5rem;
	--cura-radius-xl:   2.25rem;
	--cura-radius-pill: 9999px;

	--cura-ease:        cubic-bezier(0.4, 0, 0.2, 1);
	--cura-bounce:      cubic-bezier(0.34, 1.56, 0.64, 1);

	--cura-container:        1320px;
	--cura-container-narrow:  720px;
	--cura-gutter:           1.5rem;
}

/* ============================================================
 * 2. Reset & base
 * ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; tab-size: 4; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--cura-bg);
	color: var(--cura-ink);
	font-family: var(--cura-sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img, svg, video, picture { max-width: 100%; display: block; }
img, video { height: auto; }

a { color: var(--cura-teal); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(31, 69, 72, 0.35); transition: color 200ms var(--cura-ease), text-decoration-color 200ms var(--cura-ease); }
a:hover, a:focus-visible { color: var(--cura-coral-deep); text-decoration-color: currentColor; }

h1, h2, h3, h4, h5 {
	font-family: var(--cura-sans);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.025em;
	margin: 0 0 0.5em;
	color: var(--cura-teal);
}
h6 { font-family: var(--cura-mono); font-weight: 500; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; margin: 0 0 1em; color: var(--cura-ink-muted); }

h1 { font-size: clamp(2.75rem, 6vw, 4.5rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; }
h2 { font-size: clamp(2.25rem, 4vw, 3.25rem); font-weight: 600; letter-spacing: -0.03em; }
h3 { font-size: clamp(1.625rem, 3vw, 2.25rem); }
h4 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }

em { font-style: italic; }

p { margin: 0 0 1rem; }

hr { border: 0; height: 1px; background: var(--cura-border); margin: 3rem 0; }

code, kbd, samp { font-family: var(--cura-mono); font-size: 0.85em; background: var(--cura-cream-deep); padding: 0.15em 0.4em; border-radius: var(--cura-radius-sm); }
pre { overflow-x: auto; padding: 1.25rem; background: var(--cura-cream-deep); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-md); font-size: 0.875em; line-height: 1.6; }

blockquote { margin: 1.5rem 0; padding: 0.25rem 0 0.25rem 1.25rem; border-left: 3px solid var(--cura-coral); font-style: italic; font-size: 1.375rem; color: var(--cura-teal); line-height: 1.4; }

table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
th, td { padding: 0.875rem 1rem; border-bottom: 1px solid var(--cura-border); text-align: start; }
th { font-family: var(--cura-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; color: var(--cura-ink-muted); }

:focus-visible { outline: 2px solid var(--cura-coral); outline-offset: 3px; border-radius: var(--cura-radius-sm); }

::selection { background: var(--cura-coral-soft); color: var(--cura-teal-deep); }

.cura-mono { font-family: var(--cura-mono); }

.cura-link { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--cura-teal); font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--cura-teal); padding-bottom: 1px; }
.cura-link:hover { color: var(--cura-coral-deep); border-bottom-color: var(--cura-coral-deep); }

/* Pill */
.cura-pill { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.625rem; background: var(--cura-cream-deep); color: var(--cura-ink-soft); border-radius: var(--cura-radius-pill); font-family: var(--cura-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.04em; }
.cura-pill--success { background: rgba(63, 138, 86, 0.14); color: var(--cura-success); }
.cura-pill--coral   { background: var(--cura-coral-soft); color: var(--cura-coral-deep); }

/* ============================================================
 * 3. Containers
 * ============================================================ */
.cura-container { width: 100%; max-width: var(--cura-container); margin-inline: auto; padding-inline: var(--cura-gutter); }
.cura-container--narrow { max-width: var(--cura-container-narrow); }

/* ============================================================
 * 4. Buttons (pill-shaped, soft)
 * ============================================================ */
.cura-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.875rem 1.5rem;
	border-radius: var(--cura-radius-pill);
	font-family: var(--cura-sans);
	font-weight: 600;
	font-size: 0.9375rem;
	letter-spacing: -0.005em;
	border: 1.5px solid var(--cura-teal);
	background: var(--cura-teal);
	color: var(--cura-text-inv);
	text-decoration: none !important;
	cursor: pointer;
	transition: background 200ms var(--cura-ease), border-color 200ms var(--cura-ease), color 200ms var(--cura-ease), transform 200ms var(--cura-ease);
}
.cura-btn:hover { transform: translateY(-1px); }
.cura-btn--teal    { background: var(--cura-teal); color: var(--cura-text-inv); border-color: var(--cura-teal); }
.cura-btn--teal:hover { background: var(--cura-teal-deep); border-color: var(--cura-teal-deep); }
.cura-btn--coral   { background: var(--cura-coral); color: var(--cura-teal-deep); border-color: var(--cura-coral); }
.cura-btn--coral:hover { background: var(--cura-coral-deep); border-color: var(--cura-coral-deep); color: var(--cura-text-inv); }
.cura-btn--outline { background: transparent; color: var(--cura-teal); border-color: var(--cura-teal); }
.cura-btn--outline:hover { background: var(--cura-teal); color: var(--cura-text-inv); }
.cura-btn--paper   { background: var(--cura-paper); color: var(--cura-teal); border-color: var(--cura-border-strong); }

.cura-btn--lg { padding: 1rem 1.875rem; font-size: 1rem; }

/* ============================================================
 * 5. Utility bar + header
 * ============================================================ */
.cura-utility {
	background: var(--cura-teal);
	color: var(--cura-text-inv);
	font-family: var(--cura-mono);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}
.cura-utility__inner { display: flex; justify-content: space-between; align-items: center; padding-block: 0.5rem; gap: 1rem; flex-wrap: wrap; }
.cura-utility__text { margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.cura-utility__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cura-coral); box-shadow: 0 0 0 3px rgba(240, 138, 110, 0.25); }
.cura-utility__contact a { color: var(--cura-text-inv); text-decoration: none; font-weight: 600; }

.cura-header {
	position: relative;
	z-index: 50;
	background: var(--cura-bg);
	border-bottom: 1px solid var(--cura-border);
}
.cura--sticky-header .cura-header { position: sticky; top: 0; }

.cura-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 2rem;
	padding-block: 1.125rem;
}

.cura-header__brand-mark { display: inline-flex; align-items: center; gap: 0.625rem; color: var(--cura-teal); text-decoration: none; font-family: var(--cura-sans); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.025em; }

.cura-nav__list { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.75rem; justify-content: center; }
.cura-nav__list a { color: var(--cura-teal); font-family: var(--cura-sans); font-size: 0.9375rem; font-weight: 500; text-decoration: none; padding-block: 0.5rem; }
.cura-nav__list a:hover, .cura-nav__list .current-menu-item > a { color: var(--cura-coral-deep); }

.cura-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.cura-header__cta { padding: 0.625rem 1.125rem; font-size: 0.875rem; }

.cura-mobile-toggle { display: none; padding: 0.5rem; background: transparent; border: 0; cursor: pointer; color: var(--cura-teal); }
.cura-mobile-toggle span { display: block; width: 20px; height: 2px; background: currentColor; margin: 5px 0; border-radius: 2px; }

@media (max-width: 56em) {
	.cura-nav { display: none; }
	.cura-header__cta { display: none; }
	.cura-mobile-toggle { display: inline-block; }
}

.cura-mobile-nav { padding: 1rem var(--cura-gutter) 1.5rem; border-top: 1px solid var(--cura-border); background: var(--cura-bg); }
.cura-mobile-nav[hidden] { display: none; }
.cura-mobile-nav__list { list-style: none; padding: 0; margin: 0; }
.cura-mobile-nav__list a { display: block; padding: 1rem 0; font-size: 1.125rem; font-weight: 500; color: var(--cura-teal); text-decoration: none; border-bottom: 1px solid var(--cura-border); }

/* ============================================================
 * 6. Hero — soft asymmetric warm
 * ============================================================ */
.cura-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(3rem, 6vw, 5rem) clamp(4rem, 8vw, 6rem);
}
.cura-hero__bloom {
	position: absolute;
	inset: -10% -10% auto auto;
	width: 70%;
	height: 90%;
	background:
		radial-gradient(45% 60% at 70% 30%, rgba(240, 138, 110, 0.28), transparent 65%),
		radial-gradient(40% 55% at 30% 60%, rgba(181, 196, 177, 0.32), transparent 70%);
	z-index: -1;
	pointer-events: none;
	filter: blur(2px);
}

.cura-hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(3rem, 6vw, 4rem);
	align-items: center;
}
@media (min-width: 64em) { .cura-hero__inner { grid-template-columns: 1.05fr 1fr; } }

.cura-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.75rem;
	padding: 0.4rem 0.75rem 0.4rem 0.55rem;
	background: var(--cura-paper);
	border: 1px solid var(--cura-border);
	border-radius: var(--cura-radius-pill);
	font-family: var(--cura-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cura-teal);
}
.cura-hero__eyebrow-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cura-success); box-shadow: 0 0 0 3px rgba(63, 138, 86, 0.2); animation: cura-pulse 2s ease-out infinite; }
@keyframes cura-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(63, 138, 86, 0.4); } 50% { box-shadow: 0 0 0 5px rgba(63, 138, 86, 0); } }

.cura-hero__title {
	margin: 0 0 1.5rem;
	font-family: var(--cura-sans);
	font-size: clamp(2.5rem, 5.5vw, 4.5rem);
	font-weight: 700;
	line-height: 1.0;
	letter-spacing: -0.04em;
	color: var(--cura-teal);
}
.cura-hero__title-under { display: block; color: var(--cura-coral-deep); font-style: italic; font-weight: 600; }

.cura-hero__lede {
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--cura-ink-soft);
	margin: 0 0 2rem;
	max-width: 32rem;
}

.cura-hero__cta { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 2rem; }

.cura-hero__chips { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.625rem; }
.cura-hero__chips li { display: flex; align-items: center; gap: 0.5rem; color: var(--cura-ink-soft); font-size: 0.875rem; }
.cura-hero__chips svg { color: var(--cura-coral); flex-shrink: 0; }

/* Hero visual (CSS-only mockup) */
.cura-hero__visual {
	position: relative;
	min-height: 28rem;
}
.cura-hero__card { position: absolute; background: var(--cura-paper); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-lg); box-shadow: 0 24px 50px -16px rgba(31, 69, 72, 0.18); }
.cura-hero__card--portrait { top: 0; left: 0; right: 25%; aspect-ratio: 5/6; overflow: hidden; border-radius: var(--cura-radius-xl); }
.cura-hero__card--portrait svg { width: 100%; height: 100%; }
.cura-hero__card--visit { bottom: 0; right: 0; left: 30%; padding: 1.25rem; }
.cura-hero__card--insurance { top: 15%; right: 0; padding: 0.875rem 1.125rem; border-radius: var(--cura-radius-pill); }

.cura-hero__badge { position: absolute; top: 1.25rem; left: 1.25rem; display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.4rem 0.75rem 0.4rem 0.625rem; background: var(--cura-paper); border-radius: var(--cura-radius-pill); font-size: 0.75rem; font-weight: 600; color: var(--cura-teal); box-shadow: 0 8px 16px -4px rgba(31, 69, 72, 0.18); }
.cura-hero__badge-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cura-success); }

.cura-hero__card-eyebrow { margin: 0 0 0.5rem; font-family: var(--cura-mono); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-ink-muted); }
.cura-hero__card-when { margin: 0 0 0.25rem; font-family: var(--cura-sans); font-size: 1.5rem; font-weight: 700; color: var(--cura-teal); letter-spacing: -0.025em; }
.cura-hero__card-with { margin: 0 0 0.875rem; font-size: 0.875rem; color: var(--cura-ink-soft); }
.cura-hero__card-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.cura-hero__card-room { font-size: 0.75rem; color: var(--cura-ink-muted); }

@media (max-width: 64em) {
	.cura-hero__visual { min-height: 24rem; max-width: 28rem; margin-inline: auto; width: 100%; }
}

/* ============================================================
 * 7. Trust strip
 * ============================================================ */
.cura-trust {
	padding-block: 2.5rem;
	background: var(--cura-paper);
	border-top: 1px solid var(--cura-border);
	border-bottom: 1px solid var(--cura-border);
}
.cura-trust__label { margin: 0 0 1.25rem; text-align: center; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-ink-muted); }
.cura-trust__list { list-style: none; padding: 0; margin: 0; display: flex; justify-content: center; align-items: center; gap: clamp(1.5rem, 3vw, 2.75rem); flex-wrap: wrap; }
.cura-trust__list li { font-family: var(--cura-sans); font-size: 1.0625rem; font-weight: 600; color: var(--cura-teal-soft); letter-spacing: -0.015em; }

/* ============================================================
 * 8. Sections (shared)
 * ============================================================ */
.cura-section { padding-block: clamp(4rem, 8vw, 6rem); }
.cura-section__header { max-width: 52rem; margin: 0 0 clamp(2.5rem, 5vw, 4rem); }
.cura-section__eyebrow { margin: 0 0 1rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; color: var(--cura-coral-deep); letter-spacing: 0.12em; text-transform: uppercase; }
.cura-section__title { margin: 0 0 1.25rem; font-family: var(--cura-sans); font-size: clamp(2rem, 4.5vw, 3.5rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1.05; color: var(--cura-teal); max-width: 24ch; }
.cura-section__title-under { display: block; color: var(--cura-coral-deep); font-style: italic; font-weight: 600; }
.cura-section__lede { margin: 1.25rem 0 0; color: var(--cura-ink-soft); font-size: 1.0625rem; line-height: 1.6; max-width: 38rem; }

/* ============================================================
 * 9. Service cards (6 specialties)
 * ============================================================ */
.cura-services-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 48em) { .cura-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 72em) { .cura-services-grid { grid-template-columns: repeat(3, 1fr); } }

.cura-service-card {
	padding: 1.875rem;
	background: var(--cura-paper);
	border: 1px solid var(--cura-border);
	border-radius: var(--cura-radius-lg);
	transition: transform 200ms var(--cura-ease), box-shadow 200ms var(--cura-ease), border-color 200ms var(--cura-ease);
}
.cura-service-card:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -12px rgba(31, 69, 72, 0.15); border-color: var(--cura-coral); }

.cura-service-card__icon {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 3rem; height: 3rem;
	border-radius: var(--cura-radius-md);
	background: var(--cura-coral-soft);
	color: var(--cura-coral-deep);
	margin-bottom: 1.25rem;
}
.cura-service-card--a .cura-service-card__icon { background: var(--cura-coral-soft); color: var(--cura-coral-deep); }
.cura-service-card--b .cura-service-card__icon { background: var(--cura-teal-paper); color: var(--cura-teal); }
.cura-service-card--c .cura-service-card__icon { background: var(--cura-sage-soft); color: var(--cura-teal-soft); }

.cura-service-card__title { margin: 0 0 0.625rem; font-family: var(--cura-sans); font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.cura-service-card__body  { margin: 0 0 1.25rem; color: var(--cura-ink-soft); font-size: 0.9375rem; line-height: 1.6; }

/* ============================================================
 * 10. Visit steps (3 numbered)
 * ============================================================ */
.cura-section--steps { background: var(--cura-cream-deep); }
.cura-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 56em) { .cura-steps { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.cura-step { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.875rem; background: var(--cura-paper); border-radius: var(--cura-radius-lg); border: 1px solid var(--cura-border); }
.cura-step__num { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: var(--cura-radius-pill); background: var(--cura-teal); color: var(--cura-text-inv); font-family: var(--cura-mono); font-weight: 500; font-size: 1rem; letter-spacing: 0.02em; }
.cura-step__title { margin: 0 0 0.5rem; font-family: var(--cura-sans); font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.cura-step__copy { margin: 0; color: var(--cura-ink-soft); font-size: 0.9375rem; line-height: 1.6; }

/* ============================================================
 * 11. Provider cards (4)
 * ============================================================ */
.cura-providers-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 48em) { .cura-providers-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 72em) { .cura-providers-grid { grid-template-columns: repeat(4, 1fr); } }

.cura-provider-card { display: flex; flex-direction: column; }
.cura-provider-card__portrait { aspect-ratio: 5/6; overflow: hidden; border-radius: var(--cura-radius-lg); color: var(--cura-coral-soft); display: block; }
.cura-provider-card__portrait img { width: 100%; height: 100%; object-fit: cover; }
.cura-provider-card__portrait svg { width: 100%; height: 100%; }
.cura-provider-card__portrait--a { color: var(--cura-coral-soft); }
.cura-provider-card__portrait--b { color: var(--cura-teal-paper); }
.cura-provider-card__portrait--c { color: var(--cura-sage-soft); }
.cura-provider-card__body { padding-top: 1.125rem; }
.cura-provider-card__specialty { margin: 0 0 0.5rem; font-family: var(--cura-mono); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); }
.cura-provider-card__name { margin: 0 0 0.375rem; font-family: var(--cura-sans); font-size: 1.125rem; font-weight: 700; letter-spacing: -0.015em; }
.cura-provider-card__name a { color: var(--cura-teal); text-decoration: none; }
.cura-provider-card__name a:hover { color: var(--cura-coral-deep); }
.cura-provider-card__name .cura-mono { font-size: 0.8125rem; font-weight: 500; color: var(--cura-ink-muted); }
.cura-provider-card__role { margin: 0 0 0.875rem; color: var(--cura-ink-soft); font-size: 0.875rem; }
.cura-provider-card__status { margin: 0; }

/* ============================================================
 * 12. Patient stories
 * ============================================================ */
.cura-section--stories { background: var(--cura-cream-deep); }
.cura-stories { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 64em) { .cura-stories { grid-template-columns: repeat(3, 1fr); } }
.cura-story { margin: 0; padding: 1.875rem; background: var(--cura-paper); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-lg); display: flex; flex-direction: column; gap: 1.25rem; }
.cura-story__quote { margin: 0; font-family: var(--cura-sans); font-size: 1.0625rem; line-height: 1.55; color: var(--cura-teal); }
.cura-story__cite { display: flex; flex-direction: column; gap: 0.125rem; font-style: normal; padding-top: 1rem; border-top: 1px solid var(--cura-border); }
.cura-story__cite strong { font-weight: 700; color: var(--cura-teal); font-size: 0.9375rem; }
.cura-story__cite em { font-style: normal; font-family: var(--cura-mono); font-size: 0.75rem; color: var(--cura-ink-muted); }

/* ============================================================
 * 13. Book section + locations
 * ============================================================ */
.cura-book { display: grid; gap: 3rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 72em) { .cura-book { grid-template-columns: 1.1fr 1fr; gap: 5rem; } }
.cura-book__eyebrow { font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; color: var(--cura-coral-deep); letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 1rem; }
.cura-book__title { margin: 0 0 1.25rem; font-family: var(--cura-sans); font-size: clamp(2.25rem, 5vw, 3.5rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1.0; }
.cura-book__title-under { display: block; color: var(--cura-coral-deep); font-style: italic; font-weight: 600; }
.cura-book__body { color: var(--cura-ink-soft); font-size: 1.0625rem; line-height: 1.6; margin: 0 0 1.75rem; max-width: 32rem; }

.cura-book__locations { display: grid; gap: 1rem; grid-template-columns: 1fr; margin: 0 0 2rem; }
@media (min-width: 40em) { .cura-book__locations { grid-template-columns: repeat(2, 1fr); } }
.cura-location { padding: 1.25rem; background: var(--cura-cream-deep); border-radius: var(--cura-radius-md); }
.cura-location__name { margin: 0 0 0.5rem; font-family: var(--cura-sans); font-size: 1rem; font-weight: 700; color: var(--cura-teal); }
.cura-location__address { margin: 0 0 0.5rem; color: var(--cura-ink-soft); font-size: 0.9375rem; line-height: 1.5; }
.cura-location__hours { margin: 0; font-size: 0.75rem; color: var(--cura-ink-muted); }

.cura-book__cta { display: flex; gap: 0.75rem; flex-wrap: wrap; }

.cura-book__map { background: var(--cura-teal-paper); border-radius: var(--cura-radius-lg); aspect-ratio: 5/6; overflow: hidden; }
.cura-book__map svg { width: 100%; height: 100%; }

/* ============================================================
 * 14. FAQ accordion
 * ============================================================ */
.cura-section--faq { background: var(--cura-paper); border-top: 1px solid var(--cura-border); border-bottom: 1px solid var(--cura-border); }
.cura-faq { display: flex; flex-direction: column; gap: 0.625rem; }
.cura-faq__item { background: var(--cura-bg); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-md); overflow: hidden; }
.cura-faq__item[open] { border-color: var(--cura-coral); }
.cura-faq__question { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; font-family: var(--cura-sans); font-weight: 600; font-size: 1.0625rem; color: var(--cura-teal); cursor: pointer; list-style: none; }
.cura-faq__question::-webkit-details-marker { display: none; }
.cura-faq__chev { color: var(--cura-ink-muted); transition: transform 200ms var(--cura-ease); flex-shrink: 0; }
.cura-faq__item[open] .cura-faq__chev { transform: rotate(180deg); color: var(--cura-coral-deep); }
.cura-faq__answer { padding: 0 1.5rem 1.5rem; color: var(--cura-ink-soft); line-height: 1.65; font-size: 0.9375rem; }
.cura-faq__answer p { margin: 0; }

/* ============================================================
 * 15. Single provider + service
 * ============================================================ */
.cura-provider__hero { padding-block: clamp(3rem, 6vw, 5rem); }
.cura-provider__inner { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 64em) { .cura-provider__inner { grid-template-columns: 1.2fr 1fr; } }
.cura-provider__specialty { margin: 0 0 1rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); }
.cura-provider__name { margin: 0 0 0.5rem; font-family: var(--cura-sans); font-size: clamp(2.5rem, 5vw, 3.75rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; }
.cura-provider__creds { font-family: var(--cura-mono); font-size: 0.5em; font-weight: 500; color: var(--cura-ink-muted); }
.cura-provider__role { margin: 0 0 2rem; color: var(--cura-ink-soft); font-size: 1.125rem; }
.cura-provider__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0 0 2rem; padding: 1.25rem 0; border-block: 1px solid var(--cura-border); }
.cura-provider__facts > div { display: flex; flex-direction: column; gap: 0.25rem; }
.cura-provider__facts dt { font-family: var(--cura-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--cura-ink-muted); margin: 0; }
.cura-provider__facts dd { margin: 0; font-family: var(--cura-sans); font-size: 1rem; font-weight: 600; color: var(--cura-teal); }
.cura-provider__portrait { border-radius: var(--cura-radius-lg); overflow: hidden; aspect-ratio: 5/6; }
.cura-provider__portrait img { width: 100%; height: 100%; object-fit: cover; }
.cura-provider__bio { margin-block: clamp(2rem, 5vw, 3.5rem); }

.cura-service__hero { padding-block: clamp(3rem, 6vw, 5rem) 0; }
.cura-service__eyebrow { margin: 0 0 1rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); }
.cura-service__title { margin: 0 0 1.5rem; font-family: var(--cura-sans); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; }
.cura-service__lede { font-size: 1.25rem; line-height: 1.5; color: var(--cura-ink-soft); margin: 0 0 2rem; max-width: 36ch; }
.cura-service__facts { display: grid; grid-template-columns: 1fr; gap: 1rem; padding: 1.5rem 0; border-block: 1px solid var(--cura-border); }
@media (min-width: 56em) { .cura-service__facts { grid-template-columns: repeat(3, 1fr); } }
.cura-service__facts > div { display: flex; flex-direction: column; gap: 0.25rem; }
.cura-service__facts dt { font-family: var(--cura-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--cura-ink-muted); margin: 0; }
.cura-service__facts dd { margin: 0; font-weight: 600; color: var(--cura-teal); }

/* ============================================================
 * 16. Archive / single essay / guides
 * ============================================================ */
.cura-archive-header { padding-block: 3rem 2.5rem; border-bottom: 1px solid var(--cura-border); margin-bottom: 0; }
.cura-archive-header__eyebrow { margin: 0 0 1rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); }
.cura-archive-header__title { margin: 0; font-family: var(--cura-sans); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; letter-spacing: -0.035em; }

.cura-guides { display: flex; flex-direction: column; }
.cura-guide { display: grid; grid-template-columns: 1fr; gap: 1.5rem; padding-block: 2rem; border-bottom: 1px solid var(--cura-border); }
@media (min-width: 56em) { .cura-guide { grid-template-columns: 240px 1fr; gap: 2.5rem; align-items: center; } }
.cura-guide__media { display: block; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--cura-radius-md); }
.cura-guide__media img { width: 100%; height: 100%; object-fit: cover; }
.cura-guide__eyebrow { margin: 0 0 0.5rem; font-family: var(--cura-mono); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; color: var(--cura-coral-deep); }
.cura-guide__title { margin: 0 0 0.75rem; font-family: var(--cura-sans); font-size: clamp(1.5rem, 2.5vw, 1.875rem); font-weight: 700; letter-spacing: -0.025em; line-height: 1.2; }
.cura-guide__title a { color: var(--cura-teal); text-decoration: none; }
.cura-guide__title a:hover { color: var(--cura-coral-deep); }
.cura-guide__excerpt { margin: 0 0 0.75rem; color: var(--cura-ink-soft); font-size: 0.9375rem; line-height: 1.6; max-width: 36rem; }
.cura-guide__meta { display: flex; gap: 0.5rem; font-family: var(--cura-mono); font-size: 0.75rem; color: var(--cura-ink-muted); }

.cura-essay__hero { padding-block: clamp(3rem, 6vw, 5rem) 0; }
.cura-essay__eyebrow { margin: 0 0 1rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); }
.cura-essay__title { margin: 0 0 1.5rem; font-family: var(--cura-sans); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; }
.cura-essay__lede { font-size: 1.25rem; line-height: 1.5; color: var(--cura-ink-soft); margin: 0 0 2rem; max-width: 36ch; }
.cura-essay__media { margin-block: 2.5rem; border-radius: var(--cura-radius-md); overflow: hidden; }

.cura-prose > * + * { margin-top: 1rem; }
.cura-prose h2 { margin: 2.75rem 0 1rem; font-size: 2rem; font-weight: 700; }
.cura-prose h3 { margin: 2.25rem 0 0.75rem; font-size: 1.5rem; font-weight: 700; }
.cura-prose p  { font-size: 1.0625rem; line-height: 1.75; color: var(--cura-ink); }
.cura-prose a  { color: var(--cura-coral-deep); text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
 * 17. Footer
 * ============================================================ */
.cura-footer {
	padding-block: clamp(3.5rem, 7vw, 5rem) 0;
	background: var(--cura-teal);
	color: var(--cura-text-inv);
	border-top: 1px solid var(--cura-teal-deep);
}
.cura-footer__top { display: grid; gap: 3rem; grid-template-columns: 1fr; margin-bottom: 3rem; }
@media (min-width: 64em) { .cura-footer__top { grid-template-columns: 1fr 1.5fr; align-items: start; } }

.cura-footer__brand-name { display: flex; align-items: center; gap: 0.625rem; margin: 0 0 1.5rem; font-family: var(--cura-sans); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.025em; color: var(--cura-text-inv); }
.cura-footer__brand-icon svg circle { fill: var(--cura-text-inv); }
.cura-footer__brand-icon svg path { stroke: var(--cura-coral); }
.cura-footer__address { font-style: normal; color: rgba(251, 246, 242, 0.78); font-size: 0.9375rem; line-height: 1.7; margin: 0 0 1.5rem; }
.cura-footer__address a { color: var(--cura-text-inv); text-decoration: none; border-bottom: 1px solid rgba(251, 246, 242, 0.3); }
.cura-footer__address a:hover { color: var(--cura-coral); border-bottom-color: var(--cura-coral); }

.cura-footer__columns { display: grid; gap: 2.5rem; grid-template-columns: repeat(3, 1fr); }
.cura-footer__column ul { list-style: none; padding: 0; margin: 0; }
.cura-footer__column li + li { margin-top: 0.625rem; }
.cura-footer__column a { color: rgba(251, 246, 242, 0.78); font-size: 0.9375rem; text-decoration: none; }
.cura-footer__column a:hover { color: var(--cura-coral); }
.cura-footer__column-title, .cura-footer__column .widget__title { margin: 0 0 1.25rem; font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; color: var(--cura-coral); }

.cura-footer__compliance { padding: 1.5rem 0; border-top: 1px solid rgba(251, 246, 242, 0.15); color: rgba(251, 246, 242, 0.6); font-size: 0.8125rem; line-height: 1.6; max-width: 60rem; }

.cura-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.5rem; border-top: 1px solid rgba(251, 246, 242, 0.15); flex-wrap: wrap; color: rgba(251, 246, 242, 0.6); font-family: var(--cura-mono); font-size: 0.75rem; }
.cura-footer__legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.5rem; }
.cura-footer__legal a { color: rgba(251, 246, 242, 0.6); text-decoration: none; }
.cura-footer__legal a:hover { color: var(--cura-coral); }

.cura-social { list-style: none; display: flex; gap: 0.5rem; padding: 0; margin: 0; }
.cura-social a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: var(--cura-radius-pill); background: rgba(251, 246, 242, 0.08); color: var(--cura-text-inv); transition: background 200ms, color 200ms; }
.cura-social a:hover { background: var(--cura-coral); color: var(--cura-teal-deep); }

/* ============================================================
 * 18. Pagination, search, 404, comments
 * ============================================================ */
.cura-pagination { margin-block: 3rem; }
.cura-pagination .nav-links { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; }
.cura-pagination .page-numbers { display: inline-flex; min-width: 2.5rem; height: 2.5rem; padding: 0 0.875rem; align-items: center; justify-content: center; background: var(--cura-paper); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-pill); color: var(--cura-teal); font-family: var(--cura-sans); font-size: 0.875rem; font-weight: 600; text-decoration: none; }
.cura-pagination .page-numbers.current { background: var(--cura-teal); color: var(--cura-text-inv); border-color: var(--cura-teal); }
.cura-pagination .page-numbers:hover { background: var(--cura-coral); color: var(--cura-teal-deep); border-color: var(--cura-coral); }

.cura-search-form { display: flex; gap: 0; max-width: 36rem; background: var(--cura-paper); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-pill); padding: 0.25rem; }
.cura-search-form__input { flex: 1; padding: 0.625rem 1rem; background: transparent; border: 0; color: var(--cura-teal); font: inherit; font-family: var(--cura-sans); outline: none; }
.cura-search-form__submit { padding: 0.625rem 1.125rem; background: var(--cura-teal); color: var(--cura-text-inv); border: 0; border-radius: var(--cura-radius-pill); cursor: pointer; font-family: var(--cura-sans); font-size: 1rem; font-weight: 600; }

.cura-404 { text-align: center; padding-block: clamp(3rem, 8vw, 6rem); max-width: 56rem; margin: 0 auto; }
.cura-404__chip { display: inline-block; padding: 0.4rem 0.875rem; background: var(--cura-coral-soft); color: var(--cura-coral-deep); border-radius: var(--cura-radius-pill); font-family: var(--cura-mono); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 2rem; }
.cura-404__title { margin: 0 0 1.25rem; font-family: var(--cura-sans); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1.0; }
.cura-404__lede { color: var(--cura-ink-soft); max-width: 36rem; margin: 0 auto 2rem; font-size: 1.0625rem; line-height: 1.6; }
.cura-404__search { max-width: 32rem; margin: 0 auto 1.5rem; }
.cura-404__actions { display: flex; gap: 0.625rem; justify-content: center; flex-wrap: wrap; }

.cura-empty { padding: 4rem 0; text-align: center; }
.cura-empty__title { font-size: 2rem; font-weight: 700; margin: 0 0 1rem; color: var(--cura-teal); }
.cura-empty__lede  { color: var(--cura-ink-soft); margin: 0 0 1.5rem; }

.cura-comments { margin: 3rem 0; }
.cura-comments__title { font-size: 1.5rem; font-weight: 700; margin: 0 0 1.5rem; color: var(--cura-teal); }
.cura-comments__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.cura-comment-form { margin-top: 2.5rem; }
.cura-comment-form__label { display: block; font-family: var(--cura-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--cura-coral-deep); margin-bottom: 0.75rem; font-weight: 500; }
.cura-comment-form p { display: flex; flex-direction: column; gap: 0.375rem; margin-bottom: 1.25rem; }
.cura-comment-form input, .cura-comment-form textarea { padding: 0.875rem; background: var(--cura-paper); border: 1px solid var(--cura-border); border-radius: var(--cura-radius-md); color: var(--cura-teal); font: inherit; font-family: var(--cura-sans); }

/* ============================================================
 * 19. Dark scheme
 * ============================================================ */
html[data-cura-scheme="dark"] {
	--cura-bg:         #1A2B2D;
	--cura-paper:      #21353A;
	--cura-cream-deep: #1E3033;
	--cura-ink:        #FBF6F2;
	--cura-ink-soft:   #D5DCD8;
	--cura-ink-muted:  #9DA8A5;
	--cura-ink-subtle: #6E7975;
	--cura-border:     #2D4448;
	--cura-text-inv:   #1A2B2D;
	--cura-teal:       #FBF6F2;
	--cura-teal-paper: #2D4448;
}
@media (prefers-color-scheme: dark) {
	html[data-cura-scheme="auto"] {
		--cura-bg:         #1A2B2D;
		--cura-paper:      #21353A;
		--cura-cream-deep: #1E3033;
		--cura-ink:        #FBF6F2;
		--cura-ink-soft:   #D5DCD8;
		--cura-ink-muted:  #9DA8A5;
		--cura-border:     #2D4448;
		--cura-text-inv:   #1A2B2D;
		--cura-teal:       #FBF6F2;
		--cura-teal-paper: #2D4448;
	}
}

/* ============================================================
 * 20. Reduced motion + a11y
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; padding: 0;
	overflow: hidden; position: absolute; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--cura-teal); clip: auto !important; clip-path: none;
	color: var(--cura-text-inv); display: block; font-size: 0.875rem; font-weight: 600;
	height: auto; width: auto; padding: 1rem 1.5rem; left: 0.5rem; top: 0.5rem;
	z-index: 100000; border-radius: var(--cura-radius-pill);
}
