/* Concept : l'affiche BluePrestige en grand. Bleu marine profond partout, titres sans-serif forts,
   le cyan de la vague pour l'action, vagues en séparateurs, cartes très arrondies. */
:root{
  --bg:#001a3d;          /* marine BluePrestige, fond général */
  --bg-2:#00224d;        /* bande alternée */
  --card:#0a2e5c;        /* cartes sur fond marine */
  --line:rgba(140,200,235,.18);
  --cyan:#1fb2dc;        /* vague du logo */
  --cyan-2:#6fd6f0;      /* reflet clair */
  --sky:#e8f6fc;         /* cartes claires, comme l'affiche */
  --text:#ffffff;
  --soft:#bcd3e6;        /* texte secondaire */
  --ink:#0b2147;         /* texte sur fond clair */
  --wa:#1fa855;
  --f-head:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-brand:"Fraunces",Georgia,"Times New Roman",serif;
  --f-body:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --step--1:clamp(.82rem,.8rem + .1vw,.88rem);
  --step-0:clamp(1rem,.97rem + .15vw,1.08rem);
  --step-1:clamp(1.15rem,1.08rem + .35vw,1.35rem);
  --step-2:clamp(1.4rem,1.25rem + .8vw,1.85rem);
  --step-3:clamp(1.9rem,1.5rem + 2vw,3.1rem);
  --step-4:clamp(2.3rem,1.6rem + 3.6vw,4.5rem);
  --wrap:1200px;
  --r:22px;
  color-scheme:dark;
}
@font-face{font-family:"Poppins";src:url(fonts/poppins-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Poppins";src:url(fonts/poppins-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:var(--step-0);line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--f-head);font-weight:700;line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1);font-weight:600;letter-spacing:-.01em}
p{margin:0}
.hl{color:var(--cyan-2);background:linear-gradient(90deg,var(--cyan-2),var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
:focus-visible{outline:3px solid var(--cyan-2);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:calc(.6rem + env(safe-area-inset-top,0px));left:.6rem;z-index:100;width:auto;height:auto;clip:auto;padding:.7rem 1.1rem;border-radius:999px;background:#fff;color:var(--ink);font-weight:700;text-decoration:none}
.nw{white-space:nowrap}
body:has(dialog[open]){overflow:hidden}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.section{position:relative;padding-block:clamp(4.5rem,3rem + 6vw,8rem)}
.section--alt{background:var(--bg-2)}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--f-body);font-size:var(--step--1);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan-2)}
.eyebrow::before{content:"";width:28px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--cyan),var(--cyan-2))}
.head{display:grid;gap:1rem;max-width:46rem;margin-bottom:clamp(2.5rem,2rem + 2vw,4rem)}
.head--center{margin-inline:auto;text-align:center;justify-items:center}
.head>p:not(.eyebrow){color:var(--soft);font-size:var(--step-1);line-height:1.55}

