/* Tulle · photographe de mariage fictif · une seule famille : Imbue (variable, opsz 10–100, wght 100–900) */
@font-face{font-family:"Imbue";src:url("fonts/imbue.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --paper:#f5f0e8; --gold-bg:#ecdcbc; --blue:#24324a; --night:#121019;
  --ink:#1d1a17; --mute:#665a4e; --line:rgba(29,26,23,.22); --line2:rgba(29,26,23,.5);
  --gold:#c99a4b; --act:#9a3b2c; --act-h:#862f22;
  --card:#fbf8f2; --card-ink:#1d1a17; --card-mute:#665a4e;
  --rail:84px; --hd:60px;
  --gut:clamp(10px,1.5vw,22px);
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:light;
}
html.dark{
  --ink:#f1ebe1; --mute:#bdb2a4; --line:rgba(241,235,225,.22); --line2:rgba(241,235,225,.5);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:calc(var(--hd) + 8px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Imbue",Georgia,serif;font-size:20px;line-height:1.5;
  font-weight:400;font-variation-settings:"opsz" 14;font-variant-numeric:oldstyle-nums proportional-nums;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,figure,ol,ul,dl,dd{margin:0;padding:0}
ol,ul{list-style:none}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;text-decoration:none;font-size:16px}
.skip:focus{top:12px}

/* ciel : calques fixes qui se croisent en opacité (jamais de transition sur body) */
.sky{position:fixed;inset:0;z-index:-1;pointer-events:none}
.sky i{position:absolute;inset:0;opacity:0;will-change:opacity}
.l-gold{background:var(--gold-bg)}
.l-blue{background:var(--blue)}
.l-night{background:var(--night)}

/* petites capitales, heures */
.k{font-size:12.5px;letter-spacing:.17em;text-transform:uppercase;font-weight:520;font-variation-settings:"opsz" 10;color:var(--mute);line-height:1.4}
.k .hr{color:var(--ink);margin-right:.9em;letter-spacing:.08em}
.hr{font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
h1,h2,h3{font-weight:200;font-variation-settings:"opsz" 100;letter-spacing:-.005em;line-height:.98}
h2{font-size:clamp(44px,6.2vw,96px);margin:.32em 0 .3em;text-wrap:balance}
.lede{font-size:clamp(19px,1.45vw,22px);max-width:34em;color:var(--ink);text-wrap:pretty}
.lede.big{font-size:clamp(24px,2.6vw,38px);font-weight:260;font-variation-settings:"opsz" 60;line-height:1.25;max-width:26em}

/* boutons : la brique est réservée aux actions */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--act);color:#fff;text-decoration:none;border:0;border-radius:2px;
  font-size:15px;letter-spacing:.12em;text-transform:uppercase;font-weight:560;font-variation-settings:"opsz" 10;padding:15px 22px 14px;cursor:pointer;
  transition:background-color .25s,transform .25s var(--ease)}
.btn:hover{background:var(--act-h)}
.btn:active{transform:translateY(1px)}
.btn-s{padding:10px 14px 9px;font-size:12.5px}
.lnk{background:none;border:0;padding:4px 0;cursor:pointer;font-size:17px;text-decoration:none;color:var(--ink);
  background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .4s var(--ease)}
.lnk:hover{background-size:0 1px;background-position:100% 100%}

/* en-tête */
.top{position:sticky;top:0;z-index:30;height:var(--hd);display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:0 clamp(16px,3vw,40px) 0 clamp(16px,2.2vw,32px);background:var(--paper)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);opacity:0;transition:opacity .3s}
.top.sc::after{opacity:1}
.brand{font-size:30px;font-weight:300;font-variation-settings:"opsz" 72;text-decoration:none;letter-spacing:.02em;line-height:1}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,34px)}
.nav a:not(.btn){text-decoration:none;font-size:16px;position:relative;padding:6px 0}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left}
.now{display:none}

