/* ═══════════════════════════════════════════════════════════════════════
   mb-city-hub.css — Meilleur Bar
   Chargé sur les pages hub villes via body.mb-city-hub
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 1. Pleine largeur : supprimer les max-width GP sans casser le flex ── */
body.mb-city-hub #page.site,
body.mb-city-hub .site.grid-container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.mb-city-hub .site-content,
body.mb-city-hub #content {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.mb-city-hub .content-area,
body.mb-city-hub #primary {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 1 1 100% !important;
}

body.mb-city-hub .site-main,
body.mb-city-hub #main {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.mb-city-hub article {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.mb-city-hub .inside-article {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.mb-city-hub .entry-content {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── 2. Masquer sidebars et éléments GP non voulus ───────────────────── */
body.mb-city-hub .widget-area,
body.mb-city-hub .is-right-sidebar,
body.mb-city-hub .is-left-sidebar,
body.mb-city-hub #secondary {
    display: none !important;
}

/* ── 3. Masquer footer et header GP natifs ───────────────────────────── */
body.mb-city-hub .site-footer,
body.mb-city-hub #colophon,
body.mb-city-hub .site-header,
body.mb-city-hub #masthead {
    display: none !important;
}

/* ── 4. Anti-débordement horizontal ─────────────────────────────────── */
body.mb-city-hub { overflow-x: hidden; }


