/*
Theme Name: Red Savia
Description: Custom theme for redsavia.com — A Living Network for Human Vitality. Built from Brand Standards v1.0 and Homepage Copy v1.0 (see DR-Brain projects/red-savia/design.md).
Author: Bizi Digital
Version: 0.2.0
*/

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; border: none; background: none; cursor: pointer; }

/* ---------- Brand tokens (design.md) ---------- */
:root {
	--stone: #F2EFE8;
	--charcoal: #111111;
	--crimson: #8A0712;
	--oxblood: #4A0A10;
	--white: #FFFFFF;
	--black: #000000;

	--font-serif: 'Cormorant Garamond', Georgia, serif;
	--font-sans: 'Montserrat', -apple-system, sans-serif;

	--max-w: 1240px;
}

body {
	background: var(--stone);
	color: var(--charcoal);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.6;
}

.container {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 32px;
}
.container--narrow { max-width: 720px; text-align: center; }

/* Type scale — Brand Standards v1.0. Cormorant Garamond: Regular/Italic only, never Bold.
   Montserrat: Regular/Medium only, never Bold. */
h1, h2, h3, .rs-title, .rs-heading, .rs-subheading, .rs-quote {
	font-family: var(--font-serif);
	font-weight: 400;
	line-height: 1.2;
	color: var(--charcoal);
}
.rs-title { font-size: clamp(32px, 4.5vw, 60px); }
.rs-heading { font-size: clamp(26px, 3.2vw, 42px); margin-bottom: 20px; }
.rs-subheading { font-size: clamp(19px, 2.2vw, 26px); }
.rs-quote { font-style: italic; font-size: 28px; }
em, .rs-emphasis { font-style: italic; color: var(--crimson); }

.rs-eyebrow {
	display: block;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--crimson);
	margin-bottom: 16px;
}
.rs-body { font-family: var(--font-sans); font-weight: 400; font-size: 16px; line-height: 1.8; margin-bottom: 20px; }
.rs-caption { font-family: var(--font-sans); font-weight: 400; font-size: 12px; letter-spacing: 0.04em; color: rgba(17,17,17,0.55); }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 16px 28px;
	border-radius: 2px;
}
.btn-primary { background: var(--crimson); color: var(--white); }
.btn-outline { background: transparent; color: var(--crimson); border: 1px solid var(--crimson); }
.btn-outline-light { background: transparent; color: var(--white); border: 1px solid rgba(255,255,255,0.4); }
.rs-arrow-link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-sans); font-weight: 500; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--crimson); }

/* ---------- Header ---------- */
.site-header { background: var(--stone); padding: 24px 0; position: sticky; top: 0; z-index: 100; }
.site-header .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.rs-logo { display: flex; align-items: center; gap: 12px; }
.rs-logo img, .rs-logo svg { width: 40px; height: auto; }
.rs-logo--lockup img { width: 260px; height: auto; }
.rs-logo-text { font-family: var(--font-serif); font-size: 22px; letter-spacing: 0.08em; line-height: 1.1; color: var(--crimson); }
.rs-logo-tagline { font-family: var(--font-sans); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--charcoal); opacity: 0.7; }

.primary-nav ul { display: flex; gap: 32px; }
.primary-nav a { font-family: var(--font-sans); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }

.header-right { display: flex; align-items: center; gap: 20px; }
.city-select { font-family: var(--font-sans); font-size: 13px; font-weight: 500; display: flex; align-items: center; gap: 6px; }
.nav-toggle { font-size: 20px; }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; padding: 80px 0 96px; }
.hero .container { position: relative; }
.hero-copy { max-width: 620px; }
.hero-copy .rs-title { margin-bottom: 24px; }
.hero-copy .rs-lede { font-family: var(--font-sans); font-size: 17px; color: rgba(17,17,17,0.75); margin-bottom: 32px; max-width: 460px; }
.hero-actions { display: flex; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; }
.hero-search { display: flex; align-items: center; max-width: 420px; border-bottom: 1px solid rgba(17,17,17,0.25); padding-bottom: 10px; }
.hero-search input { flex: 1; background: none; border: none; font-family: var(--font-sans); font-size: 14px; color: var(--charcoal); }
.hero-search input::placeholder { color: rgba(17,17,17,0.45); }
.hero-search button { color: var(--crimson); font-size: 16px; }
.hero-watermark { position: absolute; right: -60px; top: -20px; width: 460px; opacity: 0.07; pointer-events: none; }