/* règle des heures */
.rail{position:fixed;left:28px;top:calc(var(--hd) + 26px);bottom:34px;width:46px;z-index:20;pointer-events:none;color:var(--ink)}
.rail-line{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line2)}
.rail-ticks{position:absolute;inset:0}
.rail-ticks span{position:absolute;left:0;width:5px;height:1px;background:var(--line2)}
.rail-ticks span.m{width:9px}
.rail-ticks span.m::after{content:attr(data-l);position:absolute;left:14px;top:-8px;font-size:11px;letter-spacing:.1em;font-variant-numeric:lining-nums tabular-nums;color:var(--mute);font-variation-settings:"opsz" 10;font-weight:500;white-space:nowrap}
.rail-mark{position:absolute;left:-3px;top:0;will-change:transform;display:flex;align-items:center;gap:8px;height:0}
.rail-dash{width:22px;height:1px;background:var(--ink);display:block}
.rail-dash::before{content:"";position:absolute;left:0;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
.rail-lbl{font-size:12px;letter-spacing:.08em;font-variant-numeric:lining-nums tabular-nums;font-weight:600;font-variation-settings:"opsz" 10;white-space:nowrap;
  background:var(--paper);padding:2px 6px 1px;margin-left:-2px;line-height:1.2;color:var(--ink)}
html.dark .rail-lbl{background:transparent}
.rail-ticks span.m.near::after{opacity:0}

/* gabarit */
.pg{max-width:1500px;margin-left:auto;margin-right:auto;padding-left:calc(var(--rail) + clamp(16px,3vw,56px));padding-right:clamp(16px,4vw,64px)}
section{position:relative}
.chap{padding-top:clamp(72px,8vw,112px)}
figure{min-width:0}
.ph{position:relative;overflow:hidden;background:rgba(127,110,90,.14)}
.ph img{width:100%;height:auto}
figcaption{font-size:15.5px;line-height:1.4;margin-top:12px;color:var(--mute);font-variation-settings:"opsz" 10;max-width:40em}
figcaption .hr{color:var(--ink);letter-spacing:.06em;margin-right:.6em;font-size:12.5px;font-weight:600}

/* ouverture */
.open{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:end;
  min-height:calc(100svh - var(--hd));padding-top:clamp(20px,3vh,40px);padding-bottom:clamp(24px,4vh,48px)}
.open-txt{display:flex;flex-direction:column;justify-content:space-between;height:100%;padding-bottom:4px;gap:24px}
.open h1{font-size:clamp(130px,19vw,310px);font-weight:120;line-height:.8;letter-spacing:-.02em;margin:auto 0 0 -.04em}
.open-line{font-size:clamp(28px,2.9vw,46px);font-weight:250;font-variation-settings:"opsz" 72;line-height:1.1;margin-top:.3em}
.open-p{max-width:30em;font-size:clamp(18px,1.35vw,21px)}
.open-cta{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.open-ph{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end}
.open-ph .ph{flex:1;min-height:0}
.open-ph .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;position:absolute;inset:0}
.open-ph .ph{aspect-ratio:auto;height:calc(100svh - var(--hd) - 120px);max-height:1000px}

/* sommaire de la journée */
.open-top{display:grid;gap:18px}
.toc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 24px;max-width:600px}
.toc a{display:flex;gap:.7em;align-items:baseline;text-decoration:none;font-size:16px;padding:5px 0;border-top:1px solid var(--line);color:var(--ink)}
.toc .hr{font-size:12px;letter-spacing:.06em;font-weight:600;color:var(--mute);min-width:4.6em}
.toc a:hover .hr{color:var(--ink)}

/* doubles pages */
.spread{display:flex;gap:var(--gut);margin-top:clamp(36px,5vw,64px);position:relative;align-items:flex-start}
.spread>figure{flex:var(--a) 1 0;min-width:0}
.spread::before{content:"";position:absolute;left:50%;top:0;width:1px;height:0}
.ch-h .k{margin-bottom:0}
.c1 .ch-h{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:clamp(24px,5vw,90px);align-items:end}
.c1 .ch-h .k{grid-column:1/-1}
.c1 .ch-h h2{margin-bottom:0}
.c1 .ch-h .lede{padding-bottom:.4em}

.c2-top{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end}
.ch-side h2{font-size:clamp(44px,5vw,80px)}
.c2 .spread{width:78%;margin-left:auto}

