/*
Theme Name: Crimson Waters
Theme URI: https://crimsonwatersbh.com
Author: Clearpath
Description: A mobile-first custom block theme for Crimson Waters Behavioral Health — evidence-based drug, alcohol, and mental health treatment in Lake Worth, Florida. Modern "clean health-tech" direction with a calming teal/ocean palette (white canvas, soft aqua + gray section bands, bold sans type, large rounded cards). Full Site Editing, fluid typography.
Version: 0.9.8
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: crimson-waters
*/

/* ===========================================================================
   CRIMSON WATERS — CLEAN HEALTH-TECH (calming teal/ocean palette)
   White canvas · soft aqua + gray section bands · deep-teal hero · bold sans type ·
   large rounded cards · pill/soft-rounded UI · airy spacing.
   theme.json owns tokens; this file owns the finish, motion & composition.
   ======================================================================== */

/* ---- Extended subsets (latin-ext) -------------------------------------- */
@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url("assets/fonts/plus-jakarta-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Sora";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("assets/fonts/sora-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- Design tokens ------------------------------------------------------ */
:root {
	--cw-crimson: var(--wp--preset--color--primary);
	--cw-crimson-bright: var(--wp--preset--color--primary-bright);
	--cw-crimson-dark: var(--wp--preset--color--primary-dark);
	--cw-ink: var(--wp--preset--color--contrast);
	--cw-paper: var(--wp--preset--color--base);
	--cw-line: var(--wp--preset--color--border);
	--cw-muted: var(--wp--preset--color--muted);
	--cw-blush: var(--wp--preset--color--surface-alt);
	--cw-tint: #f0e4c4;   /* soft gold tint for eyebrow pills / number chips / check badges (was pink blush) */
	--cw-gray: var(--wp--preset--color--panel);
	--cw-radius-sm: 10px;
	--cw-radius: 14px;
	--cw-radius-lg: 20px;
	--cw-radius-xl: 28px;
	--cw-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--cw-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
	--cw-shadow-sm: 0 1px 2px rgba(22,24,29,0.04), 0 4px 16px -8px rgba(22,24,29,0.12);
	--cw-shadow: 0 8px 24px -10px rgba(22,24,29,0.14), 0 24px 60px -32px rgba(22,24,29,0.22);
	--cw-shadow-crimson: 0 10px 24px -10px rgba(142,30,44,0.38);
	--cw-maxw: 1200px;
}

/* ---- Base rendering ----------------------------------------------------- */
html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "cv11", "ss01";
	background-color: var(--cw-paper);
	/* Faint gold lotus watermark on the transparent canvas areas. Opaque bands
	   (hero/panel/water/cta/footer) re-paint the SAME fixed image over their own
	   color (see "LOTUS WATERMARK ON EVERY BAND" below) so the texture is
	   continuous across all backgrounds; content cards stay clean for legibility. */
	background-image: url("assets/images/pattern-lotus.png?v=4");
	background-repeat: repeat;
	background-position: center center;
	background-attachment: fixed;   /* viewport-anchored so the texture reads as one stable, centered field instead of re-phasing per section */
	color: var(--cw-ink);
}
h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title { text-wrap: balance; }
p { text-wrap: pretty; }

::selection { background: var(--cw-crimson); color: #fff; }
:where(h1, h2, h3, [id]) { scroll-margin-top: 7rem; }

/* Crimson emphasis inside headings (sans, brand color) */
.wp-block-heading em, .wp-block-post-title em, h1 em, h2 em {
	font-style: normal; color: var(--cw-crimson);
}

/* ---- Focus ring --------------------------------------------------------- */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, .wp-block-button__link:focus-visible {
	outline: 2px solid var(--cw-crimson);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ---- Skip link ---------------------------------------------------------- */
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	background: var(--cw-crimson); color: #fff;
	padding: 0.75rem 1.25rem; font-weight: 600;
}
.skip-link:focus { left: 0; }

/* =========================================================================
   HEADER — clean white sticky bar, hairline + shadow on scroll
   ========================================================================= */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky; top: 0; z-index: 1000;
	border-bottom: 1px solid rgba(230,232,238,0.7);
	transition: box-shadow 0.4s var(--cw-ease), border-color 0.4s var(--cw-ease);
}
/* Glass backdrop lives on a pseudo-element, NOT the header itself. A
   backdrop-filter on the header would become the containing block for the
   mobile menu's position:fixed overlay and trap it inside the ~68px bar. */
.wp-site-blocks > header.wp-block-template-part::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(255,255,255,0.85);
	backdrop-filter: saturate(140%) blur(12px);
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	transition: background-color 0.4s var(--cw-ease);
}
body.cw-scrolled .wp-site-blocks > header.wp-block-template-part {
	border-bottom-color: var(--cw-line);
	box-shadow: 0 8px 30px -18px rgba(22,24,29,0.4);
}
body.cw-scrolled .wp-site-blocks > header.wp-block-template-part::before {
	background: rgba(255,255,255,0.95);
}
header.wp-block-template-part .wp-block-site-logo img { max-height: 60px; width: auto; transition: max-height 0.3s var(--cw-ease); }
header.wp-block-template-part .wp-block-site-title a { color: var(--cw-ink); text-decoration: none; }

