/* ==========================================================================
   Shared components used across interior page templates.
   Pattern: a full-bleed <section> carries background + padding-block only;
   a nested .cc-container handles max-width/gutter (see base.css).
   ========================================================================== */

.cc-eyebrow--teal { color: var(--cc-teal); }
.cc-eyebrow--slate { color: var(--cc-slate); }
.cc-eyebrow--slate-pale { color: var(--cc-slate-pale); }
.cc-eyebrow--muted { color: var(--cc-muted-2); }

/* Breadcrumb */
.cc-breadcrumb {
	font: 500 13px var(--cc-font-sans);
	color: var(--cc-muted);
	margin-bottom: 14px;
}

.cc-breadcrumb__section { color: inherit; text-decoration: none; }
.cc-breadcrumb__section:hover { text-decoration: underline; }
.cc-breadcrumb__current--teal { color: var(--cc-teal); }
.cc-breadcrumb__current--slate { color: var(--cc-slate); }

/* Section title header rows: heading + trailing rule (1o "Directors", "The therapy team") */
.cc-heading-rule {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 32px;
}

.cc-heading-rule--tight { margin-bottom: 14px; }

.cc-heading-rule__title {
	font: 400 30px var(--cc-font-serif);
	white-space: nowrap;
}

.cc-heading-rule__rule {
	flex: 1;
	height: 1px;
	background: var(--cc-border-3);
}

/* Generic breadcrumb+title band used on 1d/1n (cream-alt, bottom border) */
.cc-page-intro {
	background: var(--cc-cream-alt);
	border-bottom: 1px solid var(--cc-border-2);
	padding: 38px 0 28px;
}

.cc-page-intro__title {
	font: 300 44px / 1.06 var(--cc-font-serif);
	max-width: 760px;
	margin: 0 0 12px;
}

.cc-page-intro__body {
	font: 400 18px / 1.6 var(--cc-font-sans);
	color: var(--cc-body-text);
	max-width: 700px;
}

/* Hero: slate (1c) */
.cc-hero-slate {
	background: var(--cc-slate);
	color: #fff;
	padding-block: 56px;
}

.cc-hero-slate__title {
	font: 300 46px / 1.08 var(--cc-font-serif);
	margin: 0 0 16px;
	max-width: 720px;
}

.cc-hero-slate__body {
	font: 400 18px / 1.6 var(--cc-font-sans);
	color: rgba(255, 255, 255, .88);
	max-width: 620px;
	margin: 0 0 28px;
}

.cc-hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

/* Hero: sage (1i) */
.cc-hero-sage {
	background: var(--cc-sage);
	padding-block: 56px;
}

.cc-hero-sage__title {
	font: 300 46px / 1.08 var(--cc-font-serif);
	color: var(--cc-dark);
	margin: 0 0 14px;
	max-width: 680px;
}

.cc-hero-sage__body {
	font: 400 18px / 1.6 var(--cc-font-sans);
	color: #26332f;
	max-width: 600px;
}

/* Hero: cream, centred (1h approach hero) */
.cc-hero-cream {
	background: var(--cc-cream);
	padding-block: 64px;
	text-align: center;
}

.cc-hero-cream__title {
	font: 300 44px / 1.1 var(--cc-font-serif);
	margin: 0 auto 20px;
	max-width: 800px;
}

.cc-hero-cream__body {
	font: 400 17px / 1.7 var(--cc-font-sans);
	color: var(--cc-body-text);
	max-width: 660px;
	margin-inline: auto;
}

/* Numbered step cards (1c "How to make a referral", 1i "Your first session") */
.cc-step-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.cc-step-card {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	padding: 28px 26px;
	background: #fff;
}

.cc-step-card--tinted { background: var(--cc-cream-alt); border-radius: var(--cc-radius-feature); }

.cc-step-card__num {
	font: 400 30px var(--cc-font-serif);
	color: var(--cc-slate);
	margin-bottom: 12px;
}

