/* =====================================================================
   SRF — Header, overlay menu & footer (child theme Hello Elementor)
   Variante A : hamburger « menu » à gauche · logo centré · slogan à droite.
   Couleurs marque : jaune #FCC33D · bleu foncé #2A4B9A · bleu clair #93D5F6.
   La top bar (#srf-topbar) est gérée par le mu-plugin srf-automation.php.
   ===================================================================== */

:root {
	/* Marque (alignées sur le kit Elementor) */
	--srf-jaune: #FCC33D;
	--srf-bleu: #2A4B9A;
	--srf-bleu-fonce: #1E3670;
	--srf-bleu-clair: #93D5F6;
	/* Neutres (Encre + Gris ligne alignés sur la palette) */
	--srf-blanc: #fff;
	--srf-texte: #15233D;
	--srf-texte-doux: #15233D;
	--srf-bordure: #E2E8F2;
	--srf-placeholder: #666;
	--srf-ombre: rgba(0,0,0,.18);
}

/* ---------- En-tête fixe (menu + top bar) avec effet « headroom » ---------- */
/* Menu + top bar forment un bloc fixe en haut. Il se masque au scroll vers le bas
   et réapparaît au scroll vers le haut (classe .srf-hide posée par JS).
   Le padding-top du body (= hauteur du stack) est posé en JS (srf-menu.js). */
.srf-headstack {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	transition: transform .35s ease;
	will-change: transform;
}
.srf-headstack.srf-hide { transform: translateY(-100%); }
/* Dans le stack, la top bar n'est plus collante : c'est le stack qui gère le haut. */
.srf-headstack #srf-topbar { position: static; top: auto; z-index: auto; }
/* État compact : header réduit après avoir scrollé (vs taille pleine à l'arrivée en haut). */
.srf-logo img { transition: height .3s ease; }
.srf-headstack.srf-compact .srf-logo img { height: 84px; }

/* ---------- Header (menu) ---------- */
.srf-header {
	background: var(--srf-blanc);
	border-bottom: 1px solid var(--srf-bordure);
}
.srf-header-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 4px 28px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 20px;
}

/* Hamburger (gauche) — bleu sur fond blanc, jamais de fond coloré */
.srf-header .srf-burger {
	justify-self: start;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	-webkit-appearance: none;
	appearance: none;
	padding: 6px;
	cursor: pointer;
}
.srf-header .srf-burger:hover,
.srf-header .srf-burger:focus {
	background: transparent !important;
	box-shadow: none !important;
	opacity: .8;
}
.srf-burger-lines { display: flex; flex-direction: column; gap: 5px; }
.srf-burger-lines span {
	display: block;
	width: 38px;
	height: 5px;
	border-radius: 2px;
	background: var(--srf-bleu);
}
.srf-burger-label {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	color: var(--srf-bleu);
	text-transform: lowercase;
}

/* Logo (centre) */
.srf-logo { justify-self: center; display: inline-flex; line-height: 0; }
.srf-logo img { height: 140px; width: auto; display: block; }

/* Slogan (droite) */
.srf-slogan { justify-self: end; line-height: 0; }
.srf-slogan img { height: 46px; width: auto; display: block; }

/* ---------- Overlay plein écran ---------- */
.srf-overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: var(--srf-blanc);
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow-y: auto;
	animation: srf-fade .18s ease-out;
}
.srf-overlay[hidden] { display: none; }
@keyframes srf-fade { from { opacity: 0; } to { opacity: 1; } }

/* Barre du haut : logo + croix */
.srf-overlay-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--srf-bordure);
	padding: 16px clamp(20px, 5vw, 64px);
}
.srf-overlay-logo img { height: 90px; width: auto; display: block; }

/* Croix : fond bleu, X blanc */
.srf-overlay .srf-overlay-close {
	background: var(--srf-bleu) !important;
	color: var(--srf-blanc) !important;
	border: 0 !important;
	box-shadow: none !important;
	-webkit-appearance: none;
	appearance: none;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
}
.srf-overlay .srf-overlay-close:hover { filter: brightness(1.12); }

