/*
 * Climat-Alerte 2026 — design system
 * Tokens → base → layout → components → sections → header/hero/footer → utilities
 */

/* ------------------------------------------------------------------ fonts */
@font-face { font-family: "Poppins"; font-weight: 500; font-style: normal; font-display: swap; src: url(../fonts/poppins-500.woff) format("woff"); }
@font-face { font-family: "Poppins"; font-weight: 700; font-style: normal; font-display: swap; src: url(../fonts/poppins-700.woff) format("woff"); }
@font-face { font-family: "Lato CA"; font-weight: 400; font-style: normal; font-display: swap; src: url(../fonts/lato-400.woff) format("woff"); }
@font-face { font-family: "Lato CA"; font-weight: 400; font-style: italic; font-display: swap; src: url(../fonts/lato-400i.woff) format("woff"); }
@font-face { font-family: "Lato CA"; font-weight: 700; font-style: normal; font-display: swap; src: url(../fonts/lato-700.woff) format("woff"); }

/* ----------------------------------------------------------------- tokens */
:root {
	--ca-green-950: #08231a;
	--ca-green-900: #0c2e1d;
	--ca-green-800: #0f3d22;
	--ca-green-700: #17572f;
	--ca-green-600: #1f7a3d;
	--ca-green-500: #2e9e50;
	--ca-green-300: #9fd6ae;
	--ca-green-200: #c9ead2;
	--ca-green-100: #e4f3e8;
	--ca-green-50:  #f3faf5;
	--ca-gold-600: #c98a12;
	--ca-gold-500: #e0a526;
	--ca-gold-300: #f5d27a;
	--ca-red: #d7261e;
	--ca-ink: #13241a;
	--ca-body: #2f4237;
	--ca-muted: #5b6d62;
	--ca-line: #d7e5db;
	--ca-paper: #ffffff;
	--ca-mist: #f3f6f4;

	--ca-accent-green: var(--ca-green-600);
	--ca-accent-red: var(--ca-red);
	--ca-accent-gold: #a86f00;
	--ca-accent-blue: #1d5f8a;

	--ca-font-head: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
	--ca-font-body: "Lato CA", "Lato", "Segoe UI", system-ui, -apple-system, sans-serif;

	--ca-step--1: clamp(0.9rem, 0.87rem + 0.1vw, 0.95rem);
	--ca-step-0: clamp(1.06rem, 1.02rem + 0.2vw, 1.16rem);
	--ca-step-1: clamp(1.2rem, 1.1rem + 0.45vw, 1.45rem);
	--ca-step-2: clamp(1.4rem, 1.2rem + 0.9vw, 1.9rem);
	--ca-step-3: clamp(1.7rem, 1.35rem + 1.6vw, 2.6rem);
	--ca-step-4: clamp(2.05rem, 1.5rem + 2.6vw, 3.5rem);

	--ca-space-xs: 0.5rem;
	--ca-space-s: 1rem;
	--ca-space-m: clamp(1.25rem, 1rem + 1vw, 2rem);
	--ca-space-l: clamp(2rem, 1.4rem + 2.5vw, 3.75rem);
	--ca-space-xl: clamp(3rem, 2rem + 4vw, 6rem);

	--ca-radius-s: 10px;
	--ca-radius: 18px;
	--ca-radius-l: 28px;
	--ca-shadow-s: 0 1px 2px rgba(12, 46, 29, 0.06), 0 2px 8px rgba(12, 46, 29, 0.06);
	--ca-shadow: 0 2px 6px rgba(12, 46, 29, 0.06), 0 12px 32px -8px rgba(12, 46, 29, 0.18);
	--ca-shadow-l: 0 30px 60px -20px rgba(12, 46, 29, 0.35);

	--ca-wrap: 1200px;
	--ca-gutter: clamp(16px, 4vw, 32px);
	--ca-header-h: 76px;
	--ca-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ------------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--ca-header-h) + 16px); }
body {
	margin: 0;
	background: var(--ca-paper);
	color: var(--ca-body);
	font-family: var(--ca-font-body);
	font-size: var(--ca-step-0);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--ca-green-600); text-underline-offset: 0.18em; text-decoration-thickness: 1px; transition: color 0.2s; }
a:hover { color: var(--ca-green-800); }
:focus-visible { outline: 3px solid var(--ca-gold-500); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ca-font-head);
	font-weight: 700;
	color: var(--ca-green-800);
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
}
h1 { font-size: var(--ca-step-4); }
h2 { font-size: var(--ca-step-3); }
h3 { font-size: var(--ca-step-2); }
h4 { font-size: var(--ca-step-1); }
h5, h6 { font-size: var(--ca-step-0); }
p { margin: 0 0 1em; text-wrap: pretty; }
strong, b { color: inherit; font-weight: 700; }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: 0.35em; }
li::marker { color: var(--ca-green-500); }
hr { border: 0; }
blockquote { margin: 1.5em 0; padding: 0.5em 0 0.5em 1.25em; border-left: 4px solid var(--ca-green-500); font-style: italic; color: var(--ca-ink); }
table { width: 100%; border-collapse: collapse; }
td, th { padding: 0.6em; border-bottom: 1px solid var(--ca-line); text-align: left; }
.ca-sr, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ca-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--ca-gold-500); color: var(--ca-ink); padding: 0.75rem 1.25rem; border-radius: 999px; font-weight: 700; }
.ca-skip:focus { top: 1rem; }

/* ----------------------------------------------------------------- layout */
.ca-wrap { width: min(100% - 2 * var(--ca-gutter), var(--ca-wrap)); margin-inline: auto; }
.ca-flow > * + * { margin-top: 0; }
.ca-flow > :last-child { margin-bottom: 0; }
.ca-main { display: block; outline: 0; }

