/* ============================================================
   ONEPROD — Design System v2 · Premium Edition
   ============================================================ */

/* Polices chargées via <link preconnect+stylesheet> dans le <head> de chaque page — voir les fichiers .php */

/* ── Variables ────────────────────────────────────────────── */
:root {
  --color-night:     #0E1420;
  --color-slate:     #1E3A5F;
  --color-lin:       #F6F4EF;
  --color-coal:      #0D0D0D;
  --color-mid:       #696969;
  --color-rule:      #C4BAA8;
  --color-signature: #C4703A;
  --color-support:   #B8541E;
  --color-white:     #FFFFFF;

  /* Transitions globales */
  --t-fast:  0.2s ease;
  --t-mid:   0.35s ease;
  --t-slow:  0.7s ease;
}

/* ── Reset & Base ─────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  /* Transitions douces sur couleur, fond, opacité seulement
     (éviter transition sur transform/layout = perf) */
  transition: color var(--t-fast),
              background-color var(--t-fast),
              opacity var(--t-fast),
              border-color var(--t-fast);
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.9;
  color: var(--color-coal);
  background-color: var(--color-lin);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Typographie — Échelle contrastée ─────────────────────── */

/* H1 hero — grand, Cormorant, élégance éditorialiste
   color sans !important : un h1{color:var(--color-night) !important}
   écraserait tout style inline de couleur mis par une page individuelle
   (ex: sections à fond sombre déclaré en inline, sans classe .section-dark
   /.section-mid/.section-hero) et rendrait le titre invisible sur son
   propre fond. Le style inline explicite d'une page doit pouvoir gagner. */
h1 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(3rem, 7vw, 6rem) !important;
  letter-spacing: -0.01em !important;
  line-height: 0.95 !important;
  color: var(--color-white);
}

/* H2 de section — Montserrat léger, aéré */
h2 {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 200 !important;
  font-size: clamp(1.6rem, 3.5vw, 3rem) !important;
  letter-spacing: 0.04em !important;
  line-height: 1.1 !important;
  color: var(--color-night);
}

h3 {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 1.1rem !important;
  letter-spacing: 0.04em !important;
  color: var(--color-night);
}

/* H2/H3 sur fond sombre → clair */
.section-dark h2, .section-mid h2, .section-hero h2,
nav h2, footer h2 {
  color: var(--color-white) !important;
}
.section-dark h3, .section-mid h3, .section-hero h3,
footer h3 {
  color: rgba(246,244,239,0.8) !important;
}

/* Corps long — Cormorant, interlignage généreux */
.font-body {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.9;
}

/* Citations — grandes, aérées */
blockquote, .citation {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  line-height: 1.55;
  letter-spacing: 0.01em;
  border-left: 0.5px solid var(--color-signature);
  padding-left: 2rem;
  margin-left: 0;
}

/* ── Logo ─────────────────────────────────────────────────── */
.site-logo {
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 300;
  font-size: 0.9rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-white) !important;
  font-style: normal;
  text-decoration: none;
}
.site-logo span { color: inherit !important; }

/* ── Navigation — Premium ─────────────────────────────────── */
nav {
  background: rgba(14,20,32,0.96) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 0.5px solid rgba(196,186,168,0.1) !important;
  height: 68px !important;
}

nav a {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(196,186,168,0.7) !important;
  text-decoration: none !important;
  position: relative;
}

/* Underline qui grandit au hover */
nav a:not(.nav-cta)::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 0.5px;
  background: var(--color-signature);
  transition: width 0.35s ease;
}
nav a:not(.nav-cta):hover::after { width: 100%; }
nav a:hover, nav a.active {
  color: var(--color-white) !important;
}

/* CTA nav */
nav a.nav-cta {
  background-color: var(--color-signature) !important;
  color: var(--color-white) !important;
  padding: 0.45rem 1.2rem !important;
  letter-spacing: 0.1em !important;
}
nav a.nav-cta:hover {
  background-color: var(--color-support) !important;
  color: var(--color-white) !important;
}
nav a.nav-cta::after { display: none !important; }

/* ── Boutons — Sobre, caractère ───────────────────────────── */
.btn-primary {
  background-color: var(--color-signature) !important;
  color: var(--color-lin) !important;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 40px !important;
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s ease,
              letter-spacing 0.3s ease !important;
}
.btn-primary:hover {
  background-color: var(--color-support) !important;
  letter-spacing: 0.22em !important;
  transform: none !important;
  box-shadow: none !important;
}

