:root{--primary:#A84234;--primary-dark:#8A352A;--on-primary:#FFFFFF;--accent:#DCA756;--on-accent:#2C4251;--sage:#A1A893;
--bg:#EFECE1;--fg:#2C4251;--card:#FFFDF9;--card-fg:#2C4251;--muted:#E6E2D4;--muted-fg:#56636B;--border:#DCD7C7;--border-strong:#C9C3AF;--ring:#A84234;
--band:#2C4251;--on-band:#EFECE1;--ok-bg:#E6F0E8;--ok-fg:#2F5A3E;--soft:#FBF1EF;--soft-fg:#8A352A;--warn-bg:#FBF0DC;--warn-fg:#7A5226;--veil:30,46,57;--shadow:44,66,81;
--display:'Playfair Display',Georgia,'Times New Roman',serif;--sans:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
--s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--s7:64px;--s8:96px;--radius:14px;
--ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--fast:180ms;--base:320ms;--slow:800ms;--hh:76px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a,button,summary{touch-action:manipulation}a{color:var(--primary);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--ring);outline-offset:3px;border-radius:8px}
[id]{scroll-margin-top:calc(var(--hh) + 16px)}
h1,h2{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:-.01em;margin:0 0 var(--s3);text-wrap:balance}
h1{font-size:clamp(2.5rem,6vw,4.4rem)}h2{font-size:clamp(1.9rem,3.6vw,2.6rem)}h3{font:700 1.125rem/1.3 var(--sans);margin:0 0 var(--s1);text-wrap:balance}
p{margin:0 0 var(--s3)}.wrap{max-width:74rem;margin:0 auto;padding:0 var(--s3)}@media (min-width:768px){.wrap{padding:0 var(--s5)}}
.narrow{max-width:46rem}.muted{color:var(--muted-fg)}.small{font-size:.9375rem}
.icon{width:22px;height:22px;flex:none;vertical-align:middle}
.skip{position:absolute;left:-999px;top:var(--s2);background:var(--card);color:var(--fg);padding:var(--s2) var(--s3);border-radius:8px;z-index:100}.skip:focus{left:var(--s2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.eyebrow{font-weight:600;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.lead{font-size:clamp(1.0625rem,1.6vw,1.25rem);max-width:38rem}

/* En-tête fixe : transparent sur la photo, opaque ensuite */
main{padding-top:var(--hh)}
.top{position:fixed;inset:0 0 auto;z-index:40;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 6px 24px rgba(var(--shadow),.06);
transition:background-color var(--base) var(--ease),border-color var(--base) var(--ease),box-shadow var(--base) var(--ease),color var(--base) var(--ease)}
.top.over{background:transparent;border-color:transparent;box-shadow:none;color:#fff}
.top.over .logo,.top.over nav a,.top.over .logo small{color:#fff}.top.over .btn.ghost{color:#fff;border-color:rgba(255,255,255,.6)}.top.over .seal{box-shadow:none}.top.over .btn.ghost:hover{color:#fff;border-color:#fff}
.top.over::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(var(--veil),.55),transparent);pointer-events:none;z-index:-1}
.bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s4);padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg);min-height:48px;transition:color var(--base)}
.logo b{display:block;font:700 1.3rem/1.1 var(--display);padding-bottom:3px;border-bottom:2px dotted color-mix(in srgb,currentColor 35%,transparent)}.logo small{display:block;font-size:.8125rem;color:var(--muted-fg);transition:color var(--base)}
.seal{width:46px;height:46px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--border-strong);display:grid;place-items:center;flex:none;transition:transform var(--base) var(--ease)}.seal img{display:block;width:30px;height:30px}
.logo:hover .seal{transform:rotate(-12deg) scale(1.06)}
nav[aria-label="Navigation principale"]{display:flex;flex-wrap:wrap;gap:0 var(--s4);flex:1}
nav a{display:inline-flex;align-items:center;min-height:48px;color:var(--fg);text-decoration:none;font-weight:600;
background:linear-gradient(currentColor,currentColor) 0 calc(100% - 10px)/0 2px no-repeat;transition:background-size var(--base) var(--ease),color var(--base)}
nav a:hover,nav a[aria-current]{background-size:100% 2px}
.bar-cta{display:flex;gap:var(--s2);flex-wrap:wrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 22px;border-radius:12px;font:700 1rem var(--sans);text-decoration:none;cursor:pointer;
border:2px solid var(--primary);background:var(--primary);color:var(--on-primary);
transition:transform var(--fast) var(--ease),background-color var(--fast),border-color var(--fast),box-shadow var(--base) var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--shadow),.18)}.btn:active{transform:translateY(0) scale(.98);box-shadow:none}
.btn .icon{width:18px;height:18px;transition:transform var(--base) var(--ease)}.btn:hover .icon{transform:translateX(4px)}
.btn:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn.cta{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.cta:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--border-strong)}.btn.ghost:hover{background:transparent;border-color:var(--primary);color:var(--primary)}
.btn.light{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.75);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn.light:hover{background:rgba(255,255,255,.22)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);margin-top:var(--s4)}

