/* Styles communs à toutes les pages du site José Freitas */
:root{
  --ink:#0a0a0a;
  --panel:#141414;
  --paper:#f5f3ee;
  --gold:#cc9a3d;
  --mist:#a29e95;
  --line: rgba(245,243,238,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{
  background:var(--ink); color:var(--paper);
  font-family:'Archivo', system-ui, sans-serif; font-weight:400;
  line-height:1.6; overflow-x:hidden;
}
/* height:auto : sinon l'attribut height du HTML écrase les aspect-ratio et rogne les visages */
img{max-width:100%; display:block; height:auto;}
/* point focal par photo : garde les visages dans le cadre quand l'image est recadrée */
img.focus-haut{ object-position:50% 12%; }
a{color:inherit; text-decoration:none;}
[hidden]{display:none !important;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.skip{position:absolute; left:-9999px; top:8px; background:var(--gold); color:var(--ink); padding:10px 16px; z-index:100; font-weight:700;}
.skip:focus{left:8px;}
.script{font-family:'Caveat', cursive; font-weight:600;}
.wrap{max-width:1240px; margin:0 auto; padding:0 32px;}
@media (max-width:720px){ .wrap{padding:0 20px;} }
.dot{color:var(--gold);}
.section-title{ font-size:clamp(1.9rem,4vw,2.4rem); font-weight:900; text-transform:uppercase; line-height:1.1; }
.lead{ color:var(--mist); margin-top:12px; max-width:60ch; }

/* Header */
header.site{
  position:sticky; top:0; z-index:40;
  /* pas de backdrop-filter : il casserait le menu mobile en position fixe */
  background:var(--ink);
  border-bottom:1px solid var(--line);
}
header.site .bar{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 32px; }
.logo{ font-weight:900; font-size:1.05rem; line-height:1.05; text-transform:uppercase; letter-spacing:0.01em; }
nav.main{ display:flex; gap:28px; }
nav.main a{ font-size:0.78rem; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; padding:4px 0; border-bottom:2px solid transparent; }
nav.main a.active{ border-bottom-color:var(--gold); }
nav.main a:hover{ color:var(--gold); }
.btn{
  border:1px solid var(--gold); color:var(--gold); background:transparent; cursor:pointer;
  font:600 0.76rem/1.2 'Archivo', sans-serif; letter-spacing:0.06em; text-transform:uppercase;
  padding:12px 22px; display:inline-block; transition:background .2s ease, color .2s ease;
}
.btn:hover{ background:var(--gold); color:var(--ink); }
.btn.solid{ background:var(--gold); color:var(--ink); }
.btn.solid:hover{ background:var(--paper); border-color:var(--paper); }
.burger{ display:none; width:44px; height:44px; background:none; border:1px solid var(--line); color:var(--paper); cursor:pointer; position:relative; }
.burger span, .burger span::before, .burger span::after{ position:absolute; left:11px; width:20px; height:2px; background:currentColor; content:""; transition:transform .2s ease, top .2s ease; }
.burger span{ top:20px; }
.burger span::before{ left:0; top:-6px; }
.burger span::after{ left:0; top:6px; }
body.menu-open .burger span{ background:transparent; }
body.menu-open .burger span::before{ top:0; transform:rotate(45deg); }
body.menu-open .burger span::after{ top:0; transform:rotate(-45deg); }
@media (max-width:1080px){ nav.main{gap:18px;} }
@media (max-width:900px){
  .burger{ display:block; }
  header.site .bar > .btn{ display:none; }
  nav.main{
    position:fixed; inset:73px 0 0 0; background:var(--ink);
    flex-direction:column; gap:0; padding:12px 20px 40px; overflow-y:auto;
    opacity:0; transform:translateY(-8px); visibility:hidden;
    transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  }
  nav.main a{ font-size:1.05rem; padding:16px 4px; border-bottom:1px solid var(--line); }
  nav.main a.active{ color:var(--gold); border-bottom-color:var(--line); }
  body.menu-open nav.main{ opacity:1; transform:none; visibility:visible; transition:opacity .2s ease, transform .2s ease; }
  body.menu-open{ overflow:hidden; }
  header.site .bar{ padding:14px 20px; }
}

/* Hero */
.hero{ position:relative; min-height:min(88vh, 760px); display:flex; align-items:flex-end; overflow:hidden; }
.hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(10,10,10,0.95) 0%, rgba(10,10,10,0.5) 45%, rgba(10,10,10,0.1) 75%);
}
.hero-content{ position:relative; z-index:2; padding:48px; width:100%; max-width:1240px; margin:0 auto; }
/* Mobile : la photo occupe le haut, le texte passe sous le visage */
@media (max-width:720px){
  .hero{ display:block; min-height:0; }
  .hero-img{ position:relative; inset:auto; height:auto; aspect-ratio:4/5; object-position:52% 30%; }
  .hero::before{ bottom:auto; height:calc(100vw * 1.25); }
  .hero-content{ margin-top:-96px; padding:0 20px 32px; }
}
h1.name{ font-size: clamp(3rem, 8vw, 5.8rem); font-weight:900; text-transform:uppercase; line-height:0.94; letter-spacing:-0.01em; }
.eyebrow{ color:var(--gold); font-size:0.8rem; letter-spacing:0.16em; font-weight:600; margin-top:22px; text-transform:uppercase; }
.tagline{ margin-top:22px; }
.tagline .script{ font-size:clamp(1.5rem,3vw,1.9rem); display:block; line-height:1.25; }
.hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:22px 32px; margin-top:34px; }
.showreel{ display:flex; align-items:center; gap:16px; background:none; border:0; color:var(--paper); cursor:pointer; text-align:left; font-family:inherit; }
.play-ring{ width:52px; height:52px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--gold); flex-shrink:0; transition:background .2s ease, color .2s ease; }
.showreel:hover .play-ring{ background:var(--gold); color:var(--ink); }
.showreel .label{ font-size:0.78rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; }
.showreel .sub{ font-size:0.72rem; color:var(--mist); margin-top:2px; }
.xp-reel{ margin-top:24px; }