.cc-step-card__num--circle {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--cc-sage);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font: 600 16px var(--cc-font-sans);
	margin-bottom: 14px;
}

.cc-step-card__title {
	font: 600 17px var(--cc-font-sans);
	margin: 0 0 8px;
}

.cc-step-card--tinted .cc-step-card__title { font-weight: 600; font-size: 17px; }

.cc-step-card__body {
	font: 400 14px / 1.55 var(--cc-font-sans);
	color: var(--cc-body-text);
	margin: 0;
}

/* Two-column split with a border between (1c pathways/SLA, 1i confidentiality/rights) */
.cc-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid var(--cc-border-2);
}

.cc-split--1-1 { grid-template-columns: 1.1fr 1fr; }

.cc-split__col {
	padding: 52px 44px;
}

/* The column itself stays full-width so its background fills the grid track;
   only its content is capped so it doesn't over-stretch on very wide viewports. */
.cc-split__col > * {
	max-width: 560px;
}

.cc-split__col--bordered { border-right: 1px solid var(--cc-border-2); }
.cc-split__col--tinted { background: var(--cc-cream-alt); }
.cc-split__col--slate-tinted { background: var(--cc-slate-tint); }

.cc-split__heading {
	font: 300 28px var(--cc-font-serif);
	margin: 0 0 24px;
}

.cc-split__heading--tight { margin-bottom: 14px; }

/* Pathway list items (1c) */
.cc-pathway-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 16px 18px;
	background: var(--cc-slate-tint);
	border-radius: var(--cc-radius-card);
}

.cc-pathway-item + .cc-pathway-item { margin-top: 12px; }

.cc-pathway-item__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cc-slate);
	margin-top: 6px;
	flex: none;
}

.cc-pathway-item__title { font: 600 15px var(--cc-font-sans); }
.cc-pathway-item__body { font: 400 13px / 1.5 var(--cc-font-sans); color: var(--cc-body-text); }

/* SLA table (1c) */
.cc-sla-table {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	overflow: hidden;
	background: #fff;
}

.cc-sla-table__row {
	display: flex;
	justify-content: space-between;
	padding: 15px 20px;
	border-bottom: 1px solid var(--cc-border-2);
}

.cc-sla-table__row:last-child { border-bottom: 0; }

.cc-sla-table__label { font: 500 14px var(--cc-font-sans); color: var(--cc-body-text); }
.cc-sla-table__value { font: 600 14px var(--cc-font-sans); }

.cc-sla-footnote {
	font: 400 12.5px / 1.5 var(--cc-font-sans);
	color: var(--cc-muted);
	margin: 14px 0 0;
}

/* Simple info-card grid (1c reporting protocols, 1o affiliations) */
.cc-info-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.cc-info-card {
	background: #fff;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	padding: 22px;
}

.cc-info-card__title { font: 600 15px var(--cc-font-sans); margin-bottom: 6px; }
.cc-info-card__body { font: 400 13px / 1.5 var(--cc-font-sans); color: var(--cc-body-text); }

/* Modality tiles (1h) */
.cc-tile-grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.cc-tile {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	padding: 24px;
	background: var(--cc-cream-alt);
}

.cc-tile__title { font: 400 20px var(--cc-font-serif); margin-bottom: 6px; }
.cc-tile__body { font: 400 13px / 1.5 var(--cc-font-sans); color: var(--cc-body-text); }

/* Dark tiles on slate bands (1h governance, 1o training) */
.cc-tile-dark {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--cc-radius-card);
	padding: 16px 18px;
}

.cc-tile-dark__title { font: 600 14.5px var(--cc-font-sans); }
.cc-tile-dark__body { font: 400 13px / 1.5 var(--cc-font-sans); color: rgba(255, 255, 255, .7); margin-top: 4px; }