/* Hero photo */
.hero,.page-hero{position:relative;isolation:isolate;overflow:hidden;margin-top:calc(-1 * var(--hh));color:#fff;display:grid;align-items:center}
.hero{min-height:min(94svh,900px);padding-block:calc(var(--hh) + var(--s6)) var(--s8)}
.page-hero{min-height:clamp(340px,56svh,560px);padding-block:calc(var(--hh) + var(--s6)) var(--s6);align-items:end}
.hero .bg,.page-hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:zoom 14s var(--ease-out) both}
.hero::after,.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(var(--veil),.9) 0%,rgba(var(--veil),.7) 42%,rgba(var(--veil),.2) 100%),linear-gradient(0deg,rgba(var(--veil),.55),transparent 45%)}
.hero.plain,.page-hero.plain{background:radial-gradient(120% 120% at 80% 0%,#4A6273 0%,#2C4251 45%,#1E2E39 100%)}
.hero h1,.page-hero h1{color:#fff;max-width:17ch;text-shadow:0 2px 24px rgba(0,0,0,.25)}.hero .lead,.page-hero .lead{color:rgba(255,255,255,.92)}
.hero .eyebrow{color:var(--accent)}
.hero-in{width:100%}
.rise{animation:rise var(--slow) var(--ease-out) both;animation-delay:calc(var(--d,0) * 120ms + 150ms)}
.scroll-cue{position:absolute;left:50%;bottom:var(--s4);translate:-50% 0;width:28px;height:46px;border:2px solid rgba(255,255,255,.75);border-radius:16px;display:flex;justify-content:center;padding-top:8px}
.scroll-cue span{width:4px;height:8px;border-radius:2px;background:#fff;animation:cue 1.8s var(--ease) infinite}
@keyframes zoom{from{transform:scale(1.14)}to{transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* Apparition au défilement (seulement avec JavaScript et mouvement autorisé) */
.motion .reveal{opacity:0;transform:translateY(32px);transition:opacity var(--slow) var(--ease-out),transform var(--slow) var(--ease-out);transition-delay:calc(var(--i,0) * 90ms)}
.motion .reveal.in{opacity:1;transform:none}

/* Bandeau d'arguments */
.values{background:var(--card);border-bottom:1px solid var(--border);padding:var(--s5) 0}
.values ul{list-style:none;margin:0 auto;display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.values li{display:flex;gap:var(--s3);align-items:flex-start}.values .icon{color:var(--primary);width:30px;height:30px;padding:6px;box-sizing:content-box;background:var(--ok-bg);border-radius:12px}
.values b{display:block}.values span{color:var(--muted-fg);font-size:.9375rem}
.title{margin-top:var(--s7)}

/* Univers photo */
.worlds{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.world{position:relative;display:block;aspect-ratio:4/5;border-radius:18px;overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;max-width:100%;
box-shadow:0 10px 30px rgba(var(--shadow),.12);transition:box-shadow var(--base) var(--ease),transform var(--base) var(--ease)}
.world img,.world .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.1s var(--ease-out)}
.world .ph{background:linear-gradient(135deg,#4A6273,#2C4251)}
.world::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(var(--veil),.92) 0%,rgba(var(--veil),.35) 45%,transparent 70%)}
.world:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(var(--shadow),.24)}.world:hover img{transform:scale(1.07)}
.world-text{position:absolute;left:var(--s4);right:var(--s4);bottom:var(--s4)}.world-text b{display:block;font:700 2rem/1.1 var(--display)}.world-text span{color:rgba(255,255,255,.9)}
.world>.icon{position:absolute;top:var(--s3);right:var(--s3);width:44px;height:44px;padding:11px;box-sizing:border-box;border-radius:50%;background:var(--bg);color:var(--primary);transition:transform var(--base) var(--ease)}
.world:hover>.icon{transform:rotate(-45deg)}

/* Cartes catalogue */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:var(--s3)}.small-cards{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr))}
.card{background:var(--card);color:var(--card-fg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;
transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease),opacity var(--slow) var(--ease-out)}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(var(--shadow),.14)}
.motion .card.reveal.in:hover{transform:translateY(-6px)}
.visual{aspect-ratio:4/3;background:var(--muted);overflow:hidden}.visual img,.swatch{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.card:hover .visual img,.card:hover .swatch{transform:scale(1.06)}
.swatch{background-image:linear-gradient(135deg,rgba(255,255,255,.16) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.16) 75%,transparent 75%);background-size:14px 14px}
.body{padding:var(--s3);display:flex;flex-direction:column;flex:1}.body p{margin-bottom:var(--s2)}
.row{margin-top:auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2);padding-top:var(--s2);border-top:1.5px dashed var(--border)}
.price{font-weight:700;margin:0;font-variant-numeric:tabular-nums;color:var(--primary)}.price small{font-weight:500;color:var(--muted-fg)}
.tag{font-size:.8125rem;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--muted);color:var(--muted-fg)}.tag.ok{background:var(--ok-bg);color:var(--ok-fg)}
.feats{display:flex;flex-wrap:wrap;gap:var(--s1)}.feats span{font-size:.8125rem;border:1px solid var(--border);border-radius:999px;padding:1px 10px}
details{font-size:.9375rem;color:var(--muted-fg);margin-bottom:var(--s2)}summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}details ul{margin:var(--s1) 0 0;padding-left:1.1em}
.more a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700}.more .icon{width:18px;height:18px;transition:transform var(--base) var(--ease)}.more a:hover .icon{transform:translateX(4px)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.chips a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;background:var(--card);border:1px solid var(--border);border-radius:999px;text-decoration:none;color:var(--fg);font-weight:600;
transition:border-color var(--fast),background-color var(--fast),transform var(--fast) var(--ease)}
.chips a:hover{border-color:var(--primary);transform:translateY(-2px)}.chips small{color:var(--muted-fg);font-weight:500}

