/* J.D.S Capital & Co. — feuille de style
   Layout: 12-column editorial grid, wide margins, hairline rules.
   Accueil : night-sail hero → constat → expertises → méthode → citation → fondateur → pourquoi → simulateur → FAQ → night contact band.
   Pages : en-tête de page → contenu → bandeau d'appel à l'action → pied de page.
   Mouvement : tout ce qui bouge est regroupé dans « ANIMATIONS » et respecte prefers-reduced-motion. */
:root{
  --ink:#0b1024;        /* deep night navy */
  --ink-2:#1a2140;
  --slate:#5e6378;      /* secondary text, navy-biased grey */
  --mist:#b9bfd6;       /* pale sail */
  --paper:#f6f6f3;      /* cool paper */
  --white:#ffffff;
  --rule:#d8dae2;
  --rule-d:rgba(255,255,255,.16);
  --serif:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --sans:"Instrument Sans","Helvetica Neue",Arial,system-ui,sans-serif;
  --pad:max(20px,5vw);
  --sec:clamp(112px,14vw,200px);
  --ease-out:cubic-bezier(.16,1,.3,1);   /* long, calm deceleration */
  --ease-io:cubic-bezier(.65,0,.35,1);
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2,h3{font-weight:400;text-wrap:balance}
a{color:inherit}
sup{font-size:.68em;line-height:0}
.it{font-family:var(--serif);font-style:italic}
.nw{white-space:nowrap}
.wrap{max-width:1360px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px),var(--pad));padding-right:max(16px,env(safe-area-inset-right,0px),var(--pad))}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px)}
.label{font:500 11px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--slate)}
.link{display:inline-flex;align-self:flex-start;align-items:center;gap:14px;font:500 14px var(--sans);letter-spacing:.02em;text-decoration:none;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .4s var(--ease-out)}
.link:hover{gap:20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:17px 28px;font:500 14px/1 var(--sans);letter-spacing:.03em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s,translate .6s var(--ease-out),scale .25s var(--ease-out)}
.btn:active{scale:.98}
.btn .arrow{transition:transform .45s var(--ease-out)}
.btn:hover .arrow{transform:translateX(4px)}
.btn-white{background:var(--white);color:var(--ink)}
.btn-white:hover{background:var(--mist)}
.btn-ink{background:var(--ink);color:var(--white)}
.btn-ink:hover{background:var(--ink-2)}
.btn-ghost{border-color:rgba(255,255,255,.45);color:var(--white)}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.08)}
.arrow{width:18px;height:10px;flex:none}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,iframe:focus-visible{outline:2px solid #6f78a8;outline-offset:4px}
.sec{padding-block:var(--sec)}
.paper{background:var(--paper)}
.skip{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 18px;background:var(--white);color:var(--ink);font:500 13px var(--sans);text-decoration:none;transition:top .2s}
.skip:focus{top:16px}

/* ---------- NAV ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--white);transition:background .4s,color .4s,box-shadow .4s;view-transition-name:site-nav}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;height:96px;transition:height .4s}
.nav.solid{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 1px 0 var(--rule)}
.nav.solid .wrap{height:72px}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.brand img{height:44px;width:auto}
.brand .lw{display:block}.brand .ld{display:none}
.nav.solid .brand .lw{display:none}.nav.solid .brand .ld{display:block}
.brand-name{font:400 14px/1.2 var(--serif);letter-spacing:.2em;padding-left:16px;border-left:1px solid currentColor;opacity:.9}
.menu{display:flex;gap:36px;list-style:none;margin:0;padding:0}
.menu a{text-decoration:none;font-size:13px;letter-spacing:.06em;opacity:.85;position:relative;padding-block:6px;transition:opacity .3s}
.menu a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:currentColor;transition:width .45s var(--ease-out)}
.menu a:hover,.menu a[aria-current="page"]{opacity:1}
.menu a:hover::after,.menu a[aria-current="page"]::after{width:100%}
.nav-cta{font:500 13px var(--sans);letter-spacing:.06em;text-decoration:none;padding:12px 20px;border:1px solid currentColor;transition:background .3s,color .3s,translate .6s var(--ease-out)}
.nav-cta:hover,.nav-cta[aria-current="page"]{background:var(--white);color:var(--ink)}
.nav.solid .nav-cta{background:var(--ink);color:var(--white);border-color:var(--ink)}
.nav.solid .nav-cta:hover{background:var(--ink-2)}
.burger{display:none;width:44px;height:44px;background:none;border:1px solid currentColor;color:inherit;cursor:pointer}
.mmenu{position:fixed;inset:0;z-index:49;background:var(--ink);color:var(--white);display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:120px max(24px,env(safe-area-inset-right,0px)) calc(48px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px))}
.mmenu a{font:400 38px/1.3 var(--serif);text-decoration:none}
.mmenu a[aria-current="page"]{font-style:italic;color:var(--mist)}
.mmenu .btn{margin-top:28px;font:500 14px/1 var(--sans)}

/* ---------- HERO (accueil) ---------- */
.hero{position:relative;min-height:min(100vh,1000px);min-height:min(100svh,1000px);color:var(--white);background:var(--ink);overflow:hidden;display:flex;flex-direction:column}
.hero-img{position:absolute;inset:0;background:url("../img/hero.jpg") 28% 50%/cover no-repeat;transform-origin:30% 60%;scale:1.02;translate:var(--cx,0px) calc(var(--py,0px) + var(--cy,0px));will-change:translate;animation:drift 32s ease-in-out infinite alternate}
@keyframes drift{from{scale:1.02}to{scale:1.08}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,16,36,0) 30%,rgba(11,16,36,.5) 100%),linear-gradient(180deg,rgba(11,16,36,.5),rgba(11,16,36,0) 22%,rgba(11,16,36,0) 60%,rgba(11,16,36,.88))}
.hero-main{position:relative;z-index:2;flex:1;display:flex;align-items:center;padding-block:160px 72px}
.hero-main .wrap{width:100%}
.hero-copy{grid-column:7/13;display:flex;flex-direction:column;gap:32px;opacity:calc(1 - var(--hp,0) * .55);translate:0 calc(var(--hp,0) * -32px)}
.hero-copy .label{color:rgba(255,255,255,.7)}
.hero h1{font:400 clamp(44px,5.8vw,88px)/1.02 var(--sans);letter-spacing:-.035em}
.hero h1 .it{font-size:1.1em;letter-spacing:-.01em}
.hero-note{font-size:13px;color:rgba(255,255,255,.62);display:flex;gap:10px;align-items:center}
.hero-note i{flex:none;width:6px;height:6px;border-radius:50%;background:#8fe3b4;box-shadow:0 0 0 4px rgba(143,227,180,.15)}
.hero-sub{font-size:clamp(16px,1.3vw,18px);line-height:1.6;color:rgba(255,255,255,.8);max-width:40ch}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero-foot{position:relative;z-index:2;border-top:1px solid var(--rule-d)}
.hero-foot .grid{padding-block:28px 32px;align-items:start}
.fig{grid-column:span 3;display:flex;flex-direction:column;gap:6px}
.fig b{font:400 clamp(30px,3vw,44px)/1 var(--serif);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em}
.fig span{font-size:12px;letter-spacing:.08em;color:rgba(255,255,255,.62)}
.fig.reg b{font:500 13px/1.5 var(--sans);letter-spacing:.06em}
.scroll{grid-column:span 3;justify-self:end;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.62);text-decoration:none;display:flex;align-items:center;gap:12px;transition:color .3s}
.scroll:hover{color:var(--white)}
.scroll i{display:block;width:1px;height:32px;background:rgba(255,255,255,.5);animation:cue 2.6s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}

