@font-face{font-family:"Jost";src:url(fonts/jost-400.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url(fonts/jost-500.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url(fonts/jost-600.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url(fonts/mulish-400.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url(fonts/mulish-600.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url(fonts/mulish-700.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(fonts/cormorant-italic-500.woff) format("woff");font-weight:500;font-style:italic;font-display:swap}
html{color-scheme:light}body{margin:0}img{max-width:100%}[hidden]{display:none!important}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
/* Layout: brand site with a facet-cut hero; the admin is a dense two-pane CRM using the same tokens. */
:root{
  --vert:#154844; --vert-profond:#0d2f2c; --sauge:#3c6f6a; --or:#ae905c; --or-clair:#c9ae7c; --or-texte:#7d5f2b; --terre:#9c5136;
  --fond:#faf7f1; --sable:#f1eadc; --surface:#ffffff; --encre:#17302d; --encre-douce:#55625f; --ligne:#dcd3c3;
  --sur-vert:#ffffff; --sur-vert-doux:#c3d2ce; --accent-sur-vert:#dcc79e; --lien:#154844; --ardoise:#46566b;
  --ok:#2f6b3a; --warn:#8a5a00; --bad:#9c2f2f; --info:#2f5f86;
  --ombre:0 8px 24px rgba(13,47,44,.10);
  --f-titre:"Jost","Futura","Century Gothic",sans-serif;
  --f-texte:"Mulish","Segoe UI",Arial,sans-serif;
  --f-accent:"Cormorant Garamond",Georgia,serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --vert:#2f6a62; --vert-profond:#0a1c1a; --sauge:#4b7f79; --or:#c9ae7c; --or-clair:#dcc79e; --or-texte:#d6bd8d; --terre:#b4623f;
  --fond:#0d2321; --sable:#143330; --surface:#122b28; --encre:#f3eee4; --encre-douce:#b4bfbb; --ligne:#2c4a46;
  --sur-vert:#ffffff; --sur-vert-doux:#d0dcd8; --accent-sur-vert:#e6d4ae; --lien:#a9cfc8; --ardoise:#a7b6c9;
  --ok:#7cc28a; --warn:#e0b45c; --bad:#e58a8a; --info:#8db8de; --ombre:0 8px 24px rgba(0,0,0,.35); color-scheme:dark}}
:root[data-theme="dark"]{
  --vert:#2f6a62; --vert-profond:#0a1c1a; --sauge:#4b7f79; --or:#c9ae7c; --or-clair:#dcc79e; --or-texte:#d6bd8d; --terre:#b4623f;
  --fond:#0d2321; --sable:#143330; --surface:#122b28; --encre:#f3eee4; --encre-douce:#b4bfbb; --ligne:#2c4a46;
  --sur-vert:#ffffff; --sur-vert-doux:#d0dcd8; --accent-sur-vert:#e6d4ae; --lien:#a9cfc8; --ardoise:#a7b6c9;
  --ok:#7cc28a; --warn:#e0b45c; --bad:#e58a8a; --info:#8db8de; --ombre:0 8px 24px rgba(0,0,0,.35); color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--fond);color:var(--encre);font-family:var(--f-texte);font-size:16px;line-height:1.6}
a{color:var(--lien)} a:hover{color:var(--encre)}
:focus-visible{outline:2px solid var(--or-texte);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--f-titre);font-weight:500;text-wrap:balance;margin:0}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-family:var(--f-titre);font-weight:600;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--or-texte)}
.filet{width:48px;height:2px;background:var(--or)}
.muted{color:var(--encre-douce)}
.num{font-variant-numeric:tabular-nums}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--f-titre);font-weight:500;font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:12px 22px;min-height:46px;border-radius:2px;border:1.5px solid var(--vert);background:var(--vert);color:var(--sur-vert);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--vert-profond);border-color:var(--vert-profond);color:var(--sur-vert)}
.btn.ghost{background:transparent;color:var(--lien);border-color:var(--lien)} .btn.ghost:hover{background:var(--vert);color:var(--sur-vert)}
.btn.gold{background:var(--or-clair);border-color:var(--or-clair);color:#0d2f2c} .btn.gold:hover{background:#fff;border-color:#fff;color:#0d2f2c}
.btn.light{background:transparent;border-color:#fff;color:#fff}
.btn.terre{background:var(--terre);border-color:var(--terre);color:#fff}
.btn.sm{padding:7px 12px;min-height:36px;font-size:12px}
.badge{display:inline-block;font-family:var(--f-titre);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;border-radius:2px;color:#fff;background:var(--vert);white-space:nowrap}
.b-lancement{background:var(--vert)} .b-construction{background:var(--sauge)} .b-livre{background:var(--or);color:#17302d}
.example{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);border:1px solid currentColor;padding:1px 6px;border-radius:2px}
label.f{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13.5px}
input,select,textarea{font:inherit;font-size:15px;font-weight:400;color:var(--encre);padding:10px 12px;border:1px solid var(--ligne);border-radius:2px;background:var(--surface);width:100%;min-width:0}
textarea{resize:vertical}

/* ---------- header ---------- */
.topbar{background:var(--vert-profond);color:var(--sur-vert-doux);font-size:13px}
.topbar .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;padding-block:7px}
.topbar b{color:var(--accent-sur-vert);font-weight:600}
header.site{background:var(--surface);border-bottom:1px solid var(--ligne);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;flex-wrap:wrap}
.logo img{height:44px;width:auto;display:block}
.logo .dark{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo .light{display:none} :root:not([data-theme="light"]) .logo .dark{display:block}}
:root[data-theme="dark"] .logo .light{display:none} :root[data-theme="dark"] .logo .dark{display:block}
nav.main{display:flex;flex-wrap:nowrap;gap:18px;flex:1;justify-content:center;font-family:var(--f-titre);font-weight:500;font-size:14.5px;white-space:nowrap}
section[id],article[id]{scroll-margin-top:120px}
@media (max-width:1180px){section[id],article[id]{scroll-margin-top:150px}}
nav.main a{text-decoration:none;color:var(--encre);padding:6px 0;border-bottom:2px solid transparent}
nav.main a.on{border-color:var(--or)}
.hdr-cta{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:1180px){nav.main{order:3;width:100%;flex:none;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;gap:18px;padding-bottom:4px} nav.main a{white-space:nowrap} .hdr-cta .btn.ghost{display:none}}

/* ---------- hero ---------- */
.hero{background:var(--vert);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:0;align-items:stretch}
.hero .txt{padding-block:84px 120px;display:flex;flex-direction:column;gap:22px;position:relative;z-index:1;padding-right:32px}
.hero h1{font-size:clamp(34px,4.6vw,56px);line-height:1.1;color:#fff}
.hero .lede{font-size:18px;color:var(--sur-vert-doux);max-width:34em}
.hero .eyebrow{color:var(--accent-sur-vert)}
.hero .art{position:relative;min-height:440px}
.hero .art svg{position:absolute;inset:0 -40vw 0 0;width:calc(100% + 40vw);height:100%}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px}
@media (max-width:820px){.hero .wrap{grid-template-columns:minmax(0,1fr)} .hero .art{min-height:200px;margin-inline:calc(-1*max(16px,env(safe-area-inset-left,0px)))} .hero .art svg{inset:0;width:100%} .hero .txt{padding-block:48px 24px;padding-right:0}}
.entry{position:relative;z-index:2;margin-top:-52px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.2fr);box-shadow:var(--ombre)}
.entry form{background:var(--surface);padding:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end}
.entry form label{font-family:var(--f-titre);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte)}
.entry .promo{background:var(--vert-profond);color:#fff;padding:22px 26px;text-decoration:none;display:flex;flex-direction:column;justify-content:center;gap:4px}
.entry .promo span:last-child{font-family:var(--f-titre);font-size:19px;line-height:1.3}
@media (max-width:900px){.entry{grid-template-columns:minmax(0,1fr)} .entry form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} .entry form .btn{grid-column:1/-1}}
@media (max-width:480px){.entry form{grid-template-columns:minmax(0,1fr)}}

/* ---------- sections ---------- */
section.s{padding-block:88px}
.s-head{display:flex;flex-direction:column;gap:10px;max-width:680px;margin-bottom:44px}
.s-head h2{font-size:clamp(28px,3.2vw,40px);line-height:1.15}
.s-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:40px}
.s-row .s-head{margin-bottom:0}
.band-sable{background:var(--sable)}
.band-vert{background:var(--vert);color:#fff}
.band-vert .eyebrow{color:var(--accent-sur-vert)} .band-vert .muted{color:var(--sur-vert-doux)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:1000px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))} .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid4,.grid3{grid-template-columns:minmax(0,1fr)}}
.metier{background:var(--surface);border:1px solid var(--ligne);border-top:4px solid var(--c);padding:28px 24px;display:flex;flex-direction:column;gap:12px}
.metier h3{font-size:20px;font-weight:600}
.metier p{font-size:15px;color:var(--encre-douce)}
.metier a{margin-top:auto;font-family:var(--f-titre);font-weight:500;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--c2,var(--lien));text-decoration:none}