/* Atelier en deux colonnes */
.split{display:grid;gap:var(--s6);align-items:center;margin-top:var(--s8)}@media (min-width:900px){.split{grid-template-columns:1fr 1fr}}
.split-img{position:relative;max-width:100%}.split-img::before{content:"";position:absolute;inset:var(--s4) calc(-1 * var(--s3)) calc(-1 * var(--s4)) var(--s4);border-radius:22px;background:var(--sage);opacity:.45;z-index:-1}
.split-img img,.split-img .ph{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:0 20px 50px rgba(var(--shadow),.2)}
.split-img .ph{background:linear-gradient(135deg,#4A6273,#2C4251)}
.mini-steps{counter-reset:s;list-style:none;padding:0;margin:0 0 var(--s4);display:grid;gap:var(--s3)}
.mini-steps li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;gap:var(--s3);align-items:start}
.mini-steps li::before{content:counter(s);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--soft);color:var(--soft-fg);font:700 1.2rem var(--display)}

/* Réalisation en parallaxe */
.showcase{position:relative;isolation:isolate;overflow:hidden;margin-top:var(--s8);min-height:clamp(460px,78svh,720px);display:grid;align-items:end;padding-block:var(--s7)}
.showcase .parallax{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;z-index:-2}
.showcase::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(var(--veil),.55),transparent 60%)}
.showcase.plain{background:linear-gradient(135deg,#2C4251,#1E2E39)}
.showcase-card{max-width:32rem;background:var(--card);color:var(--card-fg);border-radius:18px;padding:var(--s5);box-shadow:0 24px 60px rgba(0,0,0,.25)}
@supports (animation-timeline:view()){.motion .showcase .parallax{animation:par linear both;animation-timeline:view();animation-range:cover}}
@keyframes par{from{transform:translateY(-8%)}to{transform:translateY(8%)}}

/* Bandes et infos */
.empty{background:var(--card);border:1px dashed var(--border);border-radius:var(--radius);padding:var(--s5);text-align:center;color:var(--muted-fg);margin-top:var(--s5)}
.band{margin-top:var(--s8);background:var(--band);color:var(--on-band);border-radius:22px;padding:var(--s6) var(--s5);position:relative;overflow:hidden}
.band::before{content:"";position:absolute;width:320px;height:320px;right:-80px;top:-120px;border-radius:50%;background:var(--accent);opacity:.22}.band .eyebrow{color:var(--accent)}
.band p{max-width:44rem;position:relative}.band h2{position:relative}
.infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--s4) var(--s6);align-items:start;padding-bottom:var(--s6)}
.infos h3{margin-top:var(--s7)}.addr{display:flex;gap:var(--s2)}.addr .icon{color:var(--primary)}
.infos a:not(.btn){display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:600}
.hours{border-collapse:collapse}.hours th{text-align:left;padding:var(--s1) var(--s4) var(--s1) 0;font-weight:600}.hours td{padding:var(--s1) 0;font-variant-numeric:tabular-nums}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--s3)}
.steps li{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4)}
.steps span{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--soft);color:var(--soft-fg);font:700 1.3rem var(--display);margin-bottom:var(--s2)}
.services{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:var(--s3)}
.services li{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3) var(--s4);transition:border-color var(--fast),transform var(--base) var(--ease)}
.services li:hover{border-color:var(--primary);transform:translateY(-3px)}.services p{font-size:.9375rem;margin:0}
.head{padding-top:var(--s6)}
.legal{display:grid;grid-template-columns:max-content 1fr;gap:var(--s2) var(--s4)}.legal dt{font-weight:600}.legal dd{margin:0;overflow-wrap:anywhere}
.foot{margin-top:var(--s8);background:var(--band);color:var(--on-band);padding:var(--s6) 0;border-top:6px solid var(--primary)}.foot a{color:var(--on-band);display:inline-flex;align-items:center;min-height:36px;overflow-wrap:anywhere}
.foot b{display:inline-block;font:700 1.5rem var(--display);padding-bottom:6px;margin-bottom:var(--s2);border-bottom:2px dotted rgba(239,236,225,.4)}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--s4)}