/* ---------- Discovery strip ---------- */
.discovery-strip { border-top: 1px solid rgba(17,17,17,0.1); border-bottom: 1px solid rgba(17,17,17,0.1); padding: 32px 0; }
.discovery-strip .container { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.discovery-strip .rs-eyebrow { margin-bottom: 0; }
.practice-tags { display: flex; gap: 24px; flex-wrap: wrap; flex: 1; }
.practice-tags a { font-family: var(--font-sans); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; }
.discovery-strip .rs-caption { font-style: italic; font-family: var(--font-serif); font-size: 15px; }

/* ---------- Introduction / poetic text sections ---------- */
.introduction, .discovery-moment, .difference, .manifesto, .email-capture { padding: 96px 0; }
.introduction .container, .discovery-moment .container, .difference .container, .manifesto .container, .email-capture .container { margin-left: auto; margin-right: auto; }

/* ---------- Map band ---------- */
.map-band { background: var(--charcoal); color: var(--white); padding: 88px 0; }
.map-band .container { display: grid; grid-template-columns: 1fr 1.3fr auto; gap: 40px; align-items: center; }
.map-band .rs-heading { color: var(--white); }
.map-band .rs-body { color: rgba(255,255,255,0.7); }
.map-visual {
	position: relative;
	aspect-ratio: 4/3;
	background:
		radial-gradient(circle at 50% 50%, rgba(138,7,18,0.1), transparent 70%),
		repeating-linear-gradient(0deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 40px),
		repeating-linear-gradient(90deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 40px);
	border-radius: 4px;
}
.map-pin { position: absolute; width: 22px; height: 22px; }
.map-pin svg { width: 100%; height: 100%; fill: var(--crimson); }

/* ---------- Featured places ---------- */
.featured-places { padding: 96px 0; }
.practices-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; margin-bottom: 40px; }
.place-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.place-card { display: block; }
.place-card-image { aspect-ratio: 4/3; background: linear-gradient(160deg, #ddd6c7, #c9c0aa); border-radius: 2px; margin-bottom: 16px; overflow: hidden; }
.place-card-image img { width: 100%; height: 100%; object-fit: cover; }
.place-card h3 { font-family: var(--font-serif); font-size: 20px; font-weight: 400; margin: 6px 0 8px; }

/* ---------- Miami launch band ---------- */
.miami-launch { background: var(--oxblood); color: var(--white); padding: 96px 0; text-align: center; }
.miami-launch .rs-heading { color: var(--white); }
.miami-launch .rs-body { color: rgba(255,255,255,0.75); }
.miami-launch .rs-eyebrow { color: var(--white); opacity: 0.8; }

/* ---------- Field notes ---------- */
.field-notes { padding: 96px 0; }
.story-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin: 40px 0; }
.story-card { display: block; padding: 28px; border: 1px solid rgba(17,17,17,0.12); border-radius: 2px; }
.story-card .rs-subheading { font-size: 19px; }

/* ---------- Email capture ---------- */
.email-form { display: flex; gap: 12px; max-width: 440px; margin: 0 auto 16px; }
.email-form input { flex: 1; padding: 14px 16px; border: 1px solid rgba(17,17,17,0.2); border-radius: 2px; font-family: var(--font-sans); font-size: 14px; background: var(--white); }

/* ---------- Final CTA ---------- */
.final-cta { background: var(--crimson); color: var(--white); padding: 112px 0; text-align: center; }
.final-cta .rs-heading { color: var(--white); }

/* ---------- Standard content page (page.php: legal, utility) ---------- */
.page-standard { padding: 80px 0 112px; }
.page-standard .container { max-width: 780px; }
.page-standard-head { margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid rgba(17,17,17,0.12); }
.page-standard-head .rs-eyebrow { margin-bottom: 14px; }
.page-prose h2 { font-family: var(--font-serif); font-weight: 400; font-size: 27px; line-height: 1.25; margin: 44px 0 12px; color: var(--charcoal); }
.page-prose h3 { font-family: var(--font-serif); font-weight: 400; font-size: 21px; line-height: 1.3; margin: 30px 0 10px; }
.page-prose p { font-family: var(--font-sans); font-size: 16px; line-height: 1.75; margin-bottom: 18px; color: rgba(17,17,17,0.85); }
.page-prose ul, .page-prose ol { margin: 0 0 20px; padding-left: 22px; }
.page-prose li { font-family: var(--font-sans); font-size: 16px; line-height: 1.7; margin-bottom: 8px; list-style: disc; color: rgba(17,17,17,0.85); }
.page-prose ol li { list-style: decimal; }
.page-prose a { color: var(--crimson); text-decoration: underline; text-underline-offset: 2px; }
.page-prose strong { font-weight: 500; }
.page-prose em { font-style: italic; color: rgba(17,17,17,0.55); }
.page-prose > p:first-child em { font-size: 14px; }

/* ---------- Field Notes index + single ---------- */
.field-notes-index { padding: 0 0 112px; }
.fieldnote-list { max-width: 760px; margin: 0 auto; }
.fieldnote-row { display: block; padding: 32px 0; border-bottom: 1px solid rgba(17,17,17,0.12); }
.fieldnote-row:first-child { border-top: 1px solid rgba(17,17,17,0.12); }
.fieldnote-date { color: rgba(17,17,17,0.5); letter-spacing: 0.1em; text-transform: uppercase; font-size: 11px; }
.fieldnote-title { font-family: var(--font-serif); font-weight: 400; font-size: 28px; line-height: 1.2; margin: 8px 0 10px; color: var(--charcoal); }
.fieldnote-row:hover .fieldnote-title { color: var(--crimson); }
.fieldnote-excerpt { font-family: var(--font-sans); font-size: 15px; line-height: 1.7; color: rgba(17,17,17,0.72); margin-bottom: 12px; }

.fieldnote-breadcrumb { margin-bottom: 20px; }
.fieldnote-breadcrumb a:hover { color: var(--crimson); }
.fieldnote-foot { margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(17,17,17,0.12); }

/* tables inside prose (the price-index piece) */
.page-prose table { width: 100%; border-collapse: collapse; margin: 24px 0 28px; font-family: var(--font-sans); font-size: 14px; }
.page-prose th { text-align: left; font-weight: 500; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(17,17,17,0.55); padding: 0 16px 10px 0; border-bottom: 1px solid rgba(17,17,17,0.2); }
.page-prose td { padding: 11px 16px 11px 0; border-bottom: 1px solid rgba(17,17,17,0.1); color: rgba(17,17,17,0.85); }

/* ---------- Footer ---------- */
.site-footer { background: var(--black); color: rgba(255,255,255,0.75); padding: 72px 0 32px; }
.footer-mark {
	display: block;
	width: 40px;
	height: 40px;
	margin-bottom: 14px;
	background: var(--crimson);
	-webkit-mask: url('assets/img/mark.png') center / contain no-repeat;
	        mask: url('assets/img/mark.png') center / contain no-repeat;
}
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 56px; }
.footer-col-title { display: block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 16px; }
.footer-col ul li { margin-bottom: 10px; }
.footer-col a { font-size: 14px; color: rgba(255,255,255,0.8); }
.footer-legal { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-top: 32px; }
.footer-legal a { font-family: var(--font-sans); font-size: 12px; letter-spacing: 0.04em; color: rgba(255,255,255,0.6); }
.footer-legal a:hover { color: var(--white); }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 24px; margin-top: 20px; border-top: 1px solid rgba(255,255,255,0.1); flex-wrap: wrap; gap: 12px; }
.footer-bottom .rs-caption { color: rgba(255,255,255,0.5); }

