/* ==========================================================================
   Studio Wasquehal — feuille de style principale
   1. Jetons par ambiance   2. Base   3. En-tête   4. Bandeau   5. Une
   6. Sections & cartes     7. Pratique (SW Ville)  8. Newsletter
   9. Archives & article    10. Pied de page        11. Ordre des sections
   ========================================================================== */

/* 1. Jetons --------------------------------------------------------------- */
:root {
	--sw-accent: #E1251B;
	--sw-on-accent: #FFFFFF;
	--sw-wrap: 1240px;
	--sw-gutter: clamp(16px, 3vw, 24px);
	--sw-section-gap: clamp(36px, 5vw, 56px);
	--sw-shadow: none;

	/* Chaîne info (valeurs par défaut) */
	--sw-bg: #F3F5F9;
	--sw-surface: #FFFFFF;
	--sw-surface-2: #E8EEFA;
	--sw-ink: #0A1F44;
	--sw-muted: #4A5675;
	--sw-border: #DDE3EE;
	--sw-brand: #0A1F44;
	--sw-brand-deep: #061532;
	--sw-brand-2: #123A8C;
	--sw-on-brand: #FFFFFF;
	--sw-on-brand-muted: #C9D3E8;
	--sw-link: #123A8C;
	--sw-radius: 10px;
	--sw-radius-sm: 6px;
	--sw-font-body: 'SW Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--sw-font-display: 'SW Archivo', system-ui, sans-serif;
	--sw-font-label: 'SW Archivo Narrow', 'SW Archivo', system-ui, sans-serif;
	--sw-display-weight: 900;
	--sw-display-tracking: -0.02em;
	--sw-label-tracking: 0.08em;
}

.sw-skin-streaming {
	--sw-bg: #0B1430;
	--sw-surface: #16224A;
	--sw-surface-2: #1C2B5C;
	--sw-ink: #FFFFFF;
	--sw-muted: #A9B6D6;
	--sw-border: #263873;
	--sw-brand: #0B1430;
	--sw-brand-deep: #08102A;
	--sw-brand-2: #3D6BFF;
	--sw-on-brand: #FFFFFF;
	--sw-on-brand-muted: #A9B6D6;
	--sw-link: #A9C1FF;
	--sw-radius: 14px;
	--sw-radius-sm: 10px;
	--sw-font-body: 'SW Outfit', system-ui, sans-serif;
	--sw-font-display: 'SW Outfit', system-ui, sans-serif;
	--sw-font-label: 'SW Outfit', system-ui, sans-serif;
	--sw-display-weight: 800;
	--sw-display-tracking: -0.03em;
	--sw-label-tracking: 0.06em;
	color-scheme: dark;
}

.sw-skin-magazine {
	--sw-bg: #FAF8F3;
	--sw-surface: #FAF8F3;
	--sw-surface-2: #EEE9DF;
	--sw-ink: #14161F;
	--sw-muted: #565A69;
	--sw-border: #14161F;
	--sw-brand: #1D3A8A;
	--sw-brand-deep: #14161F;
	--sw-brand-2: #1D3A8A;
	--sw-on-brand: #FFFFFF;
	--sw-on-brand-muted: #D5DDF2;
	--sw-link: #1D3A8A;
	--sw-radius: 0px;
	--sw-radius-sm: 0px;
	--sw-font-body: 'SW Instrument Sans', system-ui, sans-serif;
	--sw-font-display: 'SW Fraunces', Georgia, 'Times New Roman', serif;
	--sw-font-label: 'SW Instrument Sans', system-ui, sans-serif;
	--sw-display-weight: 600;
	--sw-display-tracking: -0.02em;
	--sw-label-tracking: 0.12em;
}

.sw-skin-hybride {
	--sw-bg: #F4F6FB;
	--sw-surface: #FFFFFF;
	--sw-surface-2: #EEF1F8;
	--sw-ink: #0E1630;
	--sw-muted: #515C7C;
	--sw-border: #E1E6F0;
	--sw-brand: #081028;
	--sw-brand-deep: #081028;
	--sw-brand-2: #1E3FAE;
	--sw-on-brand: #FFFFFF;
	--sw-on-brand-muted: #C4CDE6;
	--sw-link: #1E3FAE;
	--sw-radius: 18px;
	--sw-radius-sm: 12px;
	--sw-shadow: 0 1px 2px rgba(14, 22, 48, .06), 0 8px 24px rgba(14, 22, 48, .04);
	--sw-font-body: 'SW DM Sans', system-ui, sans-serif;
	--sw-font-display: 'SW Bricolage', system-ui, sans-serif;
	--sw-font-label: 'SW DM Sans', system-ui, sans-serif;
	--sw-display-weight: 800;
	--sw-display-tracking: -0.03em;
	--sw-label-tracking: 0.08em;
}

.sw-skin-ville {
	--sw-bg: #F6F8FC;
	--sw-surface: #FFFFFF;
	--sw-surface-2: #EAF0FB;
	--sw-ink: #0F1E3D;
	--sw-muted: #4D5A78;
	--sw-border: #DCE4F2;
	--sw-brand: #123E9C;
	--sw-brand-deep: #0C2C72;
	--sw-brand-2: #123E9C;
	--sw-on-brand: #FFFFFF;
	--sw-on-brand-muted: #CFDBF5;
	--sw-link: #123E9C;
	--sw-radius: 20px;
	--sw-radius-sm: 12px;
	--sw-shadow: 0 1px 2px rgba(15, 30, 61, .06), 0 10px 30px rgba(18, 62, 156, .07);
	--sw-font-body: 'SW Instrument Sans', system-ui, sans-serif;
	--sw-font-display: 'SW Bricolage', system-ui, sans-serif;
	--sw-font-label: 'SW Instrument Sans', system-ui, sans-serif;
	--sw-display-weight: 800;
	--sw-display-tracking: -0.025em;
	--sw-label-tracking: 0.06em;
}

/* Zones sombres réutilisables (variables locales) */
.sw-skin-hybride .sw-header,
.sw-skin-hybride .sw-topbar,
.sw-skin-hybride .sw-hero,
.sw-skin-hybride .sw-shorts,
.sw-skin-hybride .sw-archive__head,
.sw-skin-hybride .sw-footer,
.sw-skin-ville .sw-header,
.sw-skin-ville .sw-topbar,
.sw-skin-ville .sw-footer {
	--sw-ink: #FFFFFF;
	--sw-muted: #C4CDE6;
	--sw-surface: #16224D;
	--sw-surface-2: #1D2B5E;
	--sw-border: #2A3870;
	--sw-link: #A9C1FF;
	color-scheme: dark;
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--sw-bg);
	color: var(--sw-ink);
	font-family: var(--sw-font-body);
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--sw-accent); }
:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; border-radius: 2px; }
button { font: inherit; }
h1, h2, h3, h4 { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); letter-spacing: var(--sw-display-tracking); line-height: 1.1; margin: 0; }
p { margin: 0; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.sw-skip {
	position: absolute; left: 12px; top: -60px; z-index: 1000;
	background: var(--sw-accent); color: var(--sw-on-accent);
	padding: 12px 18px; border-radius: var(--sw-radius-sm); font-weight: 700;
}
.sw-skip:focus { top: 12px; color: var(--sw-on-accent); }

.sw-wrap { width: 100%; max-width: var(--sw-wrap); margin-inline: auto; padding-inline: var(--sw-gutter); }
.sw-wrap--text { max-width: calc(760px + 2 * var(--sw-gutter)); }
.sw-wrap--media { max-width: calc(1080px + 2 * var(--sw-gutter)); }
.sw-wrap--wide { max-width: calc(1000px + 2 * var(--sw-gutter)); }

.sw-icon { flex: none; }

.sw-kicker {
	display: block;
	font-family: var(--sw-font-label);
	font-size: 12px; font-weight: 700;
	letter-spacing: var(--sw-label-tracking);
	text-transform: uppercase;
	color: var(--sw-muted);
}
.sw-badge {
	display: inline-flex; align-items: center; align-self: flex-start;
	background: var(--sw-accent); color: var(--sw-on-accent);
	font-family: var(--sw-font-label); font-size: 12px; font-weight: 700;
	letter-spacing: var(--sw-label-tracking); text-transform: uppercase;
	padding: 6px 10px; border-radius: 4px; line-height: 1.2;
}
a.sw-badge:hover { color: var(--sw-on-accent); filter: brightness(1.08); }
.sw-skin-streaming .sw-badge, .sw-skin-hybride .sw-badge { border-radius: 999px; padding: 6px 12px; }
.sw-skin-magazine .sw-badge { background: none; color: var(--sw-accent); padding: 0; font-size: 13px; }

.sw-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 0 22px;
	border-radius: var(--sw-radius-sm); border: 1px solid transparent;
	font-weight: 700; font-size: 16px; line-height: 1; cursor: pointer;
	transition: filter .15s ease, background-color .15s ease;
}
.sw-btn--accent { background: var(--sw-accent); color: var(--sw-on-accent); }
.sw-btn--accent:hover { color: var(--sw-on-accent); filter: brightness(1.08); }
.sw-btn--ghost { border-color: var(--sw-border); color: var(--sw-ink); background: transparent; }
.sw-btn--ghost:hover { color: var(--sw-ink); background: var(--sw-surface-2); }
.sw-skin-magazine .sw-btn--ghost { border-color: var(--sw-ink); }

/* 3. En-tête -------------------------------------------------------------- */
.sw-topbar { background: var(--sw-brand-deep); color: var(--sw-on-brand-muted); font-size: 13px; }
.sw-topbar__inner { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; justify-content: space-between; min-height: 36px; padding-block: 6px; }
.sw-topbar__social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; }
.sw-topbar a:hover { color: var(--sw-on-brand); }
.sw-skin-magazine .sw-topbar { background: transparent; color: var(--sw-muted); }
.sw-skin-magazine .sw-topbar a:hover { color: var(--sw-ink); }
.sw-skin-streaming .sw-topbar { background: var(--sw-brand-deep); }

.sw-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--sw-surface); border-bottom: 1px solid var(--sw-border);
	transition: box-shadow .2s ease;
}
.admin-bar .sw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sw-header { top: 0; position: relative; } }
.sw-header.is-scrolled { box-shadow: 0 6px 24px rgba(6, 21, 50, .12); }
.sw-header__inner { display: flex; align-items: center; gap: 20px; min-height: 76px; }
.sw-header__brand { flex: none; }
.sw-header__actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.sw-skin-streaming .sw-header { background: rgba(11, 20, 48, .92); backdrop-filter: blur(10px); border-bottom-color: transparent; }
.sw-skin-hybride .sw-header { background: var(--sw-brand); border-bottom-color: transparent; color: var(--sw-ink); }

/* Logo */
.sw-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--sw-ink); }
.sw-logo:hover { color: var(--sw-ink); }
.sw-logo__flag { display: inline-flex; gap: 3px; height: 36px; }
.sw-logo__flag span { width: 8px; border-radius: 3px; }
.sw-logo__flag span:nth-child(1) { background: var(--sw-brand-2); }
.sw-logo__flag span:nth-child(2) { background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--sw-border); }
.sw-logo__flag span:nth-child(3) { background: var(--sw-accent); }
.sw-logo__text { display: flex; flex-direction: column; line-height: 1; }
.sw-logo__small { font-family: var(--sw-font-label); font-size: 12px; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; color: var(--sw-muted); }
.sw-logo__big { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); font-size: 26px; letter-spacing: -0.02em; text-transform: uppercase; }
.custom-logo { max-height: 56px; width: auto; }
.sw-skin-streaming .sw-logo__big, .sw-skin-hybride .sw-logo__big { text-transform: none; font-size: 22px; }
.sw-skin-streaming .sw-logo__text, .sw-skin-hybride .sw-logo__text { flex-direction: row; gap: 6px; align-items: baseline; }
.sw-skin-streaming .sw-logo__small, .sw-skin-hybride .sw-logo__small { font-family: var(--sw-font-display); font-size: 22px; font-weight: var(--sw-display-weight); letter-spacing: -0.02em; text-transform: none; color: var(--sw-ink); }