.btn-outline, .btn-secondary {
  background-color: transparent !important;
  color: var(--color-white) !important;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border: 0.5px solid rgba(196,186,168,0.4) !important;
  border-radius: 0 !important;
  padding: 14px 38px !important;
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.3s ease,
              color 0.3s ease,
              letter-spacing 0.3s ease !important;
}
.btn-outline:hover, .btn-secondary:hover {
  border-color: var(--color-signature) !important;
  color: var(--color-signature) !important;
  letter-spacing: 0.22em !important;
  transform: none !important;
  box-shadow: none !important;
}
.btn-outline.on-light {
  color: var(--color-night) !important;
  border-color: rgba(14,20,32,0.35) !important;
}
.btn-outline.on-light:hover {
  color: var(--color-signature) !important;
  border-color: var(--color-signature) !important;
}

/* ── Fonds de section ─────────────────────────────────────── */
section, main {
  background-color: var(--color-lin);
  color: var(--color-coal);
}
.section-hero {
  background-color: var(--color-night) !important;
  color: var(--color-white);
}
.section-dark {
  background-color: var(--color-night) !important;
  color: var(--color-white);
}
.section-mid {
  background-color: var(--color-slate) !important;
  color: var(--color-white);
}
.section-light {
  background-color: var(--color-lin) !important;
  color: var(--color-coal);
}
footer {
  background-color: var(--color-night) !important;
  border-top: 0.5px solid rgba(196,186,168,0.12) !important;
  color: var(--color-white);
}

/* ── Hero — alignement gauche, composition asymétrique ─────── */
.hero-wrap { position: relative; }

.hero-mask {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, transparent 45%, #0E1420 100%),
    linear-gradient(to right, rgba(14,20,32,0.55) 0%, transparent 70%),
    radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(4,6,12,0.82) 100%),
    rgba(14,20,32,0.55);
  pointer-events: none;
  z-index: 1;
}

.hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 4rem 8vw 2rem;
  z-index: 2;
}

/* Override Tailwind centering dans le hero */
.hero-content .text-center {
  text-align: left !important;
}
.hero-content .justify-center {
  justify-content: flex-start !important;
}
.hero-content .mx-auto {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.hero-content h1 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(3.5rem, 7vw, 6.5rem) !important;
  letter-spacing: -0.01em !important;
  line-height: 0.95 !important;
}

/* ── Cards services ───────────────────────────────────────── */
.card-service {
  background: var(--color-white) !important;
  border-top: 0.5px solid rgba(196,186,168,0.5) !important;
  color: var(--color-coal) !important;
  transition: transform 0.4s ease, box-shadow 0.4s ease !important;
}
.card-service:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(196,112,58,0.08) !important;
}
.card-service h3 { color: var(--color-night) !important; }

/* Cards alternes — casse la symétrie de la grille */
.card-service:nth-child(even) {
  padding-bottom: calc(2rem + 40px) !important;
}

.pillar-card {
  background: var(--color-white) !important;
  border-top: 0.5px solid rgba(196,186,168,0.5) !important;
  color: var(--color-coal);
}
.pillar-card h3 { color: var(--color-night) !important; }

.section-dark .card-service,
.section-mid .card-service,
.section-dark .pillar-card,
.section-mid .pillar-card {
  background: rgba(255,255,255,0.05) !important;
  border-top-color: rgba(196,186,168,0.18) !important;
  color: var(--color-white) !important;
}
.section-dark .card-service h3,
.section-mid .card-service h3,
.section-dark .pillar-card h3,
.section-mid .pillar-card h3 {
  color: var(--color-white) !important;
}

/* ── Chiffres contour (numéros géants, remplissage transparent) ──────
   Réutilisé par les sections filmstrip (références), étapes (méthode)
   et piliers de la page production-executive.php (FR + EN). */
.stroke-num {
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--color-signature);
}