/* ---------- Interior page hero (Practices/Cities/Field Notes/About/For Places/Contact) ---------- */
.page-hero { position: relative; overflow: hidden; padding: 120px 0 80px; text-align: center; }
.page-hero .container { position: relative; z-index: 1; }
.page-hero .btn { margin-top: 12px; }
.page-hero-watermark {
	position: absolute;
	top: 50%; left: 50%;
	width: 640px;
	transform: translate(-50%, -50%);
	opacity: 0.05;
	pointer-events: none;
}

/* Reusable full-bleed dark bands, for "this moment matters" emphasis */
.band-charcoal { background: var(--charcoal); color: var(--white); }
.band-oxblood { background: var(--oxblood); color: var(--white); }
.band-charcoal .rs-heading, .band-oxblood .rs-heading { color: var(--white); }
.band-charcoal .rs-body, .band-oxblood .rs-body { color: rgba(255,255,255,0.75); }
.band-charcoal .rs-eyebrow, .band-oxblood .rs-eyebrow { color: var(--white); opacity: 0.75; }

/* ---------- Practices index ---------- */
.practice-list-section { padding: 0 0 112px; }
.practice-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.practice-card-row {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 32px;
	border: 1px solid rgba(17,17,17,0.12);
	border-radius: 2px;
	transition: border-color 0.2s ease;
}
.practice-card-row:hover { border-color: var(--crimson); }
.practice-icon {
	flex-shrink: 0;
	width: 48px; height: 48px;
	border-radius: 50%;
	border: 1px solid var(--crimson);
	color: var(--crimson);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-serif); font-size: 18px;
}
.practice-row-copy { color: rgba(17,17,17,0.7); margin: 6px 0 14px; }