/* ---------- EN-TÊTE DES PAGES ---------- */
.page-hero{--ph-size:cover;--ph-pos:50% 50%;position:relative;min-height:clamp(500px,74vh,720px);display:flex;align-items:flex-end;color:var(--white);background:var(--ink);overflow:hidden}
.page-hero--compact{min-height:clamp(440px,60vh,600px)}
.page-hero--plain{background:radial-gradient(120% 120% at 88% -10%,var(--ink-2) 0%,var(--ink) 58%)}
.page-hero-img{position:absolute;inset:-20px -28px;background-position:var(--ph-pos);background-size:var(--ph-size);background-repeat:no-repeat;filter:saturate(.72) brightness(.86);translate:var(--cx,0px) calc(var(--py,0px) + var(--cy,0px));will-change:translate}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,16,36,.9) 0%,rgba(11,16,36,.6) 45%,rgba(11,16,36,.18) 100%),linear-gradient(180deg,rgba(11,16,36,.6),rgba(11,16,36,0) 28%,rgba(11,16,36,0) 62%,rgba(11,16,36,.8))}
.page-hero--plain::after{display:none}
.page-hero .wrap{position:relative;z-index:2;width:100%;padding-block:156px clamp(56px,7vw,96px)}
.page-hero-copy{grid-column:1/10;display:flex;flex-direction:column;gap:26px;opacity:calc(1 - var(--hp,0) * .55);translate:0 calc(var(--hp,0) * -32px)}
.page-hero h1{font:400 clamp(44px,5.6vw,84px)/1.02 var(--sans);letter-spacing:-.035em;max-width:15ch}
.page-hero h1 .it{font-size:1.08em;letter-spacing:-.01em}
.page-hero-sub{font-size:clamp(16px,1.3vw,18px);line-height:1.6;color:rgba(255,255,255,.78);max-width:54ch}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font:500 11px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.crumbs a{text-decoration:none;color:rgba(255,255,255,.75)}
.crumbs [aria-current]{color:rgba(255,255,255,.95)}
/* une photographie par page (Unsplash, crédits dans les informations légales) et son cadrage */
.ph-expertises .page-hero-img{background-image:url("../img/expertises-toits-paris.jpg")}
.ph-methode .page-hero-img{background-image:url("../img/methode-boussole.jpg")}
.ph-cabinet .page-hero-img{background-image:url("../img/cabinet-facade-haussmann.jpg")}
.ph-simulateur .page-hero-img{background-image:url("../img/simulateur-mer-brumeuse.jpg")}
.ph-questions .page-hero-img{background-image:url("../img/questions-lac-brume.jpg")}
.ph-rdv .page-hero-img{background-image:url("../img/rendez-vous-paris-nuit.jpg")}
.ph-expertises{--ph-pos:50% 72%}
.ph-methode{--ph-size:200% auto;--ph-pos:30% 75%;--ph-pos-m:61% 50%}
.ph-cabinet{--ph-pos:50% 35%}
.ph-simulateur{--ph-pos:50% 60%}
.ph-questions{--ph-pos:50% 45%}
.ph-rdv{--ph-size:140% auto;--ph-pos:0% 50%;--ph-pos-m:48% 50%}

