/*
Theme Name: Brussels Croquet Club
Theme URI: https://croquet-brussels.example/
Author: Brussels Croquet Club & Atomic Design
Description: Client-owned child theme of the Atomic WP Theme. Provides Brussels-specific brand palette, typography selections, client design-identity assets, and per-site pattern/template overrides where genuinely client-specific. All generic layout, editor semantics, neutral fallbacks, and Atomic shared roles remain in the parent Atomic WP Theme.
Version: 0.1.0
Template: atomic-wp-theme
Text Domain: brussels-croquet
Requires at least: 6.6
Requires PHP: 7.4
*/

:root {
	--color-paper: var(--wp--preset--color--background);
	--color-surface: var(--wp--preset--color--surface);
	--color-ink: var(--wp--preset--color--contrast);
	--color-text: var(--wp--preset--color--text);
	--color-blue: var(--wp--preset--color--primary);
	--color-red: var(--wp--preset--color--red);
	--color-yellow: var(--wp--preset--color--yellow);
	--color-black: var(--wp--preset--color--black);
	--color-border: var(--wp--preset--color--border);
}

/* =========================================================
   Brussels brand — accent cascade palette overrides.
   ALL values POINT TO canonical child theme.json WP preset
   variables — ZERO duplicated literal hex outside theme.json.
   ========================================================= */

.awp-accent-1,
.wp-block-group.awp-accent-1 {
	--awp-context-accent: var(--wp--preset--color--primary);
	--awp-context-on-accent: var(--wp--preset--color--background);
	--awp-accent: var(--wp--preset--color--primary);
	--awp-on-accent: var(--wp--preset--color--background);
}
.awp-accent-2,
.wp-block-group.awp-accent-2 {
	--awp-context-accent: var(--wp--preset--color--red);
	--awp-context-on-accent: var(--wp--preset--color--background);
	--awp-accent: var(--wp--preset--color--red);
	--awp-on-accent: var(--wp--preset--color--background);
}
.awp-accent-3,
.wp-block-group.awp-accent-3 {
	--awp-context-accent: var(--wp--preset--color--yellow);
	--awp-context-on-accent: var(--wp--preset--color--contrast);
	--awp-accent: var(--wp--preset--color--yellow);
	--awp-on-accent: var(--wp--preset--color--contrast);
}
.awp-accent-4,
.wp-block-group.awp-accent-4 {
	--awp-context-accent: var(--wp--preset--color--contrast);
	--awp-context-on-accent: var(--wp--preset--color--background);
	--awp-accent: var(--wp--preset--color--contrast);
	--awp-on-accent: var(--wp--preset--color--background);
}
.awp-accent-black,
.wp-block-group.awp-accent-black {
	--awp-context-accent: var(--wp--preset--color--black);
	--awp-context-on-accent: var(--wp--preset--color--background);
	--awp-accent: var(--wp--preset--color--black);
	--awp-on-accent: var(--wp--preset--color--background);
}

/* =========================================================
   Hero surface — light paper background, discrete underline
   ========================================================= */

.awp-pattern-hero.brussels-hero {
	background-color: var(--wp--preset--color--background);
	border-bottom-color: var(--wp--preset--color--border);
	padding-block-start: var(--wp--preset--spacing--70);
	padding-block-end: var(--wp--preset--spacing--80);
}

.awp-pattern-hero.brussels-hero .awp-accent-line {
	height: 2px;
	width: 4rem;
	margin-block-start: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--40);
}