/* ---------- Cities index ---------- */
.city-hero { position: relative; overflow: hidden; padding: 96px 0; text-align: left; }
.city-hero .container { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.city-list-section { padding: 0 0 112px; }
.city-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.city-card { display: block; padding: 40px; border: 1px solid rgba(17,17,17,0.12); border-radius: 2px; }
.city-card--soon { opacity: 0.6; }

/* ---------- Field Notes teaser (no posts yet) ---------- */
.field-notes-teaser { padding: 0 0 112px; }
.story-card--soon { position: relative; opacity: 0.7; cursor: default; overflow: hidden; }
.story-card--soon::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(138,7,18,0.05), transparent 60%); }
.story-card--soon .rs-caption { display: block; margin-top: 10px; color: var(--crimson); }

/* ---------- Mythology reveal (About page) ---------- */
.mythology-reveal { padding: 112px 0; text-align: center; }
.mythology-reveal img { margin: 0 auto 32px; }

/* ---------- Listing profile (single-at_biz_dir.php) ----------
   Editorial dossier: hairline structure, not cards. Space is the luxury signal. */
.listing-hero { position: relative; overflow: hidden; padding: 72px 0 56px; }
.listing-hero .container { position: relative; z-index: 1; max-width: 880px; }
.listing-breadcrumb { margin-bottom: 28px; }
.listing-breadcrumb a:hover { color: var(--crimson); }
.listing-hero .rs-title { margin-bottom: 24px; }

/* Two-column hero: identity left, photo panel right. */
.listing-hero .listing-hero-grid {
	max-width: 1240px;
	display: grid;
	grid-template-columns: 1.3fr 0.82fr;
	gap: 56px;
	align-items: start;
}
.listing-hero-main { min-width: 0; }
.listing-hero-media { min-width: 0; }

/* Real provider photo. */
.listing-photo {
	margin: 0;
	border-radius: 3px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: linear-gradient(120deg, var(--oxblood), var(--crimson));
}
.listing-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Empty state: understated stone plate, not a generic banner. Doubles as a
   claim prompt so the space earns its place. */
.listing-photo--empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	background: var(--white);
	border: 1px solid rgba(17,17,17,0.14);
}
.listing-photo-mark {
	width: 88px;
	height: 88px;
	background: rgba(17,17,17,0.12);
	-webkit-mask: url('assets/img/mark.png') center / contain no-repeat;
	        mask: url('assets/img/mark.png') center / contain no-repeat;
}
.listing-photo-cta {
	font-family: var(--font-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--crimson);
	text-align: center;
	line-height: 1.6;
}
.listing-photo-note {
	font-family: var(--font-sans);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(17,17,17,0.4);
}

