/* Style « Immersif » : photos plein cadre sous voile bleu, titres capitales condensés, rouge en accent. Arborescence du site actuel. */
/* Polices hébergées sur le site (pas d'appel à Google Fonts) */
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 900;font-stretch:62% 110%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 900;font-stretch:62% 110%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/manrope-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/manrope-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --blue:#06315B;
  --blue-deep:#03213F;
  --red:#FB413D;
  --white:#FFFFFF;
  --text:#EEF3F8;
  --muted:#C2D0DE;
  --line:rgba(255,255,255,.15);
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --wrap:1180px;
  --gutter:clamp(16px,4vw,40px);
  --logo-h:84px;
  --head-pad:1rem;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--blue-deep);color:var(--text);font-family:var(--f-body);font-size:1.0625rem;line-height:1.7;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0;max-width:56ch}
h1,h2,h3{margin:0;font-family:var(--f-display);font-stretch:72%;font-weight:900;text-transform:uppercase;line-height:.92;letter-spacing:-.005em;text-wrap:balance;color:var(--white)}
h1{font-size:clamp(2.4rem,7.4vw + .6rem,6rem);overflow-wrap:break-word}
h2{font-size:clamp(2rem,4.6vw,3.4rem)}
h3{font-size:1.5rem;line-height:1}
h1 span,h2 span{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
address{font-style:normal}
.skip{position:absolute;left:1rem;top:-100px;z-index:50;background:var(--red);color:var(--white);font-weight:700;padding:.7rem 1rem;border-radius:4px}
.skip:focus{top:1rem}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left,0px)) max(var(--gutter),env(safe-area-inset-right,0px))}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.5em;background:var(--red);color:var(--white);font-weight:700;padding:.95rem 1.6rem;border-radius:4px;transition:transform .15s,filter .15s;justify-self:start}
.btn:hover{transform:translateY(-2px);filter:brightness(1.07)}
.btn.line{background:transparent;border:2px solid rgba(255,255,255,.7)}
.btn.line:hover{border-color:var(--white)}
.cover{width:100%;height:100%;object-fit:cover}

/* En-tête : transparent sur la photo, bleu au défilement */
header.top{position:fixed;inset:0 0 auto;z-index:30;padding-top:env(safe-area-inset-top,0px);transition:background .25s,box-shadow .25s}
header.top.solid{background:rgba(3,33,63,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:var(--head-pad);transition:padding .25s}
.top .logo{flex-shrink:0}
.top .logo img{height:var(--logo-h);width:auto;transition:height .25s}
header.top.solid .logo img{height:calc(var(--logo-h)*.72)}
header.top.solid .wrap{padding-block:calc(var(--head-pad)*.5)}
.top nav{display:flex;gap:clamp(1rem,2.2vw,2rem);font-weight:600;font-size:.93rem}
.top nav a{padding-block:.3rem;border-bottom:2px solid transparent;color:var(--text)}
.top nav a:hover{border-color:rgba(255,255,255,.5)}
.top nav a[aria-current="page"]{border-color:var(--red)}
.burger{display:none;position:relative;width:48px;height:48px;margin-right:-10px;background:transparent;border:0;border-radius:6px;color:var(--white);cursor:pointer}
.burger span,.burger span::before,.burger span::after{position:absolute;left:50%;width:26px;height:2px;margin-left:-13px;background:currentColor;border-radius:2px;transition:transform .25s,background .2s}
.burger span{top:50%;margin-top:-1px}
.burger span::before,.burger span::after{content:"";left:0;margin-left:0}
.burger span::before{transform:translateY(-8px)}
.burger span::after{transform:translateY(8px)}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:rotate(-45deg)}
@media (max-width:900px){
  :root{--logo-h:64px;--head-pad:.7rem}
  .burger{display:block}
  header.top.menu-open{background:rgba(3,33,63,.98)}
  .top nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(3,33,63,.98);padding:.25rem var(--gutter) 1rem;max-height:calc(100vh - 100%);max-height:calc(100dvh - 100%);overflow-y:auto;box-shadow:0 12px 24px rgba(0,0,0,.25)}
  .top nav.open{display:flex}
  .top nav a{padding:.9rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
}
@media (max-width:380px){:root{--logo-h:56px}}