/* ---------- EN-TÊTES DE SECTION ---------- */
.sec-head{align-items:end;margin-bottom:clamp(56px,7vw,96px);row-gap:28px}
.sec-head .label{grid-column:1/4;align-self:start;padding-top:16px}
.sec-head h2{grid-column:4/10;font:400 clamp(34px,4.2vw,60px)/1.06 var(--sans);letter-spacing:-.03em}
.sec-head h2 .it{font-size:1.06em;letter-spacing:-.01em}
.sec-aside{grid-column:10/13;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.sec-aside p{font-size:15px;color:var(--slate)}

/* ---------- CONSTAT ---------- */
.constat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.constat article{padding:36px 36px 8px 0;display:flex;flex-direction:column;gap:16px}
.constat article+article{padding-left:36px;border-left:1px solid var(--rule)}
.constat .q{font:400 italic clamp(24px,2.2vw,32px)/1.2 var(--serif)}
.constat p:not(.q){font-size:15px;color:var(--slate)}
.pivot{margin-top:72px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding:44px 48px;background:var(--ink);color:var(--white)}
.pivot p{font:400 clamp(22px,2.2vw,32px)/1.3 var(--serif);max-width:32ch}
.pivot .it{color:var(--mist)}

/* ---------- EXPERTISES (cartes) ---------- */
.exp-sec{background:var(--paper)}
.exp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.exp{background:var(--white);padding:40px 36px 36px;display:flex;flex-direction:column;gap:16px;min-height:330px;text-decoration:none;color:var(--ink);position:relative;overflow:hidden;transition:background .4s,color .4s}
.exp > *{position:relative}
.exp::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,30%),rgba(185,191,214,.17),transparent 65%);opacity:0;transition:opacity .5s;pointer-events:none}
.exp .ico{width:48px;height:48px;border:1px solid var(--rule);display:grid;place-items:center;transition:border-color .4s,color .4s,translate .5s var(--ease-out)}
.exp h3{font:400 28px/1.12 var(--serif);margin-top:8px}
.exp p{font-size:15px;color:var(--slate);transition:color .4s}
.exp ul{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.exp li{font-size:12px;padding:5px 10px;border:1px solid var(--rule);color:var(--slate);transition:border-color .4s,color .4s}
.exp .go{position:absolute;top:40px;right:36px;opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .5s var(--ease-out)}
.exp:hover{background:var(--ink);color:var(--white)}
.exp:hover::before{opacity:1}
.exp:hover p{color:rgba(255,255,255,.72)}
.exp:hover .ico,.exp:hover li{border-color:var(--rule-d);color:var(--mist)}
.exp:hover .ico{translate:0 -3px}
.exp:hover .go{opacity:1;transform:none}

/* ---------- MÉTHODE (accueil) ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.step{padding:36px 32px 8px 0;display:flex;flex-direction:column;gap:18px;border-right:1px solid var(--rule)}
.step+.step{padding-left:32px}
.step:last-child{border-right:0}
.step .num{font:400 clamp(64px,6vw,96px)/.9 var(--serif);color:var(--ink);letter-spacing:-.04em}
.step .when{font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.step h3{font:400 28px/1.15 var(--serif)}
.step p{font-size:15px;color:var(--slate)}
.method-cta{margin-top:72px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--rule)}
.method-cta p{font:400 italic clamp(22px,2vw,28px)/1.3 var(--serif)}

/* ---------- CITATION ---------- */
.band{position:relative;min-height:clamp(420px,52vw,720px);display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background:var(--ink)}
.band::before{content:"";position:absolute;left:0;right:0;top:-18%;bottom:-18%;background:url("../img/hero.jpg") 32% 58%/cover no-repeat;translate:0 var(--py,0px)}
.band--voiles::before{background-image:url("../img/citation-voiles.jpg");background-position:50% 40%;filter:saturate(.72) brightness(.86)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,16,36,.15),rgba(11,16,36,.8))}
.band .wrap{position:relative;z-index:2;width:100%;padding-block:72px}
.band blockquote{grid-column:6/13;font:400 clamp(30px,3.6vw,54px)/1.15 var(--serif);letter-spacing:-.015em}
.band cite{display:block;margin-top:24px;font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;font-style:normal;color:rgba(255,255,255,.7)}