/* Formulaire de demande de devis */
.request{margin-top:var(--s8);display:grid;gap:var(--s5);align-items:start}@media (min-width:1000px){.request{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}.request-head{position:sticky;top:calc(var(--hh) + var(--s4))}}
.request-head h2{margin-bottom:var(--s3)}.request-head p:last-child{color:var(--muted-fg)}
.request-form,.request-done{background:var(--card);color:var(--card-fg);border:1px solid var(--border);border-radius:22px;padding:var(--s5);box-shadow:0 20px 50px rgba(var(--shadow),.08);min-width:0}
.request-form fieldset{border:0;margin:0 0 var(--s5);padding:0;min-width:0}
.request-form legend{display:flex;align-items:center;gap:var(--s2);font:700 1.35rem/1.2 var(--display);margin-bottom:var(--s3);padding:0}
.request-form legend span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--soft-fg);font:700 1rem var(--sans)}
.request-form label{display:block;font-weight:600;margin:var(--s3) 0 6px}.request-form fieldset>label:first-of-type{margin-top:0}
.request-form input:not([type=radio]):not([type=checkbox]),.request-form select,.request-form textarea{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--fg);font:inherit;
transition:border-color var(--fast),box-shadow var(--fast)}
.request-form textarea{min-height:96px;resize:vertical}
.request-form :is(input,select,textarea):focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(168,66,52,.16)}
.request-form .was-invalid:invalid{border-color:var(--primary)}
.hint{font-size:.9375rem;color:var(--muted-fg);margin:var(--s2) 0 0}
.row2,.row3{display:grid;gap:0 var(--s3)}@media (min-width:640px){.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:1fr 1fr .7fr}}
.row2>div,.row3>div{min-width:0}.row3 label{margin-top:0}
.fabric-preview{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s3);padding:12px 14px;border-radius:14px;background:var(--muted);color:var(--muted-fg);font-size:.9375rem}
.chip-swatch{flex:none;width:52px;height:52px;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:background var(--base) var(--ease)}
.slots{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}
.slot{position:relative;margin:0!important;cursor:pointer}
.slot input{position:absolute;opacity:0;width:1px;height:1px}
.slot span{display:flex;flex-direction:column;gap:2px;min-height:64px;justify-content:center;padding:12px 16px;border:1.5px solid var(--border);border-radius:16px;background:var(--bg);
transition:border-color var(--fast),background-color var(--fast),transform var(--fast) var(--ease)}
.slot small{color:var(--muted-fg);font-weight:500;font-variant-numeric:tabular-nums}.slot:hover span{transform:translateY(-2px);border-color:var(--primary)}
.slot input:checked+span{border-color:var(--primary);background:var(--soft);box-shadow:inset 0 0 0 1px var(--primary)}
.slot input:focus-visible+span{outline:3px solid var(--ring);outline-offset:3px}
.consent{display:flex!important;gap:12px;align-items:flex-start;font-weight:500!important;margin:0 0 var(--s4)!important;cursor:pointer}
.consent input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--primary)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{background:var(--soft);color:var(--soft-fg);border-radius:12px;padding:12px 14px;font-weight:600}
.submit{width:100%;min-height:56px;font-size:1.0625rem}.submit.loading{opacity:.7;cursor:progress}.submit.loading .icon{animation:nudge .8s var(--ease) infinite}
@keyframes nudge{50%{transform:translateX(6px)}}
.request-done{text-align:center;padding:var(--s7) var(--s5);animation:rise var(--slow) var(--ease-out) both}.request-done h3{font:700 2rem/1.15 var(--display);margin-bottom:var(--s3)}
.ask{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-top:var(--s2);font-weight:700;font-size:.9375rem;text-decoration:none}.ask .icon{width:16px;height:16px;transition:transform var(--base) var(--ease)}.ask:hover .icon{transform:translateX(4px)}

