:root{
  --marine:#14213D;
  --marine-2:#1F2F54;
  --marine-soft:#1F2F54;
  --creme:#F4F5F7;
  --creme-deep:#F4F5F7;
  --blanc:#FFFFFF;
  --blanc-2:#F4F5F7;
  --gris:#E5E5E5;
  --trait:#E5E5E5;
  --encre:rgba(20,33,61,.72);
  --orange:#E5705A;
  --corail:#E5705A;
  --orange-fonce:#C9543F;
  --corail-fonce:#C9543F;
  --vert:#3E7C59;
  --olive:#3E7C59;
  --olive-soft:#5A9A74;
  --display:'Bricolage Grotesque',sans-serif;
  --body:'Karla',sans-serif;
  --script:'Caveat',cursive;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--marine);background:var(--blanc);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:inherit}
.container{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
::selection{background:var(--corail);color:var(--blanc)}

/* ===== Liseré marinière ===== */
.lisere{
  height:12px;
  background:repeating-linear-gradient(
    0deg,
    var(--marine) 0,var(--marine) 6px,
    var(--blanc) 6px,var(--blanc) 12px
  );
}

/* ===== Nav ===== */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1.5px solid rgba(20,33,61,.12);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.logo{font-family:var(--display);font-weight:800;font-size:1.28rem;letter-spacing:-.03em;text-decoration:none;display:flex;align-items:center;gap:10px;color:var(--marine)}
.logo-img{max-height:36px;width:auto;display:block}
.logo-pavillon,.logo-dot{width:9px;height:9px;border-radius:50%;background:var(--corail);flex-shrink:0}
.nav-links{display:flex;gap:30px;align-items:center;list-style:none}
.nav-links a{
  font-family:var(--display);
  font-weight:700;
  font-size:.98rem;
  letter-spacing:-.01em;
  text-decoration:none;
  color:var(--marine);
  transition:color .15s ease;
}
.nav-links a:hover{color:var(--corail-fonce)}
.nav-links .btn,.nav-links .nav-appel{
  font-family:var(--display);
  font-weight:700;
  font-size:.98rem;
  letter-spacing:-.01em;
  color:var(--marine)!important;
  border-bottom:2px solid var(--corail);
  padding:0 0 2px;
  border-radius:0;
  background:transparent;
}
.nav-links .btn:hover,.nav-links .nav-appel:hover{transform:none;box-shadow:none;background:transparent;color:var(--corail-fonce)!important}
.nav-appel{font-family:var(--display);font-weight:700;color:var(--marine)!important;border-bottom:2px solid var(--corail);padding-bottom:2px;background:transparent!important;box-shadow:none!important;border-radius:0;padding:0 0 2px}
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:44px;
  height:44px;
  padding:10px;
  border:1.5px solid rgba(20,33,61,.14);
  border-radius:10px;
  background:rgba(255,255,255,.95);
  cursor:pointer;
}
.nav-toggle-bar{
  display:block;
  width:100%;
  height:2px;
  background:var(--marine);
  border-radius:2px;
  transition:transform .2s ease,opacity .2s ease;
}
.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle-bar:nth-child(2){opacity:0}
.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
  .nav-toggle{display:inline-flex;position:relative;z-index:60}
  .nav-links{
    display:none;
    position:absolute;
    top:calc(100% + 8px);
    left:clamp(12px,4vw,24px);
    right:clamp(12px,4vw,24px);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px;
    border-radius:16px;
    background:#fff;
    border:1.5px solid rgba(20,33,61,.12);
    box-shadow:0 22px 48px -28px rgba(20,33,61,.45);
  }
  .nav-open .nav-links{display:flex}
  .nav-links a{
    padding:14px 16px;
    border-radius:10px;
  }
  .nav-links a:hover{background:rgba(20,33,61,.05)}
  .nav-links .nav-appel{
    border-bottom:none;
    margin-top:4px;
    background:rgba(229,112,90,.1)!important;
    color:var(--corail-fonce)!important;
  }
}

/* ===== Boutons ===== */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--display);font-weight:600;font-size:1rem;
  padding:14px 28px;border-radius:7px;cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease;
  border:none;text-decoration:none;letter-spacing:0;
  background:var(--corail);color:var(--blanc);
}
.btn:hover{transform:translateY(-2px);background:var(--corail-fonce);color:var(--blanc);box-shadow:0 8px 20px rgba(229,112,90,.28)}
.btn--solid{background:var(--marine);color:var(--blanc)}
.btn--solid:hover{background:var(--marine-2);box-shadow:0 6px 16px rgba(20,33,61,.22);color:var(--blanc)}
.btn--quiet{color:var(--marine);padding-left:6px;background:transparent;box-shadow:none}
.btn--quiet:hover{background:transparent;color:var(--marine);box-shadow:none;transform:none}
.btn--quiet .arrow{transition:transform .25s ease}
.btn--quiet:hover .arrow{transform:translateX(5px)}
.btn--marine{background:var(--marine);color:var(--blanc)}
.btn--marine:hover{background:var(--marine-2);color:var(--blanc)}
.btn--ghost{background:transparent;color:var(--corail-fonce);border:1.5px solid var(--corail);font-weight:600;border-radius:7px;padding:12px 24px}
.btn--ghost:hover{background:rgba(229,112,90,.08);box-shadow:none;color:var(--corail-fonce);transform:translateY(-2px)}
.btn--ghost-light{
  background:transparent;color:var(--blanc);
  border:1.5px solid rgba(255,255,255,.45);
  font-weight:600;border-radius:7px;padding:12px 24px;
}
.btn--ghost-light:hover{
  border-color:var(--blanc);background:rgba(255,255,255,.08);
  color:var(--blanc);box-shadow:none;transform:translateY(-2px);
}
.btn--corail{background:var(--corail);color:var(--blanc)}
.btn--corail:hover{background:var(--corail-fonce);color:var(--blanc)}
.btn--outline{background:transparent;color:var(--marine);border:1.5px solid rgba(20,33,61,.22);box-shadow:none;font-weight:600}
.btn--outline:hover{border-color:var(--marine);background:transparent;color:var(--marine);transform:translateY(-2px);box-shadow:none}
.container--tight{max-width:920px}