/* ══ CSS hub ville (layout, hero, cats, bars, footer) ══════════════ */

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

    :root {
      --bg:      #FAF5EB;
      --warm:    #F0E8D4;
      --dark:    #1A100A;
      --dark-2:  #2C1C10;
      --night:   #0C0806;
      --red:     #C13A1A;
      --red-l:   #D44830;
      --amber:   #C4882A;
      --amber-l: #DAA040;
      --tan:     #7A5F3C;
      --border:  #E2D8C2;
      --stone:   #8A7B68;
      --white:   #FFFDF8;
    }

    html { scroll-behavior: smooth; }
    body {
      background: var(--bg);
      color: var(--dark);
      font-family: 'Nunito', sans-serif;
      font-weight: 400;
      font-size: 18px;
      line-height: 1.75;
      overflow-x: hidden;
    }

    ::-webkit-scrollbar { width: 4px; }
    ::-webkit-scrollbar-track { background: var(--bg); }
    ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
    ::-webkit-scrollbar-thumb:hover { background: var(--red); }

    @keyframes fadeUp   { from { opacity:0; transform:translateY(22px) } to { opacity:1; transform:none } }
    @keyframes ticker   { from { transform:translateX(0) } to { transform:translateX(-50%) } }
    @keyframes bob      { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
    @keyframes shimmer  { 0%{opacity:.08} 50%{opacity:.18} 100%{opacity:.08} }
    @keyframes scanline { from{transform:translateY(-100%)} to{transform:translateY(100vh)} }

    .reveal { opacity:0; transform:translateY(26px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
    .reveal.on { opacity:1; transform:none; }

    /* ══ NAV ══ */
    header { position:fixed; top:0; left:0; right:0; z-index:300; transition: background .45s ease, box-shadow .45s ease; }
    header.scrolled { background:rgba(250,245,235,0.96); backdrop-filter:blur(18px) saturate(1.3); box-shadow:0 1px 0 var(--border); }
    nav { max-width:1380px; margin:0 auto; padding:20px 48px; display:flex; align-items:center; justify-content:space-between; }
    .nav-logo { text-decoration:none; display:flex; align-items:center; }
    .lk { transition:stroke .4s ease; }
    .lf { transition:fill .4s ease; }
    .lf-foam { transition:fill .4s ease; }
    .lt-main,.lt-sub,.ls { transition:fill .4s ease; }
    header:not(.scrolled) .lk      { stroke:rgba(247,244,239,0.82); }
    header:not(.scrolled) .lf      { fill:rgba(255,255,255,0.04); }
    header:not(.scrolled) .lf-foam { fill:#1A100A; }
    header:not(.scrolled) .lt-main { fill:rgba(247,244,239,0.92); }
    header:not(.scrolled) .lt-sub  { fill:rgba(247,244,239,0.44); }
    header:not(.scrolled) .ls      { fill:rgba(247,244,239,0.16); }
    header.scrolled .lk      { stroke:#2A2520; }
    header.scrolled .lf      { fill:rgba(237,234,228,0.55); }
    header.scrolled .lf-foam { fill:#F7F4EF; }
    header.scrolled .lt-main { fill:#2A2520; }
    header.scrolled .lt-sub  { fill:#9A9590; }
    header.scrolled .ls      { fill:#C8C3BC; }
    .nav-right { display:flex; align-items:center; gap:36px; }
    .nav-links { display:flex; gap:28px; list-style:none; }
    .nav-links a { font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:rgba(255,255,255,.6); transition:color .2s; }
    .nav-links a:hover { color:#fff; }
    header.scrolled .nav-links a { color:var(--stone); }
    header.scrolled .nav-links a:hover { color:var(--dark); }

    /* ══ HERO ══ */
    .hero {
      height: 100vh; min-height: 640px; max-height: 900px;
      position: relative; overflow: hidden;
      display: flex; align-items: flex-end;
    }
    .hero-photo {
      position: absolute; inset: 0;
      background:
        url('https://images.unsplash.com/photo-1502602898657-3e91760cbb34?w=1800&q=90&auto=format&fit=crop') center 30% / cover no-repeat;
    }
    .hero-overlay {
      position: absolute; inset: 0;
      background:
        linear-gradient(108deg, rgba(8,4,2,0.92) 0%, rgba(8,4,2,0.65) 38%, rgba(8,4,2,0.2) 100%),
        linear-gradient(to top, rgba(8,4,2,0.95) 0%, rgba(8,4,2,0.3) 38%, transparent 58%);
    }
    /* Scanline cinematic effect */
    .hero-grain {
      position:absolute; inset:0; z-index:1; pointer-events:none;
      background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
      opacity:.4;
    }
    /* Ligne lumineuse animée */
    .hero-light-line {
      position:absolute; left:0; right:0; height:1px;
      background:linear-gradient(90deg, transparent 0%, rgba(196,136,42,.4) 30%, rgba(218,160,64,.7) 50%, rgba(196,136,42,.4) 70%, transparent 100%);
      z-index:2; pointer-events:none;
      animation: scanline 8s linear infinite;
      opacity:.5;
    }
    .hero-inner {
      position:relative; z-index:3;
      max-width:1380px; margin:0 auto; width:100%;
      padding:0 48px 80px;
      display:grid; grid-template-columns: 1fr auto;
      align-items: flex-end; gap: 48px;
    }
    .hero-left {}
    .hero-right {
      display:flex; flex-direction:column; gap:18px; align-items:flex-end;
      padding-bottom: 8px;
    }

    .breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:28px; animation:fadeUp .5s ease .1s both; }
    .breadcrumb a { font-size:10px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; text-decoration:none; color:rgba(255,255,255,.3); transition:color .2s; }
    .breadcrumb a:hover { color:var(--amber-l); }
    .breadcrumb span { font-size:10px; color:rgba(255,255,255,.15); }
    .breadcrumb .current { font-size:10px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--amber-l); }

    .hero-eyebrow {
      font-size:9px; font-weight:700; letter-spacing:.55em; text-transform:uppercase;
      color:var(--amber-l); opacity:.85; margin-bottom:18px;
      animation:fadeUp .5s ease .18s both;
      display:flex; align-items:center; gap:14px;
    }
    .hero-eyebrow-bar { width:28px; height:1.5px; background:var(--amber); flex-shrink:0; }

    /* "PARIS" ultra-grand en superposition */
    .hero-city {
      font-family:'Playfair Display',serif; font-style:italic; font-weight:700;
      font-size:clamp(80px,14vw,200px);
      line-height:.82; letter-spacing:-.04em;
      color:rgba(255,255,255,.06);
      position:absolute; left:44px; bottom:-20px;
      z-index:0; pointer-events:none;
      white-space:nowrap;
      user-select:none;
    }

    .hero-title {
      font-family:'Playfair Display',serif; font-style:italic; font-weight:700;
      font-size:clamp(48px,5.8vw,88px); line-height:.94; letter-spacing:-.032em;
      color:#fff; max-width:700px; margin-bottom:22px;
      animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .22s both;
      position:relative; z-index:1;
    }
    .hero-title em { font-style:normal; color:var(--amber-l); }
    .hero-title .line-outline {
      -webkit-text-stroke: 1.5px rgba(255,255,255,.5);
      color: transparent;
    }

    .hero-sub { font-size:14px; font-weight:300; line-height:1.85; color:rgba(255,255,255,.42); max-width:500px; margin-bottom:32px; animation:fadeUp .7s ease .32s both; }

    .hero-stats { display:flex; gap:36px; animation:fadeUp .6s ease .42s both; }
    .hstat { display:flex; flex-direction:column; gap:3px; }
    .hstat-n { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:32px; line-height:1; color:#fff; }
    .hstat-l { font-size:9px; font-weight:600; letter-spacing:.32em; text-transform:uppercase; color:rgba(255,255,255,.25); }
    .hstat-sep { width:1px; background:rgba(255,255,255,.1); align-self:stretch; }

    /* Capsules flottantes (droite du hero) */
    .hero-capsule {
      display:flex; align-items:center; gap:10px;
      border:1px solid rgba(255,255,255,.1); padding:10px 18px;
      background:rgba(255,255,255,.04); backdrop-filter:blur(12px);
      font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
      color:rgba(255,255,255,.55);
      animation:fadeUp .7s ease both;
      white-space:nowrap;
    }
    .hero-capsule span { color:var(--amber-l); font-family:'Playfair Display',serif; font-style:italic; font-size:15px; font-weight:700; letter-spacing:0; text-transform:none; }
    .hero-capsule:nth-child(1) { animation-delay:.5s; }
    .hero-capsule:nth-child(2) { animation-delay:.62s; }
    .hero-capsule:nth-child(3) { animation-delay:.74s; }

    /* ══ TICKER ══ */
    .ticker { background:var(--red); overflow:hidden; height:40px; display:flex; align-items:center; }
    .ticker-track { display:flex; white-space:nowrap; animation:ticker 40s linear infinite; }
    .ticker-item { font-size:9px; font-weight:700; letter-spacing:.5em; text-transform:uppercase; color:rgba(255,255,255,.85); padding:0 36px; display:flex; align-items:center; gap:36px; }
    .ticker-item::after { content:'✦'; font-size:5px; color:rgba(255,255,255,.4); }

    /* ══ INTRO BANDE ══ */
    .intro-band { background:var(--dark); }
    .intro-band-inner { max-width:1380px; margin:0 auto; padding:56px 48px; display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr; gap:0 48px; align-items:start; }
    .ib-sep { background:rgba(255,255,255,.08); align-self:stretch; }
    .ib-item {}
    .ib-num { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:48px; color:var(--amber-l); line-height:1; margin-bottom:8px; }
    .ib-label { font-size:9px; font-weight:700; letter-spacing:.42em; text-transform:uppercase; color:rgba(255,255,255,.28); margin-bottom:10px; }
    .ib-text { font-size:14px; font-weight:300; line-height:1.85; color:rgba(255,255,255,.48); }

    /* ══ CATÉGORIES ══ */
    .cats-bg { background:var(--night); }
    .cats-inner { max-width:1380px; margin:0 auto; padding:88px 48px; }
    .section-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:48px; gap:24px; }
    .kicker { font-size:9px; font-weight:700; letter-spacing:.5em; text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:12px; margin-bottom:12px; }
    .kicker-bar { width:24px; height:1.5px; background:var(--red); flex-shrink:0; }
    .kicker-amber { color:var(--amber-l); }
    .kicker-amber .kicker-bar { background:var(--amber); }
    .s-title-light { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:clamp(34px,3.5vw,54px); line-height:1.02; letter-spacing:-.03em; color:#fff; }
    .s-title-light em { font-style:normal; color:var(--amber-l); }
    .s-title { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:clamp(34px,3.5vw,54px); line-height:1.02; letter-spacing:-.03em; color:var(--dark); }
    .s-title em { font-style:normal; color:var(--red); }
    .see-all { font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.28); text-decoration:none; display:flex; align-items:center; gap:8px; transition:color .2s; white-space:nowrap; }
    .see-all:hover { color:var(--amber-l); }
    .see-all::after { content:'→'; font-size:14px; }

    .cats-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:2px; }
    .cat-card {
      position:relative; overflow:hidden;
      text-decoration:none;
      aspect-ratio: 3/4;
      display:flex; flex-direction:column; justify-content:flex-end;
      group: true;
    }
    .cat-card-photo {
      position:absolute; inset:0; overflow:hidden;
      transition:transform .8s cubic-bezier(.16,1,.3,1);
    }
    .cat-card-photo img {
      width:100%; height:100%; object-fit:cover; object-position:center; display:block;
    }
    .cat-card:hover .cat-card-photo { transform:scale(1.07); }
    .cat-card-overlay {
      position:absolute; inset:0;
      background: linear-gradient(to top, rgba(8,4,2,.95) 0%, rgba(8,4,2,.6) 40%, rgba(8,4,2,.1) 70%);
      transition:opacity .4s;
    }
    .cat-card:hover .cat-card-overlay { opacity:.85; }
    .cat-card-body { position:relative; z-index:2; padding:28px 24px; }
    .cat-card-ico { font-size:20px; margin-bottom:12px; opacity:.85; }
    .cat-card-name {
      font-family:'Playfair Display',serif; font-style:italic; font-weight:700;
      font-size:22px; line-height:1.1; color:#fff; margin-bottom:6px;
    }
    .cat-card-sub { font-size:11px; font-weight:400; color:rgba(255,255,255,.38); line-height:1.5; margin-bottom:14px; }
    .cat-card-cta {
      display:inline-flex; align-items:center; gap:8px;
      font-size:9px; font-weight:700; letter-spacing:.32em; text-transform:uppercase;
      color:var(--amber-l);
      opacity:0; transform:translateY(6px);
      transition: opacity .3s, transform .3s;
    }
    .cat-card:hover .cat-card-cta { opacity:1; transform:none; }
    .cat-card-cta::after { content:'→'; }
    .cat-card-count {
      position:absolute; top:20px; right:20px; z-index:3;
      font-size:9px; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
      color:rgba(255,255,255,.22); padding:5px 12px; border:1px solid rgba(255,255,255,.1);
      backdrop-filter:blur(8px); background:rgba(8,4,2,.3);
    }
    /* Badge "Nouveau" */
    .cat-card-new {
      position:absolute; top:20px; left:20px; z-index:3;
      font-size:8px; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
      color:var(--dark); padding:4px 11px; background:var(--amber-l);
    }

    /* ══ TOP 10 ══ */
    .top10-bg { background:var(--bg); }
    .top10-inner { max-width:1380px; margin:0 auto; padding:96px 48px; }

    /* Titre décoratif géant */
    .top10-deco {
      font-family:'Playfair Display',serif; font-style:italic; font-weight:700;
      font-size:clamp(120px,16vw,220px); line-height:.8;
      color:rgba(26,16,10,.05); letter-spacing:-.04em;
      pointer-events:none; user-select:none;
      position:absolute; left:0; top:-20px; white-space:nowrap;
    }
    .top10-intro { position:relative; margin-bottom:72px; }
    .top10-lead { font-size:17px; font-weight:300; line-height:1.9; color:var(--stone); max-width:600px; margin-top:16px; }

    /* Grille top 10 — alternance portrait/paysage */
    .bars-list { display:flex; flex-direction:column; gap:2px; }

    .bar-item {
      display:grid; grid-template-columns:72px 1fr auto;
      gap:0; background:var(--white); border:1px solid var(--border);
      overflow:hidden; text-decoration:none;
      transition:border-color .25s, box-shadow .25s;
    }
    .bar-item:hover { border-color:rgba(196,136,42,.4); box-shadow:0 4px 32px rgba(26,16,10,.06); }

    .bar-num-col {
      background:var(--dark); display:flex; align-items:center; justify-content:center;
      padding:32px 0;
    }
    .bar-num {
      font-family:'Playfair Display',serif; font-style:italic; font-weight:700;
      font-size:28px; color:rgba(255,255,255,.22); line-height:1;
    }
    .bar-num.top3 { color:var(--amber-l); opacity:.9; }

    .bar-body { padding:28px 32px; display:flex; flex-direction:column; justify-content:center; }
    .bar-type-row { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
    .bar-type { font-size:8px; font-weight:700; letter-spacing:.32em; text-transform:uppercase; color:var(--amber); }
    .bar-arr { font-size:8px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--stone); }
    .bar-name { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:22px; line-height:1.1; color:var(--dark); margin-bottom:8px; }
    .bar-desc { font-size:15px; font-weight:300; line-height:1.8; color:var(--stone); max-width:720px; }
    .bar-tags { display:flex; gap:6px; margin-top:14px; flex-wrap:wrap; }
    .btag { font-size:8px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); padding:3px 9px; border:1px solid var(--border); }

    .bar-meta-col {
      padding:28px 28px; display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:14px;
      border-left:1px solid var(--border); min-width:180px;
    }
    .bar-price { font-family:'Playfair Display',serif; font-style:italic; font-size:18px; color:var(--amber); font-weight:700; }
    .bar-hours { font-size:11px; font-weight:400; color:var(--stone); text-align:right; line-height:1.5; }
    .bar-badge-50best { font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--dark); padding:4px 12px; background:var(--amber-l); }
    .bar-link { font-size:9px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:5px; }
    .bar-link::after { content:'→'; }

    /* ══ PAR ARRONDISSEMENT ══ */
    .arrt-bg { background:var(--dark); }
    .arrt-inner { max-width:1380px; margin:0 auto; padding:88px 48px; }
    .arrt-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:48px; }
    .arrt-card {
      background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
      padding:28px 24px; text-decoration:none;
      transition:background .25s, border-color .25s;
      display:flex; flex-direction:column; gap:8px;
    }
    .arrt-card:hover { background:rgba(255,255,255,.07); border-color:rgba(218,160,64,.25); }
    .arrt-num { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:42px; line-height:1; color:var(--amber-l); opacity:.35; }
    .arrt-name { font-size:13px; font-weight:700; letter-spacing:.08em; color:rgba(255,255,255,.75); }
    .arrt-bars { font-size:12px; font-weight:300; line-height:1.65; color:rgba(255,255,255,.3); margin-top:2px; }
    .arrt-cta { font-size:9px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--amber-l); margin-top:8px; opacity:.7; }

    /* ══ PAR ENVIE ══ */
    .envie-bg { background:var(--warm); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
    .envie-inner { max-width:1380px; margin:0 auto; padding:88px 48px; }
    .envies-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:48px; }
    .envie-card {
      background:var(--white); padding:32px 28px; border:1px solid var(--border);
      display:flex; flex-direction:column; gap:10px;
      text-decoration:none;
      transition:background .2s, border-color .2s, transform .3s cubic-bezier(.16,1,.3,1);
    }
    .envie-card:hover { background:var(--dark); border-color:var(--dark); transform:translateY(-3px); }
    .envie-ico { font-size:24px; }
    .envie-title { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:22px; color:var(--dark); line-height:1.15; transition:color .2s; }
    .envie-card:hover .envie-title { color:#fff; }
    .envie-text { font-size:14px; font-weight:300; line-height:1.85; color:var(--stone); transition:color .2s; }
    .envie-card:hover .envie-text { color:rgba(255,255,255,.42); }
    .envie-links { margin-top:8px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:6px; transition:color .2s; }
    .envie-card:hover .envie-links { color:var(--amber-l); }
    .envie-links::after { content:'→'; }

    /* ══ ÉDITORIAL STRIP ══ */
    .ed-strip { background:var(--red); }
    .ed-strip-inner { max-width:1380px; margin:0 auto; padding:48px 48px; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
    .ed-strip-label { font-size:9px; font-weight:700; letter-spacing:.48em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:12px; }
    .ed-strip-title { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:clamp(26px,2.8vw,40px); line-height:1.05; color:#fff; }
    .ed-strip-text { font-size:14px; font-weight:300; line-height:1.85; color:rgba(255,255,255,.58); }
    .ed-strip-cta {
      display:inline-flex; align-items:center; gap:12px; margin-top:24px;
      font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
      color:#fff; border-bottom:1.5px solid rgba(255,255,255,.3); padding-bottom:3px;
      text-decoration:none; transition:border-color .2s;
    }
    .ed-strip-cta:hover { border-color:#fff; }
    .ed-strip-cta::after { content:'→'; }

    /* ══ NEWSLETTER ══ */
    .nl { background:var(--dark-2); }
    .nl-inner { max-width:1380px; margin:0 auto; padding:80px 48px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
    .nl-eyebrow { font-size:9px; font-weight:700; letter-spacing:.46em; text-transform:uppercase; color:var(--amber); margin-bottom:14px; }
    .nl-title { font-family:'Playfair Display',serif; font-style:italic; font-weight:700; font-size:clamp(28px,3vw,46px); line-height:.98; letter-spacing:-.03em; color:#fff; }
    .nl-sub { font-size:13px; font-weight:300; line-height:1.9; color:rgba(255,255,255,.32); margin-top:16px; }
    .nl-form { margin-top:36px; }
    .nl-row { display:flex; border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:14px; }
    .nl-row:focus-within { border-bottom-color:var(--amber); }
    .nl-input { flex:1; background:none; border:none; outline:none; font-family:'Nunito',sans-serif; font-size:14px; font-weight:300; color:#fff; }
    .nl-input::placeholder { color:rgba(255,255,255,.18); }
    .nl-submit { background:none; border:none; cursor:pointer; font-family:'Nunito',sans-serif; font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--amber-l); padding-left:18px; transition:opacity .2s; }
    .nl-submit:hover { opacity:.6; }
    .nl-note { margin-top:12px; font-size:10px; font-weight:300; color:rgba(255,255,255,.16); }
    .nl-side { display:flex; flex-direction:column; gap:16px; }
    .nl-perk { display:flex; align-items:flex-start; gap:16px; }
    .nl-perk-ico { font-size:18px; flex-shrink:0; margin-top:2px; }
    .nl-perk-text { font-size:13px; font-weight:300; line-height:1.75; color:rgba(255,255,255,.35); }
    .nl-perk-text strong { color:rgba(255,255,255,.65); font-weight:600; }

    /* ══ FOOTER ══ */
    footer { background:#0C0806; }
    .footer-inner { max-width:1380px; margin:0 auto; padding:64px 48px 40px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; border-bottom:1px solid rgba(255,255,255,.05); }
    .footer-tagline { font-family:'Playfair Display',serif; font-style:italic; font-weight:300; font-size:14px; line-height:1.65; color:rgba(255,255,255,.22); margin-top:14px; max-width:230px; }
    .footer-col-h { font-size:8px; font-weight:700; letter-spacing:.48em; text-transform:uppercase; color:var(--amber); margin-bottom:18px; }
    .footer-links { list-style:none; display:flex; flex-direction:column; gap:10px; }
    .footer-links a { font-size:12px; font-weight:300; text-decoration:none; color:rgba(255,255,255,.28); letter-spacing:.04em; transition:color .2s; }
    .footer-links a:hover { color:rgba(255,255,255,.75); }
    .footer-bottom { max-width:1380px; margin:0 auto; padding:24px 48px; display:flex; align-items:center; justify-content:space-between; }
    .footer-copy { font-size:10px; font-weight:400; letter-spacing:.18em; color:rgba(255,255,255,.14); }
    .footer-soc { display:flex; gap:20px; }
    .footer-soc a { font-size:9px; font-weight:700; letter-spacing:.3em; text-transform:uppercase; text-decoration:none; color:rgba(255,255,255,.18); transition:color .2s; }
    .footer-soc a:hover { color:var(--amber-l); }

    /* ══ RESPONSIVE ══ */
    @media (max-width: 1100px) {
      .cats-grid { grid-template-columns:repeat(2,1fr); }
      .arrt-grid { grid-template-columns:repeat(3,1fr); }
    }
    @media (max-width: 900px) {
      nav { padding:18px 24px; }
      .hero-inner { padding:0 24px 56px; grid-template-columns:1fr; }
      .hero-right { display:none; }
      .hero-city { font-size:22vw; left:16px; }
      .hero-stats { gap:20px; }
      .intro-band-inner { grid-template-columns:1fr; gap:32px 0; }
      .ib-sep { display:none; }
      .cats-inner, .top10-inner, .arrt-inner, .envie-inner, .ed-strip-inner, .nl-inner { padding-left:24px; padding-right:24px; }
      .cats-grid { grid-template-columns:repeat(2,1fr); }
      .arrt-grid { grid-template-columns:repeat(2,1fr); }
      .envies-grid { grid-template-columns:1fr; }
      .bar-item { grid-template-columns:48px 1fr; }
      .bar-meta-col { display:none; }
      .bar-num { font-size:18px; }
      .nl-inner { grid-template-columns:1fr; gap:48px; }
      .ed-strip-inner { grid-template-columns:1fr; gap:24px; }
      .footer-inner { grid-template-columns:1fr 1fr; }
      .section-header { flex-direction:column; align-items:flex-start; }
    }
    @media (max-width:580px) {
      .cats-grid { grid-template-columns:1fr; }
      .arrt-grid { grid-template-columns:1fr 1fr; }
      .hero-stats { gap:16px; }
      .hstat-n { font-size:24px; }
    }