/* ════════════════════════════════════════════════════════════
   Marseille Immobilier — Feuille de styles commune
   Extraite à l'identique du <style> de la HOME (index.html).
   Aucune valeur modifiée : reset, variables, typographies,
   navigation, menu overlay, popup Honoraires, footer, cookies,
   ainsi que les sections Hero / Positionnement / Contact,
   conservées ici pour garantir une fidélité de rendu absolue.
   ════════════════════════════════════════════════════════════ */

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

    :root {
      --blue: #1B3BA1;
      --blue-dark: #0f2470;
      --blue-mid: #1e45b8;
      --white: #ffffff;
      --off-white: #f8f9fd;
      --grey: #8a94b2;
      --light-grey: #e4e8f2;
      --text: #1a2340;
      --nav-h: 64px;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'Montserrat', sans-serif;
      background: var(--white);
      color: var(--text);
      overflow-x: hidden;
      width: 100%;
    }

    img { max-width: 100%; display: block; }

    a:focus-visible,
    button:focus-visible {
      outline: 2px solid var(--blue);
      outline-offset: 3px;
    }

    /* ════════════════════════════════════════════════════════════
       MOBILE-FIRST BASE (< 768px)
       ════════════════════════════════════════════════════════════ */

    /* ─── NAV ────────────────────────────────────── */
    .nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 8px 16px;
      min-height: var(--nav-h);
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(228,232,242,0.6);
      transform: translateY(0);
      transition: transform 0.4s ease;
    }
    .nav.hidden { transform: translateY(-100%); }

    .nav-left { display: flex; align-items: center; gap: 16px; min-width: 0; }

    /* Liens texte du header masqués sur mobile/tablette : seul le menu
       burger porte la navigation complète (cf. overlay) */
    .nav-link { display: none; }

    .nav-contact {
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--blue);
      text-decoration: none;
      padding: 12px 4px;
      transition: opacity 0.2s;
      white-space: nowrap;
    }
    .nav-contact:hover { opacity: 0.6; }

    .nav-logo { display: flex; align-items: center; justify-content: center; }
    .nav-logo img { height: clamp(30px, 10vw, 46px); width: auto; }

    .nav-right { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }

    /* Bouton burger : zone tactile ≥ 44×44 sans changer le rendu visuel */
    .nav-menu-btn {
      background: none;
      border: none;
      cursor: pointer;
      width: 44px;
      height: 44px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      padding-left: 13px;
      gap: 3px;
      flex-shrink: 0;
    }
    .nav-menu-btn span {
      display: block;
      width: 18px;
      height: 1px;
      background: var(--text);
      transition: opacity 0.2s;
    }
    .nav-menu-btn span:nth-child(3) { width: 9px; }
    .nav-menu-btn:hover span { opacity: 0.4; }

    /* ─── MENU OVERLAY ──────────────────────────── */
    .menu-overlay {
      position: fixed;
      top: 0; left: 0; bottom: 0;
      width: 100%;
      z-index: 300;
      background: rgba(255,255,255,0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      transform: translateX(-100%);
      transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      pointer-events: none;
      border-right: 1px solid rgba(228,232,242,0.5);
    }
    .menu-overlay.open { transform: translateX(0); pointer-events: all; }

    .menu-close {
      position: absolute;
      top: 16px; right: 16px;
      width: 44px; height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: none;
      border: none;
      color: rgba(27,59,161,0.5);
      font-size: 16px;
      cursor: pointer;
      transition: color 0.2s;
      font-family: 'Montserrat', sans-serif;
      z-index: 10;
    }
    .menu-close:hover { color: var(--blue); }

    .menu-inner {
      display: flex;
      flex-direction: column;
      min-height: 100%;
      padding: 88px 24px 32px;
    }

    .menu-logo { margin-bottom: 32px; }
    .menu-logo img { height: 32px; }

    .menu-grid { display: flex; flex-direction: column; gap: 20px; }

    a.menu-item-title, span.menu-item-title {
      display: inline-block;
      font-family: 'Montserrat', sans-serif;
      font-size: 15px;
      font-weight: 400;
      color: var(--blue);
      text-decoration: none;
      line-height: 1.4;
      letter-spacing: 0.08em;
      padding: 6px 0;
      transition: color 0.2s;
    }
    a.menu-item-title:hover { color: var(--blue-dark); }

    .menu-item-sub {
      display: inline-block;
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 0.06em;
      color: rgba(27,59,161,0.6);
      text-decoration: none;
      transition: color 0.2s;
      padding: 6px 0 6px 12px;
    }
    .menu-item-sub:hover { color: var(--blue); }

    .menu-footer {
      border-top: 1px solid rgba(27,59,161,0.2);
      padding-top: 20px;
      margin-top: auto;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .menu-follow {
      display: flex;
      align-items: center;
      gap: 16px;
    }
    .menu-follow-label {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(27,59,161,0.7);
    }
    .menu-socials { display: flex; gap: 8px; align-items: center; }
    .menu-social {
      color: rgba(27,59,161,0.45);
      transition: color 0.2s;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 32px; height: 32px;
    }
    a.menu-social:hover { color: var(--blue); }
    .menu-social svg { width: 16px; height: 16px; }

    .menu-footer-sep {
      height: 1px;
      background: rgba(27,59,161,0.15);
    }

    .menu-footer-contact { display: flex; flex-direction: column; gap: 6px; }
    .menu-footer-contact p {
      font-size: 12px;
      letter-spacing: 0.06em;
      color: rgba(27,59,161,0.75);
      font-weight: 400;
      line-height: 1.6;
    }

    .menu-footer-legal {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 6px;
      margin-top: 12px;
    }
    .menu-footer-legal a {
      font-size: 10px;
      letter-spacing: 0.06em;
      color: rgba(27,59,161,0.4);
      text-decoration: none;
      padding: 4px 0;
      transition: color 0.2s;
    }
    .menu-footer-legal a:hover { color: var(--blue); }

    /* ─── POPUP HONORAIRES ───────────────────────── */
    .popup-backdrop {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.5);
      z-index: 400;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .popup-backdrop.open { opacity: 1; pointer-events: all; }

    .popup {
      position: fixed;
      top: 50%; left: 50%;
      transform: translate(-50%, -48%) scale(0.97);
      z-index: 401;
      width: 92%;
      max-width: 620px;
      max-height: 88vh;
      max-height: 88dvh;
      overflow-y: auto;
      background: var(--white);
      border-radius: 4px;
      box-shadow: 0 24px 80px rgba(0,0,0,0.18);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    .popup.open {
      opacity: 1;
      pointer-events: all;
      transform: translate(-50%, -50%) scale(1);
    }

    .popup-close {
      position: absolute;
      top: 12px; right: 12px;
      width: 40px; height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: none;
      border: none;
      font-size: 14px;
      color: rgba(0,0,0,0.3);
      cursor: pointer;
      transition: color 0.2s;
      font-family: 'Montserrat', sans-serif;
    }
    .popup-close:hover { color: var(--text); }

    .popup-inner { padding: 40px 24px 28px; }

    .popup-eyebrow {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--grey);
      margin-bottom: 12px;
    }

    .popup-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(28px, 7vw, 38px);
      font-weight: 300;
      color: var(--text);
      line-height: 1.1;
      margin-bottom: 24px;
    }
    .popup-title em { font-style: italic; color: var(--blue); }

    .popup-sep {
      width: 36px; height: 1px;
      background: var(--blue);
      margin-bottom: 28px;
      opacity: 0.4;
    }

    .popup-row {
      display: flex;
      flex-direction: column;
      gap: 14px;
      margin-bottom: 24px;
    }

    .popup-item {
      flex: 1;
      background: var(--off-white);
      border-radius: 3px;
      padding: 18px 18px 16px;
    }

    .popup-item-label {
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--grey);
      margin-bottom: 10px;
      line-height: 1.5;
    }

    .popup-item-value {
      font-family: 'Cormorant Garamond', serif;
      font-size: 38px;
      font-weight: 300;
      color: var(--blue);
      line-height: 1;
      margin-bottom: 6px;
    }
    .popup-item-value span {
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 0.1em;
      margin-left: 4px;
      opacity: 0.6;
    }

    .popup-item-note {
      font-size: 10px;
      color: var(--grey);
      font-weight: 300;
    }

    .popup-section-label {
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--grey);
      margin-bottom: 18px;
    }

    .popup-extras {
      display: flex;
      flex-direction: column;
      border: 1px solid var(--light-grey);
      border-radius: 3px;
      margin-bottom: 24px;
      overflow: hidden;
    }
    .popup-extra-item {
      flex: 1;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 14px 18px;
      background: var(--off-white);
    }
    .popup-extra-item:first-child {
      border-right: none;
      border-bottom: 1px solid var(--light-grey);
    }
    .popup-extra-label {
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--grey);
    }
    .popup-extra-value {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-weight: 400;
      color: var(--blue);
      letter-spacing: 0.04em;
    }

    .popup-legal {
      font-size: 10px;
      font-weight: 300;
      color: var(--grey);
      line-height: 1.8;
      border-top: 1px solid var(--light-grey);
      padding-top: 18px;
    }

    /* ─── HERO ───────────────────────────────────── */
    .hero {
      position: relative;
      width: 100%;
      height: 100vh;      /* repli navigateurs anciens */
      height: 100svh;     /* évite le "saut" lié à la barre d'adresse mobile */
      min-height: 560px;
      overflow: hidden;
      display: flex;
      align-items: flex-end;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 30% center;
      filter: saturate(1.3) hue-rotate(-10deg);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.15) 0%,
        rgba(0,0,0,0.05) 40%,
        rgba(0,0,0,0.55) 100%
      );
    }

    .hero-photo-caption {
      position: absolute;
      bottom: 14px;
      right: 16px;
      font-size: 9px;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.45);
      font-family: 'Montserrat', sans-serif;
      font-weight: 300;
      z-index: 3;
    }

    .hero-left {
      position: relative;
      z-index: 2;
      padding: 0 20px 48px;
      width: 100%;
    }

    /* ─── HEADLINE ──────────────────────────────── */
    .headline {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(30px, 8.5vw, 44px);
      font-weight: 300;
      line-height: 1.15;
      color: var(--white);
      letter-spacing: -0.01em;
      opacity: 0;
      animation: fadeUp 0.9s ease forwards 0.5s;
      text-shadow: 0 2px 20px rgba(0,0,0,0.2);
    }

    .headline em { font-style: italic; color: rgba(255,255,255,0.85); }

    .tagline {
      margin-top: 10px;
      font-family: 'EB Garamond', serif;
      font-size: clamp(15px, 4.4vw, 18px);
      font-style: italic;
      color: rgba(255,255,255,0.75);
      letter-spacing: 0.03em;
      opacity: 0;
      animation: fadeUp 0.9s ease forwards 0.65s;
    }

    .sep {
      width: 36px; height: 1px;
      background: rgba(255,255,255,0.5);
      margin: 24px 0;
      opacity: 0;
      animation: fadeUp 0.9s ease forwards 0.75s;
    }

    .signature {
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.06em;
      color: rgba(255,255,255,0.8);
      opacity: 0;
      animation: fadeUp 0.9s ease forwards 0.85s;
    }

    .signature span { color: rgba(255,255,255,0.5); font-weight: 300; }

    .hero-cta {
      margin-top: 32px;
      opacity: 0;
      animation: fadeUp 0.9s ease forwards 1s;
    }

    .hero-cta a {
      font-family: 'EB Garamond', serif;
      font-style: italic;
      font-size: 13px;
      letter-spacing: 0.03em;
      color: rgba(255,255,255,0.7);
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border-bottom: 1px solid rgba(255,255,255,0.28);
      padding-bottom: 4px;
      transition: color 0.25s, border-color 0.25s;
    }

    .hero-cta a::after { content: '→'; transition: transform 0.2s; font-style: normal; }
    .hero-cta a:hover { color: var(--white); border-color: rgba(255,255,255,0.7); }
    .hero-cta a:hover::after { transform: translateX(4px); }

    .cta-secondary {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--grey);
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 0;
      transition: color 0.2s;
    }

    .cta-secondary:hover { color: var(--blue); }
    .cta-secondary::after { content: '→'; transition: transform 0.2s; }
    .cta-secondary:hover::after { transform: translateX(4px); }

    /* ─── POSITIONNEMENT ──────────────────────────── */
    .positioning-section {
      padding: clamp(64px, 16vw, 160px) 20px;
      background: var(--white);
    }

    .positioning-inner {
      max-width: 620px;
      margin: 0 auto;
      text-align: center;
    }

    /* Titre éditorial — Notre approche (Positionnement) */
    .positioning-label {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(28px, 7vw, 56px);
      font-weight: 300;
      line-height: 1.2;
      letter-spacing: 0;
      text-transform: none;
      color: var(--text);
      margin-bottom: 20px;
    }

    .positioning-label em {
      font-style: italic;
      color: var(--blue);
    }

    .positioning-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(26px, 6.5vw, 42px);
      font-weight: 300;
      line-height: 1.3;
      color: var(--text);
      margin-bottom: 24px;
    }

    .positioning-title em { font-style: italic; color: var(--blue); }

    .positioning-text {
      font-family: 'EB Garamond', serif;
      font-size: 18px;
      font-weight: 400;
      line-height: 1.7;
      color: #4B515C;
      margin-bottom: 32px;
    }

    /* ─── CONTACT ─────────────────────────────────── */
    .contact-section {
      position: relative;
      background: linear-gradient(145deg, #f0f3fb 0%, #e8edf8 100%);
      padding: clamp(64px, 16vw, 120px) 20px;
    }

    .contact-section::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; height: 1px;
      background: linear-gradient(to right, transparent, var(--light-grey) 30%, var(--light-grey) 70%, transparent);
    }

    .contact-cta {
      max-width: 700px;
      margin: 0 auto;
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }

    .contact-cta h2 {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(28px, 7vw, 56px);
      font-weight: 300;
      line-height: 1.25;
      color: var(--text);
    }

    .contact-cta h2 em { font-style: italic; color: var(--blue); }
    .contact-cta h2 a { text-decoration: none; }
    .contact-cta h2 a em {
      border-bottom: 1px solid rgba(27,59,161,0.35);
      padding-bottom: 2px;
      transition: color 0.2s, border-color 0.2s;
    }
    .contact-cta h2 a:hover em { color: var(--blue-dark); border-color: var(--blue-dark); }

    .contact-cta p:not(.contact-label) {
      font-family: 'EB Garamond', serif;
      font-size: 18px;
      font-weight: 400;
      line-height: 1.7;
      color: #555B66;
    }


    /* ─── FOOTER ─────────────────────────────────── */
    footer {
      background: var(--blue-dark);
      padding: 40px 20px 28px;
    }

    .footer-inner { max-width: 100%; margin: 0; }

    .footer-row {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    .footer-brand {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-wrap: wrap;
    }

    .footer-logo img {
      height: 20px;
      width: auto;
      filter: brightness(0) invert(1) opacity(0.85);
    }

    .footer-tagline {
      font-family: 'EB Garamond', serif;
      font-style: italic;
      font-size: 12px;
      color: rgba(255,255,255,0.55);
    }

    .footer-stats-inline {
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.55);
    }

    /* Séparateur discret — même esprit que .contact-section::before */
    .footer-sep {
      height: 1px;
      margin: 28px 0;
      background: linear-gradient(to right, transparent, rgba(255,255,255,0.14) 20%, rgba(255,255,255,0.14) 80%, transparent);
    }

    .footer-bottom {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .footer-copy {
      font-size: 10px;
      color: rgba(255,255,255,0.35);
      letter-spacing: 0.05em;
    }

    /* Bouton Cookies — simple lien discret, aucun encadré */
    .cookie-btn {
      align-self: flex-start;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.45);
      background: none;
      border: none;
      padding: 0;
      cursor: pointer;
      transition: color 0.2s;
    }
    .cookie-btn:hover { color: rgba(255,255,255,0.75); }

    /* ─── ANIMATIONS ─────────────────────────────── */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(18px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @media (prefers-reduced-motion: reduce) {
      * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    }

    /* ════════════════════════════════════════════════════════════
       TABLETTE — à partir de 768px
       ════════════════════════════════════════════════════════════ */
    @media (min-width: 768px) {
      .nav { padding: 10px 28px; }
      .nav-logo img { height: 55px; }
      .nav-contact { font-size: 10px; letter-spacing: 0.18em; }

      .menu-overlay { width: 420px; }
      .menu-inner { padding: 96px 40px 40px; }
      .menu-logo img { height: 36px; }
      .menu-grid { gap: 12px; }
      a.menu-item-title, span.menu-item-title { font-size: 14px; letter-spacing: 0.1em; padding: 0; }
      .menu-item-sub { font-size: 12px; letter-spacing: 0.08em; padding: 0 0 0 10px; }

      .popup-inner { padding: 48px 52px 44px; }
      .popup-row { flex-direction: row; gap: 24px; }
      .popup-extras { flex-direction: row; }
      .popup-extra-item:first-child { border-right: 1px solid var(--light-grey); border-bottom: none; }
      .popup-item-value { font-size: 44px; }

      .hero-left { padding: 0 44px 60px; }
      .hero-photo-caption { bottom: 18px; right: 24px; font-size: 10px; }
      .hero-bg { object-position: 38% center; }

      .tagline { margin-top: 12px; }
      .sep { margin: 30px 0; }
      .signature { font-size: 14px; }
      .hero-cta { margin-top: 36px; }

      .positioning-text { font-size: 19px; margin-bottom: 36px; }

      .contact-cta { gap: 22px; }
      .contact-cta p:not(.contact-label) { font-size: 19px; }

      footer { padding: 48px 28px 32px; }
      .footer-row { flex-direction: row; align-items: center; justify-content: space-between; }
      .footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; }
      .cookie-btn { align-self: auto; }
    }

    /* ════════════════════════════════════════════════════════════
       PETIT DESKTOP — à partir de 1024px
       (restitue le rendu desktop d'origine, inchangé)
       ════════════════════════════════════════════════════════════ */
    @media (min-width: 1024px) {
      .nav {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        padding: 0 40px;
        min-height: 80px;
      }
      .nav-left { gap: 28px; }
      .nav-link {
        display: inline-block;
        font-size: 10px;
        font-weight: 600;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--text);
        text-decoration: none;
        transition: color 0.2s;
      }
      .nav-link:hover { color: var(--blue); }
      .nav-logo img { height: 64px; }
      .nav-right { gap: 24px; }

      .menu-overlay { width: 20vw; }
      .menu-inner { padding: 44px 36px 36px; }
      .menu-logo { margin-bottom: 40px; }
      .menu-logo img { height: 36px; }
      .menu-close { top: 12px; right: 12px; }
      .menu-grid { gap: 12px; }
      a.menu-item-title, span.menu-item-title { font-size: 14px; letter-spacing: 0.1em; padding: 0; }
      .menu-item-sub { font-size: 12px; letter-spacing: 0.08em; padding: 0 0 0 10px; }

      .hero-left { padding: 0 64px 72px; }
      .hero-photo-caption { bottom: 20px; right: 28px; font-size: 10px; }
      .hero-bg { object-position: center 50%; }

      .headline { font-size: clamp(48px, 6vw, 88px); letter-spacing: -0.01em; }
      .tagline { margin-top: 12px; font-size: 22px; letter-spacing: 0.04em; }
      .sep { width: 40px; margin: 36px 0; }
      .signature { font-size: 14px; letter-spacing: 0.08em; }
      .hero-cta { margin-top: 40px; }
      .hero-cta a { font-size: 16px; color: rgba(255,255,255,0.80); }

      .positioning-section { padding: 160px 24px; }
      .positioning-title { margin-bottom: 32px; }
      .positioning-text { font-size: 20px; line-height: 1.7; margin-bottom: 40px; }

      .contact-section { padding: 120px 24px; }
      .contact-cta { gap: 24px; }
      .contact-cta p:not(.contact-label) { font-size: 20px; line-height: 1.7; }

      footer { padding: 20px 40px 16px; }
      .footer-logo img { height: 28px; }
      .footer-tagline { font-size: 13px; }
      .footer-sep { margin: 12px 0; }
    }

    /* ════════════════════════════════════════════════════════════
       GRAND DESKTOP — à partir de 1440px (confort supplémentaire)
       ════════════════════════════════════════════════════════════ */
    @media (min-width: 1440px) {
      .nav { padding: 0 64px; }
      .hero-left { padding: 0 96px 80px; }
      .positioning-inner { max-width: 920px; }
      .contact-cta { max-width: 950px; }
    }

    /* ════════════════════════════════════════════════════════════
       COOKIES — GESTION DU CONSENTEMENT
       Bloc isolé, ne réutilise que les variables et polices du site.
       ════════════════════════════════════════════════════════════ */

    .cc-link {
      color: var(--blue);
      text-decoration: underline;
      text-underline-offset: 3px;
    }
    .cc-link:hover { color: var(--blue-dark); }

    /* ─── Bandeau de premier niveau ──────────────── */
    .cc-banner {
      position: fixed;
      left: 0; right: 0; bottom: 0;
      z-index: 500;
      background: var(--white);
      border-top: 1px solid var(--light-grey);
      padding: 22px 20px calc(20px + env(safe-area-inset-bottom, 0px));
      box-shadow: 0 -6px 28px rgba(15, 36, 112, 0.08);
    }
    .cc-banner[hidden] { display: none; }

    .cc-banner-inner { max-width: 640px; }

    .cc-banner-title {
      font-family: 'Cormorant Garamond', serif;
      font-weight: 400;
      font-size: 20px;
      color: var(--text);
      margin-bottom: 10px;
    }

    .cc-banner-text {
      font-size: 12px;
      font-weight: 300;
      line-height: 1.75;
      color: var(--grey);
      margin-bottom: 18px;
    }

    .cc-banner-actions {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .cc-banner-actions-main {
      display: flex;
      gap: 10px;
    }

    /* ─── Boutons ────────────────────────────────── */
    .cc-btn {
      font-family: 'Montserrat', sans-serif;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      cursor: pointer;
      transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
      min-height: 44px;
    }

    .cc-btn-text {
      align-self: flex-start;
      background: none;
      border: none;
      padding: 4px 0;
      color: var(--grey);
      text-decoration: underline;
      text-underline-offset: 3px;
      min-height: 32px;
    }
    .cc-btn-text:hover { color: var(--blue); }

    .cc-btn-outline {
      flex: 1;
      background: var(--white);
      border: 1px solid var(--light-grey);
      color: var(--text);
      padding: 12px 16px;
    }
    .cc-btn-outline:hover { border-color: var(--blue); color: var(--blue); }

    .cc-btn-save {
      background: var(--white);
      border: 1px solid var(--blue);
      color: var(--blue);
      padding: 12px 16px;
      width: 100%;
    }
    .cc-btn-save:hover { background: var(--off-white); }

    /* « Continuer sans accepter » : reprend .cc-btn-text (souligné, sans
       cadre ni fond), en plus petit, flottant en haut à droite du bandeau.
       Le flottement fait s'écouler le titre à côté, sans chevauchement. */
    .cc-btn-continue {
      float: right;
      margin: 0 0 4px 16px;
      font-size: 9px;
      font-weight: 500;
      min-height: 24px;
      padding: 2px 0;
    }

    /* ─── Panneau « Préférences de confidentialité » ─ */
    .cc-prefs-backdrop {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.5);
      z-index: 600;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .cc-prefs-backdrop.open { opacity: 1; pointer-events: all; }

    .cc-prefs {
      position: fixed;
      top: 50%; left: 50%;
      transform: translate(-50%, -48%) scale(0.97);
      z-index: 601;
      width: 92%;
      max-width: 560px;
      max-height: 88vh;
      max-height: 88dvh;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      background: var(--white);
      border-radius: 4px;
      box-shadow: 0 24px 80px rgba(0,0,0,0.18);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    .cc-prefs[hidden] { display: none; }
    .cc-prefs.open {
      opacity: 1;
      pointer-events: all;
      transform: translate(-50%, -50%) scale(1);
    }

    .cc-prefs-close {
      position: absolute;
      top: 12px; right: 12px;
      width: 40px; height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: none;
      border: none;
      font-size: 14px;
      color: rgba(0,0,0,0.3);
      cursor: pointer;
      transition: color 0.2s;
      font-family: 'Montserrat', sans-serif;
    }
    .cc-prefs-close:hover { color: var(--text); }

    .cc-prefs-inner { padding: 40px 24px 28px; }

    .cc-prefs-eyebrow {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--grey);
      margin-bottom: 12px;
    }

    .cc-prefs-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(26px, 6vw, 32px);
      font-weight: 300;
      color: var(--text);
      line-height: 1.15;
      margin-bottom: 20px;
    }
    .cc-prefs-title em { font-style: italic; color: var(--blue); }

    .cc-prefs-sep {
      width: 36px; height: 1px;
      background: var(--blue);
      margin-bottom: 24px;
      opacity: 0.4;
    }

    .cc-prefs-intro {
      font-size: 12px;
      font-weight: 300;
      line-height: 1.8;
      color: var(--grey);
      margin-bottom: 8px;
    }

    .cc-cat {
      padding: 18px 0;
      border-top: 1px solid var(--light-grey);
    }
    .cc-cat:last-of-type { border-bottom: 1px solid var(--light-grey); margin-bottom: 28px; }

    .cc-cat-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 8px;
    }

    .cc-cat-title {
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 0.03em;
      color: var(--text);
    }

    .cc-cat-status {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--grey);
      white-space: nowrap;
    }

    .cc-cat-text {
      font-size: 11px;
      font-weight: 300;
      line-height: 1.75;
      color: var(--grey);
    }

    /* Interrupteur accessible */
    .cc-switch {
      position: relative;
      width: 40px;
      height: 22px;
      flex-shrink: 0;
      background: var(--light-grey);
      border: none;
      border-radius: 100px;
      cursor: pointer;
      padding: 2px;
      transition: background 0.2s;
    }
    .cc-switch-knob {
      display: block;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: var(--white);
      box-shadow: 0 1px 3px rgba(0,0,0,0.2);
      transition: transform 0.2s;
    }
    .cc-switch.cc-switch-on { background: var(--blue); }
    .cc-switch.cc-switch-on .cc-switch-knob { transform: translateX(18px); }

    .cc-prefs-actions {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .cc-prefs-actions-row {
      display: flex;
      gap: 10px;
    }

    /* ─── Responsive : tablette / desktop ────────── */
    @media (min-width: 768px) {
      .cc-banner {
        left: auto;
        right: 24px;
        bottom: 24px;
        width: 560px;
        max-width: calc(100vw - 48px);
        border: 1px solid var(--light-grey);
        border-radius: 4px;
        padding: 26px 28px;
        box-shadow: 0 12px 48px rgba(15, 36, 112, 0.1);
      }
      .cc-banner-actions {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
      }
      .cc-banner-actions-main { flex: 0 0 auto; margin-left: auto; }
      .cc-banner-actions-main .cc-btn-outline { flex: 0 0 auto; min-width: 110px; }
      .cc-prefs-inner { padding: 48px 52px 44px; }
    }


    /* Interrupteur verrouillé (catégorie non disponible, ex. Google Analytics non installé) */
    .cc-switch:disabled { cursor: not-allowed; opacity: 0.45; }
