/* ==========================================================================
   Pages niches : /entreprise/, /mariages-et-evenements-prives/, /lieux/ (et leurs versions EN)
   Complète site.css sans le toucher. Toutes les classes propres sont préfixées nx-.
   Jetons, cadres, légendes, hero, roster et engagement de remplacement viennent de site.css.
   Lisible sans JS : le conducteur n'active son effet que sous .nx-js (niches.js).
   ========================================================================== */

/* ---------- Hero : cadrage par page ---------- */
.page-niche .hero-titre{font-size:clamp(52px, 7.6vw, 136px);max-width:13ch}
.page-niche .hero-ombre{background:linear-gradient(to top, rgba(14,13,11,.82) 0%, rgba(14,13,11,.5) 40%, rgba(14,13,11,.12) 70%), linear-gradient(to right, rgba(14,13,11,.45) 0%, rgba(14,13,11,0) 60%), linear-gradient(to bottom, rgba(14,13,11,.5) 0%, rgba(14,13,11,0) 22%)}
.page-niche .hero-sur,.nx-fil{text-shadow:0 1px 12px rgba(14,13,11,.8)}
.page-niche .hero-sur{max-width:40ch;line-height:1.5}
.page-lieux .hero-cadre .ph img{object-position:66% 50%}
.page-fetes .hero-cadre .ph img{object-position:55% 55%}
.nx-fil{display:flex;flex-wrap:wrap;gap:6px 10px;margin-bottom:18px;color:rgba(255,255,255,.72)}
.nx-fil a{color:inherit;text-decoration:none;min-height:24px;display:inline-flex;align-items:center}
.nx-fil a:hover{color:var(--blanc);text-decoration:underline;text-underline-offset:4px}
.nx-fil span[aria-hidden]{color:var(--sable)}

/* ---------- Titres de section ---------- */
.nx-label{display:block;color:var(--brun);margin-bottom:18px}
.nx-h2{font-family:var(--serif);font-weight:400;color:var(--canard);font-size:clamp(44px, 5.8vw, 96px);line-height:.95;letter-spacing:-.02em}
.nx-h2 em{font-style:italic}
.nx-chapo{margin-top:24px;font-weight:300;font-size:18px;max-width:44ch;color:var(--encre-doux)}

/* ---------- Ce qu'on couvre ---------- */
.nx-couvre{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);gap:clamp(48px, 7vw, 128px);align-items:start}
.nx-couvre-media{position:relative;padding-bottom:18%}
.nx-couvre-media .cadre-grand .ph{height:auto;aspect-ratio:4/5}
.nx-couvre-media .nx-mini{position:absolute;width:48%;right:-6%;bottom:0;padding:8px 8px 0;z-index:2}
.nx-couvre-media .nx-mini .ph{aspect-ratio:1/1}
.nx-couvre-media .nx-mini .legende{padding:8px 0 9px;font-size:9.5px}
.nx-types{margin-top:40px;border-top:1px solid var(--encre)}
.nx-type{display:grid;grid-template-columns:52px minmax(0, 1fr);gap:4px 20px;padding:22px 0 20px;border-bottom:1px solid var(--filet)}
.nx-type b{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.5;color:var(--brun)}
.nx-type h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px, 3vw, 46px);line-height:1.02;letter-spacing:-.012em;color:var(--encre)}
.nx-type h3 em{font-style:italic;color:var(--canard)}
.nx-type p{grid-column:2;font-size:15.5px;font-weight:300;color:var(--encre-doux);max-width:52ch}
@media (min-width:900px){
  .nx-couvre-texte{padding-top:clamp(0px, 4vh, 48px)}
  .nx-couvre-media{position:sticky;top:calc(var(--tete-h) + 32px)}
}
@media (max-width:899px){
  .nx-couvre{grid-template-columns:1fr;gap:56px}
  .nx-couvre-media{max-width:560px;padding-bottom:22%}
  .nx-couvre-media .nx-mini{width:44%;right:calc(var(--gutter) * -.5)}
  .nx-type{grid-template-columns:40px minmax(0, 1fr);gap:4px 14px}
}

