/* NUMMI · navigation (bouton Menu + menu plein écran), accueil animé et en-têtes de pages */

/* Barre du haut : logo, Espace client, Prendre rendez-vous, Menu */
#mainNav .nav-burger { display:none !important; }
.nav-menu-btn { display:flex; align-items:center; gap:10px; background:none; border:0; cursor:pointer; padding:8px 0 8px 6px; color:var(--kaki); font-family:var(--serif); font-size:1rem; }
.nmb-lines { display:flex; flex-direction:column; gap:6px; width:24px; }
.nmb-lines span { display:block; height:1px; background:currentColor; }
.nav-menu-btn:hover .nmb-lines span:last-child { width:70%; }
.nmb-lines span:last-child { transition:width .25s; width:100%; }
@media(max-width:700px){ #mainNav .nav-client { display:none !important; } .nmb-txt { display:none; } }
@media(max-width:420px){ #mainNav .nav-cta { display:none !important; } }

/* Menu plein écran */
#mobileMenu { position:fixed !important; inset:0 !important; z-index:300 !important; background:var(--kaki) !important; color:var(--blanc);
  display:flex !important; flex-direction:column; justify-content:center; padding:96px clamp(24px,6vw,96px) 40px !important;
  opacity:0; visibility:hidden; transform:none !important; transition:opacity .45s ease, visibility .45s; overflow:hidden; }
#mobileMenu.open { opacity:1; visibility:visible; }
#mobileMenu .mm-close { position:absolute; top:24px; right:clamp(24px,4vw,48px); background:none; border:0; color:var(--cream); font-family:var(--serif); font-size:1rem; cursor:pointer; display:flex; gap:10px; align-items:center; }
#mobileMenu .mm-close span { font-size:1.6rem; line-height:1; }
.mm-nav { display:flex; flex-direction:column; align-items:flex-start; gap:clamp(4px,1vh,12px); position:relative; z-index:1; }
#mobileMenu .mm-link { font-family:var(--serif) !important; font-weight:300 !important; font-size:clamp(2rem,5vw,3.8rem) !important; line-height:1.15; color:var(--cream) !important;
  text-transform:none !important; letter-spacing:-.01em !important; border:0 !important; padding:0 !important; opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease, color .2s; width:max-content; max-width:100%; }
#mobileMenu.open .mm-link { opacity:1; transform:none; }
#mobileMenu.open .mm-link:nth-child(2){transition-delay:.04s} #mobileMenu.open .mm-link:nth-child(3){transition-delay:.08s}
#mobileMenu.open .mm-link:nth-child(4){transition-delay:.12s} #mobileMenu.open .mm-link:nth-child(5){transition-delay:.16s} #mobileMenu.open .mm-link:nth-child(6){transition-delay:.2s}
#mobileMenu .mm-link:hover, #mobileMenu .mm-link[aria-current="page"] { font-style:italic; color:var(--blanc) !important; }
.mm-foot { position:relative; z-index:1; margin-top:clamp(36px,6vh,64px); padding-top:24px; border-top:1px solid rgba(234,229,223,.35); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 40px; }
.mm-foot p { font-family:var(--serif); font-size:.95rem; line-height:1.6; color:var(--cream); }
.mm-foot a, .mm-foot button { color:inherit; background:none; border:0; padding:0; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

/* Accueil : fond noir, pièces d'or en couleur naturelle, logotype déposé « NUMMI / GESTION PRIVÉE » */
body[data-page="index"] { --logo:var(--blanc); }
body[data-page="index"] #mainNav { background:transparent !important; border-bottom-color:transparent !important; box-shadow:none !important; }
body[data-page="index"] #mainNav .nav-logo { opacity:0; pointer-events:none; }
body[data-page="index"] #mainNav .nav-client, body[data-page="index"] #mainNav .nav-cta, body[data-page="index"] .nav-menu-btn { color:var(--cream) !important; border-color:rgba(234,229,223,.5) !important; }
body[data-page="index"] #mainNav .nav-cta:hover { background:var(--cream) !important; color:var(--noir) !important; }
#home-hero { position:relative; height:calc(100svh - 48px); min-height:560px; overflow:hidden; background:var(--noir); color:var(--blanc); display:flex; align-items:center; justify-content:center; }
.hs-slides { position:absolute; inset:0; }
.hs-slide { position:absolute; inset:-4%; background:transparent center/cover no-repeat; opacity:0; transform:scale(1.02); transition:opacity 2.2s ease; }
.hs-slide.is-on { opacity:1; animation:hsZoom 9s ease-out forwards; }
@keyframes hsZoom { from { transform:scale(1.02); } to { transform:scale(1.12); } }
.hs-veil { position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(30,25,21,.42) 0%, rgba(30,25,21,.5) 50%, rgba(30,25,21,.82) 100%); }
.hs-content { position:relative; z-index:2; width:100%; padding:0 clamp(20px,4vw,56px); text-align:center; display:flex; flex-direction:column; align-items:center; }
.hs-logo { display:block; width:min(86vw,760px); height:auto; margin:0 auto clamp(36px,5vh,56px); }
@media(max-width:600px){ .hs-logo { width:84vw; } }
.hs-title { font-family:var(--titling) !important; font-stretch:118%; font-weight:500 !important; text-transform:uppercase; letter-spacing:.06em !important; font-size:clamp(.66rem,.95vw,.78rem) !important; line-height:1.6; color:var(--cream); margin-bottom:8px; }
.hs-line { font-family:var(--serif); font-size:clamp(.95rem,1.2vw,1.05rem); color:var(--cream); margin-bottom:clamp(28px,4vh,40px); opacity:.85; }
.hs-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; justify-content:center; }
.hs-btn { font-family:var(--titling); font-stretch:118%; font-weight:500; text-transform:uppercase; letter-spacing:.06em; font-size:.66rem; color:var(--noir); background:var(--cream); padding:17px 32px; transition:background .25s; }
.hs-btn:hover { background:var(--blanc); }
.hs-link { background:none; border:0; border-bottom:1px solid rgba(234,229,223,.6); color:var(--cream); font-family:var(--serif); font-size:1rem; padding:2px 0; cursor:pointer; }
/* Bandeau défilant noir sous l'accueil */
body[data-page="index"] .ticker-wrap { background:var(--noir) !important; border-top:1px solid rgba(234,229,223,.12); }