/* Showreel dialog */
dialog.reel{ border:0; padding:0; background:transparent; width:min(1100px, 94vw); max-width:none; margin:auto; overflow:visible; }
dialog.reel::backdrop{ background:rgba(0,0,0,0.88); }
#showreel-stage{ aspect-ratio:16/9; background:#000; }
#showreel-stage video, #showreel-stage iframe{ width:100%; height:100%; border:0; display:block; }
.dlg-close{ position:absolute; top:-48px; right:0; background:none; border:1px solid var(--line); color:var(--paper); width:40px; height:40px; font-size:1.3rem; cursor:pointer; }

/* 4-up cards */
.fourup{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
@media (max-width:900px){ .fourup{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .fourup{grid-template-columns:1fr;} .card{aspect-ratio:4/3;} }
.card{ aspect-ratio: 3/4; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:flex-end; padding:26px; position:relative; overflow:hidden; isolation:isolate; }
.card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .5s ease; }
.card::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(10,10,10,0.9), rgba(10,10,10,0.05) 60%); }
.card:hover img{ transform:scale(1.04); }
.fourup .card:last-child{ border-right:none; }
.card h3{ font-size:1.7rem; font-weight:900; text-transform:uppercase; }
.card p{ font-size:0.85rem; color:#cfcbc2; margin-top:8px; max-width:26ch; }
.card .go{ margin-top:16px; font-size:0.76rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); }
.card.auth{ background:linear-gradient(150deg,#1c1710,#0a0a0a 65%); align-items:center; justify-content:center; text-align:center; }
.card.auth::before{ display:none; }
.card.auth .t{ font-weight:900; font-size:1.9rem; text-transform:uppercase; letter-spacing:0.02em; }
.card.auth .script{ font-size:1.3rem; color:var(--gold); }
.card.auth p{ margin:14px auto 0; max-width:22ch; color:var(--mist); }

/* Logos */
.trustbar{ padding:44px 0; border-bottom:1px solid var(--line); }
.trustbar h2{ font-size:0.82rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--mist); }
.logos{ margin-top:20px; display:flex; flex-wrap:wrap; gap:18px 40px; align-items:center; list-style:none; }
.logos li{ font-weight:900; text-transform:uppercase; font-size:1.05rem; color:#c9c5bc; letter-spacing:0.02em; }

/* Expertises */
section.expertises{ padding:90px 0 40px; }
.xp{ display:grid; grid-template-columns:1fr 1.3fr; gap:48px; align-items:center; padding:44px 0; border-bottom:1px solid var(--line); }
.xp:last-child{ border-bottom:0; }
.xp:nth-child(even) .xp-img{ order:2; }
.xp-img{ aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); }
.xp-img img{ width:100%; height:100%; object-fit:cover; }
.xp h3{ font-size:1.6rem; font-weight:900; text-transform:uppercase; }
.xp .kicker{ color:var(--gold); font-size:0.74rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:600; }
.xp p{ color:#cfcbc2; margin-top:14px; max-width:58ch; }
.xp ul{ margin-top:16px; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.xp li{ font-size:0.74rem; letter-spacing:0.04em; text-transform:uppercase; border:1px solid var(--line); padding:6px 12px; color:var(--mist); }
@media (max-width:860px){ .xp{grid-template-columns:1fr; gap:24px;} .xp:nth-child(even) .xp-img{order:0;} }

/* Écoutez */
section.listen{ padding:80px 0; border-top:1px solid var(--line); }
.listen-grid{ margin-top:36px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:900px){ .listen-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .listen-grid{grid-template-columns:1fr;} }
.track{ background:var(--panel); border:1px solid var(--line); padding:20px; transition:border-color .2s ease; }
.track.playing{ border-color:var(--gold); }
.track .cat{ font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); }
.track .title{ font-size:0.95rem; margin-top:6px; }
.wave{ height:34px; margin-top:16px; display:flex; align-items:flex-end; gap:2px; cursor:pointer; }
.wave i{ flex:1; background:var(--mist); opacity:.45; display:block; min-height:2px; }
.wave i.on{ background:var(--gold); opacity:1; }
.track-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:14px; }
.track-foot .time{ font-size:0.76rem; color:var(--mist); font-variant-numeric:tabular-nums; }
.track-foot .play{ width:40px; height:40px; border-radius:50%; border:1px solid var(--gold); background:none; color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:0.72rem; cursor:pointer; }
.track-foot .play:hover{ background:var(--gold); color:var(--ink); }

/* About */
section.about{ padding:90px 0; border-top:1px solid var(--line); }
.about-grid{ display:grid; grid-template-columns: 0.8fr 1.1fr 0.9fr; gap:48px; align-items:start; }
@media (max-width:960px){ .about-grid{grid-template-columns:1fr; } .about-photo{max-width:420px;} }
.about-photo{ aspect-ratio:4/5; width:100%; object-fit:cover; border:1px solid var(--line); }
.about-text p{ margin-top:16px; color:#cfcbc2; max-width:52ch; }
.about-text .btn{ margin-top:26px; }
.timeline{ list-style:none; position:relative; }
.timeline::before{ content:""; position:absolute; left:9px; top:9px; bottom:9px; width:1px; background:var(--line); }
.tl-item{ display:flex; gap:16px; padding:0 0 30px; position:relative; }
.tl-item .node{ width:19px; height:19px; border-radius:50%; border:1px solid var(--gold); background:var(--ink); flex-shrink:0; position:relative; z-index:1; display:flex; align-items:center; justify-content:center; }
.tl-item .node::after{ content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.tl-item .t-title{ font-size:0.82rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; }
.tl-item .t-desc{ font-size:0.8rem; color:var(--mist); margin-top:4px; }

/* Authentik */
section.authentik{ position:relative; padding:110px 0; overflow:hidden; isolation:isolate; }
section.authentik > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
section.authentik::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(10,10,10,0.6),rgba(10,10,10,0.8)); }
.auth-inner{ display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; }
@media (max-width:900px){ .auth-inner{grid-template-columns:1fr;} }
/* Tablette et mobile : la photo au-dessus de la carte, plus en fond derrière le texte */
@media (max-width:1100px){
  section.authentik{ padding:0 0 64px; }
  section.authentik > img{ position:relative; inset:auto; height:auto; aspect-ratio:16/10; object-position:52% 32%; z-index:0; margin-bottom:-40px; }
  section.authentik::before{ display:none; }
  .auth-inner{ grid-template-columns:1fr; position:relative; z-index:1; }
  .auth-word{ display:none; }
}
.auth-card{ background:rgba(10,10,10,0.75); border:1px solid var(--line); padding:40px; }
@media (max-width:520px){ .auth-card{ padding:28px 22px; } }
.auth-card .eyebrow{ margin-top:0; }
.auth-card h2{ font-size:2.3rem; font-weight:900; text-transform:uppercase; margin-top:10px; }
.auth-card p{ margin-top:16px; color:#cfcbc2; max-width:44ch; }
.auth-card .btn{ margin-top:26px; }
.auth-word{ text-align:right; }
.auth-word .big{ font-size:clamp(2.6rem,6vw,4.2rem); font-weight:900; text-transform:uppercase; }
.auth-word .script{ font-size:2.6rem; color:var(--gold); display:block; margin-top:6px; }
@media (max-width:900px){ .auth-word{ display:none; } }

/* Témoignages */
section.quotes-sec{ padding:90px 0; border-top:1px solid var(--line); }
.quotes{ margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media (max-width:860px){ .quotes{grid-template-columns:1fr;} }
.quote{ border-left:2px solid var(--gold); padding-left:22px; }
.quote p{ font-size:1.05rem; }
.quote footer{ margin-top:14px; font-size:0.78rem; color:var(--mist); }
.quote footer b{ color:var(--paper); display:block; font-weight:600; }

/* Avant-premières */
section.premieres{ padding:90px 0; border-top:1px solid var(--line); }
.premieres-grid{ margin-top:36px; display:grid; grid-template-columns:1.6fr 1fr; gap:32px; align-items:center; }
@media (max-width:860px){ .premieres-grid{grid-template-columns:1fr;} }
.premieres-grid figure img{ width:100%; aspect-ratio:3/2; object-fit:cover; border:1px solid var(--line); }
.premieres-grid figcaption{ font-size:0.78rem; color:var(--mist); margin-top:10px; }

/* Actu */
section.actu{ padding:80px 0; border-top:1px solid var(--line); }
.social-row{ margin-top:30px; display:flex; flex-wrap:wrap; gap:14px; }
.social-link{ display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:12px 20px; font-size:0.82rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; transition:border-color .2s ease, color .2s ease; }
.social-link:hover{ border-color:var(--gold); color:var(--gold); }
.li-feed{ margin-top:44px; }
.li-feed h3{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--mist); margin-bottom:18px; font-weight:600; }
.li-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:860px){ .li-grid{grid-template-columns:1fr;} }
.li-card{ background:var(--panel); border:1px solid var(--line); padding:22px; display:flex; flex-direction:column; gap:14px; }
.li-card .li-date{ font-size:0.72rem; color:var(--gold); letter-spacing:0.05em; text-transform:uppercase; }
.li-card p{ font-size:0.92rem; }
.li-card a.li-open{ font-size:0.76rem; font-weight:600; color:var(--gold); letter-spacing:0.04em; text-transform:uppercase; margin-top:auto; }

/* FAQ */
section.faq{ padding:90px 0; border-top:1px solid var(--line); }
.faq-list{ margin-top:32px; max-width:860px; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ cursor:pointer; list-style:none; padding:22px 40px 22px 0; font-weight:700; font-size:1.05rem; position:relative; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); color:var(--gold); font-size:1.5rem; font-weight:400; }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ color:#cfcbc2; padding:0 0 22px; max-width:70ch; }