/* Homepage composition. Core content owns markup; child owns presentation. */
.brussels-home-main { padding-block: 0; margin-block: 0; }
.brussels-home-main > .wp-block-post-content { margin-block: 0; }
.brussels-home-hero {
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	width: 100%;
	min-height: 80svh;
	display: flex;
	align-items: center;
	margin: 0;
	padding: var(--wp--preset--spacing--80) var(--awp-page-gutter);
	background: var(--wp--preset--color--surface);
}
.brussels-home-hero__inner-container {
	position: relative;
	z-index: 3;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--content-size);
	margin-inline: auto;
}
.brussels-home-hero__content {
	box-sizing: border-box;
	width: 46%;
	padding: var(--wp--preset--spacing--50);
	background: color-mix(in srgb, var(--wp--preset--color--background) 96%, transparent);
	text-align: left;
}
.brussels-home-hero__content > * { margin-block: 0; }
.brussels-home-hero__content > * + * { margin-block-start: var(--wp--preset--spacing--40); }
.brussels-home-hero__lead { font-size: var(--wp--preset--font-size--large); }
.brussels-home-hero__desc { color: var(--wp--preset--color--text); }
.brussels-home-hero .wp-block-buttons { gap: var(--wp--preset--spacing--30); }
.brussels-home-section {
	box-sizing: border-box;
	width: calc(100% - 2 * var(--awp-page-gutter));
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-block: var(--wp--preset--spacing--80);
}
.brussels-features { container-type: inline-size; }
.brussels-feature-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	gap: var(--wp--preset--spacing--40);
}
.brussels-card-variant { --awp-card-radius: 1rem; }
.brussels-card-variant .awp-card__orb img { object-fit: contain; }
.brussels-feature-grid > * {
	min-width: 0;
	margin-block-start: 0;
	align-self: stretch;
	height: 100%;
}
.brussels-editorial-split,
.brussels-rules-teaser {
	display: grid;
	align-items: center;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
}
.brussels-editorial-split > figure { grid-column: span 6; margin: 0; }
.brussels-editorial-split > .brussels-split-text { grid-column: 8 / span 5; margin: 0; }
.brussels-rules-teaser > .brussels-rules-text { grid-column: span 4; }
.brussels-rules-teaser > .brussels-rules-visual { grid-column: span 8; margin: 0; }
.brussels-editorial-split img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--md); }
.brussels-rules-visual figure { margin: 0; }
.brussels-rules-visual img { width: 100%; height: auto; }
.brussels-rules-legend {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	padding-inline-start: 1.75rem;
	font-size: var(--wp--preset--font-size--small);
}
.brussels-rules-legend li { padding-inline-start: .35rem; }
.brussels-rules-legend li::marker { color: var(--wp--preset--color--primary); font-weight: 700; }
.brussels-rules-legend li:nth-child(2)::marker,
.brussels-rules-legend li:nth-child(6)::marker { color: var(--wp--preset--color--contrast); }
.brussels-rules-legend li:nth-child(3)::marker { color: var(--wp--preset--color--red); }
.brussels-rules-legend li:nth-child(4)::marker { color: var(--wp--preset--color--black); }
.brussels-home-hero .awp-accent-line,
.brussels-split-text .awp-accent-line,
.brussels-rules-text .awp-accent-line { width: 4rem; margin-inline: 0; }
@container (max-width: 63rem) {
	.brussels-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 30rem) {
	.brussels-feature-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1279px) {
	.brussels-home-hero__content { width: 58%; }
}
@media (max-width: 767px) {
	.brussels-home-hero { min-height: 85svh; align-items: flex-start; padding-block: var(--wp--preset--spacing--60); }
	.brussels-home-hero__content { width: 100%; padding: var(--wp--preset--spacing--40); }
	.brussels-editorial-split,
	.brussels-rules-teaser { display: block; }
	.brussels-editorial-split > .brussels-split-text,
	.brussels-rules-teaser > .brussels-rules-visual { margin-block-start: var(--wp--preset--spacing--50); }
	.brussels-rules-legend { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   Interior page grammar — Core content, child presentation.
   ========================================================= */

.brussels-page-main > .wp-block-post-content {
	margin-block: 0;
}

.awp-site-main:not(.brussels-home-main) {
	margin-block: 0;
}

.awp-site-main:not(.brussels-home-main) > .wp-block-post-title {
	box-sizing: border-box;
	width: min(100% - (2 * var(--awp-page-gutter)), var(--wp--style--global--content-size));
	margin: 0 auto;
	padding-block-start: clamp(3.5rem, 8vw, 6.5rem);
	font-size: clamp(3rem, 6vw, 5rem);
}

.awp-site-main:not(.brussels-home-main) > .wp-block-post-content {
	margin-block: 0;
}

.brussels-page-shell {
	box-sizing: border-box;
	width: min(100% - (2 * var(--awp-page-gutter)), var(--wp--style--global--content-size));
	margin-inline: auto;
}

.brussels-page-intro {
	padding-block: clamp(4.5rem, 10vw, 8rem) clamp(3.5rem, 7vw, 6rem);
	max-width: 52rem;
}

.brussels-page-intro > * { margin-block: 0; }
.brussels-page-intro > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.brussels-page-intro h1 { max-width: 13ch; }
.brussels-page-intro .brussels-kicker,
.brussels-page-section .brussels-kicker,
.brussels-cta-band .brussels-kicker {
	color: var(--awp-accent, var(--wp--preset--color--primary));
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.3;
	text-transform: uppercase;
}

.brussels-page-intro .brussels-lead {
	color: var(--wp--preset--color--text);
	font-size: clamp(1.15rem, 1rem + .8vw, 1.55rem);
	line-height: 1.5;
	max-width: 38rem;
}

.brussels-page-section {
	box-sizing: border-box;
	width: min(100% - (2 * var(--awp-page-gutter)), var(--wp--style--global--content-size));
	margin-inline: auto;
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

.brussels-page-section + .brussels-page-section {
	border-top: 1px solid var(--wp--preset--color--border);
}

.brussels-page-section--tint {
	width: 100%;
	max-width: none;
	padding-inline: var(--awp-page-gutter);
	background: var(--wp--preset--color--surface);
}

.brussels-page-section--tint > * {
	width: min(100%, var(--wp--style--global--content-size));
	margin-inline: auto;
}

.brussels-page-section > .wp-block-heading { max-width: 18ch; }
.brussels-page-section > .wp-block-heading + p { max-width: 42rem; }
.brussels-page-section p { max-width: 42rem; }
.brussels-page-section .wp-block-list { max-width: 42rem; }

.brussels-editorial-split-page {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 6rem);
}

.brussels-editorial-split-page.is-reversed { grid-template-columns: minmax(18rem, .92fr) minmax(0, 1.08fr); }
.brussels-editorial-split-page.is-reversed > .brussels-page-media { order: 2; }
.brussels-page-media { margin: 0; }
.brussels-page-media img { width: 100%; height: auto; max-height: 42rem; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.brussels-page-media--terrain img { object-fit: contain; max-height: none; }
.brussels-editorial-copy > * { margin-block: 0; }
.brussels-editorial-copy > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.brussels-editorial-copy .wp-block-list { padding-inline-start: 1.25rem; }

.brussels-fact-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
	margin-block-start: var(--wp--preset--spacing--50);
}

.brussels-fact-grid > .wp-block-group {
	margin: 0;
	padding-block-start: var(--wp--preset--spacing--30);
	border-top: 2px solid var(--awp-accent, var(--wp--preset--color--primary));
}

.brussels-fact-grid h3 { margin-block: 0 .5rem; }
.brussels-fact-grid p { margin-block: 0; }

.brussels-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-block-start: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--border);
	border: 1px solid var(--wp--preset--color--border);
}