.ca-sec { position: relative; padding-block: var(--ca-space-m); }
.ca-page--builder > .ca-sec:first-child { padding-top: var(--ca-space-l); }
.ca-page--builder > .ca-sec:last-child { padding-bottom: var(--ca-space-xl); }
.ca-page--builder > .ca-sec[class*="ca-tone-"] + .ca-sec:not([class*="ca-tone-"]),
.ca-page--builder > .ca-sec.ca-has-bg + .ca-sec:not([class*="ca-tone-"]) { padding-top: var(--ca-space-l); }

.ca-grid {
	display: grid;
	gap: var(--ca-space-m) clamp(1.25rem, 3vw, 3rem);
	grid-template-columns: 1fr;
	align-items: start;
}
.ca-grid--middle { align-items: center; }
.ca-grid--stretch { align-items: stretch; }
@media (min-width: 700px) {
	.ca-grid--2 { grid-template-columns: var(--ca-tpl); }
	.ca-grid--3, .ca-grid--4, .ca-grid--5, .ca-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.ca-grid--3, .ca-grid--4, .ca-grid--5, .ca-grid--6 { grid-template-columns: var(--ca-tpl); }
}
.ca-grid > * { min-width: 0; }
@media (min-width: 1024px) {
	.ca-narrow { width: min(100%, var(--ca-narrow)); margin-inline: auto; }
}
@media (min-width: 700px) and (max-width: 1023.98px) {
	.ca-narrow { width: min(100%, calc(var(--ca-narrow) + 12%)); margin-inline: auto; }
}
.ca-col > * + *, .ca-single > * + * { margin-top: var(--ca-space-s); }
.ca-col > .ca-title + *, .ca-single > .ca-title + * { margin-top: 0; }
.ca-line-gap { height: var(--ca-space-m); }
.ca-inner + .ca-inner { margin-top: var(--ca-space-m); }
.ca-col--rule { border-left: 3px solid var(--ca-green-500); padding-left: var(--ca-space-m); }

/* Alignment helpers (kept from the editor settings) */
.ca-align-center { text-align: center; }
.ca-align-right { text-align: right; }
.ca-fig.ca-align-center { margin-inline: auto; }
.ca-fig.ca-align-right { margin-left: auto; }

