:root {
    --bg: #f2efe9;
    --bg-card: #e9e5dc;
    --ink: #1c1b18;
    --muted: #6b675f;
    --line: #cfc9bd;
    --olive: #6f7340;
    --terracotta: #c1502e;
    --navy: #1f2d3d;
    --blue: #3a5a7a;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Inter, sans-serif;
    background: var(--bg);
    color: var(--ink);
}

a {
    color: inherit;
    text-decoration: none;
}

.tdh-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.tdh-topbar {
    border-bottom: 1px solid var(--line);
}

.tdh-topbar .tdh-container {
    display: flex;
    align-items: center;
    padding-top: 10px;
    padding-bottom: 10px;
}

.tdh-domain {
    color: var(--muted);
    text-transform: lowercase;
}

.tdh-search {
    margin-left: auto;
    display: flex;
    align-items: center;
}

.tdh-search input {
    width: 0;
    opacity: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid transparent;
    background: transparent;
    color: var(--ink);
    transition: 0.25s ease;
}

.tdh-search.is-open input {
    width: 210px;
    opacity: 1;
    padding: 6px 8px;
    border-bottom-color: var(--line);
}

.tdh-search button {
    border: 0;
    background: none;
    font-size: 24px;
    color: var(--muted);
    cursor: pointer;
}

.tdh-branding {
    padding: 20px 0 10px;
    text-align: center;
}

.tdh-logo {
    font-family: Oswald, sans-serif;
    font-size: clamp(34px, 6vw, 64px);
    text-transform: uppercase;
    margin: 0;
    line-height: 0.95;
}

.tdh-tagline {
    margin-top: 10px;
    color: var(--muted);
    font-family: Oswald, sans-serif;
    letter-spacing: 0.18em;
    text-transform: lowercase;
    font-size: 14px;
}

.tdh-nav {
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.tdh-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tdh-nav .tdh-primary-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tdh-nav .tdh-primary-menu > li {
    position: relative;
}

.tdh-nav .tdh-primary-menu > li > a {
    display: block;
    padding: 11px 10px;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.06em;
}

.tdh-nav .tdh-primary-menu > li > a:hover {
    color: var(--olive);
}

.tdh-nav .tdh-primary-menu .sub-menu {
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 240px;
    background: var(--navy);
    display: none;
    z-index: 50;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
}

.tdh-nav .tdh-primary-menu li:hover > .sub-menu {
    display: block;
}

.tdh-nav .tdh-primary-menu .sub-menu li a {
    display: block;
    padding: 9px 14px;
    color: #d6d2c8;
    font-size: 13px;
    font-family: Inter, sans-serif;
    text-transform: none;
    letter-spacing: 0;
}

.tdh-nav .tdh-primary-menu .sub-menu li a:hover {
    background: rgba(255, 255, 255, 0.07);
    color: #fff;
}

.tdh-main {
    padding-top: 28px;
}

.tdh-home-intro h1 {
    margin: 0;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 1.05;
    font-size: clamp(24px, 2.8vw, 38px);
}

.tdh-home-intro p {
    margin-top: 10px;
    color: var(--muted);
}

.tdh-section-label {
    margin: 40px 0 18px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 8px;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.13em;
    color: var(--muted);
}

.tdh-grid {
    display: grid;
    gap: 18px;
}

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

.tdh-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tdh-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tdh-card,
.tdh-postcard {
    position: relative;
    overflow: hidden;
    background: var(--bg-card);
}

.tdh-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.tdh-card .tdh-content {
    padding: 14px;
}

.tdh-eyebrow {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--terracotta);
}

.tdh-title {
    margin: 6px 0 0;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 1.05;
}

.tdh-title a:hover {
    color: var(--terracotta);
}

.tdh-excerpt {
    margin-top: 8px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.tdh-hero-wrap {
    margin-top: 24px;
    background: var(--bg-card);
    padding: 28px;
}

.tdh-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1.8fr;
    gap: 24px;
}

.tdh-hero-media {
    min-height: 360px;
}

.tdh-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tdh-feature {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

.tdh-feature-left {
    min-height: 360px;
}

.tdh-feature-right {
    display: grid;
    gap: 18px;
}

.tdh-postcard {
    min-height: 290px;
}

.tdh-postcard .tdh-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.1));
}

.tdh-postcard .tdh-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    color: #fff;
}

.tdh-voyage-strip {
    margin-bottom: 16px;
}

.tdh-voyage-strip-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tdh-voyage-strip-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tdh-stream-list .tdh-card {
    display: grid;
    grid-template-columns: 42px 1fr 100px;
    align-items: center;
    gap: 14px;
    padding: 10px;
}

.tdh-stream-rank {
    font-family: Oswald, sans-serif;
    color: var(--blue);
    font-size: 30px;
}

.tdh-latest-list .tdh-card {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 12px;
}

.tdh-latest-list .tdh-thumb {
    height: 64px;
}

.tdh-latest-list .tdh-title {
    font-size: 16px;
}

.tdh-archive-hero {
    background: var(--navy);
    color: #fff;
    padding: 40px 0;
}

.tdh-archive-hero .tdh-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.tdh-archive-hero h1 {
    margin: 0;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 0.95;
    font-size: clamp(42px, 6.5vw, 72px);
}

.tdh-archive-hero p {
    margin: 0;
    color: #d6d2c8;
}

.tdh-article-wrap {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 40px;
}

.tdh-breadcrumb {
    margin-bottom: 18px;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.1em;
    color: var(--muted);
}

.tdh-article-title {
    margin: 8px 0 0;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 1;
    font-size: clamp(30px, 4vw, 52px);
}

.tdh-article-lead {
    color: var(--muted);
    font-style: italic;
    font-family: Lora, serif;
    font-size: 20px;
}

.tdh-author-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 12px 0;
    margin: 16px 0 20px;
}

.tdh-author-meta img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
}

.tdh-article-content {
    font-family: Lora, serif;
    font-size: 18px;
    line-height: 1.75;
}

.tdh-author-box {
    margin-top: 30px;
    background: var(--navy);
    color: #d6d2c8;
    padding: 24px;
}

.tdh-author-box h4 {
    margin: 0 0 8px;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    color: #fff;
}

.tdh-sidebar-card {
    margin-bottom: 20px;
    background: var(--bg-card);
    padding: 14px;
}

.tdh-sidebar-title {
    margin: 0 0 10px;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.1em;
    color: var(--muted);
}

.tdh-footer {
    margin-top: 60px;
    background: var(--navy);
    color: #d6d2c8;
    padding: 42px 0 24px;
}

.tdh-footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 24px;
}

.tdh-footer h4 {
    margin: 0 0 10px;
    color: #fff;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 13px;
}

.tdh-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tdh-footer li {
    margin-bottom: 8px;
}

