/**
 * Harmonisation globale — bannières, archives, overflow, footer RTL.
 * Chargé en dernier (après layout-fixes-v402).
 */

:root {
	--ltv-section-gap: clamp(10px, 1.4vw, 14px);
	--ltv-block-pad: clamp(10px, 1.2vw, 14px);
}

/* ── 1. Pas de scroll horizontal fantôme ── */
html {
	overflow-x: hidden;
	max-width: 100%;
	scroll-behavior: smooth;
}

body {
	/* clip (et non hidden) : évite de casser le scroll vertical mobile sur iOS/Android */
	overflow-x: clip;
	max-width: 100%;
	min-height: 100vh;
}

#page,
#page.site {
	width: 100%;
	max-width: 100%;
	margin-top: 0 !important;
	overflow-x: clip;
	min-height: 0;
}

.site-content,
#content.site-content {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
	min-width: 0;
}

img,
video,
iframe,
.tlv3-banner__img {
	max-width: 100%;
	height: auto;
}

/* ── 2. Bannières — hauteur naturelle, sans réserves CLS excessives ── */
.tlv3-banner--lachtv,
.tlv3-lachtv-leaderboard,
.tlv3-lachtv-footer-bottom,
.tlv3-lachtv-mid,
.tlv3-lachtv-sidebar {
	max-width: 100%;
	overflow: hidden;
}

.tlv3-banner--lachtv .tlv3-banner__frame,
.tlv3-lachtv-leaderboard .tlv3-banner__frame,
.tlv3-lachtv-footer-bottom .tlv3-banner__frame {
	min-height: 0 !important;
	line-height: 0;
}

.tlv3-banner--device-split .tlv3-banner__frame {
	position: relative;
	min-height: 0 !important;
}

/* Bannières — collées au header, leaderboard 250px IAB */
.site-header.site-header--magazine {
	margin-bottom: 0 !important;
}

.site-header.site-header--magazine .breaking-ticker {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.site-header.site-header--magazine + .tlv3-lachtv-leaderboard,
.tlv3-lachtv-leaderboard {
	margin: 0 !important;
	padding: 0 !important;
	max-height: 250px;
	height: auto !important;
	overflow: hidden;
	line-height: 0;
	margin-top: calc(-1 * var(--tlv3-leaderboard-pull, 0px)) !important;
}

.tlv3-lachtv-leaderboard .tlv3-banner--device-split .tlv3-banner__viewport {
	height: 0 !important;
	max-height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}

@media (min-width: 1024px) {
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split.tlv3-banner--has-desktop .tlv3-banner__viewport--desktop {
		display: flex !important;
		height: auto !important;
		max-height: 250px !important;
		align-items: flex-start;
		justify-content: center;
	}
}

@media (min-width: 769px) and (max-width: 1023px) {
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split.tlv3-banner--has-tablet .tlv3-banner__viewport--tablet,
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split:not(.tlv3-banner--has-tablet).tlv3-banner--has-desktop .tlv3-banner__viewport--desktop {
		display: flex !important;
		height: auto !important;
		max-height: 250px !important;
		align-items: flex-start;
		justify-content: center;
	}
}

@media (max-width: 768px) {
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split.tlv3-banner--has-mobile .tlv3-banner__viewport--mobile,
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split:not(.tlv3-banner--has-mobile).tlv3-banner--has-tablet .tlv3-banner__viewport--tablet,
	.tlv3-lachtv-leaderboard .tlv3-banner--device-split:not(.tlv3-banner--has-mobile):not(.tlv3-banner--has-tablet).tlv3-banner--has-desktop .tlv3-banner__viewport--desktop {
		display: flex !important;
		height: auto !important;
		max-height: 250px !important;
		align-items: flex-start;
		justify-content: center;
	}

	.tlv3-lachtv-leaderboard .tlv3-banner__viewport--mobile.tlv3-banner__format--portrait .tlv3-banner__img {
		width: auto !important;
		max-width: min(100%, 142px) !important;
		max-height: 250px !important;
	}
}

.tlv3-lachtv-leaderboard .tlv3-banner__viewport--desktop .tlv3-banner__img,
.tlv3-lachtv-leaderboard .tlv3-banner__viewport--tablet .tlv3-banner__img,
.tlv3-lachtv-leaderboard .tlv3-banner__viewport--single .tlv3-banner__img {
	width: auto !important;
	max-width: 100% !important;
	max-height: 250px !important;
	height: auto !important;
	object-fit: contain !important;
}

.tlv3-lachtv-footer-bottom .tlv3-banner__viewport--desktop .tlv3-banner__img,
.tlv3-lachtv-footer-bottom .tlv3-banner__viewport--tablet .tlv3-banner__img,
.tlv3-lachtv-footer-bottom .tlv3-banner__viewport--single .tlv3-banner__img,
.tlv3-lachtv-mid .tlv3-banner__viewport--desktop .tlv3-banner__img,
.tlv3-lachtv-mid .tlv3-banner__viewport--tablet .tlv3-banner__img,
.tlv3-lachtv-mid .tlv3-banner__viewport--single .tlv3-banner__img,
.tlv3-lachtv-sidebar .tlv3-banner__img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	object-fit: contain;
	object-position: center center;
	margin-inline: auto;
}