/* ── Pastilles (pills) — tags de contexte & garanties opérationnelles ── */
.pill-tag {
  display: inline-block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 300;
  font-size: 0.72rem;
  line-height: 1.3;
  letter-spacing: 0.02em;
  padding: 0.5rem 1rem;
  border: 0.5px solid rgba(196,112,58,0.5);
  border-radius: 999px;
  color: var(--color-signature);
}
.pill-tag--muted {
  color: var(--color-coal);
  border-color: rgba(196,112,58,0.4);
}

/* ── Filmstrip — liste de références avec numéro contour + miniature ── */
.filmstrip-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  grid-template-areas: "num thumb" "info info" "cta cta";
  gap: 0.75rem 1.25rem;
  align-items: center;
  padding: 1.75rem 0;
  border-top: 0.5px solid rgba(196,186,168,0.25);
  text-decoration: none;
}
.filmstrip-row .fs-num   { grid-area: num; }
.filmstrip-row .fs-thumb { grid-area: thumb; }
.filmstrip-row .fs-info  { grid-area: info; }
.filmstrip-row .fs-cta   { grid-area: cta; }
@media (min-width: 768px) {
  .filmstrip-row {
    grid-template-columns: 90px 220px 1fr auto;
    grid-template-areas: "num thumb info cta";
    gap: 2rem;
  }
}

/* ── Étapes méthode en zigzag — numéro contour + contenu ─────────────── */
.zigzag-step {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem 0;
  border-top: 0.5px solid rgba(196,186,168,0.3);
}
@media (min-width: 768px) {
  .zigzag-step { flex-direction: row; align-items: center; gap: 2.5rem; }
  .zigzag-step .stroke-num { width: 140px; flex-shrink: 0; }
}

/* ── Rangées de piliers — numéro / texte / pastilles ─────────────────── */
.pillar-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-top: 0.5px solid rgba(196,186,168,0.3);
}
@media (min-width: 768px) {
  .pillar-row { grid-template-columns: 120px 1fr 1.2fr; gap: 3rem; align-items: start; }
}

/* ── Citation centrée (pull-quote), variante sans filet gauche ────────── */
.citation-center {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.6rem, 3.2vw, 2.4rem);
  line-height: 1.4;
  letter-spacing: 0.01em;
  text-align: center;
  color: var(--color-coal);
  border: none;
  padding: 0;
  margin: 0;
}

/* ── Hero standard — hauteur uniforme (~800px @ desktop, main.pt-16 inclus)
   pour les pages expertises/services (production-executive, publicite, marques,
   documentaires + équivalents EN). min-height (pas height) : jamais de
   recadrage brutal du texte, seulement un plancher commun ; les pages plus
   courtes gagnent de l'espace de respiration en bas, les pages plus longues
   restent lisibles. 736px de section + 64px de padding-top du <main> = 800px
   perçus depuis le haut de page. */
.hero-standard {
  position: relative;
  overflow: hidden;
  background: var(--color-night);
  padding: 8rem 1.5rem 6rem;
}
@media (min-width: 1024px) {
  .hero-standard { min-height: 736px; }
}
/* H1 de .hero-standard : plus d'override ici — on laisse la règle globale
   h1{font-family:Cormorant Garamond;font-size:clamp(3rem,7vw,6rem)!important}
   s'appliquer, exactement comme sur les heros index (portfolio, expertises,
   approche). Le style inline de chaque page ajoute juste l'italique et la
   couleur, non couverts par la règle globale. Même traitement typographique
   partout = même critère d'alignement et de rendu. */
.hero-standard h1,
.hero-standard p {
  overflow-wrap: break-word;
  word-break: break-word;
}
.hero-standard > .max-w-7xl,
.hero-standard > .max-w-7xl > div {
  max-width: 100%;
}
@media (max-width: 767px) {
  .hero-standard { padding: 6rem 1.25rem 3rem; }
}

/* ── Hero index (portfolio, expertises, approche) — même plancher ~800px
   @ desktop (main.pt-16 inclus) que .hero-standard, mais ces heros utilisent
   déjà display:flex + align-items:center + un min-height:Xvh en inline
   (variable par page : 52vh, 80vh...) pour le mobile. On ne touche qu'au
   palier desktop, en !important pour battre l'inline min-height sans
   perturber le comportement mobile propre à chaque page. */
@media (min-width: 1024px) {
  .hero-index-standard { min-height: 736px !important; }
}