/* Boutons : tous en pilule */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;text-align:center;font:600 1rem/1.2 var(--f-body);text-decoration:none;border-radius:999px;padding:1rem 1.7rem;border:1.5px solid transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn--main{background:linear-gradient(135deg,#27c0e6,#0a8fc0);color:#fff;padding:1rem 2.1rem;box-shadow:0 10px 30px rgba(31,178,220,.35)}
.btn--stack{flex-direction:column;gap:.15rem}
.btn--main small{font-weight:500;font-size:.8rem;opacity:.92}
.btn--main:hover,.btn--main:focus-visible{transform:translateY(-2px);box-shadow:0 14px 36px rgba(31,178,220,.5)}
.btn--glass{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn--glass:hover{background:rgba(255,255,255,.2);border-color:#fff}
.btn--line{border-color:var(--cyan);color:#fff}
.btn--line:hover{background:var(--cyan);color:#fff}
.btn--light{background:#fff;color:var(--ink)}
.btn--light:hover{background:var(--sky)}

/* En-tête posé sur la photo */
.top{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.top .wrap{display:flex;align-items:center;gap:1.6rem;min-height:84px;transition:min-height .3s}
.top.scrolled{background:rgba(0,26,61,.88);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 1px 0 var(--line)}
.top.scrolled .wrap{min-height:66px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;margin-right:auto}
.brand img{width:52px;height:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25))}
.brand span{font-family:var(--f-brand);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1;color:#1e4f9c;text-shadow:1.2px 0 0 #fff,-1.2px 0 0 #fff,0 1.2px 0 #fff,0 -1.2px 0 #fff,.85px .85px 0 #fff,-.85px .85px 0 #fff,.85px -.85px 0 #fff,-.85px -.85px 0 #fff}
.brand small{display:block;text-shadow:none;font-family:var(--f-body);font-size:.58rem;font-weight:700;letter-spacing:.28em;color:var(--cyan-2);margin-top:.3rem}
.nav{display:flex;gap:1.8rem}
.nav a{text-decoration:none;font-weight:600;font-size:.93rem;color:rgba(255,255,255,.85)}
.nav a:hover{color:var(--cyan-2)}
.top .btn{padding:.7rem 1.2rem;font-size:.93rem}
@media (max-width:980px){.nav{display:none}}
@media (min-width:600px){.top .call .short{display:none}}
@media (max-width:599px){.top .call .long{display:none}.brand small{display:none}.brand img{width:44px}.brand span{font-size:1.3rem}}

/* Accueil */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--bg)}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero picture img{object-position:center 40%}
.hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,rgba(0,26,61,.88) 0%,rgba(0,26,61,.6) 45%,rgba(0,26,61,.1) 100%),linear-gradient(180deg,rgba(0,26,61,.55) 0%,rgba(0,26,61,0) 25%,rgba(0,26,61,0) 70%,rgba(0,26,61,.9) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(9rem,7rem + 9vw,13rem) clamp(7rem,5rem + 7vw,10rem);display:grid;gap:1.6rem}
.hero h1{font-size:var(--step-4);max-width:14ch;text-shadow:0 4px 30px rgba(0,0,0,.25)}
.hero .lead{font-size:var(--step-1);line-height:1.55;max-width:34rem;color:rgba(255,255,255,.9)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.8rem}
.wave{position:absolute;left:0;right:0;bottom:-1px;z-index:2;width:100%;height:clamp(50px,7vw,110px);display:block}
.wave .w1{fill:var(--bg)}
.wave .w2{fill:none;stroke:var(--cyan);stroke-width:3;opacity:.9}
.wave .w3{fill:none;stroke:var(--cyan-2);stroke-width:2;opacity:.5}
@media (max-width:600px){.hero::after{background:linear-gradient(180deg,rgba(0,26,61,.6) 0%,rgba(0,26,61,.55) 40%,rgba(0,26,61,.92) 100%)}.hero .ctas .btn{width:100%}}

/* Services : trois grandes cartes photo */
.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.service{position:relative;border-radius:var(--r);overflow:hidden;background:var(--card);display:flex;flex-direction:column;min-height:100%;border:1px solid var(--line);transition:transform .35s,box-shadow .35s}
.service:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(0,0,0,.35)}
.service figure{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden}
.service figure img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.service:hover figure img{transform:scale(1.06)}
.service figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,46,92,0) 45%,rgba(10,46,92,1) 100%)}
.service .icon{position:relative;z-index:1;margin-top:-4.2rem;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#27c0e6,#0a8fc0);box-shadow:0 8px 22px rgba(31,178,220,.45)}
.service .icon svg{width:28px;height:28px;color:#fff}
.service .body{padding:0 1.6rem 1.8rem;display:grid;gap:.8rem;align-content:start}
.service .tag{font-size:var(--step--1);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan-2)}
.service h3{font-size:var(--step-2)}
.service p{color:var(--soft)}
.services-end{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.4rem;align-items:center;text-align:center;padding:2.2rem 2rem;border-radius:var(--r);background:linear-gradient(90deg,rgba(31,178,220,.16),rgba(31,178,220,.04));border:1px solid var(--line)}
.services-end .btn{width:min(100%,340px);padding-block:1.05rem}
.services-end p{font-family:var(--f-head);font-weight:600;font-size:var(--step-1)}
@media (max-width:900px){.services{grid-template-columns:1fr;max-width:34rem;margin-inline:auto}}

/* Abonnements : cartes comme l'affiche */
.modular{display:flex;gap:.9rem;align-items:center;justify-content:center;text-align:left;max-width:46rem;margin:-1.5rem auto 3.5rem;padding:1rem 1.4rem;border-radius:999px;background:rgba(31,178,220,.12);border:1px solid var(--line);color:var(--soft)}
.modular strong{color:#fff}
.modular svg{width:22px;height:22px;flex:none;color:var(--cyan-2)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:center}
.plan{background:var(--sky);color:var(--ink);border-radius:var(--r);padding:2.4rem 2rem;display:flex;flex-direction:column;gap:1.5rem;position:relative;text-align:center;min-height:25rem}
.plan .pico{width:64px;height:64px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 6px 18px rgba(11,33,71,.12)}
.plan .pico img{width:42px}
.plan h3{font-size:var(--step-2);color:var(--ink);padding-bottom:1.1rem;border-bottom:2px solid rgba(31,178,220,.35)}
.plan ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem;flex:1;align-content:start;text-align:left}
.plan li{display:grid;grid-template-columns:28px 1fr;gap:.8rem;align-items:start;line-height:1.45;font-weight:500}
.plan li::before{content:"";width:28px;height:28px;border-radius:50%;background:var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/16px no-repeat}
.plan .btn{width:100%}
.plan--top{background:linear-gradient(180deg,#0b3a72,#06264f);color:#fff;border:2px solid var(--cyan);box-shadow:0 0 0 6px rgba(31,178,220,.12),0 30px 60px rgba(0,0,0,.35);min-height:28rem;transform:translateY(-4px)}
.plan--top h3{color:#fff}
.plan--top .pico{background:rgba(255,255,255,.1)}
.badge{position:absolute;top:-1rem;left:50%;transform:translateX(-50%);white-space:nowrap;background:linear-gradient(135deg,#27c0e6,#0a8fc0);color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.45rem 1rem;border-radius:999px;box-shadow:0 6px 16px rgba(31,178,220,.4)}
.pros{margin-top:2.6rem;text-align:center;color:var(--soft)}
.pros strong{color:#fff}
@media (max-width:900px){.plans{grid-template-columns:1fr;max-width:26rem;margin-inline:auto}.plan,.plan--top{min-height:0;transform:none}.plan--top{order:-1}}

/* Étapes */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;top:32px;left:12%;right:12%;height:2px;background:repeating-linear-gradient(90deg,var(--cyan) 0 10px,transparent 10px 20px);opacity:.5}
.steps li{position:relative;display:grid;gap:.8rem;justify-items:center;align-content:start;text-align:center;counter-increment:s}
.steps li::before{content:counter(s);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-head);font-weight:700;font-size:1.5rem;background:var(--bg);border:2px solid var(--cyan);color:#fff;box-shadow:0 0 0 8px var(--bg),0 0 30px rgba(31,178,220,.35)}
.section--alt .steps li::before{background:var(--bg-2);box-shadow:0 0 0 8px var(--bg-2),0 0 30px rgba(31,178,220,.35)}
.steps h3{font-size:var(--step-1);margin-top:.6rem}
.steps p{color:var(--soft);max-width:18rem}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.5rem}.steps::before{display:none}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Réalisations */
.gallery-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.5rem}
.gallery-head .head{margin-bottom:0}
.strip{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;padding-block:1.6rem}
.strip::-webkit-scrollbar{display:none}
.strip ul{list-style:none;margin:0;padding:0 0 0 max(20px,env(safe-area-inset-left,0px));display:flex;gap:1.1rem;width:max-content}
.strip li{flex:none}
.strip button{display:block;padding:0;border:0;background:none;cursor:zoom-in;border-radius:18px;overflow:hidden;transition:transform .4s ease,box-shadow .4s ease}
.strip img{height:clamp(250px,30vw,370px);width:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
@media (hover:hover){.strip button:hover{transform:scale(1.07);box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 0 2px var(--cyan);position:relative;z-index:2}}
.social{display:flex;flex-wrap:wrap;gap:.8rem}
.social a{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.92rem;text-decoration:none;color:#fff;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04)}
.social a:hover{border-color:var(--cyan);color:var(--cyan-2)}
.social svg{width:16px;height:16px}
.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1000px);max-height:90vh;overflow:visible}
.lightbox::backdrop{background:rgba(0,16,40,.92)}
.lightbox img{max-height:82vh;width:auto;margin:auto;border-radius:18px}
.lightbox p{color:#fff;text-align:center;margin-top:.8rem;font-size:.95rem}
.lightbox form{position:absolute;top:.6rem;right:.6rem}
.lightbox .close{width:44px;height:44px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}

/* Histoire */
.story{display:grid;justify-items:center}
.story-text{display:grid;gap:1.15rem;max-width:44rem}
.story-text p:not(.eyebrow):not(.sign):not(.lead-in){color:var(--soft)}
.story-text .lead-in{font-size:var(--step-1);line-height:1.5;color:#fff}
.sign{display:flex;align-items:center;gap:1rem;margin-top:.6rem}
.sign img{width:52px}
.sign span{font-family:var(--f-brand);font-style:italic;font-size:var(--step-1);color:var(--cyan-2)}

/* Avis */
.reviews{background:linear-gradient(110deg,#0a8fc0,#1fb2dc 55%,#56cbea)}
.reviews .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;padding-block:2.4rem}
.stars{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-family:var(--f-head);font-weight:700;font-size:var(--step-2)}
.stars span{color:#ffd35a;letter-spacing:.1em;font-size:1.5rem;text-shadow:0 2px 8px rgba(0,0,0,.15)}

/* Zone */
.zone{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,1rem + 4vw,5rem);align-items:center}
.zone-text{display:grid;gap:1.2rem;justify-items:start}
.zone-text>p:not(.eyebrow){color:var(--soft)}
.cities{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cities li{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:999px;padding:.35rem .9rem;font-size:.88rem;font-weight:500}
.map{display:block;width:100%;padding:0;font:inherit;color:inherit;cursor:zoom-in;border-radius:var(--r);overflow:hidden;background:#002a5a;border:1px solid var(--line);transition:transform .35s,box-shadow .35s,border-color .35s}
.map svg{width:100%;height:auto;display:block}
@media (hover:hover){.map:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.35);border-color:var(--cyan)}}
.mapbox{border:0;padding:0;background:transparent;width:min(94vw,1100px);max-width:none;max-height:92vh;overflow:visible;color:#fff}
.mapbox::backdrop{background:rgba(0,16,40,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mapbox[open]{animation:mapIn .45s cubic-bezier(.2,.8,.2,1)}
.mapbox[open]::backdrop{animation:fadeIn .35s ease}
@keyframes mapIn{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.mapbox-title{font-family:var(--f-head);font-weight:700;font-size:var(--step-2);text-align:center;margin-bottom:1rem;padding-inline:3.5rem}
.mapbox-inner{border-radius:var(--r);overflow:hidden;background:#002a5a;border:1px solid var(--cyan);box-shadow:0 0 0 6px rgba(31,178,220,.12),0 40px 90px rgba(0,0,0,.55);max-height:calc(92vh - 4rem);-webkit-overflow-scrolling:touch}
.mapbox-inner svg{display:block;width:100%;height:auto;max-height:calc(92vh - 4.5rem)}
.mapbox .m-lbl{font-size:17px}
.mapbox .m-lbl.m-big{font-size:22px}
.mapbox .close{position:absolute;top:-.3rem;right:0;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;z-index:2}
.mapbox .close:hover{background:rgba(255,255,255,.22)}
@media (max-width:700px){.mapbox[open]{display:flex;flex-direction:column;justify-content:center}.mapbox{width:100vw;max-height:100vh;height:100vh;margin:0;padding-top:env(safe-area-inset-top,0px)}.mapbox-title{margin:1.1rem 0 .8rem}.mapbox .close{top:calc(.6rem + env(safe-area-inset-top,0px));right:.8rem}.mapbox-inner{overflow:auto;border-radius:0;border-left:0;border-right:0;max-height:calc(100vh - 5rem);box-shadow:none}.mapbox-inner svg{width:680px;max-width:none;max-height:none}}
@media (prefers-reduced-motion:reduce){.mapbox[open],.mapbox[open]::backdrop{animation:none}}
.m-nei{fill:#0b3366;stroke:#002a5a;stroke-width:2}
.m-idf{fill:url(#idfgrad);stroke:#bfeaf7;stroke-width:1;stroke-opacity:.6}
.m-dot{fill:#fff;stroke:var(--bg);stroke-width:2}
.m-dot.m-big{fill:#ffd35a}
.m-lbl{font:600 14px var(--f-body);fill:#fff;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.m-lbl.m-big{font-size:19px}
@media (max-width:860px){.zone{grid-template-columns:1fr}}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,1rem + 5vw,6rem)}
.contact-info{display:grid;gap:1.4rem;align-content:start}
.contact-info>p:not(.eyebrow){color:var(--soft);font-size:var(--step-1);line-height:1.5}
.direct{display:grid;gap:.8rem;margin-top:.5rem}
.direct a{display:flex;align-items:center;gap:1rem;text-decoration:none;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03);transition:background .2s,border-color .2s}
.direct a:hover{background:rgba(31,178,220,.1);border-color:var(--cyan)}
.direct i{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(31,178,220,.15);flex:none}
.direct svg{width:20px;height:20px;color:var(--cyan-2)}
.direct b{display:block;font-weight:600;word-break:break-word}
.direct small{color:var(--soft);font-size:.85rem}
.form{background:#fff;color:var(--ink);border-radius:var(--r);padding:clamp(1.5rem,1rem + 2vw,2.6rem);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.form-title{grid-column:1/-1;font-family:var(--f-head);font-weight:700;font-size:var(--step-2);color:var(--ink)}
.field{display:grid;gap:.4rem}
.field--full{grid-column:1/-1}
.field label{font-weight:700;font-size:.88rem;color:var(--ink)}
.field input,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:#f1f7fb;border:1px solid #d3e3ee;border-radius:14px;padding:.85rem 1rem;width:100%}
.field input:focus,.field textarea:focus{outline:2px solid var(--cyan);outline-offset:0;border-color:var(--cyan);background:#fff}
.field textarea{min-height:8rem;resize:vertical}
.btn:disabled{opacity:.7;cursor:wait;transform:none}
.form .btn--main{grid-column:1/-1;font-size:1.05rem;padding:1.1rem}
.rgpd{grid-column:1/-1;font-size:.82rem;color:#55677c;line-height:1.5}
.rgpd a{color:#0a7fab}
.form-status{grid-column:1/-1;font-weight:600;padding:.9rem 1rem;border-radius:14px}
.form-status.ok{background:#e3f5ec;color:#11633a}
.form-status.err{background:#fdeaea;color:#8a1c1c}
.hp{position:absolute;left:-9999px}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:520px){.form{grid-template-columns:1fr}}

/* Pied de page */
.foot{position:relative;background:#00132e;color:var(--soft);font-size:.9rem;padding-top:3rem}
.foot-grid{display:flex;flex-wrap:wrap;gap:2rem;align-items:center;justify-content:space-between;padding-block:1rem calc(2rem + 76px)}
.foot .brand{margin-right:0}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{color:var(--cyan-2)}
.foot nav{display:flex;flex-wrap:wrap;gap:1.4rem}
.foot .copy{width:100%;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.82rem}

/* Bulle WhatsApp */
.wa{position:fixed;z-index:55;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:.6rem;background:var(--wa);color:#fff;text-decoration:none;font-weight:700;border-radius:999px;padding:.85rem;box-shadow:0 10px 28px rgba(0,0,0,.4);transition:transform .2s}
.wa:hover{transform:scale(1.06)}
.wa svg{width:30px;height:30px}
.wa span{display:none;padding-right:.4rem;font-size:1.17rem}
@media (min-width:981px){.wa{padding:.75rem 1.2rem .75rem .85rem}.wa span{display:inline}}

/* Apparition douce (le contenu reste visible sans JS) */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
  .js .reveal.in{opacity:1;transform:none}
}

/* Pages texte (mentions légales) */
.legal{padding-block:clamp(8rem,6rem + 4vw,10rem) clamp(3rem,2rem + 4vw,6rem)}
.legal .wrap{max-width:52rem}
.legal h1{font-size:var(--step-3);margin-bottom:2rem}
.legal h2{font-size:var(--step-1);margin:2.2rem 0 .7rem;color:var(--cyan-2)}
.legal p,.legal li{color:var(--soft);max-width:65ch}
.legal strong{color:#fff}
.legal ul{padding-left:1.2rem}
.top.solid{background:rgba(0,26,61,.95)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