/* ---------- Le conducteur : comment se passe la soirée (section de nuit) ---------- */
.nx-nuit{background:var(--canard-profond);color:var(--creme);position:relative;margin-top:clamp(88px, 14vh, 160px)}
.nx-nuit .nx-label{color:var(--sable)}
.nx-nuit .nx-h2{color:var(--creme)}
.nx-nuit .nx-h2 em{color:var(--sable)}
.nx-nuit .nx-chapo{color:rgba(243,235,221,.82)}
.nx-deroule-tete{display:grid;grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr);gap:48px;align-items:end;margin-bottom:clamp(48px, 8vh, 96px)}
.nx-deroule{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr);gap:clamp(40px, 6vw, 110px);align-items:start}
.nx-scene{position:sticky;top:calc(var(--tete-h) + 4vh)}
.nx-scene .cadre{background:var(--creme);box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.nx-scene-ph{position:relative;aspect-ratio:4/5;max-height:70vh;width:100%}
.nx-scene-ph .ph{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}
.nx-scene-ph .ph.on{opacity:1}
.nx-scene-ph .ph img{transform:scale(1.04);transition:transform 1.6s var(--ease-out)}
.nx-scene-ph .ph.on img{transform:none}
.nx-scene .legende{color:rgba(14,13,11,.75)}
.nx-temps-liste{counter-reset:temps;border-top:1px solid rgba(219,190,129,.45)}
.nx-temps{position:relative;display:grid;grid-template-columns:minmax(96px, .34fr) minmax(0, 1fr);gap:8px 28px;padding:30px 0 34px;border-bottom:1px solid rgba(243,235,221,.16);transition:opacity .5s ease}
.nx-temps .nx-heure{margin:0;font-family:var(--serif);font-size:clamp(30px, 2.8vw, 46px);line-height:1;color:var(--cuivre);white-space:nowrap}
.nx-heure small{display:block;margin-top:10px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,235,221,.6);white-space:normal}
.nx-temps h3{font-family:var(--serif);font-weight:400;font-size:clamp(32px, 3.2vw, 52px);line-height:1;letter-spacing:-.012em;color:var(--creme)}
.nx-temps h3 em{font-style:italic;color:var(--sable)}
.nx-temps p{margin-top:14px;font-weight:300;font-size:16.5px;line-height:1.65;color:rgba(243,235,221,.86);max-width:46ch}
.nx-temps-photo{display:none}
.nx-note{margin-top:28px;font-size:13.5px;color:rgba(243,235,221,.66);max-width:56ch}
/* Avec JS, sur grand écran : un temps à la fois, la photo de gauche suit */
@media (min-width:900px){
  .nx-deroule.nx-js .nx-temps{min-height:46vh;display:grid;align-content:center}
  .nx-deroule.nx-js .nx-temps:not(.actif){opacity:.32}
  .nx-deroule.nx-js .nx-temps.actif .nx-heure{color:var(--sable)}
}
@media (max-width:899px){
  .nx-deroule-tete{grid-template-columns:1fr;gap:20px}
  .nx-deroule{grid-template-columns:1fr}
  .nx-scene{display:none}
  .nx-temps{grid-template-columns:1fr;padding:28px 0 32px}
  .nx-temps-photo{display:block;margin-top:20px;background:var(--creme);padding:6px}
  .nx-temps-photo .ph{aspect-ratio:3/2}
}

/* ---------- Les performers qui s'ajoutent ---------- */
.nx-perf{display:grid;grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr);gap:clamp(48px, 7vw, 128px);align-items:center}
.nx-instr{margin-top:36px;border-top:1px solid var(--encre)}
.nx-instr li{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);gap:6px 28px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--filet)}
.nx-instr b{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(32px, 3.4vw, 54px);line-height:1;color:var(--canard)}
.nx-instr span{font-size:15.5px;font-weight:300;color:var(--encre-doux)}
.nx-perf-note{margin-top:22px;font-size:14px;color:var(--encre-doux);max-width:56ch}
.nx-perf .lien{margin-top:22px}
.nx-perf-media .ph{aspect-ratio:4/5}
@media (max-width:899px){
  .nx-perf{grid-template-columns:1fr}
  .nx-perf-media{order:-1;max-width:460px}
  .nx-instr li{grid-template-columns:1fr}
}

/* ---------- Roster filtré : même composant que l'accueil ---------- */
.nx-roster .roster-bloc{margin-top:0}