/* Magazine : titre de journal centré */
.sw-skin-magazine .sw-header { position: relative; background: var(--sw-bg); border-bottom: 0; }
.sw-skin-magazine .sw-header__inner { flex-wrap: wrap; justify-content: center; padding-top: 12px; }
.sw-skin-magazine .sw-header__brand { width: 100%; text-align: center; }
.sw-skin-magazine .sw-logo { gap: 0; }
.sw-skin-magazine .sw-logo__flag { display: none; }
.sw-skin-magazine .sw-logo__text { flex-direction: row; gap: .25em; align-items: baseline; }
.sw-skin-magazine .sw-logo__small, .sw-skin-magazine .sw-logo__big {
	font-family: var(--sw-font-display); font-weight: 800; text-transform: none;
	font-size: clamp(40px, 7vw, 76px); letter-spacing: -0.035em; color: var(--sw-ink);
}
.sw-skin-magazine .sw-header__brand::after {
	content: ""; display: block; height: 4px; margin-top: 16px;
	background: linear-gradient(90deg, var(--sw-brand) 0 33.33%, transparent 33.33% 66.66%, var(--sw-accent) 66.66%);
}
.sw-skin-magazine .sw-header__actions { position: absolute; right: var(--sw-gutter); top: 12px; }
.sw-skin-magazine .sw-nav { width: 100%; border-bottom: 1px solid var(--sw-ink); }
.sw-skin-magazine .sw-nav__list { justify-content: center; }
.sw-skin-magazine .sw-nav__list > li > a { text-transform: uppercase; letter-spacing: .12em; font-size: 13px; }

/* Navigation */
.sw-nav { flex: 1; min-width: 0; }
.sw-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.sw-nav__list li { position: relative; }
.sw-nav__list a { display: flex; align-items: center; min-height: 44px; padding: 0 10px; font-weight: 600; font-size: 15px; color: var(--sw-ink); border-radius: var(--sw-radius-sm); }
.sw-nav__list a:hover, .sw-nav__list .current-menu-item > a, .sw-nav__list .current-cat > a { color: var(--sw-accent); }
.sw-skin-streaming .sw-nav__list a, .sw-skin-hybride .sw-nav__list a { color: var(--sw-muted); font-weight: 500; }
.sw-skin-streaming .sw-nav__list a:hover, .sw-skin-hybride .sw-nav__list a:hover,
.sw-skin-streaming .sw-nav__list .current-menu-item > a, .sw-skin-hybride .sw-nav__list .current-menu-item > a { color: var(--sw-ink); }
.sw-nav__list .sub-menu, .sw-nav__list .children {
	list-style: none; margin: 0; padding: 8px; display: none;
	position: absolute; left: 0; top: 100%; min-width: 220px; z-index: 20;
	background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius-sm);
	box-shadow: 0 12px 32px rgba(6, 21, 50, .14);
}
.sw-nav__list li:hover > .sub-menu, .sw-nav__list li:focus-within > .sub-menu { display: block; }

.sw-iconbtn {
	width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%; border: 1px solid var(--sw-border); background: transparent; color: var(--sw-ink); cursor: pointer;
}
.sw-iconbtn:hover { background: var(--sw-surface-2); }
.sw-header__burger { display: none; }
.sw-header__burger .sw-icon--close, .sw-header__burger[aria-expanded="true"] .sw-icon--menu { display: none; }
.sw-header__burger[aria-expanded="true"] .sw-icon--close { display: block; }

.sw-live {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px;
	background: var(--sw-accent); color: var(--sw-on-accent); border-radius: var(--sw-radius-sm);
	font-family: var(--sw-font-label); font-weight: 700; font-size: 14px; letter-spacing: var(--sw-label-tracking); text-transform: uppercase;
}
.sw-live:hover { color: var(--sw-on-accent); filter: brightness(1.08); }
.sw-live__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; animation: sw-pulse 1.6s ease-in-out infinite; }
@keyframes sw-pulse { 50% { opacity: .35; } }

.sw-search { border-top: 1px solid var(--sw-border); padding-block: 16px; background: var(--sw-surface); }
.sw-skin-hybride .sw-search { background: var(--sw-brand); }
.sw-searchform { display: flex; flex-wrap: wrap; gap: 10px; }
.sw-searchform input[type="search"] {
	flex: 1 1 240px; min-height: 48px; padding: 0 16px; font: inherit; font-size: 16px;
	border: 2px solid var(--sw-border); border-radius: var(--sw-radius-sm);
	background: var(--sw-surface); color: var(--sw-ink);
}
.sw-searchform input[type="search"]:focus { border-color: var(--sw-brand-2); outline: none; }

@media (max-width: 960px) {
	.sw-header__burger { display: inline-flex; }
	.sw-header__inner { flex-wrap: wrap; min-height: 64px; }
	.sw-nav { display: none; order: 3; flex-basis: 100%; padding-bottom: 12px; }
	.sw-nav-open .sw-nav { display: block; }
	.sw-nav__list { flex-direction: column; align-items: stretch; }
	.sw-nav__list .sub-menu, .sw-nav__list .children { position: static; display: block; box-shadow: none; border: 0; padding: 0 0 0 16px; background: transparent; }
	.sw-skin-magazine .sw-header__actions { position: static; margin: 0 auto; }
	.sw-skin-magazine .sw-nav__list { align-items: center; }
	.sw-logo__big { font-size: 22px; }
}

@media (max-width: 600px) {
	.sw-topbar__social { display: none; }
	.sw-header__inner { gap: 8px; }
	.sw-header__actions { gap: 6px; }
	.sw-live { padding: 0 10px; font-size: 12px; }
	.sw-logo { gap: 8px; }
	.sw-logo__flag { height: 28px; }
	.sw-logo__flag span { width: 6px; }
	.sw-logo__big, .sw-skin-streaming .sw-logo__big, .sw-skin-hybride .sw-logo__big,
	.sw-skin-streaming .sw-logo__small, .sw-skin-hybride .sw-logo__small { font-size: 17px; }
	.sw-iconbtn { width: 42px; height: 42px; }
}
@media (max-width: 440px) {
	.sw-live { width: 42px; padding: 0; justify-content: center; border-radius: 50%; }
	.sw-live__dot { width: 12px; height: 12px; }
	.sw-live__txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
}

/* 4. Bandeau « À la une » -------------------------------------------------- */
.sw-ticker { background: var(--sw-accent); color: var(--sw-on-accent); overflow: hidden; }
.sw-ticker__inner { display: flex; align-items: stretch; gap: 16px; }
.sw-ticker__label {
	flex: none; display: flex; align-items: center; padding: 0 14px; background: var(--sw-brand);
	color: var(--sw-on-brand); font-family: var(--sw-font-label); font-weight: 700; font-size: 13px;
	letter-spacing: var(--sw-label-tracking); text-transform: uppercase;
}
.sw-ticker__viewport { display: flex; overflow: hidden; min-width: 0; flex: 1; mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); }
.sw-ticker__track { list-style: none; margin: 0; padding: 0; display: flex; flex: none; gap: 0; animation: sw-marquee 45s linear infinite; }
.sw-ticker__track li { display: flex; align-items: center; white-space: nowrap; padding: 11px 0; font-size: 14px; font-weight: 600; }
.sw-ticker__track li::after { content: "/"; margin: 0 18px; opacity: .55; }
.sw-ticker__track a:hover { color: inherit; text-decoration: underline; }
.sw-ticker__viewport:hover .sw-ticker__track, .sw-ticker__viewport:focus-within .sw-ticker__track { animation-play-state: paused; }
.sw-ticker__viewport.is-static .sw-ticker__track { animation: none; }
.sw-ticker__viewport.is-static .sw-ticker__track[aria-hidden="true"] { display: none; }
@keyframes sw-marquee { to { transform: translateX(-100%); } }

.sw-skin-streaming .sw-ticker { background: var(--sw-surface); color: var(--sw-ink); }
.sw-skin-streaming .sw-ticker__label { background: var(--sw-accent); }
.sw-skin-magazine .sw-ticker { background: transparent; color: var(--sw-ink); border-bottom: 1px solid var(--sw-border); }
.sw-skin-magazine .sw-ticker__label { background: transparent; color: var(--sw-accent); padding-left: 0; }
.sw-skin-hybride .sw-ticker { background: #0F1A3D; color: #FFFFFF; }
.sw-skin-hybride .sw-ticker__label { background: var(--sw-accent); }

/* 5. Une ------------------------------------------------------------------- */
.sw-hero { padding-block: clamp(20px, 4vw, 36px); }
.sw-hero__inner { display: flex; flex-wrap: wrap; gap: 28px; align-items: stretch; }
.sw-hero__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; }
.sw-hero__body { display: flex; flex-direction: column; gap: 14px; }
.sw-hero__title { font-size: clamp(30px, 4.4vw, 52px); line-height: 1.02; }
.sw-hero__title a:hover { color: inherit; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.sw-hero__excerpt { font-size: 18px; line-height: 1.55; color: var(--sw-muted); max-width: 62ch; }
.sw-hero__excerpt:empty { display: none; }
.sw-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.sw-hero__latest { flex: 1 1 300px; min-width: 0; }
.sw-hero__latest-title {
	font-family: var(--sw-font-label); font-size: 14px; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--sw-accent); margin-bottom: 4px;
}

/* Lecteur */
.sw-thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; background: var(--sw-surface-2); border-radius: var(--sw-radius); }
.sw-thumb__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.sw-thumb__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--sw-brand); color: var(--sw-on-brand-muted); font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); font-size: 18px; text-align: center; padding: 12px; }
.sw-thumb__play {
	position: absolute; left: 12px; bottom: 12px; width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; background: var(--sw-accent); color: var(--sw-on-accent);
}
.sw-thumb__label {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 12px 12px;
	background: linear-gradient(0deg, rgba(6, 21, 50, .85), rgba(6, 21, 50, 0));
	color: #FFFFFF; font-family: var(--sw-font-label); font-weight: 700; font-size: 14px; letter-spacing: var(--sw-label-tracking); text-transform: uppercase;
}
.sw-player { position: relative; display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; color: inherit; text-align: left; }
.sw-player__btn {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 84px; height: 84px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: #FFFFFF; color: var(--sw-brand); box-shadow: 0 8px 30px rgba(0, 0, 0, .25); transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.sw-player:hover .sw-player__btn, .sw-player:focus-visible .sw-player__btn { transform: translate(-50%, -50%) scale(1.06); background: var(--sw-accent); color: var(--sw-on-accent); }
.sw-player__btn .sw-icon { margin-left: 4px; }
.sw-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--sw-radius); overflow: hidden; background: #000; }
.sw-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Liste « Les dernières » */
.sw-list { list-style: none; margin: 0; padding: 0; }
.sw-list-item a { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--sw-border); }
.sw-list-item:last-child a { border-bottom: 0; }
.sw-list-item__num { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); font-size: 30px; line-height: 1; color: var(--sw-brand-2); min-width: 1.4em; }
.sw-list-item__title { display: block; font-family: var(--sw-font-display); font-weight: 700; font-size: 18px; line-height: 1.25; margin-top: 4px; letter-spacing: -0.01em; }
.sw-list-item a:hover .sw-list-item__title { color: var(--sw-accent); }