/* Nav links: ink, crimson on hover, soft underline */
header.wp-block-template-part .wp-block-navigation a:where(:not(.wp-block-button__link)) {
	text-decoration: none; color: var(--cw-ink);
	position: relative; padding-bottom: 3px;
	font-size: 0.95rem; letter-spacing: 0; font-weight: 500;
	transition: color 0.2s var(--cw-ease-soft);
}
header.wp-block-template-part .wp-block-navigation a:where(:not(.wp-block-button__link))::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
	background: var(--cw-crimson); transform: scaleX(0); transform-origin: left;
	transition: transform 0.3s var(--cw-ease);
}
header.wp-block-template-part .wp-block-navigation a:where(:not(.wp-block-button__link)):hover { color: var(--cw-crimson); }
header.wp-block-template-part .wp-block-navigation a:where(:not(.wp-block-button__link)):hover::after { transform: scaleX(1); }
.wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; }
.wp-block-navigation__responsive-container.is-menu-open a:where(:not(.wp-block-button__link)) { color: var(--cw-ink); }
/* Mobile overlay menu: left-align (the desktop nav is right-justified, which
   would otherwise right-align + awkwardly wrap items here), roomy spacing, and
   an indented/muted Services submenu so the hierarchy reads. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; width: 100%; padding: 1.5rem 1.75rem 2.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start !important; justify-content: flex-start !important; text-align: left !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.35rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; text-align: left !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { text-align: left !important; justify-content: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { font-size: 1.15rem; font-weight: 600; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 1rem; border-left: 2px solid var(--cw-line); margin: 0.2rem 0 0.5rem 0.1rem; gap: 0.1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 0.98rem; font-weight: 500; color: var(--cw-muted); }

/* Services dropdown (submenu) — white rounded card on desktop hover/focus.
   Scoped to the static (non-overlay) nav so it doesn't restyle the mobile
   overlay's submenu, which core renders as an inline indented list. */
header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background: #fff; border: 1px solid var(--cw-line);
	border-radius: var(--cw-radius); box-shadow: var(--cw-shadow);
	padding: 0.4rem; min-width: 290px;
}
header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.5rem 0.8rem; border-radius: var(--cw-radius-sm);
	font-size: 0.9rem; font-weight: 500; color: var(--cw-ink);
	transition: background-color 0.18s var(--cw-ease-soft), color 0.18s var(--cw-ease-soft);
}
header.wp-block-template-part .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--cw-tint); color: var(--cw-crimson);
}
/* submenu links don't use the top-level animated underline bar */
header.wp-block-template-part .wp-block-navigation__submenu-container a::after { display: none !important; }

/* Mobile header (≤599.98px — exactly where the nav collapses to the overlay
   hamburger). Previously the toggle was stranded mid-bar: logo … ☰ … [Call].
   Reorder so the persistent Call button comes first and the hamburger pins to
   the far-right edge (the conventional spot), and give the toggle a ≥44px tap
   target. Desktop (nav links → CTA buttons) is untouched — these rules only
   apply once the hamburger is present. */
@media (max-width: 599.98px) {
	header.wp-block-template-part .cw-header-cta { order: 1; }
	header.wp-block-template-part .wp-block-navigation { order: 2; }
	header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		min-width: 44px; min-height: 44px; padding: 10px;
		display: inline-flex; align-items: center; justify-content: center;
	}
}

/* =========================================================================
   BUTTONS
   ========================================================================= */
.wp-block-button__link {
	transition: transform 0.2s var(--cw-ease), box-shadow 0.25s var(--cw-ease), background-color 0.2s var(--cw-ease-soft), color 0.2s var(--cw-ease-soft), border-color 0.2s var(--cw-ease-soft);
	box-shadow: var(--cw-shadow-crimson);
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(142,30,44,0.5); }
.wp-block-button__link:active { transform: translateY(0); }
/* Outline / secondary — soft gray fill, no crimson */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: #fff; border: 1.5px solid var(--cw-line);
	color: var(--cw-ink); box-shadow: var(--cw-shadow-sm);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: #fff; border-color: var(--cw-crimson);
	color: var(--cw-crimson); transform: translateY(-2px);
}
/* On dark/crimson covers */
.is-dark .wp-block-button.is-style-outline > .wp-block-button__link,
.cw-on-dark .wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; border-color: rgba(255,255,255,0.6); color: #fff;
}
.is-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.cw-on-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: #fff; border-color: #fff; color: var(--cw-crimson-dark);
}

/* =========================================================================
   EDITORIAL PRIMITIVES — eyebrow pill, number chips, rule
   ========================================================================= */
.cw-eyebrow, .cw-overline {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.78rem !important; font-weight: 700;
	letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--cw-crimson); background: var(--cw-tint);
	padding: 0.4rem 0.85rem; border-radius: 999px; margin-bottom: 1.15rem;
}
.is-dark .cw-eyebrow, .is-dark .cw-overline, .cw-on-dark .cw-eyebrow, .cw-on-dark .cw-overline {
	color: #fff; background: rgba(255,255,255,0.16);
}

/* Number chip (e.g. "01") — small rounded blush badge */
.cw-num {
	display: flex; align-items: center; justify-content: center;
	font-family: var(--wp--preset--font-family--sans) !important;
	width: 2.6rem; height: 2.6rem; border-radius: 14px;
	background: var(--cw-tint); color: var(--cw-crimson);
	font-weight: 800; font-size: 1.05rem !important; line-height: 1;
	/* keep it pinned left even inside WP constrained-layout cards (which add margin:auto) */
	margin: 0 auto 1rem 0 !important;
}

.cw-rule { border: 0; height: 3px; width: 3rem; background: var(--cw-crimson); margin: 1.4rem 0; border-radius: 3px; }
.cw-rule.has-text-align-center { margin-inline: auto; }

/* =========================================================================
   HERO — split: text + lead-capture form card
   ========================================================================= */