.brussels-info-grid > .wp-block-group {
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--background);
}

.brussels-info-grid h3 { margin-block: 0 .5rem; }
.brussels-info-grid p { margin-block: 0; }

.brussels-callout {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: clamp(1.25rem, 3vw, 2rem);
	border-inline-start: 3px solid var(--awp-accent, var(--wp--preset--color--primary));
	background: var(--wp--preset--color--surface);
}

.brussels-callout > * { margin-block: 0; }
.brussels-callout > * + * { margin-block-start: .6rem; }
.brussels-callout strong { color: var(--wp--preset--color--contrast); }

.brussels-chapter-nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin-block-start: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--border);
	border: 1px solid var(--wp--preset--color--border);
}

.brussels-chapter-card {
	min-height: 10rem;
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--background);
}

.brussels-chapter-card > * { margin-block: 0; }
.brussels-chapter-card > * + * { margin-block-start: .65rem; }
.brussels-chapter-card .chapter-number { color: var(--awp-accent, var(--wp--preset--color--primary)); font-weight: 700; letter-spacing: .12em; }
.brussels-chapter-card h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.brussels-chapter-card a { font-size: var(--wp--preset--font-size--small); font-weight: 700; }

.brussels-rule-chapter { scroll-margin-top: 2rem; }
.brussels-rule-chapter > .wp-block-heading { display: flex; gap: .7rem; align-items: baseline; }
.brussels-rule-chapter .chapter-number { color: var(--awp-accent, var(--wp--preset--color--primary)); font-size: .8em; letter-spacing: .08em; }
.brussels-rule-chapter .wp-block-list { padding-inline-start: 1.25rem; }