/* — Chaîne info : carte vidéo + colonne */
.sw-skin-info .sw-hero__main { background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); overflow: hidden; }
.sw-skin-info .sw-hero__media .sw-thumb, .sw-skin-info .sw-hero__media .sw-embed { border-radius: 0; }
.sw-skin-info .sw-hero__media .sw-thumb { background: var(--sw-brand); }
.sw-skin-info .sw-hero__body { padding: 24px 28px 28px; }
.sw-skin-info .sw-hero__latest { align-self: flex-start; background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); padding: 18px 22px; }
.sw-skin-info .sw-list-item__num { display: none; }

/* — Streaming : vidéo plein cadre, texte en surimpression */
.sw-skin-streaming .sw-hero__main { position: relative; border-radius: 20px; overflow: hidden; background: var(--sw-surface); }
.sw-skin-streaming .sw-hero__media .sw-thumb, .sw-skin-streaming .sw-hero__media .sw-embed { border-radius: 0; }
.sw-skin-streaming .sw-hero__latest { flex-basis: 100%; }
.sw-skin-streaming .sw-hero__latest .sw-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 24px; }
.sw-skin-streaming .sw-hero__latest .sw-list-item a { border-bottom: 0; border-top: 1px solid var(--sw-border); }
.sw-skin-streaming .sw-hero__latest-title { color: var(--sw-muted); }
.sw-skin-streaming .sw-list-item__num { color: var(--sw-accent); }
@media (min-width: 900px) {
	.sw-skin-streaming .sw-hero__media .sw-thumb { aspect-ratio: 21 / 9; }
	.sw-skin-streaming .sw-hero__media .sw-player__btn { left: auto; right: 48px; top: 48px; transform: none; }
	.sw-skin-streaming .sw-hero__media .sw-player:hover .sw-player__btn { transform: scale(1.06); }
	.sw-skin-streaming .sw-hero__body {
		position: absolute; left: 0; right: 0; bottom: 0; padding: 120px 44px 40px;
		background: linear-gradient(0deg, rgba(11, 20, 48, .96) 0%, rgba(11, 20, 48, .7) 55%, rgba(11, 20, 48, 0) 100%);
		pointer-events: none;
	}
	.sw-skin-streaming .sw-hero__body > * { pointer-events: auto; max-width: 680px; }
	.sw-skin-streaming .sw-hero__excerpt { color: #D3DBF0; }
}
@media (max-width: 899px) { .sw-skin-streaming .sw-hero__body { padding: 20px; } }
.sw-skin-streaming .sw-btn--ghost { background: rgba(255, 255, 255, .12); border-color: transparent; }
.sw-skin-streaming .sw-btn--ghost:hover { background: rgba(255, 255, 255, .2); }

/* — Magazine : photo + titre éditorial, sujets numérotés dessous */
.sw-skin-magazine .sw-hero__main { flex-direction: row; flex-wrap: wrap; gap: 36px; align-items: center; }
.sw-skin-magazine .sw-hero__media { flex: 999 1 520px; min-width: 0; }
.sw-skin-magazine .sw-hero__body { flex: 1 1 320px; min-width: 0; }
.sw-skin-magazine .sw-hero__title { font-size: clamp(32px, 4vw, 50px); font-weight: 600; letter-spacing: -0.025em; }
.sw-skin-magazine .sw-hero__excerpt { color: #3E4252; }
.sw-skin-magazine .sw-hero__latest { flex-basis: 100%; border-top: 1px solid var(--sw-ink); padding-top: 16px; }
.sw-skin-magazine .sw-hero__latest-title { font-family: var(--sw-font-display); text-transform: none; letter-spacing: -0.01em; font-size: 28px; font-weight: 600; color: var(--sw-ink); margin-bottom: 8px; }
.sw-skin-magazine .sw-hero__latest .sw-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 32px; }
.sw-skin-magazine .sw-list-item a { border-bottom: 0; }
.sw-skin-magazine .sw-list-item__num { font-size: 44px; font-weight: 800; color: var(--sw-brand); }
.sw-skin-magazine .sw-list-item:nth-child(3n) .sw-list-item__num { color: var(--sw-accent); }
.sw-skin-magazine .sw-list-item__title { font-weight: 600; font-size: 21px; }

/* — Hybride : bandeau sombre, texte à gauche, vidéo à droite */
.sw-skin-hybride .sw-hero { background: var(--sw-brand); color: var(--sw-ink); padding-bottom: 8px; }
.sw-skin-hybride .sw-hero__main { flex-direction: row; flex-wrap: wrap; gap: 36px; align-items: center; }
.sw-skin-hybride .sw-hero__media { flex: 999 1 540px; min-width: 0; order: 2; }
.sw-skin-hybride .sw-hero__body { flex: 1 1 340px; min-width: 0; order: 1; }
.sw-skin-hybride .sw-hero__title { font-size: clamp(36px, 5vw, 62px); line-height: .98; }
.sw-skin-hybride .sw-hero__latest { flex-basis: 100%; }
.sw-skin-hybride .sw-hero__latest .sw-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 24px; }
.sw-skin-hybride .sw-hero__latest .sw-list-item a { border-bottom: 0; border-top: 1px solid var(--sw-border); }
.sw-skin-hybride .sw-hero__latest-title { color: #8FA6FF; }
.sw-skin-hybride .sw-list-item__num { color: var(--sw-accent); }
.sw-skin-hybride .sw-hero .sw-thumb { background: var(--sw-surface); }
.sw-skin-hybride .sw-btn--ghost:hover { background: rgba(255, 255, 255, .08); }

/* 6. Sections & cartes ---------------------------------------------------- */
.sw-home { display: flex; flex-direction: column; }
.sw-section { padding-block: calc(var(--sw-section-gap) / 2); }
.sw-section:last-child { padding-bottom: var(--sw-section-gap); }
.sw-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 20px; }
.sw-section__title { font-size: clamp(24px, 3vw, 30px); }
.sw-section__more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; color: var(--sw-link); min-height: 44px; }
.sw-skin-info .sw-section__head { border-bottom: 3px solid var(--sw-brand); padding-bottom: 8px; }
.sw-skin-magazine .sw-section__head { border-top: 1px solid var(--sw-ink); padding-top: 12px; }
.sw-skin-magazine .sw-section__more { color: var(--sw-ink); text-decoration: underline; text-underline-offset: 4px; }
.sw-skin-hybride .sw-section__title { font-size: clamp(28px, 4vw, 40px); }

.sw-grid { display: grid; gap: 24px 20px; }
.sw-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.sw-grid--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.sw-grid--shorts { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }

.sw-rail { display: grid; gap: 24px 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.sw-skin-streaming .sw-rail:not(.sw-rail--shorts), .sw-skin-hybride .sw-rail:not(.sw-rail--shorts) {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin;
}
.sw-skin-streaming .sw-rail:not(.sw-rail--shorts) > *, .sw-skin-hybride .sw-rail:not(.sw-rail--shorts) > * { flex: 0 0 min(300px, 78vw); scroll-snap-align: start; }
.sw-rail--shorts { display: flex; overflow-x: auto; gap: 14px; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin; }
.sw-rail--shorts > * { flex: 0 0 min(170px, 42vw); scroll-snap-align: start; }

.sw-card__link { display: flex; flex-direction: column; gap: 12px; height: 100%; }
.sw-card__body { display: flex; flex-direction: column; gap: 6px; }
.sw-card__title { font-family: var(--sw-font-display); font-weight: 700; font-size: 18px; line-height: 1.25; letter-spacing: -0.01em; }
.sw-card__meta { font-size: 13px; color: var(--sw-muted); }
.sw-card__link:hover .sw-card__title { color: var(--sw-accent); }
.sw-card__link:hover .sw-thumb__img { transform: scale(1.04); }
.sw-skin-magazine .sw-card__title { font-weight: 600; font-size: 21px; }
.sw-skin-info .sw-card--show .sw-thumb { background: var(--sw-brand-2); }
.sw-card--show .sw-thumb__play { left: auto; bottom: auto; right: 12px; top: 12px; }

.sw-short { display: flex; flex-direction: column; gap: 8px; }
.sw-thumb--short { aspect-ratio: 9 / 16; }
.sw-short__title { font-weight: 600; font-size: 14px; line-height: 1.3; }
.sw-short:hover .sw-thumb__img { transform: scale(1.04); }
/* Short YouTube : bouton qui charge le lecteur vertical au clic */
button.sw-short { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
button.sw-short:hover .sw-short__title, button.sw-short:focus-visible .sw-short__title { color: var(--sw-accent); }
.sw-short__title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sw-embed--vertical { aspect-ratio: 9 / 16; }
/* TikTok : encart avant chargement, puis module officiel */
.sw-tiktok { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 24px; border: 1px solid var(--sw-border); border-radius: var(--sw-radius); background: var(--sw-surface); color: var(--sw-ink); }
.sw-tiktok__text { margin: 0; max-width: 60ch; color: var(--sw-muted); }
.sw-tiktok.is-loaded { display: block; padding: 0; border: 0; background: none; }
.sw-tiktok .tiktok-embed { margin: 0 auto; max-width: 780px; min-width: 288px; }

.sw-skin-hybride .sw-shorts { background: var(--sw-brand); color: var(--sw-ink); padding-top: 8px; padding-bottom: 44px; }
.sw-skin-hybride .sw-shorts .sw-section__title { font-size: 22px; }

.sw-empty { padding-block: 48px; display: flex; flex-direction: column; gap: 16px; }

/* 7. Pratique : cartes de l'extension SW Ville ------------------------------ */
.sw-pratique__grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
@media (min-width: 900px) {
	.sw-skin-hybride .sw-pratique__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sw-skin-hybride .sw-pratique__grid > .swv-card--cantine,
	.sw-skin-hybride .sw-pratique__grid > .swv-card--bornes { grid-column: span 2; }
}
.sw-skin-magazine .sw-pratique__grid { gap: 0; border: 1px solid var(--sw-ink); }
.sw-skin-magazine .sw-pratique__grid > .swv-card { border: 0; border-right: 1px solid var(--sw-ink); border-bottom: 1px solid var(--sw-ink); margin: 0 -1px -1px 0; }
.sw-skin-streaming .sw-pratique .swv-card { border-color: var(--sw-border); }

/* 8. Newsletter ------------------------------------------------------------ */
.sw-newsletter {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	background: var(--sw-brand); color: var(--sw-on-brand); border-radius: var(--sw-radius); padding: clamp(24px, 4vw, 40px);
}
.sw-newsletter__text { flex: 1 1 340px; display: flex; flex-direction: column; gap: 8px; }
.sw-newsletter__title { font-size: clamp(24px, 3vw, 32px); color: var(--sw-on-brand); }
.sw-newsletter__text p { color: var(--sw-on-brand-muted); }
.sw-newsletter__form { flex: 1 1 340px; }
.sw-newsletter__form form { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.sw-newsletter__form label { color: var(--sw-on-brand-muted); font-size: 14px; }
.sw-newsletter__form input[type="email"], .sw-newsletter__form input[type="text"] {
	flex: 1 1 220px; min-height: 48px; padding: 0 16px; border: 0; border-radius: var(--sw-radius-sm);
	font: inherit; font-size: 16px; background: #FFFFFF; color: #0A1F44;
}
.sw-newsletter__form button, .sw-newsletter__form input[type="submit"] {
	min-height: 48px; padding: 0 22px; border: 0; border-radius: var(--sw-radius-sm);
	background: var(--sw-accent); color: var(--sw-on-accent); font: inherit; font-weight: 700; cursor: pointer;
}
.sw-skin-streaming .sw-newsletter { background: var(--sw-surface); }
.sw-skin-hybride .sw-newsletter { background: var(--sw-brand); }
/* Formulaire Brevo : un champ par ligne, libellé au-dessus */
.sw-newsletter__form .sib_signup_form { display: block; }
.sw-newsletter__form .sib_signup_form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; }
.sw-newsletter__form .sib_signup_form input[type="email"], .sw-newsletter__form .sib_signup_form input[type="text"] { flex: none; width: 100%; }
.sw-newsletter__form .sib_signup_form .sib_msg_disp:not(:empty) { margin-bottom: 12px; }

/* WPForms : couleurs de l'ambiance (claire ou sombre) */
.sw-content .wpforms-container {
	--wpforms-label-color: var(--sw-ink);
	--wpforms-label-sublabel-color: var(--sw-muted);
	--wpforms-label-error-color: var(--sw-accent);
	--wpforms-field-background-color: #FFFFFF;
	--wpforms-field-text-color: #0A1F44;
	--wpforms-field-border-color: var(--sw-border);
	--wpforms-field-border-radius: var(--sw-radius-sm);
	--wpforms-button-background-color: var(--sw-accent);
	--wpforms-button-text-color: var(--sw-on-accent);
	--wpforms-button-border-radius: var(--sw-radius-sm);
	--wpforms-page-break-color: var(--sw-accent);
}
.sw-content .wpforms-container .wpforms-submit { font-weight: 700; }

/* 9. Archives & article ---------------------------------------------------- */
.sw-archive__head { padding-block: clamp(28px, 5vw, 48px); background: var(--sw-surface); border-bottom: 1px solid var(--sw-border); }
.sw-archive__head .sw-wrap { display: flex; flex-direction: column; gap: 10px; }
.sw-archive__title { font-size: clamp(32px, 5vw, 54px); }
.sw-archive__desc { color: var(--sw-muted); max-width: 70ch; }
.sw-archive__search { max-width: 640px; margin-top: 8px; }
.sw-archive__body { padding-block: 36px 56px; }
.sw-skin-streaming .sw-archive__head { background: var(--sw-bg); border-bottom-color: var(--sw-border); }
.sw-skin-magazine .sw-archive__head { background: transparent; border-bottom: 1px solid var(--sw-ink); text-align: center; }
.sw-skin-magazine .sw-archive__head .sw-wrap { align-items: center; }
.sw-skin-hybride .sw-archive__head { background: var(--sw-brand); color: var(--sw-ink); border-bottom: 0; }

.sw-single { padding-bottom: var(--sw-section-gap); }
.sw-article__head { padding-block: clamp(28px, 5vw, 52px) 24px; }
.sw-article__head .sw-wrap { display: flex; flex-direction: column; gap: 14px; }
.sw-article__title { font-size: clamp(32px, 5vw, 56px); line-height: 1.04; }
.sw-article__lead { font-size: 20px; line-height: 1.5; color: var(--sw-muted); }
.sw-article__meta { font-size: 14px; color: var(--sw-muted); }
.sw-article__media { margin-block: 0 32px; }
.sw-article__media figcaption { font-size: 14px; color: var(--sw-muted); margin-top: 8px; }
.sw-skin-magazine .sw-article__head .sw-wrap { align-items: center; text-align: center; }
.sw-skin-magazine .sw-article__title { font-weight: 600; }

.sw-prose { font-size: 18px; line-height: 1.7; }
.sw-prose > * + * { margin-top: 1.1em; }
.sw-prose h2 { font-size: 28px; margin-top: 1.8em; }
.sw-prose h3 { font-size: 22px; margin-top: 1.5em; }
.sw-prose a { color: var(--sw-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.sw-prose a:hover { color: var(--sw-accent); }
.sw-prose ul, .sw-prose ol { padding-left: 1.3em; }
.sw-prose li + li { margin-top: .35em; }
.sw-prose blockquote { margin-inline: 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--sw-accent); font-family: var(--sw-font-display); font-size: 22px; line-height: 1.4; }
.sw-prose figure { margin-inline: 0; }
.sw-prose figcaption, .sw-prose .wp-element-caption { font-size: 14px; color: var(--sw-muted); margin-top: 8px; }
.sw-prose img { border-radius: var(--sw-radius-sm); }
.sw-prose table { width: 100%; border-collapse: collapse; font-size: 16px; }
.sw-prose th, .sw-prose td { border-bottom: 1px solid var(--sw-border); padding: 10px 8px; text-align: left; }
.sw-prose .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border-radius: var(--sw-radius); }
.sw-prose .alignwide { margin-inline: min(-120px, calc((760px - 100vw) / 2 + var(--sw-gutter))); max-width: none; }
.sw-prose .alignfull { margin-inline: calc(50% - 50vw); max-width: 100vw; }
.sw-prose .wp-block-button__link { background: var(--sw-accent); color: var(--sw-on-accent); text-decoration: none; border-radius: var(--sw-radius-sm); }
@media (max-width: 1100px) { .sw-prose .alignwide { margin-inline: 0; } }

.sw-article__foot { margin-top: 40px; display: flex; flex-direction: column; gap: 16px; }
.sw-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 20px; border-top: 1px solid var(--sw-border); }
.sw-share__label { font-family: var(--sw-font-label); font-weight: 700; font-size: 13px; letter-spacing: var(--sw-label-tracking); text-transform: uppercase; color: var(--sw-muted); margin-right: 6px; }
.sw-share a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--sw-border); border-radius: 999px; font-weight: 600; font-size: 14px; }
.sw-share a:hover { border-color: var(--sw-accent); }
.sw-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 10px; background: var(--sw-surface-2); border-radius: 999px; font-size: 14px; }
.sw-related { border-top: 1px solid var(--sw-border); }

.nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; }
.nav-links .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--sw-border); border-radius: var(--sw-radius-sm); font-weight: 600; }
.nav-links .page-numbers.current { background: var(--sw-brand); color: var(--sw-on-brand); border-color: var(--sw-brand); }
.sw-skin-streaming .nav-links .page-numbers.current { background: var(--sw-accent); border-color: var(--sw-accent); }

.sw-comments { margin-top: 48px; display: flex; flex-direction: column; gap: 20px; }
.sw-comments__list { list-style: none; padding: 0; }
.sw-comments textarea, .sw-comments input[type="text"], .sw-comments input[type="email"], .sw-comments input[type="url"] {
	width: 100%; padding: 12px; font: inherit; border: 2px solid var(--sw-border); border-radius: var(--sw-radius-sm); background: var(--sw-surface); color: var(--sw-ink);
}
.sw-comments .submit { min-height: 48px; padding: 0 22px; border: 0; border-radius: var(--sw-radius-sm); background: var(--sw-accent); color: var(--sw-on-accent); font-weight: 700; cursor: pointer; }

/* 10. Pied de page --------------------------------------------------------- */
.sw-footer { background: var(--sw-brand-deep); color: var(--sw-on-brand-muted); font-size: 15px; }
.sw-footer .sw-logo, .sw-footer .sw-logo__big { color: var(--sw-on-brand); }
.sw-footer__inner { display: flex; flex-wrap: wrap; gap: 28px 48px; justify-content: space-between; padding-block: 40px 24px; }
.sw-footer__brand { display: flex; flex-direction: column; gap: 14px; max-width: 420px; }
.sw-footer__nav { display: flex; flex-wrap: wrap; gap: 24px 48px; }
.sw-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.sw-footer a:hover { color: var(--sw-on-brand); }
.sw-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-block: 16px 28px; font-size: 13px; border-top: 1px solid rgba(255, 255, 255, .1); }
.sw-skin-streaming .sw-footer { background: var(--sw-bg); border-top: 1px solid var(--sw-border); }
.sw-skin-magazine .sw-footer { background: var(--sw-bg); color: var(--sw-muted); border-top: 1px solid var(--sw-ink); }
.sw-skin-magazine .sw-footer .sw-logo__small, .sw-skin-magazine .sw-footer .sw-logo__big { font-size: 28px; color: var(--sw-ink); }
.sw-skin-magazine .sw-footer a:hover { color: var(--sw-ink); }
.sw-skin-magazine .sw-footer__legal { border-top-color: var(--sw-border); }
.sw-widget__title { font-size: 16px; color: var(--sw-on-brand); margin-bottom: 8px; }

/* Lignes qui défilent (émissions, événements) : toutes ambiances, toutes tailles d'écran */
.sw-home .sw-rail.sw-rail--row {
	display: flex; overflow-x: auto; gap: 16px; padding-bottom: 10px;
	scroll-snap-type: x mandatory; scrollbar-width: thin; overscroll-behavior-x: contain;
}
.sw-home .sw-rail.sw-rail--row > * { flex: 0 0 min(280px, 72vw); scroll-snap-align: start; }
.sw-show-row__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 12px; }
@media (max-width: 600px) {
	.sw-home .sw-rail.sw-rail--row { margin-right: calc(-1 * var(--sw-gutter)); padding-right: var(--sw-gutter); }
}

/* 11. Ordre des sections de l'accueil par ambiance ------------------------- */
.sw-home > .sw-events { order: 4; }
.sw-skin-streaming .sw-home > .sw-events, .sw-skin-hybride .sw-home > .sw-events { order: 5; }
.sw-home > .sw-hero { order: 1; }
.sw-home > .sw-pratique { order: 2; }
.sw-home > .sw-shows { order: 3; }
.sw-home > .sw-feed { order: 4; }
.sw-home > .sw-shorts { order: 5; }
.sw-home > .sw-section--newsletter { order: 6; }

.sw-skin-streaming .sw-home > .sw-feed { order: 3; }
.sw-skin-streaming .sw-home > .sw-shorts { order: 4; }
.sw-skin-streaming .sw-home > .sw-shows { order: 5; }

.sw-skin-magazine .sw-home > .sw-shows { order: 2; }
.sw-skin-magazine .sw-home > .sw-pratique { order: 3; }

.sw-skin-hybride .sw-home > .sw-shorts { order: 2; }
.sw-skin-hybride .sw-home > .sw-pratique { order: 3; padding-top: var(--sw-section-gap); }
.sw-skin-hybride .sw-home > .sw-shows { order: 4; }
.sw-skin-hybride .sw-home > .sw-feed { order: 5; }

/* Mouvement réduit --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.sw-ticker__viewport { overflow-x: auto; }
	.sw-ticker__track { animation: none !important; }
	.sw-ticker__track[aria-hidden="true"] { display: none; }
}

/* 12. Consentement aux cookies --------------------------------------------- */
.sw-consent {
	position: fixed; z-index: 1000; left: 0; right: 0; bottom: 0;
	padding: 0 var(--sw-gutter) var(--sw-gutter); pointer-events: none;
}
.sw-consent[hidden], .sw-consent [hidden] { display: none !important; }
.sw-consent__box {
	pointer-events: auto; max-width: 760px; margin: 0 auto; max-height: calc(100vh - 32px); overflow-y: auto;
	padding: clamp(18px, 3vw, 26px); border: 1px solid var(--sw-border); border-radius: var(--sw-radius);
	background: var(--sw-surface); color: var(--sw-ink); box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}