/* ===== Hero Armor nuit — typo seule ===== */
header.hero{
  position:relative;
  background:var(--marine);
  color:var(--blanc);
  padding:0 0 clamp(72px,11vw,120px);
  overflow:hidden;
  text-align:left;
}
header.hero::after{
  content:"";
  position:absolute;right:-12%;bottom:-40%;
  width:55%;height:90%;
  background:radial-gradient(circle,rgba(229,112,90,.16),transparent 68%);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:1;
  max-width:920px;
  padding-top:clamp(56px,9vw,96px);
}
.hero-brand{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.15rem,2.2vw,1.45rem);
  letter-spacing:-.03em;color:var(--blanc);
  margin:0 0 clamp(28px,4vw,44px);
  display:inline-flex;align-items:center;gap:12px;
}
.hero-brand::after{
  content:none;
}
.hero-eyebrow{
  font-family:var(--display);font-weight:700;font-size:.84rem;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.65);
  margin-bottom:clamp(20px,3vw,28px);
  display:inline-flex;align-items:center;gap:12px;
}
.hero-eyebrow::before{content:"";width:28px;height:2px;background:var(--corail);flex-shrink:0}
.hero-eyebrow::before{content:none}
.hero h1{
  font-family:var(--display);font-weight:800;
  font-size:clamp(3.1rem,8vw,6rem);
  line-height:.98;letter-spacing:-.05em;
  margin-bottom:clamp(20px,3vw,32px);
  color:var(--blanc);
  max-width:12ch;
  font-variation-settings:'opsz' 96;
}
.hero h1 .l2{display:block;margin-top:.06em}
.hero-sub{
  font-size:clamp(1.1rem,2.1vw,1.35rem);
  color:rgba(255,255,255,.88);
  max-width:38ch;line-height:1.55;
  margin-bottom:clamp(28px,4vw,40px);
}
.hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.hero .dispo{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.85);
  box-shadow:none;
}
.hero .dispo-txt b{color:var(--blanc)}
@media(max-width:600px){
  .hero h1{max-width:none}
}

/* ===== Sections ===== */
.section{padding:clamp(64px,8vw,88px) 0}

#travaux{background:var(--blanc)}
#process{background:var(--blanc-2)}
#offres{background:var(--blanc)}
#apropos{background:var(--blanc-2)}
#faq{background:var(--blanc)}
.trust-strip{background:var(--blanc)}

.kicker{
  font-family:var(--display);font-weight:800;font-size:.84rem;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--corail-fonce);
  display:inline-block;margin-bottom:18px;
  border:2px solid var(--corail);
  border-radius:99px;padding:7px 18px;
  background:rgba(229,112,90,.08);
}
.s-title{
  font-family:var(--display);font-weight:800;
  font-size:clamp(2.55rem,5.8vw,4rem);
  line-height:1;letter-spacing:-.045em;
  margin-bottom:20px;
  color:var(--marine);
  font-variation-settings:'opsz' 96;
}
.s-intro{font-size:1.16rem;color:var(--encre);max-width:44ch;line-height:1.55}
.head-center{text-align:center;max-width:760px;margin:0 auto 56px}
.head-center .s-intro{margin-left:auto;margin-right:auto}
.head-center .s-title{max-width:18ch;margin-left:auto;margin-right:auto}
.head-center .about-lieu{margin-left:auto;margin-right:auto}
.head-left{margin-bottom:8px;max-width:none;text-align:center}

/* ===== Méthode ===== */
.method-timeline{
  list-style:none;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(14px,2vw,22px);
  margin-top:44px;padding:0;position:relative;
}
.method-timeline::before{
  content:"";position:absolute;top:0;left:0;right:0;height:0;
  pointer-events:none;
}
.method-step{
  position:relative;
  text-align:left;
  padding:28px 24px 26px;
  background:var(--blanc);
  border:1.5px solid rgba(20,33,61,.14);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 28px -22px rgba(20,33,61,.28);
  opacity:0;
  transform:translateY(28px);
  transition:
    opacity .55s cubic-bezier(.22,1,.36,1),
    transform .55s cubic-bezier(.22,1,.36,1),
    box-shadow .3s ease,
    border-color .3s ease;
  transition-delay:calc(var(--step-i,0) * 110ms);
}
.method-timeline.is-in .method-step{
  opacity:1;
  transform:translateY(0);
}
.method-step::before{
  content:"";
  position:absolute;top:0;left:0;right:0;height:6px;
  background:repeating-linear-gradient(90deg,var(--marine) 0 12px,var(--blanc) 12px 24px);
  transition:background .35s ease;
}
.method-step:hover{
  transform:translateY(-6px);
  border-color:rgba(20,33,61,.28);
  box-shadow:0 22px 48px -28px rgba(20,33,61,.4);
}
.method-timeline.is-in .method-step:hover{transform:translateY(-6px)}
.method-step:hover::before{
  background:repeating-linear-gradient(90deg,var(--corail) 0 12px,var(--blanc) 12px 24px);
}
.method-step-num{
  display:block;
  margin:4px 0 14px;
  line-height:1;
}
.method-step-num__val{
  font-family:var(--display);font-weight:800;
  font-size:clamp(2.2rem,3.2vw,2.75rem);
  letter-spacing:-.04em;color:var(--corail);
  display:inline-block;
  transform:scale(.92);
  transition:transform .4s cubic-bezier(.22,1,.36,1),color .3s ease;
}
.method-timeline.is-in .method-step-num__val{transform:scale(1)}
.method-step:hover .method-step-num__val{color:var(--corail-fonce)}
.method-step-body{position:relative;z-index:1}
.method-step h3{
  font-family:var(--display);font-weight:700;font-size:1.18rem;
  letter-spacing:-.02em;margin-bottom:8px;color:var(--marine);
}
.method-step p{font-size:.98rem;color:var(--encre);line-height:1.5;margin:0}
@media(max-width:900px){
  .method-timeline{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:36px}
}
@media(max-width:560px){
  .method-timeline{grid-template-columns:1fr;gap:14px}
  .method-step{padding:24px 20px 22px}
  .method-step-num__val{font-size:2.1rem}
}
@media(prefers-reduced-motion:reduce){
  .method-step{
    opacity:1;transform:none;transition:none;
  }
  .method-timeline.is-in .method-step:hover{transform:none}
  .method-step-num__val{transform:none}
}