/* Light cream hero (matches the brand image) — ink text + a clean white lead card. */
.cw-hero { position: relative; overflow: hidden; background: url("assets/images/pattern-lotus.png?v=4") center center / auto repeat fixed, linear-gradient(160deg, #fdf9f0 0%, #f6eedd 55%, #f1e7d2 100%); }
.cw-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		radial-gradient(60% 72% at 6% -12%, rgba(193,160,90,0.12) 0%, rgba(193,160,90,0) 60%),
		radial-gradient(55% 65% at 104% 112%, rgba(142,30,44,0.05) 0%, rgba(241,231,210,0) 62%);
}
.cw-hero > * { position: relative; z-index: 1; }
.cw-hero h1 { font-size: clamp(2.6rem, 5.6vw, 4.4rem); color: var(--cw-ink); }
.cw-hero h1 em { color: var(--cw-crimson); }
.cw-hero .cw-lede { max-width: 44ch; color: var(--cw-muted); }
.cw-hero .wp-block-column { align-self: center; }

/* Lead-capture form card — solid white on the light hero */
.cw-hero-form {
	background: #fff;
	border: 1px solid var(--cw-line);
	border-radius: var(--cw-radius-xl);
	box-shadow: var(--cw-shadow);
	padding: clamp(1.5rem, 3vw, 2.4rem); position: relative;
}
.cw-form-kicker {
	display: inline-block; font-size: 0.72rem !important; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--cw-crimson); background: var(--cw-tint);
	padding: 0.35rem 0.8rem; border-radius: 999px; margin: 0 0 0.9rem;
}
.cw-hero-form h2 { margin: 0 0 0.4rem; font-size: 1.7rem; }
.cw-form-sub { font-size: 0.98rem; color: var(--cw-muted); margin: 0 0 1.4rem; }
.cw-form-foot {
	font-size: 0.88rem; color: var(--cw-muted); margin: 1.1rem 0 0;
	padding-top: 1rem; border-top: 1px solid var(--cw-line); text-align: center;
}
.cw-form-foot a { font-weight: 700; }
.cw-hero-form .wpcf7-form p { margin: 0 0 0.85rem; }
.cw-hero-form .wpcf7-form label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--cw-ink); margin: 0; }
.cw-hero-form .wpcf7-form label input { margin-top: 0.3rem; }
.cw-hero-form .wpcf7-form .wpcf7-acceptance label { font-size: 0.8rem; font-weight: 400; color: var(--cw-muted); display: inline; margin: 0; }
.cw-hero-form .wpcf7-form .wpcf7-acceptance label input { margin-top: 0; }
.cw-hero-form .wpcf7-form .wpcf7-acceptance { margin-top: 0.2rem; }
.cw-hero-form .wpcf7-form input[type="checkbox"] { margin-right: 0.4rem; }
.cw-hero-form .wpcf7-form input[type="submit"] { width: 100%; margin-top: 0.4rem; }

/* Hero trust row — crimson check chips */
.cw-trust { border-top: 1px solid var(--cw-line); margin-top: var(--wp--preset--spacing--40); padding-top: var(--wp--preset--spacing--30); }
.cw-trust p {
	font-size: 0.8rem; font-weight: 600; color: var(--cw-ink);
	margin: 0; display: inline-flex; align-items: center; gap: 0.5rem;
}
.cw-trust p::before {
	content: "✓"; flex: 0 0 auto; width: 1.2rem; height: 1.2rem;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--cw-tint); color: var(--cw-crimson); border-radius: 50%;
	font-size: 0.68rem; font-weight: 800;
}

/* =========================================================================
   SECTIONS & LAYOUT
   ========================================================================= */
.cw-section { position: relative; }
.cw-canvas { background: transparent; }   /* let the body lotus watermark show through */
.cw-panel  { background: var(--cw-gray); }    /* soft gray band */
.cw-water  { background: var(--wp--preset--color--surface-alt); }   /* white band (was blush) */
.cw-measure { max-width: 54ch; }
.cw-lede { font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.55; color: var(--cw-ink); font-weight: 400; }

.wp-block-cover .wp-block-heading, .wp-block-cover p { text-shadow: 0 2px 24px rgba(0,0,0,0.28); }

/* Light CTA band (warm sand via .cw-panel) — ink heading + a faint gold glow */
.cw-cta { position: relative; overflow: hidden; }
.cw-cta::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: radial-gradient(70% 130% at 92% -10%, rgba(193,160,90,0.18) 0%, rgba(193,160,90,0) 55%);
}
.cw-cta > * { position: relative; z-index: 1; }
.cw-cta .wp-block-heading, .cw-cta p { text-shadow: none; }

/* =========================================================================
   CARDS — white, large radius, soft shadow, hover lift
   ========================================================================= */
.cw-card {
	position: relative; height: 100%;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--cw-line); border-radius: var(--cw-radius-lg);
	overflow: hidden; box-shadow: var(--cw-shadow-sm);
	transition: transform 0.35s var(--cw-ease), border-color 0.35s var(--cw-ease), box-shadow 0.35s var(--cw-ease);
}
.cw-card:hover { transform: translateY(-6px); border-color: rgba(142,30,44,0.28); box-shadow: var(--cw-shadow); }
.cw-card img { display: block; width: 100%; }
.cw-card figure.wp-block-image { margin: 0; overflow: hidden; }
.cw-card figure.wp-block-image img { transition: transform 0.7s var(--cw-ease); aspect-ratio: 16 / 10; object-fit: cover; }
.cw-card:hover figure.wp-block-image img { transform: scale(1.04); }
.cw-card h3 { margin-bottom: 0.5rem; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.cw-card h3 a { color: var(--cw-ink); text-decoration: none; transition: color 0.2s var(--cw-ease-soft); }
.cw-card:hover h3 a { color: var(--cw-crimson); }
.cw-card .cw-num { width: 2.3rem; height: 2.3rem; font-size: 0.95rem !important; margin-bottom: 0.85rem; }
.cw-timeline h3 { overflow-wrap: normal; word-break: normal; hyphens: auto; }
.cw-card a[href]:not(.wp-block-button__link):not(h3 a) {
	font-weight: 700; color: var(--cw-crimson); display: inline-flex; align-items: center; gap: 0.4rem;
	letter-spacing: 0; font-size: 0.92rem; text-decoration: none;
	transition: gap 0.25s var(--cw-ease), color 0.2s var(--cw-ease-soft);
}
.cw-card a[href]:not(.wp-block-button__link):hover { gap: 0.7rem; color: var(--cw-crimson-dark); }
.cw-equal .wp-block-column { display: flex; }
.cw-equal .wp-block-column > * { width: 100%; }

.cw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--wp--preset--spacing--40); }
.cw-grid > * { margin: 0 !important; }
.cw-grid .cw-card { display: flex; flex-direction: column; }
/* The card is a flex column AND has WP's constrained layout, which adds margin:auto to
   children — that centers short headings/numbers. Pin every child to the left edge. */
