/* Domaine des Quatre Vents — démonstration Yon Web (établissement fictif) */

/* Polices auto-hébergées (sous-ensemble latin, licence SIL OFL) : aucune requête vers un tiers */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-latin.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-italic-latin.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/hanken-grotesk-latin.woff2) format('woff2')}
@font-face{font-family:'La Belle Aurore';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/la-belle-aurore-latin.woff2) format('woff2')}


:root{
  --paper:#F6EFE4; --paper-2:#EDE2D0; --white:#FFFBF5;
  --ink:#2A2620; --ink-soft:#5B5447;
  --forest:#1E2B22; --forest-2:#2B3B2F;
  --night:#1D1813;
  --clay:#A04526; --clay-deep:#823519; --clay-soft:#EBCFB9;
  --gold:#D3A95F; --sage:#DDE3D2; --olive:#7C8C6B;
  --on-dark:#F6EFE4; --on-dark-soft:#CBC4B4;
  --line:rgba(42,38,32,.16); --line-strong:#80786a;
  --serif:'Instrument Serif','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --sans:'Hanken Grotesk',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --hand:'La Belle Aurore','Segoe Script','Bradley Hand',cursive;
  --gutter:clamp(1rem,4.2vw,2rem);
  --maxw:1280px;
  --hdr:4.25rem;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + .75rem)}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 1.0625rem/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
/* grain de papier */
body::before{
  content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .15 0 0 0 0 .1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{display:block;max-width:100%;height:auto}
svg{display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance}
p{margin:0 0 1.1em;text-wrap:pretty}
ul,ol{margin:0;padding:0}
button,input,select,textarea{font:inherit;color:inherit}
em{font-style:italic}

:focus-visible{outline:3px solid var(--clay);outline-offset:3px;border-radius:4px}
.on-dark :focus-visible,.site-footer :focus-visible,.menu :focus-visible{outline-color:var(--gold)}

.skip{position:absolute;left:1rem;top:-4rem;z-index:200;background:var(--ink);color:var(--paper);padding:.8rem 1.1rem;border-radius:999px;text-decoration:none;font-weight:600}
.skip:focus{top:1rem}
.sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.wrap{width:min(100% - 2 * var(--gutter),var(--maxw));margin-inline:auto}
.section{padding-block:clamp(4.5rem,11vw,9rem);position:relative}
.on-dark{color:var(--on-dark)}
.on-dark p{color:var(--on-dark-soft)}
.night{background:var(--night)}
.forest{background:var(--forest)}
.linen{background:var(--paper-2)}

.eyebrow{
  display:flex;align-items:center;gap:.9rem;margin:0 0 1.4rem;
  font:600 .8125rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--clay);
}
.eyebrow::before{content:"";width:2.5rem;height:1px;background:currentColor;flex:none}
.on-dark .eyebrow{color:var(--gold)}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:2.5rem;height:1px;background:currentColor}