/* thumbnail strip under a real photo */
.listing-gallery-strip { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.listing-gallery-strip img { width: 72px; height: 54px; object-fit: cover; border-radius: 2px; }

@media (max-width: 900px) {
	.listing-hero .listing-hero-grid { grid-template-columns: 1fr; gap: 32px; }
	.listing-hero-media { max-width: 440px; }
}
.listing-lede {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: clamp(19px, 2.4vw, 26px);
	line-height: 1.45;
	color: rgba(17,17,17,0.8);
	max-width: 640px;
	margin-bottom: 28px;
}
.listing-meta-row { display: flex; gap: 24px; flex-wrap: wrap; font-size: 14px; color: rgba(17,17,17,0.7); margin-bottom: 32px; }
.listing-rating-star { color: var(--crimson); }
.listing-rating a { border-bottom: 1px solid rgba(17,17,17,0.25); }
.listing-rating a:hover { color: var(--crimson); border-color: var(--crimson); }
.listing-actions { display: flex; gap: 16px; flex-wrap: wrap; }

.listing-quickfacts { border-top: 1px solid rgba(17,17,17,0.12); border-bottom: 1px solid rgba(17,17,17,0.12); padding: 40px 0; }
.quickfact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.quickfact-cell .rs-eyebrow { margin-bottom: 8px; }
.quickfact-cell p { font-size: 14px; line-height: 1.55; color: rgba(17,17,17,0.8); }

.listing-body { padding: 72px 0; }
.listing-columns { display: grid; grid-template-columns: 1.6fr 1fr; gap: 72px; align-items: start; }
.listing-content p { margin-bottom: 20px; }

.listing-prices { margin-top: 48px; }
.listing-prices .rs-subheading { margin-bottom: 20px; }
.price-table { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 12px; }
.price-table td { padding: 12px 0; border-bottom: 1px solid rgba(17,17,17,0.1); vertical-align: top; }
.price-table td:last-child { text-align: right; white-space: nowrap; padding-left: 24px; color: var(--charcoal); }
.listing-offers { margin-top: 28px; }
.listing-offer-label { font-weight: 500; }

.listing-qa { margin-top: 64px; }
.listing-qa .rs-heading { margin-bottom: 24px; }
.qa-item { border-bottom: 1px solid rgba(17,17,17,0.12); }
.qa-item summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 24px;
	padding: 18px 0;
	font-family: var(--font-serif);
	font-size: 19px;
	line-height: 1.35;
}
.qa-item summary::-webkit-details-marker { display: none; }
.qa-item summary::after { content: "+"; color: var(--crimson); font-family: var(--font-sans); font-size: 16px; flex-shrink: 0; }
.qa-item[open] summary::after { content: "\2212"; }
.qa-item[open] summary { color: var(--crimson); }
.qa-item p { font-size: 15px; line-height: 1.7; color: rgba(17,17,17,0.8); padding: 0 0 24px; max-width: 640px; }

.listing-aside { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 24px; }
.listing-details-panel, .listing-provider-notes { border: 1px solid rgba(17,17,17,0.12); border-radius: 2px; padding: 32px; }
.listing-hours { margin-bottom: 24px; }
.hours-row { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; padding: 6px 0; border-bottom: 1px solid rgba(17,17,17,0.06); }
.hours-row dt { color: rgba(17,17,17,0.6); }
.listing-contact li { font-size: 14px; margin-bottom: 10px; }
.listing-contact a:hover { color: var(--crimson); }
.listing-coverage { margin-top: 16px; }
.rs-quote-small { font-family: var(--font-serif); font-style: italic; font-size: 17px; line-height: 1.5; margin: 12px 0 16px; }

.listing-provenance { border-top: 1px solid rgba(17,17,17,0.12); padding: 32px 0 96px; }
.listing-provenance .rs-caption { margin-bottom: 8px; }
.listing-claim-link { color: var(--crimson); }

.listing-nearby { padding: 0 0 112px; }
.listing-nearby .rs-eyebrow { margin-bottom: 24px; }