.sw-consent__title { margin: 0 0 8px; font-size: 20px; }
.sw-consent__title:focus { outline: none; }
.sw-consent__text { margin: 0; font-size: 15px; line-height: 1.5; color: var(--sw-muted); }
.sw-consent__text a { color: var(--sw-ink); text-decoration: underline; }
.sw-consent__details { margin-top: 16px; }
.sw-consent__details fieldset { margin: 0; padding: 0; border: 0; display: grid; gap: 12px; }
.sw-consent__legend { margin-bottom: 4px; font-weight: 700; }
.sw-consent__cat { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border: 1px solid var(--sw-border); border-radius: var(--sw-radius-sm); }
.sw-consent__cat input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--sw-accent); }
.sw-consent__cat label { display: flex; flex-direction: column; gap: 2px; font-size: 14px; cursor: pointer; }
.sw-consent__cat label span { color: var(--sw-muted); }
.sw-consent__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.sw-consent__actions .sw-btn { flex: 1 1 auto; justify-content: center; }
@media (min-width: 640px) { .sw-consent__actions .sw-btn { flex: 0 0 auto; } }
.sw-consent-link { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }
.sw-consent-link:hover { color: var(--sw-accent); }

/* 13. Étiquettes « Rejoindre l'équipe » / « Donner une info » ------------- */
.sw-cta { display: flex; flex-wrap: wrap; gap: 8px; }
.sw-cta__link {
	display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px;
	font-weight: 700; font-size: 13px; line-height: 1.3; text-decoration: none; white-space: nowrap;
	background: var(--sw-accent); color: var(--sw-on-accent); border: 1px solid transparent;
}
.sw-cta__link--info { background: rgba(255, 255, 255, .12); color: var(--sw-on-brand); border-color: rgba(255, 255, 255, .35); }
.sw-topbar a.sw-cta__link:hover, .sw-cta__link:focus-visible { filter: brightness(1.1); color: var(--sw-on-accent); }
.sw-topbar a.sw-cta__link--info:hover { color: var(--sw-on-brand); }
.sw-skin-magazine .sw-cta__link--info { background: transparent; color: var(--sw-ink); border-color: var(--sw-ink); }
.sw-skin-magazine .sw-topbar a.sw-cta__link--info:hover { color: var(--sw-ink); }
@media (max-width: 600px) {
	.sw-topbar__tagline { display: none; }
	.sw-cta { width: 100%; }
	.sw-cta__link { flex: 1 1 0; justify-content: center; padding: 9px 10px; font-size: 14px; }
}
/* Formulaire atteint depuis une étiquette : ne pas passer sous l'en-tête */
.sw-content form { scroll-margin-top: 110px; }

/* 14. Titres des émissions ------------------------------------------------- */
.sw-show-row + .sw-show-row { margin-top: clamp(28px, 5vw, 44px); padding-top: clamp(20px, 3vw, 28px); border-top: 1px solid var(--sw-border); }
.sw-show-row__head { margin-bottom: 16px; }
.sw-show-row__title {
	margin: 0; padding-left: 14px; border-left: 6px solid var(--sw-accent);
	font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); letter-spacing: var(--sw-display-tracking);
	font-size: clamp(24px, 4.2vw, 32px); line-height: 1.05; color: var(--sw-ink);
}

/* 15. Carrousel de la une -------------------------------------------------- */
.sw-hero__carousel { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.sw-hero__controls { display: flex; align-items: center; justify-content: center; gap: 10px; }
.sw-hero__nav, .sw-hero__pause {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0;
	border: 1px solid var(--sw-border); border-radius: 50%; background: var(--sw-surface); color: var(--sw-ink); cursor: pointer;
}
.sw-hero__nav:hover, .sw-hero__pause:hover { border-color: var(--sw-accent); color: var(--sw-accent); }
.sw-hero__nav--prev .sw-icon { transform: rotate(180deg); }
.sw-hero__dots { display: flex; gap: 8px; align-items: center; }
.sw-hero__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: var(--sw-border); cursor: pointer; transition: width .25s ease, background-color .25s ease; }
.sw-hero__dot[aria-current="true"] { width: 28px; background: var(--sw-accent); }
.sw-hero__pause-icon { width: 12px; height: 12px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; box-sizing: border-box; }
.sw-hero__pause[aria-pressed="true"] .sw-hero__pause-icon { border: 0; width: 0; height: 0; border-left: 11px solid currentColor; border-top: 7px solid transparent; border-bottom: 7px solid transparent; margin-left: 3px; }

/* 16. Logo : apparition et effet au survol / toucher ----------------------- */
.sw-header__brand .custom-logo-link, .sw-header__brand .sw-logo { animation: sw-logo-in .7s cubic-bezier(.2, .8, .2, 1); }
@keyframes sw-logo-in { from { opacity: 0; transform: translateY(-8px) scale(.94); } to { opacity: 1; transform: none; } }
.custom-logo, .sw-logo { transition: transform .35s cubic-bezier(.2, .8, .2, 1), filter .35s ease; }
.custom-logo-link:hover .custom-logo, .custom-logo-link:focus-visible .custom-logo, .custom-logo-link:active .custom-logo,
.sw-logo:hover, .sw-logo:focus-visible, .sw-logo:active {
	transform: scale(1.06) rotate(-1.5deg); filter: drop-shadow(0 0 12px rgba(225, 37, 27, .55));
}