/* ===== Dispo ===== */
.dispo{
  --statut:#3E7C59;
  display:inline-flex;align-items:center;gap:10px;
  background:var(--blanc);border:1.5px solid var(--gris);border-radius:99px;
  padding:11px 20px;box-shadow:0 4px 16px rgba(20,33,61,.06);
  font-size:.94rem;color:var(--encre);
}
.dispo-vert{--statut:#3E7C59}
.dispo-orange{--statut:#D98A2B}
.dispo-rouge{--statut:#C0492F}
.dispo-point{width:11px;height:11px;border-radius:50%;background:var(--statut);position:relative;flex-shrink:0}
.dispo-point::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--statut);opacity:.4;animation:dispo-pulse 2.4s ease-out infinite}
@keyframes dispo-pulse{0%{transform:scale(.5);opacity:.6}100%{transform:scale(1.6);opacity:0}}
.dispo-txt{font-weight:500}
.dispo-txt b{font-family:var(--display);font-weight:800;color:var(--marine)}
@media(prefers-reduced-motion:reduce){.dispo-point::after{animation:none}}

/* ===== Travaux ===== */
#travaux .head-center{margin-bottom:0}
#travaux .works{margin-top:48px}
.works-band{width:100%;margin-top:clamp(32px,4vw,48px)}
.works-note{
  margin:28px auto 0;
  max-width:52ch;
  text-align:center;
  font-size:.92rem;
  color:var(--encre);
  line-height:1.5;
}
.work-showcase__site{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:12px;
  font-family:var(--display);
  font-weight:700;
  font-size:.92rem;
  color:var(--corail-fonce);
  text-decoration:underline;
  text-underline-offset:3px;
}
.work-showcase__site:hover{color:var(--marine)}
.works--solo{width:100%}

.work-showcase{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,64px);align-items:center;
  width:100%;padding:0;border:none;border-radius:0;
  background:transparent;box-shadow:none;
  text-align:left;color:var(--marine);font:inherit;
  cursor:pointer;transition:transform .3s ease;
  appearance:none;-webkit-appearance:none;
}
.work-showcase:hover,.work-showcase:focus-visible{transform:none}
.work-showcase__visual,.work-showcase__frame{width:100%}
.work-showcase__frame{
  border-radius:12px;overflow:hidden;border:1.5px solid rgba(20,33,61,.14);
  background:var(--blanc);
  box-shadow:0 24px 60px -24px rgba(20,33,61,.35);
  transition:box-shadow .3s ease,transform .3s ease;
}
.work-showcase:hover .work-showcase__frame{transform:translateY(-4px);box-shadow:0 32px 72px -20px rgba(20,33,61,.4)}
.work-showcase__bar{
  display:flex;align-items:center;gap:14px;padding:10px 14px;
  background:var(--marine);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.work-showcase__dots{display:flex;gap:7px;flex-shrink:0}
.work-showcase__dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);display:block}
.work-showcase__dots i:first-child{background:#E5705A}
.work-showcase__dots i:nth-child(2){background:#E8C98A}
.work-showcase__dots i:nth-child(3){background:#7CB87A}
.work-showcase__url{
  flex:1;text-align:center;font-size:.8rem;color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.1);border-radius:6px;padding:6px 12px;
  font-family:var(--body);font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.work-showcase__shot{line-height:0;background:var(--blanc)}
.work-showcase__shot img{width:100%;height:auto;display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.work-showcase__content{padding:clamp(8px,2vw,16px) 0;max-width:420px}
.work-showcase__meta{
  font-family:var(--display);font-weight:700;font-size:.76rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--corail-fonce);margin-bottom:12px;
}
.work-showcase__title{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.85rem,3.6vw,2.6rem);
  letter-spacing:-.035em;line-height:1.04;color:var(--marine);margin-bottom:16px;
}
.work-showcase__excerpt{font-size:1.05rem;line-height:1.55;color:var(--encre);margin-bottom:28px;max-width:36ch}
.work-showcase__link{
  font-family:var(--display);font-weight:700;font-size:1.02rem;
  color:var(--marine);display:inline-flex;align-items:center;gap:10px;
}
.work-showcase__link::after{content:"→";color:var(--corail);transition:transform .25s ease}
.work-showcase:hover .work-showcase__link::after{transform:translateX(5px)}

.works{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.work-card{
  border:1.5px solid rgba(20,33,61,.14);background:var(--blanc);border-radius:14px;
  padding:18px;text-align:left;color:inherit;font:inherit;cursor:pointer;
  box-shadow:0 12px 36px -28px rgba(20,33,61,.3);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  width:100%;display:flex;flex-direction:column;
}
.work-card:hover,.work-card:focus-visible{transform:translateY(-5px);border-color:rgba(20,33,61,.28);box-shadow:0 24px 56px -32px rgba(20,33,61,.4)}
.work-preview{border-radius:10px;overflow:hidden;border:1px solid rgba(20,33,61,.1);background:var(--blanc);margin-bottom:20px}
.work-preview--photo img{width:100%;height:auto;display:block}
.work-preview:not(.work-preview--photo){aspect-ratio:1/1}
.work-preview:not(.work-preview--photo) .work-mockup{height:100%}
.work-preview .work-mockup{height:100%;margin-bottom:0;display:flex;flex-direction:column;border:none;border-radius:0}
.work-preview .work-mockup .mockup-screen{flex:1;aspect-ratio:auto;min-height:0}
.work-body{display:flex;flex-direction:column;flex:1;justify-content:center}
.work-mockup{border-radius:10px;overflow:hidden;border:1px solid rgba(20,33,61,.1);background:var(--blanc);margin-bottom:20px}
.mockup-bar{height:28px;background:var(--marine);display:flex;align-items:center;gap:6px;padding:0 12px}
.mockup-bar span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35)}
.mockup-screen{aspect-ratio:16/11;padding:22px;display:grid;gap:12px;align-content:start;position:relative;overflow:hidden}
.mockup-screen::after{content:"";position:absolute;right:-24%;bottom:-38%;width:72%;height:72%;border-radius:50%;background:rgba(255,255,255,.36)}
.mockup-hero{height:72px;border-radius:10px;position:relative;z-index:1}
.mockup-lines{display:grid;gap:8px;position:relative;z-index:1}
.mockup-lines i{display:block;height:8px;border-radius:99px;background:rgba(20,33,61,.16)}
.mockup-lines i:nth-child(2){width:76%}
.mockup-lines i:nth-child(3){width:54%}
.mockup-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:1}
.mockup-tiles i{height:46px;border-radius:8px;background:rgba(255,255,255,.55)}
.mockup-waffle{background:linear-gradient(145deg,#E9BA65,#F6E0B7)}
.mockup-waffle .mockup-hero{background:repeating-linear-gradient(45deg,#C48635 0 8px,#EBC170 8px 16px)}
.mockup-beaute{background:linear-gradient(145deg,#F0D5D2,#FFF5EF)}
.mockup-beaute .mockup-hero{background:linear-gradient(120deg,#A65E68,#E8AAA3)}
.mockup-bati{background:linear-gradient(145deg,#DCE4D4,#F7F0E4)}
.mockup-bati .mockup-hero{background:linear-gradient(120deg,#314358,#7C7F4E)}
.work-card h3{font-family:var(--display);font-weight:700;font-size:1.4rem;letter-spacing:-.02em;margin-bottom:4px}
.work-job{font-size:.92rem;color:var(--corail-fonce);font-weight:700;margin-bottom:12px}
.work-card p{font-size:.98rem;color:var(--encre);line-height:1.48;margin-bottom:18px}
.work-link{font-family:var(--display);font-weight:700;color:var(--marine);display:inline-flex;align-items:center;gap:8px}
.work-link::after{content:"→";color:var(--corail);transition:transform .25s ease}
.work-card:hover .work-link::after{transform:translateX(5px)}

.project-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:28px;background:rgba(20,33,61,.7);backdrop-filter:blur(10px)}
.project-modal.is-open{display:flex}
body.modal-open{overflow:hidden}
.modal-panel{width:min(920px,100%);max-height:min(760px,90vh);overflow:auto;background:var(--blanc);border:1px solid rgba(255,255,255,.2);border-radius:16px;box-shadow:0 40px 100px -38px rgba(0,0,0,.55);position:relative;padding:44px}
.modal-close{position:absolute;right:22px;top:22px;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--trait);background:var(--blanc);color:var(--marine);font-size:1.45rem;line-height:1;cursor:pointer;transition:transform .2s ease,background .2s ease}
.modal-close:hover{transform:rotate(6deg);background:var(--blanc-2)}
.modal-kicker{font-family:var(--display);font-weight:700;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--corail-fonce);margin-bottom:12px}
.modal-title{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.035em;line-height:1;margin-bottom:8px;padding-right:44px}
.modal-job{color:var(--corail-fonce);font-weight:700;margin-bottom:34px}
.modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}
.modal-block{background:var(--blanc-2);border:1px solid var(--trait);border-radius:12px;padding:22px}
.modal-block h4{font-family:var(--display);font-weight:700;font-size:1rem;letter-spacing:-.01em;margin-bottom:10px}
.modal-block p{color:var(--encre);font-size:1rem;line-height:1.5}
.modal-quote{border-left:3px solid var(--corail);padding:8px 0 8px 22px;font-family:var(--display);font-weight:500;font-size:1.2rem;line-height:1.45;color:var(--marine)}
.modal-quote cite{display:block;font-family:var(--body);font-style:normal;font-weight:700;font-size:.92rem;color:var(--encre);margin-top:10px}
.modal-quote[hidden],.modal-url[hidden]{display:none}
.modal-url{margin-top:28px}
@media(min-width:960px){
  .work-showcase{grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,72px)}
}
@media(max-width:959px){
  .work-showcase{grid-template-columns:1fr;gap:28px;padding:0}
  .work-showcase__content{padding:0;max-width:none}
  .work-showcase__excerpt{max-width:none}
}
@media(max-width:900px){.works{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}.modal-grid{grid-template-columns:1fr}.modal-panel{padding:34px 24px}}

/* ===== À propos ===== */
.about-copy{
  max-width:640px;
  margin:0 auto;
  text-align:left;
}
.about-lieu{
  font-family:var(--display);font-weight:700;font-size:1rem;
  letter-spacing:-.01em;color:var(--corail-fonce);margin:-4px 0 0;
}
.about-copy p{color:var(--encre);font-size:1.06rem;margin-bottom:16px;max-width:52ch}
.signature{font-family:var(--script);font-size:2.4rem;color:var(--marine);margin-top:12px;line-height:1}
.signature small{display:block;font-family:var(--body);font-size:.85rem;color:var(--encre);font-weight:500;letter-spacing:.02em;margin-top:4px}

.signature-marque{background:var(--marine);padding:clamp(80px,10vw,120px) 0;text-align:center}
.signature-marque p{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.1;letter-spacing:-.035em;color:var(--blanc)}
.signature-marque .hl{font-size:inherit;background:rgba(229,112,90,.35);color:var(--blanc)}

/* ===== Offres ===== */
#offres{background:var(--blanc);color:var(--marine)}
#offres .s-title{color:var(--marine)}
#offres .s-intro{color:var(--encre)}
.offres{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.offre{
  background:var(--blanc);border:1.5px solid rgba(20,33,61,.14);
  border-radius:14px;padding:36px 30px;
  display:flex;flex-direction:column;color:var(--marine);
  transition:transform .25s ease,box-shadow .25s ease;
}
.offre:hover{transform:translateY(-4px);box-shadow:0 18px 44px -28px rgba(20,33,61,.28)}
.offre--mid{
  background:var(--marine);color:var(--blanc);border-color:transparent;
  box-shadow:0 22px 48px rgba(20,33,61,.22);transform:scale(1.03);
}
.offre--mid:hover{transform:scale(1.03) translateY(-4px)}
.offre-tag{font-family:var(--display);font-weight:700;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--corail-fonce);margin-bottom:16px;display:block}
.offre--mid .offre-tag{color:rgba(255,255,255,.7)}
.offre h3,.offre .h3-devis{font-family:var(--display);font-weight:800;font-size:2.4rem;letter-spacing:-.03em;line-height:1;margin-bottom:10px}
.offre h3 small{font-size:1.05rem;font-weight:500}
.offre .h3-devis{font-size:1.75rem;padding-top:10px}
.offre .desc{font-size:.98rem;color:var(--encre);margin-bottom:24px;min-height:44px}
.offre--mid .desc{color:rgba(255,255,255,.65)}
.offre ul{list-style:none;margin-bottom:30px;flex:1;display:flex;flex-direction:column;gap:12px;text-align:left}
.offre li{display:flex;gap:12px;align-items:flex-start;font-size:.98rem;line-height:1.45}
.offre li svg{width:17px;height:17px;flex-shrink:0;margin-top:4px;stroke:var(--marine);fill:none;stroke-width:2.6}
.offre--mid li svg{stroke:rgba(255,255,255,.85)}
.offre li.off{opacity:.45}
.offre .btn{width:100%;justify-content:center}
.offre--side .btn{background:var(--corail);color:var(--blanc);border:none}
.offre--side .btn:hover{transform:translateY(-2px);background:var(--corail-fonce);color:var(--blanc)}
.offre-next{
  margin:12px 0 0;
  min-height:34px;
  font-size:.86rem;
  line-height:1.35;
  color:rgba(20,33,61,.58);
  text-align:center;
}
.offre--mid .offre-next{color:rgba(255,255,255,.68)}
.tranquillite{
  display:flex;align-items:center;justify-content:center;gap:16px;
  margin:32px auto 0;padding:20px 26px 20px 30px;max-width:720px;
  background:var(--blanc-2);border:1.5px solid rgba(20,33,61,.12);
  border-radius:12px;font-size:.98rem;color:var(--encre);
  flex-wrap:wrap;text-align:center;position:relative;overflow:hidden;
}
.tranquillite::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--corail)}
.tranquillite b{color:var(--marine);font-family:var(--display);font-weight:700}
.tranquillite .pastille{
  font-family:var(--display);font-weight:700;font-size:.76rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--corail-fonce);
  background:rgba(229,112,90,.1);border:1px solid rgba(229,112,90,.28);
  padding:5px 12px;border-radius:99px;
}
.offres-foot{text-align:center;margin-top:28px;font-size:.98rem;color:var(--encre);max-width:60ch;margin-left:auto;margin-right:auto}
.offres-swipe-hint,
.offres-dots,
.offres-rail{display:none}
@media(max-width:860px){
  .offres-swipe-hint{
    display:block;
    text-align:center;
    font-family:var(--display);
    font-weight:700;
    font-size:.88rem;
    color:var(--corail-fonce);
    margin:0 0 14px;
  }
  .offres-rail{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin:0 0 16px;
  }
  .offres-rail__item{
    appearance:none;
    border:1.5px solid rgba(20,33,61,.14);
    background:var(--blanc);
    border-radius:12px;
    padding:10px 8px;
    cursor:pointer;
    text-align:center;
    font-family:var(--body);
    color:var(--marine);
    transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
  }
  .offres-rail__item span{
    display:block;
    font-family:var(--display);
    font-weight:700;
    font-size:.72rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--encre);
    margin-bottom:4px;
  }
  .offres-rail__item strong{
    display:block;
    font-family:var(--display);
    font-weight:800;
    font-size:.95rem;
  }
  .offres-rail__item.is-active{
    border-color:var(--corail);
    background:rgba(229,112,90,.08);
    box-shadow:0 0 0 2px rgba(229,112,90,.18);
  }
  .offres-rail__item.is-active span{color:var(--corail-fonce)}
  .offres{
    --offre-card: min(78vw, 320px);
    --offre-peek: max(18px, calc((100vw - var(--offre-card)) / 2));
    display:flex;
    align-items:stretch;
    gap:12px;
    max-width:none;
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:10px var(--offre-peek) 18px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--offre-peek);
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .offres::-webkit-scrollbar{display:none}
  .offre{
    flex:0 0 var(--offre-card);
    width:var(--offre-card);
    max-width:none;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    padding:26px 20px;
    order:0!important;
    transform:scale(.9);
    opacity:.48;
    filter:saturate(.85);
    transition:transform .25s ease,opacity .25s ease,filter .25s ease,box-shadow .25s ease;
    cursor:pointer;
  }
  .offre.is-active{
    transform:scale(1);
    opacity:1;
    filter:none;
    box-shadow:0 18px 40px -24px rgba(20,33,61,.35);
    cursor:default;
    z-index:1;
  }
  .offre--mid{transform:scale(.9)}
  .offre--mid.is-active{transform:scale(1)}
  .offre--mid:hover{transform:scale(1)}
  .offre.is-active:hover{transform:scale(1)}
  .offres-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin:6px 0 8px;
  }
  .offres-dot{
    width:8px;height:8px;
    border:none;padding:0;
    border-radius:99px;
    background:rgba(20,33,61,.2);
    cursor:pointer;
  }
  .offres-dot.is-active{
    width:22px;
    background:var(--corail);
  }
}

/* ===== FAQ ===== */
.faq{max-width:820px;margin:48px auto 0;display:flex;flex-direction:column;gap:12px}
.faq-item{
  background:var(--blanc);border:1.5px solid rgba(20,33,61,.14);
  border-radius:12px;padding:20px 24px;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.faq-item[open]{border-color:var(--marine);box-shadow:0 12px 32px -24px rgba(20,33,61,.25)}
.faq-item summary{font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:-.02em;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--marine)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .pm{width:22px;height:22px;flex-shrink:0;position:relative}
.faq-item summary .pm::before,.faq-item summary .pm::after{content:"";position:absolute;background:var(--marine);border-radius:2px;transition:transform .25s ease}
.faq-item summary .pm::before{left:0;right:0;top:10px;height:2px}
.faq-item summary .pm::after{top:0;bottom:0;left:10px;width:2px}
.faq-item[open] summary .pm::after{transform:scaleY(0)}
.faq-item p{color:var(--encre);font-size:1.02rem;margin-top:16px;padding-top:16px;border-top:1px solid var(--trait);max-width:64ch}

.trust-strip{padding:56px 0 16px}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.trust-item{background:var(--blanc);border:1.5px solid rgba(20,33,61,.12);border-radius:12px;padding:20px;font-family:var(--display);font-weight:700;font-size:.98rem;color:var(--marine);display:flex;align-items:center;gap:12px}
.trust-item svg{width:18px;height:18px;stroke:var(--corail);fill:none;stroke-width:2.4;flex-shrink:0}
@media(max-width:860px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trust-grid{grid-template-columns:1fr}}

/* ===== Contact ===== */
.final{padding:clamp(64px,8vw,88px) 0 clamp(80px,10vw,110px);text-align:center;background:var(--blanc)}
#contact.final{
  background:var(--marine);color:var(--blanc);
  padding:clamp(80px,10vw,112px) 0 clamp(96px,12vw,128px);
}
#contact .s-title{color:var(--blanc);max-width:14ch;margin-left:auto;margin-right:auto}
#contact .s-intro{color:rgba(255,255,255,.78);max-width:48ch;margin-left:auto;margin-right:auto}
#contact .contact-head{margin-bottom:clamp(36px,5vw,52px)}
#contact .head-center{max-width:none}
#contact .contact-pied{color:rgba(255,255,255,.65);font-size:1rem}
#contact .contact-pied a{color:var(--corail);text-decoration:none}
#contact .contact-pied a:hover{color:var(--blanc)}
#contact .form-wrap{max-width:720px}
.section-devis{
  background:var(--blanc-2);
  padding:clamp(64px,8vw,88px) 0;
}
.section-devis .form-wrap{max-width:640px;margin:0 auto}
.section-devis .fcarte{
  background:var(--blanc);
  border:1.5px solid rgba(20,33,61,.12);
  border-radius:18px;
  padding:clamp(28px,4vw,40px);
  text-align:left;
  box-shadow:0 18px 44px -34px rgba(20,33,61,.35);
}
.section-devis .fnav{margin-top:22px}
.section-devis .fnav .btn{width:100%;justify-content:center}
.section-devis .fconfirm{display:none;text-align:center;padding:12px 0 8px}
.section-devis .fconfirm.actif{display:block}
#contact .fcarte{
  padding:clamp(28px,4vw,40px);border:none;
  box-shadow:0 28px 70px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.08);
}
#contact .fprogress{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--trait)}
#contact .fprogress-haut .fetape-nom{color:var(--corail-fonce)}
#contact .fprogress-haut .fcompteur{color:var(--encre)}
#contact .fbarre{background:var(--blanc-2)}
#contact .fbarre-fill{background:var(--corail)}
#contact .fnav .btn--corail{width:100%;justify-content:center;padding:15px 28px;font-size:1.02rem}
#contact .fnav .btn--retour.cache + .btn--corail,
#contact .fnav:has(.btn--retour.cache) .btn--corail{margin-left:auto}
.final .contact-head{margin-bottom:40px}
.final .s-intro{margin:0 auto}
.final .form-wrap{margin-top:0}