.cw-grid .cw-card > * { margin-left: 0 !important; margin-right: 0 !important; }

/* =========================================================================
   VALUE PROPS — number/title cards on a soft border
   ========================================================================= */
.cw-valueprop { position: relative; padding-top: 1.5rem; border-top: 2px solid var(--cw-line); }
.cw-valueprop::before { content: ""; position: absolute; top: -2px; left: 0; width: 3rem; height: 2px; background: var(--cw-crimson); }
.cw-valueprop h3 { color: var(--cw-ink); }

/* =========================================================================
   JOURNEY — vertical timeline with filled crimson numbered badges
   ========================================================================= */
.cw-timeline { position: relative; counter-reset: cwstep; }
.cw-timeline .cw-step { position: relative; padding-left: 4.25rem; padding-bottom: var(--wp--preset--spacing--40); }
.cw-timeline .cw-step:last-child { padding-bottom: 0; }
.cw-timeline .cw-step::before {
	counter-increment: cwstep; content: counter(cwstep);
	position: absolute; left: 0; top: 0;
	width: 2.75rem; height: 2.75rem; border-radius: 14px;
	display: flex; align-items: center; justify-content: center;
	background: var(--cw-crimson); color: #fff;
	font-weight: 800; font-size: 1.05rem;
}
.cw-timeline .cw-step::after {
	content: ""; position: absolute; left: 1.32rem; top: 3.1rem; bottom: 0.3rem; width: 2px;
	background: linear-gradient(180deg, rgba(142,30,44,0.30) 0%, rgba(142,30,44,0) 100%);
}
.cw-timeline .cw-step:last-child::after { display: none; }
.cw-timeline h3 { color: var(--cw-ink); margin-bottom: 0.3rem; }

/* =========================================================================
   GALLERY (facility)
   ========================================================================= */
.wp-block-gallery.cw-rounded .wp-block-image { overflow: hidden; border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm); }
.wp-block-gallery.cw-rounded .wp-block-image img { transition: transform 0.7s var(--cw-ease); width: 100%; }
.wp-block-gallery.cw-rounded .wp-block-image:hover img { transform: scale(1.05); }

/* =========================================================================
   ACCREDITATION
   ========================================================================= */

/* Credentials grid — substantiated trust signals as small white cards */
/* 3-up grid → 6 credentials fill two even rows (no ragged trailing gaps).
   minmax min of 340px forces 3 columns at the 1200 content width, 2 on tablet, 1 on phone. */
.cw-creds { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--wp--preset--spacing--30); }
.cw-creds > * { margin: 0 !important; }
.cw-cred {
	background: #fff; border: 1px solid var(--cw-line); border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow-sm); padding: 1.15rem 1.25rem;
	/* no explicit height — grid's default align-items:stretch equalizes each row */
}
.cw-cred strong {
	display: flex; align-items: center; gap: 0.55rem;
	font-size: 1rem; font-weight: 700; color: var(--cw-ink); margin-bottom: 0.35rem;
}
.cw-cred strong::before {
	content: "✓"; flex: 0 0 auto; width: 1.35rem; height: 1.35rem;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--cw-crimson); color: #fff; border-radius: 50%;
	font-size: 0.72rem; font-weight: 800;
}
.cw-cred span { display: block; font-size: 0.88rem; color: var(--cw-muted); line-height: 1.5; }
.cw-creds-foot { border-top: 1px solid var(--cw-line); padding-top: var(--wp--preset--spacing--40); }

/* =========================================================================
   FEATURED / FULL-BLEED IMAGE
   ========================================================================= */
.cw-figure { position: relative; border-radius: var(--cw-radius-lg); overflow: hidden; box-shadow: var(--cw-shadow); }
.cw-figure img { border-radius: var(--cw-radius-lg); display: block; width: 100%; }
.wp-block-post-featured-image { position: relative; border-radius: var(--cw-radius-lg); overflow: hidden; isolation: isolate; }
.wp-block-post-featured-image img { border-radius: var(--cw-radius-lg); }
/* Page heroes are cropped to a 16:9 banner (template); bias the crop toward the
   top so faces in portrait/square source photos stay in frame. */
.wp-block-post-featured-image img { object-position: center 28%; }

/* =========================================================================
   BRAND PHOTO TREATMENT — subtle crimson duotone wash for cohesion
   A low-opacity crimson multiply veil + a touch of desaturation unifies mixed
   stock photography into one art-directed set. The veil eases back on hover so
   interactive images regain full color (pairs with the card/gallery zoom).
   ========================================================================= */
