:root{
--cream:#fff9f2;
--navy:#24324a;
--rose:#d9828b;
--blush:#f7e8e5;
--lavender:#8c7aa9;
--ink-soft:#596377;
--line:#e8d9d6}
*{
box-sizing:border-box}
html{
scroll-behavior:smooth}
body{
background:var(--cream);
color:var(--navy);
margin:0;
font-family:Arial,Helvetica,sans-serif}
a{
color:inherit;
text-decoration:none}
img{
max-width:100%}
.site-header{
-webkit-backdrop-filter:blur(14px);
backdrop-filter:blur(14px);
z-index:30;
background:#fff9f2eb;
border-bottom:1px solid #24324a17;
justify-content:space-between;
align-items:center;
padding:17px clamp(20px,6vw,92px);
display:flex;
position:sticky;
top:0}
.brand img{
width:auto;
height:50px;
display:block}
nav{
align-items:center;
gap:30px;
font-size:14px;
font-weight:700;
display:flex}
nav a:not(.nav-cta):hover{
color:#ac5661}
.nav-cta{
background:var(--navy);
color:var(--cream);
border-radius:999px;
padding:12px 20px}
.hero{
grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);
align-items:center;
gap:clamp(44px,6vw,88px);
min-height:calc(100vh - 85px);
padding:clamp(66px,8vw,120px) clamp(22px,7vw,108px);
display:grid;
position:relative;
overflow:hidden}
.hero:before{
background:var(--blush);
content:"";
z-index:-1;
border-radius:50%;
width:650px;
height:650px;
position:absolute;
top:-210px;
right:-310px}
.eyebrow,.section-kicker{
color:#a6535d;
letter-spacing:.15em;
text-transform:uppercase;
font-size:12px;
font-weight:800}
h1{
letter-spacing:-.055em;
max-width:890px;
margin:23px 0;
font-size:clamp(43px,5.8vw,80px);
line-height:.98}
h2{
letter-spacing:-.045em;
margin:18px 0;
font-size:clamp(36px,4.7vw,66px);
line-height:1.02}
h3{
letter-spacing:-.025em;
font-size:26px;
line-height:1.15}
.lead{
color:var(--ink-soft);
max-width:760px;
font-size:clamp(18px,2vw,22px);
line-height:1.62}
.hero-actions{
flex-wrap:wrap;
gap:14px;
margin:34px 0;
display:flex}
.button{
border-radius:999px;
justify-content:center;
padding:16px 23px;
font-weight:800;
transition:transform .2s,box-shadow .2s;
display:inline-flex}
.button:hover{
transform:translateY(-2px)}
.button-primary{
background:var(--rose);
box-shadow:0 14px 30px #d9828b40}
.button-secondary{
background:#ffffff8c;
border:1px solid #cbbcc4}
.audiences{
flex-wrap:wrap;
gap:9px;
margin:0;
padding:0;
list-style:none;
display:flex}
.audiences li{
border:1px solid var(--line);
color:var(--ink-soft);
background:#fff;
border-radius:999px;
padding:9px 14px;
font-size:13px;
font-weight:700}
.hero-visual{
border-radius:150px 150px 28px 28px;
min-height:570px;
position:relative;
overflow:hidden;
box-shadow:0 38px 80px #24324a2b}
.hero-visual img{
object-fit:cover;
width:100%;
height:100%;
position:absolute;
inset:0}
.hero-visual:after{
content:"";
background:linear-gradient(#0000 50%,#24324ad1);
position:absolute;
inset:0}
.hero-quote{
color:#fff;
z-index:2;
padding:38px;
position:absolute;
bottom:0;
left:0;
right:0}
.hero-quote span{
color:#f3c5ca;
letter-spacing:.12em;
text-transform:uppercase;
margin-bottom:10px;
font-size:12px;
font-weight:800;
display:block}
.hero-quote strong{
max-width:390px;
font-size:25px;
line-height:1.2;
display:block}
.section{
padding:clamp(78px,10vw,145px) clamp(22px,7vw,108px)}
.mission{
background:#fff}
.mission-grid{
grid-template-columns:1fr 1fr;
gap:clamp(50px,8vw,130px);
display:grid}
.mission-grid h2{
margin-top:0}
.mission-grid p{
color:var(--ink-soft);
font-size:17px;
line-height:1.75}
.mission-grid .large-copy{
color:var(--navy);
margin-top:0;
font-size:clamp(22px,2.3vw,30px);
font-weight:700;
line-height:1.45}
.manifesto{
background:var(--blush);
border-radius:30px;
margin-top:80px;
padding:clamp(30px,5vw,62px)}
.manifesto span{
color:#a6535d;
letter-spacing:.14em;
text-transform:uppercase;
font-size:12px;
font-weight:800}
.manifesto p{
letter-spacing:-.035em;
margin:18px 0 0;
font-size:clamp(26px,3.2vw,44px);
font-weight:800;
line-height:1.22}
.name-story{
border-bottom:1px solid var(--line);
border-top:1px solid var(--line);
grid-template-columns:1fr auto .7fr auto .7fr 1.5fr;
align-items:center;
gap:20px;
margin-top:70px;
padding:38px 0;
display:grid}
.name-story>div{
gap:4px;
display:grid}
.name-word{
color:var(--rose);
letter-spacing:-.05em;
font-size:38px;
font-weight:900}
.name-story strong{
font-size:16px}
.name-story small{
color:var(--ink-soft);
font-size:12px}
.name-plus{
color:#b8aeb5;
font-size:22px}
.name-story>p{
border-left:1px solid var(--line);
flex-direction:column;
gap:7px;
margin:0;
padding-left:32px;
display:flex}
.name-story>p strong{
font-size:30px}
.name-story>p span{
color:var(--ink-soft);
line-height:1.5}
.section-heading{
grid-template-columns:1.4fr .6fr;
align-items:end;
gap:40px;
margin-bottom:60px;
display:grid}
.section-heading h2{
max-width:780px;
margin-bottom:0}
.section-heading>p{
color:var(--ink-soft);
margin:0;
line-height:1.7}
.programs{
background:#fdf1ee}
.program-grid{
grid-template-columns:repeat(3,1fr);
gap:18px;
display:grid}
.program-card{
background:#fff;
border:1px solid #24324a14;
border-radius:28px;
flex-direction:column;
min-height:540px;
padding:34px;
display:flex}
.program-card:nth-child(2){
background:var(--navy);
color:var(--cream);
transform:translateY(-18px)}
.program-number{
color:var(--rose);
letter-spacing:.13em;
font-size:13px;
font-weight:900}
.program-card h3{
margin:65px 0 16px}
.program-card p{
color:var(--ink-soft);
line-height:1.65}
.program-card:nth-child(2) p{
color:#d9dde5}
.program-promise{
font-size:18px;
font-weight:800;
color:var(--navy)!important}
.program-card:nth-child(2) .program-promise{
color:#fff!important}
.program-card ul{
border-top:1px solid var(--line);
flex-wrap:wrap;
gap:8px;
margin:auto 0 0;
padding:24px 0 0;
list-style:none;
display:flex}
.program-card:nth-child(2) ul{
border-color:#ffffff2e}
.program-card li{
background:var(--blush);
color:var(--navy);
border-radius:999px;
padding:8px 10px;
font-size:12px;
font-weight:700}
.youth-feature{
background:var(--navy);
color:var(--cream);
grid-template-columns:1.15fr .85fr;
align-items:center;
gap:clamp(50px,8vw,130px);
display:grid}
.section-kicker.light{
color:#f0b5bb}
.youth-copy p{
color:#d7dce5;
max-width:700px;
font-size:17px;
line-height:1.75}
.youth-steps{
gap:12px;
display:grid}
.youth-steps div{
background:#ffffff14;
border:1px solid #ffffff1f;
border-radius:20px;
grid-template-columns:44px 1fr;
gap:5px;
padding:22px;
display:grid}
.youth-steps span{
color:var(--rose);
grid-row:1/3;
padding-top:3px;
font-size:12px;
font-weight:900}
.youth-steps strong{
font-size:20px}
.youth-steps small{
color:#bbc3d1;
font-size:14px}
.actions{
background:#fff}
.action-list{
border-top:1px solid var(--line)}
.action-list article{
border-bottom:1px solid var(--line);
grid-template-columns:.4fr 1fr 1.3fr;
align-items:start;
gap:30px;
padding:38px 0;
display:grid}
.action-list article>span{
color:#a6535d;
letter-spacing:.12em;
text-transform:uppercase;
font-size:12px;
font-weight:900}
.action-list h3{
margin:0}
.action-list p{
color:var(--ink-soft);
margin:0;
line-height:1.7}
.immersions{
background:linear-gradient(135deg,#fff9f2 0%,#f8ecec 100%);
grid-template-columns:.9fr 1.1fr;
align-items:center;
gap:clamp(55px,8vw,120px);
display:grid;
position:relative;
overflow:hidden}
.immersions:before{
background:var(--lavender);
content:"";
filter:blur(1px);
opacity:.12;
border-radius:50%;
width:370px;
height:370px;
position:absolute;
top:-210px;
left:-255px}
.immersions:after{
content:"";
border:1px solid #8c7aa938;
border-radius:50%;
width:470px;
height:470px;
position:absolute;
bottom:-250px;
right:-230px}
.immersion-intro,.immersion-experience{
z-index:1;
position:relative}
.immersion-label{
color:#a6535d;
letter-spacing:.13em;
text-transform:uppercase;
align-items:center;
gap:9px;
font-size:12px;
font-weight:900;
display:flex}
.immersion-label span{
background:var(--rose);
color:#fff;
border-radius:50%;
justify-content:center;
align-items:center;
width:28px;
height:28px;
display:inline-flex}
.immersion-intro h2{
margin:28px 0;
font-size:clamp(42px,5vw,70px)}
.immersion-intro h2 em{
color:var(--lavender);
font-family:Georgia,serif;
font-weight:400}
.immersion-intro>p{
color:var(--ink-soft);
max-width:590px;
font-size:18px;
line-height:1.75}
.immersion-themes{
flex-wrap:wrap;
gap:8px;
margin:28px 0 34px;
display:flex}
.immersion-themes span{
border:1px solid var(--line);
color:var(--navy);
background:#fff;
border-radius:999px;
padding:9px 13px;
font-size:12px;
font-weight:800}
.immersion-link{
align-items:center;
gap:14px;
font-weight:900;
display:inline-flex}
.immersion-link>span{
background:var(--navy);
color:#fff;
border-radius:50%;
justify-content:center;
align-items:center;
width:36px;
height:36px;
transition:transform .2s;
display:flex}
.immersion-link:hover>span{
transform:translate(4px)}
.immersion-experience{
gap:15px;
display:grid}
.immersion-main-card{
background:var(--navy);
color:#fff;
border-radius:34px;
min-height:360px;
padding:clamp(32px,5vw,56px);
position:relative;
overflow:hidden}
.immersion-main-card:after{
background:var(--rose);
content:"";
opacity:.25;
border-radius:50%;
width:230px;
height:230px;
position:absolute;
top:-85px;
right:-65px}
.card-kicker{
color:#f3bdc2;
letter-spacing:.14em;
text-transform:uppercase;
font-size:11px;
font-weight:900;
display:block}
.immersion-main-card>strong{
letter-spacing:-.09em;
margin:31px 0 18px;
font-size:clamp(92px,11vw,150px);
line-height:.92;
display:block}
.immersion-main-card>strong span{
color:var(--rose);
font-weight:400}
.immersion-main-card p{
margin:0;
font-size:clamp(20px,2.2vw,29px);
font-weight:700;
line-height:1.3}
.immersion-main-card small{
color:#bfc6d3;
font-size:12px;
position:absolute;
bottom:34px;
right:38px}
.immersion-mini-grid{
grid-template-columns:1fr 1fr;
gap:15px;
display:grid}
.immersion-mini-grid article{
border:1px solid var(--line);
background:#fff;
border-radius:24px;
min-height:190px;
padding:26px}
.immersion-mini-grid article:first-child{
background:var(--lavender);
color:#fff}
.immersion-mini-grid span{
color:#a6535d;
letter-spacing:.12em;
text-transform:uppercase;
font-size:10px;
font-weight:900}
.immersion-mini-grid article:first-child span{
color:#f3cbd0}
.immersion-mini-grid strong{
margin:27px 0 8px;
font-size:25px;
display:block}
.immersion-mini-grid p{
color:var(--ink-soft);
margin:0;
font-size:13px;
line-height:1.5}
.immersion-mini-grid article:first-child p{
color:#eeeaf4}
.media{
background:var(--blush);
grid-template-columns:.55fr 1.45fr;
align-items:center;
gap:70px;
display:grid}
.media-mark{
aspect-ratio:1;
background:var(--rose);
letter-spacing:-.04em;
border-radius:50%;
justify-content:center;
align-items:center;
font-size:clamp(28px,4vw,50px);
font-weight:900;
display:flex;
transform:rotate(-8deg)}
.media>div:last-child>p{
color:var(--ink-soft);
max-width:720px;
font-size:18px;
line-height:1.7}
.shows{
flex-wrap:wrap;
gap:10px;
margin-top:30px;
display:flex}
.shows span{
background:#fff;
border-radius:999px;
padding:11px 15px;
font-size:13px;
font-weight:800}
.nearby{
background:#fff}
.nearby-priority{
background:var(--navy);
color:#fff;
letter-spacing:.12em;
text-transform:uppercase;
border-radius:999px;
margin-bottom:32px;
padding:10px 15px;
font-size:11px;
font-weight:900;
display:inline-flex}
.nearby-intro{
grid-template-columns:1.25fr .75fr;
align-items:end;
gap:clamp(45px,8vw,120px);
margin-bottom:38px;
display:grid}
.nearby-intro h2{
max-width:850px;
margin-bottom:0}
.nearby-lead{
color:var(--ink-soft);
max-width:750px;
margin:24px 0 0;
font-size:18px;
line-height:1.7}
.city-launch{
border-left:3px solid var(--rose);
padding-left:24px}
.city-launch>span,.nearby-cta span{
color:#a6535d;
letter-spacing:.13em;
text-transform:uppercase;
margin-bottom:9px;
font-size:11px;
font-weight:900;
display:block}
.city-launch strong{
font-size:20px;
line-height:1.35;
display:block}
.city-launch p{
color:var(--ink-soft);
margin-bottom:0;
line-height:1.65}
.nearby-journey{
background:var(--navy);
color:#fff;
border-radius:28px;
grid-template-columns:repeat(3,1fr);
gap:0;
margin-bottom:22px;
display:grid;
overflow:hidden}
.nearby-journey>div{
min-height:170px;
padding:27px;
position:relative}
.nearby-journey>div+div{
border-left:1px solid #ffffff24}
.nearby-journey span{
color:var(--rose);
letter-spacing:.14em;
margin-bottom:25px;
font-size:12px;
font-weight:900;
display:block}
.nearby-journey strong{
margin-bottom:9px;
font-size:19px;
display:block}
.nearby-journey p{
color:#cbd1dc;
margin:0;
font-size:14px;
line-height:1.55}
.service-grid{
grid-template-columns:repeat(3,1fr);
gap:14px;
display:grid}
.service-card{
background:var(--cream);
border:1px solid var(--line);
border-radius:24px;
min-height:275px;
padding:27px}
.service-card:nth-child(2),.service-card:nth-child(5){
background:var(--blush)}
.service-icon{
border:1px solid var(--line);
color:var(--rose);
background:#fff;
border-radius:50%;
justify-content:center;
align-items:center;
width:48px;
height:48px;
font-size:22px;
display:flex}
.service-card h3{
margin:34px 0 12px;
font-size:22px}
.service-card p{
color:var(--ink-soft);
line-height:1.6}
.service-card small{
color:#a6535d;
letter-spacing:.1em;
text-transform:uppercase;
margin-top:24px;
font-size:11px;
font-weight:900;
display:block}
.listing-offers{
background:#f7f0f5;
border-radius:32px;
margin-top:58px;
padding:clamp(28px,5vw,58px)}
.offers-heading{
justify-content:space-between;
align-items:end;
gap:30px;
margin-bottom:38px;
display:flex}
.offers-heading>div>span{
color:#a6535d;
letter-spacing:.13em;
text-transform:uppercase;
font-size:11px;
font-weight:900}
.offers-heading>div>p{
color:var(--ink-soft);
max-width:330px;
margin:10px 0 0;
line-height:1.55}
.offers-heading h3{
text-align:right;
margin:0;
font-size:clamp(27px,3vw,42px)}
.offer-grid{
grid-template-columns:repeat(3,1fr);
align-items:stretch;
gap:15px;
display:grid}
.offer-card{
border:1px solid var(--line);
background:#fff;
border-radius:25px;
flex-direction:column;
min-height:455px;
padding:29px;
display:flex;
position:relative}
.offer-card.featured{
background:var(--navy);
border-color:var(--navy);
color:#fff;
transform:translateY(-10px)}
.offer-card.partner{
background:var(--blush)}
.offer-badge{
background:var(--rose);
color:var(--navy);
letter-spacing:.08em;
text-transform:uppercase;
border-radius:999px;
padding:8px 12px;
font-size:10px;
font-weight:900;
position:absolute;
top:18px;
right:20px}
.offer-top>span{
color:#a6535d;
letter-spacing:.12em;
text-transform:uppercase;
margin-bottom:25px;
font-size:12px;
font-weight:900;
display:block}
.offer-promise{
color:#596274;
margin:20px 0 0;
font-size:15px;
line-height:1.65}
.featured .offer-promise{
color:#ffffffc2}
.featured .offer-top>span{
color:#f1b8be}
.offer-top>strong{
letter-spacing:-.05em;
font-size:42px;
display:block}
.offer-top>small{
color:var(--ink-soft);
margin-top:4px;
display:block}
.featured .offer-top>small{
color:#bec6d4}
.offer-card ul{
border-top:1px solid var(--line);
margin:27px 0;
padding:20px 0 0;
list-style:none}
.featured ul{
border-color:#ffffff2e}
.offer-card li{
padding:7px 0 7px 23px;
line-height:1.45;
position:relative}
.offer-card li:before{
color:var(--rose);
content:"✓";
font-weight:900;
position:absolute;
left:0}
.offer-card>a{
border:1px solid var(--navy);
text-align:center;
border-radius:999px;
margin-top:auto;
padding:13px 17px;
font-size:13px;
font-weight:900}
.featured>a{
background:var(--rose);
border-color:var(--rose);
color:var(--navy)}
.pricing-note{
color:var(--ink-soft);
text-align:center;
margin:24px 0 0;
font-size:12px}
.nearby-cta{
background:var(--navy);
color:#fff;
border-radius:28px;
justify-content:space-between;
align-items:center;
margin-top:46px;
padding:34px clamp(26px,5vw,58px);
display:flex}
.nearby-cta h3{
margin:0}
.trust{
grid-template-columns:1fr 1fr;
gap:clamp(45px,8vw,120px);
display:grid}
.trust-copy>p{
color:var(--ink-soft);
font-size:19px;
line-height:1.72}
.trust-copy ul{
margin:34px 0 0;
padding:0;
list-style:none}
.trust-copy li{
border-top:1px solid var(--line);
padding:17px 0 17px 28px;
font-weight:700;
position:relative}
.trust-copy li:before{
color:var(--rose);
content:"•";
font-size:24px;
position:absolute;
top:11px;
left:3px}
.contact{
background:var(--navy);
color:#fff;
text-align:center}
.contact h2{
max-width:900px;
margin-left:auto;
margin-right:auto}
.contact>p:not(.eyebrow){
color:#d7dce5;
max-width:720px;
margin:0 auto 34px;
font-size:18px;
line-height:1.7}
.safety-note{
background:#f3ddd9;
justify-content:center;
gap:20px;
padding:22px clamp(22px,7vw,108px);
display:flex}
.safety-note span{
color:#5e4b4e;
max-width:850px}
footer{
background:#fff;
grid-template-columns:.5fr 1fr .7fr;
align-items:center;
gap:30px;
padding:50px clamp(22px,7vw,108px);
display:grid}
footer img{
width:auto;
height:52px}
footer p,footer span{
color:var(--ink-soft);
font-size:13px;
line-height:1.6}
footer span{
text-align:right}
@media (max-width:950px){
.hero,.mission-grid,.youth-feature,.immersions,.trust,.nearby-intro{
grid-template-columns:1fr}
.hero-visual{
min-height:520px}
.section-heading,.program-grid{
grid-template-columns:1fr}
.program-card{
min-height:auto}
.program-card:nth-child(2){
transform:none}
.name-story{
grid-template-columns:1fr auto 1fr auto 1fr}
.name-story>p{
border-left:0;
border-top:1px solid var(--line);
grid-column:1/-1;
padding:28px 0 0}
.action-list article{
grid-template-columns:.35fr 1fr}
.action-list p{
grid-column:2}
.media{
grid-template-columns:1fr}
.media-mark{
max-width:250px}
.nearby-journey{
grid-template-columns:1fr}
.nearby-journey>div{
min-height:auto}
.nearby-journey>div+div{
border-top:1px solid #ffffff24;
border-left:0}
.service-grid{
grid-template-columns:repeat(2,1fr)}
.offer-grid{
grid-template-columns:1fr}
.offer-card{
min-height:auto}
.offer-card.featured{
transform:none}
.nearby-cta{
flex-direction:column;
align-items:flex-start;
gap:25px}
footer{
grid-template-columns:1fr}
footer span{
text-align:left}
}
@media (max-width:560px){
.site-header{
padding:13px 17px}
.brand img{
height:40px}
.nav-cta{
padding:10px 13px}
.hero{
padding:54px 20px 75px}
h1{
font-size:44px}
.hero-visual{
border-radius:90px 90px 20px 20px;
min-height:440px}
.hero-actions .button{
width:100%}
.section{
padding:78px 20px}
.program-card{
padding:28px}
.action-list article{
grid-template-columns:1fr;
gap:12px}
.action-list p{
grid-column:1}
.immersion-main-card{
min-height:410px}
.immersion-main-card small{
bottom:28px;
left:32px;
right:auto}
.immersion-mini-grid,.service-grid{
grid-template-columns:1fr}
.offers-heading{
flex-direction:column;
align-items:flex-start}
.offers-heading h3{
text-align:left}
.safety-note{
display:block}
.safety-note span{
margin-top:8px;
display:block}
}
@media (prefers-reduced-motion:reduce){
html{
scroll-behavior:auto}
.button{
transition:none}
}

/* ===== Accessibilité : contrastes AA ===== */
.eyebrow,
.section-kicker { color: #8d3c46; }
.section-kicker.light { color: #ffe8d6; }
.button-secondary { color: #6d2b34; border-color: #6d2b34; }
.offer-card small,
.service-card small,
.pricing-note,
.immersion-mini-grid span,
.city-launch > span,
.offers-heading > div > span,
.action-list article > span,
.manifesto span { color: #6b5a52; }
.name-story small { color: #6b5a52; }
a:focus-visible,
button:focus-visible { outline: 3px solid #8d3c46; outline-offset: 3px; border-radius: 4px; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: #8d3c46; color: #fff; padding: .75rem 1.25rem;
  border-radius: 0 0 8px 0; font-weight: 700;
}
.skip-link:focus { left: 0; }

/* ===== Images fluides ===== */
img { max-width: 100%; }
.hero-visual picture { display: block; }
.hero-visual img, .hero-visual .hero-image {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 32%;
  display: block;
}

/* ===== Navigation mobile (burger) ===== */
.nav-toggle { display: none; }
.nav-scrim { display: none; }
.nav-mobile { display: none; }

@media (max-width: 949px) {
  .nav-desktop { display: none; }
  .nav-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; background: transparent;
    border: 1px solid rgba(109, 43, 52, .35); border-radius: 12px;
    cursor: pointer; margin-left: auto;
  }
  .nav-toggle-bars { display: block; width: 22px; }
  .nav-toggle-bars span {
    display: block; height: 2px; background: #6d2b34; border-radius: 2px;
    transition: transform .25s ease, opacity .2s ease;
  }
  .nav-toggle-bars span + span { margin-top: 5px; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .nav-scrim {
    display: block; position: fixed; inset: 0; background: rgba(35, 20, 18, .45);
    opacity: 0; pointer-events: none; transition: opacity .25s ease; z-index: 90;
  }
  .nav-scrim.is-open { opacity: 1; pointer-events: auto; }

  .nav-mobile {
    display: block; position: fixed; top: 0; right: 0; z-index: 100;
    width: min(86vw, 340px); height: 100vh; padding: 5.5rem 1.5rem 2rem;
    background: #FFF9F2; box-shadow: -14px 0 40px rgba(60, 30, 25, .18);
    transform: translateX(100%); transition: transform .28s ease;
    overflow-y: auto;
  }
  .nav-mobile[hidden] { display: none; }
  .nav-mobile.is-open { transform: translateX(0); }
  .nav-mobile ul { list-style: none; margin: 0 0 1.75rem; padding: 0; }
  .nav-mobile li + li { border-top: 1px solid rgba(109, 43, 52, .12); }
  .nav-mobile a {
    display: block; padding: .95rem .25rem; font-size: 1.05rem;
    color: #24324a; text-decoration: none; font-weight: 700;
  }
  .nav-mobile a:hover, .nav-mobile a:focus-visible { color: #8d3c46; }
  .nav-mobile .button { display: block; text-align: center; }
}