.form-wrap{max-width:680px;margin:0 auto}
.fprogress{margin-bottom:24px}
.fprogress-haut{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.fprogress-haut .fetape-nom{font-family:var(--display);font-weight:800;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--marine-2)}
.fprogress-haut .fcompteur{font-weight:700;font-size:.9rem;color:var(--marine-2)}
.fbarre{height:8px;background:var(--trait);border-radius:99px;overflow:hidden}
.fbarre-fill{height:100%;background:var(--corail);border-radius:99px;width:16.6%;transition:width .4s cubic-bezier(.22,1,.36,1)}
.fcarte{background:var(--blanc);border:1.5px solid rgba(20,33,61,.12);border-radius:14px;padding:34px;box-shadow:0 10px 40px rgba(20,33,61,.08);text-align:left;position:relative;color:var(--marine)}
.fetape{display:none}
.fetape.actif{display:block;animation:ffade .4s ease}
@keyframes ffade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fetape h3{font-family:var(--display);font-weight:800;font-size:1.35rem;letter-spacing:-.02em;line-height:1.14;margin-bottom:8px;color:var(--marine)}
.fetape .fintro{color:var(--encre);font-size:1rem;margin-bottom:24px}
.fchamp{margin-bottom:16px;display:block}
.fchamp label,.flabel{font-weight:800;font-size:.88rem;display:block;margin-bottom:8px;color:var(--marine)}
.fcarte input[type=text],.fcarte input[type=email],.fcarte input[type=tel],.fcarte textarea,.fcarte select{width:100%;font-family:var(--body);font-size:1rem;padding:13px 15px;border:1.5px solid rgba(20,33,61,.22);border-radius:8px;background:var(--blanc);color:var(--marine)}
.fcarte input:focus,.fcarte textarea:focus,.fcarte select:focus{outline:3px solid rgba(229,112,90,.28);border-color:var(--corail)}
.fcarte textarea{resize:vertical;min-height:120px;line-height:1.5}
.fcarte select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--marine) 50%),linear-gradient(135deg,var(--marine) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:36px}
.foffres-recap{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:8px 0 4px;
}
.foffre-card{
  position:relative;
  display:block;
  padding:16px 16px 16px 48px;
  border:1.5px solid rgba(20,33,61,.16);
  border-radius:14px;
  background:var(--blanc);
  cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
  text-align:left;
}
.foffre-card:hover{border-color:rgba(229,112,90,.55)}
.foffre-card:has(input:checked),
.foffre-card:has(input:focus-visible){
  border-color:var(--corail);
  box-shadow:0 0 0 3px rgba(229,112,90,.2);
  background:rgba(229,112,90,.04);
}
.foffre-card--featured{border-color:rgba(229,112,90,.4)}
.foffre-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.foffre-card__check{
  position:absolute;
  left:16px;top:18px;
  width:18px;height:18px;
  border:2px solid rgba(20,33,61,.28);
  border-radius:50%;
  background:var(--blanc);
}
.foffre-card:has(input:checked) .foffre-card__check{
  border-color:var(--corail);
  background:var(--corail);
  box-shadow:inset 0 0 0 3px #fff;
}
.foffre-card__top{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 12px;
  margin-bottom:4px;
}
.foffre-card__badge{
  font-family:var(--display);
  font-weight:800;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--corail-fonce);
  background:rgba(229,112,90,.12);
  border-radius:99px;
  padding:3px 10px;
}
.foffre-card__name{
  font-family:var(--display);
  font-weight:800;
  font-size:1.05rem;
  color:var(--marine);
}
.foffre-card__price{
  margin-left:auto;
  font-family:var(--display);
  font-weight:800;
  font-size:1.05rem;
  color:var(--corail-fonce);
}
.foffre-card__note{
  display:block;
  font-size:.92rem;
  color:var(--encre);
  line-height:1.45;
  margin-bottom:8px;
}
.foffre-card__list{
  margin:0;
  padding:0 0 0 1.1em;
  list-style:disc;
  font-size:.88rem;
  color:rgba(20,33,61,.72);
  line-height:1.45;
}
.foffre-card__list li{margin-bottom:2px}
.foffre-card--later .foffre-card__name{font-size:1rem}
.foffre-card--later .foffre-card__note{margin-bottom:0}
@media(max-width:560px){
  .foffre-card__price{margin-left:0;width:100%}
}
.faide{font-size:.82rem;color:rgba(20,33,61,.55);margin-top:6px}
.fdeux{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fchoix{display:grid;gap:11px;margin-bottom:8px}
.fchoix.col2{grid-template-columns:1fr 1fr}
@media(max-width:560px){.fdeux,.fchoix.col2{grid-template-columns:1fr}}
.fopt{position:relative;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1.5px solid var(--gris);border-radius:10px;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.fopt:hover{border-color:var(--corail)}
.fopt input{position:absolute;opacity:0;pointer-events:none}
.fopt .fpuce{width:22px;height:22px;border:2px solid rgba(20,33,61,.3);border-radius:50%;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}
.fopt input[type=checkbox]+.fpuce{border-radius:6px}
.fopt .fpuce::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--corail);transform:scale(0);transition:transform .15s ease}
.fopt input[type=checkbox]+.fpuce::after{border-radius:2px}
.fopt input:checked+.fpuce{border-color:var(--corail)}
.fopt input:checked+.fpuce::after{transform:scale(1)}
.fopt:has(input:checked){border-color:var(--corail);background:rgba(229,112,90,.06)}
.fopt .flib b{font-family:var(--display);font-weight:700;display:block;font-size:.98rem}
.fopt .flib span{font-size:.86rem;color:rgba(20,33,61,.6)}
.fautre{margin-top:10px;display:none}
.fautre.ouvert{display:block}
.fnav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:14px}
.fcarte .btn--retour{background:transparent;color:rgba(20,33,61,.6);padding:14px 8px;font-weight:700;font-family:var(--display);border:none;cursor:pointer;font-size:1rem}
.fcarte .btn--retour:hover{color:var(--marine);transform:none;box-shadow:none}
.fcarte .btn--retour.cache{visibility:hidden}
.frecap{list-style:none;border:1px solid var(--gris);border-radius:10px;overflow:hidden;margin-bottom:20px}
.frecap li{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;font-size:.92rem;border-bottom:1px solid var(--gris)}
.frecap li:last-child{border-bottom:none}
.frecap li small{color:rgba(20,33,61,.55);font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.08em}
.frecap li b{font-family:var(--display);font-weight:600;text-align:right;max-width:60%}
.frgpd{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:rgba(20,33,61,.72)}
.frgpd input{width:auto;margin-top:3px}
.frgpd a{color:var(--corail-fonce);font-weight:700;text-decoration:none}
.fconfirm{display:none;text-align:center}
.fconfirm.actif{display:block;animation:ffade .4s ease}
.fconfirm .frond{width:72px;height:72px;border-radius:50%;background:rgba(62,124,89,.15);color:var(--vert);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 20px}
.fconfirm h3{font-family:var(--display);font-weight:800;font-size:1.55rem;margin-bottom:12px;color:var(--marine)}
.fconfirm p{color:rgba(20,33,61,.75);max-width:430px;margin:0 auto 8px}
.contact-pied{text-align:center;margin-top:26px;color:rgba(20,33,61,.7);font-size:.96rem}
.contact-pied a{font-weight:700;color:var(--corail-fonce);text-decoration:none}