/* Pages intérieures : en-tête beige, typographie seule, même gabarit sur toutes les pages */
.page-head { background:var(--cream); padding:clamp(140px,18vh,200px) clamp(20px,6vw,96px) clamp(64px,8vw,104px); border-bottom:1px solid rgba(101,104,82,.25); }
.ph-inner { max-width:1180px; }
.page-head .t-eyebrow { margin-bottom:22px; }
.page-h1 { font-family:var(--serif); font-weight:300; font-size:clamp(2.4rem,4.6vw,4.2rem); line-height:1.06; letter-spacing:-.015em; color:var(--noir); max-width:15em; font-variation-settings:"opsz" 72; }
.page-h1 em { color:var(--sage); font-style:italic; }
.page-lead { font-family:var(--serif); font-size:1.12rem; line-height:1.75; color:#463F38; max-width:38em; margin-top:28px; }
.page-stats { display:flex; gap:clamp(40px,7vw,112px); margin-top:48px; }
.page-stats .stat-number { font-family:var(--serif); font-weight:300; font-size:clamp(2.6rem,4vw,3.6rem); color:var(--kaki); }
.page-stats .stat-unit { color:var(--kaki); }
.page-stats .stat-label { color:#463F38 !important; }
body[data-page="contact"] main > section:first-child { padding-top:clamp(140px,18vh,200px) !important; }

/* Rythme vertical identique pour toutes les sections (ni trop serré, ni trop vide) */
:root { --sec:clamp(80px,9vw,128px); }
main > section, main > section.obj-section { padding-top:var(--sec) !important; padding-bottom:var(--sec) !important; }
#confiance { padding-top:clamp(56px,6vw,80px) !important; padding-bottom:clamp(56px,6vw,80px) !important; }
/* Alternance des fonds : jamais deux blocs de même couleur l'un sous l'autre */
body[data-page="questions"] #faq { background:var(--blanc) !important; }
body[data-page="nos-solutions"] #objectifs { background:var(--blanc) !important; }
body[data-page="nos-solutions"] #solutions { background:var(--cream) !important; }
/* FAQ : le titre est déjà dans l'en-tête de page */
body[data-page="questions"] #faq .faq-header { display:none; }
body[data-page="questions"] #faq { padding-top:clamp(56px,8vw,100px) !important; }

/* Pas de monogramme en filigrane dans les en-têtes des pages solutions */
.sol-hero-right-bg img { display:none !important; }

/* Pied de page sur toute la largeur, aligné sur la barre du haut */
.site-footer { padding-left:clamp(20px,3.4vw,48px) !important; padding-right:clamp(20px,3.4vw,48px) !important; }
.sf-top, .sf-bottom { max-width:none !important; }
.sf-logo { height:46px !important; width:auto !important; }
@media(max-width:760px){ .sf-top { grid-template-columns:1fr 1fr !important; } .sf-brand { grid-column:1 / -1; } .sf-bottom { flex-direction:column; gap:14px; } }
/* Logotype officiel dans la barre du haut : assez grand pour que « Gestion privée » reste lisible */
.nav-logo-img { height:46px !important; }
@media(max-width:900px){ .nav-logo-img { height:34px !important; } }

/* Pages solutions : retour vers la liste placé en fil d'Ariane, au-dessus du titre (plus dans la barre du haut) */
.nav-back { display:none !important; }
.crumbs { display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:.95rem; color:#463F38; margin-bottom:clamp(28px,4vh,44px); }
.crumbs a { color:var(--kaki); border-bottom:1px solid rgba(101,104,82,.35); }
.crumbs a:hover { border-bottom-color:var(--kaki); }
.crumbs span[aria-hidden] { color:var(--sage); }
/* Titres : même couleur sur toutes les pages */
.sol-hero-left h1, .sol-hero-left h1 em { color:var(--noir) !important; }
.ap-hero-name em { color:inherit !important; }

/* Comparatif : défilement horizontal propre sur mobile, sans colonne coupée */
@media(max-width:760px){
  .posit-scroll { overflow-x:auto !important; -webkit-overflow-scrolling:touch; margin-right:calc(-1 * clamp(20px,6vw,40px)); padding-right:clamp(20px,6vw,40px); }
  .posit-table { min-width:640px !important; grid-template-columns:120px 1fr 1fr 1fr !important; }
  .posit-cell, .posit-col-header { padding:14px 16px !important; }
  .posit-scroll::after { content:'Faites défiler →'; display:block; font-family:var(--serif); font-size:.85rem; color:var(--kaki); margin-top:14px; }
}