.brussels-cta-band {
	width: 100%;
	box-sizing: border-box;
	padding: clamp(3rem, 7vw, 6rem) var(--awp-page-gutter);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--background);
}

.brussels-cta-band > .wp-block-group { width: min(100%, var(--wp--style--global--content-size)); margin-inline: auto; }
.brussels-cta-band h2, .brussels-cta-band p { color: var(--wp--preset--color--background); }
.brussels-cta-band h2 { max-width: 18ch; }
.brussels-cta-band .brussels-kicker { color: var(--wp--preset--color--yellow); }
.brussels-cta-band .wp-block-button__link { background: var(--wp--preset--color--background); border-color: var(--wp--preset--color--background); color: var(--wp--preset--color--contrast); }

@media (max-width: 767px) {
	.brussels-editorial-split-page,
	.brussels-editorial-split-page.is-reversed { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--50); }
	.brussels-editorial-split-page.is-reversed > .brussels-page-media { order: 0; }
	.brussels-fact-grid,
	.brussels-info-grid { grid-template-columns: minmax(0, 1fr); }
	.brussels-chapter-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.brussels-chapter-card { min-height: auto; }
}

@media (max-width: 480px) {
	.brussels-chapter-nav { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   Split editorial section — 50/50 image left / text right
   ========================================================= */

.brussels-split-text .awp-accent-line {
	height: 2px;
	width: 3rem;
	margin-block-start: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--40);
}

/* =========================================================
   Rules teaser legend accent tokens — exact semantic order:
   1 Blue, 2 Yellow, 3 Red, 4 Black, 5 Blue, 6 Yellow
   ========================================================= */

.brussels-legend-1 { --awp-accent: var(--wp--preset--color--primary); --awp-on-accent: var(--wp--preset--color--background); }
.brussels-legend-2 { --awp-accent: var(--wp--preset--color--yellow); --awp-on-accent: var(--wp--preset--color--contrast); }
.brussels-legend-3 { --awp-accent: var(--wp--preset--color--red); --awp-on-accent: var(--wp--preset--color--background); }
.brussels-legend-4 { --awp-accent: var(--wp--preset--color--black); --awp-on-accent: var(--wp--preset--color--background); }
.brussels-legend-5 { --awp-accent: var(--wp--preset--color--primary); --awp-on-accent: var(--wp--preset--color--background); }
.brussels-legend-6 { --awp-accent: var(--wp--preset--color--yellow); --awp-on-accent: var(--wp--preset--color--contrast); }

.brussels-legend-orb {
	width: 32px;
	height: 32px;
	border-radius: 9999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--awp-accent);
	color: var(--awp-on-accent);
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1;
	flex: 0 0 32px;
}

/* =========================================================
   Header & Footer surface adjustments — light touch
   ========================================================= */

.brussels-header .awp-site-header {
	background-color: var(--wp--preset--color--background);
	padding-block-start: var(--wp--preset--spacing--30);
	padding-block-end: var(--wp--preset--spacing--30);
}

.brussels-lang-static {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	letter-spacing: 0.04em;
	font-weight: 500;
	line-height: 1;
	pointer-events: none;
	user-select: none;
}

.awp-site-footer.brussels-footer {
	--awp-footer-logo-width: 9.375rem;
	--awp-footer-logo-max-height: 10rem;
	background-color: var(--wp--preset--color--surface);
	border-top-color: var(--wp--preset--color--border);
	padding-block-start: var(--wp--preset--spacing--50);
	padding-block-end: var(--wp--preset--spacing--50);
	margin-block-start: 0;
}