/* Contact */
section.contact{ padding:90px 0; border-top:1px solid var(--line); background:linear-gradient(180deg,#0f0d09,#0a0a0a 60%); }
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start; }
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:36px;} }
.contact-aside .direct{ margin-top:26px; font-size:0.9rem; color:var(--mist); }
.contact-aside .direct a{ color:var(--gold); border-bottom:1px solid currentColor; }
.contact-aside blockquote{ margin-top:36px; }
form.contact-form{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:560px){ form.contact-form{grid-template-columns:1fr;} }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--mist); font-weight:600; }
.field label .req{ color:var(--gold); }
.field input, .field select, .field textarea{
  font:400 1rem/1.4 'Archivo', sans-serif; color:var(--paper); background:var(--panel);
  border:1px solid rgba(245,243,238,0.22); padding:13px 14px; border-radius:0; width:100%;
}
.field select{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%); background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size:5px 5px; background-repeat:no-repeat; padding-right:36px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field input[type=date]{ color-scheme:dark; }
.field textarea{ min-height:130px; resize:vertical; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-foot{ grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; }
.form-foot small{ color:var(--mist); font-size:0.76rem; max-width:46ch; }
.form-foot small a{ text-decoration:underline; }
.form-status{ grid-column:1 / -1; font-size:0.9rem; min-height:1.4em; }
.form-status.ok{ color:#9fd49b; }
.form-status.err{ color:#f0a39a; }

/* Footer */
footer.site{ border-top:1px solid var(--line); padding:44px 0 110px; }
.foot-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:22px; }
.foot-links{ display:flex; flex-wrap:wrap; gap:10px 24px; font-size:0.82rem; color:var(--mist); }
.foot-links a:hover{ color:var(--gold); }
.socials{ display:flex; gap:12px; }
.socials a{ width:40px; height:40px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.78rem; font-weight:700; }
.socials a:hover{ border-color:var(--gold); color:var(--gold); }
.copy{ width:100%; font-size:0.76rem; color:var(--mist); margin-top:6px; }
@media (min-width:901px){ footer.site{ padding-bottom:44px; } }

/* Barre de contact mobile */
.sticky-cta{ display:none; }
@media (max-width:900px){
  .sticky-cta{ display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:35; transition:transform .25s ease, opacity .25s ease; }
  .sticky-cta a{ flex:1; text-align:center; padding:15px; background:var(--gold); color:var(--ink); font-weight:700; letter-spacing:0.06em; text-transform:uppercase; font-size:0.82rem; box-shadow:0 8px 30px rgba(0,0,0,0.5); }
  .sticky-cta.is-hidden{ transform:translateY(140%); opacity:0; pointer-events:none; }
  body.menu-open .sticky-cta{ display:none; }
}

/* ── Titre principal : nom en très grand + métier lu par Google ── */
h1.name .name-big{ display:block; }
h1.name .h1-role{ display:block; margin-top:18px; font-size:clamp(1.05rem,2.1vw,1.45rem); line-height:1.3; font-weight:700; text-transform:none; letter-spacing:0; color:var(--paper); max-width:32ch; }
.eyebrow.loc{ margin-top:12px; }

/* ── Bande de faits sous l'accueil ── */
.facts{ display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); }
.facts > div{ padding:22px 24px; border-right:1px solid var(--line); }
.facts > div:last-child{ border-right:0; }
.facts b{ display:block; font-weight:900; font-size:1.25rem; text-transform:uppercase; line-height:1.15; font-variant-numeric:tabular-nums; }
.facts span{ display:block; color:var(--mist); font-size:0.8rem; margin-top:4px; }
@media (max-width:900px){ .facts{ grid-template-columns:1fr 1fr; } .facts > div:nth-child(2){ border-right:0; } .facts > div:nth-child(-n+2){ border-bottom:1px solid var(--line); } }

/* ── Grille des prestations ── */
section.prestations{ padding:90px 0; border-top:1px solid var(--line); }
.svc-grid{ margin-top:36px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .svc-grid{ grid-template-columns:1fr; } }
.svc-grid a{ background:var(--ink); padding:26px 24px; display:flex; flex-direction:column; gap:8px; transition:background .2s ease; }
.svc-grid a:hover{ background:var(--panel); }
.svc-grid h3{ font-size:1.05rem; font-weight:900; text-transform:uppercase; line-height:1.2; }
.svc-grid p{ color:var(--mist); font-size:0.88rem; }
.svc-grid .go{ margin-top:auto; padding-top:8px; font-size:0.74rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); }

