/* FAssistaNath — styles communs du prototype (accueil + pages).
   Structure et menu : esprit ASUS. Couleurs : DA FassistaNath, légèrement adoucies. Police : Barlow.
   Rendu carré : angles de 2 px, filets de 1 px, couleur en aplats et en blocs nets. */
:root{
  --p:#F97316;--s:#8B21D8;--sd:#7418b8;--sl:#A855F7;
  --t:#1a0e2e;--t2:#4f465e;--t3:#6d6579;
  --bg2:#F5F5F7;--line:#E1E1E7;
  --grad:linear-gradient(135deg,#e0702a,#7f35c6);
  --grad-btn:linear-gradient(135deg,#b8561f,#7a33c2);   /* boutons à texte blanc : contraste ≥ 4,5:1 sur toute la largeur */
  --grad-l:linear-gradient(135deg,#F4A06B,#B58AF0);
  --band:linear-gradient(100deg,#b2541f 0%,#963a86 50%,#7431b8 100%);
  --r:2px;
  --font:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --w:1280px;--pad:clamp(20px,3.2vw,40px);
  --ease:cubic-bezier(.2,.7,.2,1);
  --nav:66px;
  --ok:#157a3f;--err:#b42318;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:#fff;color:var(--t);font:400 17px/1.55 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
svg.i{width:20px;height:20px;flex-shrink:0}
:focus-visible{outline:2px solid var(--s);outline-offset:2px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
.strip{height:4px;background:var(--band)}

/* En-tête (menu collant) */
.mainnav{position:sticky;top:0;z-index:60;background:#fff}
.nav-in{display:flex;align-items:center;gap:40px;height:62px}
.logo{font:800 23px/1 var(--font);letter-spacing:-.01em}
.logo b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.menu{display:flex;height:100%}
.menu li{display:flex}
.mi{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:16px;font-weight:600;color:var(--t2);position:relative;transition:color .15s}
.mi svg{width:14px;height:14px;transition:transform .2s var(--ease)}
.mi[aria-expanded="true"] svg{transform:rotate(180deg)}
.mi:hover,.mi[aria-expanded="true"],.mi.on{color:var(--t)}
.mi:hover::after,.mi[aria-expanded="true"]::after,.mi.on::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:var(--p)}
.nav-r{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:16px;font-weight:600;color:var(--t2)}
.nav-r .txt{transition:color .15s}
.nav-r .txt:hover{color:var(--t)}

/* Grand menu « Nos services » */
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .18s,visibility 0s .18s}
.mega.open{opacity:1;visibility:visible;transition:opacity .18s}
.mega-in{display:grid;grid-template-columns:repeat(4,1fr) 1.15fr;gap:32px;padding-top:30px;padding-bottom:34px;position:relative}
.mega-x{position:absolute;right:var(--pad);top:14px;width:34px;height:34px;display:grid;place-items:center;color:var(--t3);transition:color .15s}
.mega-x:hover{color:var(--t)}
.mega-s{display:flex;flex-direction:column;gap:8px}
.mega-s b{font-size:18px;font-weight:700;margin-top:6px;transition:color .15s}
.mega-s span:last-child{font-size:15px;color:var(--t2);line-height:1.4}
.mega-s:hover b{color:var(--s)}
.mega-cta{border-left:1px solid var(--line);padding-left:32px}
.mega-cta h4{font:700 12px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--p);margin-bottom:10px}
.mega-cta .mc{font:800 24px/1.15 var(--font);margin-bottom:18px}

/* Carré d'icône en dégradé */
.ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r);background:var(--grad);color:#fff;flex-shrink:0}
.ic svg{width:22px;height:22px}

/* Boutons : dégradé de la marque, angles de 2 px ; au survol seule la luminosité change */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad-btn);color:#fff;border-radius:var(--r);padding:11px 22px;font-size:16px;font-weight:700;white-space:nowrap;transition:filter .15s}
.btn:hover{filter:brightness(.88)}
.btn.lg{padding:15px 28px;font-size:17px}
.btn.line{background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;border:2px solid transparent;color:var(--t);padding:13px 26px}
.btn.line:hover{filter:none;background:linear-gradient(var(--bg2),var(--bg2)) padding-box,var(--grad) border-box}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6)}
.btn.ghost:hover{filter:none;box-shadow:inset 0 0 0 1.5px #fff}
.btn svg{width:18px;height:18px}

/* Pied de page */
.foot{background:var(--t);color:rgba(255,255,255,.6);font-size:15px;padding-top:56px}
.foot-g{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px;padding-bottom:40px}
.foot .logo{color:#fff}
.foot .logo b{background:var(--grad-l);-webkit-background-clip:text;background-clip:text;color:transparent}
.foot-g p{margin-top:14px;max-width:24em;line-height:1.55}
.soc{display:flex;gap:10px;margin-top:18px}
.soc a{width:38px;height:38px;border-radius:var(--r);background:var(--grad);display:grid;place-items:center;color:#fff;transition:filter .15s}
.soc a:hover{filter:brightness(1.1)}
.soc svg{width:18px;height:18px}
.foot h4{color:#fff;font:700 15px/1 var(--font);margin-bottom:14px}
.foot li{padding:5px 0}
.foot a{transition:color .15s}
.foot a:hover{color:#fff}
.foot-b{border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:26px;font-size:14px}

/* Menu mobile (sous 1000 px) : liste à filets, sans animation */
.nav-burger{display:none;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r);color:var(--t);transition:border-color .15s}
.nav-burger:hover{border-color:var(--s)}
.nav-burger svg{width:22px;height:22px}
.mnav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);height:calc(100vh - var(--nav));height:calc(100dvh - var(--nav));overflow-y:auto;overscroll-behavior:contain;padding:6px 0 26px}
.mnav[hidden]{display:none}
.mnav-h{margin-top:18px;padding-bottom:8px;border-bottom:2px solid var(--t);font:700 12px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.mnav a{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:600;transition:color .15s}
.mnav a:hover,.mnav a[aria-current]{color:var(--s)}
.mnav .ic{width:36px;height:36px}
.mnav .ic svg{width:18px;height:18px}

@media(max-width:1000px){
  .menu,.nav-r .txt{display:none}
  .nav-burger{display:grid}
  .nav-r{gap:12px}
  .nav-in{gap:16px}
  .mega-in{grid-template-columns:1fr 1fr}
  .mega-cta{border-left:0;padding-left:0}
  .foot-g{grid-template-columns:1fr 1fr}
}

/* Lecteur vidéo (fenêtre plein écran et lecteur intégré) : sans cadre, commandes minimales */
.film{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:clamp(12px,4vw,64px);background:rgba(15,8,24,.95)}
.film[hidden]{display:none}
.film .player{width:min(100%,calc((100vh - 150px) * 16 / 9))}
.player{position:relative}
.player-v{position:relative;aspect-ratio:16/9;background:var(--t)}
.player-v video{display:block;width:100%;height:100%;cursor:pointer}
.player-ui{display:flex;align-items:center;gap:14px;margin-top:14px}
.fb{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;color:var(--t);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s,color .15s}
.fb:hover{border-color:var(--s);color:var(--s)}
.fb svg{width:18px;height:18px}
.p-bar{position:relative;flex:1;height:4px;background:var(--line);cursor:pointer}
.p-bar i{position:absolute;inset:0;background:var(--grad);transform-origin:left center;transform:scaleX(0)}
.film .fb{color:#fff;border-color:rgba(255,255,255,.28)}
.film .fb:hover{color:#fff;border-color:#fff}
.film .p-bar{background:rgba(255,255,255,.16)}
.film-x{position:absolute;top:16px;right:16px}
.p-end{position:absolute;inset:0;display:grid;place-content:center;gap:22px;text-align:center;color:#fff;background:rgba(26,14,46,.82)}
.p-end[hidden]{display:none}
.p-end p{font:800 clamp(24px,2.6vw,40px)/1.15 var(--font);letter-spacing:-.01em}
.p-end div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.p-cover{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;padding:clamp(10px,3%,32px);background:transparent;text-align:left}
.p-cover[hidden]{display:none}
.pc-b{display:inline-flex;align-items:center;gap:16px;padding:8px 24px 8px 8px;background:var(--t);color:#fff;border-radius:var(--r);transition:background-color .2s}
.p-cover:hover .pc-b{background:#2a1a45}
.pc-b b{display:grid;place-items:center;width:52px;height:52px;background:var(--grad);border-radius:var(--r)}
.pc-b b svg{width:22px;height:22px;margin-left:3px}
.pc-b > span{font:800 19px/1.1 var(--font)}
.pc-b small{display:block;margin-top:4px;font:600 13px/1 var(--font);color:rgba(255,255,255,.7)}
@media(max-width:600px){
  .p-cover{padding:8px}
  .pc-b{gap:10px;padding:4px 12px 4px 4px}
  .pc-b b{width:32px;height:32px}
  .pc-b b svg{width:15px;height:15px}
  .pc-b > span{font-size:14px}
  .pc-b small{display:none}
}

/* Champs de formulaire (pages et fenêtres) */
.fld{display:block}
.fld span{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.fld span i{font-style:normal;font-weight:500;color:var(--t3)}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--t);background:#fff;border:1px solid #cfcbd6;border-radius:var(--r);padding:12px 13px;transition:border-color .15s}
.fld textarea{min-height:150px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--s)}
.fld input.code{font-size:26px;font-weight:700;letter-spacing:.4em;text-align:center}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.msg{padding:12px 14px;border-left:4px solid var(--err);background:#fdf3f2;color:#8f1d12;font-size:15px;font-weight:600}
.msg.ok{border-left-color:var(--ok);background:#eff7f1;color:#0f5a2d}
.msg.info{border-left-color:var(--s);background:var(--bg2);color:var(--t2)}
.msg[hidden]{display:none}
.ts-box:empty{display:none}
.btn.full{width:100%}
.btn.danger{background:var(--err)}
.btn:disabled{opacity:.6;cursor:progress}
.lnk{color:var(--s);font-weight:700;text-decoration:underline;text-underline-offset:3px;transition:color .15s}
.lnk:hover{color:var(--sd)}

/* Fenêtres (connexion, nouveau mot de passe) : sans flou ni ombre */
body.lock{overflow:hidden}
.modal{position:fixed;inset:0;z-index:300;display:flex;padding:16px;background:rgba(15,8,24,.62);overflow-y:auto;overscroll-behavior:contain}
.modal[hidden]{display:none}
.m-box{position:relative;margin:auto;width:min(460px,100%);background:#fff;border-radius:var(--r);padding:30px 28px 26px}
.m-box::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--band)}
.m-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.m-head h2{font:800 26px/1.15 var(--font);letter-spacing:-.01em}
.m-tabs{display:flex;gap:4px;margin-top:16px;border-bottom:1px solid var(--line)}
.m-tabs button{position:relative;padding:10px 12px;font-weight:700;color:var(--t3);transition:color .15s}
.m-tabs button:hover,.m-tabs button[aria-selected="true"]{color:var(--t)}
.m-tabs button[aria-selected="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--p)}
.m-pane{display:grid;gap:14px;margin-top:20px}
.m-pane[hidden]{display:none}
.m-txt{color:var(--t2);font-size:16px}
.m-links{font-size:15px;color:var(--t2);text-align:center}

/* Notification brève */
#toast{position:fixed;left:16px;bottom:16px;z-index:400;max-width:min(440px,calc(100% - 32px));padding:14px 18px;background:var(--t);color:#fff;border-left:4px solid var(--p);border-radius:var(--r);font-weight:600;opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}
#toast.show{opacity:1;visibility:visible;transition:opacity .2s}