.cw-card figure.wp-block-image,
.wp-block-gallery.cw-rounded .wp-block-image {
	position: relative; isolation: isolate;
}
.cw-card figure.wp-block-image img,
.wp-block-gallery.cw-rounded .wp-block-image img,
.cw-figure img,
.wp-block-post-featured-image img {
	filter: saturate(0.94) contrast(1.02);
}
.cw-card figure.wp-block-image::after,
.wp-block-gallery.cw-rounded .wp-block-image::after,
.cw-figure::after,
.wp-block-post-featured-image::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	border-radius: inherit;
	background: linear-gradient(150deg, rgba(58,42,34,0.12) 0%, rgba(34,24,19,0.20) 100%);
	mix-blend-mode: multiply;
	transition: opacity 0.6s var(--cw-ease);
}
.cw-card:hover figure.wp-block-image::after,
.wp-block-gallery.cw-rounded .wp-block-image:hover::after,
.cw-figure:hover::after { opacity: 0.25; }

/* =========================================================================
   PROSE (inner pages / posts)
   ========================================================================= */
.wp-block-post-content > h2 { margin-top: var(--wp--preset--spacing--50); }
.wp-block-post-content > h3 { margin-top: var(--wp--preset--spacing--40); }
.wp-block-post-content { color: var(--cw-ink); }
/* Inner pages: title + prose form one centered reading column (contentSize),
   so copy isn't pinned to the far-left with an empty right gutter. Full-bleed
   pattern sections (.alignfull) and .alignwide media still span wider — the
   constrained layout already allows that. */
.wp-block-post-content.alignfull > :where(:not(.alignfull):not(.alignwide):not(.wp-block-buttons)) {
	max-width: var(--wp--style--global--content-size);
	margin-left: auto;
	margin-right: auto;
}
/* Full-width template (pages built from full-bleed patterns, e.g. Services):
   the wide title + prose intro align to the 1200 track's left edge so they line
   up with the pattern sections below, instead of sitting indented/centered. */
.cw-fullwidth-page .wp-block-post-content.alignfull > :where(:not(.alignfull):not(.alignwide):not(.wp-block-buttons)) {
	max-width: min(70ch, var(--wp--style--global--wide-size));
	margin-left: 0;
	margin-right: auto;
}
.wp-block-post-title { font-size: clamp(2.4rem, 5vw, 3.6rem); }
.wp-block-quote cite { font-style: normal; font-family: var(--wp--preset--font-family--sans); font-weight: 600; color: var(--cw-crimson); }

/* Definition list (Legal Notice key/value details) */
.cw-deflist { margin: var(--wp--preset--spacing--30) 0 0; display: grid; gap: 0; }
.cw-deflist > div {
	display: grid; grid-template-columns: minmax(180px, 34%) 1fr; gap: 1rem;
	padding: 0.85rem 0; border-top: 1px solid var(--cw-line);
}
.cw-deflist > div:last-child { border-bottom: 1px solid var(--cw-line); }
.cw-deflist dt { font-weight: 700; color: var(--cw-ink); margin: 0; }
.cw-deflist dd { margin: 0; color: var(--cw-muted); }
@media (max-width: 600px) { .cw-deflist > div { grid-template-columns: 1fr; gap: 0.15rem; } }

/* =========================================================================
   FORMS (CF7) — light, rounded
   ========================================================================= */
.wpcf7-form p { margin: 0 0 1.1rem; }
.wpcf7-form label { display: block; font-weight: 600; margin-bottom: 0.4rem; color: var(--cw-ink); }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"], .wpcf7-form textarea {
	width: 100%; box-sizing: border-box; padding: 0.9rem 1.05rem;
	border: 1px solid var(--cw-line); border-radius: var(--cw-radius);
	font-size: 1rem; font-family: inherit; background: #fff; color: var(--cw-ink);
	transition: border-color 0.2s var(--cw-ease-soft), box-shadow 0.2s var(--cw-ease-soft);
}
.wpcf7-form ::placeholder { color: #9aa2ae; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus {
	outline: none; border-color: var(--cw-crimson); box-shadow: 0 0 0 3px rgba(142,30,44,0.12);
}
.wpcf7-form textarea { min-height: 150px; }
.wpcf7-form input[type="submit"] {
	background: var(--cw-crimson); color: #fff; border: 0; border-radius: 999px;
	padding: 1rem 2.1rem; font-weight: 600; font-size: 0.98rem; cursor: pointer;
	box-shadow: var(--cw-shadow-crimson);
	transition: transform 0.2s var(--cw-ease), background-color 0.2s var(--cw-ease-soft);
}
.wpcf7-form input[type="submit"]:hover { background: var(--cw-crimson-dark); transform: translateY(-2px); }

/* =========================================================================
   FOOTER — light (white) with a top hairline, ink text, crimson link hover
   ========================================================================= */
footer.wp-block-template-part { background-color: var(--wp--preset--color--surface-alt) !important; color: var(--cw-muted); border-top: 1px solid var(--cw-line); }
footer.wp-block-template-part h3 { color: var(--cw-ink); }
footer.wp-block-template-part h4 { font-family: var(--wp--preset--font-family--sans); font-size: 0.76rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cw-muted); }
footer.wp-block-template-part p { color: var(--cw-muted); }
footer.wp-block-template-part a { text-decoration: none; color: var(--cw-ink); transition: color 0.2s var(--cw-ease-soft); }
footer.wp-block-template-part a:hover { color: var(--cw-crimson); }
footer .wp-block-social-link { transition: transform 0.25s var(--cw-ease); }
footer .wp-block-social-link:hover { transform: translateY(-3px); }

/* Social icons (footer + in-page, e.g. Contact) — monochrome ink to match the
   palette instead of default brand colors (IG pink / FB blue); crimson on hover. */