/* Transitions entre les pages (navigateurs compatibles) */
@view-transition{navigation:auto}
.body h3 a{color:inherit;text-decoration:none}.body h3 a::after{content:"";position:absolute;inset:0}.card{position:relative}.card .row a,.card .row button,.card .add,.card .ask,.card .range-dots a{position:relative;z-index:1}
.product{padding-top:calc(var(--s7) + var(--s4));padding-bottom:var(--s7)}.crumbs{font-size:.9375rem;color:var(--muted-fg);margin-bottom:var(--s3)}.crumbs a{color:inherit}
.product-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.product-visual{border-radius:var(--radius);overflow:hidden;aspect-ratio:1;background:var(--muted)}.product-visual .visual{aspect-ratio:auto;height:100%}
.product-info h1{margin-bottom:var(--s2);font-size:clamp(2rem,4vw,3rem)}.product-info h2{font-size:1.125rem;margin:var(--s4) 0 var(--s2)}.product-info .price{font-size:1.5rem;margin-bottom:var(--s3)}
.specs{display:grid;grid-template-columns:auto 1fr;gap:6px var(--s3);margin:var(--s3) 0}.specs dt{color:var(--muted-fg)}.specs dd{margin:0;font-weight:600}
.care{padding-left:1.2em}.care li{margin-bottom:4px}
.care-mini{list-style:none;padding:0;margin:0 0 var(--s2);display:flex;flex-wrap:wrap;gap:4px}.care-mini svg{display:block;width:30px;height:30px;padding:4px;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--fg)}
.care-icons{list-style:none;padding:0;margin:0 0 var(--s3);display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:var(--s2)}
.care-icons li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:.875rem;line-height:1.3;color:var(--muted-fg)}
.care-icons svg{width:52px;height:52px;padding:8px;box-sizing:border-box;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--card);color:var(--fg)}
.colorways{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1)}.colorways a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;border:1px solid var(--border);border-radius:999px;text-decoration:none;color:var(--fg);background:var(--card)}
.colorways a:hover{border-color:var(--primary)}.dot{width:24px;height:24px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex:none}
.product .actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.card[hidden],section[hidden]{display:none!important}
.product-visual img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.product-visual{position:relative}.product-visual.has-amb>img{object-fit:cover}.swatch-inset{position:absolute;right:12px;bottom:12px;width:28%;aspect-ratio:1;border-radius:12px;overflow:hidden;border:3px solid #fff;box-shadow:0 4px 14px rgb(0 0 0/.18)}.swatch-inset img{object-fit:cover}
.brand-mark{position:absolute;left:12px;top:12px;z-index:1;width:44px;height:44px;border-radius:50%;background:var(--bg);display:grid;place-items:center;box-shadow:0 0 0 1.5px var(--border-strong),0 4px 12px rgb(0 0 0/.12)}.brand-mark img{display:block;width:28px;height:28px}
.range-dots{list-style:none;padding:0;margin:0 0 var(--s2);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.range-dots a{display:block;border-radius:50%}.range-dots a:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.range-dots .dot{display:block;width:22px;height:22px}
.more-dots{font-size:.8125rem;font-weight:700;color:var(--muted-fg)}
.tag.order{background:var(--warn-bg);color:var(--warn-fg)}.ask-price{font-size:1rem;color:var(--muted-fg)}
.stock-filter{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;margin-bottom:var(--s3);border:1px solid var(--border);border-radius:999px;background:var(--card)}
.stock-filter button{min-height:44px;padding:0 16px;border:0;border-radius:999px;background:none;color:var(--muted-fg);font:inherit;font-weight:600;cursor:pointer}
.stock-filter button small{font-weight:500;opacity:.75}.stock-filter button[aria-checked=true]{background:var(--primary);color:var(--on-primary)}
.stock-filter button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.order-form{margin-top:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:0 16px 40px rgba(var(--shadow),.08)}
.order-form h2{margin:0 0 6px}.order-form label{display:block;font-weight:600;margin:var(--s3) 0 6px}
.order-form input:not([type=radio]):not([type=checkbox]){width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--fg);font:inherit}
.order-form :is(input):focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(168,66,52,.16)}
.order-form .slots{margin:var(--s3) 0}.order-form .submit{width:100%;justify-content:center}
::view-transition-old(root){animation:vt-out .28s var(--ease) both}::view-transition-new(root){animation:vt-in .45s var(--ease-out) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}@keyframes vt-in{from{opacity:0;transform:translateY(16px)}}