/* ------------------------------------------------------------------ tones */
.ca-tone-soft { background: var(--ca-green-50); }
.ca-tone-mist { background: var(--ca-mist); }
.ca-tone-brand { background: linear-gradient(135deg, var(--ca-green-600), var(--ca-green-700)); color: #fff; }
.ca-tone-dark { background: linear-gradient(160deg, var(--ca-green-800), var(--ca-green-950)); color: rgba(255, 255, 255, 0.88); }
.ca-tone-gold { background: linear-gradient(135deg, #f7dc8f 0%, var(--ca-gold-500) 45%, #f3cf6c 70%, var(--ca-gold-600) 100%); color: var(--ca-ink); }
.ca-tone-brand :is(h1, h2, h3, h4, h5, h6, a, strong), .ca-tone-dark :is(h1, h2, h3, h4, h5, h6, a, strong) { color: #fff; }
.ca-tone-gold :is(h1, h2, h3, h4, h5, h6, strong) { color: var(--ca-ink); }
.ca-tone-brand .ca-eyebrow, .ca-tone-dark .ca-eyebrow { background: rgba(255, 255, 255, 0.14); color: #fff; }
.ca-tone-brand .ca-title__h::after, .ca-tone-dark .ca-title__h::after { background: var(--ca-gold-500); }
.ca-tone-brand [style*="--ca-accent"], .ca-tone-dark [style*="--ca-accent"] { color: inherit !important; }

/* Full-width tinted sections */
.ca-sec[class*="ca-tone-"], .ca-sec.ca-has-bg { padding-block: var(--ca-space-l); }
.ca-sec.ca-has-bg {
	background-image: linear-gradient(180deg, rgba(8, 35, 26, 0.72), rgba(8, 35, 26, 0.86)), var(--ca-bg);
	background-size: cover;
	background-position: center;
	color: #fff;
}
.ca-sec.ca-has-bg :is(h1, h2, h3, h4, h5, h6, strong, a) { color: #fff; }
.ca-sec--framed:not([class*="ca-tone-"]) > .ca-wrap { border: 1px solid var(--ca-line); border-radius: var(--ca-radius-l); padding: var(--ca-space-m); }
.ca-sec--framed[class*="ca-tone-"] { background: none; color: inherit; }
.ca-sec--framed[class*="ca-tone-"] > .ca-wrap {
	background: var(--ca-mist);
	border: 1px solid var(--ca-line);
	border-radius: var(--ca-radius-l);
	padding: var(--ca-space-l) var(--ca-space-m);
	box-shadow: var(--ca-shadow-s);
}
.ca-sec--tall { min-height: min(92vh, 900px); display: grid; align-items: center; }

/* ------------------------------------------------------------------ cards */
.ca-card {
	border-radius: var(--ca-radius);
	padding: clamp(1.25rem, 1rem + 1.2vw, 2rem);
	box-shadow: var(--ca-shadow-s);
}
.ca-card.ca-tone-soft { border: 1px solid var(--ca-green-200); box-shadow: none; }
.ca-card.ca-tone-mist { border: 1px solid var(--ca-line); box-shadow: none; }
.ca-card.ca-tone-gold { box-shadow: var(--ca-shadow); border: 1px solid rgba(120, 80, 0, 0.25); }
.ca-card--outline { border: 1px solid var(--ca-line); background: #fff; box-shadow: var(--ca-shadow-s); }
.ca-card.ca-has-bg { background-image: linear-gradient(180deg, rgba(8, 35, 26, 0.7), rgba(8, 35, 26, 0.88)), var(--ca-bg); background-size: cover; background-position: center; color: #fff; }
.ca-card.ca-has-bg :is(h1, h2, h3, h4, strong) { color: #fff; }
.ca-grid > .ca-text.ca-card, .ca-grid > .ca-col.ca-card { height: 100%; }

/* Row of text columns without their own card → subtle cards on wide screens */
.ca-grid--4 > .ca-col:not(.ca-card) > .ca-text:only-child,
.ca-grid--5 > .ca-col:not(.ca-card) > .ca-text:only-child {
	background: #fff;
	border: 1px solid var(--ca-line);
	border-radius: var(--ca-radius);
	padding: 1.25rem;
	height: 100%;
	box-shadow: var(--ca-shadow-s);
	transition: transform 0.35s var(--ca-ease), box-shadow 0.35s var(--ca-ease);
}
.ca-grid--4 > .ca-col:not(.ca-card) > .ca-text:only-child:hover,
.ca-grid--5 > .ca-col:not(.ca-card) > .ca-text:only-child:hover { transform: translateY(-4px); box-shadow: var(--ca-shadow); }

/* ------------------------------------------------------------------ text */
.ca-text { font-size: var(--ca-step-0); }
.ca-text > :first-child { margin-top: 0; }
.ca-text h1, .ca-text h2 { font-size: var(--ca-step-2); }
.ca-text h3 { font-size: var(--ca-step-1); }
.ca-text h4, .ca-text h5, .ca-text h6 { font-size: var(--ca-step-0); letter-spacing: 0.01em; }
.ca-text img { border-radius: var(--ca-radius-s); }
.ca-text [style*="text-align: justify"], .ca-text [style*="text-align:justify"] { text-align: left !important; }
.ca-text ul { list-style: none; padding-left: 0; }
.ca-text ul > li { position: relative; padding-left: 1.4em; }
.ca-text ul > li::before { content: ""; position: absolute; left: 0.2em; top: 0.62em; width: 0.45em; height: 0.45em; border-radius: 50%; background: var(--ca-green-500); }
.ca-tone-dark .ca-text ul > li::before, .ca-tone-brand .ca-text ul > li::before { background: var(--ca-gold-500); }
.ca-text ol { padding-left: 1.4em; }

/* ------------------------------------------------------------------ titles */
.ca-title { margin-bottom: var(--ca-space-s); }
.ca-title__h { font-size: var(--ca-step-3); margin: 0; }
.ca-title__h::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: 0.45em;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--ca-green-500), var(--ca-gold-500));
}
.ca-title.ca-align-center .ca-title__h::after { margin-inline: auto; }
.ca-title.ca-align-right .ca-title__h::after { margin-left: auto; }
.ca-title--page .ca-title__h { font-size: var(--ca-step-4); color: var(--ca-green-800); }
.ca-title--display .ca-title__h { font-size: var(--ca-step-3); }
.ca-title--small .ca-title__h { font-size: var(--ca-step-1); }
.ca-title--small .ca-title__h::after { width: 32px; height: 3px; }
.ca-eyebrow {
	display: inline-block;
	margin: 0 0 0.6rem;
	padding: 0.3em 0.85em;
	border-radius: 999px;
	background: var(--ca-green-100);
	color: var(--ca-green-700);
	font-family: var(--ca-font-head);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.ca-lede { margin: 0.65rem 0 0; font-size: var(--ca-step-1); color: var(--ca-muted); }
.ca-tone-dark .ca-lede, .ca-tone-brand .ca-lede, .ca-has-bg .ca-lede { color: rgba(255, 255, 255, 0.8); }

/* ------------------------------------------------------------------ buttons */
.ca-btn-wrap { margin: var(--ca-space-s) 0 0; }
.ca-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 48px;
	padding: 0.8rem 1.6rem;
	border-radius: 999px;
	border: 2px solid transparent;
	font-family: var(--ca-font-head);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: transform 0.25s var(--ca-ease), box-shadow 0.25s var(--ca-ease), background-color 0.25s, color 0.25s;
}
.ca-btn:hover { transform: translateY(-2px); }
.ca-btn:active { transform: translateY(0); }
.ca-btn--primary { background: var(--ca-green-600); color: #fff; box-shadow: 0 8px 20px -8px rgba(31, 122, 61, 0.7); }
.ca-btn--primary:hover { background: var(--ca-green-700); color: #fff; }
.ca-btn--gold { background: linear-gradient(135deg, var(--ca-gold-300), var(--ca-gold-500)); color: var(--ca-ink); box-shadow: 0 8px 20px -10px rgba(201, 138, 18, 0.9); }
.ca-btn--gold:hover { color: var(--ca-ink); box-shadow: 0 12px 26px -10px rgba(201, 138, 18, 1); }
.ca-btn--ghost { background: #fff; border-color: var(--ca-green-600); color: var(--ca-green-700); }
.ca-btn--ghost:hover { background: var(--ca-green-600); color: #fff; }
.ca-btn--sm { min-height: 42px; padding: 0.55rem 1.2rem; font-size: 0.88rem; }
.ca-tone-dark .ca-btn--primary, .ca-tone-brand .ca-btn--primary, .ca-has-bg .ca-btn--primary { background: #fff; color: var(--ca-green-800); }

/* ------------------------------------------------------------------ figures */
.ca-fig { margin: 0; max-width: 100%; }
.ca-fig__img, .ca-fig img { width: 100%; border-radius: var(--ca-radius); box-shadow: var(--ca-shadow-s); }
.ca-fig--natural { width: fit-content; }
.ca-fig--natural img { width: auto; max-width: 100%; box-shadow: none; border-radius: var(--ca-radius-s); }
.ca-fig__cap { margin-top: 0.6rem; font-size: var(--ca-step--1); color: var(--ca-muted); font-style: italic; line-height: 1.45; }
.ca-zoom { display: block; position: relative; overflow: hidden; border-radius: var(--ca-radius); cursor: zoom-in; }
.ca-zoom img { transition: transform 0.6s var(--ca-ease); }
.ca-zoom:hover img { transform: scale(1.04); }
.ca-zoom::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f3d22' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M20 20l-4.8-4.8M10.5 7.5v6M7.5 10.5h6'/%3E%3C/svg%3E") center / 18px no-repeat;
	opacity: 0;
	transform: scale(0.8);
	transition: 0.25s var(--ca-ease);
}
.ca-zoom:hover::after, .ca-zoom:focus-visible::after { opacity: 1; transform: none; }

/* Gallery rows (columns of photos) → masonry */
.ca-sec--gallery .ca-grid { display: block; columns: 4 240px; column-gap: 1.25rem; }
.ca-sec--gallery .ca-col { display: contents; }
.ca-sec--gallery .ca-fig {
	break-inside: avoid;
	margin: 0 0 1.25rem;
	background: #fff;
	border-radius: var(--ca-radius);
	box-shadow: var(--ca-shadow-s);
	overflow: hidden;
	transition: box-shadow 0.3s, transform 0.3s var(--ca-ease);
}
.ca-sec--gallery .ca-fig:hover { box-shadow: var(--ca-shadow); transform: translateY(-3px); }
.ca-sec--gallery .ca-fig img, .ca-sec--gallery .ca-zoom { border-radius: 0; box-shadow: none; }
.ca-sec--gallery .ca-fig__cap { margin: 0; padding: 0.75rem 1rem 0.9rem; font-style: normal; color: var(--ca-body); }

/* ------------------------------------------------------------------ dividers */
.ca-divider { color: var(--ca-green-300); width: min(240px, 60%); height: 12px; margin: var(--ca-space-m) auto; }
.ca-divider svg { display: block; width: 100%; height: 100%; }
.ca-sep { height: 1px; background: linear-gradient(90deg, transparent, var(--ca-green-300), transparent); margin: var(--ca-space-m) 0; }

/* ------------------------------------------------------------------ carousel */
.ca-carousel { position: relative; }
.ca-carousel__track {
	list-style: none;
	margin: 0;
	padding: 0.25rem 0.25rem 1rem;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(82%, 340px);
	gap: 1.25rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	outline-offset: 6px;
}
.ca-carousel__track::-webkit-scrollbar { display: none; }
.ca-carousel__item { scroll-snap-align: start; margin: 0; padding: 0; }
.ca-carousel__item::before { display: none; }
.ca-carousel--photos .ca-carousel__track { grid-auto-columns: min(85%, 420px); }
.ca-carousel--photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ca-radius); }
.ca-carousel__nav { display: flex; justify-content: center; gap: 0.75rem; margin-top: 0.5rem; }
.ca-carousel__btn {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid var(--ca-line);
	background: #fff;
	color: var(--ca-green-700);
	font-size: 1.2rem;
	cursor: pointer;
	box-shadow: var(--ca-shadow-s);
	transition: background 0.2s, color 0.2s, transform 0.2s;
}
.ca-carousel__btn:hover { background: var(--ca-green-600); color: #fff; transform: translateY(-2px); }
.ca-carousel__btn[disabled] { opacity: 0.35; pointer-events: none; }

/* People */
.ca-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ca-person {
	background: #fff;
	border: 1px solid var(--ca-line);
	border-radius: var(--ca-radius);
	overflow: hidden;
	box-shadow: var(--ca-shadow-s);
	padding-bottom: 1.1rem;
	text-align: center;
	transition: transform 0.35s var(--ca-ease), box-shadow 0.35s var(--ca-ease);
}
.ca-person:hover { transform: translateY(-4px); box-shadow: var(--ca-shadow); }
.ca-person__photo { aspect-ratio: 1 / 1; background: var(--ca-green-100); overflow: hidden; margin-bottom: 1rem; }
.ca-person__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.ca-person__name { font-size: 1.05rem; margin: 0 1rem 0.25rem; color: var(--ca-ink); }
.ca-person__role { margin: 0 1rem; font-size: 0.9rem; line-height: 1.4; color: var(--ca-green-600); font-weight: 700; }
.ca-carousel--people .ca-carousel__track { grid-auto-columns: min(72%, 260px); }

/* Logos marquee */
.ca-logos { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); padding-block: 0.5rem; }
.ca-logos__track { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(2rem, 5vw, 4rem); width: max-content; align-items: center; animation: ca-marquee var(--ca-marquee-d, 40s) linear infinite; }
.ca-logos:hover .ca-logos__track { animation-play-state: paused; }
.ca-logos__item { margin: 0; flex: 0 0 auto; }
.ca-logos__item::before { display: none; }
.ca-logos__item img { height: 72px; width: auto; max-width: 180px; object-fit: contain; filter: grayscale(0.2); transition: filter 0.3s, transform 0.3s; }
.ca-logos__item img:hover { filter: none; transform: scale(1.05); }
@keyframes ca-marquee { to { transform: translateX(-50%); } }

/* Accordions */
.ca-acc { border: 1px solid var(--ca-line); border-radius: var(--ca-radius-s); background: #fff; margin-bottom: 0.75rem; }
.ca-acc summary { cursor: pointer; padding: 1rem 1.25rem; font-family: var(--ca-font-head); font-weight: 500; color: var(--ca-green-800); }
.ca-acc__body { padding: 0 1.25rem 1.25rem; }

/* Embeds */
.ca-video iframe, .ca-text iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: var(--ca-radius); }

/* Custom HTML blocks written in the editor */
.ca-raw { max-width: 100%; overflow-wrap: anywhere; }
.ca-raw section { border-radius: var(--ca-radius-l); }
.ca-raw .team-card { border-radius: var(--ca-radius) !important; transition: transform 0.35s var(--ca-ease), box-shadow 0.35s var(--ca-ease); }
.ca-raw .team-card:hover { transform: translateY(-4px); box-shadow: var(--ca-shadow) !important; }
.ca-raw h2, .ca-raw h3, .ca-raw h4 { font-family: var(--ca-font-head); }
.ca-raw p { text-align: left !important; }
.ca-raw [style*="minmax(300px"] { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; }
.ca-raw .carousel-container-unique { mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }

/* Contact Form 7 */
.wpcf7 form { display: grid; gap: 1rem; }
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .wpcf7 textarea, .wpcf7 select, .ca-form input, .ca-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 0.8rem 1rem;
	border: 1px solid var(--ca-line);
	border-radius: 12px;
	background: #fff;
	font: inherit;
	color: var(--ca-ink);
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wpcf7 textarea, .ca-form textarea { min-height: 160px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .ca-form input:focus, .ca-form textarea:focus { outline: 0; border-color: var(--ca-green-500); box-shadow: 0 0 0 4px rgba(46, 158, 80, 0.18); }
.wpcf7 input[type="submit"], .ca-form button { justify-self: start; min-height: 50px; padding: 0.8rem 2rem; border: 0; border-radius: 999px; background: var(--ca-green-600); color: #fff; font-family: var(--ca-font-head); font-weight: 500; font-size: 1rem; cursor: pointer; }
.wpcf7 input[type="submit"]:hover, .ca-form button:hover { background: var(--ca-green-700); }
.ca-form { display: grid; gap: 1rem; grid-template-columns: 1fr; max-width: 820px; margin-inline: auto; background: #fff; padding: var(--ca-space-m); border-radius: var(--ca-radius-l); box-shadow: var(--ca-shadow); }
@media (min-width: 700px) { .ca-form { grid-template-columns: 1fr 1fr; } .ca-form .ca-form__full { grid-column: 1 / -1; } }

/* ------------------------------------------------------------------ icons (Font Awesome 4 names used in content) */
.fa { display: inline-block; width: 1em; height: 1em; vertical-align: -0.125em; background: currentColor; -webkit-mask: var(--ca-ico) center / contain no-repeat; mask: var(--ca-ico) center / contain no-repeat; font-style: normal; }
.fa-map-marker { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.fa-phone { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E"); }
.fa-envelope { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.3L4 7.2V17h16V7.2z M4.6 7l7.4 4.7L19.4 7z'/%3E%3C/svg%3E"); }
.fa-folder-open { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h6l2 2h8a1 1 0 0 1 1 1v2H6.5a2 2 0 0 0-1.9 1.4L2.5 18V6a1 1 0 0 1 .5-1zM6.5 11H23l-2.6 8.2a1 1 0 0 1-1 .8H3.2z'/%3E%3C/svg%3E"); }
.fa-file-pdf-o { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm7 1.5V8h4.5zM7 13v5h1.3v-1.6h.8a1.7 1.7 0 0 0 0-3.4zm1.3 1.1h.7a.6.6 0 0 1 0 1.2h-.7zM11.2 13v5h1.5a2.5 2.5 0 0 0 0-5zm1.3 1.1h.2a1.4 1.4 0 0 1 0 2.8h-.2zM15.7 13v5H17v-2h1.6v-1.1H17v-.8h1.8V13z'/%3E%3C/svg%3E"); }
.fa-linkedin { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9.5h4v11H3zM9.5 9.5h3.8v1.6h.1c.5-1 1.8-2 3.8-2 4 0 4.8 2.6 4.8 6v5.4h-4v-4.8c0-1.2 0-2.7-1.6-2.7s-1.9 1.3-1.9 2.6v4.9h-4z'/%3E%3C/svg%3E"); }
.fa-facebook { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8.5V6.6c0-.9.6-1.1 1-1.1h2.6V1.6L14 1.5c-4 0-4.9 3-4.9 4.9v2.1H6.8v4H9v10h5v-10h3.3l.4-4z'/%3E%3C/svg%3E"); }
.fa-instagram { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='.8' fill='black'/%3E%3C/svg%3E"); }
.fa-youtube-play { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12c0 1.6.2 3.2.5 4.8a3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1c.3-1.6.5-3.2.5-4.8s-.2-3.2-.5-4.8zM9.8 15.1V8.9l5.4 3.1z'/%3E%3C/svg%3E"); }
.fa-twitter { --ca-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9zm-24.8 373.8h39.1L151.1 88h-42z'/%3E%3C/svg%3E"); }

/* ================================================================== HEADER */
.ca-ticker { background: var(--ca-green-950); color: var(--ca-green-100); font-size: 0.9rem; overflow: hidden; position: relative; z-index: 51; }
.ca-ticker__inner { overflow: hidden; }
.ca-ticker a { color: inherit; text-decoration: none; display: block; }
.ca-ticker a:hover { color: #fff; }
.ca-ticker strong { color: var(--ca-gold-300); }
.ca-ticker__track { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0.55rem var(--ca-gutter) 0.5rem; }
.ca-ticker__track.is-moving { display: inline-flex; gap: 4rem; overflow: visible; text-overflow: clip; padding-inline: 0; animation: ca-ticker var(--ca-ticker-d, 40s) linear infinite; }
.ca-ticker__track.is-moving > * { flex: 0 0 auto; }
.ca-ticker:hover .ca-ticker__track, .ca-ticker:focus-within .ca-ticker__track { animation-play-state: paused; }
@keyframes ca-ticker { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 2rem)); } }

.ca-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(15, 61, 34, 0.08);
	transition: box-shadow 0.3s;
}
/* Frosted background on a pseudo-element: backdrop-filter on the header itself
   would trap the fixed mobile menu inside the header box. */
.ca-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.9);
	-webkit-backdrop-filter: saturate(1.6) blur(14px);
	backdrop-filter: saturate(1.6) blur(14px);
	transition: background 0.3s;
}
.admin-bar .ca-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ca-header { top: 0; } }
.ca-header.is-scrolled { box-shadow: 0 8px 30px -12px rgba(12, 46, 29, 0.35); }
.ca-header.is-scrolled::before { background: rgba(255, 255, 255, 0.96); }
.ca-header__bar {
	width: min(100% - 2 * var(--ca-gutter), 1320px);
	margin-inline: auto;
	min-height: var(--ca-header-h);
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.ca-brand { flex: 0 0 auto; display: block; padding-block: 8px; }
.ca-brand__logo { height: 56px; width: auto; transition: height 0.3s var(--ca-ease); }
.ca-header.is-scrolled .ca-brand__logo { height: 46px; }
.ca-nav { flex: 1 1 auto; }
.ca-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.15rem; }
.ca-nav__item { margin: 0; position: relative; }
.ca-nav__item::before { display: none; }
.ca-nav__link {
	display: block;
	padding: 0.6rem 0.8rem;
	border-radius: 999px;
	font-family: var(--ca-font-head);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ca-green-800);
	white-space: nowrap;
	transition: background 0.2s, color 0.2s;
}
.ca-nav__link:hover { background: var(--ca-green-100); color: var(--ca-green-800); }
.ca-nav__link[aria-current="page"] { background: var(--ca-green-800); color: #fff; }
.ca-nav__sub { list-style: none; position: absolute; left: 0; top: 100%; min-width: 220px; padding: 0.5rem; margin: 0; background: #fff; border-radius: var(--ca-radius-s); box-shadow: var(--ca-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: 0.2s; }
.ca-nav__item--parent:hover > .ca-nav__sub, .ca-nav__item--parent:focus-within > .ca-nav__sub { opacity: 1; visibility: visible; transform: none; }
.ca-nav__extra { display: none; }
.ca-header__actions { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; margin-left: auto; }
.ca-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-height: 40px;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--ca-green-200);
	border-radius: 999px;
	font-family: var(--ca-font-head);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ca-green-700);
	background: var(--ca-green-50);
}
.ca-lang::before { content: ""; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.7 3.7 5.7 3.7 9s-1.2 6.3-3.7 9c-2.5-2.7-3.7-5.7-3.7-9S9.5 5.7 12 3z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.7 3.7 5.7 3.7 9s-1.2 6.3-3.7 9c-2.5-2.7-3.7-5.7-3.7-9S9.5 5.7 12 3z'/%3E%3C/svg%3E") center / contain no-repeat; }
.ca-lang:hover { background: var(--ca-green-800); border-color: var(--ca-green-800); color: #fff; }
.ca-burger { display: none; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--ca-green-800); color: #fff; cursor: pointer; align-items: center; justify-content: center; }
.ca-burger__box { position: relative; width: 20px; height: 14px; display: block; }
.ca-burger__box span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: 0.3s var(--ca-ease); }
.ca-burger__box span:nth-child(1) { top: 0; }
.ca-burger__box span:nth-child(2) { top: 6px; }
.ca-burger__box span:nth-child(3) { top: 12px; }
.ca-burger[aria-expanded="true"] .ca-burger__box span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.ca-burger[aria-expanded="true"] .ca-burger__box span:nth-child(2) { opacity: 0; }
.ca-burger[aria-expanded="true"] .ca-burger__box span:nth-child(3) { top: 6px; transform: rotate(-45deg); }

@media (max-width: 1199.98px) {
	:root { --ca-header-h: 68px; }
	.ca-brand__logo { height: 48px; }
	.ca-burger { display: inline-flex; }
	.ca-lang--bar { display: none; }
	.ca-nav {
		position: fixed;
		inset: 0;
		z-index: 60;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 2rem;
		padding: 6rem var(--ca-gutter) 3rem;
		background: radial-gradient(120% 80% at 100% 0%, var(--ca-green-700), var(--ca-green-950));
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.35s var(--ca-ease), visibility 0.35s;
	}
	.ca-nav.is-open { opacity: 1; visibility: visible; }
	.ca-nav__list { flex-direction: column; align-items: stretch; gap: 0.25rem; max-width: 560px; width: 100%; margin-inline: auto; }
	.ca-nav__link { color: #fff; font-size: clamp(1.1rem, 4.5vw, 1.5rem); letter-spacing: 0.02em; padding: 0.85rem 1.1rem; border-radius: 14px; white-space: normal; transform: translateY(12px); opacity: 0; transition: transform 0.45s var(--ca-ease), opacity 0.45s, background 0.2s; }
	.ca-nav.is-open .ca-nav__link { transform: none; opacity: 1; }
	.ca-nav.is-open .ca-nav__item:nth-child(2) .ca-nav__link { transition-delay: 0.04s; }
	.ca-nav.is-open .ca-nav__item:nth-child(3) .ca-nav__link { transition-delay: 0.08s; }
	.ca-nav.is-open .ca-nav__item:nth-child(4) .ca-nav__link { transition-delay: 0.12s; }
	.ca-nav.is-open .ca-nav__item:nth-child(5) .ca-nav__link { transition-delay: 0.16s; }
	.ca-nav.is-open .ca-nav__item:nth-child(6) .ca-nav__link { transition-delay: 0.2s; }
	.ca-nav__link:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
	.ca-nav__link[aria-current="page"] { background: rgba(255, 255, 255, 0.14); color: var(--ca-gold-300); }
	.ca-nav__sub { position: static; opacity: 1; visibility: visible; transform: none; background: none; box-shadow: none; padding-left: 1rem; }
	.ca-nav__extra { display: flex; justify-content: center; max-width: 560px; width: 100%; margin-inline: auto; }
	.ca-nav__extra .ca-lang { background: transparent; border-color: rgba(255, 255, 255, 0.4); color: #fff; min-height: 48px; padding-inline: 1.3rem; font-size: 0.9rem; }
	.ca-header__actions { position: relative; z-index: 61; }
	body.ca-menu-open { overflow: hidden; }
	body.ca-menu-open .ca-burger { background: #fff; color: var(--ca-green-800); }
}
@media (max-width: 420px) {
	.ca-header__actions .ca-btn--sm { padding-inline: 0.95rem; }
	.ca-brand__logo { height: 42px; }
}

/* ================================================================== HERO */
.ca-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	place-items: center;
	min-height: clamp(300px, 46vh, 480px);
	padding: var(--ca-space-l) var(--ca-gutter) calc(var(--ca-space-l) + 30px);
	text-align: center;
	color: #fff;
	background: var(--ca-green-900);
	overflow: hidden;
}
.ca-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background-image: var(--ca-hero, none);
	background-size: cover;
	background-position: center 35%;
	transform: scale(1.04);
	animation: ca-kenburns 22s ease-out both;
}
.ca-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(90% 70% at 50% 45%, rgba(8, 35, 26, 0.35), rgba(8, 35, 26, 0.8)),
		linear-gradient(180deg, rgba(12, 46, 29, 0.25), rgba(12, 46, 29, 0.75));
}
@keyframes ca-kenburns { from { transform: scale(1.12); } to { transform: scale(1.02); } }
.ca-hero--home { min-height: clamp(460px, 78vh, 760px); }
.ca-hero__inner { max-width: 960px; }
.ca-hero__logo { display: none; width: clamp(150px, 20vw, 220px); height: auto; margin: 0 auto 1.25rem; filter: drop-shadow(0 12px 30px rgba(0, 0, 0, 0.35)); }
.ca-hero--home .ca-hero__logo { display: block; }
.ca-hero__kicker, .ca-hero__widgets p:first-child {
	margin: 0 0 0.6rem;
	font-family: var(--ca-font-head);
	font-weight: 500;
	font-size: clamp(1.05rem, 0.9rem + 1vw, 1.7rem);
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.92);
	text-wrap: balance;
}
.ca-hero__claim {
	margin: 0 0 1rem;
	font-family: var(--ca-font-head);
	font-weight: 700;
	font-size: clamp(2rem, 1.2rem + 4vw, 4.3rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: #fff;
	text-shadow: 0 6px 30px rgba(0, 0, 0, 0.35);
	text-wrap: balance;
}
.ca-hero__by {
	display: inline-block;
	margin: 0;
	padding: 0.4rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	font-family: var(--ca-font-head);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.08);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.ca-hero__widgets, .ca-hero__widgets * { color: #fff; }
.ca-hero__curve { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 40px; fill: var(--ca-paper); }
.ca-hero__inner > * { animation: ca-rise 0.9s var(--ca-ease) both; }
.ca-hero__text { animation-delay: 0.12s; }
@keyframes ca-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Slider Revolution slideshow used as hero */
.ca-hero--slider { display: block; min-height: 0; padding: 0; background: var(--ca-green-900); }
.ca-hero--slider::before, .ca-hero--slider::after { content: none; }
.ca-hero__slider { position: relative; z-index: 0; }
.ca-hero__slider rs-module-wrap, .ca-hero__slider .rev_slider_wrapper { margin: 0 !important; }
.ca-hero--slider .ca-hero__curve { z-index: 2; pointer-events: none; }

/* ================================================================== FOOTER */
.ca-footer { position: relative; margin-top: var(--ca-space-l); background: var(--ca-green-900); color: rgba(255, 255, 255, 0.78); font-size: 0.98rem; }
.ca-footer__curve { position: absolute; top: -1px; left: 0; width: 100%; height: 40px; fill: var(--ca-paper); }
.ca-footer__body { padding-top: calc(var(--ca-space-l) + 10px); padding-bottom: var(--ca-space-m); }
.ca-footer .ca-sec { padding-block: var(--ca-space-s); background: none; }
.ca-footer .ca-sec[class*="ca-tone-"] { padding-block: var(--ca-space-s); }
.ca-footer .ca-sec + .ca-sec { border-top: 1px solid rgba(255, 255, 255, 0.08); }
.ca-footer .ca-card, .ca-footer .ca-tone-soft, .ca-footer .ca-tone-brand, .ca-footer .ca-tone-dark, .ca-footer .ca-tone-mist { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: none; color: rgba(255, 255, 255, 0.82); }
.ca-footer .ca-text { font-size: 0.98rem; }
.ca-footer :is(h1, h2, h3, h4, strong) { color: #fff; }
.ca-footer a { color: var(--ca-green-300); }
.ca-footer a:hover { color: #fff; }
.ca-footer .ca-fig img { box-shadow: none; border-radius: 12px; }
.ca-footer .ca-fig { max-width: 170px; }
.ca-footer .ca-col--rule { border-left-color: var(--ca-green-500); }
.ca-footer .ca-grid--3 { align-items: start; }
.ca-footer .footer-contacts { color: rgba(255, 255, 255, 0.75) !important; font-size: 0.95rem !important; }
.ca-footer .footer-contacts > div:not(.footer-socials-vertical) { align-items: flex-start !important; }
.ca-footer .footer-contacts .fa { flex: 0 0 auto; margin-top: 0.3em; color: var(--ca-green-300) !important; }
.ca-footer .footer-socials-vertical a { color: rgba(255, 255, 255, 0.8) !important; padding: 0.2rem 0; }
.ca-footer .footer-socials-vertical a:hover { color: var(--ca-gold-300) !important; }
.ca-footer .footer-accordion-trigger { background: var(--ca-green-500) !important; color: #fff !important; border: 0 !important; border-radius: 12px !important; padding: 0.9rem 1.1rem !important; min-height: 48px; font-family: var(--ca-font-head); font-weight: 500 !important; letter-spacing: 0.02em; gap: 1rem; }
.ca-footer .footer-accordion-trigger:hover, .ca-footer .footer-accordion-trigger.active { background: var(--ca-green-600) !important; }
.ca-footer .footer-accordion-trigger::after { content: "" !important; width: 12px; height: 12px; flex: 0 0 auto; border-right: 2px solid; border-bottom: 2px solid; transform: rotate(45deg) translateY(-3px); }
.ca-footer .footer-accordion-trigger.active::after { transform: rotate(-135deg); }
.ca-footer .footer-accordion-panel { background: rgba(0, 0, 0, 0.2) !important; border-radius: 0 0 12px 12px !important; }
.ca-footer .footer-liste-telechargements a { color: rgba(255, 255, 255, 0.82) !important; font-size: 0.92rem !important; }
@media (max-width: 699.98px) {
	.ca-footer .footer-socials-vertical { align-items: flex-start !important; }
	.ca-footer .ca-col--rule { border-left: 0; padding-left: 0; }
	.ca-footer .ca-fig { margin-inline: auto; }
}

/* Back to top */
.ca-top { position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--ca-green-800); color: #fff; font-size: 1.2rem; cursor: pointer; box-shadow: var(--ca-shadow); opacity: 0; visibility: hidden; transform: translateY(10px); transition: 0.3s var(--ca-ease); }
.ca-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.ca-top:hover { background: var(--ca-green-600); }

/* Lightbox */
.ca-lightbox { border: 0; padding: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; background: rgba(6, 22, 14, 0.94); color: #fff; }
.ca-lightbox::backdrop { background: rgba(6, 22, 14, 0.9); }
.ca-lightbox__fig { margin: 0; height: 100%; display: grid; place-items: center; align-content: center; gap: 1rem; padding: 4rem 1rem 2rem; }
.ca-lightbox__fig img { max-height: 78vh; width: auto; max-width: min(1200px, 100%); border-radius: 12px; box-shadow: var(--ca-shadow-l); }
.ca-lightbox__fig figcaption { max-width: 800px; text-align: center; color: rgba(255, 255, 255, 0.85); font-size: 0.95rem; }
.ca-lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.3); background: rgba(255, 255, 255, 0.08); color: #fff; font-size: 1.4rem; cursor: pointer; }
.ca-lightbox button:hover { background: rgba(255, 255, 255, 0.2); }
.ca-lightbox [data-close] { top: 16px; right: 16px; }
.ca-lightbox [data-step="-1"] { left: 16px; top: 50%; transform: translateY(-50%); }
.ca-lightbox [data-step="1"] { right: 16px; top: 50%; transform: translateY(-50%); }

/* Reveal on scroll (only with JS; never hides content without it) */
.ca-js .ca-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s var(--ca-ease), transform 0.8s var(--ca-ease); }
.ca-js .ca-reveal.is-in { opacity: 1; transform: none; }

/* ------------------------------------------------------------------ small screens */
@media (max-width: 699.98px) {
	.ca-text [style*="text-align: right"], .ca-text [style*="text-align:right"] { text-align: left !important; }
	.ca-align-right { text-align: left; }
	.ca-fig.ca-align-right { margin-left: 0; }
	.ca-btn-wrap .ca-btn { width: 100%; }
	.ca-sec--gallery .ca-grid { columns: 2 140px; column-gap: 0.75rem; }
	.ca-sec--gallery .ca-fig { margin-bottom: 0.75rem; }
	.ca-sec--gallery .ca-fig__cap { font-size: 0.8rem; padding: 0.5rem 0.65rem 0.6rem; }
	.ca-card { border-radius: 14px; }
}

/* ------------------------------------------------------------------ motion & print */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
	.ca-ticker__track { white-space: normal; }
	.ca-logos__track { flex-wrap: wrap; justify-content: center; width: auto; }
	.ca-js .ca-reveal { opacity: 1; transform: none; }
}
@media print {
	.ca-header, .ca-ticker, .ca-top, .ca-carousel__nav, .ca-hero__curve, .ca-footer__curve { display: none !important; }
	.ca-hero { min-height: 0; color: #000; background: none; }
	.ca-hero::before, .ca-hero::after { display: none; }
	.ca-hero__claim, .ca-hero__kicker { color: #000; text-shadow: none; }
}

/* Cards that open with a bold label (key figures, partner types…) → label as card heading */
.ca-text.ca-card > p:first-child > strong:first-child {
	display: block;
	margin-bottom: 0.25rem;
	font-family: var(--ca-font-head);
	font-size: var(--ca-step-1);
	line-height: 1.25;
	color: var(--ca-green-700);
}
.ca-text.ca-card.ca-tone-dark > p:first-child > strong:first-child,
.ca-text.ca-card.ca-tone-brand > p:first-child > strong:first-child { color: #fff; }
.ca-text.ca-card.ca-tone-gold > p:first-child > strong:first-child { color: var(--ca-ink); font-size: var(--ca-step-0); }