.wp-block-social-links.is-style-logos-only .wp-block-social-link { color: var(--cw-muted); transition: color 0.2s var(--cw-ease-soft), transform 0.25s var(--cw-ease); }
.wp-block-social-links.is-style-logos-only .wp-block-social-link a { color: inherit; }
.wp-block-social-links.is-style-logos-only .wp-block-social-link svg { fill: currentColor; }
.wp-block-social-links.is-style-logos-only .wp-block-social-link:hover { color: var(--cw-crimson); transform: translateY(-2px); }
footer .wp-block-separator { border-color: var(--cw-line); color: var(--cw-line); }

/* =========================================================================
   SERVICE-PAGE BLOCKS — "What to expect" check chips + related cards
   Brings the homepage component vocabulary down into the inner service pages.
   ========================================================================= */
.cw-checks {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: var(--wp--preset--spacing--30); margin: var(--wp--preset--spacing--30) 0 0;
}
.cw-checks > * { margin: 0 !important; }
.cw-check {
	display: flex; align-items: flex-start; gap: 0.7rem;
	background: #fff; border: 1px solid var(--cw-line); border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow-sm); padding: 0.95rem 1.1rem;
	font-size: 0.95rem; color: var(--cw-ink); line-height: 1.45;
}
.cw-check::before {
	content: "✓"; flex: 0 0 auto; width: 1.45rem; height: 1.45rem; margin-top: 0.05rem;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--cw-crimson); color: #fff; border-radius: 50%;
	font-size: 0.74rem; font-weight: 800;
}
/* Related-service cards — compact, image-free card using the home card finish */
.cw-related {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: var(--wp--preset--spacing--30); margin: var(--wp--preset--spacing--30) 0 0;
}
.cw-related > * { margin: 0 !important; }
.cw-related .cw-relcard {
	display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
	background: var(--wp--preset--color--surface); border: 1px solid var(--cw-line);
	border-radius: var(--cw-radius-lg); box-shadow: var(--cw-shadow-sm);
	padding: 1.15rem 1.3rem; font-weight: 700; color: var(--cw-ink);
	text-decoration: none; line-height: 1.3;
	transition: transform 0.3s var(--cw-ease), border-color 0.3s var(--cw-ease), box-shadow 0.3s var(--cw-ease), color 0.2s var(--cw-ease-soft);
}
.cw-related .cw-relcard::after {
	content: "→"; flex: 0 0 auto; color: var(--cw-crimson);
	transition: transform 0.25s var(--cw-ease);
}
.cw-related .cw-relcard:hover {
	transform: translateY(-4px); border-color: rgba(142,30,44,0.28);
	box-shadow: var(--cw-shadow); color: var(--cw-crimson);
}
.cw-related .cw-relcard:hover::after { transform: translateX(4px); }

/* =========================================================================
   SERVICE DETAIL PAGES (v0.9 redesign)
   Integrated teal hero (split text + photo) · at-a-glance facts strip that
   overlaps the hero · two-column body with a sticky CTA card · care-continuum
   stepper · related services. Built as full-bleed <section>s in post_content,
   each centering its own content via .cw-wrap.
   ========================================================================= */
.cw-service-page { margin-top: 0 !important; }
.cw-service-page > .wp-block-post-content { margin-top: 0; }
.cw-wrap { max-width: var(--cw-maxw); margin-inline: auto; padding-inline: var(--wp--preset--spacing--30); }

/* ---- Hero: split text + image on a light cream band -------------------- */
.cw-svc-hero {
	position: relative; overflow: hidden;
	background: url("assets/images/pattern-lotus.png?v=4") center center / auto repeat fixed, linear-gradient(160deg, #fdf9f0 0%, #f6eedd 55%, #f1e7d2 100%);
	padding-block: clamp(2.25rem, 5vw, 4rem) clamp(4rem, 8vw, 6.5rem);
}
.cw-svc-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		radial-gradient(55% 70% at 6% -12%, rgba(193,160,90,0.12) 0%, rgba(193,160,90,0) 60%),
		radial-gradient(50% 60% at 104% 112%, rgba(142,30,44,0.05) 0%, rgba(241,231,210,0) 62%);
}
.cw-svc-hero .cw-wrap { position: relative; z-index: 1; }
.cw-svc-hero-inner { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.cw-breadcrumb { font-size: 0.82rem; margin: 0 0 1.15rem; display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; }
.cw-breadcrumb a { color: var(--cw-muted); text-decoration: none; }
.cw-breadcrumb a:hover { color: var(--cw-crimson); text-decoration: underline; }
.cw-breadcrumb .cw-bc-sep { color: var(--cw-line); }
.cw-breadcrumb .cw-bc-current { color: var(--cw-muted); }
.cw-svc-hero h1 { color: var(--cw-ink); font-size: clamp(2.1rem, 4.4vw, 3.4rem); line-height: 1.08; margin: 0 0 0.9rem; }
.cw-svc-promise { color: var(--cw-muted); font-size: clamp(1.1rem, 1.6vw, 1.32rem); line-height: 1.5; max-width: 32ch; margin: 0 0 1.7rem; }
.cw-svc-hero .wp-block-buttons { margin: 0; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.cw-svc-hero-media { border-radius: var(--cw-radius-xl); overflow: hidden; box-shadow: var(--cw-shadow); aspect-ratio: 4 / 3; isolation: isolate; }
.cw-svc-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.96) contrast(1.02); }

/* ---- At-a-glance facts strip (overlaps the hero) ----------------------- */
.cw-svc-facts { background: transparent; }
.cw-svc-facts-card {
	margin-top: -3rem; position: relative; z-index: 3;
	background: #fff; border: 1px solid var(--cw-line); border-radius: var(--cw-radius-lg);
	box-shadow: var(--cw-shadow); overflow: hidden;
	display: grid; grid-template-columns: repeat(4, 1fr);
}
.cw-fact { padding: 1.2rem 1.4rem; border-left: 1px solid var(--cw-line); }
.cw-fact:first-child { border-left: 0; }
.cw-fact dt { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cw-crimson); margin: 0 0 0.35rem; }
.cw-fact dd { margin: 0; font-size: 0.96rem; font-weight: 600; color: var(--cw-ink); line-height: 1.35; }