.fhp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ferreur{margin-top:16px;padding:12px 16px;border-radius:8px;background:rgba(192,73,47,.1);color:var(--corail-fonce);font-size:.9rem;font-weight:600}
.ferreur[hidden]{display:none}
.fcaptcha-wrap{margin-bottom:18px}
.fcaptcha{min-height:78px}
.btn:disabled{opacity:.65;cursor:not-allowed;transform:none}
.fchamp input:invalid:not(:placeholder-shown),.fcarte input.er-champ{border-color:var(--corail-fonce)}

/* ===== Footer ===== */
footer{border-top:1.5px solid rgba(20,33,61,.12);padding:44px 0;background:var(--blanc);color:var(--marine)}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.footer-meta{font-family:var(--body);font-size:.9rem;color:var(--encre)}
.footer-links{display:flex;gap:28px;flex-wrap:wrap}
.footer-links a{
  font-family:var(--display);font-weight:700;font-size:.98rem;
  letter-spacing:-.01em;color:var(--marine);text-decoration:none;transition:color .15s ease;
}
.footer-links a:hover{color:var(--corail-fonce);text-decoration:underline}

/* ===== Motion ===== */
@keyframes monte{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.hero .hero-brand{animation:monte .7s cubic-bezier(.22,1,.36,1) both}
.hero .hero-eyebrow{animation:monte .7s cubic-bezier(.22,1,.36,1) .06s both}
.hero h1{animation:monte .7s cubic-bezier(.22,1,.36,1) .12s both}
.hero .hero-sub{animation:monte .7s cubic-bezier(.22,1,.36,1) .22s both}
.hero-actions{animation:monte .7s cubic-bezier(.22,1,.36,1) .32s both}
.hero .dispo{animation:monte .7s cubic-bezier(.22,1,.36,1) .4s both}
.hero-visual{animation:monte .8s cubic-bezier(.22,1,.36,1) .18s both}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

.offre,.work-card{transition:transform .25s ease,box-shadow .25s ease}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.offre,.work-card{transition:none}
  .hero .hero-brand,.hero .hero-eyebrow,.hero h1,.hero .hero-sub,.hero-actions,.hero .dispo,.hero-visual{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .offre--mid{transform:none}
}

:focus-visible{outline:2px solid var(--corail);outline-offset:3px}

/* ===== Pages légales ===== */
.legal-page{padding:64px 0 80px;background:var(--blanc)}
.legal-title{font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,4vw,2.6rem);letter-spacing:-.02em;margin-bottom:28px;color:var(--marine)}
.legal-content{max-width:760px;color:rgba(20,33,61,.88);font-size:1.02rem}
.legal-content h2{font-family:var(--display);font-weight:700;font-size:1.25rem;margin:32px 0 12px;color:var(--marine)}
.legal-content p,.legal-content ul{margin-bottom:14px}
.legal-content ul{padding-left:1.2rem}
.legal-content a{color:var(--corail-fonce);font-weight:700;text-decoration:none}
.legal-content a:hover{text-decoration:underline}
.legal-content em{color:rgba(20,33,61,.65)}
.legal-back{margin-top:40px}
.legal-back a{font-weight:700;color:var(--corail-fonce);text-decoration:none}