/* ---------- FONDATEUR ---------- */
.founder .grid{align-items:center;row-gap:56px}
.portrait{grid-column:2/6;position:relative;margin:0;max-width:400px;justify-self:end;width:100%}
.portrait-frame{overflow:hidden;aspect-ratio:4/5;background:#2b2d33}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;scale:1.12;translate:0 var(--py,0px)}
.portrait figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;letter-spacing:.06em;color:var(--slate)}
.founder-txt{grid-column:7/13;display:flex;flex-direction:column;gap:36px;padding-top:12px}
.founder-txt blockquote{font:400 clamp(28px,2.8vw,42px)/1.22 var(--serif);letter-spacing:-.012em}
.founder-txt .body{font-size:16px;color:var(--slate);max-width:52ch;display:flex;flex-direction:column;gap:16px}
.sign{display:flex;flex-direction:column;gap:4px}
.sign .name{font:400 italic 28px var(--serif)}
.sign span{font-size:13px;letter-spacing:.04em;color:var(--slate)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.facts div{padding:24px 16px 0 0;display:flex;flex-direction:column;gap:8px}
.facts div+div{padding-left:20px;border-left:1px solid var(--rule)}
.facts b{font:400 clamp(30px,2.8vw,42px)/1 var(--serif);font-variant-numeric:lining-nums;letter-spacing:-.01em}
.facts span{font-size:13px;color:var(--slate)}

/* ---------- POURQUOI ---------- */
.eng-sec{background:var(--ink);color:var(--white)}
.eng-sec .label{color:rgba(255,255,255,.6)}
.eng-sec .sec-aside p{color:rgba(255,255,255,.66)}
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:stretch}
.why-visual{position:relative;min-height:520px;overflow:hidden;background:var(--ink)}
.why-visual::before{content:"";position:absolute;left:0;right:0;top:-12%;bottom:-12%;background:url("../img/hero.jpg") 33% 62%/260% auto no-repeat;translate:0 var(--py,0px)}
.why-visual--phare::before{background-image:url("../img/cabinet-phare.jpg");background-size:cover;background-position:32% 50%}
.why-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,16,36,.05) 40%,rgba(11,16,36,.88))}
.why-visual blockquote{position:absolute;left:32px;right:32px;bottom:32px;z-index:2;font:400 clamp(26px,2.4vw,34px)/1.2 var(--serif)}
.why-list{--rule-c:rgba(255,255,255,.5);display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.5)}
.why-item{border-bottom:1px solid var(--rule-d);padding:30px 0;display:grid;grid-template-columns:48px minmax(0,1fr);gap:20px}
.why-item svg{color:var(--mist);margin-top:4px}
.why-item h3{font:400 26px/1.2 var(--serif);margin-bottom:8px}
.why-item p{color:rgba(255,255,255,.68);font-size:15px;max-width:52ch}

/* ---------- SIMULATEUR ---------- */
.sim-sec{background:var(--paper)}
.sim-card{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border:1px solid var(--rule);background:var(--white);box-shadow:0 30px 60px -40px rgba(11,16,36,.25)}
.sim-in{grid-column:1/6;padding:44px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:36px}
.sim-out{grid-column:6/13;padding:44px;display:flex;flex-direction:column;gap:28px;min-width:0}
.field{display:flex;flex-direction:column;gap:14px}
.field-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.field label{font-size:13px;letter-spacing:.03em;color:var(--slate)}
.field output{font:400 24px var(--serif);font-variant-numeric:lining-nums tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:1px;margin:8px 0;background:linear-gradient(var(--ink),var(--ink)) 0/var(--p,50%) 100% no-repeat,var(--rule);cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--white);border:1px solid var(--ink);box-shadow:0 0 0 4px var(--white);cursor:pointer;transition:transform .3s var(--ease-out),box-shadow .3s}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--white);border:1px solid var(--ink);cursor:pointer;transition:transform .3s var(--ease-out)}
input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}
input[type=range]:hover::-moz-range-thumb{transform:scale(1.15)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25);box-shadow:0 0 0 4px var(--white),0 0 0 10px rgba(11,16,36,.07)}
input[type=range]:active::-moz-range-thumb{transform:scale(1.25)}
.sim-total .label{display:block;margin-bottom:10px}
.sim-total b{display:block;font:400 clamp(52px,7vw,104px)/.95 var(--serif);letter-spacing:-.03em;font-variant-numeric:lining-nums tabular-nums}
.legend{display:flex;gap:32px;flex-wrap:wrap;font-size:13px;color:var(--slate)}
.legend i{display:inline-block;width:18px;height:8px;vertical-align:middle;margin-right:10px}
.legend .k-paid{background:var(--mist)}
.legend .k-int{background:var(--ink)}
.legend strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;margin-left:6px}
.chart{width:100%;height:auto;display:block}
.disclaimer{grid-column:1/13;margin:0;padding:18px 44px;border-top:1px solid var(--rule);background:var(--paper);font-size:12px;color:var(--slate)}

/* ---------- FAQ ---------- */
.faq-sec{background:var(--paper)}
.faq{grid-column:4/13}
details{border-top:1px solid var(--rule)}
details:first-child{border-top-color:var(--ink)}
details:last-child{border-bottom:1px solid var(--rule)}
summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:24px;align-items:center;padding-block:30px;font:400 clamp(21px,1.9vw,27px)/1.3 var(--serif)}
summary::-webkit-details-marker{display:none}
summary > span:first-child{transition:translate .5s var(--ease-out)}
summary:hover > span:first-child{translate:6px 0}
summary .pm{position:relative;width:28px;height:28px;border-radius:50%;transition:box-shadow .4s}
summary:hover .pm{box-shadow:inset 0 0 0 1px var(--rule)}
summary .pm::before,summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .45s var(--ease-out)}
summary .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
details[open] summary .pm::after{transform:translate(-50%,-50%) rotate(0)}
details p{padding:0 52px 32px 0;color:var(--slate);max-width:66ch;overflow:hidden}
details p a{color:var(--ink);text-underline-offset:3px}
.faq-side{grid-column:1/4;display:flex;flex-direction:column;align-items:flex-start;gap:20px;align-self:start}
.faq-side h2{font:400 clamp(34px,3.6vw,52px)/1.05 var(--serif);letter-spacing:-.02em}
.faq-side p{font-size:14px;color:var(--slate)}
.faq-groups{grid-column:4/13;display:flex;flex-direction:column;gap:clamp(72px,8vw,120px)}
.faq-group{scroll-margin-top:104px}
.faq-group > h2{font:400 clamp(30px,2.8vw,40px)/1.1 var(--serif);letter-spacing:-.015em;margin-bottom:28px}

