/* ============================================================================
   C&A Brands — theme-extras.css
   Component + pattern styling that theme.json can't express, plus the
   per-practice block style variations registered in functions.php.
   Loaded on the front end AND in the editor (add_editor_style).
   Tokens come from theme.json: var(--wp--preset--color--*) etc.
   ========================================================================== */

:root {
	--ca-health: var(--wp--preset--color--health, #007CBE);
	--ca-health-dk: var(--wp--preset--color--health-dark, #005A8A);
	--ca-publishing: var(--wp--preset--color--publishing, #FFC233);
	--ca-publishing-dk: var(--wp--preset--color--publishing-dark, #C49200);
	--ca-publishing-txt: var(--wp--preset--color--publishing-text, #795800);
	--ca-digital: var(--wp--preset--color--digital, #DE3C4B);
	--ca-digital-dk: var(--wp--preset--color--digital-dark, #B02F3C);
	--ca-night: var(--wp--preset--color--night, #111213);
	--ca-rule: var(--wp--preset--color--rule, #E2E2E8);
	--ca-muted: var(--wp--preset--color--muted, #6E6E78);
	--ca-ink: var(--wp--preset--color--contrast, #1C1C1E);
	--ca-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ----------------------------------------------------------------------------
   GLOBAL EDITORIAL TOUCHES
   -------------------------------------------------------------------------- */
.wp-block-post-content,
.entry-content {
	text-wrap: pretty;
}

/* Italic emphasis inside headings reads as muted editorial serif */
:where(h1, h2, h3) em,
:where(h1, h2, h3) i {
	font-style: italic;
	color: var(--ca-muted);
}

/* ----------------------------------------------------------------------------
   BLOCK STYLE VARIATIONS — registered in functions.php
   -------------------------------------------------------------------------- */

/* Eyebrow label */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 400 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--ca-muted) !important;
	line-height: 1.4 !important;
	display: flex;
	align-items: center;
	gap: 0.85rem;
}
.is-style-eyebrow::before {
	content: "";
	width: 18px;
	height: 1px;
	background: currentColor;
	opacity: 0.5;
	flex-shrink: 0;
}

/* Lead editorial paragraph */
.is-style-lead {
	font-family: var(--wp--preset--font-family--accent) !important;
	font-style: italic;
	font-size: var(--wp--preset--font-size--large) !important;
	font-weight: 300;
	color: var(--ca-muted);
	line-height: 1.6;
}

/* Editorial italic heading */
.is-style-editorial-italic {
	font-style: italic;
}

/* Buttons — practice colors. Target the inner link element. */
.wp-block-button.is-style-health .wp-block-button__link { background: var(--ca-health); color: #fff; border: none; }
.wp-block-button.is-style-health .wp-block-button__link:hover { background: var(--ca-health-dk); }
.wp-block-button.is-style-publishing .wp-block-button__link { background: var(--ca-publishing); color: var(--ca-ink); border: none; }
.wp-block-button.is-style-publishing .wp-block-button__link:hover { background: var(--ca-publishing-dk); color: #fff; }
.wp-block-button.is-style-digital .wp-block-button__link { background: var(--ca-digital); color: #fff; border: none; }
.wp-block-button.is-style-digital .wp-block-button__link:hover { background: var(--ca-digital-dk); }

.wp-block-button.is-style-health-outline .wp-block-button__link { background: transparent; color: var(--ca-health); border: 1px solid var(--ca-health); }
.wp-block-button.is-style-health-outline .wp-block-button__link:hover { background: var(--ca-health); color: #fff; }
.wp-block-button.is-style-publishing-outline .wp-block-button__link { background: transparent; color: var(--ca-publishing-txt); border: 1px solid var(--ca-publishing); }
.wp-block-button.is-style-publishing-outline .wp-block-button__link:hover { background: var(--ca-publishing); color: var(--ca-ink); }
.wp-block-button.is-style-digital-outline .wp-block-button__link { background: transparent; color: var(--ca-digital); border: 1px solid var(--ca-digital); }
.wp-block-button.is-style-digital-outline .wp-block-button__link:hover { background: var(--ca-digital); color: #fff; }

.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: var(--ca-muted); border: 1px solid var(--ca-rule); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { color: var(--ca-ink); border-color: var(--ca-ink); }

/* Practice section variations: colored top rule + accent variable */
.is-style-practice-health { --ca-accent: var(--ca-health); --ca-accent-txt: var(--ca-health); }
.is-style-practice-publishing { --ca-accent: var(--ca-publishing); --ca-accent-txt: var(--ca-publishing-txt); }
.is-style-practice-digital { --ca-accent: var(--ca-digital); --ca-accent-txt: var(--ca-digital); }
.is-style-practice-health,
.is-style-practice-publishing,
.is-style-practice-digital {
	border-top: 3px solid var(--ca-accent);
}

/* Editorial cards */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--base, #fff);
	box-shadow: var(--wp--preset--shadow--subtle, 0 2px 12px rgba(0,0,0,0.06));
	transition: transform 0.3s var(--ca-ease), box-shadow 0.3s var(--ca-ease);
}
.wp-block-group.is-style-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--card, 0 16px 48px rgba(0,0,0,0.10));
}
.wp-block-group.is-style-card-bordered {
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--ca-rule);
}

/* Separators */
.wp-block-separator.is-style-health { border: none; border-top: 2px solid var(--ca-health); opacity: 1; max-width: none; }
.wp-block-separator.is-style-publishing { border: none; border-top: 2px solid var(--ca-publishing); opacity: 1; max-width: none; }
.wp-block-separator.is-style-digital { border: none; border-top: 2px solid var(--ca-digital); opacity: 1; max-width: none; }
.wp-block-separator.is-style-tri-cascade {
	border: none;
	height: 9px;
	max-width: none;
	background: linear-gradient(
		to bottom,
		var(--ca-health) 0, var(--ca-health) 3px,
		transparent 3px, transparent 4px,
		var(--ca-publishing) 4px, var(--ca-publishing) 6px,
		transparent 6px, transparent 7px,
		var(--ca-digital) 7px, var(--ca-digital) 9px
	);
	opacity: 1;
}

/* ----------------------------------------------------------------------------
   TRI-PRACTICE STRIPE (pattern: ca-brands/tri-stripe & decorative use)
   -------------------------------------------------------------------------- */
.ca-tri-stripe {
	display: flex;
	height: 4px;
	width: 100%;
}
.ca-tri-stripe > span { flex: 1; }
.ca-tri-stripe .h { background: var(--ca-health); }
.ca-tri-stripe .e { background: var(--ca-publishing); }
.ca-tri-stripe .b { background: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   TRIPTYCH PRACTICE PORTAL (pattern: ca-brands/triptych-portal)
   Built from columns; these classes style the panels.
   -------------------------------------------------------------------------- */
.ca-portal { position: relative; }
.ca-panel {
	position: relative;
	overflow: hidden;
	min-height: 78vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 !important;
}
.ca-panel .ca-panel-inner {
	position: relative;
	z-index: 2;
	padding: 0 3rem 3.5rem;
}
.ca-panel::before { /* darkening overlay */
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ca-night);
	opacity: 0.82;
	transition: opacity 0.7s var(--ca-ease);
	z-index: 1;
}
.ca-panel:hover::before { opacity: 0.42; }
.ca-panel .ca-panel-accent {
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 0;
	z-index: 3;
	transition: height 0.5s var(--ca-ease);
}
.ca-panel:hover .ca-panel-accent { height: 4px; }
.ca-panel-h .ca-panel-accent { background: var(--ca-health); }
.ca-panel-e .ca-panel-accent { background: var(--ca-publishing); }
.ca-panel-b .ca-panel-accent { background: var(--ca-digital); }
.ca-panel .ca-ghost {
	position: absolute;
	top: 50%; right: 1.5rem;
	transform: translateY(-50%);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(6rem, 13vw, 11rem);
	line-height: 1;
	color: rgba(255,255,255,0.04);
	z-index: 1;
	pointer-events: none;
	letter-spacing: -0.04em;
}
.ca-panel-idx {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.72rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.35);
	margin: 0 0 1rem;
}
.ca-panel-line { width: 36px; height: 2px; margin-bottom: 1.4rem; transition: width 0.5s var(--ca-ease); }
.ca-panel:hover .ca-panel-line { width: 64px; }
.ca-panel-h .ca-panel-line { background: var(--ca-health); }
.ca-panel-e .ca-panel-line { background: var(--ca-publishing); }
.ca-panel-b .ca-panel-line { background: var(--ca-digital); }
.ca-panel h2, .ca-panel h3 { color: #fff; margin: 0 0 0.6rem; }
.ca-panel .ca-panel-tagline {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: 1.05rem;
	color: rgba(255,255,255,0.5);
	line-height: 1.55;
	margin: 0 0 1.4rem;
	max-width: 320px;
}
.ca-panel .ca-panel-desc {
	font-size: 0.85rem;
	color: rgba(255,255,255,0.4);
	line-height: 1.8;
	max-width: 340px;
	margin: 0 0 1.75rem;
}
.ca-panel:hover .ca-panel-tagline { color: rgba(255,255,255,0.78); }
.ca-panel:hover .ca-panel-desc { color: rgba(255,255,255,0.68); }
.ca-panel .ca-panel-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
}
.ca-panel .ca-panel-cta::after { content: "→"; transition: transform 0.3s var(--ca-ease); }
.ca-panel:hover .ca-panel-cta::after { transform: translateX(4px); }

/* Cover-based portal panels (used by ca-brands/triptych-portal) */
.ca-cover-panel.wp-block-cover { justify-content: flex-end; }
.ca-cover-panel .wp-block-cover__background { transition: opacity 0.7s var(--ca-ease); }
.ca-cover-panel:hover .wp-block-cover__background { opacity: 0.42 !important; }
.ca-cover-panel::after {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 0;
	z-index: 3;
	transition: height 0.5s var(--ca-ease);
}
.ca-cover-panel:hover::after { height: 4px; }
.ca-cover-panel.h::after { background: var(--ca-health); }
.ca-cover-panel.e::after { background: var(--ca-publishing); }
.ca-cover-panel.b::after { background: var(--ca-digital); }
.ca-cover-panel .ca-panel-idx { color: rgba(255,255,255,0.4); }
.ca-cover-panel .ca-panel-line { width: 36px; height: 2px; transition: width 0.5s var(--ca-ease); }
.ca-cover-panel:hover .ca-panel-line { width: 64px; }
.ca-cover-panel.h .ca-panel-line { background: var(--ca-health); }
.ca-cover-panel.e .ca-panel-line { background: var(--ca-publishing); }
.ca-cover-panel.b .ca-panel-line { background: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   STAT BAND (pattern: ca-brands/stat-band)
   -------------------------------------------------------------------------- */
.ca-stat .ca-stat-val {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.4rem, 4vw, 3rem);
	line-height: 1;
	letter-spacing: -0.02em;
	margin: 0 0 0.4rem;
}
.ca-stat .ca-stat-lbl {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.35);
	margin: 0;
}
.ca-stat-val.h { color: var(--ca-health); }
.ca-stat-val.e { color: var(--ca-publishing); }
.ca-stat-val.b { color: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   CASE / WORK CARDS (pattern: ca-brands/case-cards, work-feed)
   -------------------------------------------------------------------------- */
.ca-case-top { height: 6px; }
.ca-case-top.h { background: var(--ca-health); }
.ca-case-top.e { background: var(--ca-publishing); }
.ca-case-top.b { background: var(--ca-digital); }
.ca-practice-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.55rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 400;
	padding: 0.25rem 0.7rem;
}
.ca-practice-tag.h { background: rgba(0,124,190,0.08); color: var(--ca-health); }
.ca-practice-tag.e { background: rgba(255,194,51,0.12); color: var(--ca-publishing-txt); }
.ca-practice-tag.b { background: rgba(222,60,75,0.08); color: var(--ca-digital); }
.ca-link-arrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ca-ink);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}
.ca-link-arrow::after { content: "→"; transition: transform 0.2s var(--ca-ease); }
.ca-link-arrow:hover::after { transform: translateX(4px); }

/* ----------------------------------------------------------------------------
   PER-PRACTICE NAVIGATION (pattern: ca-brands/nav-health etc.)
   Full-color bar with light/dark text.
   -------------------------------------------------------------------------- */
.ca-navbar { display: flex; align-items: center; gap: 2.5rem; padding: 0 2.5rem; min-height: 58px; }
.ca-navbar.h { background: var(--ca-health); }
.ca-navbar.e { background: var(--ca-publishing); }
.ca-navbar.b { background: var(--ca-digital); }
.ca-navbar .ca-nav-logo {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1rem;
	letter-spacing: 0.03em;
	margin-right: auto;
	text-decoration: none;
}
.ca-navbar.h .ca-nav-logo, .ca-navbar.b .ca-nav-logo { color: #fff; }
.ca-navbar.e .ca-nav-logo { color: var(--ca-ink); }
.ca-navbar .wp-block-navigation a,
.ca-navbar .wp-block-navigation .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ca-navbar.h .wp-block-navigation, .ca-navbar.b .wp-block-navigation { color: #fff; }
.ca-navbar.e .wp-block-navigation { color: var(--ca-ink); }

/* ----------------------------------------------------------------------------
   ENQUIRY FORMS (pattern: ca-brands/enquiry-forms)
   -------------------------------------------------------------------------- */
.ca-form-panel { background: #fff; padding: 2.75rem; border-top: 3px solid var(--ca-rule); }
.ca-form-panel.h { border-top-color: var(--ca-health); }
.ca-form-panel.e { border-top-color: var(--ca-publishing); }
.ca-form-panel.b { border-top-color: var(--ca-digital); }
.ca-field { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.25rem; }
.ca-field label {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.56rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ca-ink);
	font-weight: 400;
}
.ca-field input, .ca-field select, .ca-field textarea {
	width: 100%;
	padding: 0.7rem 0;
	border: none;
	border-bottom: 1px solid var(--ca-rule);
	background: transparent;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9rem;
	font-weight: 300;
	color: var(--ca-ink);
	border-radius: 0;
	outline: none;
	transition: border-color 0.25s;
}
.ca-field input::placeholder, .ca-field textarea::placeholder {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	color: var(--ca-muted);
}
.ca-form-panel.h .ca-field input:focus, .ca-form-panel.h .ca-field select:focus { border-color: var(--ca-health); }
.ca-form-panel.e .ca-field input:focus, .ca-form-panel.e .ca-field select:focus { border-color: var(--ca-publishing); }
.ca-form-panel.b .ca-field input:focus, .ca-form-panel.b .ca-field select:focus { border-color: var(--ca-digital); }
.ca-form-submit {
	width: 100%;
	padding: 0.9rem;
	border: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.58rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	transition: background 0.22s;
}
.ca-form-panel.h .ca-form-submit { background: var(--ca-health); }
.ca-form-panel.h .ca-form-submit:hover { background: var(--ca-health-dk); }
.ca-form-panel.e .ca-form-submit { background: var(--ca-publishing); color: var(--ca-ink); }
.ca-form-panel.e .ca-form-submit:hover { background: var(--ca-publishing-dk); color: #fff; }
.ca-form-panel.b .ca-form-submit { background: var(--ca-digital); }
.ca-form-panel.b .ca-form-submit:hover { background: var(--ca-digital-dk); }
.ca-form-hint { font-family: var(--wp--preset--font-family--accent); font-style: italic; font-size: 0.72rem; color: var(--ca-muted); margin: 0.3rem 0 0; }

/* ----------------------------------------------------------------------------
   ALERTS / NOTICES (pattern: ca-brands/alerts)
   -------------------------------------------------------------------------- */
.ca-alert { display: flex; gap: 0.85rem; padding: 1rem 1.1rem; border-left: 2px solid var(--ca-rule); background: var(--wp--preset--color--surface, #F6F6F8); }
.ca-alert .ca-alert-title { font-size: 0.78rem; font-weight: 700; margin: 0 0 0.15rem; }
.ca-alert .ca-alert-text { font-size: 0.72rem; color: var(--ca-muted); line-height: 1.55; margin: 0; }
.ca-alert.h { border-color: var(--ca-health); background: rgba(0,124,190,0.06); }
.ca-alert.h .ca-alert-title { color: var(--ca-health); }
.ca-alert.e { border-color: var(--ca-publishing); background: rgba(255,194,51,0.10); }
.ca-alert.e .ca-alert-title { color: var(--ca-publishing-txt); }
.ca-alert.b { border-color: var(--ca-digital); background: rgba(222,60,75,0.07); }
.ca-alert.b .ca-alert-title { color: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   SERVICES GRID (pattern: ca-brands/services-grid) — dark cards w/ ghost numerals
   -------------------------------------------------------------------------- */
.ca-service { position: relative; overflow: hidden; padding: 2.5rem; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); height: 100%; }
.ca-service .ca-service-num {
	position: absolute; top: -0.4rem; right: 0.5rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 5rem; line-height: 1; opacity: 0.12;
}
.ca-service-num.h { color: var(--ca-health); }
.ca-service-num.e { color: var(--ca-publishing); }
.ca-service-num.b { color: var(--ca-digital); }
.ca-service .ca-service-rule { width: 48px; height: 2px; margin: 0 0 1.5rem; transition: width 0.3s var(--ca-ease); }
.ca-service:hover .ca-service-rule { width: 96px; }
.ca-service-rule.h { background: var(--ca-health); }
.ca-service-rule.e { background: var(--ca-publishing); }
.ca-service-rule.b { background: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   TESTIMONIALS (pattern: ca-brands/testimonials)
   -------------------------------------------------------------------------- */
.ca-testimonial { position: relative; padding: 2.5rem; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); height: 100%; display: flex; flex-direction: column; }
.ca-testimonial .ca-quote-mark { font-family: var(--wp--preset--font-family--serif); font-size: 4rem; line-height: 0.6; opacity: 0.2; margin-bottom: 0.5rem; }
.ca-testimonial .ca-quote-rule { width: 56px; height: 2px; margin-bottom: 1.5rem; }
.ca-quote-rule.h, .ca-quote-mark.h { color: var(--ca-health); background: var(--ca-health); }
.ca-quote-mark.h, .ca-quote-mark.e, .ca-quote-mark.b { background: transparent; }
.ca-quote-rule.e { background: var(--ca-publishing); }
.ca-quote-rule.b { background: var(--ca-digital); }
.ca-quote-mark.e { color: var(--ca-publishing); }
.ca-quote-mark.b { color: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   PERSPECTIVES / ARTICLE FEED (pattern: ca-brands/perspectives + query loop)
   -------------------------------------------------------------------------- */
.ca-article-img { position: relative; overflow: hidden; aspect-ratio: 16 / 10; }
.ca-article-img img { width: 100%; height: 100%; object-fit: cover; }
.ca-article-bar { position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 2; }
.ca-article-bar.h { background: var(--ca-health); }
.ca-article-bar.e { background: var(--ca-publishing); }
.ca-article-bar.b { background: var(--ca-digital); }

/* Query-loop posts: colored top hairline */
.ca-feed .wp-block-post { border-top: 3px solid var(--ca-rule); padding-top: 1.25rem; }

/* ----------------------------------------------------------------------------
   HERO w/ tri-color bars (pattern: ca-brands/hero-image)
   -------------------------------------------------------------------------- */
.ca-hero-bars { position: absolute; top: 0; left: 0; right: 0; display: flex; z-index: 3; }
.ca-hero-bars > span { height: 8px; flex: 1; transform-origin: left; animation: ca-bar 1s var(--ca-ease) both; }
.ca-hero-bars > span.h { background: var(--ca-health); animation-delay: 0.2s; }
.ca-hero-bars > span.e { background: var(--ca-publishing); animation-delay: 0.4s; }
.ca-hero-bars > span.b { background: var(--ca-digital); animation-delay: 0.6s; }
@keyframes ca-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ----------------------------------------------------------------------------
   SITE HEADER chrome
   -------------------------------------------------------------------------- */
.ca-practice-pills { display: flex; }
.ca-practice-pills > span {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.55rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 0.25rem 0.85rem;
	border-right: 1px solid rgba(255,255,255,0.12);
}
.ca-practice-pills > span:last-child { border-right: none; }
.ca-practice-pills .h { color: var(--ca-health); }
.ca-practice-pills .e { color: var(--ca-publishing); }
.ca-practice-pills .b { color: var(--ca-digital); }

/* Footer practice marks */
.ca-footer-marks { display: flex; border: 1px solid rgba(255,255,255,0.1); width: fit-content; }
.ca-footer-marks > span {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.55rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.4rem 0.9rem;
	border-right: 1px solid rgba(255,255,255,0.1);
}
.ca-footer-marks > span:last-child { border-right: none; }
.ca-footer-marks .h { color: var(--ca-health); }
.ca-footer-marks .e { color: var(--ca-publishing); }
.ca-footer-marks .b { color: var(--ca-digital); }

/* ----------------------------------------------------------------------------
   ENTRANCE ANIMATION (front end only; respects reduced motion)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.ca-fade-up { animation: ca-fade-up 0.8s var(--ca-ease) both; }
	@keyframes ca-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
}

/* ----------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.ca-panel { min-height: 60vh; }
	.ca-navbar { flex-wrap: wrap; gap: 1rem; padding: 0.75rem 1.5rem; }
}