/* ===== Cookies ===== */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:rgba(255,255,255,.97);border-top:1.5px solid var(--gris);
  box-shadow:0 -8px 32px rgba(20,33,61,.1);padding:18px 0;
}
.cookie-banner[hidden]{display:none}
.cookie-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cookie-banner-text{margin:0;max-width:640px;font-size:.95rem;color:rgba(20,33,61,.82)}
.cookie-banner-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cookie-banner-link{font-weight:700;color:var(--corail-fonce);text-decoration:none;font-size:.9rem}
.cookie-banner-link:hover{text-decoration:underline}
.cookie-banner-reject,.cookie-banner-accept{white-space:nowrap}
@media(max-width:720px){
  .cookie-banner-inner{flex-direction:column;align-items:flex-start}
  .cookie-banner-actions{width:100%}
  .cookie-banner-actions .btn{width:100%;text-align:center}
}

/* ===== Design pass: contrast, rhythm, concrete hero ===== */
:root{--encre:rgba(20,33,61,.84)}

header.hero{
  padding:0 0 clamp(56px,8vw,92px);
}
header.hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 82%);
  pointer-events:none;
}
header.hero::after{
  display:none;
}
.hero-inner{
  max-width:1180px;
  padding-top:clamp(44px,7vw,76px);
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(380px,.96fr);
  gap:clamp(34px,6vw,72px);
  align-items:center;
}
.hero-copy,.hero-visual{min-width:0}
.hero-brand{margin-bottom:clamp(22px,3vw,32px)}
.hero-eyebrow{color:rgba(255,255,255,.84);margin-bottom:clamp(18px,2.6vw,24px)}
.hero h1{
  font-size:clamp(2.9rem,6.6vw,5.45rem);
  margin-bottom:clamp(18px,2.8vw,26px);
  max-width:11.5ch;
}
.hero-sub{
  color:rgba(255,255,255,.88);
  max-width:40ch;
  line-height:1.52;
  margin-bottom:clamp(24px,3.5vw,34px);
}
.hero-photo{
  margin:0;
  border-radius:0;
  overflow:visible;
  border:none;
  box-shadow:none;
  background:transparent;
  display:block;
  position:relative;
  padding:0 0 4%;
  isolation:isolate;
  max-width:560px;
  margin-left:auto;
  margin-right:0;
}
.hero-photo::before{
  content:"";
  position:absolute;
  left:12%;
  right:8%;
  top:14%;
  bottom:10%;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.12),transparent 42%),
    radial-gradient(circle at 50% 55%,rgba(31,47,84,.55),transparent 70%);
  filter:blur(18px);
  opacity:.9;
  pointer-events:none;
  z-index:0;
}
.hero-photo::after{
  content:"";
  position:absolute;
  left:18%;
  right:12%;
  bottom:0;
  height:18px;
  border-radius:50%;
  background:rgba(0,0,0,.35);
  filter:blur(14px);
  opacity:.65;
  pointer-events:none;
  z-index:1;
}
.hero-photo img,
.hero-combo-device{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 28px 40px rgba(0,0,0,.42));
  position:relative;
  z-index:2;
}
.hero-image-note{
  display:block;
  margin:0;
  padding:15px 20px 16px;
  background:var(--corail);
  color:var(--blanc);
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1rem,1.7vw,1.22rem);
  line-height:1.1;
  letter-spacing:0;
  text-align:center;
}
.nav-inner{
  height:76px;
  margin-top:0;
  margin-bottom:0;
  padding:0 18px 0 22px;
  border:1.5px solid rgba(20,33,61,.12);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 44px -34px rgba(20,33,61,.42);
  position:relative;
}
nav{
  position:sticky;
  border-bottom:none;
  background:var(--marine);
  backdrop-filter:none;
  padding:10px 0;
  overflow:visible;
}
nav .logo,
nav .brand-name,
nav .nav-links a{
  color:var(--marine);
}
nav .nav-links a:hover{
  background:rgba(20,33,61,.06);
  color:var(--corail-fonce);
}
nav::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
  pointer-events:none;
}
nav .nav-inner{
  position:relative;
  z-index:1;
}
.hero .lisere{display:none}
.nav-links{
  gap:2px;
  padding:6px;
  border-radius:999px;
  background:transparent;
  border:none;
  flex-wrap:nowrap;
}
.nav-links a{
  padding:8px 10px;
  border-radius:999px;
  font-size:.88rem;
  white-space:nowrap;
}
.nav-links a:hover{
  background:var(--blanc);
  color:var(--corail-fonce);
}
.nav-links .nav-appel{
  border-bottom:none!important;
  padding:8px 14px!important;
  border-radius:999px!important;
  background:var(--corail)!important;
  color:var(--blanc)!important;
  margin-left:4px;
}
.nav-links .nav-appel:hover{
  background:var(--corail-fonce)!important;
  color:var(--blanc)!important;
}