/* ---------- CONTACT (accueil) ---------- */
.contact{background:var(--ink);color:var(--white);position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;inset:0;background:url("../img/hero.jpg") 60% 85%/cover no-repeat;opacity:.45}
.contact::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,16,36,.94) 35%,rgba(11,16,36,.65))}
.contact .wrap{position:relative;z-index:2}
.contact .label{color:rgba(255,255,255,.6)}
.contact .grid{row-gap:56px;align-items:center}
.contact-copy{grid-column:1/7;display:flex;flex-direction:column;gap:26px}
.contact h2{font:400 clamp(44px,5.4vw,84px)/1 var(--sans);letter-spacing:-.035em}
.contact h2 .it{color:var(--mist);font-size:1.08em}
.contact-copy>p{color:rgba(255,255,255,.75);font-size:17px;max-width:44ch}
.points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.points li{display:flex;gap:12px;align-items:center;font-size:15px;color:rgba(255,255,255,.86)}
.points svg{flex:none;color:var(--mist)}
.points.on-light li{color:var(--slate)}
.points.on-light svg{color:var(--ink)}
.coords{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1.2fr);gap:20px;padding-top:24px;border-top:1px solid var(--rule-d);margin-top:8px}
.coords div{display:flex;flex-direction:column;gap:6px;min-width:0}
.coords .label{font-size:10px}
.coords b{font:400 17px/1.35 var(--serif);user-select:all;overflow-wrap:anywhere}
.coords a,.direct a,.visit-coords b a{text-decoration:none}
.coords a:hover,.direct a:hover,.visit-coords b a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.booking{grid-column:8/13;background:var(--white);color:var(--ink);padding:38px;display:flex;flex-direction:column;gap:20px;box-shadow:0 40px 90px -30px rgba(0,0,0,.55);min-width:0}
.bk-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start}
.bk-head svg{width:48px;height:48px;padding:11px;background:var(--ink);color:var(--white)}
.bk-head h3{font:400 28px/1.15 var(--serif);margin-bottom:6px}
.bk-head p{font-size:14px;color:var(--slate)}
.book-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:b}
.book-steps li{counter-increment:b;display:flex;gap:12px;align-items:center;font-size:14px;color:var(--slate)}
.book-steps li::before{content:counter(b);flex:none;width:26px;height:26px;border:1px solid var(--rule);display:grid;place-items:center;font:400 13px var(--serif);color:var(--ink)}
.book-steps b{color:var(--ink);font-weight:600}
.booking .btn{width:100%;padding-block:19px}
.or{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--rule)}
.direct{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:var(--paper);border:1px solid var(--rule)}
.direct div{display:flex;flex-direction:column;min-width:0}
.direct small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
.direct b{font:400 18px var(--serif);user-select:all;overflow-wrap:anywhere}
.direct .copy{flex:none;font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;background:transparent;border:1px solid var(--ink);color:var(--ink);cursor:pointer;transition:background .3s,color .3s}
.direct .copy:hover{background:var(--ink);color:var(--white)}

/* ---------- RÉSERVATION (fenêtre de l'accueil) ---------- */
.bk-modal{border:0;padding:0;margin:auto;width:min(920px,100%);max-width:100%;max-height:min(860px,100%);background:var(--white);color:var(--ink);overflow:hidden;display:none;flex-direction:column}
.bk-modal[open]{display:flex}
.bk-modal::backdrop{background:rgba(11,16,36,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.bk-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;background:var(--ink);color:var(--white);font:400 16px var(--serif)}
.bk-actions{display:flex;gap:8px;margin-left:auto}
.bk-bar button,.bk-bar a{font:500 12px var(--sans);letter-spacing:.08em;background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.4);padding:9px 14px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:border-color .3s}
.bk-bar button:hover,.bk-bar a:hover{border-color:var(--white)}
.bk-body{flex:1;overflow:auto;min-height:0}
.bk-body iframe{display:block;width:100%;height:min(760px,78vh);border:0}
.bk-fallback{padding:44px;display:flex;flex-direction:column;gap:18px;align-items:flex-start;max-width:60ch}
.bk-fallback p:not(.label){color:var(--slate)}