/* Panier dans l'en-tête */
.cart-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;color:var(--fg);border:2px solid var(--border-strong);transition:border-color var(--fast),color var(--fast)}
.cart-link:hover{border-color:var(--primary);color:var(--primary)}.top.over .cart-link{color:#fff;border-color:rgba(255,255,255,.6)}
.cart-count{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--primary);color:#fff;font:700 .75rem/22px var(--sans);text-align:center;font-variant-numeric:tabular-nums}
.btn .cart-count{position:static;background:#fff;color:var(--primary)}
.bar-cta .short{display:none}
/* Ajouter au panier */
.add{width:100%;margin-top:var(--s2);padding:0 12px;font-size:.9375rem;white-space:nowrap}.add .icon{width:18px;height:18px}.btn.add:hover .icon{transform:none}.add.added{background:var(--ok-fg);border-color:var(--ok-fg)}
.buy{display:flex;flex-wrap:wrap;align-items:end;gap:var(--s2) var(--s3);margin:var(--s4) 0 var(--s2)}.buy label{width:100%;font-weight:600}.buy .add{width:auto;flex:1;min-width:14rem;margin:0;min-height:56px}
.stepper{display:inline-flex;align-items:center;border:2px solid var(--border-strong);border-radius:12px;background:var(--card);overflow:hidden}
.stepper button{width:52px;height:52px;border:0;background:none;color:var(--fg);cursor:pointer;display:grid;place-items:center}.stepper button:hover{background:var(--muted)}
.stepper input{width:56px;height:52px;border:0;text-align:center;font:700 1.125rem var(--sans);color:var(--fg);background:none;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.perks{list-style:none;padding:0;margin:var(--s5) 0 var(--s4);display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.perks li{display:flex;gap:var(--s3);align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3)}.perks .icon{color:var(--primary);width:28px;height:28px}.perks b{display:block}.perks span{color:var(--muted-fg);font-size:.9375rem}
/* Catalogue magasin : tunnel */
.head h1{font-size:clamp(2.1rem,4.6vw,3.25rem)}.head .crumbs+.tunnel{margin-top:var(--s3)}.tiles+.muted{margin-top:var(--s3)}
.tunnel{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);padding:0;margin:var(--s5) 0 var(--s4);font-weight:600;color:var(--muted-fg)}
.tunnel li{display:flex;align-items:center;gap:var(--s2)}.tunnel span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--border-strong);font-size:.9375rem}
.tunnel li[aria-current]{color:var(--fg)}.tunnel li[aria-current] span{background:var(--primary);border-color:var(--primary);color:#fff}.tunnel li.done span{background:var(--soft);border-color:var(--soft);color:var(--soft-fg)}
.tiles{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));margin-top:var(--s4)}
.tile{position:relative;display:block;aspect-ratio:4/3;border-radius:18px;overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;box-shadow:0 10px 30px rgba(var(--shadow),.12);transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease)}
.tile img,.tile .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.1s var(--ease-out)}.tile .ph{background:linear-gradient(135deg,#4A6273,#2C4251)}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(var(--veil),.88) 0%,rgba(var(--veil),.3) 50%,transparent 75%)}
.tile:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(var(--shadow),.22)}.tile:hover img{transform:scale(1.06)}
.tile-text{position:absolute;left:var(--s3);right:var(--s3);bottom:var(--s3)}.tile-text b{display:block;font:700 1.5rem/1.15 var(--display)}.tile-text small{color:rgba(255,255,255,.9);font-size:.9375rem}
.tile>.icon{position:absolute;top:var(--s3);right:var(--s3);width:40px;height:40px;padding:10px;box-sizing:border-box;border-radius:50%;background:var(--bg);color:var(--primary)}
.back{display:inline-flex;align-items:center;gap:6px;min-height:48px;margin-top:var(--s4);font-weight:700;text-decoration:none}.back:hover{text-decoration:underline}
.chips a[aria-current]{background:var(--primary);border-color:var(--primary);color:#fff}
/* Panier */
.cart-lines{list-style:none;padding:0;margin:0 0 var(--s3);display:grid;gap:var(--s2)}
.cart-line{display:grid;grid-template-columns:80px 1fr auto;gap:var(--s3);align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px}
.cl-img{width:80px;height:80px;border-radius:12px;overflow:hidden;background:var(--muted);display:block}.cl-img img{width:100%;height:100%;object-fit:cover}
.cl-body{min-width:0}.cl-body>a{color:inherit;text-decoration:none}.cl-body>a b{display:block}.cl-unit{display:block}
.qty{display:flex;align-items:center;gap:6px;margin-top:6px}.qty button{min-width:44px;height:44px;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--fg);font:700 1.125rem var(--sans);cursor:pointer}
.qty span{min-width:28px;text-align:center;font-weight:700}.qty .rm{min-width:0;padding:0 12px;font-size:.875rem;font-weight:600;color:var(--muted-fg);margin-left:auto}
.cart-sum{display:grid;grid-template-columns:1fr auto;gap:6px var(--s3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3)}.cart-sum dd{margin:0;text-align:right;font-weight:600}
.cart-sum dt:last-of-type,.cart-sum dd:last-of-type{font-size:1.25rem;font-weight:700;padding-top:6px;border-top:1.5px dashed var(--border)}.cart-sum dd:last-of-type{color:var(--primary)}
.ship-addr{margin-top:var(--s3)}.ship-price{display:block;margin-top:4px;font-weight:700;color:var(--primary)!important}.ship-modes{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.relay-box{margin-top:var(--s3);padding:var(--s3);border:1.5px dashed var(--border-strong);border-radius:16px;background:var(--bg)}.relay-box[hidden]{display:none}.relay-search{display:flex;gap:var(--s2);flex-wrap:wrap}.relay-search input{flex:1;min-width:8rem}.relay-list{margin-top:var(--s2);grid-template-columns:1fr}.relay small{display:block}.ship-addr[hidden]{display:none}.slot.off{opacity:.45;pointer-events:none}
/* Atelier : réalisations */
.gallery{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}
.gallery figure{margin:0;background:var(--card);border:1px solid var(--border);border-radius:18px;overflow:hidden;height:100%}
.gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform 1.1s var(--ease-out)}.gallery li:hover img{transform:scale(1.04)}
.gallery figcaption{padding:var(--s3)}.gallery figcaption b{display:block;font:700 1.15rem/1.3 var(--display)}.gallery figcaption span{color:var(--muted-fg);font-size:.9375rem}
.suppliers{padding-left:1.2em}.suppliers li{margin-bottom:6px}

@media (max-width:767px){body{font-size:1rem}
.bar{gap:0 var(--s3)}.logo small{display:none}.bar-cta{margin-left:auto}.bar-cta .btn.ghost{display:none}.bar-cta .btn{min-height:44px;padding:0 12px;font-size:.875rem}.bar-cta .long{display:none}.bar-cta .short{display:inline}.cart-link{width:44px;height:44px}.cart-line{grid-template-columns:64px 1fr;}.cl-img{width:64px;height:64px}.cl-total{grid-column:2}.tile-text b{font-size:1.3rem}.logo{gap:8px}.logo b{font-size:1.05rem}.seal{width:40px;height:40px}.seal img{width:26px;height:26px}
nav[aria-label="Navigation principale"]{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;gap:0 var(--s4);scrollbar-width:none;margin-inline:calc(-1 * var(--s3));padding-inline:var(--s3)}
nav a{white-space:nowrap;min-height:44px}
.hero::after,.page-hero::after{background:linear-gradient(0deg,rgba(var(--veil),.92) 0%,rgba(var(--veil),.72) 60%,rgba(var(--veil),.5) 100%)}
.hero{min-height:min(88svh,760px);padding-bottom:var(--s7)}.scroll-cue{display:none}
.grid,.small-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}.body{padding:12px}.body h3{font-size:1rem}.feats,details{display:none}
.row{flex-direction:column;align-items:flex-start;gap:var(--s1)}.product-grid{grid-template-columns:1fr;gap:var(--s4)}.product .feats{display:flex}.legal{grid-template-columns:1fr}.legal dd{margin-bottom:var(--s2)}
.world{aspect-ratio:4/3}.showcase-card{padding:var(--s4)}.request-form{padding:var(--s4) var(--s3);border-radius:18px}.ask{font-size:.875rem}.band{padding:var(--s5) var(--s4)}}