/* Band section (full-bleed slate, used repeatedly) */
.cc-band-slate {
	background: var(--cc-slate);
	color: #fff;
	padding-block: 52px;
}

/* Checklist with ✓ or • markers */
.cc-check-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cc-check-list--tight { gap: 10px; }

.cc-check-list__item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.cc-check-list__mark {
	color: var(--cc-teal);
	font: 600 16px var(--cc-font-sans);
	margin-top: 1px;
	flex: none;
}

.cc-check-list__mark--bullet { font-weight: 700; }

.cc-check-list__text { font: 400 15px / 1.5 var(--cc-font-sans); color: var(--cc-ink); }
.cc-check-list__text--muted { color: #3a423e; font-size: 14px; }

/* Process timeline (1d) */
.cc-timeline {
	border-left: 2px solid var(--cc-border);
	padding-left: 26px;
	display: flex;
	flex-direction: column;
}

.cc-timeline__step {
	position: relative;
	padding-bottom: 22px;
}

.cc-timeline__step:last-child { padding-bottom: 0; }

.cc-timeline__dot {
	position: absolute;
	left: -33px;
	top: 2px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--cc-teal);
}

.cc-timeline__dot--sage { background: var(--cc-sage); }
.cc-timeline__dot--sand { background: var(--cc-sand); border: 1px solid var(--cc-checkbox-unchecked); }

.cc-timeline__title { font: 600 15px var(--cc-font-sans); margin-bottom: 3px; }
.cc-timeline__body { font: 400 14px / 1.55 var(--cc-font-sans); color: var(--cc-body-text); }

/* Sidebar "Key facts" card (1d) */
.cc-key-facts-card {
	background: #fff;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-feature);
	padding: 26px;
	position: sticky;
	top: 20px;
}

.cc-key-facts-card__label {
	font: 600 12px var(--cc-font-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--cc-muted);
	margin-bottom: 18px;
}

.cc-key-facts {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 24px;
}

.cc-key-facts__fact-label { font: 400 12px var(--cc-font-sans); color: var(--cc-muted); }
.cc-key-facts__fact-value { font: 600 15px var(--cc-font-sans); }

/* Generic sidebar white card (1e/1j style, reused) */
.cc-sidebar-card {
	background: #fff;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-feature);
	padding: 22px;
}

.cc-sidebar-card__title { font: 600 15px var(--cc-font-sans); margin-bottom: 8px; }
.cc-sidebar-card__body { font: 400 13.5px / 1.55 var(--cc-font-sans); color: var(--cc-body-text); margin: 0; }

.cc-sidebar-card--slate {
	background: var(--cc-slate);
	color: #fff;
	border: none;
}

.cc-sidebar-card--slate .cc-key-facts-card__label,
.cc-sidebar-card--slate .cc-eyebrow { color: var(--cc-slate-pale); }

/* Service row / featured card (1n, 1d related) */
.cc-service-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-decoration: none;
	color: inherit;
	padding: 20px 22px;
	transition: background-color var(--cc-transition-fast);
}

.cc-service-row__title { font: 400 17px var(--cc-font-serif); }
.cc-service-row__arrow { font: 400 17px var(--cc-font-sans); color: #B0A892; transition: transform var(--cc-transition-fast); }
.cc-service-row:hover .cc-service-row__arrow { transform: translateX(3px); }

.cc-related-services-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.cc-related-services-grid .cc-service-row {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
}

.cc-services-secondary-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--cc-cream);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	overflow: hidden;
}

.cc-services-secondary-grid .cc-service-row {
	border-right: 1px solid var(--cc-border-2);
	border-bottom: 1px solid var(--cc-border-2);
	padding: 26px 30px;
}

.cc-services-secondary-grid .cc-service-row__title { font-size: 20px; }

.cc-services-secondary-grid .cc-service-row:nth-child(2n) { border-right: 0; }

/* Remove the bottom border only from the true last row of a 2-column grid,
   whether the item count is even (last row = last 2 items) or odd (last
   row = just the final item, left column). */