/* ---------- La fourchette ---------- */
.nx-prix{display:grid;grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);gap:clamp(40px, 6vw, 110px);align-items:start;padding-top:40px;border-top:1px solid var(--encre)}
.nx-montant{margin-top:6px;font-family:var(--serif);font-weight:400;font-size:clamp(52px, 7.4vw, 124px);line-height:.95;letter-spacing:-.025em;color:var(--brun)}
.nx-montant small{display:block;margin-top:16px;font-family:var(--sans);font-size:15px;letter-spacing:0;color:var(--encre-doux)}
.nx-prix .btn{margin-top:32px}
.nx-leviers h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px, 2.4vw, 38px);line-height:1.05;color:var(--canard)}
.nx-leviers ul{margin-top:20px;border-top:1px solid var(--filet)}
.nx-leviers li{display:grid;grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr);gap:4px 20px;padding:14px 0;border-bottom:1px solid var(--filet);font-size:15.5px}
.nx-leviers li b{font-weight:600}
.nx-leviers li span{font-weight:300;color:var(--encre-doux)}
.nx-leviers .mention{margin-top:16px}
.page-niche .engagement{margin-top:clamp(48px, 8vh, 88px)}
@media (max-width:899px){
  .nx-prix{grid-template-columns:1fr}
}
@media (max-width:560px){
  .nx-leviers li{grid-template-columns:1fr}
}

/* ---------- Questions (objections de la niche) ---------- */
.nx-faq{display:grid;grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr);gap:clamp(40px, 6vw, 110px);align-items:start}
.nx-faq-tete{position:sticky;top:calc(var(--tete-h) + 32px)}
.nx-questions{border-top:1px solid var(--encre)}
.nx-questions details{border-bottom:1px solid var(--filet)}
.nx-questions summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0, 1fr) 28px;gap:20px;align-items:center;
  padding:22px 0;min-height:44px;font-family:var(--serif);font-size:clamp(24px, 2.2vw, 34px);line-height:1.12;
}
.nx-questions summary::-webkit-details-marker{display:none}
.nx-questions summary::after{
  content:"";justify-self:end;width:14px;height:14px;
  background:linear-gradient(var(--brun), var(--brun)) center/100% 1.5px no-repeat, linear-gradient(var(--brun), var(--brun)) center/1.5px 100% no-repeat;
  transition:transform .3s var(--ease-out);
}
.nx-questions details[open] summary::after{transform:rotate(45deg)}
.nx-questions summary:focus-visible{outline:2px solid var(--brun);outline-offset:4px}
@media (hover:hover) and (pointer:fine){ .nx-questions summary:hover{color:var(--canard)} }
.nx-reponse{padding:0 44px 26px 0;font-weight:300;font-size:17px;line-height:1.7;color:var(--encre-doux);max-width:62ch}
@media (max-width:899px){
  .nx-faq{grid-template-columns:1fr}
  .nx-faq-tete{position:static}
  .nx-reponse{padding-right:0}
}

/* ---------- Fin de page : bande photo et appel vers /estimer/ ---------- */
.nx-fin{position:relative;min-height:88vh;min-height:88svh;display:flex;align-items:flex-end;color:var(--blanc);overflow:hidden;background:#3a3026}
.nx-fin > .ph{position:absolute;inset:0}
.nx-fin-ombre{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top, rgba(14,13,11,.84) 0%, rgba(14,13,11,.5) 42%, rgba(14,13,11,.1) 80%)}
.nx-fin-corps{position:relative;z-index:2;width:100%;padding-top:120px;padding-bottom:clamp(40px, 9vh, 96px);display:grid;grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr);gap:40px;align-items:end}
.nx-fin .nx-label{color:var(--sable)}
.nx-fin h2{font-family:var(--serif);font-weight:400;font-size:clamp(46px, 6.6vw, 118px);line-height:.93;letter-spacing:-.022em;max-width:13ch}
.nx-fin h2 em{font-style:italic}
.nx-fin p{font-weight:300;font-size:17px;max-width:42ch;color:rgba(255,255,255,.9)}
.nx-fin .hero-actions .btn-contour{color:var(--blanc)}
.nx-fin .signature{margin-bottom:22px}
@media (max-width:899px){
  .nx-fin-corps{grid-template-columns:1fr;gap:20px}
}

/* ---------- Espacements de page ---------- */
.nx-sec{padding-top:clamp(88px, 14vh, 160px)}
.nx-sec-bas{padding-bottom:clamp(88px, 14vh, 160px)}

@media (prefers-reduced-motion: reduce){
  .nx-scene-ph .ph,.nx-scene-ph .ph img,.nx-temps,.nx-questions summary::after{transition:none}
}
.page-lieux .hero-titre{max-width:15ch}