/* .feature-card : fond nuit défini en <style> de page (expertises/artistes.php,
   en/services/artists.php, en/services/production-agencies.php) mais sans
   override de couleur pour son h2 — celui-ci hérite du h2{color:var(--color-night)
   !important} global et devient invisible (texte nuit sur fond nuit). */
.feature-card h2 { color: var(--color-white) !important; }

/* ── Accents & filets ─────────────────────────────────────── */
.text-accent, .text-signature { color: var(--color-signature) !important; }
.bg-signature { background-color: var(--color-signature) !important; }

hr, .rule-line, .divider {
  border: none;
  border-top: 0.5px solid rgba(196,186,168,0.25);
  margin: 0;
}

.conviction-item, .value-item {
  border-left: 0.5px solid var(--color-signature) !important;
  padding-left: 1.5rem;
}

/* ── Trust band / clients ─────────────────────────────────── */
.partner-name {
  color: rgba(196,186,168,0.55);
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 200;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: color 0.35s ease;
}
.partner-name:hover { color: rgba(246,244,239,0.9); }

/* ── Steps / Numbers ──────────────────────────────────────── */
.step-number, .section-number {
  color: rgba(196,112,58,0.18) !important;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 200;
}

/* ── Formulaires ──────────────────────────────────────────── */
.form-field {
  background: var(--color-white) !important;
  border: 0.5px solid rgba(196,186,168,0.6) !important;
  color: var(--color-coal) !important;
  border-radius: 0 !important;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1rem;
  padding: 0.75rem 1rem;
  width: 100%;
  transition: border-color 0.3s ease !important;
}
.form-field:focus {
  outline: none;
  border-color: var(--color-signature) !important;
  box-shadow: 0 0 0 1px rgba(196,112,58,0.15) !important;
}
.form-field option { background: var(--color-white); color: var(--color-coal); }

label {
  display: block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 300;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-mid);
  margin-bottom: 0.5rem;
}

/* ── Portfolio filters ────────────────────────────────────── */
.filter-btn {
  background: transparent;
  border: 0.5px solid rgba(196,186,168,0.3);
  color: rgba(196,186,168,0.6);
  padding: 0.4rem 1.2rem;
  border-radius: 0;
  font-size: 0.65rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  font-family: 'Montserrat', Arial, sans-serif;
  transition: all 0.3s ease;
}
.filter-btn.active-filter,
.filter-btn:hover {
  background: var(--color-signature);
  color: var(--color-white);
  border-color: var(--color-signature);
}

/* ── FAQ ──────────────────────────────────────────────────── */
details summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 300;
  font-size: 0.88rem;
  letter-spacing: 0.02em;
  color: var(--color-night);
}
details summary::-webkit-details-marker { display: none; }
details[open] summary .chevron { transform: rotate(180deg); }
.chevron { transition: transform 0.3s ease; flex-shrink: 0; margin-left: 1rem; color: var(--color-mid); }
details { border-bottom: 0.5px solid rgba(196,186,168,0.3); padding: 1.5rem 0; }

