/* ============================================================
   TMZ Centre — feuille de style partagee des pages du site
   Reprend le systeme visuel valide de index.html.
   Toute nouvelle page lie ce fichier + assets/site.js.
   ============================================================ */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#FFFFFF;color:#1E293B;font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Bricolage Grotesque','Plus Jakarta Sans',system-ui,sans-serif;letter-spacing:-0.03em;overflow-wrap:break-word}
img{display:block;max-width:100%}
a{color:#0F172A;text-decoration:none;transition:color .18s ease}
a:hover{color:#1E3A8A}
::selection{background:#1E3A8A22;color:#0F172A}
section[id]{scroll-margin-top:92px}

/* pages a fond sombre : la balise body recoit .theme-dark */
body.theme-dark{background:#0F172A;color:#CBD5E1}
body.theme-dark a{color:#93C5FD}
body.theme-dark a:hover{color:#FFFFFF}
body.theme-dark ::selection{background:rgba(37,99,235,.35);color:#FFFFFF}

/* --- conteneur --- */
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:900px;margin:0 auto;padding:0 24px}

/* --- textures partagees --- */
.grid-lines{position:absolute;left:50%;top:-30%;width:160%;height:150%;transform:translateX(-50%);pointer-events:none;background-image:repeating-radial-gradient(circle at 50% 0%,rgba(148,163,184,0.055) 0 1px,transparent 1px 30px);-webkit-mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 72%);mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 72%)}
.noise{position:absolute;inset:0;pointer-events:none;opacity:.16;background-size:140px 140px;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIj48ZmlsdGVyIGlkPSJuIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC44NSIgbnVtT2N0YXZlcz0iMyIgc3RpdGNoVGlsZXM9InN0aXRjaCIvPjxmZUNvbG9yTWF0cml4IHR5cGU9InNhdHVyYXRlIiB2YWx1ZXM9IjAiLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0iMTQwIiBoZWlnaHQ9IjE0MCIgZmlsdGVyPSJ1cmwoI24pIi8+PC9zdmc+")}
.blob{position:absolute;left:50%;transform:translateX(-50%);border-radius:50%;pointer-events:none;background:#1C3A74;filter:blur(150px)}

/* --- animations --- */
@keyframes heroUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes drift{from{transform:translateX(-50%) translateY(-14px) scale(1)}to{transform:translateX(-50%) translateY(18px) scale(1.09)}}
.anim-drift{animation:drift 22s ease-in-out infinite alternate}
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
[data-reveal].in{opacity:1;transform:none}
.hero-up{animation:heroUp .85s cubic-bezier(.22,.68,.16,1) both}

/* --- header --- */
header.site-header{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(15,23,42,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.12);transition:background .25s ease,border-color .25s ease}
.hdr-inner{max-width:1180px;margin:0 auto;padding:0 24px;height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:height .25s ease}
header.site-header.scrolled{background:rgba(15,23,42,0.99)}
header.site-header.scrolled .hdr-inner{height:60px}
header.site-header.scrolled .hdr-logo{height:34px}
.hdr-logo{height:42px;width:auto;object-fit:contain;filter:brightness(0) invert(1);transition:height .25s ease}
.nav-desktop{display:flex;align-items:center;gap:26px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#CBD5E1}
.nav-cta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.burger{display:none;width:46px;height:46px;border-radius:12px;border:1px solid rgba(255,255,255,0.28);background:rgba(255,255,255,0.06);color:#FFFFFF;font-size:17px;cursor:pointer;align-items:center;justify-content:center}
.nav-mobile{display:none;border-top:1px solid rgba(255,255,255,0.12);padding:14px 24px 24px;flex-direction:column;gap:4px;background:rgba(15,23,42,0.98)}
.nav-mobile.open{display:flex}
.nav-mobile a{color:#E2E8F0;font-size:15px;font-weight:600;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,0.08)}
@media (max-width:979px){
  .nav-desktop,.nav-cta{display:none}
  .burger{display:flex}
}

/* --- liens & boutons --- */
.navlink{color:#CBD5E1}
.navlink:hover{color:#FFFFFF}
.link-light{color:#93C5FD}
.link-light:hover{color:#FFFFFF}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border-radius:12px;font-weight:700;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,filter .18s ease;cursor:pointer;font-family:inherit;border:none;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn-green{background:#179272;color:#FFFFFF}
.btn-green:hover{background:#0F7A5E;color:#FFFFFF}
.btn-blue{background:#2563EB;color:#FFFFFF}
.btn-blue:hover{background:#3B82F6;color:#FFFFFF}
.btn-blue-strong{background:#2563EB;color:#FFFFFF}
.btn-blue-strong:hover{background:#1D4ED8;color:#FFFFFF}
.btn-ghost{border:1px solid rgba(255,255,255,0.28);color:#FFFFFF}
.btn-ghost:hover{background:rgba(255,255,255,0.12);color:#FFFFFF}
.btn-outline{border:1px solid rgba(255,255,255,0.28);color:#E2E8F0}
.btn-outline:hover{background:rgba(255,255,255,0.10);color:#FFFFFF}
.btn-outline-green{border:1px solid rgba(255,255,255,0.20);color:#FFFFFF}
.btn-outline-green:hover{border-color:#179272;color:#FFFFFF;background:rgba(23,146,114,0.14)}
.btn-light{background:#FFFFFF;color:#0F172A}
.btn-light:hover{background:#E2E8F0;color:#0F172A}
.chip{background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.28);color:#FFFFFF;font-family:inherit;font-size:13px;font-weight:600;white-space:nowrap;padding:10px 18px;border-radius:999px;cursor:pointer;transition:background .18s ease}
.chip:hover,.chip.active{background:rgba(255,255,255,0.22)}

/* --- badge / pastille de section --- */
.eyebrow{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 9px;max-width:100%;border:1px solid rgba(96,165,250,0.35);background:rgba(30,58,138,0.45);color:#DBEAFE;padding:7px 16px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-align:center;line-height:1.5}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#179272;display:block;flex-shrink:0}
.eyebrow-green{border-color:rgba(52,211,153,0.28);background:rgba(6,78,59,0.40);color:#A7F3D0}
.eyebrow-light{border:1px solid rgba(30,58,138,0.22);background:#EEF2F7;color:#1E3A8A}
.kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px}
.kicker-blue{color:#1E3A8A}
.kicker-light-blue{color:#93C5FD}
.kicker-green{color:#4ECBA5}

/* --- cartes --- */
.card{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.card-green:hover{border-color:#179272;transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(0,0,0,.5)}
.card-blue:hover{border-color:#60A5FA;transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(37,99,235,.45)}
.card-soft:hover{border-color:rgba(147,197,253,0.45);color:#FFFFFF;transform:translateY(-4px)}
.card-bare{background:#152039;border:1px solid rgba(255,255,255,0.10);border-radius:18px}
.card-bare.hoverable{transition:border-color .18s ease,transform .18s ease}
.card-bare.hoverable:hover{border-color:#60A5FA;transform:translateY(-4px)}

/* --- illustrations d'acte --- */
.acte-visual{position:relative;height:200px;border-bottom:1px solid #E2E8F0;background:#0F172A;overflow:hidden}
.acte-visual svg,.acte-visual img{position:absolute;inset:0;width:100%;height:100%;display:block}
.acte-visual img{object-fit:cover}

/* --- champs de formulaire --- */
.field{display:flex;flex-direction:column;gap:8px}
.field > span{font-size:12px;font-weight:700;color:#334155;letter-spacing:.06em;text-transform:uppercase}
.field .req{color:#DC2626}
.field input,.field select,.field textarea{border:1px solid rgba(15,23,42,0.14);background:#FFFFFF;color:#0F172A;font-family:inherit;font-size:15px;padding:14px 16px;border-radius:12px;outline:none;transition:border-color .16s ease,box-shadow .16s ease;width:100%}
.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%2364748B' stroke-width='1.6' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.field textarea{line-height:1.6;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#2563EB;box-shadow:0 0 0 3px rgba(37,99,235,0.12)}
.field input::placeholder,.field textarea::placeholder{color:#64748B}
.form-error{margin:0;font-size:13px;color:#B42318;background:#FEF2F2;border:1px solid rgba(220,38,38,0.25);padding:12px 16px;border-radius:12px}

/* --- accordeon FAQ --- */
.acc{background:#F8FAFC;border:1px solid rgba(15,23,42,0.10);border-radius:16px;overflow:hidden;transition:border-color .18s ease}
.acc.open{border-color:#2563EB}
.acc-btn{width:100%;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px}
.acc-btn span{font-size:15px;font-weight:700;color:#0F172A;line-height:1.5}
.acc-btn i{color:#2563EB;font-size:13px;flex-shrink:0;transition:transform .2s ease}
.acc.open .acc-btn i{transform:rotate(45deg)}
.acc-panel{max-height:0;overflow:hidden;transition:max-height .28s ease}
.acc-panel p{margin:0;padding:0 24px 24px;font-size:14px;line-height:1.8;color:#64748B;text-wrap:pretty}

/* --- footer --- */
footer.site-footer{background:#0F172A;color:#FFFFFF;padding:64px 24px 32px;border-top:1px solid rgba(255,255,255,0.1)}
.foot-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.14)}
.foot-link{color:#94A3B8}
.foot-link:hover{color:#FFFFFF}
.foot-wa{color:#FFFFFF}
.foot-wa:hover{color:#4ECBA5}
.foot-bottom{max-width:1180px;margin:0 auto;padding-top:24px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:12px;color:#94A3B8}

/* --- fab whatsapp --- */
.fab{position:fixed;bottom:24px;right:24px;z-index:70;width:56px;height:56px;border-radius:50%;background:#179272;color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 14px 30px -10px rgba(23,146,114,.8);border:1px solid rgba(255,255,255,.25);transition:background .18s ease,transform .18s ease}
.fab:hover{background:#0F7A5E;color:#FFFFFF;transform:translateY(-3px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  [data-reveal]{opacity:1 !important;transform:none !important}
  .acc-panel{transition:none !important}
}