h2{font-size:clamp(2.45rem,6.4vw,4.9rem);line-height:.98;letter-spacing:-.018em}
h2 em{color:var(--clay)}
.on-dark h2 em{color:var(--gold)}
h3{font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.08}
.lead{font-size:clamp(1.12rem,1.6vw,1.3rem);line-height:1.6;color:var(--ink-soft);max-width:38rem}
.on-dark .lead{color:var(--on-dark-soft)}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  min-height:3.4rem;padding:0 1.75rem;border-radius:999px;border:0;cursor:pointer;
  background:var(--clay);color:#fff8ef;text-decoration:none;
  font:600 1rem/1 var(--sans);letter-spacing:.015em;
  transition:background .25s,transform .35s var(--ease),box-shadow .25s;
}
.btn:hover{background:var(--clay-deep);transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(130,53,25,.7)}
.btn svg{width:1.25em;height:1.25em;flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-sm{min-height:2.9rem;padding:0 1.25rem;font-size:.92rem}
.btn-light{background:var(--paper);color:var(--forest)}
.btn-light:hover{background:#fff;box-shadow:0 12px 24px -12px rgba(0,0,0,.6)}
.btn-ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-ghost:hover{background:rgba(127,127,127,.12);box-shadow:inset 0 0 0 1.5px currentColor}
.more{
  display:inline-flex;align-items:center;gap:.55rem;min-height:2.9rem;
  font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em;
}
.more svg{width:1.15em;height:1.15em;transition:transform .3s var(--ease)}
.more:hover svg{transform:translateX(4px)}

/* ---------- en-tête ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(246,239,228,.92);
  -webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px);
  border-bottom:1px solid transparent;transition:border-color .3s;
}
.site-header.scrolled{border-bottom-color:var(--line)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--hdr)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-height:2.75rem}
.brand svg{width:2.5rem;height:2.5rem;color:var(--clay);flex:none;--core:var(--paper)}
.brand span{display:flex;flex-direction:column;gap:.28rem}
.brand small{font:600 .7rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}
.brand b{font:400 1.7rem/.9 var(--serif);letter-spacing:-.01em}
.nav-d{display:none}
.hdr-actions{display:flex;align-items:center;gap:.75rem}
.hdr-actions .btn{display:none}
.menu-btn{
  display:inline-flex;align-items:center;gap:.7rem;min-height:2.9rem;padding:0 1.1rem;
  border-radius:999px;background:transparent;border:1.5px solid var(--ink);cursor:pointer;
  font:600 .92rem/1 var(--sans);letter-spacing:.04em;
}
.menu-btn .bars{display:grid;gap:5px;width:1.15rem}
.menu-btn .bars i{height:1.5px;background:currentColor;transition:transform .3s var(--ease)}
.menu-btn[aria-expanded="true"] .bars i:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars i:last-child{transform:translateY(-3.25px) rotate(-45deg)}

.menu{
  position:fixed;inset:var(--hdr) 0 0 0;z-index:55;background:var(--forest);color:var(--on-dark);
  padding:1.2rem var(--gutter) 3rem;overflow:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:2rem;
}
.menu[hidden]{display:none}
.menu ol{list-style:none;counter-reset:m}
.menu li a{
  display:flex;align-items:baseline;gap:1.1rem;min-height:3.4rem;padding:.55rem 0;
  font:400 clamp(2rem,9.4vw,3rem)/1.1 var(--serif);text-decoration:none;
  border-bottom:1px solid rgba(246,239,228,.14);
}
.menu li a::before{counter-increment:m;content:counter(m,decimal-leading-zero);font:600 .78rem var(--sans);letter-spacing:.14em;color:var(--gold);min-width:1.6rem}
.menu-foot{display:grid;gap:1rem;margin-top:auto}
.menu-foot p{margin:0;color:var(--on-dark-soft);font-size:.95rem}
body.menu-open{overflow:hidden}

@media (min-width:600px){.hdr-actions .btn{display:inline-flex}}
@media (min-width:1140px){
  .nav-d{display:flex;gap:.1rem}
  .nav-d a{
    position:relative;display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .7rem;
    font-size:.93rem;font-weight:500;text-decoration:none;
  }
  .nav-d a::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.55rem;height:1px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
  .nav-d a:hover::after{transform:scaleX(1)}
  .menu-btn,.menu{display:none!important}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:clip;padding-top:clamp(1.5rem,4vw,3.5rem);padding-bottom:clamp(3.5rem,7vw,6rem)}
.hero::before{
  content:"";position:absolute;right:-12%;top:-8%;width:62%;aspect-ratio:1;z-index:-1;
  background:radial-gradient(closest-side,rgba(211,169,95,.28),rgba(211,169,95,0));
}
.hero-grid{display:grid;gap:3rem}
.hero h1{
  font-size:clamp(3.25rem,16.6vw,7.6rem);line-height:.93;letter-spacing:-.025em;margin:0 0 1.6rem;
}
.hero h1 em{
  color:var(--clay);position:relative;white-space:nowrap;
}
.hero h1 em::after{
  content:"";position:absolute;left:2%;right:-2%;bottom:-.04em;height:.2em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 12 C 40 4, 70 17, 105 9 S 170 6, 197 11' fill='none' stroke='%23A04526' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
.hero .lead{margin-bottom:2rem}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.8rem}
.hours{margin:1.4rem 0 0;font-size:.95rem;color:var(--ink-soft)}
.hero-art{position:relative;width:min(100%,30rem);justify-self:center;margin-top:.5rem}
.arch{border-radius:999px 999px 0 0;overflow:hidden;background:var(--c,#8a7a5a);aspect-ratio:3/4.15}
.arch img{width:100%;height:100%;object-fit:cover}
.hero-art .arch-sm{
  position:absolute;left:-1rem;bottom:-2.2rem;width:38%;aspect-ratio:3/4;border-radius:999px 999px 0 0;
  overflow:hidden;border:.55rem solid var(--paper);background:var(--c,#795538);
}
.hero-art .arch-sm img{width:100%;height:100%;object-fit:cover}
.stamp{
  position:absolute;right:-.6rem;top:6%;width:6.6rem;height:6.6rem;border-radius:50%;
  background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--line);
}
.stamp svg.ring{width:100%;height:100%;animation:spin 38s linear infinite}
.stamp text{font:600 11.5px var(--sans);letter-spacing:.14em;fill:currentColor;text-transform:uppercase}
.stamp .rose{position:absolute;inset:30%;width:40%;height:40%;color:var(--clay);--core:var(--paper)}
@keyframes spin{to{transform:rotate(360deg)}}

.facts{
  list-style:none;margin:clamp(3.5rem,7vw,5.5rem) 0 0;display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line-strong);
}
.facts li{padding:1.15rem 0;border-bottom:1px solid var(--line)}
.facts li:nth-child(even){padding-left:1.1rem;border-left:1px solid var(--line)}
.facts b{display:block;font:400 clamp(2.5rem,7vw,3.7rem)/1 var(--serif);color:var(--clay);letter-spacing:-.02em}
.facts span{display:block;margin-top:.3rem;font-size:.92rem;line-height:1.35;color:var(--ink-soft)}

@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes unveil{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes settle{from{transform:scale(1.18)}to{transform:scale(1)}}
@keyframes pop{from{opacity:0;transform:scale(.7) rotate(-20deg)}to{opacity:1;transform:none}}
.hero .eyebrow,.hero h1,.hero .lead,.hero .cta-row,.hero .hours{animation:rise 1.1s var(--ease) both}
.hero h1{animation-delay:.08s}
.hero .lead{animation-delay:.2s}
.hero .cta-row{animation-delay:.3s}
.hero .hours{animation-delay:.4s}
.hero .arch{animation:unveil 1.6s cubic-bezier(.7,0,.2,1) .15s both}
.hero .arch img{animation:settle 2.6s cubic-bezier(.2,.6,.2,1) .15s both}
.hero .arch-sm{animation:unveil 1.4s cubic-bezier(.7,0,.2,1) .7s both}
.hero .stamp{animation:pop 1s var(--ease) 1.1s both}

@media (min-width:960px){
  .hero-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);align-items:center;gap:3rem}
  .hero-art{width:100%;max-width:31rem;justify-self:end;margin-top:0}
  .hero-art .arch-sm{left:-3.2rem;bottom:-2.6rem;width:42%}
  .stamp{right:calc(var(--gutter) * -1);top:8%;width:8rem;height:8rem}
  .facts{grid-template-columns:repeat(4,1fr)}
  .facts li{border-bottom:0;padding:1.5rem 1.6rem}
  .facts li:nth-child(n){border-left:1px solid var(--line)}
  .facts li:first-child{border-left:0;padding-left:0}
}

/* ---------- reveal au scroll ---------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-arch img{clip-path:inset(100% 0 0 0);transition:clip-path 1.5s cubic-bezier(.7,0,.2,1);transition-delay:var(--d,0s)}
.js .reveal-arch.in img{clip-path:inset(0 0 0 0)}

/* ---------- domaine ---------- */
.d-grid{display:grid;gap:4.5rem}
.d-text p{max-width:34rem}
.d-text p:first-of-type::first-letter{
  font:400 4.6em/.8 var(--serif);float:left;margin:.07em .1em 0 0;color:var(--clay);
}
.sign{margin-top:1.6rem;display:flex;align-items:center;gap:1rem}
.sign .hand{font:400 2.1rem/1 var(--hand);color:var(--clay);transform:rotate(-3deg)}
.sign small{font-size:.85rem;color:var(--ink-soft);letter-spacing:.04em}
.promises{list-style:none;margin:2.4rem 0 0;display:grid;gap:0;border-top:1px solid var(--line-strong)}
.promises li{display:flex;gap:1rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--line)}
.promises b{font:400 1.45rem/1.1 var(--serif);min-width:2.2rem;color:var(--clay);font-style:italic}
.promises span{font-size:1rem}
.d-art{position:relative;padding-bottom:4rem}
.d-main{margin:0;border-radius:6px;overflow:hidden;background:var(--c);aspect-ratio:4/3}
.d-main img{width:100%;height:100%;object-fit:cover}
.d-arch{
  position:absolute;right:.9rem;bottom:0;width:36%;aspect-ratio:3/4.3;border-radius:999px 999px 0 0;overflow:hidden;
  border:.6rem solid var(--paper);background:var(--c);margin:0;
}
.d-arch img{width:100%;height:100%;object-fit:cover}
.d-note{position:absolute;left:.2rem;bottom:.6rem;margin:0;font:400 1.4rem/1.1 var(--hand);color:var(--ink-soft);width:9.5rem;transform:rotate(-3deg)}

@media (min-width:960px){
  .d-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(3rem,6vw,6rem);align-items:start}
  .d-art{padding-bottom:5rem;margin-top:3rem}
  .d-arch{right:calc(var(--gutter) * -1);width:34%;border-width:.8rem}
  .d-note{left:1rem;bottom:1.4rem;font-size:1.8rem;width:max-content}
  .promises{grid-template-columns:repeat(1,1fr)}
}