/* 17. Mobile : logo centré en haut et en bas ------------------------------- */
@media (max-width: 600px) {
	.sw-header__inner { position: relative; justify-content: center; padding-top: 8px; padding-bottom: 12px; }
	.sw-header__brand { margin-inline: auto; }
	.sw-header__actions { position: absolute; right: var(--sw-gutter); top: 14px; margin: 0; }
	.sw-header .custom-logo { max-height: 44px; max-width: calc(100vw - 2 * (var(--sw-gutter) + 100px)); height: auto; object-fit: contain; }
	.sw-footer__brand { width: 100%; max-width: none; align-items: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.sw-header__brand .custom-logo-link, .sw-header__brand .sw-logo { animation: none; }
	.custom-logo, .sw-logo { transition: none; }
}

/* 18. Carrousel : bande qui défile au doigt -------------------------------- */
.sw-hero__slides {
	position: relative; display: flex; align-items: stretch; gap: 0;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.sw-hero__slides::-webkit-scrollbar { display: none; }
.sw-hero__carousel > .sw-hero__slides > .sw-hero__slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }

/* 19. Mobile : bouton « Participer » discret à gauche du logo -------------- */
.sw-header__start { display: none; }
.sw-cta-toggle span { font-size: 18px; line-height: 1; }
.sw-cta-menu {
	position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; min-width: 220px; margin: 0; padding: 6px; list-style: none;
	background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
}
.sw-cta-menu[hidden] { display: none; }
.sw-cta-menu a { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: var(--sw-radius-sm); color: var(--sw-ink); font-weight: 700; text-decoration: none; }
.sw-cta-menu a:hover, .sw-cta-menu a:focus-visible { background: var(--sw-surface-2); color: var(--sw-ink); }
@media (max-width: 600px) {
	.sw-topbar { display: none; }
	.sw-header__start { display: block; position: absolute; left: var(--sw-gutter); top: 14px; }
}

/* 20. Réseaux sociaux : « Bonjour Wasquehal » (Facebook) et reels Instagram  */
.sw-social-card { display: flex; flex-direction: column; gap: 8px; color: inherit; text-decoration: none; }
.sw-thumb--square { aspect-ratio: 1 / 1; }
.sw-thumb--reel { aspect-ratio: 9 / 16; }
.sw-social-card__network {
	position: absolute; top: 10px; left: 10px; padding: 3px 9px; border-radius: 999px;
	background: rgba(0, 0, 0, .65); color: #FFFFFF; font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
.sw-social-card__text { font-weight: 600; font-size: 15px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sw-social-card:hover .sw-thumb__img { transform: scale(1.04); }
.sw-social-card:hover .sw-social-card__text { color: var(--sw-accent); }
.sw-social--instagram .sw-social-card__text { font-size: 14px; }
.sw-home > .sw-social--facebook { order: 2; }
.sw-home > .sw-social--instagram { order: 5; }
.sw-skin-streaming .sw-home > .sw-social--instagram { order: 4; }
.sw-skin-hybride .sw-home > .sw-social--instagram { order: 2; }

/* 21. Pictogrammes des réseaux sociaux ------------------------------------ */
.sw-brand { display: block; }
.sw-social-link { display: inline-flex; align-items: center; justify-content: center; padding: 4px; border-radius: 6px; opacity: .8; transition: opacity .2s ease, transform .2s ease; }
.sw-social-link:hover, .sw-social-link:focus-visible { opacity: 1; transform: translateY(-1px); }
.sw-topbar__social { align-items: center; gap: 2px 10px; }
.sw-footer__list.sw-footer__social { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.sw-footer__social .sw-brand { width: 22px; height: 22px; }

/* 22. « Participer » sur ordinateur : bouton discret à côté de la loupe ---- */
.sw-cta-toggle__label { display: none; }
@media (min-width: 601px) {
	.sw-topbar .sw-cta { display: none; }
	.sw-header__start { display: block; position: relative; order: 3; margin-left: auto; }
	.sw-header__actions { order: 4; margin-left: 8px; }
	.sw-cta-toggle { width: auto; padding: 0 16px 0 12px; gap: 8px; border-radius: 999px; font-weight: 700; font-size: 14px; }
	.sw-cta-toggle__label { display: inline; }
	.sw-cta-menu { left: auto; right: 0; }
}

/* 23. Logo plus grand, avec de l'air en dessous ---------------------------- */
@media (min-width: 601px) {
	.sw-header__inner { min-height: 104px; padding-top: 12px; padding-bottom: 18px; }
	.sw-header .custom-logo { max-height: 80px; }
}
@media (max-width: 600px) {
	.sw-header .custom-logo { max-height: 52px; }
	.sw-header__inner { padding-bottom: 16px; }
}

/* Repère « section en attente » (administrateurs uniquement) */
.sw-admin-note { margin: 0; padding: 14px 18px; border: 2px dashed var(--sw-border); border-radius: var(--sw-radius); color: var(--sw-muted); font-size: 14px; }
.sw-admin-note strong { color: var(--sw-ink); }
@media (max-width: 600px) {
	.sw-footer__nav { width: 100%; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
	.sw-footer__list { align-items: center; }
	.sw-footer__list.sw-footer__social { justify-content: center; }
	.sw-footer__legal { justify-content: center; text-align: center; }
}

/* 24. Ambiance « Ville » (univers Wasquehal & Nous) ------------------------ */
.sw-skin-ville .sw-header { background: var(--sw-brand); border-bottom: 0; color: var(--sw-ink); position: sticky; }
.sw-skin-ville .sw-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, #123E9C 0 33.3%, #FFFFFF 33.3% 66.6%, #D62839 66.6% 100%); }
.sw-skin-ville .sw-topbar { background: var(--sw-brand-deep); }
.sw-skin-ville .sw-footer { background: var(--sw-brand-deep); }
.sw-skin-ville .sw-card, .sw-skin-ville .sw-actu, .sw-skin-ville .swv-card { box-shadow: var(--sw-shadow); }
.sw-skin-ville .sw-section__title { color: var(--sw-brand); }
.sw-skin-ville .sw-section__head { padding-bottom: 10px; border-bottom: 2px solid var(--sw-surface-2); }

/* 25. Sélecteur d'univers --------------------------------------------------- */
.sw-univers { background: var(--sw-bg); border-bottom: 1px solid var(--sw-border); }
.sw-univers__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-block: 8px; }
.sw-univers__link {
	display: flex; flex-direction: column; justify-content: center; gap: 1px; min-height: 52px; padding: 6px 14px;
	border: 1px solid var(--sw-border); border-radius: var(--sw-radius-sm); background: var(--sw-surface); color: var(--sw-ink); text-decoration: none;
	transition: border-color .2s ease, background-color .2s ease;
}
.sw-univers__link:hover { border-color: var(--sw-accent); color: var(--sw-ink); }
.sw-univers__link[aria-current="page"] { border-color: transparent; background: var(--sw-ink); color: var(--sw-bg); }
.sw-univers__link--ville[aria-current="page"] { background: #123E9C; color: #FFFFFF; }
.sw-univers__link--studio[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--sw-accent); }
.sw-univers__link--ville[aria-current="page"] { box-shadow: inset 0 -3px 0 #D62839; }
.sw-univers__kicker { font-size: 11px; font-weight: 700; letter-spacing: var(--sw-label-tracking); text-transform: uppercase; opacity: .75; }
.sw-univers__name { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); font-size: clamp(15px, 2.2vw, 18px); line-height: 1.1; }
@media (max-width: 600px) { .sw-univers__kicker { display: none; } .sw-univers__link { min-height: 44px; align-items: center; text-align: center; } }

/* 26. Accueil « Wasquehal & Nous » ------------------------------------------ */
.sw-ville-intro { padding-top: clamp(28px, 5vw, 48px); }
.sw-ville-intro__kicker { margin: 0 0 6px; color: var(--sw-accent); font-weight: 700; font-size: 13px; letter-spacing: var(--sw-label-tracking); text-transform: uppercase; }
.sw-ville-intro__title { margin: 0; font-size: clamp(34px, 6vw, 60px); line-height: 1; color: var(--sw-brand); }
.sw-ville-intro__text { margin-top: 14px; max-width: 70ch; color: var(--sw-muted); font-size: 18px; }
.sw-actu {
	display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 18px 20px;
	background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); color: var(--sw-ink); text-decoration: none;
}
.sw-actu:hover { border-color: var(--sw-brand-2); color: var(--sw-ink); }
.sw-actu__meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: 12px; color: var(--sw-muted); }
.sw-actu__source { padding: 2px 10px; border-radius: 999px; background: var(--sw-surface-2); color: var(--sw-brand-2); font-weight: 700; }
.sw-actu__title { font-family: var(--sw-font-display); font-weight: 700; font-size: 18px; line-height: 1.25; }
.sw-actu__resume { font-size: 15px; line-height: 1.5; color: var(--sw-muted); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.sw-actu__more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--sw-brand-2); }
.sw-ville-home .sw-rail.sw-rail--row { display: flex; overflow-x: auto; gap: 16px; padding-bottom: 10px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.sw-ville-home .sw-rail.sw-rail--row > * { flex: 0 0 min(320px, 80vw); scroll-snap-align: start; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* 27. Guide pratique (univers Wasquehal & Nous) ------------------------------ */
.sw-guide__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.sw-guide__card {
	display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; row-gap: 2px; align-items: center; height: 100%;
	padding: 16px 18px; background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); box-shadow: var(--sw-shadow);
	color: var(--sw-ink); text-decoration: none; transition: border-color .2s ease, transform .2s ease;
}
.sw-guide__card:hover { border-color: var(--sw-brand-2); color: var(--sw-ink); transform: translateY(-2px); }
.sw-guide__icon { grid-row: 1 / span 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--sw-surface-2); font-size: 24px; }
.sw-guide__title { font-family: var(--sw-font-display); font-weight: 700; font-size: 17px; line-height: 1.2; }
.sw-guide__text { font-size: 14px; line-height: 1.4; color: var(--sw-muted); }
.sw-back { display: inline-block; margin-bottom: 12px; font-size: 14px; font-weight: 700; color: var(--sw-brand-2); text-decoration: none; }
.sw-back:hover { text-decoration: underline; }
.sw-guide__head-icon { margin: 0 0 4px; font-size: 40px; line-height: 1; }
.sw-skin-ville .sw-article__title { color: var(--sw-brand); }

/* 28. Page d'entrée : choisir son univers ---------------------------------- */
.sw-intro { --sw-studio: #0B1430; --sw-studio-2: #E63946; --sw-ville: #123E9C; --sw-ville-2: #D62839; margin: 0; background: #0B1430; color: #FFFFFF; }
.sw-intro__main { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.sw-intro__head { text-align: center; padding: clamp(24px, 5vh, 48px) 16px 16px; }
.sw-intro__logo { display: flex; justify-content: center; margin-bottom: 14px; }
.sw-intro__logo .custom-logo { max-height: clamp(64px, 11vh, 104px); width: auto; }
.sw-intro__logo .sw-logo, .sw-intro__logo .sw-logo__big { color: inherit; }
.sw-intro__title { margin: 0; font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); letter-spacing: -0.03em; font-size: clamp(28px, 5vw, 54px); line-height: 1.02; }
.sw-intro__subtitle { margin: 10px 0 0; font-size: clamp(16px, 2vw, 20px); opacity: .8; }
.sw-intro__doors { display: flex; }
.sw-door { position: relative; isolation: isolate; display: flex; overflow: hidden; color: #FFFFFF; text-decoration: none; }
.sw-door:hover, .sw-door:focus-visible { color: #FFFFFF; }
.sw-door__bg { position: absolute; inset: 0; z-index: -1; background-color: var(--sw-door-color); background-image: var(--sw-door-overlay), var(--sw-door-img, none); background-size: cover; background-position: center; transition: transform .7s cubic-bezier(.2, .8, .2, 1); }
.sw-door--studio { --sw-door-color: var(--sw-studio); --sw-door-accent: var(--sw-studio-2); --sw-door-overlay: linear-gradient(180deg, rgba(11, 20, 48, .35), rgba(11, 20, 48, .92)); }
.sw-door--ville { --sw-door-color: var(--sw-ville); --sw-door-accent: #FFFFFF; --sw-door-overlay: linear-gradient(180deg, rgba(18, 62, 156, .35), rgba(12, 44, 114, .94)); }
.sw-door:hover .sw-door__bg, .sw-door:focus-visible .sw-door__bg { transform: scale(1.06); }
.sw-door__body { display: flex; flex-direction: column; gap: 10px; max-width: 520px; }
.sw-door__kicker { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sw-door-accent); }
.sw-door--ville .sw-door__kicker { opacity: .85; }
.sw-door__name { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); letter-spacing: -0.03em; font-size: clamp(30px, 4.6vw, 56px); line-height: 1; }
.sw-door__text { font-size: clamp(15px, 1.6vw, 18px); line-height: 1.45; opacity: .9; }
.sw-door__cta { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; margin-top: 6px; padding: 12px 20px; border-radius: 999px; background: #FFFFFF; color: var(--sw-door-color); font-weight: 800; font-size: 15px; }
.sw-door__cta .sw-icon { transition: transform .3s ease; }
.sw-door:hover .sw-door__cta .sw-icon, .sw-door:focus-visible .sw-door__cta .sw-icon { transform: translateX(5px); }
.sw-door--studio .sw-door__cta { background: var(--sw-studio-2); color: #FFFFFF; }
.sw-intro__foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; padding: 14px 16px 20px; font-size: 13px; opacity: .75; }
.sw-intro__foot a, .sw-intro__foot .sw-consent-link { color: inherit; }
.sw-intro-link { color: inherit; }

/* Style 1 : deux portes (écran partagé) */
.sw-intro--portes .sw-intro__main { position: relative; }
.sw-intro--portes .sw-intro__head { position: absolute; z-index: 2; top: 0; left: 0; right: 0; pointer-events: none; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.sw-intro--portes .sw-intro__head .sw-intro__logo { pointer-events: auto; }
.sw-intro--portes .sw-intro__doors { flex: 1; }
.sw-intro--portes .sw-door { flex: 1; align-items: flex-end; padding: clamp(28px, 6vw, 72px); padding-top: 220px; transition: flex-grow .6s cubic-bezier(.2, .8, .2, 1); }
.sw-intro--portes .sw-door:hover, .sw-intro--portes .sw-door:focus-visible { flex-grow: 1.35; }
.sw-intro--portes .sw-door--ville::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #123E9C 0 33.3%, #FFFFFF 33.3% 66.6%, #D62839 66.6%); }
.sw-intro--portes .sw-intro__foot { position: absolute; z-index: 2; bottom: 0; left: 0; right: 0; }
@media (max-width: 760px) {
	.sw-intro--portes .sw-intro__doors { flex-direction: column; }
	.sw-intro--portes .sw-door { padding: 24px 20px 28px; min-height: 42svh; }
	.sw-intro--portes .sw-door--studio { padding-top: 190px; min-height: 52svh; }
	.sw-intro--portes .sw-door--ville { padding-bottom: 64px; }
	.sw-intro--portes .sw-door--ville::before { width: auto; height: 4px; right: 0; bottom: auto; background: linear-gradient(90deg, #123E9C 0 33.3%, #FFFFFF 33.3% 66.6%, #D62839 66.6%); }
}

/* Style 2 : deux cartes illustrées */
.sw-intro--cartes { background: radial-gradient(1200px 600px at 15% 0%, rgba(61, 107, 255, .28), transparent 60%), radial-gradient(900px 500px at 90% 100%, rgba(230, 57, 70, .22), transparent 60%), #0B1430; }
.sw-intro--cartes .sw-intro__doors { flex: 1; align-items: stretch; justify-content: center; gap: clamp(16px, 3vw, 32px); padding: 16px clamp(16px, 4vw, 48px) 8px; flex-wrap: wrap; }
.sw-intro--cartes .sw-door { flex: 1 1 340px; max-width: 520px; flex-direction: column; border-radius: 28px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 30px 60px rgba(0, 0, 0, .35); transition: transform .35s ease, border-color .35s ease; }
.sw-intro--cartes .sw-door:hover, .sw-intro--cartes .sw-door:focus-visible { transform: translateY(-6px); border-color: rgba(255, 255, 255, .35); }
.sw-intro--cartes .sw-door__bg { position: relative; inset: auto; z-index: 0; display: block; aspect-ratio: 16 / 9; background-image: var(--sw-door-img, none); }
.sw-intro--cartes .sw-door--ville .sw-door__bg { background-image: var(--sw-door-img, linear-gradient(135deg, #123E9C, #0C2C72)); }
.sw-intro--cartes .sw-door__bg::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, #123E9C 0 33.3%, #FFFFFF 33.3% 66.6%, #D62839 66.6%); }
.sw-intro--cartes .sw-door__body { padding: 22px 24px 26px; }
.sw-intro--cartes .sw-door__name { font-size: clamp(28px, 3.4vw, 40px); }

/* Style 3 : immersif (image plein écran) */
.sw-intro--immersif .sw-intro__main { background-image: linear-gradient(180deg, rgba(11, 20, 48, .55), rgba(11, 20, 48, .9)), var(--sw-intro-bg, none); background-size: cover; background-position: center; justify-content: center; }
.sw-intro--immersif .sw-intro__head { padding-top: 12vh; }
.sw-intro--immersif .sw-intro__title { font-size: clamp(38px, 7vw, 84px); }
.sw-intro--immersif .sw-intro__doors { justify-content: center; flex-wrap: wrap; gap: 16px; padding: 28px 16px 12vh; }
.sw-intro--immersif .sw-door { flex: 0 1 380px; border-radius: 22px; padding: 22px 24px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: background-color .3s ease, transform .3s ease; }
.sw-intro--immersif .sw-door:hover, .sw-intro--immersif .sw-door:focus-visible { background: rgba(255, 255, 255, .18); transform: translateY(-4px); }
.sw-intro--immersif .sw-door__bg { display: none; }
.sw-intro--immersif .sw-door__name { font-size: clamp(26px, 3vw, 34px); }
.sw-intro--immersif .sw-door__text { font-size: 15px; }
.sw-intro--immersif .sw-intro__foot { margin-top: auto; }

/* Style 4 : typographique (clair, épuré) */
.sw-intro--typo { background: #F7F5F0; color: #0F1E3D; }
.sw-intro--typo .sw-intro__main { border-top: 6px solid #123E9C; border-image: linear-gradient(90deg, #123E9C 0 33.3%, #FFFFFF 33.3% 66.6%, #D62839 66.6%) 1; }
.sw-intro--typo .custom-logo { filter: brightness(0) saturate(100%); }
.sw-intro--typo .sw-intro__head { text-align: left; max-width: 1100px; width: 100%; margin: 0 auto; padding: clamp(24px, 6vh, 64px) clamp(16px, 4vw, 40px) 8px; }
.sw-intro--typo .sw-intro__logo { justify-content: flex-start; }
.sw-intro--typo .sw-intro__subtitle { opacity: .65; }
.sw-intro--typo .sw-intro__doors { flex-direction: column; max-width: 1100px; width: 100%; margin: 0 auto; padding: 16px clamp(16px, 4vw, 40px); flex: 1; justify-content: center; }
.sw-intro--typo .sw-door { color: #0F1E3D; border-top: 1px solid rgba(15, 30, 61, .2); padding: clamp(18px, 3vh, 32px) 0; }
.sw-intro--typo .sw-door:last-child { border-bottom: 1px solid rgba(15, 30, 61, .2); }
.sw-intro--typo .sw-door:hover, .sw-intro--typo .sw-door:focus-visible { color: #0F1E3D; }
.sw-intro--typo .sw-door__bg { display: none; }
.sw-intro--typo .sw-door__body { max-width: none; width: 100%; display: grid; grid-template-columns: 1fr auto; column-gap: 24px; row-gap: 6px; align-items: end; }
.sw-intro--typo .sw-door__kicker { grid-column: 1 / -1; color: #D62839; }
.sw-intro--typo .sw-door--ville .sw-door__kicker { color: #123E9C; opacity: 1; }
.sw-intro--typo .sw-door__name { font-size: clamp(40px, 8vw, 104px); transition: transform .4s cubic-bezier(.2, .8, .2, 1), color .3s ease; }
.sw-intro--typo .sw-door:hover .sw-door__name, .sw-intro--typo .sw-door:focus-visible .sw-door__name { transform: translateX(10px); color: #123E9C; }
.sw-intro--typo .sw-door--studio:hover .sw-door__name { color: #D62839; }
.sw-intro--typo .sw-door__text { grid-column: 1; max-width: 60ch; opacity: .75; }
.sw-intro--typo .sw-door__cta { grid-column: 2; grid-row: 2 / span 2; align-self: center; padding: 0; width: 64px; height: 64px; justify-content: center; border-radius: 50%; background: #0F1E3D; color: #FFFFFF; font-size: 0; }
.sw-intro--typo .sw-door__cta .sw-icon { width: 26px; height: 26px; }
.sw-intro--typo .sw-door--studio .sw-door__cta { background: #D62839; }
.sw-intro--typo .sw-door--ville .sw-door__cta { background: #123E9C; }
@media (max-width: 600px) { .sw-intro--typo .sw-door__cta { width: 48px; height: 48px; } }

@media (prefers-reduced-motion: reduce) {
	.sw-door__bg, .sw-intro--portes .sw-door, .sw-intro--cartes .sw-door, .sw-intro--typo .sw-door__name, .sw-door__cta .sw-icon { transition: none; }
}

/* 29. Page d'entrée : fond du titre au choix et porte « ville » en miroir --- */
.sw-intro .custom-logo { filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .55)); }
.sw-intro--typo .custom-logo { filter: brightness(0) saturate(100%); }
.sw-intro--portes .sw-intro__head { left: 0; right: 0; top: clamp(12px, 3vh, 28px); text-shadow: 0 2px 14px rgba(0, 0, 0, .7), 0 0 2px rgba(0, 0, 0, .5); }
.sw-intro--portes .sw-intro__head .sw-intro__logo { margin-bottom: 8px; }
.sw-intro--portes .sw-intro__title { font-size: clamp(24px, 3.4vw, 40px); }
.sw-intro--portes .sw-intro__subtitle { margin-top: 6px; opacity: .92; }
.sw-intro--immersif .sw-intro__head { position: relative; text-shadow: 0 2px 14px rgba(0, 0, 0, .7); }

/* Porte « ville » : alignée à droite, en miroir de la porte Studio */
.sw-intro--portes .sw-door--ville { justify-content: flex-end; text-align: right; }
.sw-intro--portes .sw-door--ville .sw-door__body { align-items: flex-end; }
.sw-intro--portes .sw-door--ville .sw-door__cta { align-self: flex-end; }

/* Fond « voile dégradé » : fondu sombre depuis le haut, sans bord */
.sw-intro-fond--voile.sw-intro--portes .sw-intro__main::before {
	content: ""; position: absolute; z-index: 1; top: 0; left: 0; right: 0; height: min(62vh, 500px); pointer-events: none;
	background: linear-gradient(180deg, rgba(6, 12, 32, .95) 0%, rgba(6, 12, 32, .82) 35%, rgba(6, 12, 32, .45) 65%, rgba(6, 12, 32, .12) 85%, rgba(6, 12, 32, 0) 100%);
}
.sw-intro-fond--voile.sw-intro--immersif .sw-intro__head::before {
	content: ""; position: absolute; z-index: -1; inset: -40px -15vw; pointer-events: none;
	background: radial-gradient(closest-side, rgba(6, 12, 32, .7), rgba(6, 12, 32, 0));
}

/* Fond « halo » : lueur sombre et ronde derrière le logo et le titre */
.sw-intro-fond--halo .sw-intro__head { isolation: isolate; }
.sw-intro-fond--halo .sw-intro__head::before {
	content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: min(980px, 140vw); height: 460px; transform: translate(-50%, -50%); pointer-events: none;
	background: radial-gradient(closest-side, rgba(6, 12, 32, .94) 0%, rgba(6, 12, 32, .8) 45%, rgba(6, 12, 32, .4) 75%, rgba(6, 12, 32, 0) 100%);
	filter: blur(6px);
}

/* Fond « panneau verre dépoli » : le bloc translucide */
.sw-intro-fond--verre.sw-intro--portes .sw-intro__head,
.sw-intro-fond--verre.sw-intro--immersif .sw-intro__head {
	width: fit-content; max-width: calc(100% - 32px); margin-inline: auto;
	padding: clamp(16px, 2.5vw, 24px) clamp(20px, 4vw, 40px);
	background: rgba(8, 16, 40, .62); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, .16); border-radius: 26px; box-shadow: 0 20px 50px rgba(0, 0, 0, .35); text-shadow: none;
}
.sw-intro-fond--verre.sw-intro--portes .sw-intro__head { left: 50%; right: auto; transform: translateX(-50%); }

/* Bas de page lisible sur les images */
.sw-intro--portes .sw-intro__foot, .sw-intro--immersif .sw-intro__foot { text-shadow: 0 1px 6px rgba(0, 0, 0, .8); opacity: .9; }
.sw-intro--portes .sw-intro__foot { background: linear-gradient(0deg, rgba(8, 16, 40, .75), transparent); padding-top: 28px; }
@media (max-width: 760px) {
	.sw-intro--portes .sw-door--studio { padding-top: 230px; }
	.sw-intro--portes .sw-door--ville { padding-left: 20px; padding-right: 20px; }
	.sw-intro-fond--voile.sw-intro--portes .sw-intro__main::before { height: 340px; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.sw-intro-fond--verre .sw-intro__head { background: rgba(8, 16, 40, .85); }
}

/* 30. Ambiance Ville : page en cours du menu lisible sur l'en-tête bleu ----- */
.sw-skin-ville .sw-nav__list .current-menu-item > a,
.sw-skin-ville .sw-nav__list .current_page_item > a,
.sw-skin-ville .sw-nav__list a:hover {
	color: #FFFFFF; text-decoration: underline; text-decoration-color: #D62839; text-decoration-thickness: 3px; text-underline-offset: 8px;
}

/* 31. Retour à la page d'entrée (« Changer d'univers ») ------------------- */
.sw-intro-link--topbar {
	display: inline-flex; align-items: center; margin-right: 12px; padding: 2px 10px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px;
	color: var(--sw-on-brand); font-weight: 700; font-size: 12px; text-decoration: none; white-space: nowrap;
}
.sw-intro-link--topbar:hover { border-color: var(--sw-accent); color: var(--sw-on-brand); }
.sw-skin-magazine .sw-intro-link--topbar { border-color: var(--sw-ink); color: var(--sw-ink); }
.sw-nav__list .sw-menu-univers > a { opacity: .85; font-size: .9em; }
@media (min-width: 961px) { .sw-nav__list .sw-menu-univers { display: none; } }
@media (max-width: 960px) { .sw-nav__list .sw-menu-univers { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--sw-border); } }

/* 32. Ambiance « Grand écran » (dérivée de Streaming) : une pleine largeur -- */
.sw-skin-grandecran { --sw-hero-h: min(86vh, 880px); }
.sw-skin-grandecran .sw-hero { padding-block: 0 clamp(20px, 3vw, 36px); }
.sw-skin-grandecran .sw-hero__inner { max-width: none; padding-inline: 0; display: block; }
.sw-skin-grandecran .sw-hero__carousel { position: relative; gap: 0; }
.sw-skin-grandecran .sw-hero__main { border-radius: 0; background: #000; }
.sw-skin-grandecran .sw-hero__media .sw-thumb,
.sw-skin-grandecran .sw-hero__media .sw-embed { aspect-ratio: auto; height: var(--sw-hero-h); border-radius: 0; }
.sw-skin-grandecran .sw-hero__media .sw-embed iframe { height: 100%; }
.sw-skin-grandecran .sw-hero__body {
	position: absolute; left: 0; right: 0; bottom: 0; pointer-events: none;
	padding: 160px max(var(--sw-gutter), calc((100vw - var(--sw-wrap)) / 2 + var(--sw-gutter))) 96px;
	background: linear-gradient(0deg, rgba(8, 12, 30, .97) 0%, rgba(8, 12, 30, .75) 45%, rgba(8, 12, 30, 0) 100%);
}
.sw-skin-grandecran .sw-hero__body > * { pointer-events: auto; max-width: 760px; }
.sw-skin-grandecran .sw-hero__title { font-size: clamp(36px, 6vw, 84px); line-height: .98; }
.sw-skin-grandecran .sw-hero__excerpt { color: #D3DBF0; font-size: clamp(16px, 1.5vw, 20px); }
.sw-skin-grandecran .sw-hero__media .sw-player__btn { left: auto; top: 40%; right: max(var(--sw-gutter), calc((100vw - var(--sw-wrap)) / 2 + var(--sw-gutter))); transform: translateY(-50%); width: 96px; height: 96px; }
.sw-skin-grandecran .sw-hero__media .sw-player:hover .sw-player__btn { transform: translateY(-50%) scale(1.06); }
.sw-skin-grandecran .sw-hero__controls {
	position: absolute; z-index: 3; bottom: 28px; right: max(var(--sw-gutter), calc((100vw - var(--sw-wrap)) / 2 + var(--sw-gutter)));
	padding: 6px; border-radius: 999px; background: rgba(8, 12, 30, .55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.sw-skin-grandecran .sw-hero__nav, .sw-skin-grandecran .sw-hero__pause { background: transparent; border-color: rgba(255, 255, 255, .25); color: #FFFFFF; }
.sw-skin-grandecran .sw-hero__latest { max-width: var(--sw-wrap); margin: 28px auto 0; padding-inline: var(--sw-gutter); }
@media (max-width: 760px) {
	.sw-skin-grandecran { --sw-hero-h: min(80svh, 680px); }
	.sw-skin-grandecran .sw-hero__body { padding: 120px 16px 84px; }
	.sw-skin-grandecran .sw-hero__excerpt { display: none; }
	.sw-skin-grandecran .sw-hero__media .sw-player__btn { top: 30%; right: 16px; width: 64px; height: 64px; }
	.sw-skin-grandecran .sw-hero__controls { left: 50%; right: auto; transform: translateX(-50%); bottom: 16px; }
}

/* 33. Ambiance « Gazette » (dérivée de Ville) : blog chaleureux, ergonomique */
.sw-skin-gazette {
	--sw-bg: #FBF8F3;
	--sw-surface: #FFFFFF;
	--sw-surface-2: #F3EEE5;
	--sw-ink: #1B2433;
	--sw-muted: #5A6375;
	--sw-border: #ECE5D9;
	--sw-radius: 16px;
	--sw-radius-sm: 10px;
	--sw-shadow: 0 1px 2px rgba(27, 36, 51, .05), 0 8px 24px rgba(27, 36, 51, .06);
	--sw-font-body: 'SW Instrument Sans', system-ui, sans-serif;
	--sw-font-display: 'SW Fraunces', Georgia, 'Times New Roman', serif;
	--sw-display-weight: 650;
	--sw-display-tracking: -0.015em;
}
.sw-skin-gazette .sw-section__title, .sw-skin-gazette .sw-ville-intro__title, .sw-skin-gazette .sw-article__title { color: var(--sw-ink); }
.sw-skin-gazette .sw-section__head { border-bottom: 1px solid var(--sw-border); }
.sw-skin-gazette .sw-ville-intro__title { font-size: clamp(38px, 6vw, 68px); font-weight: 650; letter-spacing: -0.02em; }
.sw-skin-gazette .sw-ville-intro__kicker { font-family: var(--sw-font-body); }

/* Accès rapides (toutes ambiances) */
.sw-ville-quick { padding-block: 4px 8px; }
.sw-ville-quick .sw-wrap { display: flex; align-items: center; gap: 12px; }
.sw-ville-quick__label { flex: none; font-size: 12px; font-weight: 700; letter-spacing: var(--sw-label-tracking); text-transform: uppercase; color: var(--sw-muted); }
.sw-ville-quick__list { display: flex; gap: 8px; margin: 0; padding: 4px 0 8px; list-style: none; overflow-x: auto; scrollbar-width: thin; }
.sw-ville-quick__list a {
	display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; white-space: nowrap;
	background: var(--sw-surface); border: 1px solid var(--sw-border); color: var(--sw-ink); font-size: 14px; font-weight: 600; text-decoration: none;
	transition: border-color .2s ease, background-color .2s ease;
}
.sw-ville-quick__list a:hover, .sw-ville-quick__list a:focus-visible { border-color: var(--sw-brand-2); background: var(--sw-surface-2); color: var(--sw-ink); }
@media (max-width: 600px) { .sw-ville-quick__label { display: none; } }

/* Gazette : actus façon blog (la plus récente en grand) */
.sw-skin-gazette .sw-ville-actus .sw-rail.sw-rail--row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; overflow: visible; padding-bottom: 0; }
.sw-skin-gazette .sw-ville-actus .sw-rail.sw-rail--row > * { flex: none; }
.sw-skin-gazette .sw-ville-actus .sw-actu:first-child { grid-column: 1 / -1; padding: 26px 28px; background: linear-gradient(135deg, #FFFFFF 0%, #F7F1E6 100%); }
.sw-skin-gazette .sw-ville-actus .sw-actu:first-child .sw-actu__title { font-size: clamp(22px, 2.6vw, 30px); }
.sw-skin-gazette .sw-actu__title { font-family: var(--sw-font-display); font-weight: 650; }
.sw-skin-gazette .sw-actu__source { background: #FDECEC; color: #B4232F; }
@media (max-width: 700px) { .sw-skin-gazette .sw-ville-actus .sw-rail.sw-rail--row { grid-template-columns: 1fr; } }

/* Gazette : deux colonnes sur ordinateur, « Cette semaine » fixe à droite */
@media (min-width: 1000px) {
	.sw-skin-gazette .sw-ville-home {
		display: grid; grid-template-columns: minmax(0, 1fr) 340px; column-gap: 40px; align-items: start;
		max-width: var(--sw-wrap); margin-inline: auto; padding-inline: var(--sw-gutter);
	}
	.sw-skin-gazette .sw-ville-home > * { grid-column: 1; min-width: 0; }
	.sw-skin-gazette .sw-ville-home > * > .sw-wrap { max-width: none; padding-inline: 0; }
	.sw-skin-gazette .sw-ville-home > .sw-ville-intro,
	.sw-skin-gazette .sw-ville-home > .sw-ville-quick,
	.sw-skin-gazette .sw-ville-home > .sw-section--newsletter { grid-column: 1 / -1; }
	.sw-skin-gazette .sw-ville-home > .sw-pratique { grid-column: 2; grid-row: 3 / span 8; position: sticky; top: 24px; }
	.sw-skin-gazette .sw-ville-home > .sw-pratique .sw-pratique__grid { grid-template-columns: 1fr; }
	.sw-skin-gazette .sw-ville-home > .sw-pratique .sw-section__title { font-size: 22px; }
	.sw-skin-gazette .sw-guide__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 34. Wasquehal & Nous : « À la une à Wasquehal » (Bonjour Wasquehal) ----- */
.sw-une-ville__top { display: grid; gap: 20px; }
@media (min-width: 900px) { .sw-une-ville__top { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; } }
.sw-une-ville a { color: inherit; text-decoration: none; }
.sw-une-ville__lead a { display: block; background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: var(--sw-radius); overflow: hidden; box-shadow: var(--sw-shadow); }
.sw-une-ville__lead .sw-thumb { border-radius: 0; }
.sw-une-ville__lead a:hover .sw-thumb__img { transform: scale(1.03); }
.sw-une-ville__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 22px 22px; }
.sw-une-ville__title { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); letter-spacing: var(--sw-display-tracking); font-size: clamp(22px, 2.6vw, 32px); line-height: 1.12; }
.sw-une-ville__excerpt { color: var(--sw-muted); line-height: 1.55; }
.sw-une-ville__date { font-size: 13px; font-weight: 600; color: var(--sw-accent); text-transform: uppercase; letter-spacing: var(--sw-label-tracking); }
.sw-une-ville__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sw-une-ville__item { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px; border-radius: var(--sw-radius-sm); background: var(--sw-surface); border: 1px solid var(--sw-border); transition: border-color .2s ease; }
.sw-une-ville__item:hover, .sw-une-ville__item:focus-visible { border-color: var(--sw-brand-2); }
.sw-une-ville__item .sw-thumb { border-radius: calc(var(--sw-radius-sm) - 4px); }
.sw-une-ville__item > span:last-child { display: flex; flex-direction: column; gap: 4px; }
.sw-une-ville__item-title { font-weight: 700; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sw-une-ville__item .sw-une-ville__date { font-size: 12px; }
.sw-une-ville__more { margin-top: 28px; }

/* 35. Tribune libre ------------------------------------------------------- */
.sw-tribune-home__list { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); margin: 0 0 20px; padding: 0; list-style: none; }
.sw-tribune-card { position: relative; display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 22px 22px 18px; border-radius: var(--sw-radius); background: var(--sw-surface); border: 1px solid var(--sw-border); border-left: 4px solid var(--sw-accent); color: var(--sw-ink); text-decoration: none; }
.sw-tribune-card:hover { color: var(--sw-ink); border-color: var(--sw-brand-2); border-left-color: var(--sw-accent); }
.sw-tribune-card__quote { position: absolute; top: 2px; right: 16px; font-family: Georgia, serif; font-size: 72px; line-height: 1; color: var(--sw-accent); opacity: .18; }
.sw-tribune-card__title { font-family: var(--sw-font-display); font-weight: var(--sw-display-weight); font-size: 20px; line-height: 1.2; }
.sw-tribune-card__excerpt { color: var(--sw-muted); font-style: italic; line-height: 1.5; }
.sw-tribune-card__by { margin-top: auto; font-size: 13px; font-weight: 600; }
.sw-tribune-home__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 18px 22px; border-radius: var(--sw-radius); background: var(--sw-surface-2); }
.sw-tribune-home__cta p { margin: 0; max-width: 640px; }

/* Formulaire de tribune */
.swv-tribune { max-width: 720px; }
.swv-tribune__form label { display: block; font-weight: 600; margin-bottom: 6px; }
.swv-tribune__form input[type="text"], .swv-tribune__form input[type="email"], .swv-tribune__form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--sw-border); border-radius: var(--sw-radius-sm); background: var(--sw-surface); color: var(--sw-ink); font: inherit; }
.swv-tribune__form input:focus-visible, .swv-tribune__form textarea:focus-visible { outline: 2px solid var(--sw-brand-2); outline-offset: 1px; }
.swv-tribune__check label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.swv-tribune__check input { margin-top: 4px; flex: none; }
.swv-tribune__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.swv-tribune__msg { padding: 14px 18px; border-radius: var(--sw-radius-sm); font-weight: 600; }
.swv-tribune__msg--ok { background: #E7F6EC; color: #14532D; }
.swv-tribune__msg--err { background: #FDECEC; color: #8A1C24; }
.swv-tribune__by { font-size: 1.05em; }
.swv-tribune__note { margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--sw-border); color: var(--sw-muted); }

/* 36. Fenêtre « Bonjour Wasquehal ! » (publication Facebook) ----------------- */
.sw-modal { width: min(680px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: var(--sw-radius); background: var(--sw-surface); color: var(--sw-ink); box-shadow: 0 24px 80px rgba(0, 0, 0, .45); overflow: hidden; }
.sw-modal::backdrop { background: rgba(8, 12, 30, .72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.sw-modal__box { position: relative; max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; }
.sw-modal__close { position: sticky; top: 10px; float: right; margin: 10px 10px -54px 0; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(8, 12, 30, .7); color: #FFFFFF; cursor: pointer; }
.sw-modal__close:hover, .sw-modal__close:focus-visible { background: var(--sw-accent); }
.sw-modal__img { display: block; width: 100%; height: auto; max-height: 60vh; object-fit: contain; background: #000; }
.sw-modal__body { padding: 20px 24px 24px; }
.sw-modal__kicker { margin: 0 0 12px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: var(--sw-label-tracking); color: var(--sw-accent); }
.sw-modal__text { white-space: pre-line; line-height: 1.6; font-size: 16px; }
.sw-modal__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }
.sw-modal__actions .sw-btn svg { width: 18px; height: 18px; vertical-align: -3px; fill: currentColor; }
.sw-social-card__full { display: none; }

/* 37. Article : image (ou vidéo) alignée sur la colonne du titre et du texte */
.sw-single .sw-article__media { max-width: calc(760px + 2 * var(--sw-gutter)); }

/* 38. Wasquehal & Nous avec son logo couleur : en-tête clair -------------- */
body.sw-has-logo2 .sw-header {
	--sw-ink: #0F1E3D;
	--sw-muted: #4D5A78;
	--sw-surface: #FFFFFF;
	--sw-surface-2: #EAF0FB;
	--sw-border: #DCE4F2;
	--sw-link: #123E9C;
	color-scheme: light;
	background: #FFFFFF;
	color: var(--sw-ink);
	box-shadow: 0 2px 14px rgba(15, 30, 61, .08);
}
body.sw-has-logo2 .sw-header .custom-logo { max-height: 64px; }
@media (max-width: 960px) { body.sw-has-logo2 .sw-header .custom-logo { max-height: 46px; } }
body.sw-has-logo2 .sw-footer .sw-logo2 { display: inline-block; padding: 10px 16px; border-radius: 14px; background: #FFFFFF; }
body.sw-has-logo2 .sw-footer .sw-logo2 .custom-logo { max-height: 56px; }