/* Colonnes (rubriques) — remontées en haut, resserrées sur une ligne */
.srf-overlay-nav {
	flex: 1;
	display: flex;
	align-items: flex-start;
	padding: 26px clamp(20px, 5vw, 64px) 40px;
}
.srf-ov-cols {
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 30px 40px;
}
/* Colonne longue (« Comprendre les maladies respiratoires », 8 entrées ou +) :
   largeur double pour aérer et que les libellés longs tiennent sur une ligne.
   La classe --wide est posée côté PHP (srf_render_overlay_columns). */
.srf-ov-col { min-width: 0; }
.srf-ov-col--wide { grid-column: span 2; }
.srf-ov-h {
	display: block;
	font-size: 17px;
	font-weight: 700;
	color: var(--srf-bleu);
	margin: 0 0 12px;
	text-decoration: none;
}
a.srf-ov-h:hover { text-decoration: underline; }
.srf-ov-sub { list-style: none; margin: 0; padding: 0; }
.srf-ov-sub li { margin: 0 0 9px; }
.srf-ov-sub a {
	font-size: 15px;
	color: var(--srf-texte-doux);
	text-decoration: none;
}
.srf-ov-sub a:hover { color: var(--srf-bleu); text-decoration: underline; }

/* Bande basse : fond jaune, icônes + Contact en noir et bien plus gros */
.srf-overlay-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	background: var(--srf-jaune);
	padding: 22px clamp(20px, 5vw, 64px);
}
.srf-overlay-socials { display: flex; align-items: center; gap: 26px; }
.srf-overlay-socials a { color: var(--srf-texte); line-height: 0; }
.srf-overlay-socials a:hover { opacity: .6; }
.srf-overlay-socials svg { width: 34px; height: 34px; }
.srf-overlay-contact {
	font-size: 22px;
	font-weight: 700;
	color: var(--srf-texte);
	text-decoration: none;
}
.srf-overlay-contact:hover { text-decoration: underline; }

/* Verrou de scroll quand l'overlay est ouvert */
body.srf-no-scroll { overflow: hidden; }

/* ---------- Footer (jaune, texte noir) ---------- */
.srf-footer {
	background: var(--srf-jaune);
	color: var(--srf-texte);
}
.srf-footer-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 34px 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
}
.srf-footer-socials { display: flex; gap: 18px; }
.srf-footer-socials a { color: var(--srf-texte); line-height: 0; }
.srf-footer-socials a:hover { opacity: .7; }

.srf-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 22px;
}
.srf-footer-menu a {
	color: var(--srf-texte);
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
}
.srf-footer-menu a:hover { text-decoration: underline; }

.srf-footer-credits { font-size: 13px; color: var(--srf-texte); line-height: 1.7; }
.srf-footer-credits a { color: var(--srf-texte); text-decoration: underline; }
.srf-footer-made { display: block; opacity: .85; }

.srf-backtotop {
	font-size: 13px;
	font-weight: 600;
	color: var(--srf-texte);
	text-decoration: none;
}
.srf-backtotop:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.srf-ov-cols { grid-template-columns: repeat(3, 1fr); justify-content: start; gap: 26px 20px; }
	.srf-ov-col--wide { grid-column: auto; } /* pas de colonne double sous 1100px */
}
@media (max-width: 900px) {
	.srf-slogan { display: none; } /* logo reste centré, menu à gauche */
	.srf-logo img { height: 90px; }
}
@media (max-width: 600px) {
	.srf-header-inner { padding: 4px 16px; }
	.srf-logo img { height: 90px; }
	.srf-burger-lines span { width: 24px; }
	.srf-ov-cols { grid-template-columns: repeat(2, 1fr); justify-content: start; gap: 22px 16px; }
}