/* ── Video ratio ──────────────────────────────────────────── */
.video-ratio { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.video-ratio iframe { position: absolute; top:0; left:0; width:100%; height:100%; border:0; }

/* ── Contraste texte sur fonds sombres ────────────────────────
   Le gris-beige rgba(196,186,168, 0.3–0.65) utilisé en style inline
   pour le corps de texte (paragraphes) tombe sous le seuil WCAG AA
   (4.5:1) sur les fonds sombres #0E1420 et #1E3A5F : ratio ~2.9:1 sur
   #1E3A5F, ~3.4:1 sur #0E1420. On relève l'opacité effective ici
   plutôt que dans chaque page (même style inline répété sur des
   dizaines de pages FR/EN). #1E3A5F est plus clair : il faut monter
   l'opacité davantage pour atteindre 4.5:1 sur ce fond-là. */
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.3"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.35"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.4"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.45"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.5"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.55"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.6"],
:is(.section-dark, .section-mid, footer, [style*="background:#0E1420"], [style*="background:#1E3A5F"], [style*="background:var(--color-night)"], [style*="background:var(--color-slate)"])
  p[style*="rgba(196,186,168,0.65"] {
  color: rgba(196,186,168,0.85) !important;
}

/* ── Animations scroll (.reveal) ─────────────────────────── */
[data-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal:nth-child(3) { transition-delay: 0.2s; }
.reveal:nth-child(4) { transition-delay: 0.3s; }

/* ── Mobile menu ──────────────────────────────────────────── */
#mobile-menu {
  background-color: var(--color-night) !important;
  border-top: 0.5px solid rgba(196,186,168,0.08) !important;
}
#mobile-menu a {
  color: rgba(196,186,168,0.65) !important;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 300;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
#mobile-menu a:hover { color: var(--color-white) !important; }

/* ── Pages légales ───────────────────────────────────────── */
.page-legale__header {
  background: #0E1420;
  padding: 120px 8vw 80px;
}
.page-legale__header h1 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 200 !important;
  font-size: clamp(2rem, 4vw, 3.5rem) !important;
  color: #F6F4EF !important;
  letter-spacing: 0.03em !important;
  line-height: 1.1 !important;
  margin-top: 1.5rem;
}
.page-legale__header .date-maj {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: #696969;
  margin-top: 1rem;
  text-transform: none;
}
.page-legale__body {
  background: #F6F4EF;
  padding: 80px 8vw 120px;
  max-width: 860px;
}
.page-legale__body h2 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 300 !important;
  font-size: 1.1rem !important;
  letter-spacing: 0.06em !important;
  color: #0E1420 !important;
  margin-top: 3rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.page-legale__body h3 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  color: #1E3A5F !important;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}
.page-legale__body p,
.page-legale__body li {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  line-height: 1.9;
  color: #0D0D0D;
}
.page-legale__body ul { padding-left: 1.5rem; margin: 0.75rem 0; }
.page-legale__body a { color: #C4703A; text-decoration: none; }
.page-legale__body a:hover { text-decoration: underline; }
.page-legale__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
}
.page-legale__body th {
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #0E1420;
  color: #C4BAA8;
  padding: 12px 16px;
  text-align: left;
}
.page-legale__body td {
  padding: 10px 16px;
  border-bottom: 0.5px solid rgba(196,186,168,0.3);
  color: #0D0D0D;
  vertical-align: top;
}
.page-legale__body tr:nth-child(even) td {
  background: rgba(196,186,168,0.08);
}

/* ── Footer liens légaux ──────────────────────────────────── */
.footer-legal {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
}
.footer-legal a,
.footer-legal span {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(196,186,168,0.4);
  text-decoration: none;
  transition: color 0.2s ease;
  cursor: pointer;
}
.footer-legal a:hover,
#manage-cookies-link:hover { color: #C4703A; }
.footer-sep { color: rgba(196,186,168,0.18) !important; }