/* QR d'une carte cadeau scanné avec le téléphone */
.gift-note{margin-top:calc(var(--hh,80px) + 1rem);padding:.9rem 1.2rem;border-radius:12px;background:#F6EBD6;font-weight:600}
/* rayon sans photo : aplat de la charte et grand pictogramme */
.tile .shelf-ph{display:flex;align-items:flex-start;justify-content:flex-start;padding:1.2rem 1.6rem}.tile .shelf-ph .icon{width:42%;height:auto;max-height:70%;color:rgba(255,255,255,.28);stroke-width:1.2}
/* boutique en ligne : carte cadeau (même dessin que la carte imprimée), montants, codes du panier */
.gift-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;aspect-ratio:85/55;width:100%;max-width:26rem;padding:1rem;border-radius:16px;color:#2C4251;text-align:center;
background:repeating-linear-gradient(0deg,rgba(214,203,180,.35) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(214,203,180,.25) 0 1px,transparent 1px 4px),#F4EFE4;box-shadow:0 14px 34px rgba(var(--shadow),.18),inset 0 0 0 10px #F4EFE4,inset 0 0 0 11.5px #A84234}
.gift-card::before,.gift-card::after{content:"";position:absolute;width:30%;height:34%;border:1.5px solid #C99A4B;border-color:#C99A4B transparent transparent #C99A4B;border-radius:60% 30% 70% 40%;opacity:.8}
.gift-card::before{top:9%;left:7%}.gift-card::after{bottom:9%;right:7%;transform:rotate(180deg)}
.gc-name{font-weight:700;font-size:clamp(1.15rem,3.4vw,1.6rem);line-height:1.1;color:#A84234}.gc-sub{font-size:.85rem;color:#B5873A}
.gc-title{margin-top:.5rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;font-size:.85rem}.gc-amount{font-weight:700;font-size:clamp(1.7rem,6vw,2.7rem);line-height:1.15;color:#A84234;font-variant-numeric:tabular-nums}
.gift-tile{display:flex;align-items:flex-start;justify-content:center;padding-top:6%;background:linear-gradient(160deg,#EAD9C4,#D9B9A0)}.gift-tile .gift-card{position:absolute;top:7%;left:50%;width:26rem;max-width:none;transform:translateX(-50%) scale(.55);transform-origin:top center;box-shadow:0 10px 24px rgba(var(--shadow),.25);z-index:-1}.gift-tile::after{background:linear-gradient(0deg,rgba(var(--veil),.88) 0%,transparent 45%)}
.gift-page{display:grid;gap:var(--s5);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}.gift-preview{position:sticky;top:calc(var(--hh,80px) + 1rem);display:grid;gap:var(--s3);justify-items:center}
.amounts{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr))}.amount{position:relative;margin:0!important;cursor:pointer}.amount input{position:absolute;opacity:0;width:1px;height:1px}
.amount span{display:flex;align-items:center;justify-content:center;min-height:52px;border:1.5px solid var(--border);border-radius:12px;background:var(--card);font-weight:700;font-variant-numeric:tabular-nums;transition:border-color var(--fast),background var(--fast)}
.amount input:checked+span{border-color:var(--primary);background:var(--primary);color:#fff}.amount input:focus-visible+span{outline:3px solid var(--ring,#DCA756);outline-offset:2px}
.other-amount,.recipient{margin-top:var(--s2)}
.code-box{margin-top:var(--s3);padding:var(--s3);border:1.5px dashed var(--border);border-radius:14px;background:var(--card)}.code-box label{font-weight:600}
.code-chips{list-style:none;margin:var(--s2) 0 0;padding:0;display:grid;gap:var(--s1)}.code-chips li{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem .75rem;border-radius:10px;background:var(--accent-soft,#F6EBD6);font-size:.9rem}
.code-chips button{margin-left:auto;min-height:36px;border:0;background:none;color:var(--primary);font-weight:600;text-decoration:underline;cursor:pointer}
.cart-sum .sum-gift,.cart-sum .sum-promo{color:var(--success,#3F6E4E)}.cart-sum dt.sum-due,.cart-sum dd.sum-due{font-weight:700}
@media (max-width:860px){.gift-page{grid-template-columns:1fr}.gift-preview{position:static}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important;transition:none!important}}