/* ---------- Top bar : loupe + recherche déroulante (HTML émis par le mu-plugin) ---------- */
.srf-search-toggle {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	color: var(--srf-texte) !important;
	display: inline-flex;
	align-items: center;
	padding: 4px;
	line-height: 0;
}
.srf-search-toggle:hover,
.srf-search-toggle:focus { background: transparent !important; box-shadow: none !important; opacity: .7; }
/* Champ de recherche ASP : on retire le fond bleu, texte noir sur fond blanc */
.srf-search-pop .asp_main_container,
.srf-search-pop .asp_w,
.srf-search-pop .probox,
.srf-search-pop .proinput { background: transparent !important; }
.srf-search-pop .proinput input,
.srf-search-pop input.orig,
.srf-search-pop input[type="search"] { background: var(--srf-blanc) !important; color: var(--srf-texte) !important; }
.srf-search-pop input::placeholder { color: var(--srf-placeholder) !important; opacity: 1 !important; }
/* Bouton loupe d'ASP : petit repère bleu, icône blanche */
.srf-search-pop .promagnifier { background: var(--srf-bleu) !important; }
.srf-search-pop {
	position: absolute;
	top: 100%;
	right: 24px;
	margin-top: 6px;
	background: var(--srf-blanc);
	padding: 14px;
	border-radius: 10px;
	box-shadow: 0 10px 34px var(--srf-ombre);
	z-index: 9998;
	width: min(380px, 92vw);
}
.srf-search-pop[hidden] { display: none; }
@media (max-width: 600px) { .srf-search-pop { right: 10px; } }