/* plan */
.plan-card{
  margin-top:clamp(4rem,8vw,7rem);background:var(--paper-2);border-radius:28px;
  padding:clamp(1.4rem,4vw,3.2rem);display:grid;gap:2rem;
}
.plan-card h3{margin-bottom:.9rem}
.plan-head p:not(.eyebrow){color:var(--ink-soft);margin:0}
.plan-svg{width:100%;height:auto;max-height:34rem;overflow:visible;margin-block:.4rem}
.plan-svg .hedge{fill:rgba(124,140,107,.1);stroke:var(--olive);stroke-width:4;stroke-dasharray:1 9;stroke-linecap:round}
.plan-svg .road{fill:none;stroke:#D8C9AE;stroke-width:16;stroke-linecap:round}
.plan-svg .lane{fill:none;stroke:#D8C9AE;stroke-width:9;stroke-linecap:round}
.plan-svg .court{fill:#E3D5BB}
.plan-svg .zone-bg{fill:var(--sage);stroke:var(--olive);stroke-width:1.5;stroke-dasharray:4 5}
.plan-svg .bld{fill:var(--clay-soft);stroke:var(--clay);stroke-width:2.5;stroke-linejoin:round}
.plan-svg .pond{fill:#C7D5D1;stroke:#8FA5A0;stroke-width:1.5}
.plan-svg .path{fill:none;stroke:var(--clay);stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round}
.plan-svg .pin circle{fill:var(--forest)}
.plan-svg .pin text{fill:var(--paper);font:700 19px var(--sans);text-anchor:middle;dominant-baseline:central}
.plan-svg .zone{transition:filter .3s,opacity .3s}
.plan-svg.has-active .zone{opacity:.35}
.plan-svg.has-active .zone.active{opacity:1;filter:drop-shadow(0 6px 10px rgba(30,20,10,.25))}
.plan-svg .compass{color:var(--forest);--core:var(--paper-2)}
.plan-svg .compass-n{font:700 20px var(--sans);fill:var(--forest);text-anchor:middle}
.plan-legend{list-style:none;counter-reset:l;display:grid;gap:.1rem;margin-top:1.4rem}
.plan-legend li{
  counter-increment:l;display:grid;grid-template-columns:2.2rem 1fr;gap:.2rem .8rem;align-items:start;
  padding:.7rem .5rem;border-radius:12px;transition:background .25s;cursor:default;
}
.plan-legend li::before{
  content:counter(l);grid-row:span 2;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;
  background:var(--forest);color:var(--paper);font:700 .95rem var(--sans);margin-top:.1rem;
}
.plan-legend li:hover,.plan-legend li.active{background:rgba(255,251,245,.8)}
.plan-legend b{font:400 1.35rem/1.15 var(--serif)}
.plan-legend span{font-size:.95rem;line-height:1.45;color:var(--ink-soft)}
@media (min-width:960px){
  .plan-card{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:3rem;row-gap:0;grid-template-rows:auto 1fr}
  .plan-head{grid-column:1;grid-row:1}
  .plan-legend{grid-column:1;grid-row:2;margin-top:1.4rem}
  .plan-svg{grid-column:2;grid-row:1 / span 2;align-self:center}
}

/* ---------- grange ---------- */
.g-grid{display:grid;gap:3.5rem}
.g-media{display:grid;gap:1rem}
.g-main,.g-pair figure{margin:0;overflow:hidden;background:var(--c);border-radius:6px}
.g-main{aspect-ratio:4/3}
.g-main img,.g-pair img{width:100%;height:100%;object-fit:cover}
.g-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.g-pair figure{aspect-ratio:3/4}
.g-pair figure:first-child{border-radius:999px 999px 6px 6px}
.cfg{margin-top:2.4rem;padding:clamp(1.2rem,3vw,2rem);border:1px solid rgba(246,239,228,.2);border-radius:22px;background:rgba(246,239,228,.04)}
.cfg-label{margin:0 0 .9rem!important;font:600 .8rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)!important}
.tabs{display:flex;flex-wrap:wrap;gap:.5rem}
.tabs button{
  min-height:2.9rem;padding:0 1.1rem;border-radius:999px;cursor:pointer;
  background:transparent;border:1.5px solid rgba(246,239,228,.35);color:var(--on-dark);
  font:600 .93rem/1 var(--sans);transition:background .25s,color .25s,border-color .25s;
}
.tabs button:hover{border-color:var(--gold)}
.tabs button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--night)}
.cfg-out{margin-top:1.6rem;display:grid;gap:.4rem 1.6rem;align-items:center}
.cfg-num{display:flex;align-items:baseline;gap:.7rem}
.cfg-num strong{font:400 clamp(4.2rem,14vw,6.2rem)/.9 var(--serif);color:var(--on-dark);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.cfg-num small{font:italic 400 1.6rem var(--serif);color:var(--gold)}
.cfg-out p{margin:0!important;font-size:1rem;max-width:30rem}
.dots{display:grid;grid-template-columns:repeat(22,1fr);gap:clamp(2px,.7vw,5px);margin-top:1.6rem}
.dots i{aspect-ratio:1;border-radius:50%;background:rgba(246,239,228,.13);transition:background .5s,transform .5s;transition-delay:calc(var(--i) * 2.5ms)}
.dots i.on{background:var(--gold)}
.dots-cap{margin:.9rem 0 0!important;font-size:.85rem!important}
.specs{display:grid;grid-template-columns:1fr 1fr;margin:2.2rem 0 0;border-top:1px solid rgba(246,239,228,.25)}
.specs div{padding:1rem 1rem 1rem 0;border-bottom:1px solid rgba(246,239,228,.14)}
.specs div:nth-child(even){padding-left:1rem;border-left:1px solid rgba(246,239,228,.14)}
.specs dt{font:600 .74rem/1.3 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.specs dd{margin:.3rem 0 0;font:400 1.6rem/1.1 var(--serif)}
.specs dd small{display:block;margin-top:.2rem;font:400 .85rem/1.3 var(--sans);color:var(--on-dark-soft)}
@media (min-width:960px){
  .g-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(3rem,6vw,6rem);align-items:start}
  .g-media{position:sticky;top:calc(var(--hdr) + 1.5rem)}
  .cfg-out{grid-template-columns:auto 1fr}
}

/* ---------- jardin ---------- */
.jardin{background:var(--sage);color:var(--forest)}
.jardin .eyebrow{color:var(--forest)}
.jardin h2 em{color:#7a3a1f}
.j-head{display:grid;gap:1.5rem;margin-bottom:clamp(2.2rem,5vw,4rem)}
.j-head .lead{color:#33443a}
.j-fig{margin:0;border-radius:50% 50% 6px 6px / 38% 38% 6px 6px;overflow:hidden;background:var(--c);aspect-ratio:16/10}
.j-fig img{width:100%;height:100%;object-fit:cover}
.j-body{display:grid;gap:2.2rem;margin-top:clamp(2rem,4vw,3.5rem)}
.checks{list-style:none;display:grid;gap:.1rem}
.checks li{display:flex;gap:.9rem;align-items:flex-start;padding:.85rem 0;border-bottom:1px solid rgba(30,43,34,.2);line-height:1.45}
.checks svg{width:1.35rem;height:1.35rem;flex:none;margin-top:.12rem;color:#7a3a1f}
.golden{
  display:flex;gap:1rem;align-items:flex-start;margin-top:1.6rem;padding:1.2rem 1.3rem;border-radius:18px;
  background:rgba(255,251,245,.65);
}
.golden svg{width:2.2rem;height:2.2rem;flex:none;color:#7a3a1f}
.golden p{margin:0;font-size:.98rem}
.golden b{display:block;font:400 1.5rem/1.1 var(--serif);margin-bottom:.2rem}
.j-small{display:none;margin:0}
@media (min-width:960px){
  .j-head{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:end}
  .j-fig{aspect-ratio:21/9}
  .j-body{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,.55fr);gap:clamp(2rem,4vw,4rem);align-items:start}
  .j-small{display:block;border-radius:999px 999px 6px 6px;overflow:hidden;aspect-ratio:3/4.4;background:var(--c);margin-top:-9rem;border:.7rem solid var(--sage)}
  .j-small img{width:100%;height:100%;object-fit:cover}
}

/* ---------- hébergement ---------- */
.h-head{display:grid;gap:1.5rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.rooms{display:grid;gap:1.2rem}
.room{border-radius:22px;overflow:hidden;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column}
.room figure{margin:0;aspect-ratio:3/2;background:var(--c);overflow:hidden}
.room figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.room:hover figure img{transform:scale(1.05)}
.room-body{padding:1.4rem 1.5rem 1.7rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.room .num{font:italic 400 3.4rem/.9 var(--serif);color:var(--clay);display:flex;align-items:baseline;gap:.6rem}
.room .num small{font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-style:normal}
.room h3{font-size:1.9rem}
.room p{margin:0;color:var(--ink-soft);font-size:1rem}
.room .tag{margin-top:auto;padding-top:.8rem;font-size:.85rem;font-weight:600;letter-spacing:.04em;color:var(--forest)}
.room.dark{background:var(--forest);color:var(--on-dark);box-shadow:none;justify-content:flex-end}
.room.dark p{color:var(--on-dark-soft)}
.room.dark .num{color:var(--gold)}
.room.dark .num small,.room.dark .tag{color:var(--on-dark-soft)}
.room.soft{background:var(--sage);box-shadow:none}
.room.soft p{color:#33443a}
.room .ico{width:2.6rem;height:2.6rem;color:currentColor;margin-bottom:.6rem}
.h-note{margin:1.8rem 0 0;font-size:.95rem;color:var(--ink-soft);display:flex;gap:.7rem;align-items:flex-start}
.h-note svg{width:1.3rem;height:1.3rem;flex:none;margin-top:.2rem;color:var(--clay)}
@media (min-width:760px){
  .rooms{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1000px){
  .h-head{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end}
  .rooms{grid-template-columns:repeat(12,1fr);gap:1.4rem}
  .room:nth-child(1){grid-column:span 7}
  .room:nth-child(2){grid-column:span 5}
  .room:nth-child(3){grid-column:span 5}
  .room:nth-child(4){grid-column:span 7}
  .room:nth-child(1) figure{aspect-ratio:16/10}
  .room:nth-child(2) figure{aspect-ratio:auto;flex:1;min-height:14rem}
  .room:nth-child(2) .room-body{flex:0 0 auto}
  .room.dark .room-body,.room.soft .room-body{padding:2rem}
  .room.soft{justify-content:flex-end}
}

/* ---------- journée ---------- */
.j2-grid{display:grid;gap:3rem}
.j2-side .lead{margin-bottom:2rem}
.j2-art{margin:0;width:min(62%,18rem);aspect-ratio:3/4.3;border-radius:999px 999px 6px 6px;overflow:hidden;background:var(--c)}
.j2-art img{width:100%;height:100%;object-fit:cover}
.tl{list-style:none;position:relative;padding-left:2.4rem;--p:0}
.tl::before{content:"";position:absolute;left:.46rem;top:.8rem;bottom:.8rem;width:1px;background:rgba(246,239,228,.22)}
.tl::after{content:"";position:absolute;left:.46rem;top:.8rem;width:1px;height:calc((100% - 1.6rem) * var(--p));background:var(--gold)}
.tl li{position:relative;padding:0 0 2.5rem}
.tl li:last-child{padding-bottom:0}
.tl li::before{
  content:"";position:absolute;left:-2.4rem;top:.62rem;width:.95rem;height:.95rem;border-radius:50%;
  background:var(--forest);border:1.5px solid rgba(246,239,228,.45);transition:background .5s,border-color .5s,transform .5s;
}
.tl li.in::before{background:var(--gold);border-color:var(--gold);transform:scale(1.1)}
.tl .day{padding:0 0 1.2rem;margin-top:.4rem}
.tl .day::before{display:none}
.tl .day span{
  display:inline-block;padding:.35rem .9rem;border-radius:999px;border:1px solid var(--gold);color:var(--gold);
  font:600 .76rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
}
.tl .day:not(:first-child){margin-top:1rem}
.tl time{display:block;font:italic 400 clamp(2.3rem,5.4vw,3.3rem)/1 var(--serif);color:var(--gold);margin-bottom:.25rem}
.tl h3{font-size:1.65rem;margin-bottom:.35rem}
.tl p{margin:0;font-size:1rem;max-width:34rem}
@media (min-width:960px){
  .j2-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(3rem,7vw,7rem)}
  .j2-side{position:sticky;top:calc(var(--hdr) + 2rem);align-self:start}
  .j2-art{width:min(78%,19rem)}
  .tl{padding-left:3.2rem}
  .tl li::before{left:-3.2rem}
  .tl::before,.tl::after{left:.46rem}
}

/* ---------- formules ---------- */
.f-head{display:grid;gap:1.4rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.tiers{display:grid;gap:1.2rem}
.tier{
  position:relative;display:flex;flex-direction:column;padding:clamp(1.6rem,3vw,2.2rem);border-radius:26px;
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line-strong);
}
.tier h3{font-size:2.2rem;font-style:italic}
.tier .for{margin:.2rem 0 1.4rem;font-size:.95rem;color:var(--ink-soft)}
.tier .from{font:600 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--clay);margin:0}
.tier .price{display:flex;align-items:baseline;gap:.5rem;font:400 clamp(3.4rem,8vw,4.4rem)/1 var(--serif);letter-spacing:-.02em;margin:.5rem 0 0}
.tier .price small{font:italic 400 1.2rem var(--serif);color:var(--ink-soft);letter-spacing:0}
.tier .ind{margin:.3rem 0 1.4rem;font-size:.85rem;color:var(--ink-soft);font-style:italic}
.tier ul{list-style:none;display:grid;gap:.1rem;margin-bottom:1.8rem;border-top:1px solid var(--line)}
.tier li{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.98rem;line-height:1.45}
.tier li svg{width:1.2rem;height:1.2rem;flex:none;margin-top:.15rem;color:var(--clay)}
.tier .btn{margin-top:auto;align-self:flex-start}
.tier.feat{background:var(--forest);color:var(--on-dark);box-shadow:none}
.tier.feat .for,.tier.feat .price small,.tier.feat .ind{color:var(--on-dark-soft)}
.tier.feat .from{color:var(--gold)}
.tier.feat ul,.tier.feat li{border-color:rgba(246,239,228,.16)}
.tier.feat li svg{color:var(--gold)}
.tier .badge{
  position:absolute;top:-.85rem;right:1.4rem;padding:.5rem .95rem;border-radius:999px;background:var(--gold);color:var(--night);
  font:700 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
}
.f-notes{margin-top:2.4rem;display:grid;gap:.9rem;font-size:.95rem;color:var(--ink-soft)}
.f-notes p{margin:0;max-width:60rem}
.f-notes b{color:var(--ink)}
@media (min-width:960px){
  .f-head{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end}
  .tiers{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:1.4rem}
  .tier.feat{margin-block:-1.2rem;padding-block:calc(clamp(1.6rem,3vw,2.2rem) + 1.2rem)}
  .f-notes{margin-top:3.4rem}
}

/* ---------- galerie ---------- */
.g-head{display:grid;gap:1.2rem;margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:9.6rem;grid-auto-flow:dense;gap:.6rem}
.m{position:relative;padding:0;border:0;background:var(--c);overflow:hidden;cursor:zoom-in;border-radius:4px;display:block}
.m img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .5s}
.m:hover img{transform:scale(1.06)}
.m::after{
  content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,14,8,.35),transparent 45%);opacity:0;transition:opacity .4s;
}
.m:hover::after,.m:focus-visible::after{opacity:1}
.m.t{grid-row:span 2}
.m.w{grid-column:span 2}
.m.big{grid-column:span 2;grid-row:span 2}
@media (min-width:760px){
  .mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(11rem,17vw,16rem);gap:.8rem}
  .m{border-radius:6px}
}
.lb{
  border:0;padding:0;background:transparent;color:var(--on-dark);width:min(100vw,1200px);max-width:100vw;max-height:100dvh;margin:auto;
}
.lb::backdrop{background:rgba(18,13,9,.92)}
.lb-in{display:grid;grid-template-rows:1fr auto;gap:.8rem;padding:3.8rem var(--gutter) 1.2rem;max-height:100dvh}
.lb img{width:100%;height:auto;max-height:calc(100dvh - 9rem);object-fit:contain;border-radius:4px}
.lb figcaption{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:.95rem;color:var(--on-dark-soft)}
.lb-btn{
  position:absolute;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1.5px solid rgba(246,239,228,.5);
  background:rgba(30,24,19,.7);color:var(--on-dark);cursor:pointer;
}
.lb-btn:hover{background:var(--paper);color:var(--night)}
.lb-btn svg{width:1.4rem;height:1.4rem}
.lb-close{top:.7rem;right:var(--gutter)}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%)}
.lb-prev{left:.5rem}.lb-next{right:.5rem}
.lb-prev svg{transform:scaleX(-1)}
@media (min-width:760px){.lb-prev{left:1rem}.lb-next{right:1rem}}

/* ---------- formulaire ---------- */
.v-grid{display:grid;gap:3rem}
.steps{list-style:none;counter-reset:s;display:grid;gap:0;margin:2rem 0;border-top:1px solid var(--line-strong)}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.6rem 1fr;gap:.2rem .8rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);grid-row:span 2;font:italic 400 2.2rem/1 var(--serif);color:var(--clay)}
.steps b{font-weight:600}
.steps span{font-size:.95rem;color:var(--ink-soft)}
.demo-note{
  display:flex;gap:.9rem;align-items:flex-start;padding:1.1rem 1.2rem;border-radius:16px;
  background:var(--paper-2);border-left:4px solid var(--clay);font-size:.95rem;color:var(--ink);
}
.demo-note svg{width:1.4rem;height:1.4rem;flex:none;margin-top:.15rem;color:var(--clay)}
.demo-note p{margin:0}
.v-img{display:none;margin:2rem 0 0;aspect-ratio:3/2;border-radius:6px;overflow:hidden;background:var(--c)}
.v-img img{width:100%;height:100%;object-fit:cover}
.form-card{
  background:var(--white);border-radius:28px;padding:clamp(1.4rem,3.4vw,2.6rem);
  box-shadow:0 1px 0 var(--line-strong),0 30px 60px -40px rgba(60,40,20,.5);
  border:1px solid var(--line);
}
.form-card h3{margin-bottom:1.4rem}
.fgrid{display:grid;gap:1.1rem}
.field{display:grid;gap:.4rem;border:0;padding:0;margin:0;min-width:0}
.field label,.field legend{font:600 .85rem/1.3 var(--sans);letter-spacing:.04em;padding:0}
.field label i,.field legend i{font-style:normal;font-weight:400;color:var(--ink-soft)}
.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{
  width:100%;min-height:3.3rem;padding:.8rem 1rem;border-radius:14px;border:1.5px solid var(--line-strong);
  background:#fff;font-size:1.05rem;line-height:1.4;transition:border-color .2s,box-shadow .2s;
}
.field textarea{min-height:7.5rem;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#6d6558}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--clay);box-shadow:0 0 0 4px rgba(160,69,38,.18)}
.field [aria-invalid="true"]{border-color:#9b2c1b}
.err{min-height:0;font-size:.88rem;color:#9b2c1b;font-weight:500}
.err:empty{display:none}
.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%232A2620' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.1rem center}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative}
.chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
.chip span{
  display:inline-flex;align-items:center;min-height:2.9rem;padding:0 1.1rem;border-radius:999px;border:1.5px solid var(--line-strong);
  font-size:.95rem;font-weight:500;background:#fff;transition:background .2s,border-color .2s,color .2s;
}
.chip input:checked + span{background:var(--forest);color:var(--on-dark);border-color:var(--forest)}
.chip input:focus-visible + span{outline:3px solid var(--clay);outline-offset:3px}
.check{display:flex;gap:.8rem;align-items:center;font-size:.93rem;line-height:1.45;cursor:pointer;padding:.4rem 0;min-height:2.9rem}
.check input{flex:none;width:1.4rem;height:1.4rem;margin:.1rem 0 0;accent-color:var(--clay)}

.form-foot{margin-top:1.5rem;display:grid;gap:1rem}
.form-foot small{font-size:.85rem;color:var(--ink-soft);line-height:1.5}
.sent{padding:.5rem 0}
.sent[hidden]{display:none}
.sent h3{font-size:2.3rem;margin-bottom:1rem}
.sent .rose{width:3.2rem;height:3.2rem;color:var(--clay);--core:var(--white);margin-bottom:1rem}
.sent ol{list-style:none;counter-reset:q;display:grid;gap:.4rem;margin:1.4rem 0}
.sent li{counter-increment:q;display:grid;grid-template-columns:2rem 1fr;gap:.6rem;font-size:.97rem}
.sent li::before{content:counter(q);display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--forest);color:var(--paper);font:700 .8rem var(--sans)}
.sent .mail{display:inline-block;margin:.2rem 0 1.2rem;padding:.7rem 1rem;border-radius:12px;background:var(--paper-2);font-family:ui-monospace,Menlo,monospace;font-size:.85rem;line-height:1.5;word-break:break-word}
@media (min-width:640px){.fgrid.two{grid-template-columns:1fr 1fr}.fgrid .full{grid-column:1/-1}}
@media (min-width:960px){
  .v-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(3rem,6vw,6rem);align-items:start}
  .v-side{position:sticky;top:calc(var(--hdr) + 2rem)}
  .v-img{display:block}
}

/* ---------- faq ---------- */
.q-grid{display:grid;gap:2.5rem}
.faq{border-top:1px solid var(--line-strong)}
.faq details{border-bottom:1px solid var(--line-strong)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;
  min-height:4.2rem;padding:.9rem 0;font:400 clamp(1.35rem,2.6vw,1.8rem)/1.15 var(--serif);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:none;width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--ink);
  background:
    linear-gradient(var(--ink),var(--ink)) center/.9rem 1.5px no-repeat,
    linear-gradient(var(--ink),var(--ink)) center/1.5px .9rem no-repeat;
  transition:transform .4s var(--ease),background-color .3s;
}
.faq summary:hover::after{background-color:rgba(160,69,38,.1)}
.faq details[open] summary::after{transform:rotate(45deg);background-color:var(--clay);border-color:var(--clay);
  background-image:linear-gradient(#fff8ef,#fff8ef),linear-gradient(#fff8ef,#fff8ef)}
.faq .a{padding:0 0 1.6rem;max-width:42rem;color:var(--ink-soft)}
.faq .a p{margin:0 0 .8em}
.faq .a p:last-child{margin:0}
.faq .a b{color:var(--ink)}
.q-side p{color:var(--ink-soft)}
.q-side .btn{margin-top:.8rem}
@media (min-width:960px){
  .q-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(3rem,7vw,7rem);align-items:start}
  .q-side{position:sticky;top:calc(var(--hdr) + 2rem)}
}

/* ---------- accès & contact ---------- */
.c-top{display:grid;gap:2rem;padding-bottom:clamp(3.5rem,8vw,6rem);border-bottom:1px solid rgba(246,239,228,.2);margin-bottom:clamp(3rem,7vw,5rem)}
.c-top h2{max-width:14ch}
.c-top .cta-row{margin-top:1.6rem}
.c-grid{display:grid;gap:3rem}
.dist{list-style:none;margin:1.8rem 0 0;border-top:1px solid rgba(246,239,228,.2)}
.dist li{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(246,239,228,.14)}
.dist b{font:400 1.45rem/1.1 var(--serif);color:var(--gold);white-space:nowrap}
.addr{margin:1.6rem 0 0;font-style:normal;color:var(--on-dark-soft);line-height:1.6}
.addr strong{color:var(--on-dark);font-weight:600}
.contact-lines{display:grid;gap:.4rem;margin-top:2rem}
.contact-lines a{display:inline-flex;align-items:center;gap:.8rem;min-height:2.9rem;text-decoration:none;font:400 clamp(1.9rem,5vw,2.6rem)/1.1 var(--serif);width:fit-content}
.contact-lines a:hover{color:var(--gold)}
.contact-lines a.sm{font:500 1.05rem var(--sans);text-decoration:underline;text-underline-offset:.3em}
.contact-lines svg{width:1.4rem;height:1.4rem;color:var(--gold);flex:none}
.map-ph{margin:0;border-radius:22px;overflow:hidden;background:#2a2118;position:relative;box-shadow:inset 0 0 0 1px rgba(246,239,228,.18)}
.map-ph svg{width:100%;height:auto}
.map-ph figcaption{padding:.9rem 1.2rem 1.1rem;font-size:.88rem;color:var(--on-dark-soft);border-top:1px solid rgba(246,239,228,.14)}
@media (min-width:960px){
  .c-top{grid-template-columns:1.1fr .9fr;align-items:end}
  .c-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(3rem,6vw,6rem);align-items:start}
}

/* ---------- pied de page ---------- */
.site-footer{background:var(--ink);color:var(--on-dark);padding-top:clamp(3.5rem,7vw,5.5rem)}
.f-top{display:grid;gap:2.5rem;padding-bottom:3rem}
.site-footer .brand{--core:var(--ink)}
.site-footer .brand svg{color:var(--gold)}
.site-footer .brand small{color:var(--on-dark-soft)}
.site-footer p{color:var(--on-dark-soft);font-size:.95rem}
.f-nav{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.5rem}
.f-nav a{display:flex;align-items:center;min-height:2.75rem;text-decoration:none;font-size:.97rem}
.f-nav a:hover{color:var(--gold);text-decoration:underline}
.credits{border-top:1px solid rgba(246,239,228,.16);padding:1.8rem 0 2rem}
.credits h2{font:600 .78rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem}
.credits p{font-size:.88rem;line-height:1.9;margin:0 0 .6rem;max-width:70rem}
.credits a{text-underline-offset:.2em;color:var(--on-dark)}
.legal{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.85rem;color:var(--on-dark-soft);padding-bottom:1.6rem}
.demo-banner{
  display:block;background:var(--gold);color:#201a12;text-align:center;
  padding:1.1rem var(--gutter) calc(1.1rem + env(safe-area-inset-bottom));
  font:600 .98rem/1.5 var(--sans);text-decoration:none;
}
.demo-banner u{text-underline-offset:.25em;text-decoration-thickness:1.5px}
.demo-banner:hover u{text-decoration-thickness:3px}
.demo-banner:focus-visible{outline:3px solid var(--night);outline-offset:-6px}
@media (min-width:960px){
  .f-top{grid-template-columns:1.2fr 1fr;align-items:start}
  .f-nav{grid-template-columns:repeat(4,auto);justify-content:end;gap:0 2rem}
}

/* ---------- cta flottant (mobile) ---------- */
.float-cta{
  position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:45;
  transform:translate(-50%,160%);visibility:hidden;opacity:0;
  transition:transform .5s var(--ease),opacity .4s,visibility 0s .5s;
  box-shadow:0 14px 34px -10px rgba(40,20,10,.55);white-space:nowrap;
}
.float-cta.show{transform:translate(-50%,0);visibility:visible;opacity:1;transition-delay:0s}
@media (min-width:960px){.float-cta{display:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
  .js .reveal-arch img{clip-path:none}
}
@media print{.site-header,.float-cta,body::before{display:none}}