/* Grand visuel d'ouverture */
.hero{position:relative;min-height:min(92vh,860px);min-height:min(92svh,860px);display:grid;align-content:end;overflow:hidden}
.hero.short{min-height:min(70vh,620px);min-height:min(70svh,620px)}
.hero.contact-hero{min-height:min(52vh,460px);min-height:min(52svh,460px)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,33,63,.93) 0%,rgba(3,33,63,.6) 50%,rgba(3,33,63,.2) 100%),linear-gradient(0deg,rgba(3,33,63,.7),transparent 45%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-block:calc(var(--logo-h) + var(--head-pad)*2 + 2.5rem) clamp(2.5rem,8vw,6rem);display:grid;gap:1.4rem}
.hero p{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--muted);max-width:44ch}
.hero .btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}
@media (max-width:640px){
  .hero::after{background:linear-gradient(90deg,rgba(3,33,63,.9),rgba(3,33,63,.65)),linear-gradient(0deg,rgba(3,33,63,.7),transparent 45%)}
  .hero .wrap{gap:1.1rem}
}

/* Bande de 3 photos */
.strip{display:grid;grid-template-columns:repeat(3,1fr)}
.strip>a{display:block}
.strip figure{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden}
.strip figure img{transition:transform .6s ease}
.strip a:hover img{transform:scale(1.04)}
.strip figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(3,33,63,.92))}
.strip figcaption{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;z-index:1}
.strip figcaption h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.strip figcaption p{font-size:.95rem;color:var(--muted);margin-top:.4rem}
@media (max-width:820px){.strip{grid-template-columns:1fr}.strip figure{aspect-ratio:16/10}}

/* Texte centré */
.center{padding-block:clamp(4rem,9vw,7rem);text-align:center;display:grid;gap:1.2rem;justify-items:center}
.center p{max-width:54ch}
.trio{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2.4rem;font-family:var(--f-display);font-stretch:75%;font-weight:800;text-transform:uppercase;font-size:clamp(1.2rem,2.2vw,1.6rem);margin-block:.4rem}
.trio span::before{content:"";display:inline-block;width:9px;height:9px;background:var(--red);margin-right:.6rem;vertical-align:middle;transform:rotate(45deg)}
.center .btn{justify-self:center}

/* Bande photo plein cadre avec texte */
.band{position:relative;min-height:560px;display:grid;align-content:center;overflow:hidden}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(3,33,63,.94) 0%,rgba(3,33,63,.6) 55%,rgba(3,33,63,.15) 100%)}
.band .wrap{position:relative;z-index:1;width:100%;padding-block:4rem;display:grid;justify-items:end}
.band .box{max-width:480px;display:grid;gap:1.1rem}
.band.left::after{background:linear-gradient(90deg,rgba(3,33,63,.94) 0%,rgba(3,33,63,.6) 55%,rgba(3,33,63,.15) 100%)}
.band.left .wrap{justify-items:start}
@media (max-width:640px){
  .band{min-height:0}
  .band::after,.band.left::after{background:rgba(3,33,63,.78)}
  .band .wrap{padding-block:clamp(4rem,18vw,6rem);justify-items:start}
}

