/* ==========================================================================
   Thème « Le Passage » · conciergerie.luxe
   Luxe discret et architectural : vert encre, ivoire, laiton mat, pierre.
   ========================================================================== */

@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Gelasio';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gelasio-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Gelasio';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/gelasio-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Gelasio';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/gelasio-latin-500-normal.woff2) format('woff2')}

:root{
  --ink:#183C34;--deep:#102D26;--night:#0A1E19;
  --ivory:#F5F1E8;--paper:#EDE7DA;--sand:#E3DBCB;--white:#FBF9F4;
  --brass:#B39B70;--brass-d:#8A7857;--brass-l:#D9C6A1;
  --stone:#736E64;--text:#2B2F2B;
  --line:rgba(24,60,52,.14);--line-l:rgba(245,241,232,.22);
  --serif:Georgia,'Gelasio','Times New Roman',serif;
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --wrap:1240px;--prose:740px;--gut:clamp(20px,5vw,72px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --hdr:96px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--text);font:400 17px/1.75 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;height:auto}
img{display:block}
a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--brass-d)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.12;margin:0 0 .6em;letter-spacing:-.02em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--brass-d)}
p{margin:0 0 1.1em}
strong{font-weight:500;color:var(--ink)}
::selection{background:var(--brass-l);color:var(--deep)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ivory);color:var(--ink);padding:12px 18px}
.skip:focus{top:14px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.eyebrow{display:flex;align-items:center;gap:14px;font:500 11.5px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--brass-d);margin:0 0 22px}
.eyebrow::before{content:'';width:34px;height:1px;background:currentColor;flex-shrink:0}
.eyebrow.center{justify-content:center}
.btn{display:inline-flex;align-items:center;gap:28px;min-height:56px;padding:16px 26px;background:var(--ink);color:var(--ivory);font:500 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);transition:background .3s var(--ease),color .3s,border-color .3s}
.btn:hover{background:var(--deep);color:var(--ivory)}
.btn .arr{display:inline-block;transition:transform .3s var(--ease);font-size:16px;letter-spacing:0}
.btn:hover .arr{transform:translate(3px,-3px)}
.btn-ivory{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn-ivory:hover{background:#E9E1D1;color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ivory);border-color:rgba(245,241,232,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.tlink{display:inline-flex;gap:10px;align-items:center;font:500 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding-bottom:9px;border-bottom:1px solid var(--brass)}

/* ── Header ─────────────────────────────────────────────────────────────── */
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--hdr);transition:background .45s var(--ease),height .45s var(--ease),box-shadow .45s,color .45s;color:var(--ivory)}
.site-header::after{content:'';position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:1px;background:var(--line-l);transition:opacity .4s}
.hdr-in{height:100%;max-width:1440px;margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;gap:36px}
.logo{display:block;flex-shrink:0;line-height:0;position:relative}
.logo img{width:clamp(200px,20vw,270px);height:auto;transition:opacity .4s}
.logo .logo-ink{position:absolute;inset:0;opacity:0}
.nav{margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:34px;align-items:center}
.nav a{color:inherit;text-decoration:none;font:400 13.5px/1 var(--sans);letter-spacing:.06em;padding:10px 0;position:relative}
.nav a::after{content:'';position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--brass);transition:right .35s var(--ease)}
.nav a:hover::after,.nav li.active>a::after{right:0}
.nav li{position:relative}
.nav .sub{position:absolute;top:100%;left:-22px;min-width:260px;background:var(--white);padding:14px 0;box-shadow:0 22px 50px rgba(10,30,25,.16);display:block;opacity:0;visibility:hidden;transform:translateY(8px);transition:.3s var(--ease)}
.nav li:hover>.sub,.nav li:focus-within>.sub{opacity:1;visibility:visible;transform:none}
.nav .sub li{display:block}
.nav .sub a{display:block;color:var(--ink);padding:10px 22px;font-size:13.5px}
.nav .sub a::after{display:none}
.nav .sub a:hover{background:var(--ivory);color:var(--brass-d)}
.hdr-cta{display:inline-flex;align-items:center;gap:14px;color:inherit;text-decoration:none;border:1px solid currentColor;padding:13px 20px;font:500 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;transition:background .3s,color .3s,border-color .3s;white-space:nowrap}
.hdr-cta:hover{background:rgba(255,255,255,.12);color:inherit}
.nav-toggle{display:none;background:none;border:0;color:inherit;width:44px;height:44px;padding:10px;cursor:pointer;margin-left:auto}
.nav-toggle span{display:block;height:1px;background:currentColor;margin:6px 0;transition:.3s}
.is-scrolled .site-header,.hdr-solid .site-header{background:rgba(245,241,232,.97);color:var(--ink);height:76px;box-shadow:0 10px 30px rgba(10,30,25,.07)}
.is-scrolled .site-header::after,.hdr-solid .site-header::after{opacity:0}
.is-scrolled .logo .logo-iv,.hdr-solid .logo .logo-iv{opacity:0}
.is-scrolled .logo .logo-ink,.hdr-solid .logo .logo-ink{opacity:1}
.is-scrolled .hdr-cta,.hdr-solid .hdr-cta{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.is-scrolled .hdr-cta:hover,.hdr-solid .hdr-cta:hover{background:var(--deep)}


/* ── Hero accueil ───────────────────────────────────────────────────────── */
.hero{position:relative;isolation:isolate;min-height:720px;height:100svh;max-height:1180px;color:var(--ivory);background:var(--deep);overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;animation:scene 2.6s var(--ease) both}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,28,23,.80),rgba(9,28,23,.42) 48%,rgba(9,28,23,.08) 82%),linear-gradient(0deg,rgba(9,25,20,.72),transparent 38%,transparent 74%,rgba(9,25,20,.5))}
.hero-copy{position:absolute;left:var(--gut);right:var(--gut);top:50%;transform:translateY(-46%);max-width:1180px}
.hero .eyebrow{color:#EEE6D6}
.hero .eyebrow::before{background:var(--brass)}
.hero h1{color:var(--ivory);font-size:clamp(52px,7.6vw,124px);line-height:1.02;letter-spacing:-.035em;margin:0;max-width:1080px}
.hero h1 em{color:#E1CCAA}
.hero h1 .kicker{display:block;font:500 12px/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#EEE6D6;margin:0 0 30px}
.hero-intro{display:flex;align-items:flex-end;gap:64px;margin-top:38px;flex-wrap:wrap}
.hero-intro p{font-size:16.5px;line-height:1.8;color:#EEE9DF;margin:0;max-width:430px}
.hero-intro p strong{color:#fff;font-weight:500}
.hero-bottom{position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:92px;border-top:1px solid var(--line-l);display:flex;align-items:center;justify-content:space-between;gap:20px;font:500 10.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#E9E2D3}
.hero-bottom a{color:inherit;text-decoration:none;display:flex;align-items:center;gap:16px;letter-spacing:.12em}
.hero-bottom a span{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.4);border-radius:50%;font-size:16px;animation:bob 2.4s ease-in-out infinite}
.hero-bottom .ed{color:#E1CCAA}
.vnote{position:absolute;right:22px;top:44%;writing-mode:vertical-rl;font:500 9.5px/1 var(--sans);letter-spacing:.3em;color:#E9E2D3;text-transform:uppercase}

/* ── Hero pages intérieures ─────────────────────────────────────────────── */
.phero{position:relative;isolation:isolate;color:var(--ivory);background:var(--deep);min-height:clamp(560px,72svh,780px);height:auto;display:flex;align-items:flex-end;overflow:hidden}
.phero-media{position:absolute;inset:0;z-index:-2}
.phero-media img{width:100%;height:100%;object-fit:cover;animation:scene 2.4s var(--ease) both}
.phero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,28,23,.82),rgba(9,28,23,.45) 55%,rgba(9,28,23,.15)),linear-gradient(0deg,rgba(9,25,20,.6),transparent 50%,rgba(9,25,20,.45))}
.phero-in{width:100%;max-width:1440px;margin:0 auto;padding:calc(var(--hdr) + 40px) var(--gut) 70px}
.phero h1{color:var(--ivory);font-size:clamp(40px,5.4vw,84px);line-height:1.04;letter-spacing:-.03em;max-width:980px;margin:0 0 26px}
.phero h1 em{color:#E1CCAA}
.phero .chapo{max-width:640px;color:#EEE9DF;font-size:17.5px;line-height:1.8;margin:0 0 30px}
.phero .chapo strong{color:#fff}
.phero .eyebrow{color:#EEE6D6}
.phero .eyebrow::before{background:var(--brass)}
.phero-plain{background:var(--ivory);color:var(--text);height:auto;min-height:0}
.phero-plain .phero-in{padding-top:calc(var(--hdr) + 70px);padding-bottom:50px;border-bottom:1px solid var(--line)}
.phero-plain h1{color:var(--ink)}
.phero-plain h1 em{color:var(--brass-d)}
.phero-plain .chapo{color:var(--stone)}
.phero-plain .chapo strong{color:var(--ink)}
.phero-plain .eyebrow{color:var(--brass-d)}
.crumbs{margin:0 0 30px}
.crumbs nav ol,.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;font:500 11px/1.4 var(--sans)!important;letter-spacing:.16em;text-transform:uppercase}
.crumbs a,.crumbs span,.crumbs li{color:inherit!important;opacity:.85;text-decoration:none!important}
.crumbs a:hover{opacity:1}
.crumbs [aria-current] span{opacity:.6}
.crumbs .breadcrumb{background:none!important;padding:0!important;margin:0!important;border:0!important}
.phero .crumbs{color:#E9E2D3}
.phero-plain .crumbs{color:var(--stone)}
.phero-meta{display:flex;flex-wrap:wrap;gap:22px;font:500 11.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#E9E2D3;margin-top:8px}
.phero-plain .phero-meta{color:var(--stone)}

/* ── Contenu éditorial ──────────────────────────────────────────────────── */
.content{padding:90px var(--gut) 40px}
.prose{max-width:var(--prose);margin:0 auto}
.prose>*{max-width:var(--prose)}
.prose h2{font-size:clamp(32px,3.4vw,48px);margin:2.1em 0 .7em;scroll-margin-top:110px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:clamp(23px,2.1vw,29px);margin:1.8em 0 .6em}
.prose h4{font-size:20px;margin:1.6em 0 .5em}
.prose p,.prose li{font-size:17.5px;line-height:1.85;color:#30352F}
.prose ul,.prose ol{padding-left:1.2em;margin:0 0 1.3em}
.prose li{margin:.35em 0}
.prose ul li::marker{color:var(--brass)}
.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brass)}
.prose a strong{color:inherit}
.prose em{font-style:italic}
.prose .lead,.prose .cl-lead{font-family:var(--serif);font-size:clamp(21px,2vw,25px);line-height:1.6;color:var(--ink)}
.prose img{width:100%;height:auto}
.prose figure{margin:2.4em 0}
.prose figcaption{font-size:13px;color:var(--stone);margin-top:12px;letter-spacing:.02em}
.prose hr{border:0;height:1px;background:var(--line);margin:3em 0}
.prose blockquote{margin:2.2em 0;padding:0 0 0 28px;border-left:1px solid var(--brass);font-family:var(--serif);font-size:23px;line-height:1.55;color:var(--ink);font-style:italic}

/* Bandes pleine largeur (sortent de la colonne de lecture) */
.bleed{width:100vw;max-width:none!important;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:96px var(--gut)}
.prose>.bleed{max-width:none}
.bleed>.in{max-width:var(--wrap);margin:0 auto}
.bleed>.in.narrow{max-width:var(--prose)}
.band-ink{background:var(--ink);color:#DCE2DB}
.band-ink h2,.band-ink h3,.band-ink h4{color:var(--ivory)}
.band-ink h2 em,.band-ink h3 em{color:#D3BC92}
.band-ink p,.band-ink li{color:#CBD3CB}
.band-ink strong{color:var(--ivory)}
.band-ink a{color:var(--ivory)}
.band-ink .eyebrow{color:#D5C49F}
.band-deep{background:var(--deep)}
.band-paper{background:var(--paper)}
.band-white{background:var(--white)}
.prose>.bleed:first-child{margin-top:-90px}
.prose>.bleed+.bleed{margin-top:0}
.prose>.bleed{margin-top:2.6em;margin-bottom:2.6em}
.prose>.bleed:last-child{margin-bottom:-40px}

/* Titres dans les bandes hors colonne de lecture */
.bleed>.in>h2,.bleed>.in.narrow>h2{font-size:clamp(32px,3.6vw,54px);margin:0 0 .6em}
.bleed>.in.narrow>p{font-size:17px;line-height:1.85}

/* Deux colonnes : image + texte */
.cl-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:center}
.cl-split.rev>:first-child{order:2}
.cl-split .media{position:relative;overflow:hidden}
.cl-split .media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.6s var(--ease)}
.cl-split .media:hover img{transform:scale(1.035)}
.cl-split .media.land img{aspect-ratio:3/2}
.cl-split .media.arch img{border-radius:400px 400px 0 0}
.cl-split h2{margin-top:0}

/* Cartes */
.cl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;margin:2em 0}
.cl-card{background:var(--white);border:1px solid var(--line);padding:34px 30px;position:relative;transition:transform .5s var(--ease),box-shadow .5s}
.cl-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(10,30,25,.09)}
.cl-card h3{font-size:24px;margin:0 0 .5em}
.cl-card p{font-size:15.5px;line-height:1.75;margin:0}
.cl-card .num{display:block;font:italic 40px/1 var(--serif);color:var(--brass);margin-bottom:22px}
.cl-card .ico{width:46px;height:46px;margin-bottom:22px;color:var(--brass-d)}
.band-ink .cl-card{background:rgba(255,255,255,.04);border-color:var(--line-l)}
.band-ink .cl-card p{color:#C3CCC3}

/* Cartes photo (sous-pages, destinations) */
.cl-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:34px;margin:2.4em 0}
.tile{display:block;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--line);overflow:hidden;transition:box-shadow .5s,transform .5s var(--ease)}
.tile:hover{transform:translateY(-5px);box-shadow:0 26px 54px rgba(10,30,25,.12);color:inherit}
.tile-img{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--sand)}
.tile-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.tile:hover .tile-img img{transform:scale(1.05)}
.tile-body{padding:28px 28px 30px}
.tile-body .k{font:500 10.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brass-d)}
.tile-body h3{font-size:25px;margin:.5em 0 .45em}
.tile-body p{font-size:15px;line-height:1.7;color:var(--stone);margin:0 0 18px}
.tile-body .go{font:500 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--brass);padding-bottom:7px}

.prose a.tile{text-decoration:none;color:inherit}
.prose .tile-body p{font-size:15px;line-height:1.7;color:var(--stone)}
.prose .tile-body h3{margin:.5em 0 .45em}

/* Étapes */
.cl-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:44px;margin:2.4em 0;counter-reset:st}
.cl-steps>div{border-top:1px solid var(--line);padding-top:26px;counter-increment:st}
.cl-steps>div::before{content:'0' counter(st);display:block;font:italic 50px/1 var(--serif);color:#A08C66;margin-bottom:24px}
.cl-steps h3{font-size:25px;margin:0 0 .55em}
.cl-steps p{font-size:15.5px;line-height:1.75;margin:0}
.band-ink .cl-steps>div{border-color:var(--line-l)}
.band-ink .cl-steps>div::before{color:#C6AE84}

/* Tableaux */
.prose table,.cl-table{width:100%;border-collapse:collapse;margin:2.2em 0;font-size:15.5px;background:var(--white)}
.prose th,.prose td{padding:16px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.6}
.prose thead th{background:var(--ink);color:var(--ivory);font:500 11.5px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;border:0}
.prose tbody tr:nth-child(even) td{background:rgba(237,231,218,.45)}
.prose td:first-child{font-weight:500;color:var(--ink)}
.tbl-wrap{overflow-x:auto;margin:2.2em 0}
.tbl-wrap table{margin:0;min-width:520px}

/* Encarts */
.cl-note{background:var(--white);border:1px solid var(--line);border-left:2px solid var(--brass);padding:28px 32px;margin:2.2em 0}
.cl-note p:last-child{margin:0}
.cl-note .t{display:block;font:500 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brass-d);margin-bottom:10px}
.cl-check{list-style:none!important;padding:0!important}
.cl-check li{position:relative;padding-left:34px}
.cl-check li::before{content:'';position:absolute;left:2px;top:.55em;width:14px;height:16px;border:1px solid var(--brass);border-bottom:0;border-radius:8px 8px 0 0}

/* Infographies SVG */
.cl-info{margin:2.6em 0;background:var(--white);border:1px solid var(--line);padding:clamp(22px,4vw,44px)}
.cl-info svg{width:100%;height:auto;display:block}
.cl-info figcaption,.cl-info .cap{font-size:13px;color:var(--stone);margin-top:16px;text-align:center}
.band-ink .cl-info{background:transparent;border-color:var(--line-l)}
.band-ink .cl-info figcaption,.band-ink figcaption{color:#C3CCC3}
svg .draw{stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200)}
.js .in-view svg .draw,.js svg.in-view .draw{animation:draw 2.4s var(--ease) forwards}
svg .fade{opacity:0}
.js .in-view svg .fade{animation:fadein .9s var(--ease) forwards}
.no-js svg .draw{stroke-dashoffset:0}
.no-js svg .fade{opacity:1}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:20px;padding:24px 0;font:400 21px/1.45 var(--serif);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';margin-left:auto;font:300 26px/1 var(--sans);color:var(--brass-d);transition:transform .35s var(--ease)}
.faq[open] summary::after{transform:rotate(45deg)}
.faq>div,.faq>p{padding:0 50px 22px 0}
.faq>div p:last-child{margin:0}
.band-ink .faq{border-color:var(--line-l)}
.band-ink .faq summary{color:var(--ivory)}

/* Ruban */
.ribbon{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px var(--gut);border-bottom:1px solid var(--line);background:var(--ivory);overflow:hidden}
.ribbon span{font:500 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.ribbon i{font:italic 26px/1 var(--serif);color:var(--brass-d)}

/* Bloc accueil : éditorial */
.editorial{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;align-items:center}
.editorial h2{font-size:clamp(38px,4.6vw,74px);margin:0}

/* Encounter (photo portrait + services) */
.encounter{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--ivory)}
.enc-img{position:relative;min-height:820px;overflow:hidden}
.enc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 46%;transition:transform 1.8s var(--ease)}
.enc-img:hover img{transform:scale(1.035)}
.enc-img::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(16,45,38,.6))}
.enc-img .lab{position:absolute;z-index:1;bottom:60px;left:11%;font:clamp(46px,5vw,70px)/1.04 var(--serif);letter-spacing:-.02em;color:var(--ivory)}
.enc-img .lab em{color:#E2CDA9}
.enc-img .cap{position:absolute;z-index:1;top:40px;left:34px;writing-mode:vertical-rl;font:500 9.5px/1 var(--sans);letter-spacing:.28em;color:#F9F3E8;text-transform:uppercase}
.enc-copy{padding:110px 12% 80px}
.enc-copy h2{color:var(--ivory);font-size:clamp(36px,4vw,62px)}
.enc-copy h2 em{color:#C6AE84}
.enc-copy>p{color:#C9D0C9;font-size:16px;max-width:430px}
.enc-copy .eyebrow{color:#D5C49F}
.svc{margin:38px 0 30px}
.svc details{border-top:1px solid var(--line-l)}
.svc details:last-child{border-bottom:1px solid var(--line-l)}
.svc summary{display:flex;align-items:center;gap:18px;padding:22px 0;font:22px/1.3 var(--serif);cursor:pointer;list-style:none;color:var(--ivory)}
.svc summary::-webkit-details-marker{display:none}
.svc summary .n{font:500 10.5px var(--sans);color:#C6AE84;letter-spacing:.1em}
.svc summary b{font:300 22px/1 var(--sans);margin-left:auto;transition:transform .3s;color:#C6AE84}
.svc details[open] summary b{transform:rotate(45deg)}
.svc details p{padding:0 0 22px 34px;font-size:15px;color:#C9D0C9;max-width:470px;margin:0}
.enc-copy small{display:block;font-size:12.5px;color:#AEBCB3;margin-top:28px;max-width:430px;line-height:1.6}
.enc-copy .tlink{color:var(--ivory)}

/* Appel final (portail) */
.portal{position:relative;overflow:hidden;isolation:isolate;text-align:center;background:var(--deep);color:var(--ivory);padding:120px var(--gut) 80px}
.portal::before,.portal::after{content:'';position:absolute;z-index:-1;left:50%;transform:translateX(-50%);border:1px solid rgba(179,155,112,.24);border-radius:340px 340px 0 0;height:1100px}
.portal::before{width:min(640px,90%);top:48px}
.portal::after{width:min(560px,78%);top:90px;border-color:rgba(179,155,112,.1)}
.portal .sym{width:60px;margin:0 auto 32px;color:var(--brass)}
.portal .eyebrow{color:#C6AE84}
.portal h2{color:var(--ivory);font-size:clamp(38px,5vw,80px);line-height:1.1;margin:0 auto;max-width:980px}
.portal h2 em{color:#C6AE84}
.portal p{margin:28px auto 38px;color:#C9D0C9;font-size:16.5px;max-width:560px}
.portal p strong{color:var(--ivory)}
.portal .foot{margin:62px 0 0;font:500 9.5px/1.6 var(--sans);letter-spacing:.24em;color:#9FAA9F;text-transform:uppercase}
.portal-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 34px;margin-top:34px;font:500 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#D9C6A1}
.portal-badges span::before{content:'';display:inline-block;width:6px;height:6px;border:1px solid var(--brass);border-radius:50%;margin-right:10px;vertical-align:middle}

/* Liste blog */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:40px 34px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 50px}
.chips a{border:1px solid var(--line);padding:10px 18px;font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink);transition:.3s}
.chips a:hover,.chips a.on{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.pager{display:flex;justify-content:center;gap:8px;margin:60px 0 0}
.pager a,.pager span{min-width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);text-decoration:none;font-size:14px}
.pager .cur{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.author-box{display:flex;gap:22px;align-items:flex-start;border-top:1px solid var(--line);margin-top:60px;padding-top:34px}
.author-box .av{flex-shrink:0;width:190px;padding:14px 18px;border:1px solid var(--line);background:var(--white);display:grid;place-items:center}
.author-box .av img{display:block;width:100%;height:auto}
@media(max-width:640px){.author-box{flex-direction:column;gap:16px}.author-box .av{width:170px}}
.author-box p{font-size:15px;color:var(--stone);margin:0}
.author-box b{display:block;font:400 20px/1.3 var(--serif);color:var(--ink);margin-bottom:6px}

/* Sommaire */
.toc{background:var(--white);border:1px solid var(--line);padding:26px 30px;margin:0 0 3em}
.toc .t{font:500 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brass-d);margin-bottom:12px;display:block}
.toc ol{margin:0;padding-left:1.2em}
.toc li{font-size:15.5px;margin:.3em 0}
.toc a{text-decoration:none}

/* Formulaires natifs QuietCMS */
.lead-wrap{background:var(--white);border:1px solid var(--line);padding:clamp(26px,5vw,56px);margin:2.4em 0;position:relative}
.lead-wrap::before{content:'';position:absolute;top:-1px;left:-1px;right:-1px;height:3px;background:linear-gradient(90deg,var(--ink),var(--brass))}
.qcms-form-wrap{margin:0!important}
.qcms-form .qcms-row{gap:18px!important;margin-bottom:18px!important}
.qcms-label{font:500 12px/1.4 var(--sans)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)!important}
.qcms-req{color:var(--brass-d)!important}
.qcms-input{border:0!important;border-bottom:1px solid rgba(24,60,52,.3)!important;border-radius:0!important;background:transparent!important;padding:12px 2px!important;font:400 16.5px/1.4 var(--sans)!important;color:var(--text)!important}
textarea.qcms-input{border:1px solid rgba(24,60,52,.25)!important;padding:14px!important}
select.qcms-input{appearance:auto}
.qcms-input:focus{border-color:var(--brass)!important;box-shadow:0 1px 0 0 var(--brass)!important}
.qcms-section{border-top:1px solid var(--line)!important;padding-top:28px!important;margin-top:18px!important}
.qcms-section:first-child{border-top:0!important;padding-top:0!important;margin-top:0!important}
.qcms-section-title{font:400 27px/1.2 var(--serif)!important;color:var(--ink);margin:0 0 6px!important;letter-spacing:-.01em}
.qcms-section-title::before{content:attr(data-n)}
.qcms-field-help{font-size:14px!important;color:var(--stone)!important}
.qcms-checkbox-group,.qcms-radio-group{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 18px!important;margin-top:6px}
.qcms-checkbox-label,.qcms-radio-label{font-size:15.5px!important;align-items:flex-start!important;line-height:1.5}
.qcms-checkbox-label input,.qcms-radio-label input{accent-color:var(--ink);width:17px;height:17px;margin-top:3px;flex-shrink:0}
.qcms-submit{background:var(--ink)!important;color:var(--ivory)!important;border-radius:0!important;padding:20px 34px!important;font:500 12.5px/1 var(--sans)!important;letter-spacing:.16em;text-transform:uppercase;min-height:58px}
.qcms-submit:hover{background:var(--deep)!important}
.qcms-alert-success{background:#EEF3EC!important;border-color:#BFD3C4!important;color:var(--ink)!important;font-size:16px!important;padding:20px 24px!important;border-radius:0!important}
.qcms-html-block p{font-size:13.5px;color:var(--stone);margin:0}

/* champs en deux colonnes */
.qcms-row-multi .qcms-col-half{flex:1 1 calc(50% - 9px)!important;min-width:220px!important}
.qcms-row-multi .qcms-col-third{flex:1 1 calc(33% - 12px)!important}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-footer{background:var(--night);color:#B9C3BB;padding:80px var(--gut) 34px;font-size:14.5px}
.ft-in{max-width:var(--wrap);margin:0 auto}
.ft-top{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end;padding-bottom:50px;border-bottom:1px solid rgba(245,241,232,.12)}
.ft-top img{width:270px;margin-bottom:26px}
.ft-top p{max-width:470px;line-height:1.75;margin:0;color:#B9C3BB}
.ft-top p strong{color:var(--ivory)}
.ft-sign{font:italic clamp(28px,3vw,40px)/1.2 var(--serif);color:#D9C6A1;text-align:right;margin:0}
.ft-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;padding-top:28px;font-size:13px;color:#8E9B92}
.ft-bot ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 28px;margin:0;padding:0}
.ft-bot a{color:#C9D0C9;text-decoration:none}
.ft-bot a:hover{color:var(--ivory)}
.ft-disc{font-size:12px;color:#7E8B82;margin:26px 0 0;line-height:1.6;max-width:880px}

/* ── 404 ────────────────────────────────────────────────────────────────── */
.e404{min-height:90svh;display:grid;place-items:center;text-align:center;padding:160px var(--gut) 90px}
.e404 svg{width:120px;color:var(--brass);margin:0 auto 30px}
.e404 h1{font-size:clamp(40px,6vw,86px)}
.e404 p{color:var(--stone);max-width:520px;margin:0 auto 34px}

/* ── Révélations au défilement ──────────────────────────────────────────── */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.in-view{opacity:1;transform:none}
.js .rv-d1{transition-delay:.12s}.js .rv-d2{transition-delay:.24s}.js .rv-d3{transition-delay:.36s}

@keyframes scene{from{transform:scale(1.07);opacity:.45}to{transform:scale(1);opacity:1}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media(max-width:1100px){
  .nav ul{gap:22px}
  .hdr-in{gap:22px}
  .enc-copy{padding:80px 9% 60px}
  .editorial{gap:6%}
}
@media(max-width:960px){
  :root{--hdr:82px}
  .nav-toggle{display:block;order:3;margin-left:0}
  .hdr-cta{margin-left:auto;padding:11px 14px;font-size:10.5px}
  .nav{position:fixed;inset:0 0 0 auto;width:min(380px,88vw);background:var(--ivory);color:var(--ink);transform:translateX(100%);transition:transform .45s var(--ease);padding:110px 34px 40px;overflow-y:auto;box-shadow:-20px 0 50px rgba(0,0,0,.2);margin:0}
  .nav ul{flex-direction:column;align-items:stretch;gap:0}
  .nav li{border-bottom:1px solid var(--line)}
  .nav a{display:block;padding:18px 0;font-size:17px;font-family:var(--serif);letter-spacing:0}
  .nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:none;padding:0 0 12px 14px;min-width:0}
  .nav .sub a{padding:8px 0;font:400 14.5px var(--sans)}
  .nav .sub li{border:0}
  .nav-open .nav{transform:none}
  .nav-open .nav-toggle{position:relative;z-index:120;color:var(--ink)}
  .nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-open .nav-toggle span:nth-child(2){opacity:0}
  .nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-scrim{position:fixed;inset:0;background:rgba(10,30,25,.5);opacity:0;visibility:hidden;transition:.4s;z-index:99}
  .nav-open .nav-scrim{opacity:1;visibility:visible}
  .nav{z-index:110}
  .encounter{grid-template-columns:1fr}
  .enc-img{min-height:600px}
  .cl-split{grid-template-columns:1fr}
  .cl-split.rev>:first-child{order:0}
  .editorial{grid-template-columns:1fr;gap:30px}
  .ft-top{grid-template-columns:1fr;gap:30px}
  .ft-sign{text-align:left}
}
@media(max-width:640px){
  body{font-size:16px}
  .logo img{width:190px}
  .hdr-cta .lbl{display:none}
  .hdr-cta{padding:10px 12px}
  .hero{min-height:680px;height:94svh}
  .hero-copy{top:46%;transform:translateY(-40%)}
  .hero h1{font-size:clamp(46px,12.5vw,70px)}
  .hero h1 .kicker{font-size:10.5px;margin-bottom:22px}
  .hero-intro{gap:26px;margin-top:26px}
  .hero-intro p{font-size:15px}
  .hero-bottom{height:78px;font-size:8.5px}
  .hero-bottom .ed,.vnote{display:none}
  .phero{min-height:540px;height:auto}
  .phero-in{padding-bottom:50px}
  .phero .chapo{font-size:16px}
  .content{padding:60px var(--gut) 30px}
  .prose>.bleed:first-child{margin-top:-60px}
  .prose p,.prose li{font-size:16.5px}
  .bleed{padding:70px var(--gut)}
  .ribbon{flex-wrap:wrap;justify-content:center;gap:12px 24px}
  .ribbon i{font-size:20px}
  .enc-img{min-height:520px}
  .enc-copy{padding:60px 8%}
  .portal{padding:90px var(--gut) 60px}
  .faq summary{font-size:19px}
  .faq>div,.faq>p{padding-right:0}
  .cl-note{padding:22px}
  .prose th,.prose td{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  svg .draw{stroke-dashoffset:0!important}
  svg .fade{opacity:1!important}
}
@media print{.site-header,.site-footer,.portal,.nav-scrim{display:none!important}.phero{height:auto;min-height:0;color:#000;background:none}.phero-media{display:none}.phero h1{color:#000}}
@media (max-width:640px){.tbl-wrap table{min-width:0;font-size:14.5px}.tbl-wrap th,.tbl-wrap td{padding:.7em .75em;vertical-align:top}.tbl-wrap td:first-child,.tbl-wrap th:first-child{width:38%}}
/* Sélecteur de langue (drapeaux FR / EN) */
.lang{display:flex;align-items:center;gap:4px;margin-left:-8px}
.lang a{display:inline-flex;align-items:center;gap:7px;color:inherit;text-decoration:none;font:500 11px/1 var(--sans);letter-spacing:.14em;padding:8px 7px;opacity:.62;border-bottom:1px solid transparent;transition:opacity .3s,border-color .3s}
.lang a:hover{opacity:1}
.lang a.on{opacity:1;border-bottom-color:var(--brass)}
.lang svg{display:block;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none}
@media(max-width:960px){.lang{margin-left:auto}.lang+.hdr-cta{margin-left:0}}
@media(max-width:640px){.lang a span{display:none}.lang a{padding:8px 5px}.lang{gap:0}.hdr-in{gap:12px}}
/* Bandeau cookies (extension cookie-notice en mode « thème ») */
.cn-panel{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:2147483000;width:calc(100vw - 32px);max-width:560px;box-sizing:border-box;background:var(--ivory);color:var(--text);border:1px solid var(--line);border-top:2px solid var(--brass);box-shadow:0 24px 60px rgba(10,30,25,.22);padding:26px 28px 24px;font:400 14.5px/1.65 var(--sans);animation:cnin .5s var(--ease) both}
@keyframes cnin{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
.cn-head{display:flex;align-items:center;margin:0 0 12px}
.cn-logo{height:24px;width:auto}
.cn-title{display:none}
.cn-msg{margin:0 0 18px;color:var(--text)}
.cn-detail{margin:0 0 18px;border-top:1px solid var(--line);padding-top:6px}
.cn-cat{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
.cn-cat input{margin-top:4px;accent-color:var(--ink);width:16px;height:16px;flex:none}
.cn-cat-t{font:400 16px/1.3 var(--serif);color:var(--ink);margin-bottom:3px}
.cn-cat-d{font-size:13px;line-height:1.55;color:var(--stone)}
.cn-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}
.cn-btn{appearance:none;cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--ink);padding:12px 18px;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;transition:background .3s,color .3s,border-color .3s}
.cn-btn:hover{background:rgba(24,60,52,.06)}
.cn-btn-primary{background:var(--ink);color:var(--ivory)}
.cn-btn-primary:hover{background:var(--deep);color:var(--ivory)}
.cn-btn:focus-visible,.cn-reopen:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.cn-reopen{position:fixed;left:18px;bottom:18px;z-index:2147482000;cursor:pointer;background:var(--ivory);color:var(--ink);border:1px solid var(--line);padding:9px 14px;font:500 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;box-shadow:0 8px 24px rgba(10,30,25,.12)}
.cn-reopen:hover{border-color:var(--brass)}
@media(max-width:640px){.cn-panel{bottom:12px;padding:22px 20px 20px}.cn-row{justify-content:stretch}.cn-row .cn-btn{flex:1 1 auto}}
@media print{.cn-panel,.cn-reopen{display:none}}

/* Langue dans le menu mobile + barre de contact fixe en bas (mobile) */
.nav-lang{display:none}
.m-cta{display:none}
@media(max-width:960px){
  .lang{display:none}
  .nav-lang{display:block;border-bottom:0!important;margin-top:18px}
  .nav .nav-lang a{display:flex;align-items:center;gap:12px;font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding:16px 18px;border:1px solid var(--line)}
  .nav .nav-lang a::after{display:none}
  .nav-lang svg{box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none}
  .hdr-cta{display:none}
  .nav-toggle{margin-left:auto}
  .m-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:950;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(16,45,38,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(179,155,112,.35)}
  .m-cta a{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:14px;background:var(--ivory);color:var(--ink);text-decoration:none;padding:12px 18px}
  .m-cta-l{font:500 12.5px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase}
  .m-cta-s{grid-row:2;font:400 12.5px/1.3 var(--serif);font-style:italic;color:var(--brass-d);margin-top:3px}
  .m-cta-a{grid-row:1/3;grid-column:2;font-size:18px;color:var(--brass-d)}
  .m-cta a:active{transform:scale(.99)}
  body:has(.m-cta){padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  body:has(.m-cta) .cn-reopen{bottom:calc(90px + env(safe-area-inset-bottom))}
  body:has(.m-cta) .cn-panel{bottom:calc(88px + env(safe-area-inset-bottom))}
  .nav-open .m-cta{display:none}
}