/* portraits */
.c3{padding-top:clamp(80px,9vw,130px)}
.bleed{position:relative;width:100%;height:min(92svh,1000px);overflow:hidden;margin:0}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.plateau img{object-position:50% 62%}
.bleed-cap{position:absolute;left:0;right:0;bottom:0;margin:0;max-width:none;color:#f7f2ea;
  padding:120px clamp(16px,4vw,64px) clamp(28px,5vw,64px) calc(var(--rail) + clamp(16px,3vw,56px));
  background:linear-gradient(to top,rgba(14,16,20,.55),rgba(14,16,20,.25) 55%,rgba(14,16,20,0))}
.bleed-cap .k,.bleed-cap .k .hr{color:#f7f2ea}
.bleed-cap h2{font-size:clamp(48px,7.4vw,124px);margin:.2em 0 0;color:#fff;max-width:12em}
.lines>span{display:block;overflow:hidden;padding-bottom:.06em}
.lines>span>span{display:block;transform:translateY(105%);transition:transform 1.2s var(--ease)}
.lines>span:nth-child(2)>span{transition-delay:.12s}
.vis .lines>span>span,.lines.vis>span>span{transform:none}
.c3-intro{padding-top:clamp(44px,5vw,72px);display:flex;justify-content:flex-end}
.c3-intro .lede.big{max-width:24em}
.c3 .spread{margin-top:clamp(48px,6vw,90px)}
.c3-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--gut);margin-top:clamp(44px,5vw,80px);align-items:start}
.c3-side{display:grid;gap:clamp(20px,2.5vw,36px)}

/* dîner */
.c4-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,4.5vw,80px);align-items:center}

/* heure bleue */
.c5{padding-bottom:clamp(48px,6vw,90px)}
.c5-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,96px);align-items:center}
.c5-txt h2{font-size:clamp(46px,5.6vw,92px)}
.c5-ph .ph{max-height:88svh}
.c5-ph{max-width:620px;justify-self:end;width:100%}

.nuit{height:185svh;position:relative}
.nuit-stick{position:sticky;top:0;height:100svh;overflow:hidden}
.nuit-txt{position:absolute;left:calc(var(--rail) + clamp(16px,3vw,56px));top:50%;transform:translateY(-50%);max-width:30%;color:var(--ink);z-index:1}
.nuit-txt h2{font-size:clamp(44px,5vw,84px)}
.nuit-frame{position:absolute;inset:0;transform-origin:86% 50%;will-change:transform;z-index:2;background:#05070c}
.nuit-frame img{width:100%;height:100%;object-fit:cover;object-position:52% 62%}
.nuit-cap{position:absolute;left:calc(var(--rail) + clamp(16px,3vw,56px));top:calc(var(--hd) + clamp(28px,6vh,64px));color:#f3eee6;font-size:clamp(20px,1.8vw,28px);
  font-variation-settings:"opsz" 40;font-weight:300;max-width:24em;opacity:0;will-change:opacity}
.nuit-cap .hr{font-size:12.5px;letter-spacing:.08em;font-weight:600;margin-right:.8em;font-variation-settings:"opsz" 10}
.nuit-end{position:absolute;bottom:0;left:0;width:1px;height:1px}

/* fête */
.c6{padding-top:clamp(72px,8vw,112px)}
.ch-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:clamp(24px,5vw,90px);align-items:end}
.ch-row .k{grid-column:1/-1}
.ch-row h2{margin-bottom:0}
.c6 .spread{align-items:flex-end}