/* Moitié photo / moitié texte */
.half{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.half figure{margin:0;overflow:hidden;min-height:320px}
.half .txt{padding:clamp(2.5rem,6vw,5rem) var(--gutter);display:grid;gap:1.1rem;align-content:center;background:var(--blue)}
.half.alt .txt{background:var(--blue-deep)}
.half.flip figure{order:2}
.half .txt>*{max-width:500px}
.chips{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}
.chips li{font-size:.86rem;font-weight:600;padding:.3rem .8rem;border:1px solid var(--line);border-radius:3px}
.quote{margin:0;font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.35rem;text-transform:uppercase;line-height:1.1;border-left:4px solid var(--red);padding-left:1rem}
.big{font-family:var(--f-display);font-stretch:68%;font-weight:900;font-size:clamp(4.5rem,11vw,8rem);line-height:.85;color:var(--white)}
.big small{font-size:.24em;color:var(--red);margin-left:.15em;letter-spacing:.04em}
@media (max-width:820px){.half{grid-template-columns:1fr;min-height:0}.half.flip figure{order:0}.half figure{aspect-ratio:16/10;min-height:0}}

/* Contact */
.contact{padding-block:clamp(3rem,7vw,5rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem)}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
.coord{padding:1rem 0;border-bottom:1px solid var(--line)}
.coord:first-child{border-top:1px solid var(--line)}
.coord .k{display:block;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.coord a.v{display:block}
.coord a.v:hover{color:var(--red)}
.coord .v.small{font-size:clamp(1rem,1.8vw,1.15rem);line-height:1.3}
.coord .v{font-family:var(--f-display);font-stretch:85%;font-weight:800;font-size:clamp(1.2rem,2.4vw,1.6rem);color:var(--white);user-select:all;overflow-wrap:anywhere}
form.req{background:var(--blue);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:.9rem;align-content:start;border-radius:4px}
.f{display:grid;gap:.3rem}
.f label{font-size:.82rem;font-weight:700;color:var(--muted)}
.f input,.f textarea{font:inherit;font-size:1rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:4px;background:rgba(255,255,255,.06);color:var(--white);width:100%}
.f input:focus,.f textarea:focus{border-color:var(--red);outline:none}
.f textarea{min-height:120px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:520px){.f2{grid-template-columns:1fr}}
.send{justify-self:start;font:inherit;font-weight:700;color:var(--white);background:var(--red);border:0;border-radius:4px;padding:.85rem 1.5rem;cursor:pointer}
.ok{font-size:.95rem;border-left:3px solid var(--red);padding:.6rem .9rem}

/* Chiffres clés */
.facts{background:var(--blue);padding-block:clamp(3.5rem,8vw,6rem)}
.facts h2{margin-bottom:clamp(2rem,4vw,3rem)}
.facts dl{margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.facts dl>div{border-top:3px solid var(--red);padding-top:1.1rem}
.facts dt{font-family:var(--f-display);font-stretch:68%;font-weight:900;font-size:clamp(2.8rem,5.5vw,4.2rem);line-height:.9;color:var(--white)}
.facts dd{margin:.7rem 0 0;color:var(--muted);font-size:.98rem;line-height:1.55}
@media (max-width:900px){.facts dl{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.facts dl{grid-template-columns:1fr}}

/* Questions fréquentes */
.faq{padding-block:clamp(4rem,9vw,7rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem clamp(2rem,6vw,5rem);align-items:start}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;font-weight:700;font-size:1.08rem;color:var(--white)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex-shrink:0;font-family:var(--f-display);font-weight:700;font-size:1.6rem;line-height:1;color:var(--red);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--red)}
.faq details p{color:var(--muted);padding-bottom:1.3rem;max-width:62ch}
@media (max-width:820px){.faq{grid-template-columns:1fr}}

/* Pied de page : appel à l'action puis coordonnées */
footer{background:var(--blue-deep);color:var(--muted);font-size:.95rem}
.cta{position:relative;background:var(--red);color:var(--white);overflow:hidden}
.cta::before{content:"";position:absolute;right:-120px;top:50%;width:420px;height:420px;margin-top:-210px;border:2px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.05)}
.cta .wrap{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.6rem 3rem;padding-block:clamp(2.8rem,6vw,4.5rem)}
.cta h2{font-size:clamp(2rem,4.2vw,3.2rem);max-width:18ch}
.cta h2 span{color:var(--blue-deep)}
.cta .muted{color:rgba(255,255,255,.88);margin-top:.8rem}
.cta-act{display:grid;gap:.8rem;justify-items:start}
.cta .btn{background:var(--blue-deep);font-size:1.08rem;padding:1.1rem 1.9rem;box-shadow:0 10px 24px rgba(3,33,63,.3)}
.cta .btn span{transition:transform .2s}
.cta .btn:hover span{transform:translateX(4px)}
.cta-tel{font-size:.95rem;color:rgba(255,255,255,.9)}
.cta-tel strong{color:var(--white);white-space:nowrap}
.cta-tel:hover strong{text-decoration:underline}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem clamp(2rem,5vw,4rem);padding-block:clamp(3rem,6vw,4.5rem) 2.5rem}
.foot-brand{display:grid;gap:1rem;align-content:start}
.foot-brand img{height:96px;width:auto}
.foot-brand p{max-width:34ch}
.foot-col{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}
.foot-col h2{font-size:1.15rem;letter-spacing:.04em;margin-bottom:.6rem}
.foot-col p+p{margin-top:.6rem}
.foot-col a{padding-block:.1rem;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.foot-col a:hover{color:var(--white);border-color:var(--red)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;border-top:1px solid var(--line);padding-block:1.4rem calc(1.4rem + env(safe-area-inset-bottom,0px));font-size:.85rem}
.foot-bottom a:hover{color:var(--white)}
@media (max-width:820px){.foot{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media (max-width:520px){
  .foot{grid-template-columns:1fr}
  .cta-act,.cta .btn{width:100%}
  .cta .btn{justify-content:center}
  .cta-tel{justify-self:center}
  .foot-col a{padding-block:.35rem}
}

@media (prefers-reduced-motion:no-preference){
  .hero>img{animation:zoom 1.6s cubic-bezier(.2,.7,.2,1) both}
  .hero .wrap>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
  .hero .wrap>*:nth-child(2){animation-delay:.08s}
  .hero .wrap>*:nth-child(3){animation-delay:.16s}
  @keyframes zoom{from{transform:scale(1.07)}to{transform:none}}
  @keyframes rise{from{transform:translateY(16px);opacity:.15}to{transform:none;opacity:1}}
}