/* ── Téléphone ── */
.tel-link{ font-weight:700; font-size:0.9rem; letter-spacing:0.02em; white-space:nowrap; }
.tel-link:hover{ color:var(--gold); }
@media (max-width:900px){ header.site .bar > .tel-link{ display:none; } }
.sticky-cta .call{ flex:0 0 auto; background:var(--paper); margin-right:8px; padding:15px 18px; }

/* ── Pages de prestations ── */
.crumbs{ font-size:0.78rem; color:var(--mist); padding-top:22px; }
.crumbs a:hover{ color:var(--gold); }
.svc-hero{ display:grid; grid-template-columns:1.15fr 1fr; gap:48px; align-items:center; padding:28px 0 64px; border-bottom:1px solid var(--line); }
@media (max-width:900px){ .svc-hero{ grid-template-columns:1fr; gap:28px; } }
.svc-hero h1{ font-size:clamp(2rem,4.6vw,3.3rem); font-weight:900; text-transform:uppercase; line-height:1.02; margin-top:12px; }
.svc-hero .intro{ color:#cfcbc2; margin-top:18px; font-size:1.05rem; max-width:58ch; }
.svc-hero .hero-actions{ margin-top:28px; }
.svc-photo{ aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); }
.svc-photo img{ width:100%; height:100%; object-fit:cover; }
.svc-body{ display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:64px 0; border-bottom:1px solid var(--line); }
@media (max-width:860px){ .svc-body{ grid-template-columns:1fr; gap:36px; } }
.svc-body h2{ font-size:1.4rem; font-weight:900; text-transform:uppercase; }
.svc-body ul{ margin-top:16px; padding-left:18px; color:#cfcbc2; }
.svc-body li{ margin-top:8px; }
.steps{ list-style:none; margin-top:18px; padding:0 !important; counter-reset:s; }
.steps li{ counter-increment:s; position:relative; padding-left:46px; margin-top:18px; }
.steps li::before{ content:counter(s); position:absolute; left:0; top:0; width:30px; height:30px; border:1px solid var(--gold); color:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.85rem; }
.steps b{ color:var(--paper); display:block; }
.svc-formats{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; list-style:none; padding:0 !important; }
.svc-formats li{ margin:0; font-size:0.76rem; letter-spacing:0.04em; text-transform:uppercase; border:1px solid var(--line); padding:6px 12px; color:var(--mist); }
.svc-cta{ padding:64px 0; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.svc-cta h2{ font-size:clamp(1.5rem,3vw,2rem); font-weight:900; text-transform:uppercase; max-width:22ch; }
.svc-cta p{ color:var(--mist); margin-top:8px; }
.svc-cta .acts{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.svc-others{ padding:56px 0 80px; }
.svc-others h2{ font-size:0.82rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--mist); }
.svc-others ul{ list-style:none; margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; }
.svc-others a{ display:inline-block; border:1px solid var(--line); padding:10px 16px; font-size:0.84rem; }
.svc-others a:hover{ border-color:var(--gold); color:var(--gold); }

.svc-grid a.wide{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:8px 24px; background:linear-gradient(90deg,#16120b,var(--ink) 70%); }
.svc-grid a.wide h3{ flex:0 1 auto; min-width:0; color:var(--gold); }
.svc-grid a.wide p{ flex:1 1 280px; min-width:0; }
.svc-grid a.wide .go{ margin-top:0; padding-top:0; }

/* ── Vidéo de fond de l'accueil (muette, en boucle) ── */
.hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; z-index:0; background:transparent; }
.hero-img{ z-index:0; }
@media (max-width:720px){
  .hero-video{ inset:auto; top:0; left:0; height:auto; aspect-ratio:4/5; object-position:50% 30%; }
}
@media (prefers-reduced-motion: reduce){ .hero-video{ display:none; } }

/* ── Cartes TV / Radio / Live : 3 colonnes ── */
.fourup{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .fourup{ grid-template-columns:repeat(3,1fr); } .card{ padding:18px; } .card h3{ font-size:1.3rem; } .card p{ display:none; } }
@media (max-width:560px){ .fourup{ grid-template-columns:1fr; } .card{ aspect-ratio:1/1; } .card p{ display:block; } }

/* ── Bandeau défilant des logos clients ── */
.marquee{ display:flex; overflow:hidden; margin-top:22px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.marquee-track{ display:flex; flex:0 0 auto; gap:14px; padding-right:14px; list-style:none; margin:0; animation:defile 70s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track li{ flex:0 0 auto; height:84px; padding:14px 24px; background:#f5f3ee; border-radius:6px; display:flex; align-items:center; }
.marquee-track img{ height:56px; width:auto; max-width:190px; object-fit:contain; }
@keyframes defile{ from{ transform:translateX(0); } to{ transform:translateX(-100%); } }
@media (max-width:560px){ .marquee-track li{ height:68px; padding:10px 16px; } .marquee-track img{ height:44px; max-width:150px; } }
@media (prefers-reduced-motion: reduce){
  .marquee{ -webkit-mask-image:none; mask-image:none; }
  .marquee-track{ animation:none; flex-wrap:wrap; flex:1 1 auto; }
  .marquee-track[aria-hidden="true"]{ display:none; }
}
/* pastilles de logos de largeur égale */
.marquee-track li{ width:200px; justify-content:center; padding:14px 20px; }
.marquee-track img{ max-width:100%; height:52px; }
@media (max-width:560px){ .marquee-track li{ width:150px; padding:10px 14px; } .marquee-track img{ height:40px; } }

/* ── Cartes TV / Radio / Live : texte dans un bloc coloré ── */
.card::before{ background:linear-gradient(to top, rgba(10,10,10,0.35), rgba(10,10,10,0) 45%); }
.card-txt{ background:rgba(204,154,61,0.95); color:var(--ink); padding:9px 16px 10px; margin:0 -8px -8px; box-shadow:0 10px 30px rgba(0,0,0,0.35); }
.card-txt h3{ color:var(--ink); }
.card-txt p{ color:#2a2418 !important; margin-top:4px; }
.card-txt .go{ color:var(--ink); display:inline-block; margin-top:4px; border-bottom:1px solid currentColor; }
.card:hover .card-txt{ background:var(--paper); }
@media (max-width:900px){ .card-txt{ padding:8px 12px 9px; margin:0 -6px -6px; } }
.card-txt h3{ font-size:1.35rem; line-height:1.1; }

/* ── Actualité ── */
.actu-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }
@media (max-width:900px){ .actu-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .actu-grid{ grid-template-columns:1fr; } }
.actu-card{ display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); transition:border-color .2s ease, transform .2s ease; }
.actu-card:hover{ border-color:var(--gold); transform:translateY(-2px); }
.actu-visuel{ aspect-ratio:16/9; overflow:hidden; background:#000; }
.actu-visuel img{ width:100%; height:100%; object-fit:cover; }
.actu-visuel.logo{ background:#f5f3ee; display:flex; align-items:center; justify-content:center; padding:24px 40px; }
.actu-visuel.logo img{ width:auto; height:auto; max-width:75%; max-height:70px; object-fit:contain; }
.actu-body{ padding:20px 22px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.actu-meta{ color:var(--gold); font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:600; }
.actu-body h3{ font-size:1.05rem; font-weight:900; line-height:1.25; }
.actu-body p{ color:var(--mist); font-size:0.88rem; }
.actu-body .go{ margin-top:auto; padding-top:6px; font-size:0.74rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); }
.actu-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:28px; }
.actu-foot .social-row{ margin-top:0; }
.actu-liste{ padding:24px 0 64px; }
.actu-rss{ margin-top:28px; font-size:0.8rem; color:var(--mist); }
.actu-rss a{ text-decoration:underline; }
.actu-head{ padding:24px 0 8px; max-width:820px; }
.actu-head h1{ font-size:clamp(1.8rem,4vw,2.8rem); font-weight:900; text-transform:uppercase; line-height:1.08; margin-top:12px; }
.actu-head .intro{ color:#cfcbc2; margin-top:16px; font-size:1.05rem; }
.actu-layout{ display:grid; grid-template-columns:1.4fr 1fr; gap:48px; padding:32px 0 56px; align-items:start; }
@media (max-width:860px){ .actu-layout{ grid-template-columns:1fr; } }
.actu-texte p{ color:#d8d4cb; margin-top:14px; max-width:65ch; }
.actu-texte p:first-child{ margin-top:0; }
.actu-lien{ margin-top:24px !important; }
.actu-lien a{ color:var(--gold); font-weight:600; }
.actu-partage{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:24px; }
.actu-partage span{ font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--mist); }
.actu-partage a{ border:1px solid var(--line); padding:8px 14px; font-size:0.8rem; }
.actu-partage a:hover{ border-color:var(--gold); color:var(--gold); }
.actu-visuel.grand{ aspect-ratio:4/3; }
.actu-infos{ margin-top:18px; display:grid; gap:10px; }
.actu-infos div{ display:grid; grid-template-columns:90px 1fr; gap:10px; border-bottom:1px solid var(--line); padding-bottom:8px; font-size:0.88rem; }
.actu-infos dt{ color:var(--mist); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; padding-top:2px; }
/* Actualité — fiche événement (F46) */
.actu-client{ font-weight:900; font-size:0.95rem; text-transform:uppercase; letter-spacing:0.02em; }
.actu-top{ display:grid; grid-template-columns:1.15fr 1fr; gap:40px; padding:24px 0 8px; align-items:start; }
@media (max-width:860px){ .actu-top{ grid-template-columns:1fr; gap:24px; } }
.actu-top .actu-visuel.grand{ aspect-ratio:4/3; }
.actu-entreprise{ font-weight:900; font-size:clamp(1.6rem,3.6vw,2.4rem); text-transform:uppercase; line-height:1; margin-top:8px; color:var(--gold); }
.actu-resume h1{ font-size:clamp(1.25rem,2.4vw,1.7rem); font-weight:900; line-height:1.18; margin-top:14px; }
.actu-h{ font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--mist); font-weight:600; margin-top:24px; }
.actu-bref{ color:#e6e2d9; margin-top:8px; font-size:1.02rem; }
.actu-missions{ list-style:none; margin-top:10px; display:grid; gap:8px; padding:0; }
.actu-missions li{ position:relative; padding-left:26px; color:#e6e2d9; font-size:0.95rem; }
.actu-missions li::before{ content:""; position:absolute; left:0; top:0.45em; width:12px; height:12px; background:var(--gold); }
.actu-galerie{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:28px; }
@media (max-width:700px){ .actu-galerie{ grid-template-columns:1fr 1fr; } }
.actu-galerie figure{ margin:0; aspect-ratio:3/2; overflow:hidden; background:#000; }
.actu-galerie img{ width:100%; height:100%; object-fit:cover; }
.actu-autres{ padding:48px 0 56px; border-top:1px solid var(--line); }
/* Réseaux sur la vidéo d'accueil (F52) */
.hero-socials{ display:flex; gap:10px; margin-left:auto; }
.hero-socials[hidden]{ display:none; }
.hero-socials .hs{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--paper); background:rgba(10,10,10,.45); border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.hero-socials .hs[hidden]{ display:none; }
.hero-socials .hs:hover, .hero-socials .hs:focus-visible{ background:var(--gold); border-color:var(--gold); color:var(--ink); transform:translateY(-2px); }
@media (max-width:640px){ .hero-socials{ margin-left:0; } .hero-socials .hs{ width:40px; height:40px; } }
.about-35{ color:var(--paper) !important; }
.about-35 b{ color:var(--gold); }
/* Pages À propos et Avant-premières (F53, F54) */
.perso-hero{ display:grid; grid-template-columns:minmax(220px,380px) 1fr; gap:48px; align-items:center; padding:24px 0 48px; }
@media (max-width:760px){ .perso-hero{ grid-template-columns:1fr; gap:24px; } .perso-hero img{ max-width:320px; } }
.perso-hero img{ width:100%; border:1px solid var(--line); }
.perso-hero h1{ font-size:clamp(2rem,4.6vw,3.2rem); font-weight:900; text-transform:uppercase; line-height:1.02; margin-top:10px; }
.perso-hero .intro{ color:#d8d4cb; margin-top:18px; font-size:1.08rem; max-width:60ch; }
.perso-chiffres{ list-style:none; padding:0; margin-top:26px; display:flex; flex-wrap:wrap; gap:14px; }
.perso-chiffres li{ border:1px solid var(--line); padding:14px 18px; display:flex; flex-direction:column; min-width:150px; }
.perso-chiffres b{ color:var(--gold); font-size:1.25rem; font-weight:900; }
.perso-chiffres span{ color:var(--mist); font-size:0.8rem; }
.perso-bloc{ padding:48px 0; border-top:1px solid var(--line); }
.perso-cols{ columns:2 320px; column-gap:40px; margin-top:20px; }
.perso-cols p{ color:#d8d4cb; margin:0 0 16px; break-inside:avoid; }
.perso-timeline{ margin-top:28px; max-width:760px; }
.perso-timeline .t-when{ color:var(--gold); font-size:0.74rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; }
.perso-timeline .t-desc{ font-size:0.92rem; max-width:60ch; }
.perso-methode{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-top:24px; }
.perso-methode div{ border:1px solid var(--line); padding:20px; }
.perso-methode h3{ font-weight:900; text-transform:uppercase; font-size:1rem; color:var(--gold); }
.perso-methode p{ color:#d8d4cb; margin-top:8px; font-size:0.92rem; }
.perso-bloc .actu-grid{ margin-top:24px; }
.pele-mele{ columns:4 220px; column-gap:22px; margin-top:32px; }
.pm-item{ break-inside:avoid; margin:0 0 26px; background:none; padding:0; box-shadow:none; transform:rotate(-1.6deg); transition:transform .25s ease; }
.pm-item:nth-child(3n){ transform:rotate(1.4deg); }
.pm-item:nth-child(4n+1){ transform:rotate(-0.6deg); }
.pm-item:nth-child(5n){ transform:rotate(2.2deg); }
.pm-item:hover{ transform:rotate(0) scale(1.03); position:relative; z-index:2; }
.pm-item img{ width:100%; border-radius:3px; box-shadow:0 12px 26px rgba(0,0,0,.55); }
.pm-item figcaption{ color:var(--gold); font-family:"Caveat",cursive; font-size:1.2rem; line-height:1.15; margin-top:6px; text-align:center; }
@media (prefers-reduced-motion: reduce){ .pm-item, .pm-item:nth-child(n){ transform:none; } }
.pm-videos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:20px; }
.pm-video{ margin:0; }
.pm-video iframe{ width:100%; aspect-ratio:16/9; border:0; }
.pm-video figcaption{ color:var(--mist); font-size:0.85rem; margin-top:6px; }
/* Galerie des pages de prestation (F71) */
.svc-galerie{ padding:8px 0 48px; }
.svc-galerie h2{ font-weight:900; text-transform:uppercase; font-size:1.3rem; }
.svc-galerie .actu-galerie{ margin-top:18px; }
.svc-galerie-titre{ margin-top:28px; color:var(--gold); font-size:0.8rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; }
