@font-face{font-family:"Archivo";font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113}
:root{--bg:#F0F5F2;--surface:#FFFFFF;--text:#10231A;--muted:#52645B;--accent:#087A55;--hover:#056143;--on-accent:#fff;--border:#D9E4DE;--inv-bg:#10231A;--inv-text:#F3F3F4;--inv-muted:#B4B4BC;--img:#D9E4DE;--card:3px;--button:3px;--font:"Archivo",system-ui,sans-serif;--gut:clamp(16px,3vw,40px)}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5}
img{max-width:100%;display:block}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--hover)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}
ul,ol{list-style:none;margin:0;padding:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.skip:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;padding:10px 14px;background:#fff;color:#111;z-index:50}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--gut)}
/* en-tête */
.header{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border)}
.bar{height:60px;display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.brand{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none}.brand:hover{color:var(--text)}
.logo{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900;font-size:19px;font-stretch:80%;line-height:1;flex:none}
.name{font-weight:850;font-size:24px;font-stretch:78%;letter-spacing:-.02em;line-height:1;white-space:nowrap}
.menu{position:relative}.menu summary{display:flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:var(--button);font-weight:600;font-size:15px;background:var(--bg)}.menu summary span{font-size:11px}
.menu nav{position:absolute;left:0;top:48px;min-width:230px;max-height:70vh;overflow:auto;background:var(--surface);border-radius:14px;box-shadow:0 12px 40px rgba(17,17,20,.16);padding:8px}
.menu ul{display:grid}.menu a{display:block;padding:10px 12px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:500}.menu a:hover{background:var(--bg)}.menu a[aria-current]{background:var(--bg);color:var(--accent);font-weight:700}
.age{font-size:12px;font-weight:800;padding:3px 7px;border:1.5px solid var(--text);border-radius:6px;line-height:1}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;border-radius:var(--button);background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:750;font-size:16px}.btn:hover{background:var(--hover);color:var(--on-accent)}
/* intro */
.top{padding:clamp(14px,2.5vw,32px) 0 clamp(16px,2.5vw,28px);display:grid;gap:clamp(10px,1.6vw,18px)}
.crumb{font-size:13px;color:var(--muted)}.crumb ol{display:flex;flex-wrap:wrap;gap:6px}.crumb a{color:var(--muted)}
.lead{display:grid;gap:clamp(12px,1.6vw,18px);justify-items:start}
h1{margin:0;max-width:15em;font-weight:850;font-stretch:72%;font-size:clamp(40px,5.6vw,72px);line-height:.94;letter-spacing:-.03em;text-wrap:balance}
.lead p{margin:0;max-width:780px;font-size:clamp(15px,1.3vw,17px);line-height:1.45;color:var(--muted);text-wrap:pretty}
.chips{margin:4px calc(-1 * var(--gut)) 0;padding:0 var(--gut);display:flex;gap:8px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.chips span,.chips a{display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border-radius:var(--button);font-size:14px}
.chips span{background:var(--text);color:var(--surface);font-weight:650}.chips a{background:var(--surface);color:var(--text);text-decoration:none;font-weight:600}.chips a:hover{color:var(--accent)}
/* galerie */
.gallery{padding-bottom:clamp(56px,8vw,112px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(140px,26vw,270px),1fr));gap:clamp(18px,2.4vw,36px) clamp(12px,1.8vw,24px)}
.grid>li{display:flex}.card{flex:1;display:flex;flex-direction:column;gap:10px}
.photo{display:block;border-radius:var(--card);overflow:hidden;background:var(--img)}
.photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;transition:transform .4s}.photo:hover img{transform:scale(1.03)}
.card-body{flex:1;display:flex;flex-direction:column;gap:5px;padding:0 2px}
.card h2,.card h3{margin:0;font-weight:800;font-stretch:80%;font-size:clamp(20px,2vw,26px);line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere;hyphens:auto}
.card h2 a,.card h3 a{color:var(--text);text-decoration:none}.card h2 a:hover,.card h3 a:hover{color:var(--accent)}
.card p{margin:0;font-size:14px;line-height:1.4;color:var(--muted);text-wrap:pretty}.card .tags{margin-top:2px;font-size:12.5px;font-weight:650;letter-spacing:.02em;color:var(--text)}
.more{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:14px;font-weight:750;color:var(--accent);text-decoration:none}.more:hover{text-decoration:underline}
.photo-call{position:relative}.call-pill{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--button);background:var(--accent);color:var(--on-accent);font-size:13px;font-weight:750;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .2s}
.call-pill::before{content:"";width:13px;height:13px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat}
.photo-call:hover .call-pill{transform:translateY(-2px)}
/* éditorial */
.editorial{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:36px clamp(24px,4vw,64px);padding:clamp(40px,5vw,64px) 0;border-top:2px solid var(--text)}
.editorial>div{display:grid;gap:12px;align-content:start}
.editorial h2,.faq>h2{margin:0;font-weight:800;font-stretch:80%;font-size:clamp(26px,2.6vw,34px);line-height:1.02;letter-spacing:-.02em;text-wrap:balance}
.editorial p{margin:0;font-size:16px;line-height:1.6;color:var(--muted);text-wrap:pretty}
.faq{max-width:860px;padding:0 0 clamp(40px,5vw,64px);display:grid;gap:8px}.faq details{border-bottom:1px solid var(--border);padding:14px 0}.faq summary{font-weight:700;font-size:17px}.faq details p{margin:10px 0 0;color:var(--muted);line-height:1.6}
/* bloc d'appel */
.call{margin:0 calc(-1 * clamp(0px,1vw,8px)) clamp(48px,6vw,80px);background:var(--accent);color:#fff;border-radius:clamp(18px,2vw,28px);padding:clamp(28px,4vw,56px);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px}
.call>div{display:grid;gap:8px;min-width:0}.eyebrow{margin:0;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.call .num{margin:0;font-weight:850;font-stretch:72%;font-size:clamp(32px,5.4vw,72px);line-height:.95;letter-spacing:-.03em;overflow-wrap:anywhere}
.call .cond{margin:6px 0 0;font-size:16px;font-weight:500}
.call a{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:0 36px;border-radius:var(--button);background:#fff;color:#111114;text-decoration:none;font-weight:800;font-size:18px}.call a:hover{background:#111114;color:#fff}
/* catégories proches */
.related{padding:0 0 clamp(56px,7vw,96px)}.related>h2{margin:0 0 8px;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.related ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));column-gap:clamp(24px,4vw,64px)}.related li{border-bottom:1px solid var(--border)}
.related a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 16px;padding:18px 0;color:var(--text);text-decoration:none}.related a:hover{color:var(--accent)}
.related b{font-weight:800;font-stretch:80%;font-size:clamp(24px,2.4vw,32px);line-height:1.05;letter-spacing:-.02em}.related i{font-style:normal;font-size:24px;grid-row:span 2}.related small{font-size:14.5px;color:var(--muted)}
/* fiche */
.profile{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,72px);align-items:start;padding:0 0 clamp(48px,6vw,80px)}
.profile .photo img{object-position:center 25%}
.profile-body{display:grid;gap:14px;align-content:start;padding-top:clamp(0px,1vw,12px)}
.profile .hook{margin:0;font-weight:800;font-stretch:80%;font-size:clamp(22px,2.2vw,28px);line-height:1.1;letter-spacing:-.02em;color:var(--accent)}
.profile-body>p{margin:0;font-size:17px;line-height:1.6;color:var(--muted);text-wrap:pretty}
.profile .tags{font-size:13px;font-weight:650;letter-spacing:.02em}
.dial{margin-top:10px;display:grid;gap:10px;padding:clamp(20px,2.5vw,28px);border-radius:var(--card);background:var(--surface);border:1px solid var(--border)}
.dial .num{margin:0;font-weight:850;font-stretch:72%;font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:-.02em}.dial small{color:var(--muted);font-size:14px}.dial .btn{min-height:56px;font-size:18px;justify-self:start;padding:0 32px}
.others{padding:0 0 clamp(56px,7vw,96px)}.others>h2{margin:0 0 18px;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dial-sms{display:grid;gap:6px;margin-top:6px;padding-top:14px;border-top:1px solid var(--border)}
.btn-sms{justify-self:start;background:transparent;color:var(--accent);border:2px solid var(--accent);min-height:50px}.btn-sms:hover{background:var(--accent);color:var(--on-accent)}
.sms-desk{margin:0;font-size:17px}.sms-desk b{font-weight:800;color:var(--text)}.dial-sms small{color:var(--muted);font-size:13px}
@media(min-width:768px){.btn-sms{display:none}}@media(max-width:767.98px){.sms-desk{display:none}.dial .btn,.btn-sms{justify-self:stretch}}
/* pages légales */
.prose{max-width:780px;padding-bottom:clamp(56px,7vw,96px)}.prose p{color:var(--muted);line-height:1.6}
/* pied de page */
footer{background:var(--inv-bg);color:var(--inv-text)}
.foot{padding:clamp(40px,5vw,64px) var(--gut) 28px;display:grid;gap:36px}
.foot-cols{display:flex;flex-wrap:wrap;gap:32px 64px}.foot-brand{flex:2 1 260px;display:grid;gap:12px;align-content:start}.foot-brand p{margin:0}
.foot-brand .tagline{font-size:14.5px;line-height:1.55;color:var(--inv-muted);max-width:360px}
.foot-col{flex:1 1 200px;display:grid;gap:6px;align-content:start;font-size:14.5px}.foot-col p{margin:0}.foot-col h2{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--inv-muted)}
.foot-col ul{display:grid;gap:8px}.foot-cats{flex:2 1 320px}.foot-cats ul{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));column-gap:24px}.foot a{color:var(--inv-text)}
.foot-legal{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font-size:13px;color:var(--inv-muted)}
.foot-legal .age{font-size:14px;padding:5px 9px;border-color:var(--inv-text);border-radius:7px;color:var(--inv-text)}.foot-legal p{margin:0;flex:1 1 280px;line-height:1.5}
/* disclaimer 18+ : fond opaque et flou, les photos ne se devinent pas */
.gate-layer{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(8,6,10,.9);background:color-mix(in srgb,var(--inv-bg) 88%,transparent);-webkit-backdrop-filter:blur(24px) saturate(.5);backdrop-filter:blur(24px) saturate(.5)}
.gate .gate-layer{display:flex}.gate body{overflow:hidden}
.gate-card{width:100%;max-width:430px;background:var(--surface);color:var(--text);border-radius:calc(var(--card) + 6px);padding:32px 26px 24px;text-align:center;display:grid;gap:14px;justify-items:center;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.gate-card .logo{width:42px;height:42px;font-size:26px;border-radius:12px}
.gate-t{margin:0;font-weight:850;font-stretch:78%;font-size:clamp(28px,6vw,34px);line-height:1;letter-spacing:-.02em;text-wrap:balance}
.gate-card p:not(.gate-t){margin:0;color:var(--muted);line-height:1.5;text-wrap:pretty}
.gate-actions{display:grid;gap:12px;width:100%;margin-top:6px;justify-items:center}
.gate-actions .btn{width:100%;min-height:54px;font-size:17px;font-weight:800;border:0;cursor:pointer;font-family:inherit}
.gate-out{color:var(--muted);font-size:14.5px}
/* barre d'appel mobile */
.mobile-call{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--inv-bg);color:var(--inv-text);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px}
.mobile-call>div{flex:1;min-width:0;display:grid;line-height:1.2}.mobile-call b{font-size:17px;font-weight:800;font-stretch:85%}.mobile-call small{font-size:12.5px;color:var(--inv-muted)}
.mobile-call>div{flex:0 1 auto}.mobile-call .btn{flex:1 1 60%;min-height:54px;padding:0 20px;font-size:18px;font-weight:800}
.sombre .menu nav{box-shadow:0 12px 40px #000a;border:1px solid var(--border)}.sombre footer{border-top:1px solid var(--border)}
@media(min-width:768px){.mobile-call{display:none}}
@media(max-width:767.98px){body.has-call{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.profile{grid-template-columns:1fr}.name{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}