/* programme card */
.pcard{background:var(--surface);border:1px solid var(--ligne);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:box-shadow .2s}
.pcard:hover{box-shadow:var(--ombre);color:inherit}
.pvis{position:relative;aspect-ratio:16/10;max-width:100%;background:var(--sable)}
.pvis svg{display:block;width:100%;height:100%}
.pvis .badge{position:absolute;top:14px;left:14px}
.pvis .nc{position:absolute;right:10px;bottom:6px;font-size:10.5px;color:#fff;opacity:.85}
.pbody{padding:22px;display:flex;flex-direction:column;gap:4px;flex-grow:1}
.pbody h3{font-size:20px;font-weight:600}
.prix{font-family:var(--f-titre);font-weight:500;font-size:27px;line-height:1.2;color:var(--vert)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .prix{color:var(--or-clair)}}
:root[data-theme="dark"] .prix{color:var(--or-clair)}
.plan{margin-top:12px;background:var(--fond);border:1px solid var(--ligne);padding:10px 12px;font-size:12.5px}
.plan .bar{display:flex;height:8px;margin:7px 0 5px}
.plan .bar i{display:block}
.plan .lg{display:flex;justify-content:space-between;gap:6px;color:var(--encre-douce)}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:13px;color:var(--encre-douce)}
.dispo{font-size:13px;font-weight:700;color:var(--ok)}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--ligne)}
.steps li{padding:26px 22px 0 0;display:flex;flex-direction:column;gap:6px}
.steps .n{font-family:var(--f-titre);font-size:30px;color:var(--or)}
.steps b{font-family:var(--f-titre);font-weight:600;font-size:17.5px}
.steps span{font-size:14px;color:var(--encre-douce);line-height:1.55}
@media (max-width:900px){.steps{grid-template-columns:minmax(0,1fr);border-top:0;border-left:2px solid var(--or)} .steps li{padding:0 0 22px 18px}}
.etapes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--sauge)}
.etapes div{background:var(--vert);padding:24px;display:flex;flex-direction:column;gap:6px}
.etapes small{font-family:var(--f-titre);font-weight:600;font-size:11.5px;letter-spacing:.16em;color:var(--accent-sur-vert)}
.etapes b{font-family:var(--f-titre);font-weight:600;font-size:18px}
.etapes span{font-size:14px;color:var(--sur-vert-doux)}
@media (max-width:620px){.etapes{grid-template-columns:minmax(0,1fr)}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:56px;align-items:start}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr);gap:36px}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{border:1px solid var(--ligne);background:var(--surface);padding:5px 12px;font-size:14px;border-radius:2px}
.svtabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border:1px solid var(--ligne);background:var(--surface)}
.svtabs button{font:inherit;background:transparent;border:0;border-right:1px solid var(--ligne);border-top:4px solid transparent;padding:16px 12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;cursor:pointer;color:var(--encre-douce);text-align:left;min-height:44px}
.svtabs button:last-child{border-right:0}
.svtabs button b{font-family:var(--f-titre);font-weight:600;font-size:15px;color:var(--encre);line-height:1.25}
.svtabs button[aria-selected="true"]{border-top-color:var(--c);background:var(--fond)}
.svtabs button:hover{background:var(--fond)}
@media (max-width:1000px){.svtabs{display:flex;overflow-x:auto}.svtabs button{flex:0 0 auto;min-width:150px}}
.svpanel{border:1px solid var(--ligne);border-top:0;background:var(--fond);padding:40px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px}
@media (max-width:900px){.svpanel{grid-template-columns:minmax(0,1fr);padding:24px 18px;gap:28px}}
.svpanel h3{font-size:clamp(24px,2.6vw,30px);line-height:1.2}
.svpanel .intro{font-size:17px;color:var(--encre-douce);max-width:60ch}
.svpanel .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.pourqui{background:var(--surface);border:1px solid var(--ligne);padding:22px;display:flex;flex-direction:column;gap:12px;align-self:start}
.svpanel > div .pourqui{align-self:stretch}
.pourqui ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pourqui li{display:flex;gap:10px;align-items:baseline;font-size:15px}
.pourqui li::before{content:"";width:8px;height:2px;background:var(--or);flex-shrink:0;transform:translateY(-4px)}
.svc2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:900px){.svc2{grid-template-columns:minmax(0,1fr)}}
.svc{background:var(--surface);border:1px solid var(--ligne);border-top:4px solid var(--c);padding:32px 28px;display:flex;flex-direction:column;gap:14px}
.svc h3{font-size:24px;line-height:1.25}
.svc .btn{align-self:flex-start;margin-top:auto}
.tick{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:14px}
.tick li{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:10px}
.tick li::before{content:"";width:10px;height:10px;margin-top:7px;background:var(--c);grid-row:1/3}
.tick b{font-family:var(--f-titre);font-weight:600;font-size:16.5px}
.tick span{font-size:14.5px;color:var(--encre-douce);line-height:1.55}
.ba{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ba figure{margin:0;display:flex;flex-direction:column;gap:6px}
.ba svg{display:block;width:100%;height:auto;border:1px solid var(--ligne)}
.ba figcaption{font-family:var(--f-titre);font-weight:600;font-size:11.5px;letter-spacing:.16em;color:var(--encre-douce)}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:900px){.team{grid-template-columns:minmax(0,1fr)}}
.member{background:var(--surface);border:1px solid var(--ligne);padding:20px;display:flex;gap:16px;align-items:center}
.member .av{width:72px;height:72px;flex-shrink:0;background:var(--vert);display:flex;align-items:center;justify-content:center;font-family:var(--f-titre);font-size:24px;color:#fff}
.member b{display:block;font-family:var(--f-titre);font-weight:600;font-size:18px}
.member small{display:block;font-family:var(--f-titre);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte)}
.member .tel{font-size:14px;color:var(--encre-douce);user-select:all}
details.q{border-bottom:1px solid var(--ligne);padding:18px 0}
details.q summary{font-family:var(--f-titre);font-weight:600;font-size:18px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
details.q summary::after{content:"+";color:var(--or-texte);font-size:22px;line-height:1}
details.q[open] summary::after{content:"–"}
details.q p{margin-top:10px;color:var(--encre-douce);max-width:65ch}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:56px}
@media (max-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
.cform{background:var(--surface);border:1px solid var(--ligne);padding:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cform .full{grid-column:1/-1}
@media (max-width:560px){.cform{grid-template-columns:minmax(0,1fr);padding:20px}}
.coord{display:flex;flex-direction:column;gap:14px;font-size:15px}
.coord div{display:flex;gap:12px;align-items:flex-start}
.coord svg{flex-shrink:0;margin-top:3px}
.ok-msg{grid-column:1/-1;background:var(--sable);border:1px solid var(--ligne);padding:14px;font-weight:600;color:var(--ok)}
footer.site{background:var(--vert);color:var(--sur-vert-doux);font-size:14px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) footer.site{background:var(--vert-profond)}}
:root[data-theme="dark"] footer.site{background:var(--vert-profond)}
footer.site .cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1.3fr);gap:40px;padding-block:56px 32px}
footer.site h4{font-family:var(--f-titre);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-sur-vert);margin-bottom:10px}
footer.site a{color:#e4ece9;text-decoration:none;display:block;padding:2px 0}
footer.site .legal{border-top:1px solid var(--sauge);padding-block:16px;font-size:12.5px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
@media (max-width:760px){footer.site .cols{grid-template-columns:minmax(0,1fr)}}
.wa{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;background:var(--vert);border:2px solid var(--or-clair);display:flex;align-items:center;justify-content:center;box-shadow:var(--ombre);z-index:30}

/* detail */
.dhead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;padding-block:48px}
@media (max-width:900px){.dhead{grid-template-columns:minmax(0,1fr)}}
.dhead .pvis{aspect-ratio:16/11}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ligne);border:1px solid var(--ligne);margin-top:18px}
.facts div{background:var(--surface);padding:12px 14px}
.facts small{display:block;font-size:12px;color:var(--encre-douce)}
.facts b{font-family:var(--f-titre);font-weight:500;font-size:17px}
.tbl-wrap{overflow-x:auto;border:1px solid var(--ligne);background:var(--surface)}
table.t{width:100%;border-collapse:collapse;font-size:14px}
table.t th{font-family:var(--f-titre);font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--encre-douce);text-align:left;padding:10px 12px;border-bottom:1px solid var(--ligne);background:var(--fond);white-space:nowrap}
table.t td{padding:9px 12px;border-bottom:1px solid var(--ligne);vertical-align:middle}
table.t td.r,table.t th.r{text-align:right}
table.t tr:last-child td{border-bottom:0}
.st{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap}
.st::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.st-disponible{color:var(--ok)} .st-option{color:var(--warn)} .st-reserve{color:var(--info)} .st-vendu{color:var(--bad)}
.crumb{font-size:14px;padding-top:24px}
.crumb a{text-decoration:none}