.tlv3-lachtv-footer-bottom .tlv3-banner__viewport--mobile.tlv3-banner__format--portrait .tlv3-banner__img,
.tlv3-lachtv-mid .tlv3-banner__viewport--mobile.tlv3-banner__format--portrait .tlv3-banner__img {
	width: auto !important;
	max-width: min(100%, 420px) !important;
	max-height: min(72vh, 640px) !important;
}

.tlv3-lachtv-leaderboard .tlv3-banner__frame {
	height: auto !important;
	max-height: 250px !important;
	min-height: 0 !important;
}

.tlv3-lachtv-leaderboard {
	padding: 0;
	margin: 0;
}

.tlv3-lachtv-footer-bottom {
	padding: 10px 0;
	margin: 0;
}

.tlv3-lachtv-sidebar .tlv3-banner--lachtv {
	margin-bottom: 12px;
}

/* ── 2b. Accueil — rythme vertical compact, sans blocs vides ── */
body.home .site-main.front-page {
	gap: var(--ltv-section-gap) !important;
	padding-block: 0 clamp(16px, 2vw, 24px) !important;
}

body.home .site-main.front-page > * {
	margin-block: 0 !important;
}

/* Accueil desktop — bannière sidebar OU 24h (pas les deux) */
@media (min-width: 992px) {
	.front-page .home-hero-zone .home-sidebar-24h--mobile-only,
	.front-page .home-hero-zone .home-sidebar-right .home-zone-block--feed {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	.front-page .home-hero-zone .home-sidebar-right,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-banner,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-banner--home_hero_sidebar {
		margin-top: 0 !important;
		margin-block-start: 0 !important;
	}

	.front-page .home-hero-zone .home-sidebar-right {
		display: flex;
		flex-direction: column;
		align-self: start !important;
		justify-content: flex-start !important;
		align-items: stretch !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		gap: 0;
		padding-top: 0 !important;
		margin-top: 0 !important;
	}

	.front-page .home-hero-zone .home-sidebar-left {
		align-self: start !important;
		height: auto !important;
		padding-top: 0 !important;
		margin-top: 0 !important;
	}

	.front-page .home-hero-zone .home-center {
		align-self: start !important;
		height: auto !important;
	}

	.front-page .home-hero-zone .home-hero-zone-grid {
		align-items: start !important;
	}

	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar {
		display: block;
		width: 100%;
		min-height: 0;
		margin: 0 !important;
		padding: 0 !important;
	}

	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner {
		display: block;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 0 !important;
		height: auto !important;
		border: none;
		background: transparent;
	}

	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__frame,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__link {
		display: block;
		height: auto !important;
		min-height: 0 !important;
		line-height: 0;
	}

	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__viewport--single,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__viewport {
		display: block;
		height: auto !important;
		line-height: 0;
	}

	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__viewport--single .tlv3-banner__img,
	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__img {
		display: block;
		width: 100%;
		max-width: 248px;
		height: auto !important;
		max-height: none;
		margin: 0 auto !important;
		padding: 0 !important;
		object-fit: contain;
		object-position: top center;
		vertical-align: top;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__frame {
		height: auto !important;
		max-height: none !important;
		overflow: visible;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-right .tlv3-lachtv-sidebar .tlv3-banner__img {
		width: 100%;
		max-width: 248px;
		height: auto !important;
		max-height: none !important;
		object-fit: contain;
		object-position: top center;
	}
}

@media (max-width: 991px) {
	.front-page .home-hero-zone .home-sidebar-right .tlv3-lachtv-sidebar {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	.front-page .home-hero-zone .home-sidebar-24h--mobile-only {
		display: block;
		width: 100%;
	}
}

.tlv3-lachtv-mid.container {
	padding-block: var(--ltv-section-gap) !important;
	margin: 0 !important;
}

#content.site-content,
body.home .site-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

.front-page > .home-hero-zone.container,
.front-page .home-hero-zone.container,
.front-page .home-hero-zone {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.tlv3-lachtv-leaderboard + #content.site-content,
.tlv3-lachtv-leaderboard + .site-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.tlv3-lachtv-leaderboard .tlv3-banner__frame,
.tlv3-lachtv-leaderboard .tlv3-banner__link,
.tlv3-lachtv-leaderboard .tlv3-banner__viewport {
	align-items: flex-start !important;
	justify-content: center;
}

/* ── Hero zone — toutes les colonnes étirées à la hauteur max ── */
@media (min-width: 992px) {
	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left {
		align-self: stretch !important;
		height: var(--hero-zone-sync-h) !important;
		min-height: var(--hero-zone-sync-h) !important;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left .home-zone-block {
		flex: 1 1 0 !important;
		min-height: 0 !important;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left .home-highlight-card {
		flex: 1 1 auto !important;
		min-height: 0 !important;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left .home-highlight-thumb {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		display: block;
		overflow: hidden;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left .home-highlight-img {
		width: 100% !important;
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
	}

	.front-page .home-hero-zone.home-hero-zone--height-synced .home-sidebar-left .home-highlight-body {
		flex: 0 0 auto !important;
	}
}


.front-page .home-hero-zone,
.front-page .home-premium-block,
.front-page .home-video-block,
.front-page .home-mosaic-block,
.front-page .home-national-block,
.front-page .home-sports-block,
.front-page .home-tri-columns,
.front-page .home-category-section,
.front-page .most-viewed-section,
.front-page .programs-video-section,
.front-page .believe-section,
.front-page .see-also-zone,
.front-page .home-category-sections {
	margin-block: 0 !important;
}

.front-page .home-premium-body,
.front-page .home-mosaic-body,
.front-page .home-video-body,
.front-page .home-national-body {
	padding: var(--ltv-block-pad) !important;
}

.front-page .home-category-sections:empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Pages intérieures — contenu compact */
body:not(.home) .site-main.container,
body:not(.home) .site-main--archive.container,
body.single-lachtv .site-main.single-layout--lachtv {
	padding-block: clamp(10px, 1.6vw, 16px) !important;
}

.tlv3-lachtv-leaderboard:not(:has(.tlv3-banner)),
.tlv3-lachtv-leaderboard:not(:has(img)),
.tlv3-lachtv-mid:not(:has(.tlv3-banner)),
.tlv3-lachtv-mid:not(:has(img)) {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.tlv3-banner--lachtv {
	--tlv3-banner-min-h: 0 !important;
	margin-block: 0 !important;
	padding: 0 !important;
}

/* ── 3. Archives catégories — pleine largeur utile, sans trous ── */
body.archive-lachtv,
body.archive-lachtv .site-content,
body.category {
	background: var(--news-canvas, #f5f6f8);
}

body.archive-lachtv #primary.site-main.site-main--archive.container {
	width: 100%;
	max-width: var(--container-width, 1280px);
	margin-inline: auto;
	padding-inline: var(--ltv-container-pad, clamp(12px, 3vw, 20px)) !important;
	padding-block: clamp(10px, 1.8vw, 18px) !important;
	box-sizing: border-box;
	min-width: 0;
}

body.archive-lachtv .archive-lachtv-layout {
	width: 100%;
	min-width: 0;
}

body.archive-lachtv .archive-lachtv-main,
body.archive-lachtv .archive-lachtv-aside {
	min-width: 0;
}

body.archive-lachtv .archive-lachtv-grid--four {
	width: 100%;
}

body.archive-lachtv .archive-lachtv-aside .tlv3-lachtv-sidebar {
	margin-bottom: 0;
}

body.archive-lachtv .archive-infinite-loader,
body.archive-lachtv .archive-infinite-end {
	margin-block: clamp(10px, 2vw, 16px);
}

@media (max-width: 860px) {
	body.archive-lachtv .archive-lachtv-aside .tlv3-banner--desktop-only,
	body.archive-lachtv .tlv3-lachtv-sidebar {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}
}

@media (max-width: 768px) {
	body.archive-lachtv .archive-lachtv-grid,
	body.archive-lachtv .archive-lachtv-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}
}

/* ── 4. Footer RTL — copyright à droite, signature à gauche + animation ── */
.site-footer.site-footer--harmonized .footer-bottom-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(12px, 2vw, 20px);
	direction: rtl;
	width: 100%;
}

.site-footer.site-footer--harmonized .footer-copy {
	grid-column: 1;
	justify-self: start;
	margin: 0;
	width: auto;
	min-width: 0;
	text-align: start;
	font-size: clamp(12px, 1.5vw, 13px);
	color: var(--footer-muted, rgba(255, 255, 255, 0.72));
}

.site-footer.site-footer--harmonized .footer-agency {
	grid-column: 2;
	justify-self: end;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	width: auto;
	min-width: 0;
	text-align: end;
	font-size: clamp(11px, 1.4vw, 13px);
	font-weight: 800;
	letter-spacing: 0.03em;
	white-space: nowrap;
	background: linear-gradient(
		90deg,
		var(--footer-gold, #ffcc00) 0%,
		var(--footer-gold-bright, #ffd700) 25%,
		#fff8dc 50%,
		var(--footer-red, #e60000) 75%,
		var(--footer-gold, #ffcc00) 100%
	);
	background-size: 220% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	animation: tlv3-footer-agency-color 5s ease-in-out infinite;
}

.site-footer.site-footer--harmonized .footer-agency__heart {
	-webkit-text-fill-color: initial;
	color: var(--footer-red, #e60000);
	display: inline-block;
	transform-origin: center;
	animation: tlv3-footer-heart-glow 1.35s ease-in-out infinite;
}

@keyframes tlv3-footer-agency-color {
	0% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}

	100% {
		background-position: 0% 50%;
	}
}

@keyframes tlv3-footer-heart-glow {
	0%,
	100% {
		transform: scale(1);
		color: #e60000;
		filter: drop-shadow(0 0 0 transparent);
	}

	50% {
		transform: scale(1.18);
		color: #ff4d6d;
		filter: drop-shadow(0 0 8px rgba(230, 0, 0, 0.55));
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-footer.site-footer--harmonized .footer-agency,
	.site-footer.site-footer--harmonized .footer-agency__heart {
		animation: none;
	}

	.site-footer.site-footer--harmonized .footer-agency {
		-webkit-text-fill-color: var(--footer-gold-bright, #ffd700);
		color: var(--footer-gold-bright, #ffd700);
		background: none;
	}
}

@media (max-width: 640px) {
	.site-footer.site-footer--harmonized .footer-bottom-inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 10px;
	}

	.site-footer.site-footer--harmonized .footer-copy,
	.site-footer.site-footer--harmonized .footer-agency {
		grid-column: auto;
		justify-self: center;
		width: 100%;
		text-align: center;
		white-space: normal;
		justify-content: center;
	}
}

/* ─────────────────────────────────────────────────────────────
   GLOBAL — Largeur de page et gouttières réduites sur TOUTES les pages
   (home / single / archive / category / search / 404 / page)
   ───────────────────────────────────────────────────────────── */

:root,
body,
body.home,
body:not(.home),
body.single-lachtv,
body.archive-lachtv,
body.category,
body.archive,
body.search,
body.error404,
body.page {
	--container-width: 1560px !important;
	--ltv-container-pad: clamp(8px, 1.2vw, 14px) !important;
	--inner-page-gutter: clamp(10px, 1.4vw, 16px) !important;
	--ref-page-gutter: clamp(8px, 1.2vw, 16px) !important;
}

/* Conteneurs principaux — largeur max + padding latéral cohérent */
.site-header.site-header--magazine .header-top-inner,
.site-header.site-header--magazine .header-nav-inner,
.site-header.site-header--magazine .breaking-inner,
.site-footer.site-footer--harmonized .footer-top-band__inner,
.site-footer.site-footer--harmonized .footer-main-band__inner,
.site-footer.site-footer--harmonized .footer-bottom-inner,
body.home .site-main.front-page,
body.home .site-main.front-page > *,
body:not(.home) .site-main.container,
body:not(.home) .site-main--archive.container,
body.single-lachtv .site-main.single-layout--lachtv,
body.archive-lachtv .site-main--archive.container,
body.archive-lachtv #primary.site-main.site-main--archive.container {
	max-width: var(--container-width) !important;
}

/* Padding inline réduit partout */
body.home .site-main.front-page,
body:not(.home) .site-main.container,
body:not(.home) .site-main--archive.container,
body.single-lachtv .site-main.single-layout--lachtv,
body.archive-lachtv .site-main--archive.container {
	padding-inline: var(--ltv-container-pad) !important;
}

.site-header.site-header--magazine .header-top-inner,
.site-header.site-header--magazine .header-nav-inner,
.site-header.site-header--magazine .breaking-inner {
	padding-inline: var(--ltv-container-pad) !important;
}

.site-footer.site-footer--harmonized .footer-top-band__inner,
.site-footer.site-footer--harmonized .footer-main-band__inner,
.site-footer.site-footer--harmonized .footer-bottom-inner {
	padding-inline: var(--ltv-container-pad) !important;
}

/* Pages internes — padding-block plus serré */
body:not(.home) .site-main.container,
body:not(.home) .site-main--archive.container {
	padding-block: clamp(10px, 1.6vw, 18px) !important;
}

body.single-lachtv .site-main.single-layout--lachtv {
	padding-block: clamp(10px, 1.6vw, 18px) !important;
}

body.archive-lachtv .site-main--archive.container {
	padding-block: clamp(10px, 1.6vw, 18px) !important;
}