/* ---------- City hub (/{metro}/) + modality x city (/{metro}/{modality}/) ---------- */
.metro-modalities { padding: 0 0 112px; }
.metro-modalities .rs-eyebrow { margin-bottom: 28px; }
.metro-modality-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.metro-modality-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 28px;
	border: 1px solid rgba(17,17,17,0.12);
	border-radius: 3px;
	transition: border-color 0.2s ease;
}
.metro-modality-card:hover { border-color: var(--crimson); }
.metro-modality-name { display: block; }
.metro-modality-count { color: rgba(17,17,17,0.6); }
.metro-modality-card .rs-arrow-link { margin-top: 6px; }
.modality-listings { padding: 40px 0 112px; }
.modality-card-rating { display: block; margin-top: 4px; }
.modality-card-rating .listing-rating-star { color: var(--crimson); }
@media (max-width: 900px) { .metro-modality-grid { grid-template-columns: 1fr; } }

/* Claimed badge — factual owner-confirmed state, distinct from the future
   Verified seal. Muted/charcoal, never crimson-loud. */
.listing-claimed-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	vertical-align: middle;
	margin-left: 14px;
	font-family: var(--font-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(17,17,17,0.6);
	border: 1px solid rgba(17,17,17,0.2);
	border-radius: 2px;
	padding: 4px 9px;
	position: relative;
	top: -6px;
}
.listing-claimed-badge svg { color: #2E7D4F; }

/* Claim form (template-claim.php) */
.claim-page { text-align: left; padding: 96px 0 112px; }
.claim-page .container--narrow { text-align: left; margin: 0 auto; }
.claim-page .rs-title { margin-bottom: 20px; }
.claim-form { margin-top: 32px; display: flex; flex-direction: column; gap: 20px; }
.claim-form label { display: flex; flex-direction: column; gap: 8px; font-family: var(--font-sans); font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(17,17,17,0.6); }
.claim-form label span { color: var(--crimson); }
.claim-form input, .claim-form textarea {
	font-family: var(--font-sans); font-size: 15px; color: var(--charcoal);
	padding: 13px 15px; border: 1px solid rgba(17,17,17,0.2); border-radius: 2px; background: var(--white);
	text-transform: none; letter-spacing: normal;
}
.claim-form input:focus, .claim-form textarea:focus { outline: none; border-color: var(--crimson); }
.claim-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.claim-form .btn { align-self: flex-start; margin-top: 8px; }
.claim-fineprint { color: rgba(17,17,17,0.5); max-width: 460px; margin-top: 4px; }
.claim-note { font-family: var(--font-sans); font-size: 14px; padding: 12px 16px; border-left: 2px solid var(--crimson); background: rgba(138,7,18,0.05); margin-top: 20px; }
.claim-note--error { color: var(--crimson); }

@media (max-width: 640px) { .claim-form-row { grid-template-columns: 1fr; } }

@media (max-width: 900px) {
	.listing-columns { grid-template-columns: 1fr; gap: 48px; }
	.listing-aside { position: static; }
	.quickfact-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
}

@media (max-width: 900px) {
	.map-band .container { grid-template-columns: 1fr; }
	.place-grid, .story-grid, .city-grid, .practice-card-grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.primary-nav { display: none; }
	.hero-watermark, .page-hero-watermark { display: none; }
}

/* ================================================================
   Directorist archive → Red Savia brand (redsavia.local/listings/,
   category & city pages). Restyles the plugin's stock cards/filters
   into the editorial system from design.md: Warm Stone surface,
   hairline structure not shadowed cards, crimson a rare accent,
   Cormorant Garamond identity / Montserrat functional, no blue.
   ================================================================ */

.directorist-archive-contents,
.directorist-wrapper { background: var(--stone); }

/* header bar: "130 Items Found" + toolbar */
.directorist-listings-header { border-bottom: 1px solid rgba(17,17,17,0.12); padding-bottom: 20px; margin-bottom: 32px; }
.directorist-header-found-title {
	font-family: var(--font-sans) !important;
	font-weight: 500; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
	color: rgba(17,17,17,0.55) !important;
}

/* view toggles (grid/list/map) + sort */
.directorist-viewas__item,
.directorist-sortby-dropdown .directorist-dropdown__toggle {
	border: 1px solid rgba(17,17,17,0.18) !important; border-radius: 2px !important;
	color: var(--charcoal) !important; background: transparent !important;
}
.directorist-viewas__item.active,
.directorist-viewas__item--grid.active {
	background: var(--charcoal) !important; color: var(--white) !important; border-color: var(--charcoal) !important;
}

/* ---- cards ---- */
.directorist-listing-single,
.directorist-listing-card {
	border: 1px solid rgba(17,17,17,0.12) !important;
	border-radius: 3px !important;
	box-shadow: none !important;
	background: var(--white) !important;
	overflow: hidden;
	transition: border-color 0.2s ease;
}
.directorist-listing-single:hover,
.directorist-listing-card:hover { border-color: var(--crimson) !important; box-shadow: none !important; }
.directorist-listing-single--bg { background: var(--white) !important; }

/* thumbnail (branded cover) */
.directorist-listing-single__thumb,
.directorist-thumnail-card { border-radius: 0 !important; }
.directorist-listing-single__thumb img,
.directorist-thumnail-card-front-img { border-radius: 0 !important; }

/* kill the stock noise: bright-blue NEW badge, favourite heart, posted date,
   view count — none of it is on-brand or meaningful on a fresh directory */
.directorist-badge-new,
.directorist-badge--new,
.directorist-mark-as-favorite__btn,
.directorist-favorite-icon,
.directorist-listing-card-posted-on,
.directorist-listing-single__info .directorist-view-count,
.directorist-view-count { display: none !important; }

/* title → serif identity moment */
.directorist-listing-title,
.directorist-listing-title a {
	font-family: var(--font-serif) !important;
	font-weight: 400 !important;
	font-size: 21px !important;
	line-height: 1.25 !important;
	color: var(--charcoal) !important;
}
.directorist-listing-title a:hover { color: var(--crimson) !important; }

/* category label → crimson eyebrow */
.directorist-listing-category,
.directorist-listing-category a {
	font-family: var(--font-sans) !important;
	font-weight: 500 !important; font-size: 11px !important; letter-spacing: 0.12em !important;
	text-transform: uppercase !important; color: var(--crimson) !important;
}

/* meta rows (address, phone) */
.directorist-listing-card-address,
.directorist-listing-card-phone,
.directorist-info-item {
	font-family: var(--font-sans) !important; font-size: 13px !important;
	color: rgba(17,17,17,0.7) !important;
}
.directorist-info-item svg, .directorist-info-item i { color: var(--crimson) !important; }

/* ---- filters sidebar ---- */
.listing-with-sidebar__searchform,
.directorist-search-form { background: var(--white) !important; border: 1px solid rgba(17,17,17,0.12); border-radius: 3px; padding: 28px !important; }
.directorist-search-field__label,
.directorist-advanced-filter__title {
	font-family: var(--font-sans) !important; font-weight: 500 !important;
	font-size: 12px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important;
	color: rgba(17,17,17,0.55) !important;
}
.directorist-search-field__input,
.directorist-select,
.directorist-form-element { border-radius: 2px !important; border-color: rgba(17,17,17,0.2) !important; font-family: var(--font-sans) !important; }

/* pricing pills $ $$ $$$ */
.directorist-price-ranges__item {
	border: 1px solid rgba(17,17,17,0.2) !important; border-radius: 2px !important;
	background: transparent !important; color: var(--charcoal) !important;
}
.directorist-price-ranges__item.active,
.directorist-price-ranges__item:hover { background: var(--crimson) !important; color: var(--white) !important; border-color: var(--crimson) !important; }

/* checkboxes (tags) */
.directorist-checkbox__label { font-family: var(--font-sans) !important; font-size: 14px !important; color: var(--charcoal) !important; }
.directorist-checkbox input:checked + .directorist-checkbox__label::before,
.directorist-checkbox-primary:checked { accent-color: var(--crimson) !important; }

/* buttons */
.directorist-btn {
	font-family: var(--font-sans) !important; font-weight: 500 !important;
	letter-spacing: 0.06em !important; text-transform: uppercase !important; font-size: 12px !important;
	border-radius: 2px !important;
}
.directorist-btn:not(.directorist-btn-reset-js):not(.directorist-btn-reset-ajax) {
	background: var(--crimson) !important; color: var(--white) !important; border-color: var(--crimson) !important;
}

/* pagination */
.directorist-pagination a,
.directorist-pagination span {
	font-family: var(--font-sans) !important; border-radius: 2px !important;
	color: var(--charcoal) !important;
}
.directorist-pagination .current { background: var(--charcoal) !important; color: var(--white) !important; }