/* ---- Two-column body w/ sticky CTA sidebar ----------------------------- */
.cw-svc-body { background: transparent; padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.cw-svc-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.cw-svc-main > h2 { font-size: var(--wp--preset--font-size--x-large); margin: 2.2rem 0 0.6rem; }
.cw-svc-main > h2:first-child { margin-top: 0; }
.cw-svc-main > p { color: var(--cw-ink); margin: 0 0 1rem; max-width: 65ch; }
.cw-svc-main .cw-checks { margin-top: 1.1rem; }

.cw-svc-aside { position: sticky; top: 6.5rem; }
.cw-cta-card {
	background: #fff; border: 1px solid var(--cw-line); border-radius: var(--cw-radius-xl);
	box-shadow: var(--cw-shadow); padding: 1.6rem 1.5rem;
}
.cw-cta-card h2 { font-size: 1.3rem; margin: 0.1rem 0 0.3rem; }
.cw-cta-card .cw-cta-sub { font-size: 0.92rem; color: var(--cw-muted); margin: 0 0 1.05rem; }
.cw-cta-card .cw-cta-phone {
	display: inline-block; font-family: var(--wp--preset--font-family--serif);
	font-weight: 800; font-size: 1.5rem; letter-spacing: -0.02em;
	color: var(--cw-crimson); text-decoration: none; margin: 0 0 1.05rem;
}
.cw-cta-card .cw-cta-phone:hover { color: var(--cw-crimson-dark); }
.cw-cta-card .wp-block-buttons { margin: 0; display: grid; gap: 0.6rem; }
.cw-cta-card .wp-block-button { display: block; }
.cw-cta-card .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; }
.cw-cta-card-foot {
	font-size: 0.82rem; color: var(--cw-muted); margin: 1.05rem 0 0;
	padding-top: 0.9rem; border-top: 1px solid var(--cw-line);
	display: flex; align-items: center; gap: 0.5rem;
}
.cw-cta-card-foot::before {
	content: "✓"; flex: 0 0 auto; width: 1.2rem; height: 1.2rem;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--cw-tint); color: var(--cw-crimson); border-radius: 50%;
	font-size: 0.66rem; font-weight: 800;
}

/* ---- Care-continuum stepper -------------------------------------------- */
.cw-continuum { background: var(--wp--preset--color--surface-alt); padding-block: clamp(2.2rem, 5vw, 3.5rem); }
.cw-continuum h2 { font-size: var(--wp--preset--font-size--large); margin: 0 0 1.3rem; }
.cw-steps { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: stretch; }
.cw-stage {
	flex: 1 1 0; min-width: 140px; background: #fff; border: 1px solid var(--cw-line);
	border-radius: var(--cw-radius); padding: 0.95rem 1.05rem;
}
.cw-stage b { display: block; font-size: 0.95rem; color: var(--cw-ink); margin-bottom: 0.15rem; }
.cw-stage span { display: block; font-size: 0.78rem; color: var(--cw-muted); line-height: 1.35; }
.cw-stage.is-active { background: var(--cw-crimson); border-color: var(--cw-crimson); box-shadow: var(--cw-shadow-crimson); }
.cw-stage.is-active b, .cw-stage.is-active span { color: #fff; }
.cw-continuum-note { font-size: 0.88rem; color: var(--cw-muted); margin: 1.1rem 0 0; }

/* ---- Related services band (within service pages) ---------------------- */
.cw-svc-related { background: transparent; padding-block: clamp(2.2rem, 5vw, 3.5rem); }
.cw-svc-related h2 { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 1.3rem; }
.cw-svc-related .cw-related { margin-top: 0; }

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 900px) {
	.cw-svc-grid { grid-template-columns: 1fr; }
	.cw-svc-aside { position: static; }
}
@media (max-width: 781px) {
	.cw-svc-hero-inner { grid-template-columns: 1fr; }
	.cw-svc-hero-media { aspect-ratio: 16 / 9; order: -1; }
	.cw-svc-facts-card { grid-template-columns: repeat(2, 1fr); }
	.cw-fact:nth-child(odd) { border-left: 0; }
	.cw-fact:nth-child(n+3) { border-top: 1px solid var(--cw-line); }
}
@media (max-width: 600px) {
	/* Hero CTAs stack full-width for larger tap targets (matches the sticky card) */
	.cw-svc-hero .wp-block-buttons { flex-direction: column; align-items: stretch; gap: 0.6rem; }
	.cw-svc-hero .wp-block-buttons .wp-block-button { width: 100%; }
	.cw-svc-hero .wp-block-buttons .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; }
}
@media (max-width: 480px) {
	.cw-svc-facts-card { grid-template-columns: 1fr; }
	.cw-fact { border-left: 0; border-top: 1px solid var(--cw-line); }
	.cw-fact:first-child { border-top: 0; }
}

/* =========================================================================
   STATS / OUTCOMES BAND — big crimson numerals on a blush band
   ========================================================================= */
.cw-stats-grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--40);
}
.cw-stats-grid > * { margin: 0 !important; }
.cw-stat { text-align: center; padding: 0.5rem 0.5rem; }
.cw-stat .cw-stat-num {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 800; line-height: 1; letter-spacing: -0.03em;
	color: var(--cw-crimson); font-size: clamp(2.6rem, 5vw, 3.8rem);
	display: block; margin: 0 0 0.5rem;
}
.cw-stat .cw-stat-label {
	display: block; font-size: 0.95rem; font-weight: 600; color: var(--cw-ink);
	line-height: 1.35;
}
.cw-stat .cw-stat-label small { display: block; font-weight: 400; color: var(--cw-muted); font-size: 0.85rem; margin-top: 0.15rem; }
@media (max-width: 781px) { .cw-stats-grid { grid-template-columns: repeat(2, 1fr); gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30); } }