/* ── Bannière cookies ─────────────────────────────────────── */
.cookie-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(14,20,32,0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 0.5px solid rgba(196,186,168,0.15);
  padding: 28px 8vw;
  z-index: 9999;
  display: none;
}
.cookie-banner.visible { display: block; }
.cookie-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  max-width: 1400px;
  margin: 0 auto;
}
.cookie-banner__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #F6F4EF;
  margin-bottom: 0.4rem;
}
.cookie-banner__desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  color: #C4BAA8;
  line-height: 1.6;
}
.cookie-banner__desc a { color: #C4703A; text-decoration: none; }
.cookie-banner__actions { display: flex; gap: 1rem; flex-shrink: 0; flex-wrap: wrap; }
.cookie-btn {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 12px 28px;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.cookie-btn--accept { background: #C4703A; color: #F6F4EF; }
.cookie-btn--accept:hover { background: #B8541E; }
.cookie-btn--essential {
  background: transparent; color: #C4BAA8;
  border: 0.5px solid rgba(196,186,168,0.3);
}
.cookie-btn--essential:hover { border-color: #C4703A; color: #C4703A; }
.cookie-btn--manage {
  background: transparent; color: #696969;
  border: none; padding: 12px 0;
  text-decoration: underline; text-underline-offset: 3px;
}
.cookie-btn--manage:hover { color: #C4BAA8; }
.cookie-toggle {
  position: relative; display: inline-block;
  width: 44px; height: 24px; flex-shrink: 0;
}
.cookie-toggle input { opacity: 0; width: 0; height: 0; }
.cookie-toggle__slider {
  position: absolute; inset: 0;
  background: #1E3A5F; border-radius: 12px;
  transition: background 0.2s; cursor: pointer;
}
.cookie-toggle__slider::before {
  content: ''; position: absolute;
  width: 18px; height: 18px;
  background: #C4BAA8; border-radius: 50%;
  left: 3px; top: 3px; transition: transform 0.2s;
}
.cookie-toggle input:checked + .cookie-toggle__slider { background: #C4703A; }
.cookie-toggle input:checked + .cookie-toggle__slider::before { transform: translateX(20px); background: #F6F4EF; }
.cookie-toggle--locked {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.6rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: #4A7C59;
}
.cookie-detail {
  max-width: 1400px; margin: 1.5rem auto 0;
  border-top: 0.5px solid rgba(196,186,168,0.15); padding-top: 1.5rem;
}
.cookie-detail__row {
  display: flex; justify-content: space-between;
  align-items: center; padding: 1rem 0;
  border-bottom: 0.5px solid rgba(196,186,168,0.1);
}
.cookie-detail__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300; font-size: 0.72rem;
  letter-spacing: 0.08em; color: #F6F4EF; margin-bottom: 0.25rem;
}
.cookie-detail__desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem; color: #696969;
}

/* ── Switcher langue nav ──────────────────────────────────── */
.lang-switcher {
  display: flex;
  align-items: center;
  gap: 0;
  border-left: 0.5px solid rgba(196,186,168,0.18);
  padding-left: 1.2rem;
  margin-left: 0.4rem;
}
.lang-switcher a {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 300 !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(196,186,168,0.38) !important;
  text-decoration: none !important;
  padding: 2px 5px;
  transition: color 0.2s ease !important;
  position: static !important;
}
.lang-switcher a::after { display: none !important; }
.lang-switcher a:hover { color: rgba(196,186,168,0.75) !important; }
.lang-switcher a.lang-active {
  color: var(--color-rule) !important;
  font-weight: 400 !important;
}
.lang-switcher span {
  color: rgba(196,186,168,0.18);
  font-size: 0.55rem;
  padding: 0 1px;
}

/* ══════════════════════════════════════════════════════════
   GRIDS UTILITAIRES — Mobile-first
   1 colonne par défaut → multi-colonnes sur ≥ 768px
   ══════════════════════════════════════════════════════════ */

.grid-2col,
.grid-2col-lg,
.grid-6040,
.grid-3col,
.grid-contact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
.grid-features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.grid-form-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
  .col-divider  { border-left: 0.5px solid rgba(196,186,168,0.12); padding-left: 3rem; }
  .grid-2col    { grid-template-columns: 1fr 1fr;         gap: 5rem; align-items: start; }
  .grid-2col-lg { grid-template-columns: 1fr 1fr;         gap: 6rem; align-items: start; }
  .grid-6040    { grid-template-columns: 60% 40%;         gap: 5rem; align-items: center; }
  .grid-3col    { grid-template-columns: repeat(3, 1fr);  gap: 0; }
  .grid-features{ grid-template-columns: 1fr 1fr;         gap: 1.2rem 2rem; }
  .grid-form-row{ grid-template-columns: 1fr 1fr;         gap: 1rem; margin-bottom: 1rem; }
  .grid-contact { grid-template-columns: 1fr 2fr;         gap: 5rem; align-items: start; }
}

/* ── Sections — padding mobile-first ─────────────────────── */
.sp     { padding: 3.5rem 1.25rem; }
.sp-top { padding: 3rem 1.25rem 0; }

@media (min-width: 768px) {
  .sp     { padding: 6rem 1.5rem; }
  .sp-top { padding: 5rem 1.5rem 0; }
}

/* ── Étapes méthode — mobile-first ───────────────────────── */
.method-step {
  padding: 1.5rem 0;
  border-right: none;
  border-bottom: 0.5px solid rgba(196,112,58,0.18);
}
.method-step-last {
  border-bottom: none;
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .method-step {
    padding: 2rem 2.5rem;
    border-right: 1px solid rgba(196,112,58,0.25);
    border-bottom: none;
  }
  .method-step:first-child { padding-left: 0; }
  .method-step-last        { padding-right: 0; border-right: none; }
}

/* ── Masquer sur mobile ───────────────────────────────────── */
.hide-mobile { display: none !important; }
@media (min-width: 768px) {
  .hide-mobile { display: block !important; }
}

/* ══════════════════════════════════════════════════════════
   OVERRIDES MOBILE — ≤ 767px
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* ─ Tailwind spacing overrides ─ */
  .py-24    { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
  .py-20    { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
  .px-6     { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .lg\:px-8 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .mb-14    { margin-bottom: 2rem !important; }
  .mb-16    { margin-bottom: 2rem !important; }
  .gap-10   { gap: 1.5rem !important; }
  .gap-12   { gap: 1.5rem !important; }

  /* ─ Hero — vidéo pleine hauteur mobile, cover ─ */
  .section-hero {
    height: 100svh;
    height: 100vh;
    overflow: hidden;
  }
  .section-hero .hero-wrap {
    height: 100svh;
    height: 100vh;
    position: relative;
    overflow: hidden;
  }
  .section-hero .video-ratio {
    position: absolute !important;
    inset: 0 !important;
    padding-bottom: 0 !important;
    height: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
  }
  /* Iframe : couvre toute la hauteur en rogant sur la largeur (object-fit:cover) */
  .section-hero .video-ratio iframe {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    height: 100% !important;
    width: 177.78vh !important; /* 16:9 basé sur la hauteur → couvre le portrait */
    min-width: 100% !important;
    transform: translate(-50%, -50%) !important;
    border: 0 !important;
  }
  .hero-content {
    padding: 5.5rem 1.25rem 2.5rem !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }
  .hero-content .text-center { text-align: left !important; }
  .hero-content > div {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .hero-content h1 {
    font-size: clamp(2.2rem, 8vw, 3rem) !important;
    line-height: 1.05 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 1.25rem !important;
  }
  .hero-content p {
    font-size: 0.95rem !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 2rem !important;
    line-height: 1.7 !important;
  }
  .hero-content .flex-col { gap: 0.75rem !important; }
  .hero-content .sm\:flex-row { flex-direction: column !important; }
  .hero-content a.btn-primary,
  .hero-content a.btn-outline {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
  }

  /* ─ Cards activités ─ */
  .card-service { padding: 1.75rem 1.25rem !important; }
  .card-service:nth-child(even) { padding-bottom: 1.75rem !important; }

  /* ─ Blockquote "Ce que nous sommes" ─ */
  .nous-sommes-quote {
    border: none !important;
    border-top: 0.5px solid rgba(196,112,58,0.18) !important;
    padding-left: 0 !important;
    padding-top: 1.5rem !important;
  }
  .nous-sommes-quote .deco-quote { display: none !important; }

  /* ─ Section convictions (grille 3 cols) ─ */
  #croyons-heading { margin-bottom: 2rem !important; }

  /* ─ Typographie ─ */
  h2 { font-size: clamp(1.5rem, 6.5vw, 2.1rem) !important; }

  /* ─ Pages légales ─ */
  .page-legale__header { padding: 80px 1.25rem 50px !important; }
  .page-legale__body   { padding: 50px 1.25rem 60px !important; }
  .page-legale__body table { font-size: 0.68rem; }
  .page-legale__body td,
  .page-legale__body th { padding: 8px 10px; }
  .page-legale__body table { display: block; overflow-x: auto; }

  /* ─ Cookie banner ─ */
  .cookie-banner { padding: 20px 1.25rem !important; }
  .cookie-banner__inner { flex-direction: column; gap: 1rem; }
  .cookie-banner__actions { width: 100%; flex-wrap: wrap; }
  .cookie-btn { padding: 10px 16px !important; font-size: 0.6rem !important; }

  /* ─ Footer ─ */
  footer .grid-cols-4,
  footer .md\:grid-cols-4 { grid-template-columns: 1fr 1fr !important; gap: 2rem !important; }
  footer .md\:col-span-2  { grid-column: 1 / -1 !important; }

  /* ─ Hero — hauteur minimum mobile ─ */
  .section-hero .hero-wrap,
  .section-hero .video-ratio { min-height: 80vh; }

  /* ─ Studio bannière image ─ */
  .studio-img { height: 200px !important; }

  /* ─ Trust band logos ─ */
  section[aria-label="Clients et partenaires"] .flex { gap: 1.5rem 2rem !important; }

  /* ─ Preuve opérationnelle ─ */
  .preuve-citation {
    border-left: none !important;
    border-top: 2px solid #C4703A;
    padding-left: 0 !important;
    padding-top: 1.25rem;
  }
}

/* ============================================================
   WIDGET AVIS GOOGLE (natif) — namespace .grw-
   Cartes d'avis Google réutilisées sur l'accueil et /avis-google
   (FR/EN). Pas de CTA "Laisser un avis" (identité ONEPROD verrouillée
   sans ce bouton). Accent terracotta/cuivre (--color-signature /
   --color-support), Montserrat Light pour les éléments de titre,
   Cormorant Garamond pour le texte des avis.
   ============================================================ */
.grw { position: relative; max-width: 1280px; margin: 0 auto; }

.grw__rating-band {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(196,186,168,0.15);
  border-radius: 8px;
  padding: 24px 16px;
  display: flex; align-items: center; justify-content: center;
  gap: 16px; margin-bottom: 24px; flex-wrap: wrap;
}
.grw__google-logo {
  font-family: Arial, sans-serif; font-size: 28px; font-weight: 700; line-height: 1;
}
.grw__google-logo span:nth-child(1),
.grw__google-logo span:nth-child(4) { color: #4285F4; }
.grw__google-logo span:nth-child(2),
.grw__google-logo span:nth-child(6) { color: #EA4335; }
.grw__google-logo span:nth-child(3) { color: #FBBC05; }
.grw__google-logo span:nth-child(5) { color: #34A853; }
.grw__rating-value {
  font-family: 'Montserrat', sans-serif; font-weight: 300; font-size: 28px; color: var(--color-lin);
}
.grw__stars { font-size: 22px; letter-spacing: 2px; color: var(--color-signature); }
.grw__rating-count {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 18px; color: rgba(196,186,168,0.6);
}

.grw__track {
  display: flex; flex-wrap: nowrap; align-items: stretch; gap: 16px; padding: 4px 2px 8px;
}

.grw__card {
  flex: 1 1 0; min-width: 0; height: 300px;
  display: flex; flex-direction: column;
  background: rgba(255,255,255,0.03); border: 1px solid rgba(196,186,168,0.15);
  border-radius: 8px; padding: 20px; box-sizing: border-box;
}
.grw__card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.grw__avatar {
  width: 44px; height: 44px; border-radius: 50%; color: var(--color-lin);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif; font-weight: 300; font-size: 16px; flex-shrink: 0;
}
.grw__card-identity { min-width: 0; }
.grw__card-name {
  display: flex; align-items: center; gap: 6px;
  font-family: 'Montserrat', sans-serif; font-weight: 300; font-size: 15px; color: var(--color-lin);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.grw__verified {
  width: 15px; height: 15px; border-radius: 50%; background: #1a73e8; color: var(--color-white);
  font-size: 10px; display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.grw__card-time {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 12px; color: rgba(196,186,168,0.5);
}
.grw__card-stars { color: var(--color-signature); font-size: 15px; letter-spacing: 2px; margin-bottom: 10px; }

/* Hauteur de carte fixe et égale pour les avis : le texte est tronqué à 5 lignes,
   avec un bouton "Lire la suite"/"Read more" (ajouté par le JS) si ça déborde. */
.grw__card-text {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1rem; line-height: 1.6;
  color: rgba(196,186,168,0.75);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5;
  overflow: hidden;
}
.grw__card--expanded { height: auto; }
.grw__card--expanded .grw__card-text {
  -webkit-line-clamp: unset; overflow: visible;
}
.grw__more {
  margin-top: 8px; align-self: flex-start;
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 300;
  color: var(--color-signature); text-decoration: underline;
}
.grw__more:hover { color: var(--color-support); }

/* Mobile : une carte par ligne, empilées en pleine largeur, hauteur libre. */
@media (max-width: 640px) {
  .grw__track { flex-direction: column; }
  .grw__card { flex: 1 1 auto; width: 100%; height: auto; }
  .grw__card-text { -webkit-line-clamp: 6; }
}

/* Logos "Ils nous font confiance" : sur une seule ligne à partir du breakpoint desktop
   (mobile/tablette gardent le wrap existant via les classes Tailwind gap-10 sm:gap-16). */
@media (min-width: 1024px) {
  .trust-logos { flex-wrap: nowrap; gap: 0.875rem; }
  .trust-logos img { max-width: 70px; }
}