/* ---------- SOMMAIRE LATÉRAL (expertises, questions, informations légales) ---------- */
.toc{grid-column:1/4;position:sticky;top:104px;align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.toc ol{list-style:none;margin:0;padding:0;width:100%;border-top:1px solid var(--ink)}
.toc li{border-bottom:1px solid var(--rule)}
.toc li a{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:baseline;padding:13px 0;font-size:14px;line-height:1.35;text-decoration:none;color:var(--slate);transition:color .3s,padding .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.toc li a span{font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.toc li a:hover{color:var(--ink)}
.toc li a[aria-current="true"]{color:var(--ink);padding-left:14px;box-shadow:inset 2px 0 0 var(--ink)}

/* ---------- EXPERTISES (page) ---------- */
.xp-list{grid-column:5/13;display:flex;flex-direction:column}
.xp{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);row-gap:22px;padding-block:clamp(64px,7vw,104px);border-top:1px solid var(--rule);scroll-margin-top:24px}
.xp:first-child{padding-top:0;border-top:0;scroll-margin-top:112px}
.xp > *{grid-column:1/-1}
.xp-head{display:flex;align-items:center;gap:18px}
.xp-head .ico{width:48px;height:48px;border:1px solid var(--rule);display:grid;place-items:center}
.xp-n{font:500 12px var(--sans);letter-spacing:.2em;color:var(--slate);font-variant-numeric:tabular-nums}
.xp h2{font:400 clamp(36px,3.8vw,56px)/1.04 var(--serif);letter-spacing:-.02em}
.xp .xp-lead{grid-column:1/7}
.xp-lead{font:400 clamp(20px,1.7vw,25px)/1.4 var(--serif)}
.xp-intro{display:flex;flex-direction:column;gap:18px;padding-bottom:clamp(56px,6vw,88px)}
.xp-intro .q{font:400 clamp(26px,2.6vw,38px)/1.2 var(--serif);letter-spacing:-.015em;max-width:22ch}
.xp-intro p:not(.q){font-size:15px;color:var(--slate);max-width:62ch}
/* une fiche dépliable par solution : ce que c'est, à qui, avantages, vigilance */
.xp-head[id],.fiche,.fiche summary[id]{scroll-margin-top:104px}
.fiches{margin-top:14px}
.fiche summary{padding-block:24px}
.fiche-name{display:block}
.fiche-tag{display:block;margin-top:4px;font:400 14px/1.45 var(--sans);color:var(--slate)}
.fiche-body{overflow:hidden}
.fiche dl{margin:0 0 30px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule)}
.fiche dl > div{padding:20px 24px 22px 0;border-bottom:1px solid var(--rule);min-width:0}
.fiche dl > div:nth-child(even){padding-left:24px;padding-right:0;border-left:1px solid var(--rule)}
.fiche dl > div.vig{padding-right:24px;background:var(--paper)}
.fiche dt{margin-bottom:10px;font:500 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.fiche dd{margin:0;font-size:15px;line-height:1.6;color:var(--slate)}
.fiche dd a{color:var(--ink);text-underline-offset:3px}
.fiche ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fiche li{position:relative;padding-left:20px}
.fiche li::before{content:"";position:absolute;left:0;top:.8em;width:9px;height:1px;background:var(--ink)}
.xp-also{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:10px}
.xp-also ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.xp-also a{display:inline-block;padding:7px 12px;border:1px solid var(--rule);font-size:13px;line-height:1.3;color:var(--ink);text-decoration:none;transition:border-color .3s,background .3s,color .3s}
.xp-also a:hover{border-color:var(--ink);background:var(--ink);color:var(--white)}
.note{margin-top:clamp(40px,5vw,64px);padding-top:22px;border-top:1px solid var(--rule);font-size:12px;color:var(--slate);max-width:90ch}

/* ---------- MÉTHODE (page) ---------- */
.timeline{--tl-pad:clamp(40px,7vw,112px);list-style:none;margin:0;padding:0 0 0 var(--tl-pad);position:relative}
.timeline::before,.timeline::after{content:"";position:absolute;left:0;top:12px;bottom:0;width:1px}
.timeline::before{background:var(--rule)}
.timeline::after{background:var(--ink);transform-origin:50% 0;transform:scaleY(var(--tp,1))}
.tl-step{--pt:clamp(64px,7vw,112px);position:relative;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);padding-block:var(--pt);border-top:1px solid var(--rule)}
.tl-step:first-child{--pt:0px;border-top:0}
.tl-step:last-child{padding-bottom:0}
.tl-step::before{content:"";position:absolute;left:calc(var(--tl-pad) * -1 - 6px);top:calc(var(--pt) + 6px);width:13px;height:13px;border-radius:50%;background:var(--white);border:1px solid var(--ink);transition:background .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.tl-step.on::before{background:var(--ink);box-shadow:0 0 0 5px rgba(11,16,36,.08)}
.tl-num{grid-column:1/4;font:400 clamp(96px,11vw,168px)/.8 var(--serif);letter-spacing:-.05em}
.tl-body{grid-column:4/11;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.tl-body .when{font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.tl-body h2{font:400 clamp(36px,3.6vw,52px)/1.05 var(--serif);letter-spacing:-.02em}
.tl-lead{font:400 clamp(20px,1.6vw,24px)/1.4 var(--serif);max-width:44ch}
.tl-body > p:not(.tl-lead):not(.tl-out){color:var(--slate);max-width:62ch}
.tl-out{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:18px 22px;background:var(--paper);border-left:2px solid var(--ink);max-width:62ch}

/* ---------- COLONNES (cadre réglementaire, statuts, simulateur) ---------- */
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cols > *{padding:30px 28px 36px;border-bottom:1px solid var(--rule);border-left:1px solid var(--rule);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.cols:not(.cols-4) > :nth-child(3n+1),.cols-4 > :nth-child(4n+1){padding-left:0;border-left:0}
.cols h3{font:400 clamp(22px,1.9vw,26px)/1.2 var(--serif)}
.cols p{font-size:15px;color:var(--slate)}
.cols p a{color:var(--ink);text-underline-offset:3px}
.cols .link{margin-top:auto}

/* ---------- LE CABINET (page) ---------- */
.visit .grid{align-items:end;row-gap:48px}
.visit-copy{grid-column:1/6;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.visit-copy h2{font:400 clamp(36px,3.8vw,56px)/1.05 var(--serif);letter-spacing:-.02em}
.visit-copy p{color:var(--slate);max-width:44ch}
.visit-coords{grid-column:7/13;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.visit-coords > div{padding:22px 20px 24px 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.visit-coords > div:nth-child(even){padding-left:20px;padding-right:0;border-left:1px solid var(--rule)}
.visit-coords b{font:400 19px/1.35 var(--serif);overflow-wrap:anywhere}
.visit-coords .link{margin-top:6px}

/* ---------- PRENDRE RENDEZ-VOUS (page) ---------- */
.book-sec{background:var(--paper)}
.book-sec .grid{align-items:start;row-gap:48px}
.book-side{grid-column:1/5;display:flex;flex-direction:column;gap:40px}
.book-block{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.book-block .direct{width:100%;background:var(--white)}
.book-office{font:400 19px/1.35 var(--serif)}
.book-frame{grid-column:5/13;background:var(--white);border:1px solid var(--rule);box-shadow:0 30px 60px -40px rgba(11,16,36,.25);min-width:0}
.book-frame iframe{display:block;width:100%;height:min(860px,max(680px,82vh));border:0}
.book-alt{padding:14px 22px;border-top:1px solid var(--rule);font-size:13px;color:var(--slate)}
.book-alt a{color:var(--ink);text-underline-offset:3px}

/* ---------- INFORMATIONS LÉGALES (page) ---------- */
.legal-docs{grid-column:5/13;display:flex;flex-direction:column}
.legal-body{display:flex;flex-direction:column;gap:14px;font-size:15px;color:var(--slate);max-width:72ch;scroll-margin-top:112px}
.legal-body+.legal-body{margin-top:clamp(72px,8vw,112px);padding-top:clamp(56px,6vw,88px);border-top:1px solid var(--ink);scroll-margin-top:24px}
.legal-body .eyebrow{font:500 11px var(--sans);letter-spacing:.22em;text-transform:uppercase}
.legal-body h2{font:400 clamp(32px,4vw,48px)/1.08 var(--serif);color:var(--ink);margin-bottom:16px;letter-spacing:-.015em}
.legal-body h3{font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-top:22px;padding-top:22px;border-top:1px solid var(--rule)}
.legal-body ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.legal-body b{color:var(--ink)}
.legal-body a{color:var(--ink);text-underline-offset:3px}
.legal-body .intro{font:400 20px/1.45 var(--serif);color:var(--ink)}

/* ---------- APPEL À L'ACTION (pages) ---------- */
.cta-band{position:relative;overflow:hidden;background:radial-gradient(110% 150% at 88% 0%,var(--ink-2) 0%,var(--ink) 62%);color:var(--white);padding-block:clamp(104px,12vw,176px)}
.cta-band .grid{align-items:end;row-gap:40px}
.cta-copy{grid-column:1/8;display:flex;flex-direction:column;gap:24px}
.cta-copy .label{color:rgba(255,255,255,.6)}
.cta-copy h2{font:400 clamp(44px,5.4vw,84px)/1 var(--sans);letter-spacing:-.035em}
.cta-copy h2 .it{color:var(--mist);font-size:1.08em}
.cta-copy p{color:rgba(255,255,255,.75);font-size:17px;max-width:46ch}
.cta-actions{grid-column:9/13;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.cta-actions .link{color:rgba(255,255,255,.85)}

/* ---------- FOOTER ---------- */
footer{background:#070a19;color:rgba(255,255,255,.6);font-size:13px}
.ft{padding-block:88px 56px;row-gap:48px}
.ft-brand{grid-column:1/5;display:flex;flex-direction:column;gap:22px}
.ft-brand > a{align-self:flex-start;display:block}
.ft-brand img{display:block;height:70px;width:auto}
.ft-brand p{max-width:34ch}
.ft-col{grid-column:span 2;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ft-brand+.ft-col{grid-column:7/9}
.ft-col h4{margin:0 0 6px;font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--white)}
.ft-col a,.fb a,.crumbs a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease-out),color .3s}
.ft-col a:hover,.fb a:hover,.crumbs a:hover{color:var(--white);background-size:100% 1px}
.ft-reg{border-top:1px solid var(--rule-d);padding-block:36px;font-size:12px;line-height:1.75;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px)}
.ft-reg div{grid-column:1/9;display:flex;flex-direction:column;gap:10px}
.ft-reg strong{color:rgba(255,255,255,.88);font-weight:500}
.coord{grid-column:10/13;justify-self:end;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.06em}
.fb{border-top:1px solid var(--rule-d);padding-block:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px}
.fb nav{display:flex;gap:24px;flex-wrap:wrap}

/* ---------- CTA MOBILE ---------- */
.m-cta{display:none}

/* ---------- ANIMATIONS ----------
   Entrée du haut de page, apparition au défilement, filets qui se tracent,
   transitions entre pages. Rien de tout cela ne s'applique si l'appareil
   demande moins de mouvement (prefers-reduced-motion). */
@keyframes rise{from{opacity:0;transform:translate3d(0,32px,0)}}
@keyframes fade-in{from{opacity:0}}
@keyframes reveal-up{from{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:none}}
@keyframes reveal-mask{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes reveal-zoom{from{scale:1.3}}
@keyframes reveal-zoom-bg{from{scale:1.18}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(143,227,180,.15)}50%{box-shadow:0 0 0 8px rgba(143,227,180,.04)}}
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.45s}

  /* entrée du haut de page */
  .js .hero-img{animation:drift 32s ease-in-out infinite alternate,fade-in 1.8s ease both}
  .js [data-enter]>*{animation:rise 1.2s var(--ease-out) both;animation-delay:calc(var(--enter,.1s) + var(--i,0) * .09s)}
  .js [data-enter]>:nth-child(2){--i:1}
  .js [data-enter]>:nth-child(3){--i:2}
  .js [data-enter]>:nth-child(4){--i:3}
  .js [data-enter]>:nth-child(5){--i:4}
  .js [data-enter]>:nth-child(6){--i:5}
  .js .hero-foot [data-enter]{--enter:.55s}
  .hero-note i{animation:pulse 3.2s ease-in-out infinite}

  /* apparition au défilement */
  .js [data-reveal]:not(.in){opacity:0}
  .js [data-reveal].in{animation:reveal-up 1.1s var(--ease-out) var(--d,0s) both}
  .js [data-reveal="mask"].in{animation:reveal-mask 1.3s var(--ease-io) var(--d,0s) both}
  .js [data-reveal="mask"].in img{animation:reveal-zoom 1.8s var(--ease-out) var(--d,0s) both}
  .js .why-visual.in::before{animation:reveal-zoom-bg 1.8s var(--ease-out) var(--d,0s) both}
  .js [data-reveal].now,.js [data-reveal].now img,.js .why-visual.now::before{animation:none}

  /* filets qui se tracent */
  .js [data-rule]{border-top-color:transparent;position:relative}
  .js [data-rule]::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--rule-c,var(--ink));transform:scaleX(0);transform-origin:0 50%;transition:transform 1.6s var(--ease-out) calc(var(--d,0s) + .1s)}
  .js [data-rule].in::before{transform:none}
  .js [data-rule].now::before{transition:none}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .menu,.nav-cta{display:none}
  .burger{display:grid;place-items:center}
  .brand-name{display:none}
  .hero-copy{grid-column:1/13}
  .hero-img{background-position:20% 50%}
  .hero::after{background:linear-gradient(180deg,rgba(11,16,36,.55),rgba(11,16,36,.15) 35%,rgba(11,16,36,.92))}
  .hero-main{align-items:flex-end;padding-block:140px 48px}
  .fig{grid-column:span 6}
  .hero-foot .grid{row-gap:24px}
  .scroll{display:none}
  .sec-head .label,.sec-head h2,.sec-aside,.faq,.faq-side,.founder-txt,.contact-copy,.booking,.band blockquote,.ft-brand,.ft-reg div,.coord,.sim-in,.sim-out,.page-hero-copy,.xp-list,.faq-groups,.legal-docs,.visit-copy,.visit-coords,.cta-copy,.cta-actions,.book-side,.book-frame{grid-column:1/13}
  .coord{justify-self:start;text-align:left;margin-top:12px}
  .constat{grid-template-columns:1fr}
  .constat article,.constat article+article{padding:28px 0;border-left:0;border-bottom:1px solid var(--rule)}
  .exp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .why-grid{grid-template-columns:1fr}
  .why-visual{min-height:360px}
  .sim-in{border-right:0;border-bottom:1px solid var(--rule)}
  .portrait{grid-column:1/13;justify-self:start;max-width:520px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .step,.step+.step{padding:32px 24px 32px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .step:nth-child(even){padding-left:24px;border-left:1px solid var(--rule)}
  .ft-col,.ft-brand+.ft-col{grid-column:span 4}
  .toc{position:static;grid-column:1/13;margin-bottom:56px}
  .toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .cols,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols:not(.cols-4)>:nth-child(n),.cols-4>:nth-child(n){padding-left:28px;border-left:1px solid var(--rule)}
  .cols:not(.cols-4)>:nth-child(2n+1),.cols-4>:nth-child(2n+1){padding-left:0;border-left:0}
  .book-frame{order:-1}
  .timeline{--tl-pad:clamp(28px,5vw,48px)}
  .tl-num{grid-column:1/-1;font-size:clamp(80px,14vw,120px)}
  .tl-body{grid-column:1/-1}
  .m-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:rgba(11,16,36,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translateY(110%);transition:transform .45s var(--ease-out)}
  .m-cta.on{transform:none}
  .m-cta .btn{flex:1}
}
@media (max-width:760px){
  .page-hero{--ph-size:cover}
  .page-hero-img{background-position:var(--ph-pos-m,var(--ph-pos))}
  .page-hero::after{background:linear-gradient(180deg,rgba(11,16,36,.65),rgba(11,16,36,.35) 40%,rgba(11,16,36,.94))}
}
@media (max-width:640px){
  .steps{grid-template-columns:1fr}
  .step:nth-child(even){padding-left:0;border-left:0}
  .exp-grid{grid-template-columns:1fr}
  .exp{min-height:0}
  .pivot{padding:28px 24px}
  .sim-in,.sim-out{padding:24px}
  .disclaimer{padding:16px 24px}
  .booking{padding:22px}
  .coords{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr}
  .facts div:nth-child(3){grid-column:1/3;border-left:0;padding-left:0;border-top:1px solid var(--rule);margin-top:20px}
  .ft-col,.ft-brand+.ft-col{grid-column:span 6}
  .hero-ctas .btn{flex:1 1 100%}
  details p{padding-right:0}
  .method-cta .btn{width:100%}
  .bk-bar{padding:12px 16px}
  #bk-t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .toc ol{grid-template-columns:1fr}
  .xp .xp-lead{grid-column:1/-1}
  .fiche summary{padding-block:20px}
  .fiche dl{grid-template-columns:1fr}
  .fiche dl > div,.fiche dl > div:nth-child(even){padding-left:0;padding-right:0;border-left:0}
  .fiche dl > div.vig{padding-inline:18px}
  .cols,.cols-4{grid-template-columns:1fr}
  .cols:not(.cols-4)>:nth-child(n),.cols-4>:nth-child(n){padding-left:0;border-left:0}
  .visit-coords{grid-template-columns:1fr}
  .visit-coords>div:nth-child(even){padding-left:0;border-left:0}
  .book-frame iframe{height:760px}
}