/* =========================================================================
   FACILITY — bento gallery (one hero tile + supporting tiles)
   ========================================================================= */
.wp-block-gallery.cw-bento {
	display: grid !important; gap: 14px;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: clamp(120px, 15vw, 190px);
}
.wp-block-gallery.cw-bento > .wp-block-image {
	margin: 0 !important; width: auto !important; max-width: none !important; height: 100%;
}
.wp-block-gallery.cw-bento > .wp-block-image img { height: 100%; width: 100%; object-fit: cover; }
/* tile 1 is a 2×2 hero; tile 6 is a full-width closing band — fills the grid cleanly */
.wp-block-gallery.cw-bento > .wp-block-image:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.wp-block-gallery.cw-bento > .wp-block-image:nth-child(6) { grid-column: 1 / -1; }
@media (max-width: 781px) {
	.wp-block-gallery.cw-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(130px, 30vw, 200px); }
	.wp-block-gallery.cw-bento > .wp-block-image:nth-child(1) { grid-column: 1 / -1; grid-row: span 1; }
	.wp-block-gallery.cw-bento > .wp-block-image:nth-child(6) { grid-column: 1 / -1; }
}

/* Accreditation badge logos — small honest row of real certification marks */
.cw-badges { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--wp--preset--spacing--40); }
.cw-badges figure { margin: 0; }
.cw-badges img { height: 64px; width: auto; border-radius: 10px; filter: none; }

/* =========================================================================
   SCROLL-REVEAL (progressive enhancement)
   ========================================================================= */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		main > .wp-block-group > section, main > .wp-block-pattern > section, main > section, main > .wp-block-cover {
			animation: cw-rise linear both; animation-timeline: view(); animation-range: entry 0% cover 16%;
		}
		@keyframes cw-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
	}
}

/* =========================================================================
   MOBILE
   ========================================================================= */
@media (max-width: 781px) {
	.cw-timeline .wp-block-column { padding-bottom: var(--wp--preset--spacing--30); }
}
@media (max-width: 600px) {
	header.wp-block-template-part .wp-block-site-logo img { max-height: 44px; }
	.cw-header-cta .wp-block-button__link { padding-left: 1.05rem; padding-right: 1.05rem; font-size: 0.82rem; }
	.cw-header-cta .cw-cta-primary { display: none; }
	.wp-block-gallery.cw-rounded { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
	.wp-block-gallery.cw-rounded > .wp-block-image { width: 100% !important; max-width: 100% !important; margin: 0 !important; }
}
@media (max-width: 340px) { .wp-block-gallery.cw-rounded { grid-template-columns: 1fr !important; } }

/* =========================================================================
   FACILITY PAGE — photo hero + amenities + gallery
   ========================================================================= */
.cw-facility-hero { border-radius: 0; }
.cw-facility-hero .wp-block-cover__inner-container { width: 100%; }
.cw-facility-hero h1 { color: #fff; margin: 0 0 0.6rem; }
.cw-facility-hero h1 em { color: var(--wp--preset--color--accent); font-style: normal; }
.cw-facility-hero .cw-lede { color: rgba(255,255,255,0.86); margin: 0; }
.cw-facility-hero .cw-eyebrow { margin-bottom: 1rem; }
/* The page-facility template has no post-title, so the hero is the first thing
   under the sticky header — let it sit flush (cover already full-bleed). */
/* Uniform tiled gallery: mixed portrait/landscape source photos would otherwise
   make ragged, very tall flex rows. Force an even grid of 4:3 cropped tiles. */
.cw-facility-gallery { display: grid !important; gap: 14px; grid-template-columns: repeat(3, 1fr); margin-top: 0; }
.cw-facility-gallery > .wp-block-image { margin: 0 !important; width: auto !important; max-width: none !important; }
.cw-facility-gallery > .wp-block-image,
.cw-facility-gallery > .wp-block-image figure { height: 100%; }
.cw-facility-gallery > .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--cw-radius-lg); }
@media (max-width: 781px) { .cw-facility-gallery { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .cw-facility-gallery { grid-template-columns: 1fr; } }

/* =========================================================================
   LOTUS WATERMARK ON EVERY BAND
   The body paints the fixed/centered gold lotus field on the transparent
   canvas areas; opaque colored bands would otherwise hide it. Re-paint the
   SAME viewport-fixed image (over each band's own color) so the texture reads
   as one continuous field across cream / white / sand sections + footer.
   Placed late so the background-image longhand wins over each band's
   `background:` color shorthand. (Heroes layer it inline over their gradient.)
   ========================================================================= */
.cw-panel, .cw-water, .cw-continuum, footer.wp-block-template-part {
	background-image: url("assets/images/pattern-lotus.png?v=4");
	background-repeat: repeat;
	background-position: center center;
	background-attachment: fixed;
}

/* ---- Width safety ------------------------------------------------------- */
h1, h2, h3, h4, .wp-block-heading, p { overflow-wrap: break-word; }
.wp-block-cover__inner-container { max-width: 100%; }
.wp-block-cover__inner-container > * { max-width: 100%; }
html, body { overflow-x: hidden; }

/* ---- Reduced motion ----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.cw-card, .wp-block-button__link, .cw-card figure.wp-block-image img,
	.wp-block-gallery.cw-rounded .wp-block-image img, footer .wp-block-social-link { transition: none; }
	.cw-card:hover { transform: none; }
	.cw-card:hover figure.wp-block-image img { transform: none; }
}