/* ---------- Bloc « rubriques » accueil (façon Apple) — shortcode [srf_rubriques] ---------- */
.srf-rubriques { background: transparent; padding: 64px 24px 72px; font-family: "Raleway", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.srf-rubriques-inner { max-width: 1200px; margin: 0 auto; }
.srf-rub-title {
	font-size: clamp(28px, 4vw, 44px); font-weight: 800; line-height: 1.1;
	letter-spacing: -.02em; color: var(--srf-bleu); margin: 0 0 64px;
	text-align: center;
}
.srf-rub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.srf-rub-card {
	position: relative; cursor: pointer;
	background: var(--srf-blanc); border: 1px solid rgba(20,35,61,.06);
	border-left: 6px solid var(--srf-jaune); /* liseré jaune, cohérent avec le bloc événement (.srf-evt-row) */
	border-radius: 24px; padding: 32px 28px 28px;
	display: flex; flex-direction: column;
	box-shadow: 0 8px 30px rgba(20,35,61,.05);
	transition: transform .25s ease, box-shadow .25s ease;
}
.srf-rub-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(20,35,61,.12); }
.srf-rub-ic { width: 62px; height: 62px; margin-bottom: 22px; color: var(--srf-bleu); }
.srf-rub-ic img, .srf-rub-ic svg { width: 100%; height: 100%; object-fit: contain; display: block; }
.srf-rub-card h3 {
	font-size: 21px; font-weight: 800; line-height: 1.2; letter-spacing: -.01em;
	color: var(--srf-encre); margin: 0 0 12px;
}
.srf-rub-card p { font-size: 15.5px; font-weight: 400; line-height: 1.6; color: #54637A; margin: 0 0 24px; }
.srf-rub-more {
	margin-top: auto; font-size: 15px; font-weight: 700; color: var(--srf-bleu);
	text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
	transition: gap .2s ease, color .2s ease;
}
.srf-rub-more span { transition: transform .2s ease; }
.srf-rub-card:hover .srf-rub-more { color: var(--srf-bleu-fonce); }
.srf-rub-card:hover .srf-rub-more span { transform: translateX(3px); }
/* Toute la carte cliquable : l'overlay invisible du lien couvre la carte entière
   (motif « stretched-link »). On garde un seul vrai lien par carte (accessibilité/SEO). */
.srf-rub-more::after { content: ""; position: absolute; inset: 0; }
@media (max-width: 980px) { .srf-rub-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .srf-rubriques { padding: 48px 18px 56px; } .srf-rub-grid { grid-template-columns: 1fr; } }

/* Le bloc s'adapte à son conteneur Elementor : neutralisation de l'arrondi et de
   l'ombre du wrapper qui contient [srf_rubriques], + passage en pleine largeur.
   Le FOND est laissé libre : il se règle depuis la section Elementor.
   Scopé via :has() → n'affecte que ce bloc, pas les autres sections. */
.elementor-section:has(.srf-rubriques),
.elementor-column:has(.srf-rubriques),
.elementor-widget-wrap:has(.srf-rubriques) {
	border-radius: 0 !important;
	box-shadow: none !important;
}
.elementor-section:has(.srf-rubriques) > .elementor-container { max-width: 100% !important; }
/* Correctif mobile : sous ~767px, la colonne col-100 qui héberge [srf_rubriques] se
   rétractait à ~195px (flex-item Elementor qui se dimensionne sur son contenu au lieu
   de s'étirer) → cartes plus larges que leur conteneur, texte coupé. On la force à 100%. */
.elementor-column:has(.srf-rubriques) { width: 100% !important; flex-basis: 100% !important; }


/* =====================================================================
   FORCE TYPOGRAPHIE — Raleway partout (filet de sécurité global)
   ---------------------------------------------------------------------
   Certains éléments retombent sur la police système (system-ui / sans-serif) :
   titres/textes Elementor sans typo explicite, widgets de plugins tiers
   (The Events Calendar, The Plus Addons, popups login/panier), composants
   maison. On force Raleway sur TOUT le texte.

   Les polices d'ICÔNES sont explicitement épargnées via :not(...) : Font
   Awesome (i, .fa*, [class*=" fa-"]), icônes Elementor ([class*="eicon-"])
   et dashicons. Sans cette protection, forcer Raleway sur une icône
   remplacerait son glyphe par la lettre correspondante (icônes cassées).
   ===================================================================== */
body :not(i):not(svg):not(use):not(path):not(.fa):not(.fas):not(.far):not(.fal):not(.fab):not(.fad):not([class*="eicon-"]):not([class*="dashicons"]):not([class^="fa-"]):not([class*=" fa-"]) {
	font-family: "Raleway", sans-serif !important;
}

/* Réassertion explicite sur les composants maison (lisibilité / robustesse). */
.srf-evt-showcase, .srf-evt-showcase *,
.srf-evt-single-wrap, .srf-evt-single-wrap *,
.srf-rubriques, .srf-rubriques * {
	font-family: "Raleway", sans-serif !important;
}


/* ---------- Bloc « Autour de Santé respiratoire France » — shortcode [srf_ecosysteme] ---------- */
.srf-eco { background: transparent; padding: 64px 24px 72px; font-family: "Raleway", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.srf-eco-inner { max-width: 1200px; margin: 0 auto; }
.srf-eco-title {
	font-size: clamp(28px, 4vw, 44px); font-weight: 800; line-height: 1.1;
	letter-spacing: -.02em; color: var(--srf-bleu); margin: 0 0 12px; text-align: center;
}
.srf-eco-sub { text-align: center; color: #54637A; font-size: 18px; line-height: 1.5; margin: 0 auto 52px; max-width: 640px; }

.srf-eco-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: start; }

/* Carte « support » : englobe la photo + porte l'ombre et le liseré d'accent en bas */
.srf-eco-card {
	position: relative; cursor: pointer; display: flex; flex-direction: column;
	background: var(--srf-blanc); border-radius: 26px;
	box-shadow: 0 10px 34px rgba(20,35,61,.08);
	border-bottom: 4px solid var(--eco-accent, var(--srf-bleu));
	transition: transform .25s ease, box-shadow .25s ease;
}
.srf-eco-card:hover { transform: translateY(-6px); box-shadow: 0 22px 54px rgba(20,35,61,.14); }
/* Photo en haut : masquée avec coins arrondis (haut ET bas) */
.srf-eco-photo img { width: 100%; height: 280px; object-fit: cover; display: block; border-radius: 26px 26px 22px 22px; }
/* Panneau blanc INSÉRÉ, posé sur la carte support : en retrait L/R + bas, chevauche la photo */
.srf-eco-body {
	margin: -72px 18px 22px;
	background: var(--srf-blanc); border-radius: 18px;
	padding: 24px 22px 22px; text-align: center;
	display: flex; flex-direction: column; align-items: center;
	box-shadow: 0 16px 40px rgba(20,35,61,.16);
}
/* Logo de marque (SVG) : hauteur fixe = même grosseur pour les 3 (ratios différents) */
.srf-eco-logo { display: block; margin-bottom: 14px; }
.srf-eco-logo img { width: auto; max-width: 240px; height: 72px; object-fit: contain; display: block; margin: 0 auto; }
.srf-eco-tag { font-size: 16px; line-height: 1.5; color: #54637A; margin: 0 0 20px; max-width: 26ch; }
.srf-eco-more {
	margin-top: auto; font-size: 16px; font-weight: 700; color: var(--eco-accent, var(--srf-bleu));
	text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
	padding-bottom: 4px; border-bottom: 2px solid var(--eco-accent, var(--srf-bleu));
	transition: gap .2s ease;
}
.srf-eco-more span { transition: transform .2s ease; }
.srf-eco-card:hover .srf-eco-more span { transform: translateX(4px); }
/* Carte entière cliquable (stretched-link), un seul vrai lien par carte */
.srf-eco-more::after { content: ""; position: absolute; inset: 0; z-index: 2; }

@media (max-width: 980px) { .srf-eco-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .srf-eco { padding: 48px 18px 56px; } .srf-eco-grid { grid-template-columns: 1fr; } }

/* Intégration dans un conteneur Elementor : pleine largeur + neutralisation
   de l'arrondi/ombre du wrapper qui héberge [srf_ecosysteme]. Scopé via :has(). */
.elementor-section:has(.srf-eco),
.elementor-column:has(.srf-eco),
.elementor-widget-wrap:has(.srf-eco) { border-radius: 0 !important; box-shadow: none !important; }
.elementor-section:has(.srf-eco) > .elementor-container { max-width: 100% !important; }
.elementor-column:has(.srf-eco) { width: 100% !important; flex-basis: 100% !important; }


/* ---------- Bloc « Dernières actualités » — shortcode [srf_actualites] (slider) ---------- */
.srf-actus {
	/* Fond bleu très clair (mockup). Modifiable ici ou via la section Elementor. */
	background: #EAF2FB;
	padding: 64px 24px 72px;
	font-family: "Raleway", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.srf-actus-inner { max-width: 1200px; margin: 0 auto; }

/* En-tête : titre/sous-titre à gauche, navigation à droite */
.srf-actus-head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 24px; margin-bottom: 40px; flex-wrap: wrap;
}
.srf-actus-title {
	font-size: clamp(28px, 4vw, 44px); font-weight: 800; line-height: 1.05;
	letter-spacing: -.02em; color: var(--srf-bleu); margin: 0;
}
.srf-actus-sub { color: #54637A; font-size: 18px; line-height: 1.5; margin: 12px 0 0; }

.srf-actus-nav { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.srf-actus-arrow {
	width: 48px; height: 48px; border-radius: 50%; flex: 0 0 auto; padding: 0;
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.srf-actus-prev { background: var(--srf-blanc); border: 1.6px solid var(--srf-bleu); color: var(--srf-bleu); }
.srf-actus-prev:hover { background: var(--srf-bleu); color: var(--srf-blanc); }
.srf-actus-prev svg { transform: scaleX(-1); } /* chevron orienté vers la gauche */
.srf-actus-next { background: var(--srf-bleu); border: 1.6px solid var(--srf-bleu); color: var(--srf-blanc); }
.srf-actus-next:hover { background: var(--srf-bleu-fonce); border-color: var(--srf-bleu-fonce); }
.srf-actus-arrow:active { transform: scale(.94); }

.srf-actus-all {
	margin-left: 6px; display: inline-flex; align-items: center; gap: 8px;
	font-size: 15px; font-weight: 700; color: var(--srf-bleu); text-decoration: none;
	border: 1.6px solid var(--srf-bleu); border-radius: 999px; padding: 12px 22px;
	transition: background .2s ease, color .2s ease, gap .2s ease;
}
.srf-actus-all span { transition: transform .2s ease; }
.srf-actus-all:hover { background: var(--srf-bleu); color: var(--srf-blanc); }
.srf-actus-all:hover span { transform: translateX(3px); }

/* Piste : défilement horizontal avec accroche (scroll-snap), scrollbar masquée */
.srf-actus-track {
	display: flex; gap: 28px; overflow-x: auto; scroll-behavior: smooth;
	scroll-snap-type: x mandatory; scroll-padding-left: 2px;
	padding: 6px 2px 10px; margin: 0 -2px;
	-ms-overflow-style: none; scrollbar-width: none;
}
.srf-actus-track::-webkit-scrollbar { display: none; }
.srf-actus-track:focus-visible { outline: 2px solid var(--srf-bleu); outline-offset: 4px; border-radius: 8px; }

/* Carte */
.srf-actus-card {
	position: relative; flex: 0 0 calc((100% - 3 * 28px) / 4); min-width: 0;
	scroll-snap-align: start;
	background: var(--srf-blanc); border-radius: 22px; overflow: hidden;
	display: flex; flex-direction: column;
	box-shadow: 0 10px 30px rgba(20,35,61,.07);
	transition: transform .25s ease, box-shadow .25s ease;
}
.srf-actus-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(20,35,61,.13); }

.srf-actus-media { display: block; }
.srf-actus-media img { width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; display: block; }
.srf-actus-noimg { display: block; width: 100%; aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--srf-bleu-clair), #cfe7fb); }

.srf-actus-body { padding: 18px 22px 22px; display: flex; flex-direction: column; gap: 10px; }
.srf-actus-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.srf-actus-pill {
	background: var(--srf-jaune); color: var(--srf-texte);
	font-size: 12px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase;
	padding: 5px 11px; border-radius: 7px; line-height: 1; white-space: nowrap;
}
.srf-actus-date { color: #7A8699; font-size: 14px; font-weight: 600; }

.srf-actus-card-title {
	margin: 0; font-size: 17px; font-weight: 800; line-height: 1.22; letter-spacing: -.01em;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;
}
.srf-actus-card-title a { color: var(--srf-bleu); text-decoration: none; transition: color .2s ease; }
.srf-actus-card:hover .srf-actus-card-title a { color: var(--srf-bleu-fonce); }
.srf-actus-go { display: inline-block; transition: transform .2s ease; }
.srf-actus-card:hover .srf-actus-go { transform: translateX(4px); }
/* Carte entière cliquable (stretched-link), un seul vrai lien par carte */
.srf-actus-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }

/* Desktop intermédiaire : 3 cartes */
@media (max-width: 1100px) { .srf-actus-card { flex-basis: calc((100% - 2 * 28px) / 3); } }
/* Tablette : 2 cartes visibles */
@media (max-width: 820px) { .srf-actus-card { flex-basis: calc((100% - 28px) / 2); } }
/* Mobile : 1 carte + aperçu de la suivante */
@media (max-width: 640px) {
	.srf-actus { padding: 48px 16px 56px; }
	.srf-actus-head { margin-bottom: 26px; }
	.srf-actus-card { flex-basis: 86%; }
}

/* Intégration Elementor : pleine largeur + neutralisation arrondi/ombre du wrapper. */
.elementor-section:has(.srf-actus),
.elementor-column:has(.srf-actus),
.elementor-widget-wrap:has(.srf-actus) { border-radius: 0 !important; box-shadow: none !important; }
.elementor-section:has(.srf-actus) > .elementor-container { max-width: 100% !important; }
.elementor-column:has(.srf-actus) { width: 100% !important; flex-basis: 100% !important; }
