:root{ --green:#00E6A6; --green-d:#06231a; --bg:#0A0E15; --surf:#0E131C; --surf2:#141B26;
       --tx:#ffffff; --tx2:#aeb9c7; --tx3:#8A93A0; --line:rgba(255,255,255,.08); }
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
/* C4 — Dégradé sombre premium (même esprit que l'app) : fond profond #06090F → #131D2C
   + halo vert radial. Les vraies photos par secteur (hero + cartes) restent au-dessus. */
body{ font-family:'Space Grotesk',system-ui,sans-serif; color:var(--tx); -webkit-font-smoothing:antialiased; min-height:100vh;
  background:
    radial-gradient(1100px 620px at 50% -6%, rgba(0,230,166,.12), transparent 58%),
    linear-gradient(180deg, #06090F 0%, #0A1119 46%, #131D2C 100%);
  background-attachment:fixed; }
h1,h2,h3,.brand{ font-family:'Unbounded',sans-serif; font-weight:700; letter-spacing:-.5px; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 28px; }
a{ color:inherit; text-decoration:none; }
.btn{ display:inline-flex; align-items:center; gap:8px; padding:14px 24px; border-radius:13px; font-weight:700; font-size:15px; transition:.2s; }
.btn.p{ background:var(--green); color:var(--green-d); } .btn.p:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.btn.s{ background:rgba(255,255,255,.06); color:#fff; border:1px solid var(--line); } .btn.s:hover{ background:rgba(255,255,255,.12); }
.eyebrow{ font-size:12px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; color:var(--green); }
.pill{ display:inline-block; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; padding:6px 14px; border-radius:30px;
       background:rgba(0,230,166,.12); color:var(--green); border:1px solid rgba(0,230,166,.32); }

header{ position:sticky; top:0; z-index:20; background:rgba(10,14,21,.82); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.brand{ display:inline-flex; align-items:center; gap:9px; font-size:25px; } .brand b{ color:var(--green); font-weight:700; }
/* LOT 46 — nouveau logo (image) : plus de halo vert, il appartenait a l ancien sigle. */
.brand .mk{ height:1.6em; width:auto; display:block; flex:none; }
.nav-links{ display:flex; gap:30px; font-size:15px; color:var(--tx2); }
.nav-links a:hover{ color:#fff; }

.hero{ position:relative; overflow:hidden; }
/* Photo hero — image locale (accueil = sectors/home.jpg ; chaque page secteur surcharge
   background-image en inline avec sa propre photo sectors/<key>.jpg). Duotone vert Trakni
   appliqué par overlays ci-dessous (::after dégradé sombre→vert + ::before teinte verte). */
.hero-bg{ position:absolute; inset:0; background-image:url('sectors/home.jpg'); background-size:cover; background-position:center; }
.hero-bg::after{ content:''; position:absolute; inset:0;
   background:linear-gradient(105deg, rgba(10,14,21,.97) 36%, rgba(8,28,22,.62) 68%, rgba(0,230,166,.26) 100%); }
.hero-bg::before{ content:''; position:absolute; inset:0; background:rgba(0,230,166,.14); mix-blend-mode:overlay; z-index:1; }
.hero-inner{ position:relative; z-index:2; padding:96px 0 104px; max-width:680px; }
.hero h1{ font-size:clamp(34px,5vw,58px); line-height:1.04; margin:20px 0 22px; }
.hero h1 span{ color:var(--green); }
.hero p{ color:var(--tx2); font-size:18px; line-height:1.65; max-width:560px; }
.hero .cta{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
.hero .meta{ margin-top:34px; display:flex; gap:28px; flex-wrap:wrap; color:var(--tx3); font-size:13px; }
.hero .meta b{ color:#fff; font-weight:500; display:block; font-size:15px; }

section{ padding:84px 0; }
.sec-head{ max-width:640px; margin-bottom:40px; }
.sec-head h2{ font-size:clamp(26px,3.4vw,40px); line-height:1.1; margin:14px 0; }
.sec-head p{ color:var(--tx2); font-size:17px; line-height:1.6; }

.sectors{ background:rgba(10,14,21,.42); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.scard{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:16/10; border:1px solid var(--line); }
a.scard{ display:block; color:inherit; }
.scard img{ width:100%; height:100%; object-fit:cover; display:block; transition:.5s; filter:saturate(.85); }
.scard:hover img{ transform:scale(1.06); }
.scard .ov{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,21,.15) 30%, rgba(10,14,21,.92) 100%); }
.scard .ov::after{ content:''; position:absolute; inset:0; background:rgba(0,230,166,.14); mix-blend-mode:overlay; }
.scard .txt{ position:absolute; left:20px; bottom:18px; z-index:2; }
.scard .txt b{ font-family:'Unbounded'; font-size:18px; display:block; }
.scard .txt small{ color:var(--tx2); font-size:13px; }

.feat{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.fcard{ background:var(--surf); border:1px solid var(--line); border-radius:18px; padding:30px; }
.fcard.star{ border:2px solid var(--green); background:linear-gradient(180deg, rgba(0,230,166,.06), var(--surf)); }
.fcard .k{ font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--green); font-weight:700; }
.fcard h3{ font-size:21px; margin:12px 0; } .fcard p{ color:var(--tx2); font-size:15px; line-height:1.6; }

.band{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.band .img{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:5/4; border:1px solid var(--line); }
.band .img img{ width:100%; height:100%; object-fit:cover; }
.band .img .ov{ position:absolute; inset:0; background:rgba(0,230,166,.16); mix-blend-mode:overlay; }
.band .img .ov2{ position:absolute; inset:0; background:linear-gradient(180deg, transparent, rgba(10,14,21,.5)); }
.band h2{ font-size:clamp(26px,3.2vw,38px); line-height:1.1; margin:14px 0 18px; }
.band p{ color:var(--tx2); font-size:16px; line-height:1.7; margin-bottom:14px; }
.band ul{ list-style:none; margin-top:18px; }
.band li{ display:flex; gap:12px; align-items:flex-start; margin:12px 0; color:#dfe6ee; font-size:15px; }
.band li::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--green); margin-top:8px; flex:none; }

.offers{ background:rgba(10,14,21,.42); border-top:1px solid var(--line); }
.ogrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; }
.ocard{ background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:32px 28px; display:flex; flex-direction:column; }
.ocard.best{ border:2px solid var(--green); position:relative; }
.badge{ position:absolute; top:-13px; left:28px; background:var(--green); color:var(--green-d); font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:6px 14px; border-radius:20px; }
.ocard h3{ font-size:20px; } .ocard .desc{ color:var(--tx3); font-size:14px; margin:8px 0 18px; min-height:38px; }
.ocard .price{ font-family:'Unbounded'; font-size:30px; } .ocard .price small{ font-size:14px; color:var(--tx2); font-weight:400; font-family:'Space Grotesk'; }
.ocard .once{ color:var(--tx3); font-size:13px; margin-top:4px; }
.ocard ul{ list-style:none; margin:22px 0; flex:1; }
.ocard li{ color:var(--tx2); font-size:14px; padding:8px 0 8px 22px; position:relative; border-bottom:1px solid var(--line); }
.ocard li::before{ content:'✓'; position:absolute; left:0; color:var(--green); font-weight:700; }

/* LOT 54 — barreaux sans prix ferme (Sécurité « sur réservation », Entreprise « sur devis ») :
   même famille typographique que les prix, en plus petit pour ne pas crier un montant absent. */
.price.q{ font-size:22px; letter-spacing:-.3px; }
/* LOT 54 — bloc Entreprise : bande pleine largeur SOUS les 3 barreaux (échelle 3 + 1). */
.oent{ margin-top:18px; background:var(--surf); border:1px solid var(--line); border-radius:20px;
       padding:26px 28px; display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap; }
.oent h3{ font-size:20px; } .oent p{ color:var(--tx2); font-size:14px; line-height:1.6; margin-top:8px; max-width:640px; }
.oent-cta{ display:flex; align-items:center; gap:18px; flex:none; }
.omore{ margin-top:20px; text-align:center; }
.omore a{ color:var(--green); font-size:14px; font-weight:700; border-bottom:1px solid rgba(0,230,166,.35); padding-bottom:2px; }
.omore a:hover{ color:#fff; border-bottom-color:#fff; }
/* LOT 54 — page offres : les blocs à 2 cartes (matériel, questions de prix) réutilisent
   .feat mais en 2 colonnes au lieu de 3, sinon la 3ᵉ colonne reste vide. */
.opair{ grid-template-columns:1fr 1fr; }
/* LOT 54 — note d'honnêteté d'un barreau (règle 12) : lisible, jamais en gros, juste
   au-dessus du bouton pour qu'on la lise AVANT de cliquer. */
.ocard .onote{ color:var(--tx3); font-size:12.5px; line-height:1.55; margin:-8px 0 16px; }
.fcard .mnote{ color:var(--tx3); font-size:13px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }

.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.step .n{ font-family:'Unbounded'; font-size:34px; color:var(--green); } .step h3{ font-size:17px; margin:10px 0 6px; } .step p{ color:var(--tx2); font-size:14px; line-height:1.55; }

footer{ background:rgba(6,9,15,.55); border-top:1px solid var(--line); padding:64px 0 30px; }
.fgrid{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:30px; }
footer .brand{ font-size:24px; } footer p{ color:var(--tx3); font-size:14px; line-height:1.6; margin-top:14px; max-width:280px; }
.fcol h4{ font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--tx2); margin-bottom:14px; font-family:'Space Grotesk'; font-weight:700; }
.fcol a{ display:block; color:var(--tx3); font-size:14px; margin:9px 0; } .fcol a:hover{ color:#fff; }
.fbottom{ margin-top:46px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--tx3); font-size:13px; }
.langs .lg{ margin-left:14px; cursor:pointer; color:var(--tx3); } .langs .lg:hover{ color:#fff; } .langs .lg.on{ color:#fff; font-weight:500; }

/* RTL (arabe) — bascule des éléments positionnés, le reste se reflète tout seul. */
[dir=rtl] .hero-bg::after{ background:linear-gradient(255deg, rgba(10,14,21,.97) 38%, rgba(10,14,21,.55) 70%, rgba(0,230,166,.18) 100%); }
[dir=rtl] .scard .txt{ left:auto; right:20px; }
[dir=rtl] .badge{ left:auto; right:28px; }
[dir=rtl] .ocard li{ padding:8px 22px 8px 0; }
[dir=rtl] .ocard li::before{ left:auto; right:0; }
[dir=rtl] .langs .lg{ margin-left:0; margin-right:14px; }

/* D50 — header pro : logo cliquable, sélecteur de langue en haut, menu mobile */
a.brand{ cursor:pointer; }
.nav-right{ display:flex; align-items:center; gap:18px; }
.nav-links a{ position:relative; padding:4px 0; }
.nav-links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--green); transition:width .2s; }
.nav-links a:hover::after{ width:100%; }
.hlang{ display:flex; align-items:center; gap:4px; }
.hlang .lg{ cursor:pointer; font-size:13px; font-weight:700; letter-spacing:.5px; color:var(--tx3); padding:5px 9px; border-radius:8px; transition:.2s; }
.hlang .lg:hover{ color:#fff; }
.hlang .lg.on{ color:var(--green); background:rgba(0,230,166,.12); }
.burger{ display:none; background:rgba(255,255,255,.06); border:1px solid var(--line); color:#fff; width:42px; height:40px; border-radius:11px; font-size:19px; cursor:pointer; align-items:center; justify-content:center; }
.burger:hover{ background:rgba(255,255,255,.12); }
.mobile-menu{ display:none; flex-direction:column; padding:8px 28px 22px; background:rgba(10,14,21,.97); border-bottom:1px solid var(--line); }
.mobile-menu.open{ display:flex; }
.mobile-menu a:not(.btn){ color:var(--tx2); font-size:16px; padding:13px 4px; border-bottom:1px solid var(--line); }
.mobile-menu a:not(.btn):hover{ color:#fff; }
.mobile-menu .btn{ margin-top:12px; }
[dir=rtl] .nav-links a::after{ left:auto; right:0; }

@media(max-width:880px){
  .nav-links{ display:none; }
  .hcta{ display:none; }
  .burger{ display:inline-flex; }
  .sgrid,.feat,.ogrid,.steps{ grid-template-columns:1fr; }
  .band{ grid-template-columns:1fr; } .fgrid{ grid-template-columns:1fr 1fr; }
  /* LOT 54 — sur mobile la bande Entreprise s'empile et son prix + bouton passent
     en pleine largeur (sinon le bouton se retrouve seul sur une ligne écrasée). */
  .oent{ flex-direction:column; align-items:flex-start; }
  .oent-cta{ width:100%; justify-content:space-between; }
}

/* ============================================================
   REDESIGN SITE — fond global turquoise + cartes en relief +
   titres d'offres en couleur + coches rondes + formulaire devis.
   Bloc additif, marqué, repris tel quel par code.
   ============================================================ */
/* 1) FOND GLOBAL — dégradé turquoise présent sur TOUTE la page (halos répartis
   haut / milieu / bas du viewport, fixés : à chaque position de défilement, la page
   baigne dans le turquoise, pas seulement autour des offres). */
body{ background:
   radial-gradient(1200px 720px at 12% 6%,  rgba(0,230,166,.17), transparent 52%),
   radial-gradient(1150px 820px at 90% 42%, rgba(0,210,180,.14), transparent 55%),
   radial-gradient(1050px 760px at 38% 94%, rgba(0,230,166,.13), transparent 52%),
   linear-gradient(180deg,#0A1E17 0%,#0A1A14 45%,#091712 78%,#0A1D16 100%) !important;
   background-color:#0A1A14 !important;
   background-attachment:fixed; }

/* 2) OFFRES — panneau + cartes en relief */
.offers{ background:linear-gradient(180deg, rgba(0,230,166,.055), rgba(6,26,22,.30)) !important; border-top:1px solid rgba(0,230,166,.20) !important; }
.ocard{ background:linear-gradient(180deg,#111A24,#0D151D) !important; border:1px solid rgba(255,255,255,.10) !important;
   box-shadow:0 30px 60px -30px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.05) !important; transition:transform .25s; }
.ocard:not(.best):hover{ transform:translateY(-6px); }
/* 2b) TITRES d'offres — autre couleur (or/ambre, distincte du turquoise) */
.ocard h3{ color:#F4B740 !important; font-size:24px; }
/* 2c) intitulé au-dessus du nom (kicker) */
.okicker{ font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--green); opacity:.85; margin-bottom:8px; }
/* 2d) coches RONDES */
.ocard ul{ margin:22px 0; }
.ocard li{ border-bottom:1px solid var(--line); padding:9px 0 9px 30px; }
.ocard li::before{ content:''; position:absolute; left:0; top:9px; width:19px; height:19px; border-radius:50%;
   background:rgba(0,230,166,.14); box-shadow:inset 0 0 0 1px rgba(0,230,166,.35);
   /* petite coche dessinée */
   background-image:linear-gradient(45deg,transparent 45%, var(--green) 45%, var(--green) 55%, transparent 55%),
                    linear-gradient(-45deg,transparent 45%, var(--green) 45%, var(--green) 55%, transparent 55%);
   background-size:2px 7px,2px 10px; background-position:6px 9px,10px 6px; background-repeat:no-repeat;
   color:transparent !important; font-size:0 !important; }
[dir=rtl] .ocard li{ padding:9px 30px 9px 0; }
[dir=rtl] .ocard li::before{ left:auto; right:0; }
/* 2e) carte recommandée soulevée + halo */
.ocard.best{ background:linear-gradient(180deg, rgba(0,230,166,.10) 0%, #12222C 32%, #0D151D 100%) !important;
   border:1.5px solid rgba(0,230,166,.6) !important;
   box-shadow:0 0 0 1px rgba(0,230,166,.25), 0 40px 84px -26px rgba(0,230,166,.42), 0 26px 54px -28px rgba(0,0,0,.85) !important;
   transform:translateY(-14px); }

/* 3) Cartes atouts + secteurs + entreprise : même relief */
.fcard{ background:linear-gradient(180deg,#111A24,#0D151D) !important; border:1px solid rgba(255,255,255,.10) !important; box-shadow:0 22px 48px -28px rgba(0,0,0,.75) !important; }
.fcard.star{ background:linear-gradient(180deg, rgba(0,230,166,.10), #0D151D) !important; border:1.5px solid rgba(0,230,166,.55) !important; box-shadow:0 0 0 1px rgba(0,230,166,.35),0 26px 56px -26px rgba(0,230,166,.28) !important; }
.scard{ box-shadow:0 18px 40px -26px rgba(0,0,0,.7) !important; }
/* Bande Entreprise — panneau premium haut de gamme (poids visuel max + bouton plein) */
.oent{ margin-top:26px !important; display:flex; align-items:center; gap:26px;
   background:linear-gradient(120deg, rgba(0,230,166,.16), rgba(0,190,165,.05) 55%, rgba(10,26,20,.55)) !important;
   border:1px solid rgba(0,230,166,.38) !important;
   box-shadow:0 0 0 1px rgba(0,230,166,.12), 0 34px 70px -30px rgba(0,230,166,.34) !important;
   border-radius:22px; padding:30px 34px !important; }
.oent-ic{ width:58px; height:58px; border-radius:16px; flex:none; display:flex; align-items:center; justify-content:center;
   color:var(--green); background:linear-gradient(135deg,rgba(0,230,166,.28),rgba(0,230,166,.06));
   box-shadow:inset 0 0 0 1px rgba(0,230,166,.35),0 10px 24px -10px rgba(0,230,166,.45); }
.oent-ic svg{ width:30px; height:30px; }
.oent-txt{ flex:1; }
.oent h3{ color:#F4B740 !important; font-size:23px; }
.oent .price.q{ color:var(--green); font-size:20px; }
@media(max-width:760px){ .oent{ flex-direction:column; align-items:flex-start; gap:18px; }
   .oent-cta{ width:100%; justify-content:space-between; } }
.band .img{ box-shadow:0 24px 60px -30px rgba(0,230,166,.28), 0 0 0 1px rgba(0,230,166,.20) !important; }

/* 4) FORMULAIRE DE DEVIS */
.devis{ padding-top:20px; }
.qform{ max-width:760px; background:linear-gradient(180deg,#111A24,#0D151D); border:1px solid rgba(255,255,255,.10); border-radius:22px; padding:34px 32px; box-shadow:0 30px 60px -30px rgba(0,0,0,.8); }
.qform h3{ color:var(--green); font-family:'Unbounded',sans-serif; font-size:24px; margin-bottom:6px; }
.qform p.qlead{ color:var(--tx2); font-size:15px; margin-bottom:22px; line-height:1.55; }
.qgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.qfield{ display:flex; flex-direction:column; gap:7px; }
.qfield.full{ grid-column:1 / -1; }
.qfield label{ font-size:13px; color:var(--tx2); font-weight:600; }
.qfield input, .qfield select, .qfield textarea{ background:#0A0E15; border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:13px 14px; color:#fff; font-family:inherit; font-size:15px; transition:.2s; }
.qfield input:focus, .qfield select:focus, .qfield textarea:focus{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(0,230,166,.15); }
.qfield textarea{ resize:vertical; min-height:96px; }
.qsubmit{ margin-top:22px; display:inline-flex; }
.qsubmit button{ background:var(--green); color:var(--green-d); border:0; font-weight:700; font-size:15px; padding:15px 30px; border-radius:13px; cursor:pointer; transition:.2s; font-family:inherit; }
.qsubmit button:hover{ filter:brightness(1.07); transform:translateY(-1px); }
.qnote{ color:var(--tx3); font-size:12.5px; margin-top:14px; }
@media(max-width:700px){ .qgrid{ grid-template-columns:1fr; } }

/* VITRINE DES FONCTIONNALITÉS — grille ordonnée, premium par le soin (icônes OR) */
.fxsec{ }
.fxgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; }
.fxcard{ position:relative; overflow:hidden; background:linear-gradient(180deg,#111A24,#0D151D); border:1px solid var(--line);
   border-radius:20px; padding:30px 28px 28px; box-shadow:0 28px 56px -34px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.04);
   transition:transform .25s, border-color .25s; }
.fxcard::before{ content:''; position:absolute; top:0; left:0; right:0; height:2px;
   background:linear-gradient(90deg,#F4B740,transparent 65%); opacity:.5; transition:opacity .25s; }
.fxcard:hover{ transform:translateY(-6px); border-color:rgba(244,183,64,.4); }
.fxcard:hover::before{ opacity:1; }
.fxi{ width:50px; height:50px; border-radius:15px; display:flex; align-items:center; justify-content:center; margin-bottom:20px;
   color:#F4B740; background:linear-gradient(135deg,rgba(244,183,64,.22),rgba(244,183,64,.05));
   box-shadow:inset 0 0 0 1px rgba(244,183,64,.32),0 8px 20px -8px rgba(244,183,64,.35); }
.fxi svg{ width:25px; height:25px; }
.fxcard h3{ font-size:18px; margin-bottom:9px; color:#fff; }
.fxcard p{ color:var(--tx2); font-size:14.5px; line-height:1.55; }
@media(max-width:980px){ .fxgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:620px){ .fxgrid{ grid-template-columns:1fr; } }

/* Fond turquoise visible AUSSI dans Secteurs et le footer (leurs fonds sombres masquaient le dégradé) */
.sectors{ background:linear-gradient(180deg, rgba(0,230,166,.05), rgba(6,26,22,.26)) !important;
   border-top:1px solid rgba(0,230,166,.14) !important; border-bottom:1px solid rgba(0,230,166,.14) !important; }
footer{ background:linear-gradient(180deg, rgba(7,22,17,.42), rgba(6,20,16,.55)) !important; }

/* ANIMATIONS — vie du site (révélation au défilement + entrée du hero) */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:none; }
.hero-inner{ animation:trkHeroIn .9s cubic-bezier(.22,.61,.36,1) both; }
@keyframes trkHeroIn{ from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:none;} }
/* le point GPS de la carte respire légèrement (si présent) */
@keyframes trkPulse{ 0%,100%{ box-shadow:0 0 0 6px rgba(0,230,166,.20),0 0 20px 4px rgba(0,230,166,.45);} 50%{ box-shadow:0 0 0 10px rgba(0,230,166,.06),0 0 26px 6px rgba(0,230,166,.6);} }
.pin{ animation:trkPulse 2.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1 !important; transform:none !important;} .hero-inner{animation:none !important;} .pin{animation:none !important;} }

/* Animation adaptée au mobile : glissement plus court + plus rapide (plus vif au doigt) */
@media(max-width:700px){
  .reveal{ transform:translateY(14px); transition-duration:.5s; }
  .hero-inner{ animation-duration:.7s; }
}
