/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:900;background:#fff;color:var(--c-primary);border-bottom:1px solid var(--c-line);transition:background .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.site-header--overlay{position:fixed;left:0;right:0;background:transparent;color:#fff;border-color:rgba(255,255,255,.08)}
.site-header--overlay.is-scrolled{background:rgba(0,0,0,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.site-header.is-scrolled:not(.site-header--overlay){box-shadow:0 8px 30px rgba(0,0,0,.05)}
.topbar{font-family:var(--f-body);font-weight:300;font-size:12px;letter-spacing:.03em;background:var(--c-primary);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.site-header--overlay .topbar{background:transparent}
.site-header--overlay.is-scrolled .topbar{display:none}
.topbar__inner{display:flex;justify-content:center;align-items:center;min-height:var(--topbar-h);gap:var(--sp-6);position:relative}
.topbar__infos{display:flex;gap:30px;flex-wrap:wrap;justify-content:center}
.topbar__item{display:inline-flex;align-items:center;gap:8px;color:#fff;opacity:.92}
.topbar__item:hover{color:#fff;opacity:1}
.topbar__icon{width:12px;height:12px;fill:var(--c-accent);flex:0 0 auto}
.topbar .lang-switcher{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-8);min-height:var(--header-h)}
.brand-logo,.site-header .brand-logo{display:inline-flex;align-items:center;flex:0 0 auto}
.site-header .brand-logo__img,.brand-logo__img{height:40px;width:auto;max-width:none}
.site-footer .brand-logo__img{height:56px;width:auto;max-width:none}
body.linktree .brand-logo__img{height:48px;width:auto;max-width:none}
.brand-text{font-family:var(--f-heading);font-size:var(--fs-lg);letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.nav{margin-left:auto}
.nav-list{display:flex;gap:40px;list-style:none;align-items:center}
.nav-item{position:relative}
.nav-link{white-space:nowrap;font-family:var(--f-heading);font-size:12px;font-weight:400;letter-spacing:1px;text-transform:uppercase;padding:var(--sp-2) 0;display:inline-block;position:relative;transition:color .3s}
.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--c-accent);transition:right .4s var(--ease)}
.nav-item:hover>.nav-link::after,.nav-item.is-current>.nav-link::after{right:0}
.nav-link:hover,.nav-item.is-current>.nav-link{color:var(--c-accent)}
.nav-sub-toggle{display:none}
.nav-sub{position:absolute;top:100%;left:0;min-width:220px;background:#fff;color:var(--c-primary);padding:10px;list-style:none;box-shadow:0 5px 15px rgba(0,0,0,.1);opacity:0;visibility:hidden;transform:translateY(8px);transition:all .3s var(--ease)}
.nav-item:hover>.nav-sub,.nav-item:focus-within>.nav-sub{opacity:1;visibility:visible;transform:none}
.nav-sub .nav-link{display:block;padding:12px 15px;font-family:var(--f-body);font-weight:300;letter-spacing:1px;color:var(--c-dark)}
.nav-sub .nav-link::after{display:none}
.nav-sub .nav-link:hover{color:var(--c-accent)}
.header__actions{display:flex;align-items:center;gap:var(--sp-4);flex:0 0 auto}
.header__cta{padding:.7em 1.2em}
.nav-toggle{display:none;width:44px;height:44px;background:none;border:0;flex-direction:column;justify-content:center;gap:5px;padding:8px;color:inherit}
.nav-toggle span{display:block;height:1.5px;background:currentColor;transition:transform .3s,opacity .3s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav-mobile{position:fixed;inset:0;background:var(--c-light);color:var(--c-dark);overflow-y:auto;padding-block:calc(var(--header-h) + var(--sp-6)) var(--sp-8);z-index:899}
.nav-mobile__list{list-style:none}
.nav-mobile__list .nav-item{border-bottom:1px solid var(--c-line)}
.nav-mobile__list .nav-link{display:block;padding:16px 0;font-size:12px;font-family:var(--f-body);font-weight:300}
.nav-mobile__list .nav-link::after{display:none}
.nav-mobile__list .nav-sub{position:static;opacity:1;visibility:visible;transform:none;background:transparent;box-shadow:none;padding:0 0 var(--sp-3) 15px;display:none}
.nav-mobile__list .nav-item.is-open>.nav-sub{display:block}
.nav-mobile__list .nav-sub-toggle{display:inline-block;position:absolute;right:0;top:10px;width:32px;height:32px;background:none;border:0;color:inherit}
.nav-mobile__list .nav-sub-toggle::before{content:"+"}
.nav-mobile__list .is-open>.nav-sub-toggle::before{content:"–"}
.nav-mobile__footer{margin-top:var(--sp-8);display:grid;gap:var(--sp-4)}
.nav-mobile__showroom{font-size:var(--fs-sm);line-height:1.8;opacity:.85}
body.nav-open .site-header{background:var(--c-light);color:var(--c-dark)}
body.nav-open .site-header .topbar{display:none}
@media (max-width:1180px){.nav-list{gap:26px}}
@media (max-width:1024px){.nav{display:none}.nav-toggle{display:flex}.header__cta{display:none}.topbar__hours{display:none}.topbar .lang-switcher{display:none}}
@media (max-width:640px){.topbar__infos{gap:var(--sp-3)}.topbar__item:nth-child(2){display:none}:root{--topbar-h:34px;--header-h:64px}.site-header .brand-logo__img{height:34px}}

/* ---------- Footer ---------- */
.footer__col .nav-list{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}
.footer__col .nav-link{font-family:var(--f-body);text-transform:none;letter-spacing:0;font-weight:300;padding:0;font-size:var(--fs-sm)}
.footer__col .nav-link::after{display:none}
.nav-mobile .nav-list{flex-direction:column;align-items:stretch;gap:0}
.site-footer{background:var(--c-primary);color:#fff;padding-block:var(--sp-24) var(--sp-8);font-size:var(--fs-sm)}
.site-footer a:hover{color:var(--c-accent)}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:var(--sp-16);padding-bottom:var(--sp-16);border-bottom:1px solid var(--c-line-dark)}
.footer__coverage{opacity:.7;margin-top:var(--sp-6);max-width:400px;line-height:1.9}
.site-footer .footer__title{font-family:var(--f-heading);font-size:11px;font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--c-accent);margin-bottom:var(--sp-6)}
.footer__menu{list-style:none;display:grid;gap:var(--sp-3)}
.footer__showroom{display:grid;gap:3px;margin-bottom:var(--sp-6);opacity:.85;line-height:1.8}
.footer__showroom-name{font-family:var(--f-heading);font-weight:600;color:#fff;letter-spacing:.06em;text-transform:uppercase;font-size:12px}
.footer__hours{opacity:.6;margin-bottom:var(--sp-6)}
.has-floating-cta .footer__bottom{padding-right:280px}
@media (max-width:640px){.has-floating-cta .footer__bottom{padding-right:0;padding-bottom:56px}}
.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4);padding-top:var(--sp-8);font-size:12px;opacity:.6;letter-spacing:.02em}
.footer__legal{display:inline-flex;gap:.6em;list-style:none;margin-left:.6em}
.footer__legal li+li::before{content:"·";margin-right:.6em}
.site-footer--light{background:#fff;color:var(--c-text);border-top:1px solid var(--c-line)}
.site-footer--light .footer__grid{border-bottom-color:var(--c-line)}
.site-footer--light .footer__coverage{color:var(--c-muted);opacity:1}
.site-footer--light .footer__showroom-name{color:var(--c-primary)}
.site-footer--light .footer__showroom{color:var(--c-muted);opacity:1}
.site-footer--light .socials a{background:var(--c-dark);color:#fff;border-color:var(--c-dark)}
.site-footer--light .socials a:hover{background:var(--c-accent);border-color:var(--c-accent)}
.site-footer--light .footer__bottom{opacity:.7}
@media (max-width:960px){.footer__grid{grid-template-columns:1fr 1fr;gap:var(--sp-12)}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}

/* ---------- Bouton flottant ---------- */
.floating-cta{position:fixed;right:28px;bottom:28px;z-index:800;display:inline-flex;align-items:center;background:var(--c-accent);color:#fff;border:1px solid var(--c-accent);border-radius:999px;padding:6px 6px 6px 26px;font-family:var(--f-heading);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;box-shadow:0 0 10px rgba(173,146,113,.15);animation:armony-pulse 2s infinite;transition:transform .35s var(--ease),background .35s}
.floating-cta:hover{color:#fff;transform:translateY(-2px);background:var(--c-dark)}
.floating-cta__label{padding-right:18px}
.floating-cta__icon{width:44px;height:44px;border-radius:50%;background:var(--c-primary);color:var(--c-accent);display:inline-flex;align-items:center;justify-content:center;transition:background .35s}
.floating-cta:hover .floating-cta__icon{background:var(--c-accent);color:#fff}
.floating-cta__icon .icon{width:18px;height:18px;fill:currentColor}
@keyframes armony-pulse{0%,100%{box-shadow:0 0 10px rgba(173,146,113,.15)}50%{box-shadow:0 0 30px rgba(173,146,113,.4)}}
@media (max-width:640px){.floating-cta{right:14px;bottom:14px;padding:6px}.floating-cta__label{display:none}}
@media (prefers-reduced-motion:reduce){.floating-cta{animation:none}}

/* ---------- Héros ---------- */
.hero{position:relative;min-height:min(100vh,900px);display:flex;align-items:center;color:#fff;background:var(--c-dark);text-align:center}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__media img,.hero__video{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:armony-kenburns 18s ease-out forwards}
@keyframes armony-kenburns{to{transform:scale(1)}}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.65) 100%)}
.hero__inner{position:relative;padding-top:calc(var(--header-h) + var(--topbar-h) + var(--sp-16));padding-bottom:var(--sp-16);display:grid;justify-items:center}
.hero__inner .kicker{color:var(--c-accent);font-size:var(--fs-sm);letter-spacing:.3em}
.hero__inner .kicker::before,.hero__inner .kicker::after{content:"";width:36px;height:1px;background:currentColor;display:block}
.hero__title{max-width:18ch;font-size:var(--fs-display);font-weight:600;text-transform:uppercase;letter-spacing:.08em;line-height:1.08;margin-bottom:var(--sp-8);text-shadow:0 4px 30px rgba(0,0,0,.35)}
.hero__actions{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center}
.page-hero{position:relative;background:var(--c-primary);color:#fff;padding-block:var(--sp-24) var(--sp-16);text-align:center;overflow:hidden}
.page-hero--light{background:var(--c-light);color:var(--c-primary)}
.page-hero--sm{padding-block:var(--sp-16) var(--sp-12)}
.page-hero--lg{min-height:72vh;display:flex;align-items:center}
.page-hero--image{min-height:60vh;display:flex;align-items:center}
.page-hero__media{position:absolute;inset:0;overflow:hidden}
.page-hero__img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:armony-kenburns 18s ease-out forwards}
.page-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.45) 50%,rgba(0,0,0,.7) 100%)}
.page-hero__inner{position:relative;max-width:var(--container);display:grid;justify-items:center}
.page-hero__inner .breadcrumb{justify-content:center}
.page-hero__inner .kicker::before,.page-hero__inner .kicker::after{content:"";width:28px;height:1px;background:currentColor;display:block}
.page-hero__title{max-width:20ch;font-size:var(--fs-3xl);text-transform:uppercase;letter-spacing:.08em;line-height:1.12}
.page-hero--lg .page-hero__title{font-size:var(--fs-display)}
.page-hero__subtitle{max-width:60ch;font-size:var(--fs-md);opacity:.85;line-height:1.8}
.page-hero__subtitle p:last-child{margin-bottom:0}
.page-hero__actions{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-8)}
.site-header--overlay ~ .site-main .page-hero{padding-top:calc(var(--header-h) + var(--topbar-h) + var(--sp-16))}

/* ---------- Split (image / texte) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-20);align-items:center}
.split--reverse .split__media{order:2}
.split__media{overflow:hidden}
.split__media img{width:100%;transition:transform 1.6s var(--ease)}
.split:hover .split__media img{transform:scale(1.03)}
.split__body .btn{margin-top:var(--sp-4)}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:var(--sp-10,2.5rem)}.split--reverse .split__media{order:0}}

/* ---------- Collection ---------- */
.collection-intro__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--sp-20);align-items:start}
.collection-intro__aside{display:grid;gap:var(--sp-8);padding-top:var(--sp-2)}
.collection-intro__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
@media (max-width:860px){.collection-intro__grid{grid-template-columns:1fr;gap:var(--sp-12)}}
.split--single{grid-template-columns:1fr;max-width:var(--container-narrow)}
.portraits .section-head{color:#fff}
.portrait{padding-block:var(--sp-20);border-top:1px solid var(--c-line-dark)}
.portrait:first-of-type{border-top:0}
.portrait__head{text-align:center;margin-bottom:var(--sp-12)}
.portrait__head .kicker{font-size:var(--fs-sm);letter-spacing:.35em;font-weight:300;margin-bottom:var(--sp-3)}
.portrait__models{font-size:var(--fs-2xl);text-transform:uppercase;letter-spacing:.16em;margin:0}
.portrait__subtitle{opacity:.7;margin-top:var(--sp-3)}
.portrait__cover{display:block;overflow:hidden;aspect-ratio:16/9;margin-bottom:var(--sp-12)}
.portrait__cover img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--ease)}
.portrait__cover:hover img{transform:scale(1.03)}
.portrait__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-16);align-items:start;margin-bottom:var(--sp-12)}
.portrait__text{font-size:var(--fs-md);line-height:1.85;opacity:.9}
.portrait__finishes-wrap{border-left:1px solid var(--c-line-dark);padding-left:var(--sp-8)}
.portrait__finishes-title{display:block;font-family:var(--f-heading);font-size:11px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--c-accent);margin-bottom:var(--sp-4)}
.portrait__finishes{display:grid;gap:var(--sp-3);margin:0;font-size:var(--fs-sm)}
.portrait__finishes div{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);border-bottom:1px solid var(--c-line-dark);padding-bottom:var(--sp-3)}
.portrait__finishes dt{opacity:.6;font-size:12px;letter-spacing:.04em}
.portrait__finishes dd{margin:0}
.portrait__finishes dd strong{font-family:var(--f-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:12px}
.portrait__finishes dd em{display:block;font-style:normal;opacity:.65;font-size:12px}
.portrait__gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:260px;grid-auto-flow:dense;gap:var(--sp-4)}
.portrait__thumb{display:block;overflow:hidden;position:relative}
.portrait__thumb--tall{grid-row:span 2}
.portrait__thumb--hidden{display:none}
.portrait__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),opacity .5s}
.portrait__thumb:hover img{transform:scale(1.05)}
.download-list--inline{display:flex;flex-wrap:wrap;gap:var(--sp-8);border:0;justify-content:center}
.download-list--inline li{border:0}
@media (max-width:900px){.portrait__grid{grid-template-columns:1fr;gap:var(--sp-8)}.portrait__finishes-wrap{border-left:0;padding-left:0;border-top:1px solid var(--c-line-dark);padding-top:var(--sp-6)}.portrait__gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}}
@media (max-width:560px){.portrait__gallery{grid-template-columns:1fr;grid-auto-rows:240px}.portrait__thumb--tall{grid-row:span 1}}