.tdh-footer-bottom {
    border-top: 1px solid #33404f;
    margin-top: 26px;
    padding-top: 14px;
    font-size: 12px;
    color: #8b887e;
    display: flex;
    justify-content: space-between;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

@media (max-width: 1100px) {
    .tdh-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .tdh-feature,
    .tdh-article-wrap,
    .tdh-archive-hero .tdh-container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .tdh-grid-3 {
        grid-template-columns: 1fr;
    }
    .tdh-grid-2,
    .tdh-hero-grid,
    .tdh-footer-grid {
        grid-template-columns: 1fr;
    }
    .tdh-voyage-strip-3,
    .tdh-voyage-strip-4 {
        grid-template-columns: 1fr;
    }
    .tdh-nav .tdh-primary-menu {
        flex-direction: column;
        gap: 0;
    }
    .tdh-nav .tdh-primary-menu .sub-menu {
        position: static;
        display: block;
        box-shadow: none;
        background: transparent;
        padding-left: 12px;
    }
    .tdh-nav .tdh-primary-menu .sub-menu li a {
        color: var(--muted);
    }
}

/* ===== Maquette home: styles fideles ===== */
.container { max-width: 1400px; margin: 0 auto; padding: 0 24px; }
body .container { max-width: 1400px; }
.topbar { border-bottom: 1px solid var(--line); font-size: 14px; letter-spacing: .05em; color: var(--muted); }
.topbar .container { display: flex; justify-content: flex-end; gap: 28px; padding-top: 10px; padding-bottom: 10px; align-items: center; }
.topbar .domain { margin-right: auto; text-transform: lowercase; }
.masthead { padding: 18px 0 10px; }
.logo { font-family: Oswald,sans-serif; font-weight: 700; font-size: clamp(34px, 6vw, 64px); letter-spacing: .02em; line-height: .9; text-align: center; text-transform: uppercase; }
.logo-tagline { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:10px; }
.logo-tagline span { font-family: Oswald,sans-serif; font-size:14px; font-weight:500; letter-spacing:.22em; text-transform: lowercase; color: var(--muted); white-space: nowrap; }
.logo-tagline::before,.logo-tagline::after { content:""; height:1px; width:90px; background:var(--line); }

nav.mainnav { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); margin-top: 14px; }
nav.mainnav .container { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; position:relative; }
nav.mainnav .main-menu { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
nav.mainnav .main-menu { width:100%; justify-content:space-between; }
nav.mainnav .main-menu > li { position: relative; }
nav.mainnav .main-menu > li > a {
    display:block; font-family: Oswald,sans-serif; font-weight:500; font-size:14px;
    text-transform: uppercase; letter-spacing:.06em; padding:12px 14px; border-bottom:3px solid transparent; white-space:nowrap; cursor:pointer;
}
nav.mainnav .main-menu > li:hover > a { border-color: var(--olive); }
nav.mainnav .main-menu .sub-menu {
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    background:var(--navy); min-width:230px; padding:8px 0; opacity:0; visibility:hidden;
    transition:opacity .18s ease; z-index:50; box-shadow:0 14px 30px rgba(0,0,0,.25); list-style:none; margin:0;
}
nav.mainnav .main-menu li:hover .sub-menu { opacity:1; visibility:visible; }
nav.mainnav .main-menu .sub-menu a {
    display:block; padding:9px 20px; font-family:Inter,sans-serif; font-size:14px; color:#d6d2c8; white-space:nowrap; border-left:3px solid transparent;
}
nav.mainnav .main-menu .sub-menu a:hover { background:rgba(255,255,255,.06); color:#fff; border-left-color:var(--terracotta); }

.mainnav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 0;
    border: 1px solid var(--ink);
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
}
.mainnav-toggle__icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 20px;
    height: 16px;
}
.mainnav-toggle__bar {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--ink);
    transition: transform .2s ease, opacity .2s ease;
}
.mainnav.is-open .mainnav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mainnav.is-open .mainnav-toggle__bar:nth-child(2) { opacity: 0; }
.mainnav.is-open .mainnav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.topbar-search { margin-left:auto; display:flex; align-items:center; gap:0; }
.topbar-search input {
    width:0; opacity:0; padding:0; border:none; border-bottom:1px solid transparent; background:transparent; font-family:inherit; font-size:13px; color:var(--ink);
    transition: width .3s ease, opacity .3s ease, padding .3s ease;
}
.topbar-search.is-open input { width:200px; opacity:1; padding:6px 8px; border-bottom:1px solid var(--line); }
.topbar-search button { background:none; border:none; cursor:pointer; color:var(--muted); font-size:28px; padding:4px 8px; line-height:1; }
.topbar-search button:hover { color:var(--terracotta); }

.home-intro { margin-top: 32px; }
.home-intro h1 { font-family: Oswald,sans-serif; font-weight: 600; text-transform: uppercase; font-size: clamp(20px, 2.4vw, 30px); line-height: 1.1; letter-spacing: .01em; color: var(--ink); margin:0; }
.home-intro p { font-size: 15px; color: var(--muted); margin-top: 8px; max-width: 760px; }