.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.empty{padding:28px;text-align:center;color:var(--encre-douce);border:1px dashed var(--ligne)}
.note{font-size:13px;color:var(--encre-douce)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--encre);color:var(--fond);padding:10px 18px;font-size:14px;z-index:60;border-radius:2px}
.ex-banner{background:var(--sable);border-bottom:1px solid var(--ligne);font-size:13px;color:var(--encre-douce)}
.ex-banner .wrap{padding-block:6px}
/* ---------- intro ---------- */
#intro{position:fixed;inset:0;z-index:100;background:#0d2f2c;color:#fff;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(18px,3.5vh,36px);padding:calc(24px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));transition:transform .8s cubic-bezier(.7,0,.2,1)}
#intro.out{transform:translateY(-100%)}
#intro .bg{position:absolute;inset:0;pointer-events:none}
#intro .bg i{position:absolute;top:-10%;bottom:-10%;display:block;transform:translateX(120%) skewX(-14deg);animation:facet 1.1s cubic-bezier(.2,.7,.2,1) forwards}
#intro .bg .f1{right:-8%;width:34%;background:#154844;animation-delay:.05s}
#intro .bg .f2{right:-14%;width:20%;background:#1d5a54;animation-delay:.2s}
#intro .bg .f3{right:5%;width:6px;background:#ae905c;animation-delay:.35s}
@media (max-width:700px){#intro .bg .f3{display:none}#intro .bg .f1{width:22%}#intro .bg .f2{width:12%}.itag{letter-spacing:.18em}}
#intro .bg .f4{left:-12%;width:22%;background:#123f3b;transform:translateX(-140%) skewX(-14deg);animation-delay:.15s}
@keyframes facet{to{transform:translateX(0) skewX(-14deg)}}
#intro .skip{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));font:500 13px/1 var(--f-titre);letter-spacing:.12em;text-transform:uppercase;color:#c3d2ce;background:transparent;border:1px solid rgba(255,255,255,.25);padding:10px 14px;border-radius:2px;cursor:pointer;z-index:2;min-height:40px}
#intro .skip:hover{color:#fff;border-color:#fff}
.ilogo{position:relative;width:min(560px,82vw);aspect-ratio:1543/560;z-index:1}
.ilogo img{position:absolute;display:block;height:auto}
.ilogo .mono{left:0;top:0;width:48.671%;clip-path:polygon(0 0,0 0,-30% 100%,-30% 100%);animation:wipe 1.25s cubic-bezier(.65,0,.25,1) .55s forwards}
.ilogo .gold{left:26.183%;top:2.857%;width:21.905%;clip-path:inset(100% 0 0 0);animation:rise .9s cubic-bezier(.3,0,.2,1) 1.35s forwards}
.ilogo .word{left:52.819%;top:60.536%;width:47.181%;opacity:0;transform:translateX(-18px);letter-spacing:0;animation:word .9s cubic-bezier(.2,.7,.2,1) 1.9s forwards}
.ilogo .glint{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);background-size:250% 100%;background-position:120% 0;mix-blend-mode:overlay;-webkit-mask-image:linear-gradient(#000,#000);animation:glint 1.2s ease 2.8s forwards;pointer-events:none}
@keyframes wipe{to{clip-path:polygon(0 0,130% 0,100% 100%,-30% 100%)}}
@keyframes rise{to{clip-path:inset(0 0 0 0)}}
@keyframes word{to{opacity:1;transform:none}}
@keyframes glint{to{background-position:-30% 0}}
.itag{z-index:1;font:500 clamp(13px,1.6vw,15px)/1.4 var(--f-titre);letter-spacing:.32em;text-transform:uppercase;color:#dcc79e;text-align:center;opacity:0;animation:fadeup .8s ease 2.55s forwards}
.isvc{z-index:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(10px,1.6vw,22px);width:min(1060px,100%)}
.isvc li{opacity:0;transform:translateY(16px);animation:fadeup .6s cubic-bezier(.2,.7,.2,1) forwards}
.isvc button{font:inherit;width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:#fff;padding:16px 12px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;text-align:center;min-height:44px;transition:background .2s,border-color .2s}
.isvc button:hover{background:rgba(255,255,255,.09);border-color:var(--ic)}
.isvc b{font:600 14px/1.25 var(--f-titre)}
.isvc em{display:block;height:2px;width:0;background:var(--ic);animation:bar .6s ease forwards;animation-delay:inherit}
@keyframes bar{to{width:36px}}
@keyframes fadeup{to{opacity:1;transform:none}}
.ictas{z-index:1;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;opacity:0;animation:fadeup .7s ease 4.1s forwards}
@media (max-width:900px){.isvc{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.isvc{grid-template-columns:repeat(2,minmax(0,1fr))}.isvc button{padding:12px 8px;flex-direction:row;justify-content:flex-start;text-align:left}.isvc em{display:none}}
@media (prefers-reduced-motion: reduce){#intro *{animation-duration:.01s!important;animation-delay:0s!important}#intro{transition:none}}
@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- pages SEO ---------- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--vert);color:#fff;padding:10px 14px;z-index:100}
.skip-link:focus{left:12px;top:12px}
nav.main a{white-space:nowrap}
.bc{font-size:13.5px;padding-top:22px;color:var(--encre-douce)}
.bc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px}
.bc li+li::before{content:"›";margin-right:8px;color:var(--or-texte)}
.bc a{text-decoration:none}
.phero{padding-block:44px 56px;border-bottom:1px solid var(--ligne)}
.phero .wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:start}
@media (max-width:900px){.phero .wrap{grid-template-columns:minmax(0,1fr);gap:28px}}
.phero h1{font-size:clamp(32px,4.2vw,50px);line-height:1.1;margin-top:10px}
.phero .lede{font-size:18px;color:var(--encre-douce);max-width:62ch;margin-top:18px}
.phero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.prose{max-width:74ch;display:flex;flex-direction:column;gap:16px;font-size:16.5px}
.prose h2{font-size:clamp(24px,2.6vw,32px);line-height:1.2;margin-top:22px}
.prose h3{font-size:20px;font-weight:600;margin-top:8px}
.prose ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.prose p,.prose li{color:var(--encre)}
.cols-prose{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px;align-items:start}
@media (max-width:900px){.cols-prose{grid-template-columns:minmax(0,1fr);gap:32px}}
.aside-box{background:var(--surface);border:1px solid var(--ligne);border-top:4px solid var(--c,var(--or));padding:24px;display:flex;flex-direction:column;gap:12px;position:sticky;top:20px}
.aside-box h2{font-size:20px;font-weight:600}
.aside-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.aside-box li a{text-decoration:none}
.svcgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:1000px){.svcgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.svcgrid{grid-template-columns:minmax(0,1fr)}}
.svcard{background:var(--surface);border:1px solid var(--ligne);border-top:4px solid var(--c);padding:26px 24px;display:flex;flex-direction:column;gap:12px;text-decoration:none;color:inherit;transition:box-shadow .2s}
.svcard:hover{box-shadow:var(--ombre);color:inherit}
.svcard h3{font-size:21px;font-weight:600}
.svcard p{font-size:15px;color:var(--encre-douce)}
.svcard .more{margin-top:auto;font-family:var(--f-titre);font-weight:500;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--lien)}
.quartiers{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.quartiers span{border:1px solid var(--ligne);background:var(--surface);padding:4px 11px;font-size:14px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.err404{padding-block:96px;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}
.legal-txt{max-width:80ch;display:flex;flex-direction:column;gap:12px;padding-block:24px 72px}
.legal-txt h2{font-size:22px;margin-top:16px}

.isvc a{font:inherit;width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:#fff;padding:16px 12px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;text-align:center;min-height:44px;transition:background .2s,border-color .2s}
.isvc a:hover{background:rgba(255,255,255,.09);border-color:var(--ic)}
@media (max-width:480px){.isvc{grid-template-columns:repeat(2,minmax(0,1fr))}.isvc a{padding:12px 8px;flex-direction:row;justify-content:flex-start;text-align:left}.isvc em{display:none}}
.isvc a{text-decoration:none}
footer.site .fh{font-family:var(--f-titre);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-sur-vert);margin-bottom:10px}
.logo picture{display:block}.logo picture.dark{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo picture.light{display:none}:root:not([data-theme="light"]) .logo picture.dark{display:block}}