/* révélations */
.js .rise{opacity:0;transform:translateY(22px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--d,0)*.11s + .1s)}
.js .ready .rise,.js .rise.vis{opacity:1;transform:none}
.js .rise-in{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1.2s var(--ease);transition-delay:calc(var(--d,0)*.12s)}
.js .rise-in.vis{opacity:1;transform:none}
/* rideau (préparatifs) */
.js .curtain .ph::after{content:"";position:absolute;inset:0;background:var(--paper);transform-origin:50% 0;transition:transform 1.3s var(--ease)}
.js .curtain figure:nth-child(2) .ph::after{transition-delay:.18s}
.js .curtain.vis .ph::after{transform:scaleY(0)}
.js .curtain figcaption{opacity:0;transition:opacity .8s .7s}
.js .curtain.vis figcaption{opacity:1}
/* glisser (deux focales) */
.js .slide figure{opacity:0;transition:opacity 1s var(--ease),transform 1.3s var(--ease)}
.js .slide figure:first-child{transform:translateX(5%)}
.js .slide figure:last-child{transform:translateX(-12%)}
.js .slide.vis figure{opacity:1;transform:none}
/* volet horizontal (dîner) */
.js .wipe .ph::after{content:"";position:absolute;inset:0;background:var(--gold-bg);transform-origin:100% 50%;transition:transform 1.4s var(--ease)}
.js .wipe.vis .ph::after{transform:scaleX(0)}
/* éclair (fête) */
.js .flash .ph img{opacity:0;transition:opacity 1.6s ease-out .12s}
.js .flash .ph::after{content:"";position:absolute;inset:0;background:#fff6e4;opacity:0;pointer-events:none}
.js .flash.vis .ph img{opacity:1}
.js .flash.vis .ph::after{animation:flash 1.1s ease-out both}
.js .flash.vis figure:nth-child(2) .ph::after{animation-delay:.45s}
.js .flash.vis figure:nth-child(2) .ph img{transition-delay:.55s}
@keyframes flash{0%{opacity:0}8%{opacity:.85}100%{opacity:0}}

/* votre journée */
.journee{padding-top:clamp(90px,9vw,140px)}
.j-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,5vw,96px);align-items:start}
.j-ctl h2{font-size:clamp(44px,5vw,82px)}
.j-form{margin-top:clamp(28px,3vw,44px);display:grid;gap:26px}
.fld{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.fld label,.fld legend,.lab{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:540;font-variation-settings:"opsz" 10;color:var(--mute);padding:0}
.fld legend{margin-bottom:8px}
.j-form input[type=date]{background:transparent;border:0;border-bottom:1px solid var(--line2);padding:8px 0 10px;font-size:24px;font-variation-settings:"opsz" 30;color:var(--ink);border-radius:0;max-width:280px}
html.dark .j-form input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}
.places{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.fld .pl{position:relative;display:block;cursor:pointer;border-top:1px solid var(--line);padding:12px 0 12px 26px;font-size:15px;color:var(--mute);text-transform:none;letter-spacing:0;font-variation-settings:"opsz" 12;font-weight:400}
.pl input{position:absolute;opacity:0;width:1px;height:1px}
.pl span::before{content:"";position:absolute;left:2px;top:19px;width:11px;height:11px;border:1px solid var(--line2);border-radius:50%;transition:background-color .25s,border-color .25s}
.pl input:checked+span::before{background:var(--gold);border-color:var(--gold)}
.pl b{display:block;font-weight:400;font-size:21px;color:var(--ink);font-variation-settings:"opsz" 30;line-height:1.2}
.pl input:focus-visible+span{outline:2px solid var(--gold);outline-offset:4px}
.step{display:inline-flex;align-items:center;gap:0;border-bottom:1px solid var(--line2);width:max-content}
.step button{width:46px;height:46px;background:none;border:0;cursor:pointer;font-size:26px;line-height:1;color:var(--ink);border-radius:2px}
.step button:hover{background:var(--line)}
.step output{min-width:5.4em;text-align:center;font-size:26px;font-variation-settings:"opsz" 30;font-variant-numeric:lining-nums tabular-nums}

.sheet{background:var(--card);color:var(--card-ink);padding:clamp(22px,3vw,44px);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);position:relative}
.sheet::before{content:"";position:absolute;inset:8px;border:1px solid rgba(29,26,23,.12);pointer-events:none}
.sheet-k{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:560;font-variation-settings:"opsz" 10;color:var(--card-mute)}
.sheet-d{font-size:clamp(30px,3vw,44px);font-weight:250;font-variation-settings:"opsz" 80;line-height:1.05;margin-top:10px}
.sheet-s{font-size:16px;color:var(--card-mute);margin-top:6px}
.sheet-s b{color:var(--card-ink);font-weight:600;font-variant-numeric:lining-nums tabular-nums}
.rows{margin-top:22px;border-top:1px solid rgba(29,26,23,.5)}
.row{display:grid;grid-template-columns:6.6em minmax(0,1fr);gap:14px;padding:10px 0 9px;position:relative;min-height:62px;align-items:baseline}
.row::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(29,26,23,.16);transform-origin:0 50%}
.row-t{font-size:14px;font-weight:600;letter-spacing:.04em;font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 10;white-space:nowrap}
.row-l{font-size:19px;line-height:1.25;font-variation-settings:"opsz" 18}
.row-n{display:block;font-size:14.5px;color:var(--card-mute);margin-top:2px;font-variation-settings:"opsz" 10}
.row.key .row-l{font-weight:560}
.row.key .row-t{color:#7a5317}
.row.key::before{content:"";position:absolute;left:-14px;top:18px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.js .row{opacity:0}
.js .row::after{transform:scaleX(0)}
.rows.go .row{animation:wr .7s var(--ease) both;animation-delay:calc(var(--i)*.13s)}
.rows.go .row::after{animation:ln .9s var(--ease) both;animation-delay:calc(var(--i)*.13s + .1s)}
@keyframes wr{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ln{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sheet-f{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:22px}
.sheet-f p{font-size:17px;max-width:22em;min-height:2.6em}
.sheet-n{font-size:13.5px;color:var(--card-mute);margin-top:18px;font-variation-settings:"opsz" 10;line-height:1.45}

/* la lumière de ce jour-là */
.light{margin-top:30px}
.light .lab{display:block;margin-bottom:12px}
.light-bar{position:relative;height:16px;border:1px solid var(--line2);background:#e9e2d4}
.light-c{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--act);left:0}
.light-sc{display:flex;justify-content:space-between;font-size:12px;color:var(--mute);margin-top:6px;font-variant-numeric:lining-nums;letter-spacing:.06em}
.light-l{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:4px 30px;margin-top:16px}
.light-l dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:540;font-variation-settings:"opsz" 10;display:flex;align-items:center;gap:8px}
.light-l dd{margin:4px 0 0;font-size:19px;font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 20;white-space:nowrap}
.sw{display:inline-block;width:10px;height:10px;border-radius:50%}
.sw-g{background:#d9a24b}.sw-s{background:#b4532f}.sw-b{background:#4f6a9a}

/* étapes de la demande */
.steps{margin-top:clamp(28px,3vw,44px);border-top:1px solid var(--line2);max-width:30em}
.steps li{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:14px;padding:13px 0 12px;border-bottom:1px solid var(--line);font-size:16.5px;color:var(--mute);line-height:1.45}
.steps b{font-weight:400;color:var(--ink);font-size:19px;font-variation-settings:"opsz" 24;line-height:1.3}

/* formules */
.formules{padding-top:clamp(90px,9vw,140px)}
.f-h{display:block}
.f-h h2{font-size:clamp(44px,5vw,82px);max-width:11em}
.offers{margin-top:clamp(28px,4vw,56px);border-top:1px solid var(--line2)}
.offer{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.3fr) auto;gap:clamp(18px,3vw,56px);align-items:center;padding:clamp(22px,2.6vw,34px) 0;border-bottom:1px solid var(--line)}
.o-name h3{font-size:clamp(34px,3.4vw,54px);font-weight:220}
.o-name p{font-size:16px;color:var(--mute);margin-top:8px;max-width:26em}
.o-span{display:grid;grid-template-columns:3.2em minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;align-items:center}
.o-h{font-size:22px;font-variation-settings:"opsz" 30;font-variant-numeric:lining-nums}
.o-bar{position:relative;height:9px;border-left:1px solid var(--line2);border-right:1px solid var(--line2)}
.o-bar::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--line2)}
.o-bar i{position:absolute;top:1px;height:7px;background:var(--gold);left:calc((var(--s) - 0) / 16 * 100%);width:calc((var(--e) - var(--s)) / 16 * 100%);transform-origin:0 50%}
.js .o-bar i{transform:scaleX(0);transition:transform 1.4s var(--ease)}
.js .offer.vis .o-bar i{transform:none}
.offer:nth-child(2) .o-bar i{transition-delay:.15s}
.offer:nth-child(3) .o-bar i{transition-delay:.3s}
.o-t{grid-column:2;font-size:13px;color:var(--mute);margin-top:6px;letter-spacing:.06em;font-variant-numeric:lining-nums}
.o-p{font-size:clamp(30px,2.8vw,44px);font-weight:250;font-variation-settings:"opsz" 60;font-variant-numeric:lining-nums tabular-nums;text-align:right;white-space:nowrap}
.o-scale{display:none}
.recv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:clamp(24px,4vw,64px);margin-top:clamp(56px,6vw,96px)}
.recv-t{font-size:clamp(30px,2.8vw,44px);font-weight:250}
.recv-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,48px)}
.recv-l div{border-top:1px solid var(--line2);padding-top:14px}
.recv-l dt{font-size:22px;font-variation-settings:"opsz" 30;font-weight:400;margin-bottom:8px}
.recv-l dd{font-size:16.5px;color:var(--mute);line-height:1.5}