.cc-services-secondary-grid .cc-service-row:last-child,
.cc-services-secondary-grid .cc-service-row:nth-last-child(2):nth-child(odd) {
	border-bottom: 0;
}

.cc-service-featured {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-feature);
	padding: 32px;
	background: var(--cc-cream-alt);
	margin-bottom: 20px;
}

.cc-service-featured__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.cc-service-featured__title { font: 400 24px var(--cc-font-serif); margin: 0; }
.cc-service-featured__meta { font: 600 16px var(--cc-font-sans); white-space: nowrap; }
.cc-service-featured__summary { font: 400 16px / 1.7 var(--cc-font-sans); color: var(--cc-body-text); margin: 0; }
.cc-service-featured__title a { color: inherit; text-decoration: none; }
.cc-service-featured__title a:hover { color: var(--cc-teal); }
.cc-service-featured__more { display: inline-block; margin-top: 14px; font: 600 14px var(--cc-font-sans); color: var(--cc-teal); text-decoration: none; }
.cc-service-featured__more:hover { text-decoration: underline; }

/* Stat cards/inline (1o, home safe-space split) */
.cc-stat--card {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	padding: 22px 24px;
	background: var(--cc-cream-alt);
}

.cc-stat--card .cc-stat__value { font: 300 34px / 1 var(--cc-font-serif); color: var(--cc-teal); }
.cc-stat--card .cc-stat__label { font: 400 14px / 1.5 var(--cc-font-sans); color: var(--cc-body-text); margin-top: 7px; }

.cc-stat--inline .cc-stat__value { font: 400 34px var(--cc-font-serif); color: var(--cc-teal); }
.cc-stat--inline .cc-stat__label { font: 400 13px var(--cc-font-sans); color: var(--cc-muted); }

.cc-stat-stack { display: grid; gap: 14px; }
.cc-stat-row { display: flex; gap: 28px; }

/* Pills (specialisms, general) */
.cc-pill-list { display: flex; flex-wrap: wrap; gap: 7px; }

.cc-pill {
	display: inline-flex;
	font: 500 13px var(--cc-font-sans);
	padding: 5px 13px;
	border-radius: var(--cc-radius-pill);
	border: 1px solid var(--cc-input-border);
	color: var(--cc-body-text);
}

.cc-pill--specialism {
	font: 600 11px var(--cc-font-sans);
	letter-spacing: .04em;
	color: var(--cc-specialism-text);
	background: var(--cc-specialism-fill);
	border-color: var(--cc-specialism-border);
	padding: 5px 11px;
}

/* Team: directors (1o) */
.cc-director-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}

.cc-director {
	display: grid;
	grid-template-columns: 210px 1fr;
	gap: 26px;
	align-items: start;
}

.cc-director__portrait {
	aspect-ratio: 4 / 5;
	border-radius: var(--cc-radius-card);
	border: 1px solid var(--cc-border);
	align-items: flex-end;
	padding-bottom: 14px;
}

.cc-director__photo { width: 100%; height: 100%; object-fit: cover; }

.cc-director__name { font: 500 22px var(--cc-font-sans); letter-spacing: -.01em; }
.cc-director__role { font: 400 14px var(--cc-font-sans); color: var(--cc-teal); margin: 4px 0 14px; }
.cc-director__bio { font: 400 14.5px / 1.65 var(--cc-font-sans); color: var(--cc-body-text); margin: 0 0 16px; }

/* Team: therapists (1o) */
.cc-therapist-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	align-items: stretch;
}

.cc-therapist-card {
	border: 1px solid var(--cc-border);
	border-top: 3px solid var(--cc-sage);
	border-radius: var(--cc-radius-card);
	padding: 28px 26px;
	background: var(--cc-cream-alt);
	display: flex;
	flex-direction: column;
	gap: 14px;
	height: 100%;
}