.section-label { font-family: Oswald,sans-serif; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:8px; margin:48px 0 24px; line-height:1.2; }
h2.section-label { font-size:13px; }
.eyebrow { font-family: Oswald,sans-serif; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; }
.title { font-family: Oswald,sans-serif; font-weight:600; text-transform:uppercase; line-height:1.02; letter-spacing:.01em; margin:0; }
.excerpt { color: var(--muted); font-size:14px; margin-top:10px; }
.btn { display:inline-block; margin-top:16px; font-family:Oswald,sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:.1em; background:var(--olive); color:#fff; padding:11px 20px; }
.btn.dark { background: var(--navy); }
.link-arrow { display:inline-block; margin-top:12px; font-family:Oswald,sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.link-arrow::after { content:" →"; }
img.cover { width:100%; height:100%; object-fit:cover; display:block; }

.btn,
.link-arrow,
.title a,
h3 a,
h4 a,
h5 a {
    transition: color .2s ease, background-color .2s ease, opacity .2s ease;
}

.btn:hover { background: var(--terracotta); color: #fff; }
.btn.dark:hover { background: var(--olive); color: #fff; }
.hero-text .title a:hover,
.fb-item .title a:hover,
.biz-feature h3 a:hover,
.biz-card h4 a:hover,
.stream-item h4 a:hover,
.stream-hero h3 a:hover,
.actu-item h3 a:hover,
.card h3 a:hover,
.vc-top h3 a:hover,
.vc-mini h5 a:hover,
.mtile h3 a:hover {
    color: var(--terracotta);
}

.link-arrow:hover { color: var(--terracotta); }
.fb-left .title a:hover,
.fb-left .link-arrow:hover,
.stream-hero h3 a:hover,
.opinion .obox h3 a:hover {
    color: #ffd9cd;
}

.postcard h3 a:hover { color: #fff; opacity: .85; }

/* Colonne terracotta: hover clair lisible */
.vcol.filled .vc-top h3 a:hover,
.vcol.filled .vc-top .link-arrow:hover {
    color: #fff2ea;
}

/* Mini-carte du bas (fond clair): hover contraste fort */
.vcol.filled .vc-mini h5 a:hover {
    color: var(--terracotta);
}

/* Lifestyle: hovers adaptes selon fond */
.mtile h3 a { color: inherit; }
.mtile.terra h3 a:hover { color: #ffe3d9; }
.mtile.navy h3 a:hover { color: #d8e8ff; }
.mtile.olive h3 a:hover { color: #f3efd3; }
.mtile.beige h3 a:hover { color: var(--terracotta); }

.postcard img,
.fb-left .fb-img img,
.fi-img img,
.bc-img img,
.vc-img img,
.vm-img img,
.m-img img,
.stream-hero img,
.thumb img,
.aimg img,
.cimg img {
    transition: transform .35s ease;
}

.postcard:hover img,
.fb-left:hover .fb-img img,
.fi-img:hover img,
.bc-img:hover img,
.vc-img:hover img,
.vm-img:hover img,
.m-img:hover img,
.stream-hero:hover img,
.thumb:hover img,
.aimg:hover img,
.cimg:hover img {
    transform: scale(1.04);
}

.hero-wrap { background: var(--bg-card); margin-top: 32px; }
.hero { display:grid; grid-template-columns:1fr 2fr; gap:36px; padding:40px 0; align-items:stretch; }
.hero-text { display:flex; flex-direction:column; justify-content:center; }
.hero-text h3 { font-size: clamp(30px, 4vw, 46px); line-height:.98; }
.hero-img { position:relative; min-height:380px; }
.hero-img .pic { width:100%; height:100%; overflow:hidden; border-top-left-radius:120px; }
.hero-dot { position:absolute; top:18px; right:24px; width:56px; height:56px; border-radius:50%; background:var(--olive); z-index:2; }

.feature-block { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:52px; align-items:stretch; }
.fb-left { position:relative; overflow:hidden; min-height:420px; }
.fb-left .fb-img { position:absolute; inset:0; }
.fb-left::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,28,38,.85) 0%, rgba(20,28,38,.25) 55%, transparent 100%); z-index:1; }
.fb-left .fb-txt { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:30px; }
.fb-left .eyebrow,.fb-left .link-arrow,.fb-left h3,.fb-left .excerpt { color:#fff; }
.fb-right { display:flex; flex-direction:column; gap:40px; }
.fb-item { display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start; }
.fb-item .fi-txt h4 { font-size:24px; line-height:1.02; }
.fb-item.square .fi-img { width:300px; height:300px; overflow:hidden; }
.fb-item.landscape .fi-img { width:300px; height:200px; overflow:hidden; }

.voyage-strip { display:grid; gap:16px; margin-top:24px; }
.voyage-strip.cols3 { grid-template-columns:repeat(3,1fr); }
.voyage-strip.cols4 { grid-template-columns:repeat(4,1fr); }
.voyage-strip + .voyage-strip { margin-top:16px; }
.postcard { position:relative; overflow:hidden; min-height:380px; display:flex; }
.postcard > a { position:absolute; inset:0; }
.postcard > a img { width:100%; height:100%; object-fit:cover; display:block; }
.postcard::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,28,38,.92) 0%, rgba(20,28,38,.15) 50%, transparent 100%); pointer-events:none; }
.postcard::before { content:""; position:absolute; top:0; left:0; right:0; height:6px; z-index:3; }
.postcard.p0::before { background:var(--olive); }
.postcard.p1::before { background:var(--terracotta); }
.postcard.p2::before { background:var(--blue); }
.postcard.p3::before { background:var(--navy); }
.postcard .pc-body { position:relative; z-index:2; margin-top:auto; padding:22px; color:#fff; }
.postcard .pc-eyebrow { font-family:Oswald,sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; display:inline-block; padding:3px 10px; margin-bottom:10px; color:#fff; }
.postcard.p0 .pc-eyebrow { background:var(--olive); }
.postcard.p1 .pc-eyebrow { background:var(--terracotta); }
.postcard.p2 .pc-eyebrow { background:var(--blue); }
.postcard.p3 .pc-eyebrow { background:var(--navy); }
.postcard h3 { font-family:Oswald,sans-serif; font-weight:600; font-size:20px; text-transform:uppercase; line-height:1.05; margin:0; }

.asym-business { display:grid; grid-template-columns:1fr 2fr; gap:24px; margin-top:24px; align-items:stretch; }
.biz-feature { background:var(--navy); color:#fff; padding:32px; display:flex; flex-direction:column; justify-content:space-between; }
.biz-feature h3 { font-family:Oswald,sans-serif; font-size:30px; text-transform:uppercase; line-height:1.05; margin:18px 0; }
.biz-feature p { font-size:14px; color:#c2bfb5; margin-bottom:16px; }
.biz-cards { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.biz-card .bc-img { width:100%; height:130px; overflow:hidden; margin-bottom:10px; }
.biz-card h4 { font-family:Oswald,sans-serif; font-size:17px; font-weight:500; text-transform:uppercase; line-height:1.1; margin:0; }
.biz-card .eyebrow { color:var(--terracotta); }

.col-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:24px; border:1px solid var(--line); }
.vcol { display:flex; flex-direction:column; border-right:1px solid var(--line); min-height:600px; }
.vcol:last-child { border-right:none; }
.vc-top { flex:1; display:flex; flex-direction:column; padding:30px 26px; }
.vcol.filled .vc-top { background:var(--terracotta); }
.vcol-head { display:flex; justify-content:space-between; align-items:flex-start; }
.vc-eyebrow { font-family:Oswald,sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding-top:14px; border-top:2px solid var(--olive); display:inline-block; }
.vcol.filled .vc-eyebrow { color:#fff; border-top-color:#fff; }
.vc-top h3 { font-family:Oswald,sans-serif; font-weight:600; text-transform:uppercase; line-height:1.0; font-size:30px; margin:22px 0 12px; }
.vcol.filled .vc-top h3 { color:#fff; }
.vc-sub { font-family:Oswald,sans-serif; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.vcol.filled .vc-sub { color:#f0d9d0; }
.vc-top p { font-size:14px; color:var(--muted); }
.vcol.filled .vc-top p { color:#ece5e1; }
.vcol.filled .vc-top .link-arrow { color:#fff; }
.vc-img { margin-top:auto; height:190px; overflow:hidden; }
.vc-mini { display:grid; grid-template-columns:70px 1fr; gap:14px; align-items:center; margin:0 26px 26px; padding-top:16px; border-top:1px solid var(--line); background:none; }
.vc-mini .vm-img { width:70px; height:56px; overflow:hidden; }
.vc-mini .vm-eyebrow { font-family:Oswald,sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta); }
.vc-mini h5 { font-family:Oswald,sans-serif; font-size:18px; font-weight:500; text-transform:uppercase; line-height:1.05; color:var(--ink); margin:0; }

.mosaic { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:230px; gap:16px; margin-top:24px; }
.mtile { position:relative; overflow:hidden; padding:26px; display:flex; flex-direction:column; }
.mtile.beige { background:var(--bg-card); }
.mtile.terra { background:var(--terracotta); color:#fff; }
.mtile.navy { background:var(--navy); color:#fff; }
.mtile.olive { background:var(--olive); color:#fff; }
.mtile .m-img { position:absolute; inset:0; }
.mtile .m-img img { width:100%; height:100%; object-fit:cover; }
.mtile .m-content { position:relative; z-index:3; margin-top:auto; }
.mtile .m-eyebrow { font-family:Oswald,sans-serif; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.mtile h3 { font-family:Oswald,sans-serif; font-weight:600; font-size:24px; text-transform:uppercase; line-height:1.0; margin:8px 0; }

.asym-streaming { display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:stretch; margin-top:24px; }
.stream-hero { position:relative; min-height:440px; overflow:hidden; background:var(--navy); }
.stream-hero > a { position:absolute; inset:0; }
.stream-hero .caption { position:absolute; left:0; bottom:0; right:0; padding:28px; background:linear-gradient(to top, rgba(20,28,38,.92), transparent); color:#fff; z-index:2; }
.stream-hero .bignum { position:absolute; top:18px; left:22px; font-family:Oswald,sans-serif; font-weight:700; font-size:90px; line-height:1; color:rgba(255,255,255,.18); z-index:2; }
.stream-hero h3 { font-size:34px; color:#fff; margin:0; }
.stream-side { display:flex; flex-direction:column; gap:0; }
.stream-item { display:grid; grid-template-columns:42px 1fr 100px; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); align-items:center; }
.stream-item:first-child { padding-top:0; }
.stream-item .si-num { font-family:Oswald,sans-serif; font-weight:700; font-size:30px; color:var(--blue); }
.stream-item h4 { font-family:Oswald,sans-serif; font-size:17px; font-weight:500; text-transform:uppercase; line-height:1.05; margin:0; }
.stream-item .thumb { width:100px; height:70px; overflow:hidden; }

.split { display:grid; grid-template-columns:1fr 1.6fr; gap:40px; align-items:start; }
.actu-item { display:grid; grid-template-columns:64px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.actu-item .aimg { width:64px; height:56px; overflow:hidden; }
.actu-item .cat { color:var(--terracotta); }
.actu-item h3 { font-family:Oswald,sans-serif; font-size:15px; font-weight:500; text-transform:uppercase; line-height:1.1; margin:0; }
.actu-item .date { font-size:11px; color:var(--muted); margin-top:4px; }
.opinion { position:relative; min-height:420px; overflow:hidden; background:var(--navy); }
.opinion .ovl { position:absolute; inset:0; }
.opinion .obox { position:absolute; right:0; top:0; width:40%; height:100%; background:var(--navy); color:#ece9e2; padding:36px; display:flex; flex-direction:column; justify-content:center; z-index:2; }
.opinion .obox h3 { font-size:34px; color:#fff; margin:14px 0; }
.opinion .quote { font-size:40px; color:var(--terracotta); font-family:Oswald,sans-serif; line-height:.5; }
.opinion .obox p { font-size:14px; color:#c8c4ba; }
.opinion .dot1 { position:absolute; bottom:90px; left:30%; width:26px; height:26px; border-radius:50%; background:var(--olive); z-index:2; }
.opinion .dot2 { position:absolute; bottom:90px; left:calc(30% + 34px); width:26px; height:26px; border-radius:50%; background:var(--terracotta); z-index:2; }

.grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.grid2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.card .cimg { width:100%; height:150px; overflow:hidden; margin-bottom:12px; }
.card .eyebrow { display:block; margin-bottom:6px; }
.card.c0 .eyebrow { color:var(--olive); }
.card.c1 .eyebrow { color:var(--blue); }
.card.c2 .eyebrow { color:var(--terracotta); }
.card.c3 .eyebrow { color:var(--muted); }
.card h3 { font-family:Oswald,sans-serif; font-size:17px; font-weight:500; text-transform:uppercase; line-height:1.1; margin:0; }

footer { background: var(--navy); color:#d6d2c8; margin-top:64px; padding:48px 0 28px; }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; }
.foot-grid-3 { grid-template-columns: 2fr 1fr 1fr; }
.foot-mission { color:#a9a59b; font-size:13px; margin-top:10px; max-width:420px; line-height:1.6; }
.footer-menu { list-style:none; margin:0; padding:0; }
.footer-menu li { margin-bottom:8px; color:#c2bfb5; font-size:14px; }
.footer-menu li a { color:#c2bfb5; }
.footer-menu li a:hover { color:#fff; }
footer a { color: inherit; transition: color .2s ease; }
footer ul li:hover { color:#fff; }
footer ul li a:hover { color:#fff; }
.foot-bottom a { color:#bfbcb2; }
.foot-bottom a:hover { color:#fff; }
footer .flogo { font-family:Oswald,sans-serif; font-size:26px; font-weight:700; text-transform:uppercase; color:#fff; }
footer p { font-size:13px; margin-top:12px; color:#a9a59b; }
footer h4 { font-family:Oswald,sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:.12em; color:#fff; margin-bottom:14px; }
footer li { list-style:none; font-size:14px; margin-bottom:8px; color:#c2bfb5; }
footer li:hover { color:#fff; }
.foot-bottom { border-top:1px solid #33404f; margin-top:36px; padding-top:18px; display:flex; justify-content:space-between; font-size:12px; color:#8b887e; }

@media (max-width: 980px) {
    body.tdh-nav-open { overflow: hidden; }

    nav.mainnav .container {
        flex-wrap: wrap;
        align-items: center;
        padding-top: 0;
        padding-bottom: 0;
    }

    .mainnav-toggle { display: flex; }

    nav.mainnav .main-menu {
        display: none;
        flex-direction: column;
        width: 100%;
        justify-content: flex-start;
        border-top: 1px solid var(--line);
        margin-top: 0;
        padding: 8px 0 12px;
    }

    nav.mainnav.is-open .main-menu { display: flex; }

    nav.mainnav .main-menu > li {
        width: 100%;
        border-bottom: 1px solid var(--line);
    }

    nav.mainnav .main-menu > li:last-child { border-bottom: none; }

    nav.mainnav .main-menu > li > a {
        padding: 14px 0;
        white-space: normal;
        border-bottom: none;
    }

    nav.mainnav .main-menu > li:hover > a { border-color: transparent; }

    nav.mainnav .main-menu .menu-item-has-children > a,
    nav.mainnav .main-menu .page_item_has_children > a {
        position: relative;
        padding-right: 36px;
    }

    nav.mainnav .main-menu .menu-item-has-children > a::after,
    nav.mainnav .main-menu .page_item_has_children > a::after {
        content: "+";
        position: absolute;
        right: 4px;
        top: 50%;
        transform: translateY(-50%);
        font-family: Oswald, sans-serif;
        font-size: 20px;
        font-weight: 500;
        line-height: 1;
        color: var(--muted);
    }

    nav.mainnav .main-menu .menu-item-has-children.is-sub-open > a::after,
    nav.mainnav .main-menu .page_item_has_children.is-sub-open > a::after { content: "−"; }

    nav.mainnav .main-menu .sub-menu,
    nav.mainnav .main-menu .children {
        position: static;
        transform: none;
        opacity: 1;
        visibility: visible;
        background: var(--bg-card);
        box-shadow: none;
        min-width: 0;
        padding: 0 0 10px 12px;
        display: none;
        list-style: none;
        margin: 0;
    }

    nav.mainnav .main-menu li:hover .sub-menu,
    nav.mainnav .main-menu li:hover .children { display: none; }
    nav.mainnav .main-menu .menu-item-has-children.is-sub-open > .sub-menu,
    nav.mainnav .main-menu .page_item_has_children.is-sub-open > .children { display: block; }

    nav.mainnav .main-menu .sub-menu a,
    nav.mainnav .main-menu .children a {
        color: var(--muted);
        padding: 10px 0;
        white-space: normal;
        border-left: none;
    }

    nav.mainnav .main-menu .sub-menu a:hover,
    nav.mainnav .main-menu .children a:hover {
        color: var(--ink);
        background: none;
        border-left-color: transparent;
    }
}
@media (max-width: 860px) {
    .hero, .feature-block, .split, .grid4, .foot-grid, .asym-streaming, .asym-business { grid-template-columns: 1fr; }
    .voyage-strip.cols3, .voyage-strip.cols4, .biz-cards, .mosaic { grid-template-columns: 1fr 1fr; }
    .opinion .obox { width:100%; position:relative; }
    .opinion { min-height:auto; }
    .col-grid { grid-template-columns: 1fr; }
    .vcol { border-right:none; border-bottom:1px solid var(--line); min-height:auto; }
}
@media (max-width: 520px) {
    .voyage-strip.cols3, .voyage-strip.cols4, .grid4, .mosaic { grid-template-columns:1fr; }
    .postcard { min-height:300px; }
    .fb-item { grid-template-columns: 1fr; }
    .fb-item .fi-img, .fb-item.square .fi-img, .fb-item.landscape .fi-img { width:100%; height:200px; }
}

/* ===== Archive maquette ===== */
.cat-header { background: var(--navy); color: #fff; margin-top: 32px; position: relative; overflow: hidden; }
.cat-header .container { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; padding-top: 64px; padding-bottom: 64px; position: relative; z-index: 2; }
.cat-header .ch-breadcrumb { font-family: Oswald,sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: #b9b4a8; margin-bottom: 20px; }
.cat-header .ch-breadcrumb a:hover { color: var(--terracotta); }
.cat-header .ch-breadcrumb span { margin: 0 8px; }
.cat-header h1 { font-family: Oswald,sans-serif; font-weight: 700; text-transform: uppercase; line-height: 1.0; font-size: clamp(22px, 3.2vw, 36px); letter-spacing: .01em; margin:0; }
.cat-header .ch-desc { font-size: 17px; line-height: 1.6; color: #d6d2c8; max-width: 100%; margin-top: 0; }
.cat-header .ch-count { font-family: Oswald,sans-serif; font-size: 13px; text-transform: uppercase; letter-spacing: .12em; color: var(--terracotta); margin-top: 22px; border-top: 2px solid var(--terracotta); display: inline-block; padding-top: 10px; }
.cat-header .ch-circle { position: absolute; top: -60px; right: 8%; width: 240px; height: 240px; border-radius: 50%; background: var(--olive); opacity: .9; z-index: 1; }
.cat-header .ch-tri { position: absolute; bottom: 0; right: 0; width: 28%; height: 70%; z-index: 1; background: var(--terracotta); clip-path: polygon(100% 0, 100% 100%, 0 100%); opacity: .25; }

.archive-page .cards-strip { display: grid; gap: 16px; margin-top: 16px; }
.archive-page {
    width: 100%;
    max-width: 1400px !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}
.archive-page .cards-strip:first-of-type { margin-top: 40px; }
.archive-page .cards-strip.cols2 { grid-template-columns: repeat(2, 1fr); }
.archive-page .cards-strip.cols3 { grid-template-columns: repeat(3, 1fr); }
.archive-page .cards-strip.cols4 { grid-template-columns: repeat(4, 1fr); }

.archive-page .postcard { position: relative; overflow: hidden; min-height: 360px; display: flex; }
.archive-page .cards-strip.cols2 .postcard { min-height: 440px; }
.archive-page .postcard > a { position:absolute; inset:0; }
.archive-page .postcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.archive-page .postcard:hover img { transform: scale(1.06); }
.archive-page .postcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,28,38,.92) 0%, rgba(20,28,38,.15) 50%, transparent 100%); }
.archive-page .postcard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; z-index: 3; }
.archive-page .postcard.p0::before { background: var(--olive); }
.archive-page .postcard.p1::before { background: var(--terracotta); }
.archive-page .postcard.p2::before { background: var(--blue); }
.archive-page .postcard.p3::before { background: var(--navy); }
.archive-page .postcard .pc-body { position: relative; z-index: 2; margin-top: auto; padding: 22px; color: #fff; }
.archive-page .postcard .pc-eyebrow { font-family: Oswald,sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; display: inline-block; padding: 3px 10px; margin-bottom: 10px; color: #fff; }
.archive-page .postcard.p0 .pc-eyebrow { background: var(--olive); }
.archive-page .postcard.p1 .pc-eyebrow { background: var(--terracotta); }
.archive-page .postcard.p2 .pc-eyebrow { background: var(--blue); }
.archive-page .postcard.p3 .pc-eyebrow { background: var(--navy); }
.archive-page .postcard h3 { font-family: Oswald,sans-serif; font-weight: 600; font-size: 22px; text-transform: uppercase; line-height: 1.05; margin:0; }
.archive-page .cards-strip.cols2 .postcard h3 { font-size: 30px; }
.archive-page .postcard .pc-meta { font-size: 12px; color: #d8d4ca; margin-top: 8px; }
.archive-page .postcard .pc-excerpt { font-size: 13px; line-height: 1.45; color: #e3e0d8; margin-top: 8px; }
.archive-page .cards-strip.cols2 .postcard .pc-excerpt { font-size: 15px; max-width: 90%; }

.archive-page .pagination { display: flex; justify-content: center; gap: 10px; margin: 56px 0 20px; }
.archive-page .pagination .nav-links { display:flex; gap:10px; align-items:center; }
.archive-page .pagination a,
.archive-page .pagination span { font-family: Oswald,sans-serif; font-size: 15px; min-width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); color: var(--ink); padding:0 8px; }
.archive-page .pagination a:hover { background: var(--olive); color: #fff; border-color: var(--olive); }
.archive-page .pagination .current { background: var(--navy); color: #fff; border-color: var(--navy); }
.archive-page .pagination .dots { border: none; color: var(--muted); min-width:auto; }

@media (max-width: 980px) {
    .archive-page .cards-strip.cols3,
    .archive-page .cards-strip.cols4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
    .cat-header .container { grid-template-columns: 1fr; gap: 24px; align-items: start; }
}
@media (max-width: 560px) {
    .archive-page .cards-strip.cols2,
    .archive-page .cards-strip.cols3,
    .archive-page .cards-strip.cols4 { grid-template-columns: 1fr; }
    .archive-page .postcard,
    .archive-page .cards-strip.cols2 .postcard { min-height: 300px; }
}

/* ===== Single article maquette ===== */
.article-wrap { display: grid; grid-template-columns: 1fr 400px; gap: 56px; margin-top: 40px; align-items: start; min-width: 0; }
.article-wrap > article,
.article-wrap > .sidebar,
.article-body,
.article-body.entry-content {
    min-width: 0;
    max-width: 100%;
}
.breadcrumb { font-family: Oswald,sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 22px; overflow-wrap: anywhere; word-break: break-word; }
.breadcrumb a:hover { color: var(--terracotta); }
.breadcrumb span { margin: 0 8px; }
.article-cat { display: inline-block; font-family: Oswald,sans-serif; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: #fff; background: var(--terracotta); padding: 4px 12px; margin-bottom: 18px; }
.article-title { font-family: Oswald,sans-serif; font-weight: 700; text-transform: uppercase; line-height: 1.0; font-size: clamp(32px, 4.5vw, 54px); letter-spacing: .01em; margin:0; }
.article-lead { font-family: Lora,serif; font-size: 20px; line-height: 1.5; color: var(--muted); margin-top: 18px; font-style: italic; }
.article-meta { display: flex; align-items: center; gap: 16px; margin: 26px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.article-meta .avatar { width: 46px; height: 46px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.article-meta .avatar img { width: 100%; height: 100%; object-fit: cover; }
.article-meta .author { font-family: Oswald,sans-serif; font-weight: 600; font-size: 14px; text-transform: uppercase; letter-spacing: .05em; }
.article-meta .infos { font-size: 13px; color: var(--muted); }
.article-meta .share { margin-left: auto; display: flex; gap: 10px; }
.article-meta .share a { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-family: Oswald,sans-serif; color: var(--muted); }
.article-meta .share a:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.article-hero { width: 100%; height: 460px; overflow: hidden; margin-bottom: 20px; border-top-left-radius: 120px; }
.article-hero img { width: 100%; height: 100%; object-fit: cover; }
.article-body { font-family: Lora,serif; font-size: 18px; line-height: 1.75; color: #2b2a26; }
.article-body p { margin-bottom: 22px; }
.article-body h2 {
    font-family: Oswald,sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: clamp(22px, 3.2vw, 28px);
    line-height: 1.15;
    margin: 48px 0 20px;
    padding: 12px 0 12px 18px;
    color: var(--ink);
    border-left: 4px solid var(--terracotta);
    background: linear-gradient(90deg, rgba(193, 80, 46, 0.08) 0%, transparent 72%);
    scroll-margin-top: 24px;
    letter-spacing: .02em;
}
.article-body h3 {
    font-family: Oswald,sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    font-size: clamp(18px, 2.4vw, 21px);
    line-height: 1.2;
    margin: 34px 0 14px;
    padding-left: 16px;
    color: var(--navy);
    position: relative;
    scroll-margin-top: 24px;
    letter-spacing: .03em;
}
.article-body h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 8px;
    height: 3px;
    background: var(--olive);
    border-radius: 1px;
}
.single-post.tag-stream .article-body h2 {
    border-left-color: #ef952c;
    background: linear-gradient(90deg, rgba(239, 149, 44, 0.1) 0%, transparent 72%);
}
.single-post.tag-stream .article-body h3::before {
    background: #ef952c;
}
.article-body a { color: var(--terracotta); text-decoration: underline; }
.article-body ul { margin: 0 0 22px 22px; }
.article-body li { margin-bottom: 8px; }
.article-body blockquote { border-left: 4px solid var(--olive); background: var(--bg-card); padding: 22px 26px; margin: 30px 0; font-size: 22px; line-height: 1.4; font-style: italic; color: var(--navy); }
.article-body img { width: 100%; height: auto; margin: 8px 0 6px; max-width: 100%; }
.article-body iframe,
.article-body video,
.article-body embed,
.article-body object { max-width: 100%; }
.article-body table { display: block; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.article-body pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; word-break: break-word; }
.article-body > p:first-of-type::first-letter { font-family: Oswald,sans-serif; font-weight: 700; font-size: 64px; float: left; line-height: .8; padding: 6px 12px 0 0; color: var(--terracotta); }
.article-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 40px 0; padding-top: 26px; border-top: 1px solid var(--line); }
.article-tags a { font-family: Oswald,sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; background: var(--bg-card); padding: 7px 14px; color: var(--muted); }
.article-tags a:hover { background: var(--olive); color: #fff; }
.author-box { display: grid; grid-template-columns: 90px 1fr; gap: 22px; background: var(--navy); color: #d6d2c8; padding: 28px; margin-bottom: 50px; }
.author-box .ab-avatar { width: 90px; height: 90px; border-radius: 50%; overflow: hidden; }
.author-box .ab-avatar img { width: 100%; height: 100%; object-fit: cover; }
.author-box h4 { font-family: Oswald,sans-serif; font-size: 18px; text-transform: uppercase; color: #fff; margin-bottom: 8px; margin-top:0; }
.author-box p { font-size: 14px; line-height: 1.6; margin:0; }
.sidebar { display: flex; flex-direction: column; gap: 34px; }
.side-block .side-title { font-family: Oswald,sans-serif; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 18px; }
.tdh-widget-block { background: var(--bg-card); padding: 16px; }
.tdh-widget-block ul { list-style: none; margin: 0; padding: 0; }
.tdh-widget-block li { margin-bottom: 8px; }
.tdh-widget-block a { color: var(--ink); text-decoration: none; }
.tdh-widget-block a:hover { color: var(--terracotta); }
.side-search { background: var(--navy); color: #fff; padding: 28px; }
.side-search h4 { font-family: Oswald,sans-serif; font-size: 22px; text-transform: uppercase; margin-bottom: 8px; margin-top:0; }
.side-search p { font-size: 14px; color: #c8c4ba; margin-bottom: 16px; margin-top:0; }
.side-search form { display: flex; }
.side-search input { flex: 1; border: none; padding: 12px 14px; font-family: inherit; font-size: 14px; }
.side-search button { background: var(--terracotta); color: #fff; border: none; padding: 0 18px; cursor: pointer; font-family: Oswald,sans-serif; font-size: 16px; }
.side-search button:hover { background: var(--olive); }
.pop-item { display: grid; grid-template-columns: 48px 80px 1fr; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.pop-item > div:last-child { min-width: 0; }
.pop-item:last-child { border-bottom: none; }
.pop-item .pop-num { font-family: Oswald,sans-serif; font-weight: 700; font-size: 30px; color: var(--line); }
.pop-item .pop-img { width: 80px; height: 64px; overflow: hidden; }
.pop-item .pop-img img { width: 100%; height: 100%; object-fit: cover; }
.pop-item .pop-cat { font-family: Oswald,sans-serif; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--terracotta); }
.pop-item h4 { font-family: Oswald,sans-serif; font-size: 14px; font-weight: 500; text-transform: uppercase; line-height: 1.1; margin:0; }
.side-cats { display: flex; flex-wrap: wrap; gap: 8px; }
.side-cats a { font-family: Oswald,sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; background: var(--navy); color: #fff; padding: 7px 13px; }
.side-cats a:hover { background: var(--olive); }
.related { margin-top: 30px; }
.related .section-label { margin-top:0; }
.related-cornerstone--spaced { margin-top: 48px; }
.related-cornerstone .card .cimg { height: 190px; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rel-card .rc-img { width: 100%; height: 180px; overflow: hidden; margin-bottom: 12px; }
.rel-card .rc-img img { width: 100%; height: 100%; object-fit: cover; }
.rel-card .rc-cat { font-family: Oswald,sans-serif; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--olive); }
.rel-card h3 { font-family: Oswald,sans-serif; font-size: 18px; font-weight: 500; text-transform: uppercase; line-height: 1.1; margin-top:6px; margin-bottom:0; }

/* Left gutter sticky TOC (single only, H2 anchors) */
.left-gutter-toc {
    position: fixed;
    top: 285px;
    left: max(12px, calc((100vw - 1400px) / 2 - 250px));
    width: 220px;
    max-height: calc(100vh - 305px);
    overflow: auto;
    z-index: 40;
    background: rgba(242, 239, 233, 0.92);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
}
.left-gutter-toc__title {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    padding-bottom: 8px;
    margin-bottom: 8px;
}
.left-gutter-toc ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.left-gutter-toc li + li {
    margin-top: 6px;
}
.left-gutter-toc a {
    display: block;
    font-family: Inter, sans-serif;
    font-size: 13px;
    line-height: 1.35;
    color: var(--muted);
    text-decoration: none;
    border-left: 2px solid transparent;
    padding: 4px 8px;
}
.left-gutter-toc a:hover,
.left-gutter-toc a.is-active {
    color: var(--terracotta);
    border-left-color: var(--terracotta);
    background: rgba(193, 80, 46, 0.07);
}

@media (max-width: 1100px) {
    .article-wrap { grid-template-columns: 1fr; }
    .related-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .single-post main.container {
        padding-left: 16px;
        padding-right: 16px;
        overflow-x: clip;
    }

    .article-wrap {
        gap: 32px;
        margin-top: 24px;
    }

    .article-meta > div:nth-child(2) {
        min-width: 0;
        flex: 1;
    }

    .article-body > p:first-of-type::first-letter {
        font-size: 48px;
    }

    .box-adresse {
        padding: 16px;
    }

    .official-url-actions .check-url-btn {
        font-size: 15px;
        padding: 10px 16px;
    }

    .entry-content .ad-amazon-compact {
        padding: 16px;
    }

    .entry-content .ad-amazon-compact ul {
        margin-left: 0 !important;
    }

    .entry-content .ad-amazon-compact h3 {
        font-size: 22px !important;
    }

    .live-check-line,
    .live-check-line strong,
    #stream-url {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .author-box,
    .side-search {
        padding: 20px;
    }

    .single-post .entry-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .single-post .entry-content table thead,
    .single-post .entry-content table tbody,
    .single-post .entry-content table tr {
        display: table;
        width: 100%;
        table-layout: auto;
    }
}
@media (max-width: 600px) {
    .related-grid { grid-template-columns: 1fr; }
    .grid2 { grid-template-columns: 1fr; }
    .article-hero { height: 260px; border-top-left-radius: 60px; }
    .article-meta { flex-wrap: wrap; }
    .article-meta .share { margin-left: 0; width: 100%; }
}
@media (max-width: 1600px) {
    .left-gutter-toc {
        display: none;
    }
}

/* ===== Legacy article-ui integrated in theme ===== */
.single-post .entry-content {
    font-family: 'Lora', serif !important;
    font-size: 18px !important;
    line-height: 1.75 !important;
    color: #2b2a26 !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
}
.single-post .entry-content img,
.single-post .entry-content iframe,
.single-post .entry-content video,
.single-post .entry-content embed,
.single-post .entry-content object {
    max-width: 100% !important;
    height: auto;
}
.single-post .entry-content figure {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.single-post .entry-content pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
.single-post .entry-content p,
.single-post .entry-content li,
.single-post .entry-content td,
.single-post .entry-content th,
.single-post .entry-content blockquote {
    font-family: 'Lora', serif !important;
    font-size: 18px !important;
    line-height: 1.75 !important;
    color: #2b2a26 !important;
}
.single-post .entry-content strong,
.single-post .entry-content b {
    color: #000;
    font-weight: 700;
}
.single-post .entry-content a {
    color: #c1502e;
    text-decoration: underline;
    border: 0;
    font-weight: 500;
}
.single-post .entry-content a:hover {
    color: #8f3a21;
}
.single-post .entry-content table {
    display: table;
    width: 100%;
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 30px 0;
    border: 2px solid var(--blue);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.single-post .entry-content thead th {
    background: var(--blue);
    color: #fff !important;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-bottom: 2px solid #2d4a66;
    font-family: Oswald, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: .04em;
}
.single-post .entry-content thead th * {
    color: #fff !important;
}
.single-post .entry-content tbody tr:nth-child(odd) td {
    background: #fff;
}
.single-post .entry-content tbody tr:nth-child(even) td {
    background: #eef3f8;
}
.single-post .entry-content td {
    padding: 12px 14px;
    border: 1px solid #c5d4e3;
    color: #2b2a26;
}
.single-post .entry-content tbody tr:hover td {
    background: #e3edf6;
}
.single-post .entry-content ul {
    margin: 0 0 22px 22px;
    padding: 0;
}
.single-post .entry-content ol {
    margin: 0 0 22px 22px;
    padding: 0;
}
.single-post .entry-content ul li,
.single-post .entry-content ol li {
    margin-bottom: 8px;
    line-height: 1.7;
}

/* Stream articles keep stronger editorial styling for tables/lists/links */
.single-post.tag-stream .entry-content ul li {
    margin-bottom: 6px;
    position: relative;
    list-style: none;
    padding-left: 25px;
    background-color: #fffefd;
    line-height: 32px;
    border-radius: 8px;
    border-left: 2px solid #ef952c;
}
.single-post.tag-stream .entry-content ul li::before {
    content: "➤";
    color: #ef952c;
    font-weight: bold;
    position: absolute;
    left: 8px;
    font-size: .9em;
}
.single-post.tag-stream .entry-content ol li {
    margin-bottom: 6px;
    position: relative;
    padding-left: 8px;
    line-height: 32px;
    border-radius: 8px;
    border-left: 2px solid #ef952c;
}
.single-post.tag-stream .entry-content table {
    border: 2px solid var(--blue);
    border-radius: 8px;
    overflow: hidden;
}
.single-post.tag-stream .entry-content thead th {
    background-color: #ef952c;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-bottom: 2px solid #d68322;
}
.single-post.tag-stream .entry-content tbody tr:nth-child(even) td {
    background: #fff8f0;
}
.single-post.tag-stream .entry-content tbody tr:hover td {
    background: #ffefd9;
}
.single-post.tag-stream .entry-content a {
    color: #ef952c;
    border-bottom: 1px solid rgba(239,149,44,.3);
    text-decoration: none;
    font-weight: 600;
}
.single-post.tag-stream .entry-content a:hover {
    color: #d68322;
    border-bottom-color: #d68322;
    text-decoration: none;
}

/* URL box + checks */
.art-box {
    padding: 20px;
    background-color: #fafafa;
    border-radius: 8px;
    margin-bottom: 20px;
    border: 1px solid transparent;
}
.art-alert-red {
    padding: 12px 12px;
    margin-bottom: 20px;
    background-color: #fef2f2;
    border-left: 5px solid #ef4444;
    color: #991b1b;
}
.art-alert-orange {
    padding: 12px 12px;
    margin-bottom: 20px;
    background-color: #fff7ed;
    border-left: 5px solid #f97316;
    color: #9a3412;
}
.art-alert-blue {
    padding: 12px 12px;
    margin-bottom: 20px;
    background-color: #eff6ff;
    border-left: 5px solid #3b82f6;
    color: #1e40af;
}
#stream-url {
    background: #202020;
    color: #f4a261;
    font-size: 1em;
    line-height: 1.6;
    padding: 8px 10px;
    border-radius: 4px;
    border: 2px dashed #f4a261;
    display: inline-block;
    word-break: break-all;
}
.box-adresse {
    background: #e7fbea;
    color: #790404;
    border-left: 2px solid #ef952c;
    padding: 25px;
    border-radius: 8px;
    text-align: center;
    margin: 25px 0;
}
.box-adresse strong {
    color: #790404;
    display: block;
    font-size: 1.4em;
    margin: 15px 0;
    letter-spacing: 0.5px;
}
.official-url-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 15px 0 10px;
    text-align: center;
}
.official-url-actions .check-url-btn,
.official-url-actions .copy-url-btn {
    display: inline-block;
    border-radius: 8px;
    text-decoration: none !important;
    font-weight: 700;
    color: #fff !important;
    transition: background .2s ease;
}
.official-url-actions .check-url-btn {
    padding: 12px 24px;
    background: #3498db;
    font-size: 18px;
}
.official-url-actions .check-url-btn:hover { background: #2980b9; }
.official-url-actions .check-url-btn.checking { pointer-events: none; background: #95a5a6; }
.official-url-actions .check-url-btn.hidden { display: none; }
.official-url-actions .copy-url-btn {
    padding: 12px 14px;
    background: #2ecc71;
    font-size: 14px;
}
.official-url-actions .copy-url-btn:hover { background: #27ae60; }
.check-url-result { display: none; margin-top: 12px; }
.check-url-result.visible { display: block; }
.progress-bar {
    background: #eee;
    border-radius: 6px;
    height: 24px;
    overflow: hidden;
    max-width: 350px;
    margin: 0 auto;
}
.progress-fill {
    background: linear-gradient(90deg, #3498db, #2ecc71);
    height: 100%;
    width: 0%;
    border-radius: 6px;
    transition: width .3s;
}
.progress-msg { color: #777; font-size: 13px; margin: 8px 0 0; }
.check-success {
    background: #d4edda;
    border: 2px solid #28a745;
    border-radius: 8px;
    padding: 15px;
    max-width: 400px;
    margin: 0 auto;
}
.check-success-title,
.check-success-detail { color: #155724; }

/* Live check bar */
.live-check-bar {
    background: #1a1a2e;
    color: #fff;
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    text-align: center;
}
.live-check-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 14px;
}
.live-pulse {
    width: 12px;
    height: 12px;
    background: #2ecc71;
    border-radius: 50%;
    display: inline-block;
    animation: pulse-glow 1.5s infinite;
}
@keyframes pulse-glow {
    0% { box-shadow: 0 0 0 0 rgba(46,204,113,.6); }
    70% { box-shadow: 0 0 0 10px rgba(46,204,113,0); }
    100% { box-shadow: 0 0 0 0 rgba(46,204,113,0); }
}
.live-check-label {
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1.2px;
    color: #2ecc71;
}
.live-check-line { color: #ccc; font-size: 18px; }
.live-check-line strong { color: #f1c40f; font-family: monospace; font-size: 19px; }

/* FAQ cards */
.faq-grid {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 25px;
}
.faq-card {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px 16px;
    background-color: #fff;
    box-shadow: 0 2px 6px rgba(15,23,42,.04);
}
.faq-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.faq-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: #ef952c;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 16px;
    flex-shrink: 0;
}
.faq-question {
    margin: 0;
    font-weight: 700;
    color: #111827;
    font-size: 1rem;
}
.faq-answer p {
    margin: 0;
    color: #4b5563;
    font-size: .98rem;
    line-height: 1.7;
}

/* Amazon / anime / seedbox promo blocks */
.entry-content .ad-amazon-compact {
    margin: 40px 0;
    padding: 25px;
    border-radius: 12px;
    background-color: #0f171e;
    position: relative;
    overflow: hidden;
    color: #fff;
    font-family: system-ui, -apple-system, sans-serif;
    box-shadow: 0 5px 15px rgba(0,0,0,.2);
}
.ad-header {
    text-align: center;
    margin-bottom: 25px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    padding-bottom: 15px;
}
.entry-content .ad-amazon-compact h3 {
    margin: 0 0 8px !important;
    display: block;
    text-transform: uppercase;
    font-size: 30px !important;
    font-weight: 900 !important;
    line-height: 1.1;
}
.entry-content .ad-amazon-compact p.ad-subtitle {
    color: #ccc !important;
    font-size: 16px !important;
    margin: 0 !important;
}
.ad-body-grid {
    display: grid !important;
    grid-template-columns: 45% 1fr !important;
    gap: 25px !important;
    align-items: center !important;
    margin-bottom: 25px;
    width: 100% !important;
}
.ad-img-item img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 8px !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.1);
    box-shadow: 0 5px 15px rgba(0,0,0,.4);
}
.entry-content .ad-amazon-compact ul {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin-left: -15px !important;
}
.entry-content .ad-amazon-compact ul li {
    list-style: none !important;
    margin-bottom: 12px;
    padding-left: 40px !important;
    color: #eee !important;
    font-weight: 500;
    background: none !important;
    border-left: none !important;
}
.entry-content .ad-amazon-compact ul li::before {
    content: "✅ " !important;
    margin-right: 10px;
}
.ad-btn-full {
    display: block;
    width: 100%;
    padding: 16px;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 6px;
    text-decoration: none !important;
    font-size: 1.3rem;
    text-align: center;
    border: none !important;
}
.ad-disclaimer {
    font-size: 13px !important;
    color: #ccc !important;
    text-align: center;
    margin-top: 12px !important;
}
.style-standard { border: 4px solid #ef952c; }
.style-standard h3 { color: #00a8e1 !important; }
.style-standard .ad-btn-full { background-color: #00a8e1; color: #fff !important; }
.style-anime { background-color: #151525; border: 4px solid #e0bbff; }
.style-anime h3 { color: #e0bbff !important; }
.style-anime .ad-btn-full { background: linear-gradient(90deg, #8e44ad 0%, #9b59b6 100%); color: #fff !important; }
.style-seedbox { background-color: #121212; border: 2px solid #fff; }
.style-seedbox h3 { color: #fff !important; }
.style-seedbox .ad-btn-full { background-color: #fff; color: #000 !important; }
.style-seedbox .ad-body-grid { display: block !important; text-align: center !important; }
.style-seedbox .ad-list-item { display: none !important; }

/* NordVPN banner shortcode */
.nvpn-banner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: linear-gradient(135deg,#0a1628 0%,#0d2137 60%,#0a3d62 100%) !important;
    border-radius: 12px !important;
    padding: 28px 32px !important;
    margin: 32px 0 !important;
    gap: 24px !important;
    border: 1px solid #1a4a7a !important;
    box-shadow: 0 8px 32px rgba(0,100,200,.15) !important;
}
.nvpn-left { flex: 1 !important; }
.nvpn-badge {
    display: inline-block !important;
    background: #4ecca3 !important;
    color: #0a1628 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
    letter-spacing: 1px !important;
    margin-bottom: 12px !important;
}
.nvpn-features { list-style: none !important; padding: 0 !important; margin: 0 0 20px !important; }
.nvpn-features li {
    color: #fff !important;
    font-size: 14px !important;
    padding: 4px 0 !important;
    line-height: 1.5 !important;
    background: none !important;
    border: none !important;
}
.nvpn-features li::before { display: none !important; content: none !important; }
.nvpn-banner .nvpn-btn {
    display: inline-block !important;
    background: linear-gradient(135deg,#4ecca3,#2eb89a) !important;
    padding: 14px 28px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    color: #0a1628 !important;
    font-weight: 800 !important;
    font-size: 15px !important;
}
.nvpn-banner .nvpn-btn:hover { color: #fff !important; background: linear-gradient(135deg,#3db892,#27a085) !important; }
.nvpn-right { text-align: center !important; min-width: 140px !important; }
.nvpn-logos { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; justify-content: center !important; margin-bottom: 6px !important; }
.nvpn-logos span { background: rgba(255,255,255,.08) !important; color: #a0c8e8 !important; font-size: 10px !important; padding: 3px 8px !important; border-radius: 4px !important; border: 1px solid rgba(255,255,255,.15) !important; }

@media (max-width: 768px) {
    .ad-body-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
}
@media (max-width: 640px) {
    .faq-card { padding: 12px 12px 14px; }
    .faq-icon { width: 24px; height: 24px; font-size: 14px; }
    .nvpn-banner { flex-direction: column !important; padding: 20px !important; }
    .nvpn-right { display: none !important; }
}

/* ===== Static pages (contact, about, legal...) ===== */
.tdh-page-header {
    margin-top: 26px;
    margin-bottom: 18px;
}
.tdh-page-header__inner {
    border-bottom: 1px solid var(--line);
    padding-bottom: 12px;
    background: transparent !important;
}
.tdh-page-title {
    margin: 0;
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 1.05;
    font-size: clamp(28px, 4vw, 48px);
    color: var(--ink);
}
.tdh-page-content-wrap {
    margin-top: 18px;
    margin-bottom: 40px;
}
.tdh-page-content {
    width: 100%;
    max-width: 100%;
    background: transparent !important;
    border: 0;
    padding: 0;
}
.tdh-page-content,
.tdh-page-content p,
.tdh-page-content li,
.tdh-page-content td,
.tdh-page-content th {
    font-family: 'Lora', serif;
    font-size: 18px;
    line-height: 1.75;
    color: #2b2a26;
}
.tdh-page-content h2,
.tdh-page-content h3 {
    font-family: Oswald, sans-serif;
    text-transform: uppercase;
    line-height: 1.1;
    color: var(--ink);
}
.tdh-page-content h2 {
    font-size: 28px;
    margin: 34px 0 14px;
}
.tdh-page-content h3 {
    font-size: 22px;
    margin: 26px 0 12px;
}
.tdh-page-content a {
    color: #c1502e;
    text-decoration: underline;
    font-weight: 500;
}
.tdh-page-content a:hover {
    color: #8f3a21;
}
.tdh-page-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
}
.tdh-page-content table th,
.tdh-page-content table td {
    border: 1px solid #d9d4ca;
    padding: 10px;
}
.tdh-page-content ul,
.tdh-page-content ol {
    margin: 0 0 18px 22px;
}
@media (max-width: 768px) {
    .tdh-page-content {
        padding: 0;
    }
}