/* Lou */
.lou{padding-top:clamp(90px,9vw,140px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);column-gap:clamp(28px,5vw,96px);row-gap:28px;align-items:start}
.lou-t{font-size:clamp(90px,12vw,200px);font-weight:120;line-height:.8;grid-row:span 2;margin:0}
.lou-big{font-size:clamp(26px,2.6vw,40px);font-weight:260;font-variation-settings:"opsz" 60;line-height:1.22}
.lou-txt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,48px)}
.lou-txt p{font-size:18px}
.lou-f{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 28px;border-top:1px solid var(--line);padding-top:14px}
.lou-f li{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-variation-settings:"opsz" 10;font-weight:520}

/* demande */
.demande{padding-top:clamp(90px,9vw,140px);padding-bottom:clamp(40px,5vw,80px)}
.d-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(28px,5vw,96px);align-items:start}
.d-h h2{font-size:clamp(44px,5vw,82px)}
.d-card{background:var(--card);color:var(--card-ink);padding:clamp(22px,3.4vw,52px);position:relative;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);min-height:560px}
.d-card .fld label{color:var(--card-mute)}
.d-form{display:grid;gap:22px}
.d-two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}
.d-form input,.d-form textarea{background:transparent;border:0;border-bottom:1px solid rgba(29,26,23,.45);padding:6px 0 9px;font-size:21px;font-variation-settings:"opsz" 24;color:var(--card-ink);border-radius:0;width:100%;resize:vertical;
  transition:border-color .3s}