.cc-therapist-card__avatar {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #E3E9E7;
	border: 1px solid #D5E0DC;
	display: flex;
	align-items: center;
	justify-content: center;
	font: 500 16px var(--cc-font-sans);
	color: var(--cc-teal);
	overflow: hidden;
}

.cc-therapist-card__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-therapist-card__name { font: 500 19px var(--cc-font-sans); }
.cc-therapist-card__role { font: 400 13.5px var(--cc-font-sans); color: var(--cc-teal); margin-top: 3px; }
.cc-therapist-card__bio { font: 400 14px / 1.6 var(--cc-font-sans); color: var(--cc-body-text); margin: 0; }

.cc-therapist-card__quals {
	font: 400 12.5px / 1.5 var(--cc-font-sans);
	color: #7d8681;
	border-top: 1px solid var(--cc-border-3);
	padding-top: 12px;
	margin-top: auto;
}

/* Team: about-page strip (1h) */
.cc-team-strip-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.cc-team-strip-card__portrait {
	aspect-ratio: 1 / 1;
	width: 140px;
	border-radius: var(--cc-radius-feature);
	margin-bottom: 16px;
}

.cc-team-strip-card__photo { width: 100%; height: 100%; object-fit: cover; }
.cc-team-strip-card__name { font: 500 19px var(--cc-font-sans); }
.cc-team-strip-card__role { font: 400 14px var(--cc-font-sans); color: var(--cc-teal); margin: 2px 0 0; }

/* Affiliation list-cards (1o) */
.cc-affiliation-list { display: grid; gap: 10px; }

.cc-affiliation-card {
	background: var(--cc-cream);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	padding: 15px 18px;
}

.cc-affiliation-card__title { font: 600 14.5px var(--cc-font-sans); }
.cc-affiliation-card__body { font: 400 13px var(--cc-font-sans); color: #7d8681; margin-top: 3px; }

.cc-quote-card-dark {
	background: var(--cc-dark);
	border-radius: var(--cc-radius-card);
	padding: 24px 26px;
	margin-top: 24px;
}

.cc-quote-card-dark__title { font: 300 22px / 1.3 var(--cc-font-serif); color: #F1EFE8; margin-bottom: 8px; }
.cc-quote-card-dark__body { font: 400 14px / 1.6 var(--cc-font-sans); color: #A9BCB7; }

/* Policy template (1g) */
.cc-policy-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
}

.cc-policy-toc {
	padding: 48px 32px;
	background: var(--cc-cream-alt);
	border-right: 1px solid var(--cc-border-2);
}

.cc-policy-toc__label {
	font: 600 12px var(--cc-font-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--cc-muted);
	margin-bottom: 16px;
}

.cc-policy-toc__list { display: flex; flex-direction: column; gap: 4px; }

.cc-policy-toc__link {
	font: 500 14px var(--cc-font-sans);
	color: var(--cc-body-text);
	padding: 9px 12px;
	min-height: 44px;
	display: flex;
	align-items: center;
	border-radius: 5px;
	text-decoration: none;
}

.cc-policy-toc__link:hover { background: rgba(255, 255, 255, .5); }

.cc-policy-toc__link.is-current {
	font-weight: 600;
	color: var(--cc-teal);
	background: #fff;
	border: 1px solid var(--cc-border);
}

.cc-policy-toc__footer {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--cc-border);
}

.cc-policy-toc__download {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 600 13px var(--cc-font-sans);
	color: var(--cc-teal);
	text-decoration: none;
}

.cc-policy-toc__reviewed {
	font: 400 12px var(--cc-font-sans);
	color: var(--cc-muted-2);
	margin-top: 8px;
}

.cc-policy-content {
	padding: 52px 56px;
	max-width: 760px;
}

.cc-policy-content__title {
	font: 300 42px / 1.08 var(--cc-font-serif);
	margin: 0 0 8px;
}

.cc-policy-content__intro {
	font: 400 17px / 1.6 var(--cc-font-sans);
	color: var(--cc-body-text);
	margin: 0 0 14px;
}

.cc-policy-badges {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 36px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--cc-border-2);
}

