/*
Theme Name: Trail Vertical
Theme URI: https://trailvertical.fr/
Author: Trail Vertical
Description: Thème éditorial sur mesure pour le média Trail Vertical.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: trailvertical
*/
:root{
  --tv-forest:#203d32;--tv-forest-dark:#172c25;--tv-orange:#e87532;
  --tv-cream:#f5f3ed;--tv-paper:#fffefa;--tv-ink:#202722;--tv-muted:#68736c;
  --tv-line:#e2e3dc;--tv-radius:4px;--tv-width:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--tv-cream);color:var(--tv-ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}
a{color:inherit;text-decoration:none}
a:hover{color:var(--tv-orange)}
img{display:block;max-width:100%;height:auto}
button{font:inherit}
.tv-container{width:min(var(--tv-width),calc(100% - 44px));margin-inline:auto}
.tv-topline{background:var(--tv-forest-dark);color:#e8eee9;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.tv-topline .tv-container{display:flex;justify-content:space-between;padding:8px 0}
.site-header{background:var(--tv-paper);border-bottom:1px solid var(--tv-line);position:relative;z-index:20}
.tv-brand-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0 18px}
.custom-logo-link img{max-height:66px;width:auto}
.tv-brand{display:flex;align-items:center;gap:13px;color:var(--tv-forest)}
.tv-mark{width:48px;height:42px;display:block;position:relative;flex:none}
.tv-mark:before,.tv-mark:after{content:"";position:absolute;bottom:4px;width:29px;height:29px;border-top:5px solid var(--tv-forest);transform:rotate(45deg)}
.tv-mark:before{left:2px;border-left:5px solid var(--tv-forest)}
.tv-mark:after{right:1px;border-right:5px solid var(--tv-orange);transform:rotate(-45deg)}
.tv-brand-name{font-size:27px;font-weight:900;letter-spacing:.075em;line-height:1}
.tv-brand-name span{color:var(--tv-orange)}
.tv-tagline{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-muted);margin-top:7px}
.tv-header-note{font-size:12px;color:var(--tv-muted);text-align:right;max-width:220px}
.tv-nav-wrap{border-top:1px solid var(--tv-line)}
.tv-nav{display:flex;align-items:center;gap:0;min-height:51px}
.tv-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;gap:0}
.tv-nav li{position:relative}
.tv-nav>div>ul>li>a,.tv-nav>ul>li>a{display:flex;align-items:center;min-height:51px;padding:0 18px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tv-nav li:hover>a,.tv-nav li:focus-within>a{color:var(--tv-orange)}
.tv-nav .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:220px;background:var(--tv-paper);box-shadow:0 14px 28px #172c2520;border-top:3px solid var(--tv-orange);padding:10px 0;z-index:30}
.tv-nav li:hover>.sub-menu,.tv-nav li:focus-within>.sub-menu{display:block}
.tv-nav .sub-menu li a{display:block;padding:9px 18px;font-size:13px;font-weight:600;white-space:nowrap}
.tv-menu-toggle{display:none;border:0;background:var(--tv-forest);color:white;padding:9px 13px;border-radius:3px}
.tv-main{padding:34px 0 70px}
.tv-kicker{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-orange)}
.tv-section-heading{display:flex;align-items:center;gap:16px;margin:0 0 18px}
.tv-section-heading h2{font-size:19px;line-height:1.2;letter-spacing:.015em;text-transform:uppercase;margin:0;color:var(--tv-forest)}
.tv-section-heading:after{content:"";height:1px;background:var(--tv-line);flex:1}
.tv-hero-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:22px;margin-bottom:42px}
.tv-feature{position:relative;min-height:430px;background:var(--tv-forest-dark);overflow:hidden;color:white}
.tv-feature img{width:100%;height:100%;min-height:430px;object-fit:cover;opacity:.78;transition:transform .5s}
.tv-feature:hover img{transform:scale(1.025)}
.tv-feature:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,#101d18e8)}
.tv-feature-content{position:absolute;z-index:1;left:30px;right:30px;bottom:28px}
.tv-feature .tv-kicker{color:#ffad78}
.tv-feature h1{font-size:clamp(28px,3.4vw,46px);line-height:1.08;margin:10px 0 12px;max-width:780px}
.tv-feature p{margin:0;color:#e6e9e5;max-width:680px;font-size:15px}
.tv-side-stories{display:grid;grid-template-rows:1fr 1fr;gap:22px}
.tv-side-story{display:grid;grid-template-columns:42% 1fr;min-height:204px;background:var(--tv-paper);border:1px solid var(--tv-line)}
.tv-side-story img{width:100%;height:100%;object-fit:cover;min-height:204px}
.tv-side-story-copy{padding:18px 17px;align-self:center}
.tv-side-story h2{font-size:19px;line-height:1.2;margin:7px 0}
.tv-meta{font-size:11px;color:var(--tv-muted);text-transform:uppercase;letter-spacing:.06em}
.tv-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:44px}
.tv-card{background:var(--tv-paper);border:1px solid var(--tv-line);min-width:0}
.tv-card-image{aspect-ratio:1.55;overflow:hidden;background:#dce2dc}
.tv-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.tv-card:hover .tv-card-image img{transform:scale(1.035)}
.tv-card-copy{padding:16px 17px 18px}
.tv-card h2{font-size:20px;line-height:1.2;margin:7px 0 9px}
.tv-card p{font-size:14px;color:var(--tv-muted);margin:0}
.tv-lower-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:36px}
.tv-list{border-top:1px solid var(--tv-line)}
.tv-list-item{display:grid;grid-template-columns:118px 1fr;gap:17px;padding:15px 0;border-bottom:1px solid var(--tv-line)}
.tv-list-item img{width:118px;height:82px;object-fit:cover}
.tv-list-item h3{font-size:17px;line-height:1.25;margin:4px 0}
.tv-sidebar-box{background:var(--tv-forest);color:#fff;padding:24px}
.tv-sidebar-box h2{font-size:20px;line-height:1.2;margin:0 0 12px}
.tv-sidebar-box p{font-size:14px;color:#dce6df}
.tv-pill-link{display:inline-block;margin-top:8px;padding:9px 13px;background:var(--tv-orange);color:#fff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.tv-page-title{font-size:clamp(30px,4vw,44px);line-height:1.1;color:var(--tv-forest);margin:0 0 25px}
.tv-article-layout{display:grid;grid-template-columns:minmax(0,800px) minmax(220px,1fr);gap:50px}
.tv-article-header{margin-bottom:25px}
.tv-article-header h1{font-size:clamp(34px,4.6vw,54px);line-height:1.04;color:var(--tv-forest);margin:8px 0 14px}
.tv-article-deck{font-size:19px;color:var(--tv-muted);max-width:760px}
.tv-article-thumb{margin:25px 0}
.tv-article-thumb img{width:100%;max-height:540px;object-fit:cover}
.tv-content{font-size:18px;line-height:1.75}
.tv-content h2,.tv-content h3{color:var(--tv-forest);line-height:1.2;margin-top:1.8em}
.tv-content a{text-decoration:underline;text-decoration-color:var(--tv-orange);text-underline-offset:3px}
.tv-content blockquote{margin:28px 0;padding:18px 24px;border-left:4px solid var(--tv-orange);background:#eeece4}
.tv-content img{height:auto}
.tv-pagination{display:flex;gap:8px;margin-top:30px}
.tv-pagination a,.tv-pagination span{padding:9px 13px;background:var(--tv-paper);border:1px solid var(--tv-line)}
.site-footer{background:var(--tv-forest-dark);color:#e7eee9;padding:42px 0 24px}
.tv-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.site-footer h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.site-footer p,.site-footer a{font-size:13px;color:#c4d0c8}
.tv-footer-bottom{border-top:1px solid #ffffff25;margin-top:30px;padding-top:17px;font-size:11px;color:#aebbb2}
.tv-empty{padding:40px;background:var(--tv-paper)}
@media(max-width:850px){
 .tv-container{width:min(100% - 30px,var(--tv-width))}
 .tv-header-note{display:none}
 .tv-hero-grid{grid-template-columns:1fr}
 .tv-feature,.tv-feature img{min-height:390px}
 .tv-side-stories{grid-template-columns:1fr 1fr;grid-template-rows:auto}
 .tv-side-story{grid-template-columns:1fr}
 .tv-side-story img{height:145px;min-height:145px}
 .tv-side-story-copy{padding:13px}
 .tv-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tv-article-layout{grid-template-columns:1fr}
 .tv-footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .tv-topline .tv-container{justify-content:center}
 .tv-brand-row{padding:16px 0}
 .tv-brand-name{font-size:22px}
 .tv-mark{transform:scale(.85);transform-origin:left center;width:41px}
 .tv-menu-toggle{display:block}
 .tv-nav{display:none;align-items:stretch;padding:8px 0 14px}
 .tv-nav.is-open{display:block}
 .tv-nav ul{display:block}
 .tv-nav>div>ul>li>a,.tv-nav>ul>li>a{min-height:42px;padding:0 5px;border-bottom:1px solid var(--tv-line)}
 .tv-nav .sub-menu{display:block;position:static;box-shadow:none;border:0;padding:0 0 5px 14px;background:transparent}
 .tv-nav .sub-menu li a{padding:7px 10px;white-space:normal}
 .tv-side-stories{grid-template-columns:1fr}
 .tv-side-story{grid-template-columns:38% 1fr}
 .tv-side-story img{height:100%;min-height:150px}
 .tv-card-grid{grid-template-columns:1fr;gap:16px}
 .tv-feature,.tv-feature img{min-height:420px}
 .tv-feature-content{left:20px;right:20px;bottom:22px}
 .tv-feature h1{font-size:31px}
 .tv-lower-grid{grid-template-columns:1fr}
 .tv-footer-grid{grid-template-columns:1fr}
 .tv-main{padding-top:24px}
 .tv-list-item{grid-template-columns:96px 1fr}
 .tv-list-item img{width:96px;height:72px}
 .tv-content{font-size:16px}
}

/* =========================================================
   TRAIL VERTICAL — NOUVEAU HEADER ÉDITORIAL
   ========================================================= */

.tv-header {
	position: relative;
	z-index: 100;
	background: var(--tv-paper);
	border-bottom: 1px solid var(--tv-line);
}

.tv-header-main {
	background: var(--tv-forest-dark);
}

.tv-header-inner {
	max-width: 1380px;
	margin: 0 auto;
	min-height: 72px;
	padding: 0 28px;
	display: flex;
	align-items: center;
	gap: 30px;
}

/* ---------- BRAND ---------- */

.tv-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	flex: 0 0 auto;
	color: #fff;
	text-decoration: none;
}

.tv-brand-mark {
	position: relative;
	width: 38px;
	height: 38px;
	display: block;
}

.tv-brand-mark span {
	position: absolute;
	display: block;
	height: 4px;
	border-radius: 10px;
	background: var(--tv-orange);
	transform: rotate(-32deg);
}

.tv-brand-mark span:nth-child(1) {
	width: 25px;
	left: 2px;
	top: 24px;
}

.tv-brand-mark span:nth-child(2) {
	width: 22px;
	left: 9px;
	top: 16px;
	background: #fff;
}

.tv-brand-mark span:nth-child(3) {
	width: 17px;
	left: 16px;
	top: 8px;
	background: var(--tv-orange);
}

.tv-brand-text {
	display: flex;
	flex-direction: column;
	line-height: .88;
}

.tv-brand-name {
	font-size: 18px;
	font-weight: 900;
	letter-spacing: .09em;
}

.tv-brand-name-last {
	color: var(--tv-orange);
}

/* ---------- NAV ---------- */

.tv-nav {
	flex: 1 1 auto;
}

.tv-menu {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tv-menu > li {
	position: relative;
}

.tv-menu > li > a {
	display: flex;
	align-items: center;
	min-height: 72px;
	padding: 0 15px;
	color: rgba(255,255,255,.92);
	font-size: 14px;
	font-weight: 750;
	text-decoration: none;
	letter-spacing: .01em;
	transition: background .15s ease, color .15s ease;
}

.tv-menu > li > a:hover,
.tv-menu > li.current-menu-item > a,
.tv-menu > li.current-menu-ancestor > a {
	color: #fff;
	background: rgba(255,255,255,.07);
}

.tv-menu > li.menu-item-has-children > a::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-left: 8px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

/* ---------- SOUS-MENUS ---------- */

.tv-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 235px;
	margin: 0;
	padding: 10px 0;
	background: #fff;
	border: 1px solid var(--tv-line);
	border-top: 3px solid var(--tv-orange);
	box-shadow: 0 12px 35px rgba(0,0,0,.14);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}

.tv-menu li:hover > .sub-menu,
.tv-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.tv-menu .sub-menu a {
	display: block;
	padding: 9px 18px;
	color: var(--tv-ink);
	font-size: 14px;
	font-weight: 650;
	text-decoration: none;
	white-space: nowrap;
}

.tv-menu .sub-menu a:hover {
	background: var(--tv-cream);
	color: var(--tv-orange);
}

/* ---------- SEARCH ---------- */

.tv-search-link {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: #fff;
	border-left: 1px solid rgba(255,255,255,.18);
	padding-left: 18px;
	box-sizing: content-box;
}

.tv-search-link svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.tv-search-link:hover {
	color: var(--tv-orange);
}

/* ---------- BANDEAU SECONDAIRE ---------- */

.tv-header-sub {
	background: #fff;
	border-bottom: 1px solid var(--tv-line);
}

.tv-header-sub-inner {
	max-width: 1380px;
	min-height: 38px;
	margin: 0 auto;
	padding: 0 28px;
	display: flex;
	align-items: center;
	gap: 25px;
}

.tv-breadcrumb-label {
	color: var(--tv-muted);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	white-space: nowrap;
}

.tv-header-trending {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
}

.tv-header-trending span {
	color: var(--tv-orange);
	font-size: 11px;
	font-weight: 850;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.tv-header-trending a {
	max-width: 300px;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--tv-muted);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

.tv-header-trending a:hover {
	color: var(--tv-forest);
}

/* ---------- MOBILE ---------- */

.tv-menu-toggle {
	display: none;
}

@media (max-width: 1050px) {
	.tv-header-inner {
		gap: 15px;
	}

	.tv-menu > li > a {
		padding: 0 9px;
		font-size: 13px;
	}

	.tv-header-trending a {
		max-width: 220px;
	}
}

@media (max-width: 820px) {

	.tv-header-inner {
		min-height: 64px;
		padding: 0 18px;
	}

	.tv-brand-name {
		font-size: 16px;
	}

	.tv-menu-toggle {
		width: 42px;
		height: 42px;
		margin-left: auto;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		padding: 8px;
		background: transparent;
		border: 0;
		cursor: pointer;
	}

	.tv-menu-toggle span:not(.screen-reader-text) {
		display: block;
		height: 2px;
		width: 100%;
		background: #fff;
	}

	.tv-nav {
		display: none;
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		background: var(--tv-forest-dark);
		border-top: 1px solid rgba(255,255,255,.12);
	}

	.tv-nav.is-open {
		display: block;
	}

	.tv-menu {
		display: block;
		padding: 8px 0 14px;
	}

	.tv-menu > li > a {
		min-height: 44px;
		padding: 0 20px;
	}

	.tv-menu .sub-menu {
		position: static;
		display: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		background: rgba(255,255,255,.05);
		border: 0;
		box-shadow: none;
	}

	.tv-menu li:hover > .sub-menu {
		display: none;
	}

	.tv-menu li:focus-within > .sub-menu {
		display: block;
	}

	.tv-search-link {
		width: 32px;
		padding-left: 12px;
	}

	.tv-header-sub {
		display: none;
	}
}
/* =========================================================
   TRAIL VERTICAL — HOMEPAGE MAGAZINE
   ========================================================= */

.tv-main {
    padding: 28px 0 60px;
}

.tv-container {
    max-width: 1380px;
    margin: 0 auto;
    padding: 0 28px;
}

.tv-section-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: var(--tv-orange);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.tv-home-heading {
    margin-bottom: 18px;
}

.tv-home-heading h1 {
    margin: 0;
    color: var(--tv-forest-dark);
    font-size: clamp(25px, 3vw, 38px);
    font-weight: 900;
    letter-spacing: -.045em;
}

/* À LA UNE */

.tv-home-hero {
    margin-bottom: 42px;
}

.tv-hero-grid {
    display: grid;
    grid-template-columns: 1.65fr 1fr;
    gap: 18px;
}

.tv-feature {
    position: relative;
    min-height: 440px;
    overflow: hidden;
    background: var(--tv-forest-dark);
}

.tv-feature > a {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    color: #fff;
    text-decoration: none;
}

.tv-feature img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.tv-feature:hover img {
    transform: scale(1.035);
}

.tv-feature > a::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        0deg,
        rgba(10,24,18,.95) 0%,
        rgba(10,24,18,.65) 35%,
        rgba(10,24,18,0) 100%
    );
}

.tv-feature-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 35px;
}

.tv-kicker {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--tv-orange);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tv-feature h2 {
    max-width: 760px;
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(27px, 3.3vw, 43px);
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -.035em;
}

.tv-feature p {
    max-width: 650px;
    margin: 0 0 18px;
    color: rgba(255,255,255,.85);
    font-size: 15px;
    line-height: 1.55;
}

.tv-feature-cta {
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.tv-side-stories {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 18px;
}

.tv-side-story {
    display: grid;
    grid-template-columns: 43% 1fr;
    min-height: 0;
    background: #fff;
    border: 1px solid var(--tv-line);
    overflow: hidden;
}

.tv-side-story-image {
    display: block;
    min-height: 180px;
    overflow: hidden;
    background: var(--tv-cream);
}

.tv-side-story-image img {
    width: 100%;
    height: 100%;
    min-height: 180px;
    object-fit: cover;
}

.tv-side-story-copy {
    align-self: center;
    padding: 18px;
}

.tv-side-story-copy .tv-kicker {
    margin-bottom: 8px;
}

.tv-side-story-copy h2 {
    margin: 0 0 12px;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 850;
}

.tv-side-story-copy h2 a {
    color: var(--tv-ink);
    text-decoration: none;
}

.tv-side-story-copy h2 a:hover {
    color: var(--tv-orange);
}

/* TITRES DE RUBRIQUES */

.tv-editorial-section {
    margin: 0 0 46px;
}

.tv-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 19px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--tv-forest);
}

.tv-section-heading h2 {
    margin: 0;
    color: var(--tv-forest-dark);
    font-size: 27px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: -.035em;
}

.tv-section-more {
    flex: 0 0 auto;
    color: var(--tv-forest);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.tv-section-more span {
    color: var(--tv-orange);
    margin-left: 5px;
}

.tv-section-more:hover {
    color: var(--tv-orange);
}

/* GRILLE D'ARTICLES */

.tv-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px 20px;
}

.tv-card {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--tv-line);
    overflow: hidden;
    transition: box-shadow .2s ease, transform .2s ease;
}

.tv-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 9px 24px rgba(23,44,37,.09);
}

.tv-card-image {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--tv-cream);
}

.tv-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.tv-card:hover .tv-card-image img {
    transform: scale(1.04);
}

.tv-card-copy {
    padding: 17px 18px 19px;
}

.tv-card-category {
    margin-bottom: 8px;
    color: var(--tv-orange);
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.tv-card-category a {
    color: inherit;
    text-decoration: none;
}

.tv-card h3 {
    margin: 0 0 9px;
    font-size: 19px;
    line-height: 1.23;
    font-weight: 850;
    letter-spacing: -.02em;
}

.tv-card h3 a {
    color: var(--tv-ink);
    text-decoration: none;
}

.tv-card h3 a:hover {
    color: var(--tv-orange);
}

.tv-card-copy p {
    margin: 0 0 13px;
    color: var(--tv-muted);
    font-size: 13px;
    line-height: 1.5;
}

.tv-meta {
    color: var(--tv-muted);
    font-size: 11px;
}

.tv-no-image {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 140px;
    align-items: center;
    justify-content: center;
    color: var(--tv-forest);
    background: var(--tv-cream);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}

/* BANDEAU FINAL */

.tv-home-about {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 10px;
    padding: 30px 35px;
    color: #fff;
    background: var(--tv-forest-dark);
}

.tv-home-about .tv-kicker {
    margin-bottom: 8px;
}

.tv-home-about h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 25px;
    font-weight: 900;
}

.tv-home-about p {
    max-width: 680px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: 14px;
    line-height: 1.5;
}

.tv-pill-link {
    display: inline-block;
    flex: 0 0 auto;
    padding: 12px 19px;
    color: #fff;
    background: var(--tv-orange);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}

.tv-pill-link:hover {
    background: #d76527;
    color: #fff;
}

/* RESPONSIVE */

@media (max-width: 950px) {
    .tv-hero-grid {
        grid-template-columns: 1fr;
    }

    .tv-feature {
        min-height: 400px;
    }

    .tv-side-stories {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .tv-side-story {
        display: block;
    }

    .tv-side-story-image,
    .tv-side-story-image img {
        min-height: 150px;
        height: 150px;
    }

    .tv-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .tv-container {
        padding: 0 15px;
    }

    .tv-main {
        padding-top: 20px;
    }

    .tv-feature {
        min-height: 360px;
    }

    .tv-feature-content {
        padding: 22px;
    }

    .tv-feature h2 {
        font-size: 28px;
    }

    .tv-side-stories {
        grid-template-columns: 1fr;
    }

    .tv-side-story {
        display: grid;
        grid-template-columns: 38% 1fr;
    }

    .tv-side-story-image,
    .tv-side-story-image img {
        height: 100%;
        min-height: 135px;
    }

    .tv-side-story-copy {
        padding: 13px;
    }

    .tv-side-story-copy h2 {
        font-size: 16px;
    }

    .tv-section-heading h2 {
        font-size: 23px;
    }

    .tv-section-more {
        font-size: 11px;
    }

    .tv-card-grid {
        gap: 14px;
    }

    .tv-card-copy {
        padding: 12px;
    }

    .tv-card h3 {
        font-size: 16px;
    }

    .tv-card-copy p {
        display: none;
    }

    .tv-home-about {
        display: block;
        padding: 24px;
    }

    .tv-home-about .tv-pill-link {
        margin-top: 18px;
    }
}
/* =========================================================
   HERO PRINCIPAL — TITRE EN BAS DE L'IMAGE
   ========================================================= */

.tv-hero-main {
    position: relative;
    overflow: hidden;
}

.tv-hero-main .tv-hero-image {
    position: relative;
}

.tv-hero-main .tv-hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Contenu positionné en bas de la photo */
.tv-hero-main .tv-hero-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    padding: 80px 32px 28px;
    z-index: 2;

    background: linear-gradient(
        to bottom,
        rgba(23, 44, 37, 0) 0%,
        rgba(23, 44, 37, 0.08) 25%,
        rgba(23, 44, 37, 0.78) 72%,
        rgba(23, 44, 37, 0.95) 100%
    );
}

/* On ne garde que le titre et le lien */
.tv-hero-main .tv-hero-content .tv-excerpt {
    display: none;
}

.tv-hero-main .tv-hero-content .tv-meta {
    display: none;
}

/* Titre */
.tv-hero-main .tv-hero-content h2,
.tv-hero-main .tv-hero-content h1 {
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.08;
}

/* Lire l'article */
.tv-hero-main .tv-hero-content .tv-read-more {
    display: inline-block;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
}

.tv-hero-main .tv-hero-content .tv-read-more:hover {
    color: var(--tv-orange);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 700px) {

    .tv-hero-main .tv-hero-content {
        padding: 60px 20px 20px;
    }

    .tv-hero-main .tv-hero-content h2,
    .tv-hero-main .tv-hero-content h1 {
        font-size: 1.55rem;
        margin-bottom: 8px;
    }

    .tv-hero-main .tv-hero-content .tv-read-more {
        font-size: 0.75rem;
    }
}