.d-form textarea{border:1px solid rgba(29,26,23,.3);padding:10px 12px;font-size:18px;line-height:1.45}
.d-form input::placeholder,.d-form textarea::placeholder{color:#8a7d70;opacity:1}
.d-form input:focus,.d-form textarea:focus{outline:none;border-color:var(--card-ink)}
.d-form input:focus-visible,.d-form textarea:focus-visible{box-shadow:0 2px 0 0 var(--gold)}
.d-form [aria-invalid=true]{border-color:var(--act)}
.err{font-size:14.5px;color:#8a3324}
.d-send{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.d-note{font-size:14px;color:var(--card-mute);font-variation-settings:"opsz" 10}
.d-card .lnk{color:var(--card-ink)}
.done-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:460px;justify-content:center}
.done-card:focus{outline:none}
.done-sun{width:220px;height:auto;margin-bottom:16px;overflow:visible}
.done-sun path,.done-sun circle{fill:none;stroke:var(--card-ink);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.done-sun .d-s{stroke:#b07a2a;fill:#e7c587}
.d-hz{stroke-dasharray:260;stroke-dashoffset:260;animation:dr 1.6s var(--ease) .1s forwards}
.d-gr{stroke-dasharray:200;stroke-dashoffset:200;animation:dr 1.2s var(--ease) .5s forwards}
.d-s{transform-box:fill-box;transform-origin:50% 50%;opacity:0;animation:sun 1.6s var(--ease) .9s forwards}
@keyframes dr{to{stroke-dashoffset:0}}
@keyframes sun{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(6px)}}
.done-card .k{color:var(--card-mute)}
.done-n{font-size:clamp(46px,5vw,80px);font-weight:200;font-variation-settings:"opsz" 100;line-height:1;margin-top:6px}
.done-d{font-size:24px;font-variation-settings:"opsz" 30}
.done-p{font-size:18px;max-width:26em;margin-top:10px}
.done-card>*:not(svg){opacity:0;animation:wr .8s var(--ease) forwards}
.done-card>.k{animation-delay:.3s}.done-n{animation-delay:.45s!important}.done-d{animation-delay:.6s!important}.done-p{animation-delay:.75s!important}
.done-card>.d-note{animation-delay:.9s}.done-card>.lnk{animation-delay:1s}

/* fin */
.fin{position:relative;padding:clamp(80px,10vw,150px) 0 40px;color:var(--ink)}
.fin-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr);justify-items:start}
.ember{width:clamp(80px,9vw,130px);height:clamp(80px,9vw,130px);position:relative;margin-bottom:28px}
.ember i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#ffe2a6 0,#e2a24b 9%,rgba(201,154,75,.38) 22%,rgba(201,154,75,.1) 45%,rgba(201,154,75,0) 70%)}
.js .ember i{opacity:0;transform:scale(.6);transition:opacity 2.4s ease,transform 2.4s var(--ease)}
.js .fin.vis .ember i{opacity:1;transform:none}
.fin-k{font-size:13px;letter-spacing:.12em;color:var(--mute);font-weight:600}
.fin-big{font-size:clamp(44px,6.6vw,112px);font-weight:150;font-variation-settings:"opsz" 100;line-height:1;max-width:12em;margin-top:14px;text-wrap:balance}
.fin-cta{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:clamp(32px,4vw,56px)}
.fin-meta{margin-top:clamp(80px,9vw,140px);width:100%;border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-columns:auto 1fr 1.4fr;gap:12px 40px;font-size:14px;color:var(--mute);font-variation-settings:"opsz" 10}
.fin-brand{color:var(--ink)}

/* tablette */
@media (max-width:1080px){
  .c2-top{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
  .c2 .spread{width:100%}
  .offer{grid-template-columns:minmax(0,1fr) auto;row-gap:14px}
  .o-span{grid-column:1/-1;grid-row:2}
  .lou{grid-template-columns:1fr}
  .lou-t{grid-row:auto}
  .fin-meta{grid-template-columns:1fr}
}

/* téléphone : conçu, pas rétréci */
.j-bar{display:none}
@media (max-width:760px){
  html{scroll-padding-bottom:96px}
  .j-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--card);color:var(--card-ink);border-top:1px solid var(--line2);padding:9px 16px calc(9px + env(safe-area-inset-bottom));visibility:hidden;transform:translateY(100%);transition:transform .35s var(--ease),visibility 0s .35s}
  .j-bar.on{visibility:visible;transform:none;transition:transform .35s var(--ease)}
  .j-bt{margin:0;display:grid;min-width:0;line-height:1.15}
  .j-bt span{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--card-mute)}
  .j-bt b{font-size:28px;font-weight:420;line-height:1.1}
  .j-bt i{font-style:normal;font-size:14px;color:var(--card-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .j-bar .btn{flex:none;min-height:44px}
  :root{--rail:0px;--hd:54px}
  body{font-size:18px}
  .nav a:not(.btn){display:none}
  .now{display:block;position:absolute;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.1em;font-weight:600;font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 10;color:var(--mute)}
  .brand{font-size:27px}
  .rail{left:auto;right:7px;width:10px;top:calc(var(--hd) + 18px);bottom:24px}
  .rail-ticks span.m::after{display:none}
  .rail-lbl{display:none}
  .rail-dash{width:9px}
  .rail-mark{left:-4px}
  .rail-dash::before{left:1px}
  .pg{padding-left:16px;padding-right:28px}
  .open{grid-template-columns:1fr;min-height:0;gap:18px;padding-top:18px}
  .open-txt{display:contents}
  .open h1{order:2;font-size:clamp(108px,33vw,150px);margin-top:4px}
  .open-line{order:3;margin-top:0}
  .open-ph{order:4}
  .open-ph .ph{height:52svh}
  .open-p{order:5}
  .open-cta{order:6;gap:22px}
  h2{font-size:clamp(40px,11.5vw,56px)}
  .ch-side h2,.c5-txt h2,.nuit-txt h2,.j-ctl h2,.f-h h2,.d-h h2{font-size:clamp(40px,11.5vw,56px)}
  .c1 .ch-h,.ch-row{grid-template-columns:1fr}
  .c1 .ch-h .lede{padding-top:14px}
  .ch-row .lede{padding-top:14px}
  .m-stagger{flex-direction:column;gap:28px}
  .m-stagger figure{flex:none;width:100%}
  .m-stagger figure:nth-child(2){width:74%;margin-left:auto}
  .c2-top{grid-template-columns:1fr}
  .c2-top .ch-side{order:-1}
  .bleed{height:78svh}
  .plateau img{object-position:50% 70%}
  .bleed-cap{padding:100px 28px 26px 16px}
  .bleed-cap h2{font-size:clamp(42px,12vw,60px)}
  .c3-intro{justify-content:flex-start}
  .c3-row{grid-template-columns:1fr;gap:28px}
  .c3-side{grid-template-columns:1fr 1fr;gap:var(--gut)}
  .c4-grid{grid-template-columns:1fr;gap:26px}
  .c5-grid{grid-template-columns:1fr;gap:26px}
  .c5-ph{max-width:none}
  .c5-ph .ph{max-height:none}
  .nuit{height:180svh}
  .nuit-txt{left:16px;right:28px;top:calc(var(--hd) + 22px);transform:none;max-width:none}
  .nuit-frame{transform-origin:50% 100%}
  .nuit-cap{left:16px;right:28px}
  .spread{gap:10px}
  figcaption{font-size:14px}
  .j-grid{grid-template-columns:1fr}
  .toc{grid-template-columns:1fr 1fr;gap:0 16px}
  .open-top{order:1}
  .light-l{grid-template-columns:1fr 1fr;gap:10px 18px}
  .steps li{grid-template-columns:1fr;gap:2px}
  .places{grid-template-columns:1fr 1fr}
  .pl b{font-size:18px}
  .sheet{padding:22px 18px}
  .row{grid-template-columns:6.4em minmax(0,1fr);gap:10px;min-height:78px}
  .row-t{font-size:12.5px}
  .row-l{font-size:17px}
  .row-n{font-size:13.5px}
  .row.key::before{left:-10px}
  .offer{grid-template-columns:minmax(0,1fr) auto}
  .o-p{font-size:28px}
  .recv{grid-template-columns:1fr}
  .recv-l{grid-template-columns:1fr}
  .lou-txt{grid-template-columns:1fr}
  .lou-t{font-size:110px}
  .d-grid{grid-template-columns:1fr}
  .d-card{min-height:0}
  .done-card{min-height:420px}
  .fin-meta{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rise,.js .rise-in,.js .slide figure,.js .flash .ph img,.js .row,.done-card>*,.d-s,.js .ember i{opacity:1!important;transform:none!important}
  .js .curtain .ph::after,.js .wipe .ph::after{display:none}
  .js .curtain figcaption{opacity:1}
  .js .row::after,.js .o-bar i{transform:none!important}
  .lines>span>span{transform:none!important}
  .d-hz,.d-gr{stroke-dashoffset:0}
  .nuit{height:auto}
  .nuit-stick{position:relative;height:100svh}
  .nuit-frame{transform:none!important}
  .nuit-txt{z-index:3;color:#f3eee6;top:auto;bottom:32px;transform:none;max-width:60%}
  .nuit-txt .k,.nuit-txt .k .hr{color:#f3eee6}
  .nuit-cap{display:none}
  .nuit-cap{opacity:1!important}
}