/* ---------- Bandeau CTA ---------- */
.cta-band{background:var(--c-primary);color:#fff;padding-block:var(--sp-20);position:relative;overflow:hidden}
.cta-band__media{position:absolute;inset:0}
.cta-band__media img{width:100%;height:100%;object-fit:cover}
.cta-band__media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.75)}
.cta-band__inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-12);flex-wrap:wrap}
.cta-band__title{margin-bottom:var(--sp-3);font-size:var(--fs-2xl);text-transform:none;letter-spacing:0;font-family:var(--f-body);font-weight:600}
.cta-band__text{margin:0;max-width:56ch;opacity:.8;font-size:var(--fs-base)}
.cta-band__actions{display:flex;gap:var(--sp-4);flex-wrap:wrap}

/* ---------- 404 ---------- */
.error-404{position:relative;min-height:calc(100vh - var(--header-h) - var(--topbar-h));display:flex;align-items:center;background:var(--c-primary);color:#fff;overflow:hidden;text-align:center}
.error-404__media{position:absolute;inset:0}
.error-404__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:armony-kenburns 20s ease-out forwards}
.error-404__media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,0,0,.55) 0%,rgba(0,0,0,.82) 100%)}
.error-404__inner{position:relative;padding-block:var(--sp-24);max-width:820px;display:grid;justify-items:center}
.error-404__code{font-family:var(--f-heading);font-weight:300;font-size:var(--fs-sm);letter-spacing:.5em;color:var(--c-accent);display:inline-flex;align-items:center;gap:20px;margin-bottom:var(--sp-8)}
.error-404__code::before,.error-404__code::after{content:"";width:48px;height:1px;background:var(--c-accent);opacity:.7}
.error-404__title,.error-404 h1{color:#fff;font-size:var(--fs-3xl);text-transform:uppercase;letter-spacing:.1em;max-width:16ch;margin-bottom:var(--sp-6)}
.error-404__text{opacity:.8;max-width:52ch;font-size:var(--fs-md);margin-bottom:var(--sp-12)}
.error-404__actions{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--sp-16)}
.error-404 .search-form{margin:0 auto;width:min(420px,100%);border-bottom-color:rgba(255,255,255,.4);color:#fff}
.error-404 .search-form:focus-within{border-bottom-color:var(--c-accent)}

/* ---------- Contact / RDV ---------- */
.contact-layout,.booking-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--sp-20);align-items:start}
.contact-layout__aside,.booking-layout__aside{display:grid;gap:var(--sp-8)}
.contact-rdv{background:var(--c-primary);color:#fff;padding:var(--sp-12)}
.contact-rdv h2{font-size:var(--fs-lg);letter-spacing:.08em}
.contact-rdv p{opacity:.8}
.contact-showroom{padding:var(--sp-8) 0;border-top:1px solid var(--c-line)}
.contact-showroom h3{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.12em}
.contact-showroom address{line-height:2;margin-bottom:var(--sp-3);color:var(--c-muted)}
.contact-showroom address a{color:var(--c-text)}
.aside__title{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.12em}
.aside__steps{padding-left:1.2em;display:grid;gap:var(--sp-3);margin-bottom:var(--sp-8);color:var(--c-muted)}
.aside__showroom{line-height:1.9;padding:var(--sp-6);background:var(--c-light)}
.aside__alt a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.contact-layout,.booking-layout{grid-template-columns:1fr;gap:var(--sp-12)}}

/* ---------- Article ---------- */
.post-share{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--c-line);font-family:var(--f-heading);font-size:11px;letter-spacing:var(--tracking);text-transform:uppercase;color:var(--c-muted)}
.post-share a{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--c-line);border-radius:50%;font-size:11px;font-weight:600;color:var(--c-text);transition:all .3s}
.post-share a:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.post-terms{margin-top:var(--sp-6)}

/* ---------- Linktree ---------- */
body.linktree{background:var(--c-primary);color:#fff;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center}
.linktree__wrap{max-width:420px;width:100%;padding:var(--sp-8) var(--gutter);display:grid;gap:var(--sp-4);justify-items:center}
.linktree__media img{width:120px;height:120px;object-fit:cover;border-radius:50%}
.linktree__links{display:grid;gap:var(--sp-3);width:100%}
.linktree__links .btn{width:100%}