.cc-policy-badge {
	font: 500 12px var(--cc-font-sans);
	color: var(--cc-body-text);
	background: var(--cc-cream-alt);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-pill);
	padding: 5px 13px;
}

.cc-policy-content .cc-policy-body h2 {
	font: 400 24px var(--cc-font-serif);
	margin: 0 0 12px;
}

.cc-policy-content .cc-policy-body h2:not(:first-child) { margin-top: 28px; }

.cc-policy-content .cc-policy-body p {
	font: 400 16px / 1.75 var(--cc-font-sans);
	color: #3a423e;
	margin: 0 0 16px;
}

.cc-policy-content .cc-policy-body ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 20px;
}

.cc-policy-content .cc-policy-body li {
	display: flex;
	gap: 10px;
	font: 400 15px / 1.5 var(--cc-font-sans);
	color: #3a423e;
}

.cc-policy-content .cc-policy-body li::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--cc-teal);
	flex: none;
	margin-top: 8px;
}

.cc-policy-callout {
	background: var(--cc-slate-tint);
	border-left: 3px solid var(--cc-slate);
	border-radius: 0 6px 6px 0;
	padding: 18px 22px;
	margin: 0 0 28px;
}

.cc-policy-callout__title { font: 600 14px var(--cc-font-sans); color: #33475A; margin-bottom: 4px; }
.cc-policy-callout__body { font: 400 14px / 1.55 var(--cc-font-sans); color: var(--cc-body-text); }

/* Referral page (1e) — see forms.css for the GF form itself */
.cc-progress-bar {
	display: flex;
	gap: 8px;
	margin-bottom: 34px;
	max-width: 640px;
}

.cc-progress-bar__seg {
	flex: 1;
	height: 4px;
	border-radius: 2px;
	background: var(--cc-border);
}

.cc-progress-bar__seg.is-filled { background: var(--cc-slate); }

.cc-refer-mobile-urgent { display: none; }

.cc-refer-frame {
	max-width: var(--cc-max-page);
	margin-inline: auto;
}

.cc-refer-layout {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
}

.cc-refer-layout__form {
	padding: 48px 44px;
	border-right: 1px solid var(--cc-border-2);
}

.cc-refer-layout__sidebar {
	padding: 48px 40px;
	background: var(--cc-slate-tint);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

@media (max-width: 1023px) {
	.cc-refer-layout { grid-template-columns: 1fr; }
	.cc-refer-layout__form { border-right: 0; border-bottom: 1px solid var(--cc-border-2); }

	.cc-refer-mobile-urgent { display: block; }
	.cc-refer-sidebar-urgent { display: none; }
}

@media (max-width: 767px) {
	.cc-refer-layout__form,
	.cc-refer-layout__sidebar { padding-inline: 20px; }
}

/* Generic prose — page.php fallback for any page without a bespoke template */
.cc-prose { padding: 56px 0; max-width: 760px; }

.cc-prose h1 { font: 300 42px / 1.08 var(--cc-font-serif); margin: 0 0 24px; }
.cc-prose h2 { font: 400 26px var(--cc-font-serif); margin: 32px 0 12px; }
.cc-prose h3 { font: 500 20px var(--cc-font-sans); margin: 24px 0 10px; }
.cc-prose p { font: 400 16px / 1.75 var(--cc-font-sans); color: #3a423e; margin: 0 0 16px; }
.cc-prose ul, .cc-prose ol { margin: 0 0 16px 22px; }
.cc-prose li { font: 400 16px / 1.7 var(--cc-font-sans); color: #3a423e; margin-bottom: 6px; }
.cc-prose a { color: var(--cc-teal); }
.cc-prose img { border-radius: var(--cc-radius-card); margin: 20px 0; }

/* Contact page route cards (1j) */
.cc-route-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.cc-route-card {
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-feature);
	padding: 28px;
	background: var(--cc-cream-alt);
}

.cc-route-card--highlight {
	border-color: var(--cc-slate);
	background: var(--cc-slate-tint);
}

.cc-route-card__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	font: 600 12px var(--cc-font-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cc-route-card__dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.cc-route-card__body { font: 400 16px / 1.6 var(--cc-font-sans); color: var(--cc-ink); }

.cc-social-row { display: flex; gap: 8px; margin-top: 20px; }

.cc-social-row__icon {
	width: 36px;
	height: 36px;
	border: 1px solid var(--cc-input-border);
	border-radius: var(--cc-radius-card);
	display: flex;
	align-items: center;
	justify-content: center;
	font: 600 13px var(--cc-font-sans);
	color: var(--cc-body-text);
	text-decoration: none;
}

.cc-social-row__icon:hover { border-color: var(--cc-teal); color: var(--cc-teal); }

/* One-off two-column splits (About governance band, Contact info/map,
   Service detail main/sidebar, Our Team hero/training/affiliations) — all
   collapse to a single column at the standard tablet breakpoint below. */
.cc-two-col-44 { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; }
.cc-contact-split { display: grid; grid-template-columns: 1fr 1.2fr; }
.cc-contact-split__map { border-left: 1px solid var(--cc-border-2); }
.cc-service-detail-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 0; }
.cc-service-detail-grid__main { padding: 52px 44px 52px 0; border-right: 1px solid var(--cc-border-2); }
.cc-service-detail-grid__sidebar { padding: 52px 0 52px 40px; background: var(--cc-cream-alt); }
.cc-team-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: start; }

/* Service landing page (single-service.php) */
.cc-service-intro-actions { margin-top: 22px; }

.cc-service-heading { font: 400 24px var(--cc-font-serif); margin: 0 0 14px; }
.cc-service-text { font: 400 16px / 1.7 var(--cc-font-sans); color: var(--cc-body-text); margin: 0 0 30px; }

.cc-service-body { font: 400 16px / 1.7 var(--cc-font-sans); color: var(--cc-body-text); margin: 0 0 30px; }
.cc-service-body h2 { font: 400 24px var(--cc-font-serif); color: var(--cc-ink); margin: 34px 0 14px; }
.cc-service-body h2:first-child { margin-top: 0; }
.cc-service-body h3 { font: 600 16px var(--cc-font-sans); color: var(--cc-ink); margin: 22px 0 6px; }
.cc-service-body p { margin: 0 0 16px; }
.cc-service-body ul { margin: 0 0 16px; padding-left: 20px; }
.cc-service-body li { margin-bottom: 6px; }
.cc-service-body a { color: var(--cc-teal); }

.cc-why-title { font: 300 30px / 1.2 var(--cc-font-serif); margin: 0 0 32px; max-width: 760px; }
.cc-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.cc-why-grid__title { font: 600 15px var(--cc-font-sans); margin-bottom: 8px; }
.cc-why-grid__body { font: 400 14px / 1.6 var(--cc-font-sans); color: rgba(255, 255, 255, .8); margin: 0; }

.cc-faq-section { padding: 60px 0; background: var(--cc-cream-alt); border-bottom: 1px solid var(--cc-border-2); }
.cc-faq-section__inner { max-width: 820px; }
.cc-faq-section__title { font: 300 32px var(--cc-font-serif); margin: 0 0 24px; }
.cc-faq { border-top: 1px solid var(--cc-border); }
.cc-faq__item { border-bottom: 1px solid var(--cc-border); }
.cc-faq__question {
	font: 600 16px / 1.45 var(--cc-font-sans);
	padding: 18px 36px 18px 0;
	cursor: pointer;
	list-style: none;
	position: relative;
}
.cc-faq__question::-webkit-details-marker { display: none; }
.cc-faq__question::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font: 300 24px var(--cc-font-sans);
	color: var(--cc-teal);
}
.cc-faq__item[open] .cc-faq__question::after { content: "\2212"; }
.cc-faq__answer { font: 400 15.5px / 1.7 var(--cc-font-sans); color: var(--cc-body-text); padding: 0 36px 18px 0; }
.cc-faq__answer p { margin: 0 0 10px; }
.cc-faq__answer p:last-child { margin-bottom: 0; }

.cc-enquire-section { padding: 60px 0 64px; background: var(--cc-cream); scroll-margin-top: 20px; }
.cc-enquire-section__title { font: 300 32px / 1.15 var(--cc-font-serif); margin: 0 0 12px; }
.cc-enquire-section__body { font: 400 16px / 1.65 var(--cc-font-sans); color: var(--cc-body-text); margin: 0 0 26px; }
.cc-enquire-section__body a { color: var(--cc-teal); }

@media (max-width: 1023px) {
	.cc-why-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
	.cc-why-grid { grid-template-columns: 1fr; }
	.cc-why-title,
	.cc-faq-section__title,
	.cc-enquire-section__title { font-size: 26px; }
}
.cc-training-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 48px; align-items: start; }
.cc-affiliations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }

@media (max-width: 1023px) {
	.cc-two-col-44,
	.cc-contact-split,
	.cc-service-detail-grid,
	.cc-team-hero-grid,
	.cc-training-grid,
	.cc-affiliations-grid { grid-template-columns: 1fr; }

	.cc-two-col-44 { gap: 28px; }

	.cc-service-detail-grid__main {
		padding: 40px 0;
		border-right: 0;
		border-bottom: 1px solid var(--cc-border-2);
	}

	.cc-service-detail-grid__sidebar { padding: 40px 0; }

	.cc-key-facts-card { position: static; }

	.cc-contact-split__map { border-left: 0; border-top: 1px solid var(--cc-border-2); }

	.cc-director-grid,
	.cc-therapist-grid,
	.cc-team-strip-grid,
	.cc-tile-grid-4,
	.cc-step-grid,
	.cc-route-grid,
	.cc-related-services-grid,
	.cc-info-card-grid { grid-template-columns: repeat(2, 1fr); }

	.cc-split,
	.cc-split--1-1 { grid-template-columns: 1fr; }

	.cc-split__col--bordered {
		border-right: 0;
		border-bottom: 1px solid var(--cc-border-2);
	}

	.cc-policy-layout { grid-template-columns: 1fr; }

	.cc-policy-toc {
		border-right: 0;
		border-bottom: 1px solid var(--cc-border-2);
	}

	.cc-policy-content { padding: 40px 24px; max-width: none; }
}

@media (max-width: 767px) {
	.cc-director-grid,
	.cc-therapist-grid,
	.cc-team-strip-grid,
	.cc-tile-grid-4,
	.cc-step-grid,
	.cc-route-grid,
	.cc-related-services-grid,
	.cc-info-card-grid,
	.cc-services-secondary-grid { grid-template-columns: 1fr; }

	.cc-services-secondary-grid .cc-service-row {
		border-right: 0 !important;
		border-bottom: 1px solid var(--cc-border-2) !important;
	}

	.cc-services-secondary-grid .cc-service-row:last-child { border-bottom: 0 !important; }

	.cc-director { grid-template-columns: 1fr; }
	.cc-director__portrait { max-width: 240px; }

	.cc-hero-slate__title,
	.cc-hero-sage__title { font-size: 34px; }

	.cc-hero-cream__title,
	.cc-policy-content__title,
	.cc-page-intro__title { font-size: 32px; }

	.cc-split__col,
	.cc-hero-slate,
	.cc-hero-sage,
	.cc-hero-cream,
	.cc-band-slate { padding-inline: 0; }
}