@media(max-width:1100px) and (min-width:901px){
  .nav-links a{padding:8px 8px;font-size:.82rem}
  .nav-links .nav-appel{padding:8px 12px!important}
}

@media(max-width:900px){
  nav{
    z-index:100;
    overflow:visible;
  }
  .nav-inner{
    overflow:visible;
    z-index:100;
  }
  .nav-toggle{
    display:inline-flex;
    z-index:110;
    background:#fff;
  }
  .nav-links{
    display:none;
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    z-index:120;
    flex-direction:column;
    align-items:stretch;
    flex-wrap:nowrap;
    gap:4px;
    padding:12px;
    border-radius:18px;
    background:#ffffff !important;
    border:1.5px solid rgba(20,33,61,.14);
    box-shadow:
      0 24px 48px rgba(20,33,61,.28),
      0 0 0 1px rgba(255,255,255,.8);
    backdrop-filter:none;
  }
  .nav-open .nav-links{
    display:flex;
  }
  .nav-links a{
    padding:14px 16px;
    border-radius:12px;
    font-size:1rem;
    background:transparent;
    color:var(--marine);
  }
  .nav-links a:hover{
    background:rgba(20,33,61,.06);
    color:var(--corail-fonce);
  }
  .nav-links .nav-appel{
    margin-left:0;
    margin-top:6px;
    text-align:center;
    justify-content:center;
    background:var(--corail)!important;
    color:var(--blanc)!important;
  }
  .nav-links .nav-appel:hover{
    background:var(--corail-fonce)!important;
    color:var(--blanc)!important;
  }
}


.section{padding:clamp(56px,7vw,78px) 0}
.s-intro{color:var(--encre);font-weight:500}
.head-center{margin-bottom:44px}
@media(max-width:980px){
  .hero-inner{
    grid-template-columns:1fr;
    max-width:760px;
    gap:clamp(22px,4vw,36px);
  }
  .hero-visual{
    display:block;
    order:1;
    max-width:420px;
    margin:0 auto;
    width:100%;
  }
  .hero-copy{
    order:2;
  }
  .hero-photo{
    max-width:100%;
    margin:0 auto;
  }
}
@media(max-width:600px){
  header.hero{padding-bottom:48px}
  .hero-inner{padding-top:28px;gap:22px}
  .hero-actions .btn{width:100%;justify-content:center}
  .hero-visual{max-width:280px}
  .hero-brand{margin-bottom:clamp(14px,3vw,22px)}
}
