:root{
  --ink:#111; --muted:#5b5b5b; --line:rgba(0,0,0,.1); --gold:#b07d3a; --blush:#f6ece8; --sand:#efe2d6;
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --ui:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--serif);font-size:clamp(1.05rem,1.2vw,1.22rem);line-height:1.6;overflow-x:hidden;overflow-x:clip}
body.cart-open,body.admin-open{overflow:hidden}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
[hidden]{display:none!important}
#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.prog{position:fixed;left:0;right:0;top:0;height:2px;background:var(--ink);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}

/* intro curtain */
.curtain{position:fixed;inset:0;z-index:150;background:#fff;display:grid;place-items:center;transition:opacity 1.2s,visibility 0s 1.2s}
.curtain span{font-family:var(--script);font-size:clamp(1.8rem,4.4vw,2.8rem);color:var(--muted);opacity:0;animation:in 1.2s .2s forwards}
body.go .curtain{opacity:0;visibility:hidden}

/* header */
header.nav{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);width:min(1120px,calc(100% - 20px));z-index:50;display:flex;justify-content:space-between;align-items:center;padding:8px 10px 8px 24px;border-radius:999px;border:1px solid transparent;transition:background .4s,border-color .4s,box-shadow .4s}
header.nav.solid{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.logo{font-size:1.3rem;letter-spacing:.55em;margin-right:-.55em;text-decoration:none}
nav{display:flex;gap:2px;align-items:center}
nav a{padding:.45em .95em;border-radius:999px;text-decoration:none;font-size:1rem;color:#333;transition:background .25s,color .25s}
nav a:hover{background:var(--ink);color:#fff}
@media(max-width:980px){nav a{padding:.4em .7em;font-size:.95rem}}
@media(max-width:700px){nav{display:none}header.nav{justify-content:center;padding:12px 18px}.logo{font-size:1.05rem}}

/* buttons */
.btn{display:inline-block;padding:.85em 2em;border:1px solid var(--ink);border-radius:999px;color:var(--ink);text-decoration:none;font-size:1.05rem;letter-spacing:.04em;background:transparent;cursor:pointer;transition:background .3s,color .3s,transform .3s cubic-bezier(.2,.7,.2,1)}
.btn:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.btn.solid{background:var(--ink);color:#fff}.btn.solid:hover{background:#333}

/* hero */
@keyframes in{to{opacity:1;transform:none;filter:none}}
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;padding:120px 24px 90px;background:radial-gradient(80% 60% at 50% 0%,#fbf3ee,#fff 70%)}
.hero .glow{position:absolute;inset:0;background:radial-gradient(60% 50% at var(--mx,50%) var(--my,45%),rgba(201,149,79,.18),transparent 70%)}
.rays{position:absolute;inset:-25%;pointer-events:none;opacity:.18;transform-origin:75% 0;will-change:transform;background:conic-gradient(from 195deg at 75% -8%,transparent 0 8%,rgba(201,149,79,.5) 10%,transparent 14% 22%,rgba(201,149,79,.35) 25%,transparent 29% 40%,rgba(201,149,79,.45) 43%,transparent 48%);animation:sway 16s ease-in-out infinite alternate}
@keyframes sway{to{transform:rotate(8deg) scale(1.08)}}
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s}.bg.on{opacity:.9}
.hero-in{position:relative;z-index:4}
.wordmark{font-size:clamp(3.4rem,15vw,11rem);font-weight:400;letter-spacing:.42em;margin:0 -.42em 0 0;line-height:1;display:flex;justify-content:center}
.wordmark span{display:inline-block;opacity:0;transform:translateY(.35em);filter:blur(10px);animation:in 1.3s cubic-bezier(.2,.7,.2,1) forwards;animation-play-state:paused}
.wordmark span:nth-child(2){animation-delay:.14s}.wordmark span:nth-child(3){animation-delay:.28s}.wordmark span:nth-child(4){animation-delay:.42s}.wordmark span:nth-child(5){animation-delay:.56s}
.tag{font-family:var(--script);font-size:clamp(1.9rem,4.8vw,3.3rem);color:#444;margin:.3em 0 1.3em;opacity:0;animation:in 1.2s 1s forwards;animation-play-state:paused}
.hero .btn{opacity:0;animation:in 1.1s 1.4s forwards;animation-play-state:paused}
body.go .wordmark span,body.go .tag,body.go .hero .btn{animation-play-state:running}
.scrollhint{position:absolute;bottom:calc(26px + env(safe-area-inset-bottom,0px));left:50%;width:1px;height:54px;background:linear-gradient(var(--ink),transparent);z-index:4}

/* manifeste + marquee */
.manifeste{padding:clamp(80px,14vw,180px) 24px;text-align:center;position:relative;z-index:4;background:#fff}
.manifeste p{max-width:34em;margin:0 auto 1.5em;font-size:clamp(1.25rem,2.2vw,1.8rem);color:#333}
.sig{font-family:var(--script);font-size:clamp(2rem,4vw,3rem)}
.marquee{overflow:hidden;white-space:nowrap;padding:16px 0;position:relative;z-index:4;border-block:1px solid var(--line);background:#fff}
.marquee div{display:inline-block;animation:run 32s linear infinite;font-family:var(--script);font-size:clamp(1.8rem,4vw,2.8rem)}
.marquee:hover div{animation-play-state:paused}
.marquee i{font-style:normal;margin:0 .7em;color:var(--gold);font-family:var(--serif);font-size:.55em;vertical-align:middle}
@keyframes run{to{transform:translateX(-50%)}}

/* scenes : courtes, épinglées brièvement */
.scene{height:150vh;position:relative;background:#fff}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:2vw;padding:96px clamp(20px,6vw,90px) 60px;perspective:1200px}
.scene .glow{position:absolute;inset:0;background:radial-gradient(55% 60% at 70% 50%,var(--halo,rgba(201,149,79,.2)),transparent 70%)}
.scene.rose{--halo:rgba(243,190,190,.35)}.scene.sable{--halo:rgba(120,160,215,.28)}
.chapter{position:absolute;left:clamp(20px,6vw,90px);top:84px;z-index:5;font-family:var(--script);color:#888;font-size:1.5rem;opacity:calc(1 - var(--p,0)*6)}
.copy{position:relative;z-index:4;opacity:calc(.3 + var(--p,0)*4);transform:translateY(calc((1 - min(var(--p,0)*6,1))*28px))}
.copy h2{font-family:var(--script);font-weight:400;font-size:clamp(3rem,7vw,5.6rem);line-height:1.05;margin:0 0 .15em}
.sub{color:var(--muted);font-style:italic;margin:0 0 1.1em}
.lead{max-width:30em;margin:0 0 1.3em}
.vol{font-size:.95rem;color:var(--muted);letter-spacing:.1em}
.obj{position:relative;z-index:4;display:grid;place-items:center;transform-style:preserve-3d;will-change:transform;transition:transform .3s cubic-bezier(.2,.7,.2,1);
  transform:rotateX(calc(var(--ry,0)*1deg)) rotateY(calc(var(--rx,0)*1deg + (var(--p,0) - .5)*70deg)) translateY(calc((.5 - var(--p,0))*30px))}
.obj svg{width:min(78%,440px);height:auto}
.pimg{width:min(78%,420px);aspect-ratio:1;object-fit:cover;border-radius:30px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35)}
.tabs{display:flex;flex-wrap:wrap;margin:0 0 1em}
.tabs button{background:none;border:0;border-bottom:1px solid transparent;color:var(--muted);padding:.3em .1em;margin-right:1.4em;cursor:pointer}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--ink)}
.panel{min-height:7em;max-width:32em;font-size:1.05rem}
.panel dt{font-weight:600}.panel dd{margin:0 0 .6em;color:#222}.panel p{margin:0 0 .6em}
.cta{margin:1.2em 0 0}
@media(max-width:820px){
  .scene{height:135vh}
  .stage{grid-template-columns:1fr;grid-template-rows:40% 1fr;padding-top:78px;gap:0}
  .obj{order:-1}.obj svg,.pimg{width:min(56%,250px)}
  .copy{align-self:start}.copy h2{font-size:clamp(2.4rem,11vw,3.4rem)}.lead{font-size:1rem;margin-bottom:.8em}.panel{font-size:.95rem;min-height:0}.tabs{margin-bottom:.5em}
  .chapter{top:70px}
}

/* boutique */
.boutique{background:#fff;padding:clamp(80px,12vw,150px) clamp(16px,5vw,70px);position:relative;z-index:4}
.head{max-width:1200px;margin:0 auto 2.2em}
.sec-t{font-family:var(--script);font-weight:400;font-size:clamp(3rem,7vw,5.4rem);line-height:1.1;margin:0}
.rule{height:1px;background:var(--ink);transform:scaleX(1);transform-origin:left;transition:transform 1.4s cubic-bezier(.7,0,.2,1) .2s;margin:.3em 0 .6em}
.js .rule:not(.in){transform:scaleX(0)}
.grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(12px,2vw,24px)}
.card{position:relative;aspect-ratio:4/5;border-radius:30px;overflow:hidden;background:var(--g,var(--blush));isolation:isolate;box-shadow:0 18px 40px -24px rgba(30,20,10,.5);transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s}
.card:hover{transform:translateY(-8px);box-shadow:0 36px 60px -28px rgba(30,20,10,.55)}
.js .card:not(.in){opacity:0}
.card.in{animation:cardin .8s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i)*.07s)}
@keyframes cardin{from{opacity:0;transform:translateY(34px)}}
.vis{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:92px}
.vis::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 14%,rgba(255,255,255,.8),transparent 55%);pointer-events:none}
.vis svg{width:58%;position:relative;transition:transform .8s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 18px 18px rgba(0,0,0,.18))}
.vis img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.card:hover .vis svg{transform:scale(1.08) translateY(-6px)}.card:hover .vis img.photo{transform:scale(1.07)}
.glass{position:absolute;left:10px;right:10px;bottom:10px;padding:12px 12px 12px 18px;border-radius:22px;background:rgba(255,255,255,.74);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.75);display:flex;align-items:center;justify-content:space-between;gap:10px;transition:transform .5s cubic-bezier(.2,.7,.2,1),background .4s}
.card:hover .glass{transform:translateY(-4px);background:rgba(255,255,255,.88)}
.meta{min-width:0;display:grid}
.meta h3{margin:0;font-size:1.22rem;font-weight:600;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meta p{margin:0;color:var(--muted);font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.price{margin-top:6px;font-family:var(--ui);font-weight:700;font-size:1.02rem;letter-spacing:-.01em}
.price small{font-weight:500;color:var(--muted);font-size:.72rem;margin-left:.3em;letter-spacing:.05em}
.plus{position:relative;flex:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.3);transition:transform .3s cubic-bezier(.2,.9,.3,1.4),background .3s}
.plus:hover{transform:scale(1.12) rotate(90deg);background:#333}
.plus::after{content:attr(data-q);position:absolute;top:-6px;left:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--gold);color:#fff;font:600 .75rem/20px var(--ui);text-align:center}
.plus:not([data-q])::after,.plus[data-q=""]::after{display:none}
.empty-shop{grid-column:1/-1;text-align:center;color:var(--muted)}
@media(max-width:560px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .card{aspect-ratio:3/4;border-radius:22px}
  .vis{padding-bottom:78px}.vis svg{width:64%}
  .glass{left:6px;right:6px;bottom:6px;padding:8px 8px 8px 12px;border-radius:16px;gap:6px}
  .meta h3{font-size:1rem}.meta p{display:none}.price{margin-top:2px;font-size:.92rem}
  .plus{width:38px;height:38px;font-size:1.4rem}
}

/* galerie auto-défilante */
.gallery{background:#fff;padding:clamp(50px,8vw,110px) 0;position:relative;z-index:4;overflow:hidden}
.gallery .head{padding:0 clamp(16px,5vw,70px)}
.gal-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.gal-track{display:flex;gap:16px;width:max-content;animation:gal var(--dur,40s) linear infinite;will-change:transform}
.gal-wrap:hover .gal-track,.gal-wrap:focus-within .gal-track{animation-play-state:paused}
.gal-track figure{margin:0;flex:none;width:284px;height:360px;border-radius:22px;overflow:hidden;background:var(--blush);box-shadow:0 14px 30px -16px rgba(30,20,10,.35)}
.gal-track img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.gal-track figure:hover img{transform:scale(1.06)}
@keyframes gal{to{transform:translateX(-50%)}}
@media(max-width:700px){.gal-track figure{width:220px;height:290px}}

/* fidélité */
.fid{padding:clamp(80px,12vw,150px) 24px;text-align:center;position:relative;z-index:4;background:linear-gradient(#fff,var(--blush) 40%,#fff)}
.fid h2{font-family:var(--script);font-weight:400;font-size:clamp(2.6rem,6vw,4.6rem);margin:0}
.fid p{max-width:32em;margin:.4em auto 1.8em}
.stamps{display:flex;justify-content:center;gap:clamp(10px,3vw,30px);flex-wrap:wrap;margin-bottom:1.4em}
.stamp{width:clamp(58px,11vw,92px);aspect-ratio:1;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;transition:transform .4s,background .4s,box-shadow .4s}
.stamp svg{width:62%;opacity:.25;transition:opacity .4s}
.stamp.on{background:#f1c7c1;transform:scale(1.07);box-shadow:0 8px 22px rgba(0,0,0,.15)}.stamp.on svg{opacity:1}
.stamp.six{background:var(--ink);border-color:var(--ink)}.stamp.six span{color:#fff;font-size:1.4rem}
.stamp.six.on{box-shadow:0 8px 22px rgba(0,0,0,.35)}
#fid-msg{min-height:1.6em;color:#333}
.fid .small{font-size:.92rem;color:var(--muted);font-style:italic;margin:.6em auto 0}

/* contact + footer */
.contact{padding:clamp(80px,12vw,140px) 24px;text-align:center;position:relative;z-index:4;background:#fff}
.contact h2{font-family:var(--script);font-weight:400;font-size:clamp(2.6rem,6vw,4.4rem);margin:0 0 .3em}
.contact ul{list-style:none;padding:0;margin:1.2em 0 2em}.contact li{margin:.3em 0;color:#333}
.contact li a{text-decoration:none;border-bottom:1px solid rgba(0,0,0,.35)}
footer.foot{background:#fff;border-top:1px solid var(--line);padding:clamp(48px,8vw,90px) 24px calc(34px + env(safe-area-inset-bottom,0px));text-align:center;position:relative;z-index:4}
.foot-in{max-width:34em;margin:0 auto}
.foot-brand{font-size:1.6rem;letter-spacing:.5em;margin:0 -.5em 0 0}
.foot-sub{font-family:var(--script);font-size:2.2rem;margin:0 0 .8em}
.foot p{margin:0 0 1.3em}
.foot .fine{font-size:.9rem;color:var(--muted);letter-spacing:.12em;margin:2.2em 0 0}

.foot .adm-link{display:inline-grid;place-items:center;width:30px;height:30px;margin-top:1.2em;border-radius:50%;color:var(--muted);opacity:.35;text-decoration:none;transition:opacity .3s,background .3s,color .3s}
.foot .adm-link:hover,.foot .adm-link:focus-visible{opacity:1;background:var(--ink);color:#fff}
/* word reveal */
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.22em .06em .28em;margin:-.22em -.06em -.28em}
.w>span{display:inline-block;transition:transform 1s cubic-bezier(.2,.7,.2,1) calc(var(--i)*.08s)}
.js .split:not(.in) .w>span{transform:translateY(115%) rotate(4deg)}

/* cart */
.fab{position:fixed;right:clamp(14px,3vw,30px);bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;align-items:center;gap:.5em;padding:.75em 1.15em;border:0;border-radius:999px;background:var(--ink);color:#fff;cursor:pointer;box-shadow:0 12px 34px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:scale(.6);transform-origin:100% 100%;transition:opacity .4s,transform .5s cubic-bezier(.2,.9,.3,1.4),visibility 0s .5s}
.fab.show{opacity:1;visibility:visible;transform:scale(1);transition-delay:0s}
.fab:hover{background:#333}
.badge{display:inline-block;min-width:1.5em;padding:0 .4em;border-radius:1em;background:#fff;color:var(--ink);font:600 .85rem/1.5em var(--ui);text-align:center}
.badge.bump{animation:bump .5s}@keyframes bump{40%{transform:scale(1.7)}}
.fly{position:fixed;z-index:95;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--gold);box-shadow:0 0 22px var(--gold);pointer-events:none}
.veil{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
body.cart-open .veil{opacity:1;visibility:visible;transition-delay:0s}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);z-index:71;background:#fff;color:var(--ink);padding:calc(22px + env(safe-area-inset-top,0px)) 24px calc(22px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow-y:auto;transform:translateX(105%);visibility:hidden;box-shadow:-30px 0 60px rgba(0,0,0,.2);transition:transform .6s cubic-bezier(.7,0,.2,1),visibility 0s .6s}
body.cart-open .drawer{transform:none;visibility:visible;transition-delay:0s}
.drawer-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6em}
.drawer h2{font-family:var(--script);font-weight:400;font-size:2.4rem;margin:0}
.x{background:none;border:0;font-size:1.8rem;cursor:pointer;line-height:1}
.loy{margin:0 0 .6em;padding:.6em .8em;background:var(--blush);font-size:.98rem;border-radius:10px}
#lines{list-style:none;margin:0;padding:0;flex:0 1 auto;max-height:34vh;min-height:48px;overflow:auto;overscroll-behavior:contain}
#lines li{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);animation:rowin .4s both}
#lines li.empty{display:block;color:var(--muted);font-style:italic;padding:1.6em 0;border-bottom:0}
@keyframes rowin{from{opacity:0;transform:translateX(26px)}}
#lines .th{width:56px;height:56px;background:var(--g,var(--blush));border-radius:12px;display:grid;place-items:center;overflow:hidden}
#lines .th svg{width:70%}#lines .th img{width:100%;height:100%;object-fit:cover}
#lines b{font-weight:600;display:block}#lines small{color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px;margin-top:4px}
.qty button{width:28px;height:28px;border-radius:50%;border:1px solid var(--ink);background:none;cursor:pointer;line-height:1}
.qty button:hover{background:var(--ink);color:#fff}
.sums{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}
.sums>div{display:flex;justify-content:space-between;padding:.15em 0}
.sums .tot{font-size:1.4rem;padding:.4em 0 .8em}
.fields{display:grid;gap:10px;margin:0 0 14px}
.fields label{display:grid;gap:4px;font-size:.95rem;color:#444}
.fields input{font:inherit;padding:.6em .7em;border:1px solid rgba(0,0,0,.28);background:#fff;color:var(--ink);border-radius:10px}
.drawer .btn.solid{text-align:center;width:100%}
.drawer .btn[aria-disabled="true"]{opacity:.4;pointer-events:none}
.clear{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;margin:10px auto 0}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translate(-50%,24px);background:var(--ink);color:#fff;padding:.7em 1.3em;border-radius:999px;z-index:96;opacity:0;pointer-events:none;transition:opacity .35s,transform .45s cubic-bezier(.2,.9,.3,1.2);max-width:90vw;text-align:center;font-size:1rem}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ===== ADMIN ===== */
#admin{position:fixed;inset:0;z-index:200;background:#f4f2ef;color:#1b1b1b;font-family:var(--ui);font-size:15px;line-height:1.5;overflow:auto;-webkit-overflow-scrolling:touch}
#admin h1{font:600 1.35rem/1.2 var(--ui);margin:0;letter-spacing:-.01em}
.ad-login{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(70% 50% at 50% 0%,#fbeee6,#f4f2ef)}
.ad-card{width:min(400px,100%);background:#fff;border-radius:22px;padding:34px 28px;box-shadow:0 30px 70px -30px rgba(40,25,10,.35);display:grid;gap:14px;text-align:center}
.ad-card p{margin:0;color:#6a6a6a}
.ad-logo{font-family:var(--serif);font-size:1.7rem;letter-spacing:.5em;margin-right:-.5em}
#admin input:not([type=checkbox]):not([type=file]),#admin textarea,#admin select{width:100%;font:inherit;padding:.65em .85em;border:1px solid #dcd8d2;border-radius:12px;background:#fff;color:#1b1b1b;transition:border-color .2s,box-shadow .2s}
#admin input:focus,#admin textarea:focus,#admin select:focus{outline:none;border-color:#111;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.ad-btn{border:1px solid #d6d1ca;background:#fff;border-radius:12px;padding:.7em 1.1em;font:600 .93rem var(--ui);cursor:pointer;text-decoration:none;color:#1b1b1b;display:inline-block;transition:transform .2s,background .2s}
.ad-btn:hover{transform:translateY(-1px);background:#faf8f5}
.ad-btn.primary{background:#111;color:#fff;border-color:#111}.ad-btn.primary:hover{background:#2a2a2a}
.ad-err{color:#b3261e;min-height:1.2em;font-size:.9rem}
.ad-link{color:#6a6a6a;text-decoration:none;font-size:.9rem}
.ad-shell{display:grid;grid-template-columns:260px 1fr;min-height:100%}
.ad-side{position:sticky;top:0;height:100vh;height:100dvh;padding:24px 14px;background:#fff;border-right:1px solid #e8e4de;display:flex;flex-direction:column;gap:14px;overflow:auto}
.ad-brand{padding:0 10px}
.ad-brand b{font-family:var(--serif);font-size:1.5rem;letter-spacing:.45em;display:block;font-weight:500}
.ad-brand span{color:#8a8a8a;font-size:.85rem}
.ad-nav{display:grid;gap:3px}
.ad-nav .grp{margin:12px 10px 4px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#a29b92}
.ad-nav button{display:flex;align-items:center;gap:12px;border:0;background:none;padding:.7em .9em;border-radius:12px;cursor:pointer;font:500 .96rem var(--ui);color:#444;text-align:left;transition:background .2s}
.ad-nav svg{width:20px;height:20px;flex:none}
.ad-nav button[aria-selected="true"]{background:#111;color:#fff}
.ad-nav button:not([aria-selected="true"]):hover{background:#f1eeea}
.ad-side-link{margin-top:auto;text-align:center}
.ad-main{padding:18px clamp(14px,3vw,40px) 70px;max-width:1180px;width:100%}
.ad-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;position:sticky;top:0;z-index:5;padding:10px 0;background:linear-gradient(#f4f2ef 75%,transparent)}
.ad-top .r{display:flex;align-items:center;gap:10px}
.ad-status{font-size:.82rem;color:#2e7d32;background:#e8f5e9;padding:.35em .8em;border-radius:999px;white-space:nowrap}
.ad-status.busy{color:#8a5a00;background:#fff3d6}.ad-status.bad{color:#b3261e;background:#fdeceb}
.ad-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.ad-bar p{margin:0;color:#6a6a6a;max-width:46em}
.ad-note{background:#fff8e6;border:1px solid #f1dfa6;color:#6a5200;border-radius:14px;padding:12px 14px;font-size:.88rem;max-width:680px;margin-bottom:16px}
.seg{display:inline-flex;background:#e9e5df;border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:none;padding:.42em .85em;border-radius:9px;cursor:pointer;font:600 .84rem var(--ui);color:#555}
.seg button[aria-pressed="true"]{background:#fff;color:#111;box-shadow:0 1px 3px rgba(0,0,0,.14)}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 30px -20px rgba(40,25,10,.35);display:grid;gap:2px}
.kpi span{font-size:.78rem;color:#7a7a7a;font-weight:600}
.kpi b{font:700 1.45rem/1.25 var(--ui);letter-spacing:-.02em}
.kpi small{color:#8a8a8a;font-size:.78rem}
.kpi.good b{color:#1b7a3a}.kpi.bad b{color:#b3261e}
.kpi.dark{background:#111;color:#fff}.kpi.dark span,.kpi.dark small{color:#b9b4ac}
.ad-box{background:#fff;border-radius:22px;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 30px -20px rgba(40,25,10,.35);margin-bottom:16px}
.ad-box h2{font:600 1.02rem var(--ui);margin:0 0 12px}
.ad-grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.ad-grid2>.ad-box{margin-bottom:16px}
.chart{width:100%;height:auto;display:block}
.legend{display:flex;gap:16px;font-size:.8rem;color:#666;margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.empty-note{color:#8a8a8a;margin:6px 0;font-size:.92rem}
.bar-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin-bottom:12px;font-size:.9rem}
.bar-row small{color:#8a8a8a}
.bar-row .bt{grid-column:1/-1;height:6px;border-radius:3px;background:#eee;overflow:hidden}.bar-row .bt i{display:block;height:100%;background:#111;border-radius:3px}
.sale-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}
.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid #e3ded7;background:#fff;border-radius:14px;padding:.6em .8em;cursor:pointer;text-align:left;font:500 .84rem var(--ui);transition:border-color .2s,transform .2s}
.chip:hover{border-color:#111;transform:translateY(-1px)}.chip b{font-weight:700}
.free{display:grid;grid-template-columns:1fr 110px auto;gap:8px;margin-top:12px}
.sale-sum ul{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.sale-sum li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:#f7f5f2;border-radius:12px;padding:8px 10px;font-size:.9rem}
.sale-sum li small{color:#888}.sale-sum li.empty-li{display:block;color:#8a8a8a;background:none;padding:6px 0}
.sale-sum label,.exp-form label,.ad-panel label{display:grid;gap:4px;font-size:.78rem;color:#777;font-weight:600;letter-spacing:.02em}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.tot-line{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;margin:8px 0 12px}
.exp-form{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;gap:10px;align-items:end}
.tbl{display:grid;gap:8px}
.trow{display:grid;grid-template-columns:120px 1.5fr auto auto auto;gap:12px;align-items:center;padding:12px 14px;background:#faf9f7;border-radius:14px;font-size:.9rem}
.trow small{display:block;color:#888}
.trow .amt{font-weight:700;text-align:right}
.trow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pill{padding:.2em .7em;border-radius:999px;font:600 .75rem var(--ui);white-space:nowrap;text-align:center}
.pill.st-payée,.pill.t-in{background:#e8f5e9;color:#2e7d32}.pill.st-en-attente{background:#fff3d6;color:#8a5a00}.pill.st-annulée{background:#eee;color:#777}.pill.t-out{background:#fdeceb;color:#b3261e}
.ad-prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.ad-prod{background:#fff;border-radius:22px;padding:16px;display:grid;grid-template-columns:110px 1fr;gap:14px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 30px -20px rgba(40,25,10,.35);transition:opacity .25s}
.ad-prod.off{opacity:.6}
.ad-img{width:110px;height:110px;border-radius:18px;background:#f4f0eb;display:grid;place-items:center;overflow:hidden;cursor:pointer;color:#8a8a8a;font-size:.82rem;border:1px dashed #cfc8bf;text-align:center;transition:border-color .2s}
.ad-img:hover{border-color:#111}.ad-img img{width:100%;height:100%;object-fit:cover}
.ad-fields{display:grid;gap:8px;min-width:0}
.ad-fields label{display:grid;gap:3px;font-size:.76rem;color:#777;font-weight:600}
.ad-fields input{padding:.5em .7em!important;border-radius:10px!important;font-weight:500}
.ad-fields .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mg{font-size:.78rem;color:#6a7d6a}
.ad-row{grid-column:1/-1;display:flex;align-items:center;gap:8px;border-top:1px solid #efebe5;padding-top:12px;flex-wrap:wrap}
.ad-sp{flex:1}
.ad-sw{display:flex!important;flex-direction:row;align-items:center;gap:10px;cursor:pointer;font-weight:600;font-size:.9rem!important;color:#1b1b1b!important}
.ad-sw input{position:absolute;opacity:0;pointer-events:none}
.ad-sw i{width:42px;height:24px;border-radius:12px;background:#d7d2cb;position:relative;transition:background .25s;flex:none}
.ad-sw i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.ad-sw input:checked+i{background:#111}.ad-sw input:checked+i::after{transform:translateX(18px)}
.ad-sw input:focus-visible+i{outline:2px solid #111;outline-offset:2px}
.ad-ico{border:1px solid #e3ded7;background:#fff;border-radius:10px;padding:.4em .7em;cursor:pointer;font:600 .82rem var(--ui);color:#1b1b1b}
.ad-ico:hover{background:#f6f3ef}.ad-ico.danger{color:#b3261e;border-color:#f0c9c6}.ad-ico.armed{background:#b3261e;color:#fff;border-color:#b3261e}
.ad-drop{border:2px dashed #cfc8bf;border-radius:20px;padding:30px;text-align:center;background:#fff;color:#6a6a6a;cursor:pointer;display:block;transition:border-color .2s,background .2s}
.ad-drop:hover,.ad-drop.over{border-color:#111;background:#faf8f5}
.ad-drop b{color:#111;display:block;font-size:1.05rem;margin-bottom:2px}
.ad-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px}
.ad-gi{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#eee}
.ad-gi img{width:100%;height:100%;object-fit:cover;display:block}
.ad-gi .tools{position:absolute;left:6px;right:6px;bottom:6px;display:flex;gap:4px;justify-content:space-between}
.ad-gi button{border:0;background:rgba(255,255,255,.92);border-radius:9px;padding:.3em .6em;cursor:pointer;font:600 .85rem var(--ui);backdrop-filter:blur(6px)}
.ad-gi button.danger{color:#b3261e}.ad-gi button.armed{background:#b3261e;color:#fff}
.ad-panel{background:#fff;border-radius:22px;padding:22px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 30px -20px rgba(40,25,10,.35);display:grid;gap:16px;max-width:620px;margin-bottom:16px}
.ad-panel h2{font:600 1.05rem var(--ui);margin:0}
.ad-panel .hint{font-weight:400;color:#7a7a7a;font-size:.85rem;margin:0}
.ad-panel .acts{display:flex;gap:10px;flex-wrap:wrap}
#admin textarea{min-height:120px;font:12px/1.4 ui-monospace,Menlo,monospace}
/* ticket */
.tk-modal{position:fixed;inset:0;z-index:260;background:rgba(0,0,0,.5);display:grid;place-items:center;padding:16px;overflow:auto}
.tk-card{background:#f4f2ef;border-radius:22px;padding:18px;width:min(380px,100%);display:grid;gap:14px;font-family:var(--ui);max-height:100%;overflow:auto}
.tk-paper{background:#fff;border-radius:6px;padding:18px 16px;box-shadow:0 10px 30px -14px rgba(0,0,0,.4)}
.tk-acts{display:flex;gap:8px;flex-wrap:wrap}.tk-acts .ad-btn{flex:1;text-align:center;padding:.65em .6em}
.tk-hint{margin:0;font-size:.78rem;color:#7a7a7a}
.rc{font:13px/1.45 ui-monospace,Menlo,Consolas,monospace;color:#000}
.rc-h{text-align:center;display:grid;gap:1px}.rc-h b{font:600 20px var(--serif);letter-spacing:.4em;margin-right:-.4em}.rc-h i{font-family:var(--serif);font-size:15px}
.rc hr{border:0;border-top:1px dashed #888;margin:8px 0}
.rc-l,.rc-m,.rc-t{display:flex;justify-content:space-between;gap:10px}
.rc-m{flex-wrap:wrap;color:#333}.rc-t{font-weight:700;font-size:15px;margin-top:4px}
.rc-f{text-align:center;margin:4px 0 0}
#ticketPrint{display:none}
@media print{
  @page{size:80mm auto;margin:4mm}
  body>*:not(#ticketPrint){display:none!important}
  body.printing #ticketPrint{display:block!important;width:72mm;margin:0 auto}
}
@media(max-width:980px){
  .ad-grid2,.sale-grid{grid-template-columns:1fr}
  .exp-form{grid-template-columns:1fr 1fr}.exp-form button{grid-column:1/-1}
}

/* cartes : détails */
.card{cursor:pointer}
.card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.det{position:absolute;top:12px;right:12px;z-index:3;border:0;border-radius:999px;padding:.38em .9em;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:600 .74rem var(--ui);color:var(--ink);cursor:pointer;opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s}
.card:hover .det,.card:focus-within .det{opacity:1;transform:none}
@media(hover:none){.det{opacity:1;transform:none}}
.tagc{position:absolute;top:12px;left:12px;z-index:3;padding:.3em .8em;border-radius:999px;background:var(--ink);color:#fff;font:600 .72rem var(--ui)}
.card.soldout .vis{filter:grayscale(.6);opacity:.8}.card.soldout .plus{opacity:.35;pointer-events:none}
.dl{margin-top:.8em;font-size:.95rem;padding:.6em 1.4em}

/* overlay produit */
body.pov-open{overflow:hidden}
.pov{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.pov-bg{position:absolute;inset:0;background:rgba(15,10,6,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s}
.pov.on .pov-bg{opacity:1}
.pov-card{position:relative;width:min(1000px,100%);height:min(700px,calc(100dvh - 32px));max-height:100%;background:#fff;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);box-shadow:0 40px 90px -30px rgba(0,0,0,.65);opacity:0;transform:translateY(26px) scale(.97);transition:opacity .35s,transform .5s cubic-bezier(.2,.8,.2,1)}
.pov.on .pov-card{opacity:1;transform:none}
.pov-x{position:absolute;top:14px;right:14px;z-index:5;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2);transition:transform .3s}
.pov-x:hover{transform:rotate(90deg) scale(1.06)}
.pov-media{position:relative;background:var(--blush);overflow:hidden;min-height:0}
.pov-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pov-media .art{position:absolute;inset:0;background:var(--g,var(--blush));display:grid;place-items:center}
.pov-media .art::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 14%,rgba(255,255,255,.8),transparent 55%)}
.pov-media .art svg{width:62%;position:relative;filter:drop-shadow(0 20px 22px rgba(0,0,0,.2));animation:bob 5s ease-in-out infinite alternate}
@keyframes bob{to{transform:translateY(-8px) rotate(1.5deg)}}
.pov-chip{position:absolute;top:16px;left:16px;z-index:3;padding:.38em 1em;border-radius:999px;background:rgba(255,255,255,.9);font:600 .68rem var(--ui);letter-spacing:.14em;text-transform:uppercase}
.pov-nav{position:absolute;bottom:16px;left:16px;z-index:3;display:flex;gap:8px;align-items:center}
.pov-nav button{width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.92);cursor:pointer;font-size:1.1rem;box-shadow:0 6px 16px rgba(0,0,0,.18);transition:transform .25s}
.pov-nav button:hover{transform:scale(1.08)}
.pov-nav span{font:600 .75rem var(--ui);background:rgba(255,255,255,.9);padding:.35em .8em;border-radius:999px}
.pov-body{display:flex;flex-direction:column;min-height:0}
.pov-body.swap{animation:povswap .4s ease}
@keyframes povswap{from{opacity:.2;transform:translateX(14px)}}
.pov-scroll{padding:34px 34px 14px;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain}
.pov-foot{padding:14px 34px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff;display:grid;gap:10px}
.pov-crumb{font:600 .7rem var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 .7em}
.pov-body h2{font-weight:500;font-size:clamp(1.9rem,3.2vw,2.5rem);line-height:1.08;margin:0 0 .1em;padding-right:36px}
.pov-sub{margin:0;color:var(--muted);font-style:italic}
.pov-price{margin:.7em 0 .6em;font:700 1.5rem var(--ui);letter-spacing:-.02em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pov-price small{font:500 .8rem var(--ui);color:var(--muted);letter-spacing:.05em}
.pill-o,.pill-l,.pill-s{font:600 .72rem var(--ui);padding:.28em .8em;border-radius:999px;letter-spacing:0}
.pill-o{background:#fdeceb;color:#b3261e}.pill-l{background:#fff3d6;color:#8a5a00}.pill-s{background:#e8f5e9;color:#2e7d32}
.pov-desc{margin:0 0 1em}
.pov-body details{border-top:1px solid var(--line);padding:.7em 0}
.pov-body summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}
.pov-body summary::-webkit-details-marker{display:none}
.pov-body summary::after{content:"+";transition:transform .3s}.pov-body details[open] summary::after{transform:rotate(45deg)}
.pov-body details ul{margin:.6em 0 0;padding-left:1.1em}.pov-body details li{margin:.35em 0}
.pov-body details p{margin:.5em 0 0;color:#333}
.pov-rel{border-top:1px solid var(--line);padding-top:1em;margin-top:.4em}
.pov-rel h4{margin:0 0 .6em;font:600 .72rem var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pov-rel div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pov-rel button{border:0;background:var(--g,var(--blush));border-radius:16px;padding:8px 8px 10px;cursor:pointer;text-align:left;display:grid;gap:4px;transition:transform .3s}
.pov-rel button:hover{transform:translateY(-3px)}
.pov-rel .rt{aspect-ratio:1;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.55)}
.pov-rel .rt img{width:100%;height:100%;object-fit:cover}.pov-rel .rt svg{width:70%}
.pov-rel b{font:600 .78rem/1.2 var(--ui);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pov-rel small{font:600 .72rem var(--ui);color:var(--muted)}
.pov-act{display:flex;gap:12px;align-items:center;flex-wrap:nowrap}
.pov-act .btn{flex:1;text-align:center;min-width:0;white-space:nowrap}.pov-act .btn[disabled]{opacity:.4;pointer-events:none}
.qty.big{gap:10px;flex:none}.qty.big button{width:38px;height:38px;font-size:1.2rem}.qty.big span{min-width:1.4em;text-align:center;font:600 1.05rem var(--ui)}
.pov-links{display:flex;gap:16px;flex-wrap:wrap;font-size:.92rem}
.pov-links a,.pov-links button{background:none;border:0;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit}
@media(max-width:760px){
  .pov{align-items:flex-end;padding:0}
  .pov-card{grid-template-columns:1fr;grid-template-rows:30dvh minmax(0,1fr);height:min(92dvh,100%);border-radius:26px 26px 0 0;transform:translateY(70px)}
  .pov-scroll{padding:20px 20px 8px}.pov-foot{padding:12px 20px calc(14px + env(safe-area-inset-bottom,0px))}
  .pov-nav{bottom:12px;left:12px}.pov-nav button{width:36px;height:36px}
  .pov-rel div{grid-template-columns:repeat(3,1fr)}
}

/* ===== ADMIN : gestion simplifiée ===== */
.ad-sub{margin:0 0 14px;color:#7a7a7a;font-size:.9rem}
.qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px}
.qa button{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e6e1da;border-radius:18px;padding:14px 16px;cursor:pointer;font:600 .92rem var(--ui);text-align:left;color:#1b1b1b;transition:transform .2s,border-color .2s,box-shadow .2s}
.qa button:hover{transform:translateY(-2px);border-color:#111;box-shadow:0 12px 26px -16px rgba(0,0,0,.45)}
.qa .ic{width:36px;height:36px;border-radius:11px;background:#111;color:#fff;display:grid;place-items:center;font-size:1.15rem;flex:none}
.alerts{display:grid;gap:8px;margin-bottom:16px}
.alert{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff8e6;border:1px solid #f1dfa6;border-radius:14px;padding:10px 14px;font-size:.9rem;color:#6a5200}
.alert.red{background:#fdeceb;border-color:#f3c9c6;color:#8f1d16}
.alert button{border:0;background:rgba(0,0,0,.08);border-radius:9px;padding:.35em .8em;cursor:pointer;font:600 .82rem var(--ui);color:inherit}
.todo ol{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.todo li{display:flex;align-items:center;gap:10px;font-size:.92rem}
.todo li i{width:20px;height:20px;border-radius:50%;border:2px solid #cfc8bf;flex:none;display:grid;place-items:center;font-size:.7rem;font-style:normal;color:#fff}
.todo li.ok i{background:#2e7d32;border-color:#2e7d32}.todo li.ok span{color:#888;text-decoration:line-through}
.plist{display:grid;gap:10px}
.prow{display:grid;grid-template-columns:60px 1fr auto;gap:14px;align-items:center;background:#fff;border-radius:20px;padding:10px 14px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 10px 26px -20px rgba(40,25,10,.4);transition:opacity .25s}
.prow.off{opacity:.55}
.prow .th{width:60px;height:60px;border-radius:14px;background:#f4f0eb;overflow:hidden;display:grid;place-items:center}
.prow .th img{width:100%;height:100%;object-fit:cover}.prow .th svg{width:70%}
.prow .pn{min-width:0}.prow .pn b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow .pn small{color:#888}
.pr-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.pr-acts .pp{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#777;font-weight:600}
.pr-acts .pp input{width:96px!important;padding:.45em .6em!important}
.stk{font:600 .74rem var(--ui);padding:.28em .75em;border-radius:999px;background:#eee;color:#666;white-space:nowrap}
.stk.ok{background:#e8f5e9;color:#2e7d32}.stk.low{background:#fff3d6;color:#8a5a00}.stk.out{background:#fdeceb;color:#b3261e}
.sheet-bg{position:fixed;inset:0;z-index:240;background:rgba(0,0,0,.4)}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(540px,100%);z-index:241;background:#fff;box-shadow:-30px 0 70px rgba(0,0,0,.25);display:flex;flex-direction:column;transform:translateX(105%);transition:transform .45s cubic-bezier(.2,.8,.2,1);font-family:var(--ui);font-size:15px}
.sheet.on{transform:none}
.sheet-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}
.sheet-h h2{font:600 1.1rem var(--ui);margin:0}
.sheet-b{padding:18px 20px;overflow:auto;display:grid;gap:14px;flex:1;align-content:start}
.sheet-f{padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #eee;display:flex;gap:8px;flex-wrap:wrap}
.sheet label{display:grid;gap:4px;font-size:.78rem;color:#777;font-weight:600}
.sheet textarea{min-height:74px;font:inherit;line-height:1.4;resize:vertical}
.sh-top{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:start}
.sh-two{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.sh-img{width:110px;height:110px;border-radius:18px;background:#f4f0eb;display:grid;place-items:center;overflow:hidden;cursor:pointer;color:#8a8a8a;font-size:.82rem;border:1px dashed #cfc8bf;text-align:center}
.sh-img img{width:100%;height:100%;object-fit:cover}
.conn-st{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dot{width:10px;height:10px;border-radius:50%;background:#bbb;flex:none}.dot.on{background:#2e7d32}.dot.bad{background:#b3261e}
.steps{margin:0;padding-left:1.2em;display:grid;gap:6px;font-size:.9rem;color:#444}
pre.rules{margin:0;background:#111;color:#e8e4de;border-radius:14px;padding:14px;font:12px/1.5 ui-monospace,Menlo,monospace;overflow:auto;max-height:240px}
.acts.wrap{flex-wrap:wrap}
@media(max-width:820px){
  .prow{grid-template-columns:60px 1fr}.pr-acts{grid-column:1/-1;justify-content:space-between}
  .sh-two{grid-template-columns:1fr 1fr}
}
/* ===== DESIGN PRO : système ===== */
h1,h2,h3{text-wrap:balance}
.eyebrow{font:600 .72rem var(--ui);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:0 0 .9em}
.manifeste .eyebrow,.fid .eyebrow,.contact .eyebrow{text-align:center}
.hero-sub{max-width:34em;margin:0 auto 1.8em;color:#555;font-size:clamp(1.05rem,1.6vw,1.3rem);opacity:0;animation:in 1.2s 1.2s forwards;animation-play-state:paused}
body.go .hero-sub{animation-play-state:running}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero .btn.solid{box-shadow:0 14px 30px -14px rgba(0,0,0,.6)}
.trust{background:#fff;position:relative;z-index:4;border-bottom:1px solid var(--line)}
.trust ul{list-style:none;margin:0 auto;padding:26px clamp(16px,5vw,60px);max-width:1200px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.trust li{display:flex;align-items:center;gap:14px;line-height:1.3}
.trust svg{width:34px;height:34px;flex:none;color:var(--gold)}
.trust b{display:block;font-weight:600;font-size:1.02rem}.trust small{display:block;color:var(--muted);font-size:.88rem}
@media(max-width:900px){.trust ul{grid-template-columns:1fr 1fr;gap:16px}}
@media(max-width:480px){.trust ul{grid-template-columns:1fr}}
.shop-tools{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:1.1em}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.fchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.5em 1.15em;font:600 .82rem var(--ui);cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.fchip:hover{border-color:var(--ink);transform:translateY(-1px)}
.fchip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.dl{margin:0}
.meta .cat{font:600 .62rem var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}
@media(max-width:560px){.meta .cat{display:none}}
.steps3{background:#fff;padding:clamp(70px,10vw,130px) clamp(16px,5vw,70px);position:relative;z-index:4}
.steps3 ol{list-style:none;max-width:1200px;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.steps3 li{background:var(--blush);border-radius:28px;padding:30px 28px 28px;position:relative;overflow:hidden}
.steps3 li b{font:300 5rem/1 var(--serif);color:rgba(176,125,58,.3);position:absolute;right:22px;top:8px}
.steps3 h3{margin:0 0 .4em;font-size:1.55rem;font-weight:600}.steps3 p{margin:0;color:#444;max-width:22em}
@media(max-width:800px){.steps3 ol{grid-template-columns:1fr}}
.fid .eyebrow{margin:0 0 .6em;max-width:none}
/* pied de page */
footer.foot{text-align:left;padding:clamp(56px,8vw,96px) clamp(16px,5vw,60px) calc(28px + env(safe-area-inset-bottom,0px));background:#111;color:#e9e4dd;border-top:0}
.foot-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(24px,5vw,64px)}
.fcol{display:grid;gap:.55em;align-content:start}
.fcol p{margin:0;color:#b9b2a8;max-width:26em}
.fcol h4{margin:0 0 .5em;font:600 .72rem var(--ui);letter-spacing:.2em;text-transform:uppercase;color:#c9954f}
.fcol a,.fcol span{color:#e9e4dd;text-decoration:none;font-size:1rem}.fcol a:hover{color:#fff;text-decoration:underline}
footer.foot .foot-brand{font-size:1.7rem;letter-spacing:.5em;margin:0;color:#fff}
footer.foot .foot-sub{font-family:var(--script);font-size:2rem;color:#e6c48a;margin:0 0 .3em}
.foot-cta{max-width:1200px;margin:clamp(30px,5vw,56px) auto 0;padding:26px 0;border-block:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.foot-cta p{margin:0;max-width:34em;color:#d6d0c7}
.foot-cta .btn.solid{background:#fff;color:#111;border-color:#fff}.foot-cta .btn.solid:hover{background:#e6c48a;border-color:#e6c48a}
.foot-bot{max-width:1200px;margin:22px auto 0;display:flex;justify-content:space-between;align-items:center;font-size:.88rem;color:#8d867c;letter-spacing:.08em}
footer.foot .adm-link{margin:0;color:#8d867c;opacity:.5}
footer.foot .adm-link:hover,footer.foot .adm-link:focus-visible{background:#fff;color:#111;opacity:1}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid .fcol:first-child{grid-column:1/-1}}
@media(max-width:480px){.foot-grid{grid-template-columns:1fr}}

/* ===== MENU, HEADER, RESPONSIVE ===== */
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.burger{display:none;width:46px;height:46px;border:0;border-radius:50%;background:transparent;cursor:pointer;place-items:center;align-content:center;gap:5px;transition:background .25s}
.burger:hover{background:rgba(0,0,0,.06)}
.burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px}
.burger span:nth-child(3){width:14px;justify-self:start;margin-left:12px}
nav a.active{background:rgba(0,0,0,.07)}nav a.active:hover{background:var(--ink)}
@media(max-width:900px){nav{display:none}header.nav{justify-content:space-between;padding:6px 8px 6px 22px}.burger{display:grid}.logo{font-size:1.15rem}}
.mback{position:fixed;inset:0;z-index:79;background:rgba(15,10,6,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
body.menu-open{overflow:hidden}
body.menu-open .mback{opacity:1;visibility:visible;transition-delay:0s}
.mdrawer{position:fixed;top:0;left:0;bottom:0;width:min(360px,88vw);z-index:80;background:#fff;display:flex;flex-direction:column;padding:calc(18px + env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-102%);visibility:hidden;transition:transform .5s cubic-bezier(.2,.8,.2,1);overflow-y:auto;box-shadow:30px 0 60px -20px rgba(0,0,0,.3)}
body.menu-open .mdrawer{transform:none;visibility:visible;transition-delay:0s}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2em}
.mhead .logo{font-size:1.3rem}
.mclose{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.6rem;line-height:1;cursor:pointer;transition:transform .3s,background .3s,color .3s}
.mclose:hover{background:var(--ink);color:#fff;transform:rotate(90deg)}
.mnav{display:grid;margin-bottom:1.6em}
.mnav a{display:flex;align-items:center;justify-content:space-between;padding:.75em .2em;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.55rem;transition:padding .3s,color .3s}
.mnav a::after{content:"→";font:400 1rem var(--ui);color:var(--muted);transition:transform .3s}
.mnav a:hover,.mnav a.active{padding-left:.5em}.mnav a:hover::after{transform:translateX(4px)}
.mnav a.active{color:var(--gold)}
.mdrawer .btn{width:100%}
.minfo{margin-top:auto;padding-top:1.6em;display:grid;gap:.4em;font-size:.98rem;color:var(--muted)}
.minfo a{color:inherit;text-decoration:none}

/* cartes : plus de présence */
.boutique{background:#faf6f1}
.card{border-radius:32px;border:1px solid rgba(255,255,255,.7);box-shadow:0 1px 2px rgba(30,20,10,.06),0 26px 46px -28px rgba(30,20,10,.55)}
.vis::after{content:"";position:absolute;left:24%;right:24%;bottom:98px;height:16px;background:radial-gradient(ellipse at center,rgba(0,0,0,.22),transparent 70%);filter:blur(4px);pointer-events:none}
.vis:has(img.photo)::after{display:none}
.glass{border-radius:24px;background:rgba(255,255,255,.88);padding:14px 14px 14px 20px;box-shadow:0 10px 30px -18px rgba(0,0,0,.35)}
.meta h3{font-size:1.28rem}
.det{top:14px;right:14px}
.filters{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;max-width:100%;padding-bottom:2px}
.filters::-webkit-scrollbar{display:none}
.fchip{white-space:nowrap;flex:none}

/* overlay produit : finitions */
.pov-card{border-radius:32px}
.pov-price{font-size:1.65rem}
.pov-body h2{font-size:clamp(1.9rem,3vw,2.5rem)}
@media(max-width:760px){
  .pov-card{grid-template-rows:28dvh minmax(0,1fr)}
  .pov-card::before{content:"";position:absolute;top:8px;left:50%;width:44px;height:4px;border-radius:2px;background:rgba(0,0,0,.28);transform:translateX(-50%);z-index:6}
}

/* pied de page : couleur cacao */
footer.foot{background:linear-gradient(180deg,#3a2218,#2b1a12);color:#f3e9df;border-top:3px solid #c9954f}
.fcol p{color:#d2c5b5}
.fcol a,.fcol span{color:#f3e9df}
.fcol h4{color:#e6c48a}
footer.foot .foot-brand{color:#fff}
.foot-cta{border-block:1px solid rgba(230,196,138,.25)}
.foot-cta p{color:#eadfd2}
.foot-cta .btn.solid{background:#f3e9df;color:#2b1a12;border-color:#f3e9df}
.foot-cta .btn.solid:hover{background:#e6c48a;border-color:#e6c48a}
.foot-bot{color:#b8a894}
footer.foot .adm-link{color:#b8a894}
footer.foot .adm-link:hover,footer.foot .adm-link:focus-visible{background:#f3e9df;color:#2b1a12}

/* scènes courtes (environ 2 s) : le produit tourne, sur tous les écrans */
.m-details{display:none}
@media(max-width:820px){
  .scene{height:135vh}
  .stage{grid-template-columns:1fr;grid-template-rows:36% 1fr;padding:74px 22px 26px;gap:0;align-items:start}
  .obj{order:-1;align-self:center}
  .copy{align-self:start}
  .copy .tabs,.copy .panel{display:none}
  .copy h2{font-size:clamp(2.3rem,10vw,3.2rem)}
  .lead{font-size:1rem;margin-bottom:.9em;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .cta{display:flex;gap:10px;flex-wrap:wrap}.cta .btn{flex:1 1 auto}
  .m-details{display:inline-flex}
  .chapter{top:62px}
}
@media(max-width:820px) and (max-height:560px){.lead{display:none}}
@media(max-width:560px){
  .shop-tools{flex-direction:column;align-items:stretch}.dl{width:100%}
  .hero-cta{width:min(340px,100%);margin:0 auto}.hero-cta .btn{width:100%}
  .manifeste{padding-inline:20px}
  .fid,.contact,.steps3{padding-inline:18px}
  .foot-cta .btn{width:100%}
}
@media(max-width:380px){
  .glass{padding:8px 8px 8px 10px}.meta h3{font-size:.95rem}.price{font-size:.86rem}
  .wordmark{letter-spacing:.34em}
}

/* ===== ADMIN : sidebar verticale avec fermeture ===== */
.ad-shell{display:block;min-height:100%}
.ad-side{position:fixed;top:0;left:0;bottom:0;width:284px;max-width:88vw;height:auto;z-index:40;background:#fff;border-right:1px solid #e8e4de;padding:18px 14px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;flex-direction:column;gap:10px;overflow-y:auto;transform:translateX(-102%);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.ad-shell.side-open .ad-side{transform:none;box-shadow:24px 0 60px -30px rgba(0,0,0,.35)}
.ad-back{position:fixed;inset:0;z-index:39;background:rgba(15,10,6,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.ad-main{margin-left:0;transition:margin-left .4s cubic-bezier(.2,.8,.2,1);max-width:none;width:auto;padding:16px clamp(14px,3vw,40px) 70px}
.ad-main>*{max-width:1180px}
.ad-brand{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 6px 14px;border-bottom:1px solid #f0ece6}
.ad-brand b{display:block;font-family:var(--serif);font-size:1.5rem;letter-spacing:.45em;font-weight:500}
.ad-brand span{color:#8a8a8a;font-size:.85rem}
.ad-col{border:1px solid #e6e1da;background:#fff;border-radius:10px;width:36px;height:36px;cursor:pointer;color:#555;font-size:1.3rem;line-height:1;flex:none;transition:background .2s,color .2s,transform .3s}
.ad-col:hover{background:#111;color:#fff;transform:rotate(90deg)}
.ad-nav{display:grid;gap:3px;overflow:visible}
.ad-nav .grp{margin:14px 10px 4px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#a29b92}
.ad-nav button{position:relative;display:flex;align-items:center;gap:12px;border:0;background:none;padding:.72em .9em;border-radius:12px;cursor:pointer;font:500 .96rem var(--ui);color:#444;text-align:left;transition:background .2s}
.ad-nav button svg{width:20px;height:20px;flex:none}
.ad-nav button[aria-selected="true"]{background:#111;color:#fff}
.ad-nav button:not([aria-selected="true"]):hover{background:#f1eeea}
.ad-nav button[aria-selected="true"]::before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:#c9954f}
.nb{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#c9954f;color:#fff;font:700 .7rem/20px var(--ui);text-align:center}
.nb:empty{display:none}
.ad-foot{margin-top:auto;display:grid;gap:8px;padding-top:12px;border-top:1px solid #f0ece6}
.ad-foot .ad-btn{display:flex;align-items:center;justify-content:center;gap:8px}
.ad-foot svg{width:16px;height:16px;flex:none}
.ad-top{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.ad-top .ttl{display:flex;align-items:center;gap:12px;min-width:0}
.ad-top h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-menu{display:none;width:42px;height:42px;border:1px solid #e0dbd3;background:#fff;border-radius:12px;cursor:pointer;place-items:center;flex:none;color:#1b1b1b;transition:background .2s}
.ad-menu:hover{background:#f4f1ec}
.ad-menu svg{width:20px;height:20px}
.ad-shell:not(.side-open) .ad-menu{display:grid}
.seg{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}
.seg button{white-space:nowrap}
@media(min-width:1101px){
  .ad-shell.side-open .ad-main{margin-left:284px}
  .ad-back{display:none!important}
}
@media(max-width:1100px){
  .ad-menu{display:grid}
  .ad-grid2,.sale-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .ad-main{padding:12px 14px 90px}
  .ad-top h1{font-size:1.15rem}.ad-top .r .ad-btn{display:none}
  .ad-box,.ad-panel{padding:16px;border-radius:18px}
  .pick{grid-template-columns:repeat(2,1fr)}
  .trow{grid-template-columns:1fr auto;row-gap:8px}.trow .acts{grid-column:1/-1;justify-content:flex-start}
  .row2{grid-template-columns:1fr 1fr}.free{grid-template-columns:1fr 90px}.free button{grid-column:1/-1}
  .exp-form{grid-template-columns:1fr 1fr}.exp-form button{grid-column:1/-1}
  .sheet{width:100%}
}
@media(max-width:560px){
  .kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{padding:14px}.kpi b{font-size:1.15rem}
  .exp-form{grid-template-columns:1fr}.row2{grid-template-columns:1fr}
  .qa{grid-template-columns:1fr 1fr}.qa button{padding:12px}
  .sh-two{grid-template-columns:1fr 1fr}
  .ad-top .r .ad-status{font-size:.74rem;padding:.3em .6em}
}
/* ===== ADMIN : habillage ISILI (même univers que l'accueil) ===== */
#admin{background:radial-gradient(60% 36% at 85% 0%,rgba(201,149,79,.12),transparent 70%),radial-gradient(50% 34% at 0% 0%,rgba(243,190,190,.2),transparent 70%),#faf6f1;color:#241812;scrollbar-width:thin;scrollbar-color:#d9c9b6 transparent}
#admin ::selection{background:#e6c48a}
#admin .ad-top h1,#admin .ad-card h1{font:400 clamp(2.1rem,4vw,3rem)/1.05 var(--script);letter-spacing:0}
.ad-eyebrow{display:block;font:600 .66rem var(--ui);letter-spacing:.26em;text-transform:uppercase;color:#b07d3a;margin-bottom:2px}
.ad-top{background:linear-gradient(#faf6f1 72%,transparent)}
.ad-sub{font:italic 1.1rem var(--serif);color:#6a5a4c;margin-bottom:16px}
/* sidebar cacao */
.ad-side{background:linear-gradient(180deg,#3a2218,#2b1a12);border-right:0;color:#f3e9df}
.ad-shell.side-open .ad-side{box-shadow:24px 0 60px -30px rgba(0,0,0,.55)}
.ad-brand{border-bottom:1px solid rgba(230,196,138,.22)}
.ad-brand b{color:#fff}.ad-brand span{color:#cdb99d;font:400 1.2rem var(--script)}
.ad-col{background:transparent;border-color:rgba(243,233,223,.3);color:#f3e9df}.ad-col:hover{background:#f3e9df;color:#2b1a12}
.ad-nav .grp{color:#c9954f}
.ad-nav button{color:#e6dccf;border-radius:14px}
.ad-nav button:not([aria-selected="true"]):hover{background:rgba(243,233,223,.1)}
.ad-nav button[aria-selected="true"]{background:linear-gradient(135deg,rgba(243,233,223,.2),rgba(243,233,223,.08));color:#fff;box-shadow:inset 0 0 0 1px rgba(230,196,138,.38)}
.ad-nav button[aria-selected="true"]::before{background:#e6c48a}
.ad-foot{border-top-color:rgba(230,196,138,.22)}
.ad-foot .ad-btn{background:transparent;color:#f3e9df;border-color:rgba(243,233,223,.3)}
.ad-foot .ad-btn:hover{background:#f3e9df;color:#2b1a12}
/* cartes */
.ad-box,.ad-panel,.kpi,.prow,.ad-prod{border-radius:28px;border:1px solid rgba(201,149,79,.14);box-shadow:0 1px 2px rgba(60,35,20,.05),0 26px 46px -32px rgba(60,35,20,.42)}
.ad-box h2,.ad-panel h2{font:600 1.35rem var(--serif);letter-spacing:0;display:flex;align-items:center;gap:10px}
.ad-box h2::before,.ad-panel h2::before{content:"";width:18px;height:2px;background:#c9954f;border-radius:2px;flex:none}
.kpi{padding:20px 22px}
.kpi span{font:600 .66rem var(--ui);letter-spacing:.16em;text-transform:uppercase;color:#a08a74}
.kpi b{font:600 clamp(1.35rem,2.4vw,2.1rem)/1.1 var(--serif);letter-spacing:0}
.kpi small{color:#a99a89}
.kpi.dark{background:linear-gradient(135deg,#3a2218,#2b1a12);color:#fff;border-color:transparent}
.kpi.dark b{color:#e6c48a}.kpi.dark span,.kpi.dark small{color:#cdb99d}
.trow{background:#fcf9f5;border:1px solid rgba(60,35,20,.06);border-radius:18px}
.chip{border-radius:18px;border-color:rgba(60,35,20,.14);background:#fffdfb}.chip:hover{border-color:#b07d3a}
.bar-row .bt{background:#f1e6d8}.bar-row .bt i{background:linear-gradient(90deg,#3a2218,#c9954f)}
.legend i{border-radius:50%}
/* boutons, champs, onglets */
.ad-btn{border-radius:999px;padding:.72em 1.3em;border-color:rgba(60,35,20,.18);background:#fff}
.ad-btn:hover{background:#fbf6ef}
.ad-btn.primary{background:#241812;border-color:#241812;color:#fff}.ad-btn.primary:hover{background:#3a2218}
.ad-ico{border-radius:999px;padding:.42em .95em;border-color:rgba(60,35,20,.16)}
#admin input:not([type=checkbox]):not([type=file]),#admin textarea,#admin select{border-radius:14px;border-color:rgba(60,35,20,.18);background:#fffdfb}
#admin input:focus,#admin textarea:focus,#admin select:focus{border-color:#b07d3a;box-shadow:0 0 0 4px rgba(201,149,79,.2)}
.seg{background:rgba(60,35,20,.07);border-radius:999px}.seg button{border-radius:999px;color:#6a5a4c}
.seg button[aria-pressed="true"]{background:#241812;color:#fff;box-shadow:0 8px 16px -10px rgba(0,0,0,.7)}
.ad-status{background:rgba(46,125,50,.1)}
.ad-note{background:#fff7ea;border-color:#ecd9ae;border-radius:16px;font:1rem var(--serif);color:#6a5200}
.ad-sw input:checked+i{background:#3a2218}
.ad-drop{border-radius:28px;border-color:rgba(201,149,79,.5);background:#fffdfb}.ad-drop:hover,.ad-drop.over{border-color:#b07d3a;background:#fff7ea}
.alert{border-radius:18px}
.ad-menu{border-radius:14px;border-color:rgba(60,35,20,.18)}
/* actions rapides */
.qa button{border-radius:26px;border:1px solid rgba(201,149,79,.2);box-shadow:0 26px 40px -34px rgba(60,35,20,.55)}
.qa button:hover{border-color:#c9954f;box-shadow:0 26px 44px -26px rgba(60,35,20,.55)}
.qa .ic{background:linear-gradient(135deg,#3a2218,#2b1a12);color:#e6c48a;border-radius:14px;width:40px;height:40px}
/* bandeau d'accueil */
.ad-hero{position:relative;overflow:hidden;border-radius:32px;padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,40px);margin-bottom:16px;background:linear-gradient(135deg,#3a2218,#2b1a12);color:#f3e9df;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 30px 60px -36px rgba(60,35,20,.85)}
.ad-hero::before{content:"";position:absolute;inset:-30%;background:radial-gradient(40% 40% at 85% 10%,rgba(230,196,138,.3),transparent 70%);pointer-events:none}
.ad-hero>*{position:relative}
.ad-hero .ad-eyebrow{color:#c9954f}
.ad-hero .hg{font:400 clamp(2.6rem,5.4vw,3.8rem)/1 var(--script);color:#e6c48a}
.ad-hero p{margin:.5em 0 0;font:italic 1.15rem var(--serif);color:#e6dccf;max-width:34em}
.hg-mark{font:500 clamp(1.4rem,3vw,2.2rem) var(--serif);letter-spacing:.5em;color:rgba(243,233,223,.16);margin-right:-.5em;white-space:nowrap}
@media(max-width:560px){.hg-mark{display:none}}
/* connexion */
.ad-login{background:radial-gradient(80% 60% at 50% 0%,#fbf3ee,#fff 70%)}
.ad-card{border-radius:34px;border:1px solid rgba(201,149,79,.22);padding:42px 30px;box-shadow:0 40px 80px -42px rgba(60,35,20,.55)}
.ad-card p{font:1.05rem var(--serif)}
.ad-logo{font-size:2.1rem;letter-spacing:.5em;color:#241812}
/* fiche produit + ticket */
.sheet{border-radius:28px 0 0 28px;background:#fffdfb}
.sheet-h{background:linear-gradient(135deg,#3a2218,#2b1a12);border-bottom:0}
.sheet-h h2{font:600 1.35rem var(--serif);color:#fff}
.sheet-h .ad-ico{background:transparent;color:#f3e9df;border-color:rgba(243,233,223,.4)}
.sheet-f{background:#fffdfb}
.tk-card{border-radius:30px;background:#faf6f1}
@media(max-width:820px){.sheet{border-radius:0}}
/* entrée en douceur */
@keyframes adin{from{opacity:0;transform:translateY(14px)}}
.ad-main section:not([hidden])>*{animation:adin .55s cubic-bezier(.2,.7,.2,1) both}
.ad-main section:not([hidden])>*:nth-child(2){animation-delay:.05s}.ad-main section:not([hidden])>*:nth-child(3){animation-delay:.1s}
.ad-main section:not([hidden])>*:nth-child(4){animation-delay:.15s}.ad-main section:not([hidden])>*:nth-child(5){animation-delay:.2s}
.ad-main section:not([hidden])>*:nth-child(n+6){animation-delay:.25s}
@media(prefers-reduced-motion:reduce){.ad-main section:not([hidden])>*{animation:none}}
/* ===== BOUTONS : cacao et or (fini le noir) ===== */
:root{--cocoa:#3a2218;--cocoa2:#5a3322;--gold2:#d3a35c}
.btn:hover{background:var(--cocoa);color:#f3e9df;border-color:var(--cocoa)}
.btn.solid{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#f3e9df;border-color:transparent;box-shadow:0 16px 30px -18px rgba(58,34,24,.95),inset 0 1px 0 rgba(255,255,255,.14)}
.btn.solid:hover{background:linear-gradient(135deg,#d9ab63,#b07d3a);color:#2b1a12;border-color:transparent;transform:translateY(-2px)}
.hero .btn.solid{box-shadow:0 18px 34px -18px rgba(58,34,24,.95),inset 0 1px 0 rgba(255,255,255,.14)}
.plus{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#e6c48a;box-shadow:0 10px 22px -8px rgba(58,34,24,.7),inset 0 1px 0 rgba(255,255,255,.14)}
.plus:hover{background:linear-gradient(135deg,#d9ab63,#b07d3a);color:#2b1a12}
.fab{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#e6c48a;box-shadow:0 14px 34px -10px rgba(58,34,24,.8)}
.fab:hover{background:linear-gradient(135deg,#5d3a28,#3a2218)}
.badge{background:#e6c48a;color:#2b1a12}
.stamp.six{background:linear-gradient(135deg,#4d2f20,#2f1c13);border-color:transparent}.stamp.six span{color:#e6c48a}
.fchip:hover{border-color:var(--cocoa)}
.fchip[aria-pressed="true"]{background:var(--cocoa);border-color:var(--cocoa);color:#f3e9df}
.qty button{border-color:var(--cocoa);color:var(--cocoa)}.qty button:hover{background:var(--cocoa);color:#f3e9df}
.toast{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#f3e9df}
.mclose:hover{background:var(--cocoa);color:#f3e9df}
nav a:hover{background:var(--cocoa);color:#f3e9df}nav a.active:hover{background:var(--cocoa)}
.prog{background:linear-gradient(90deg,#b07d3a,#e6c48a)}
.drawer .btn.solid:hover{background:linear-gradient(135deg,#d9ab63,#b07d3a);color:#2b1a12}
.foot-cta .btn.solid{background:#f3e9df;color:#2b1a12;box-shadow:none}.foot-cta .btn.solid:hover{background:#e6c48a}
/* admin : boutons cacao */
.ad-btn.primary{background:linear-gradient(135deg,#4d2f20,#2f1c13);border-color:transparent;color:#f3e9df;box-shadow:0 12px 24px -14px rgba(58,34,24,.9)}
.ad-btn.primary:hover{background:linear-gradient(135deg,#d9ab63,#b07d3a);color:#2b1a12}
.seg button[aria-pressed="true"]{background:var(--cocoa);color:#f3e9df}
.ad-menu:hover,.ad-ico:hover{background:#fbf6ef}
/* footer centré */
footer.foot{text-align:center}
.foot-grid{justify-items:center;text-align:center}
.fcol{justify-items:center;text-align:center}
.fcol p{margin-inline:auto}
.foot-cta{flex-direction:column;justify-content:center;text-align:center}
.foot-cta p{margin-inline:auto}
.foot-bot{flex-direction:column;gap:10px;justify-content:center;text-align:center}
/* scènes : image détourée */
.pimg.cut{width:min(78%,440px);aspect-ratio:auto;max-height:100%;height:auto;object-fit:contain;border-radius:0;box-shadow:none;filter:drop-shadow(0 30px 28px rgba(0,0,0,.28))}
@media(max-width:820px){.pimg,.pimg.cut{max-height:100%}.pimg.cut{width:min(60%,260px)}}
/* admin : scènes */
.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.scn-card{background:#fff;border-radius:28px;border:1px solid rgba(201,149,79,.14);box-shadow:0 1px 2px rgba(60,35,20,.05),0 26px 46px -32px rgba(60,35,20,.42);overflow:hidden}
.scn-prev{aspect-ratio:1/.8;background:var(--g,var(--blush));display:grid;place-items:center;overflow:hidden}
.scn-prev svg{width:58%;filter:drop-shadow(0 16px 16px rgba(0,0,0,.18))}
.scn-prev img{max-width:78%;max-height:88%;object-fit:contain}
.scn-prev img.cut{filter:drop-shadow(0 18px 18px rgba(0,0,0,.25))}
.scn-b{padding:16px 18px 18px;display:grid;gap:10px}
.scn-b h2{margin:0;font:600 1.15rem var(--serif)}
.scn-b .hint{margin:0;color:#7a7a7a;font-size:.85rem}
.scn-b .acts{display:flex;gap:8px;flex-wrap:wrap}
.scn-b label.ad-btn{cursor:pointer}
/* ===== ACCUEIL MINIMALISTE ===== */
#fx,.rays,.chapter{display:none}
.copy .tabs,.copy .panel{display:none}
.m-details{display:inline-flex}
.cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero{background:#fff}.hero .glow{opacity:.45}
.hero .btn.solid{margin-top:.6em}
.manifeste{padding-block:clamp(80px,11vw,150px)}
.manifeste p{font-size:clamp(1.3rem,2.4vw,2rem);max-width:28em;line-height:1.5}
.boutique{background:#fff;padding-block:clamp(70px,9vw,120px)}
.head{margin-bottom:1.6em}
.sec-t{font-size:clamp(2.6rem,5.5vw,4.2rem)}
.rule{display:none}
.shop-tools{margin-top:.6em}
.dl{background:none;border:0;box-shadow:none;min-height:0;padding:0;color:var(--muted);text-decoration:underline;font-size:.92rem;letter-spacing:0}
.dl:hover{background:none;color:var(--ink);transform:none;border:0}
.fid{padding-block:clamp(70px,9vw,110px);background:#fff}
.fid .small{display:none}
.scene .glow{opacity:.6}
.stage .lead{max-width:26em}
footer.foot{padding:clamp(56px,7vw,88px) 24px calc(24px + env(safe-area-inset-bottom,0px))}
.foot-min{max-width:620px;margin:0 auto;display:grid;gap:16px;justify-items:center;text-align:center}
.foot-line{margin:0;color:#d2c5b5;max-width:30em}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:center;font-size:.95rem;margin-top:4px}
.foot-links a,.foot-links span{color:#e6dccf;text-decoration:none}
.foot-links a:hover{color:#fff;text-decoration:underline}
.foot-min .foot-bot{margin:10px 0 0;gap:8px}
@media(max-width:820px){.cta .btn{flex:1 1 auto}}

/* ===== MODE DE PAIEMENT (panier du site) ===== */
.paybox{margin:0 0 14px}
.paybox h3{margin:0 0 8px;font:600 .7rem var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pchips{display:flex;gap:8px;flex-wrap:wrap}
.pchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.45em 1em;font:600 .82rem var(--ui);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.pchip:hover{border-color:var(--cocoa)}
.pchip[aria-pressed="true"]{background:var(--cocoa);color:#f3e9df;border-color:var(--cocoa)}
.paydesc{margin:.6em 0 0;font:italic .95rem var(--serif);color:var(--muted)}

/* ===== ADMIN : caisse et paiements ===== */
.pos-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.till-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid rgba(201,149,79,.25);border-radius:999px;padding:.55em 1.1em;font:600 .88rem var(--ui)}
.pos-actions{display:flex;gap:8px;flex-wrap:wrap}
.pos{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:start}
.pos-l,.pos-r{margin-bottom:16px}
.pos-r{position:sticky;top:84px}
.pos-tools{display:grid;gap:10px;margin-bottom:12px}
.pos .pick{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.chip{flex-direction:row;align-items:center;gap:10px}
.cth{width:48px;height:48px;border-radius:12px;background:#f4f0eb;overflow:hidden;display:grid;place-items:center;flex:none}
.cth img{width:100%;height:100%;object-fit:cover}.cth svg{width:78%}
.ctx{display:grid;gap:1px;min-width:0}.ctx>span{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pay-lbl{font:600 .78rem var(--ui);color:#777;margin:4px 0 6px}
.pay-pick{display:flex;flex-wrap:wrap;gap:8px}
.pm{border:1px solid rgba(60,35,20,.18);background:#fffdfb;border-radius:999px;padding:.55em 1.15em;font:600 .86rem var(--ui);cursor:pointer;color:#241812;transition:background .25s,color .25s,border-color .25s}
.pm:hover{border-color:#b07d3a}
.pm[aria-pressed="true"]{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#f3e9df;border-color:transparent}
.pay-note{font:italic .98rem var(--serif);color:#7a6a5a;margin:8px 0 0;min-height:1.2em}
.cash-box{background:#fbf6ef;border-radius:20px;padding:14px;display:grid;gap:10px;margin-top:10px}
.quick{display:flex;gap:6px;flex-wrap:wrap}
.quick button{border:1px solid rgba(60,35,20,.18);background:#fff;border-radius:999px;padding:.4em .95em;font:600 .82rem var(--ui);cursor:pointer;color:#241812}
.quick button:hover{border-color:#b07d3a}
.change{display:flex;justify-content:space-between;align-items:center;gap:10px;font:600 .95rem var(--ui);padding:.6em .95em;border-radius:14px;background:#fff}
.change b{font:600 1.4rem var(--serif)}
.change.ok{background:#e8f5e9;color:#2e7d32}.change.bad{background:#fdeceb;color:#b3261e}
details.more{margin:12px 0 0}
details.more summary{cursor:pointer;font:600 .85rem var(--ui);color:#6a5a4c}
details.more label{margin-top:8px;display:grid;gap:4px;font-size:.78rem;color:#777;font-weight:600}
.ad-btn.big{width:100%;padding:1em;font-size:1rem}
.till-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:14px}
.till-form label{flex:1 1 180px;display:grid;gap:4px;font-size:.78rem;color:#777;font-weight:600}
.till-form .change{flex:1 1 180px}
.till-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.sub-h{font:600 .72rem var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#a08a74;margin:0 0 10px}
.mv{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(60,35,20,.08);font-size:.9rem}
.mv b.in{color:#2e7d32}.mv b.out{color:#b3261e}
.pay-list{display:grid;gap:12px}
.pay-row{background:#fff;border-radius:26px;padding:18px 20px;display:grid;gap:12px;border:1px solid rgba(201,149,79,.16);box-shadow:0 1px 2px rgba(60,35,20,.05),0 24px 44px -32px rgba(60,35,20,.4);transition:opacity .25s}
.pay-row.off{opacity:.6}
.pay-row label{display:grid;gap:4px;font-size:.78rem;color:#777;font-weight:600}
.pay-row .ad-sw{display:flex}
.pay-row textarea{min-height:64px;font:inherit;line-height:1.4;resize:vertical}
.pay-opts{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
@media(max-width:1100px){.pos{grid-template-columns:1fr}.pos-r{position:static}}
@media(max-width:560px){.pos .pick{grid-template-columns:1fr}.till-form label,.till-form .change{flex:1 1 100%}}
/* ===== ADMIN PRO : clients, inventaire, objectifs, recherche ===== */
.kpi{position:relative;overflow:hidden}
.kpi .dl{display:inline-block;margin-top:8px;font:700 .72rem var(--ui);padding:.22em .65em;border-radius:999px;width:max-content}
.dl.up{background:#e8f5e9;color:#2e7d32}.dl.down{background:#fdeceb;color:#b3261e}.dl.flat{background:#eee;color:#777}
.kpi.dark .dl.up{background:rgba(120,220,150,.18);color:#9be7b2}.kpi.dark .dl.down{background:rgba(255,120,110,.2);color:#ffb3ad}.kpi.dark .dl.flat{background:rgba(255,255,255,.12);color:#d9cdbd}
.spark{position:absolute;right:14px;bottom:14px;width:96px;height:30px}
.goal-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.goal-h h2{margin:0}
.goal-h b{font:600 2rem var(--serif);color:#b07d3a}
.goal-bar{height:12px;border-radius:999px;background:#f1e6d8;overflow:hidden;margin:6px 0 12px}
.goal-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3a2218,#c9954f);transition:width .9s cubic-bezier(.2,.8,.2,1)}
.goal-t{margin:0;color:#6a5a4c;font:1.05rem var(--serif)}
.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.cu{background:#fffdfb;border:1px solid rgba(60,35,20,.08);border-radius:24px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;transition:transform .3s,box-shadow .3s}
.cu:hover{transform:translateY(-3px);box-shadow:0 24px 40px -28px rgba(60,35,20,.5)}
.av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:700 .95rem var(--ui);color:#fff;background:linear-gradient(135deg,hsl(var(--h) 38% 38%),hsl(calc(var(--h) + 30) 45% 28%))}
.cu-b b{display:block}.cu-b small{color:#888}
.cu-tag{font:700 .64rem var(--ui);letter-spacing:.08em;text-transform:uppercase;padding:.3em .75em;border-radius:999px;background:#f1e6d8;color:#7a5a30}
.cu-tag.vip{background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#e6c48a}
.cu-s{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(60,35,20,.08)}
.cu-s span{display:grid;font:.72rem var(--ui);color:#888}.cu-s b{font:600 1rem var(--serif);color:#241812}
.cu-f{grid-column:1/-1;font:italic .95rem var(--serif);color:#7a6a5a}
.cu .acts{grid-column:1/-1;display:flex;gap:8px;margin-top:8px}
.cu .acts a{text-decoration:none;color:#1b1b1b}
.strow{display:grid;grid-template-columns:56px 1fr auto auto;gap:14px;align-items:center;background:#fcf9f5;border:1px solid rgba(60,35,20,.06);border-radius:18px;padding:10px 14px}
.strow .th{width:56px;height:56px;border-radius:14px;background:#f4f0eb;overflow:hidden;display:grid;place-items:center}
.strow .th img{width:100%;height:100%;object-fit:cover}.strow .th svg{width:70%}
.strow .pn b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strow .pn small{color:#888}
.stepper{display:inline-flex;align-items:center;gap:6px}
.stepper button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(60,35,20,.2);background:#fff;cursor:pointer;font-size:1.15rem;line-height:1;color:#241812}
.stepper button:hover{background:#3a2218;color:#f3e9df}
.stepper input{width:76px!important;text-align:center;padding:.45em!important}
.cmd-btn{display:inline-flex;align-items:center;gap:8px}
.cmd-btn kbd{font:600 .66rem var(--ui);background:rgba(60,35,20,.08);border-radius:6px;padding:.15em .45em;color:#6a5a4c}
.cmdk{position:fixed;inset:0;z-index:270;display:grid;place-items:start center;padding:12vh 16px 16px}
.cmdk-bg{position:absolute;inset:0;background:rgba(15,10,6,.5);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.cmdk-card{position:relative;width:min(620px,100%);background:#fffdfb;border-radius:26px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);overflow:hidden;animation:adin .3s both}
#admin .cmdk-card input{border:0;border-bottom:1px solid rgba(60,35,20,.1);border-radius:0;padding:1.15em 1.3em;font-size:1.05rem;box-shadow:none;background:transparent}
.cmd-list{max-height:min(52vh,420px);overflow:autopadding:6px}
.cg{font:700 .64rem var(--ui);letter-spacing:.16em;text-transform:uppercase;color:#a08a74;padding:10px 12px 4px}
.ci{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:0;background:none;text-align:left;padding:.7em 12px;border-radius:12px;cursor:pointer;font:500 .95rem var(--ui);color:#241812}
.ci small{color:#999;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52%}
.ci.on,.ci:hover{background:#f4ece0}
.cmd-foot{padding:10px 16px;font:.74rem var(--ui);color:#999;border-top:1px solid rgba(60,35,20,.08)}
.ad-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);z-index:280;background:linear-gradient(135deg,#4d2f20,#2f1c13);color:#f3e9df;padding:.75em 1.4em;border-radius:999px;font:600 .88rem var(--ui);opacity:0;pointer-events:none;transition:opacity .3s,transform .4s cubic-bezier(.2,.9,.3,1.2);max-width:90vw;text-align:center;box-shadow:0 18px 40px -14px rgba(0,0,0,.6)}
.ad-toast.on{opacity:1;transform:translate(-50%,0)}.ad-toast.bad{background:#8f1d16}
@media(max-width:820px){.cmd-btn span,.cmd-btn kbd{display:none}.cmd-btn{padding:.6em .8em}.strow{grid-template-columns:56px 1fr}.strow>*:nth-child(n+3){grid-column:1/-1}}
/* ===== HARMONISATION : fond blanc, texte noir, boutons simples ===== */
.btn.dl{border:0;background:none;color:#555;text-decoration:underline;padding:0;min-height:0;letter-spacing:0;font-size:.92rem}
.btn.dl:hover{background:none;color:#111;border:0}
.meta h3{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
:root{--ink:#111;--muted:#555;--line:rgba(0,0,0,.12);--gold:#111;--gold2:#111;--blush:#f5f5f5;--sand:#eee;--cocoa:#111;--cocoa2:#222}
html,body{background:#fff;color:#111}
/* boutons : simples, contour noir, inversion au survol */
.btn{border:1px solid #111;color:#111;background:transparent;box-shadow:none;letter-spacing:.06em;transition:background .25s,color .25s,border-color .25s}
.btn:hover{background:#111;color:#fff;border-color:#111;transform:none}
.btn.solid,.hero .btn.solid{background:#111;color:#fff;border:1px solid #111;box-shadow:none}
.btn.solid:hover,.drawer .btn.solid:hover{background:#fff;color:#111;border-color:#111;transform:none}
.dl,.dl:hover{box-shadow:none}
.plus{background:#111;color:#fff;box-shadow:none;transition:background .25s,color .25s,transform .3s}
.plus:hover{background:#fff;color:#111;box-shadow:inset 0 0 0 1px #111;transform:scale(1.08)}
.fab{background:#111;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25)}.fab:hover{background:#333}
.badge{background:#fff;color:#111}
.stamp.six{background:#111;border-color:#111}.stamp.six span{color:#fff}.stamp.on{background:#ececec}
.fchip:hover{border-color:#111}.fchip[aria-pressed="true"]{background:#111;border-color:#111;color:#fff}
.qty button{border-color:#111;color:#111}.qty button:hover{background:#111;color:#fff}
.toast{background:#111;color:#fff}
.mclose:hover{background:#111;color:#fff}
nav a:hover,nav a.active:hover{background:#111;color:#fff}nav a.active{background:#f0f0f0}
.prog{background:#111}
.pchip:hover{border-color:#111}.pchip[aria-pressed="true"]{background:#111;border-color:#111;color:#fff}
.meta .cat{color:#777}
/* fonds : blanc partout */
.hero,.manifeste,.boutique,.fid,.steps3,.gallery,.contact,.scene{background:#fff}
.hero .glow,.scene .glow,.rays{display:none}
.loy{background:#f5f5f5}
.card{background:#f5f5f5!important;border:1px solid #eee;box-shadow:0 1px 2px rgba(0,0,0,.05),0 18px 36px -26px rgba(0,0,0,.35)}
.vis::before{display:none}
.glass{background:rgba(255,255,255,.94);box-shadow:none}
.pov-media,.pov-media .art{background:#f5f5f5}
.pov-media .art::before{display:none}
.scn-prev,#lines .th,.prow .th,.strow .th,.cth,.ad-img,.sh-img{background:#f5f5f5}
.pov-rel button{background:#f5f5f5}
/* pied de page : blanc, texte noir */
footer.foot{background:#fff;color:#111;border-top:1px solid #111}
.foot-line,.fcol p{color:#444}
.foot-links a,.foot-links span,.fcol a,.fcol span{color:#111}
footer.foot .foot-brand,footer.foot .foot-sub{color:#111}
.foot-bot{color:#777}
footer.foot .adm-link{width:44px;height:44px;margin:0;color:#444;opacity:.75}
footer.foot .adm-link svg{width:17px;height:17px}
footer.foot .adm-link:hover,footer.foot .adm-link:focus-visible{background:#111;color:#fff;opacity:1}
/* admin : blanc et noir */
#admin{background:#fff;color:#111}
#admin .ad-top h1,#admin .ad-card h1{color:#111}
.ad-eyebrow{color:#777}
.ad-top{background:linear-gradient(#fff 72%,transparent)}
.ad-sub{color:#555}
.ad-side{background:#fff;color:#111;border-right:1px solid #e5e5e5}
.ad-shell.side-open .ad-side{box-shadow:24px 0 60px -40px rgba(0,0,0,.25)}
.ad-brand{border-bottom-color:#eee}.ad-brand b{color:#111}.ad-brand span{color:#777}
.ad-col{background:#fff;border-color:#ddd;color:#111}.ad-col:hover{background:#111;color:#fff}
.ad-nav .grp{color:#999}
.ad-nav button{color:#333}
.ad-nav button:not([aria-selected="true"]):hover{background:#f3f3f3}
.ad-nav button[aria-selected="true"]{background:#111;color:#fff;box-shadow:none}
.ad-nav button[aria-selected="true"]::before{background:#111}
.nb{background:#111;color:#fff}
.ad-foot{border-top-color:#eee}
.ad-foot .ad-btn{background:#fff;color:#111;border-color:#ddd}.ad-foot .ad-btn:hover{background:#111;color:#fff;border-color:#111}
.ad-box,.ad-panel,.kpi,.prow,.ad-prod,.scn-card,.pay-row,.cu,.strow,.ad-hero{border:1px solid #e8e8e8;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.ad-box h2::before,.ad-panel h2::before{background:#111}
.kpi span{color:#777}.kpi small{color:#888}
.kpi.dark{background:#111;color:#fff;border-color:#111}.kpi.dark b{color:#fff}.kpi.dark span,.kpi.dark small{color:#bbb}
.trow,.strow{background:#fafafa;border-color:#eee}
.chip{background:#fff;border-color:#ddd}.chip:hover{border-color:#111}
.bar-row .bt,.goal-bar{background:#eee}.bar-row .bt i,.goal-bar i{background:#111}
.goal-h b{color:#111}
.ad-btn{border-color:#ddd;background:#fff;color:#111}.ad-btn:hover{background:#f5f5f5}
.ad-btn.primary{background:#111;color:#fff;border-color:#111;box-shadow:none}.ad-btn.primary:hover{background:#fff;color:#111}
.ad-ico{border-color:#ddd}.ad-ico:hover{background:#f5f5f5}
#admin input:not([type=checkbox]):not([type=file]),#admin textarea,#admin select{border-color:#d5d5d5;background:#fff}
#admin input:focus,#admin textarea:focus,#admin select:focus{border-color:#111;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.seg{background:#f0f0f0}.seg button{color:#555}.seg button[aria-pressed="true"]{background:#111;color:#fff;box-shadow:none}
.ad-note{background:#f7f7f7;border-color:#e5e5e5;color:#444}
.ad-sw input:checked+i{background:#111}
.ad-drop{border-color:#bbb;background:#fff}.ad-drop:hover,.ad-drop.over{border-color:#111;background:#fafafa}
.qa button{border-color:#e5e5e5;box-shadow:none}.qa button:hover{border-color:#111;box-shadow:none}
.qa .ic{background:#111;color:#fff}
.ad-hero{background:#fff;color:#111}.ad-hero::before{display:none}
.ad-hero .ad-eyebrow{color:#777}.ad-hero .hg{color:#111}.ad-hero p{color:#555}.hg-mark{color:#ececec}
.ad-login{background:#fff}
.ad-card{border:1px solid #e5e5e5}.ad-logo{color:#111}
.sheet{background:#fff}
.sheet-h{background:#fff;border-bottom:1px solid #eee}.sheet-h h2{color:#111}.sheet-h .ad-ico{background:#fff;color:#111;border-color:#ddd}
.tk-card{background:#fff}
.till-chip{border-color:#e5e5e5}
.pm{border-color:#ddd;background:#fff}.pm:hover{border-color:#111}.pm[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}
.cash-box{background:#f7f7f7}
.cu-tag{background:#eee;color:#444}.cu-tag.vip{background:#111;color:#fff}
.stepper button:hover{background:#111;color:#fff}
.ad-toast{background:#111}.ad-toast.bad{background:#8f1d16}
.ci.on,.ci:hover{background:#f3f3f3}
/* ===== MINIMAL : navbar de l'accueil et admin plus légers ===== */
/* navbar de l'accueil */
header.nav{top:calc(8px + env(safe-area-inset-top,0px));width:min(1040px,calc(100% - 24px));padding:3px 6px 3px 18px}
header.nav.solid{box-shadow:none;border-color:#ececec;background:rgba(255,255,255,.92)}
.logo{font-size:1rem;letter-spacing:.5em;margin-right:-.5em}
nav{gap:0}
nav a{padding:.32em .75em;font-size:.84rem;letter-spacing:.01em;border-radius:6px;color:#333}
nav a:hover,nav a.active:hover{background:#f2f2f2;color:#111}
nav a.active{background:transparent;color:#111;box-shadow:inset 0 -1.5px 0 #111;border-radius:0}
.burger{width:36px;height:36px;gap:4px}
.burger span{width:17px;height:1.5px}.burger span:nth-child(3){width:11px;margin-left:9px}
@media(max-width:900px){header.nav{padding:3px 5px 3px 16px}.logo{font-size:.95rem}}
.mnav a{font-size:1.2rem;padding:.6em .1em}
.mclose{width:36px;height:36px;font-size:1.3rem}
.btn{padding:.62em 1.5em;font-size:.92rem;min-height:38px;letter-spacing:.05em}

/* admin : compact et minimaliste */
#admin{font-size:14px}
.ad-side{width:228px;padding:14px 10px}
.ad-brand{padding:2px 4px 10px}
.ad-brand b{font-size:1.05rem;letter-spacing:.4em}
.ad-brand span{font:italic .8rem var(--serif)}
.ad-col{width:28px;height:28px;border-radius:7px;font-size:1.05rem}
.ad-nav{gap:1px}
.ad-nav .grp{margin:12px 8px 3px;font-size:.6rem}
.ad-nav button{padding:.42em .65em;font-size:.84rem;gap:9px;border-radius:7px}
.ad-nav button svg{width:16px;height:16px}
.ad-nav button[aria-selected="true"]{background:#f2f2f2;color:#111;box-shadow:none;font-weight:600}
.ad-nav button[aria-selected="true"]::before{left:-10px;top:7px;bottom:7px;width:2px;background:#111}
.nb{min-width:16px;height:16px;line-height:16px;font-size:.62rem;padding:0 5px}
.ad-foot{gap:6px;padding-top:10px}
.ad-foot .ad-btn{padding:.35em .7em}
.ad-main{padding:12px clamp(14px,2.4vw,32px) 60px}
.ad-top{margin-bottom:6px;padding:6px 0}
#admin .ad-top h1{font-size:clamp(1.6rem,3vw,2.1rem)}
.ad-eyebrow{font-size:.58rem}
.ad-sub{font-size:.88rem;margin-bottom:10px}
.ad-top .r{gap:6px}
.ad-btn{padding:.38em .8em;font-size:.78rem;border-radius:7px;font-weight:600}
.ad-ico{padding:.24em .55em;font-size:.72rem;border-radius:6px}
.ad-btn.big{padding:.65em;font-size:.88rem}
.cmd-btn kbd{display:none}.cmd-btn{padding:.38em .75em}
.ad-status{font-size:.72rem;padding:.25em .6em}
.ad-menu{width:32px;height:32px;border-radius:8px}
.seg{padding:2px;border-radius:8px}.seg button{padding:.26em .6em;font-size:.74rem;border-radius:6px}
.ad-bar{margin-bottom:10px;gap:8px}
.qa{gap:6px;margin-bottom:10px}
.qa button{padding:7px 10px;font-size:.78rem;border-radius:10px;gap:8px}
.qa .ic{width:24px;height:24px;border-radius:7px;font-size:.85rem}
.ad-box,.ad-panel{padding:12px 14px;border-radius:12px;margin-bottom:10px;box-shadow:none}
.ad-box h2,.ad-panel h2{font-size:1.05rem;margin-bottom:8px}
.ad-box h2::before,.ad-panel h2::before{width:12px}
.kpis{gap:8px;margin-bottom:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.kpi{padding:10px 12px;border-radius:12px;box-shadow:none}
.kpi span{font-size:.58rem}.kpi b{font-size:1.2rem}.kpi small{font-size:.7rem}
.kpi .dl{margin-top:4px;font-size:.64rem}
.spark{width:72px;height:22px}
.ad-hero{padding:12px 16px;border-radius:12px;margin-bottom:10px}
.ad-hero .hg{font-size:1.9rem}.ad-hero p{font-size:.92rem;margin-top:.2em}.hg-mark{display:none}
.trow{padding:7px 10px;border-radius:9px;font-size:.82rem;gap:10px}
.prow,.strow,.cu,.pay-row,.scn-card,.ad-prod{border-radius:12px;box-shadow:none}
.prow{padding:7px 10px;gap:10px}.prow .th{width:40px;height:40px;border-radius:8px}
#admin input:not([type=checkbox]):not([type=file]),#admin textarea,#admin select{padding:.38em .65em;border-radius:7px;font-size:.84rem}
.pill{font-size:.66rem;padding:.15em .55em}
.ad-note{padding:8px 12px;font-size:.84rem;border-radius:9px;margin-bottom:10px}
.ad-card{padding:26px 22px;border-radius:14px}
.pos{gap:10px}.chip{padding:.4em .6em;border-radius:10px}.cth{width:38px;height:38px}
.pm{padding:.3em .8em;font-size:.78rem}
.pos-r{top:70px}
.till-chip{padding:.3em .8em;font-size:.78rem}
.sheet-h{padding:12px 16px}.sheet-b{padding:14px 16px;gap:10px}
.cmdk-card{border-radius:14px}
.ad-sw{gap:7px}
.ad-sw i{width:32px;height:18px}
.ad-sw i::after{top:2.5px;left:2.5px;width:13px;height:13px}
.ad-sw input:checked+i::after{transform:translateX(14px)}
/* paiements compacts */
.pay-list{gap:8px}
.pay-row{padding:8px 12px;gap:6px 12px;grid-template-columns:minmax(120px,200px) 1fr;align-items:end;border:1px solid #e8e8e8}
.pay-row .pay-opts{grid-column:1/-1;gap:12px}
.pay-row label{font-size:.7rem;gap:2px}
.pay-row .ad-sw span{font-size:.78rem}
.paydesc{font:.82rem var(--ui);margin:.4em 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pay-note{font:.8rem var(--ui);margin:6px 0 0;color:#777;min-height:0}
@media(min-width:1101px){.ad-shell.side-open .ad-main{margin-left:228px}}
@media(max-width:820px){.ad-main{padding:10px 12px 80px}}
@media(max-width:560px){.pay-row{grid-template-columns:1fr}}
/* ===== TROIS COULEURS : blanc, noir et marron ===== */
:root{--brown:#5a3322;--brown-d:#3a2218;--brown-l:#f5ede3;--brown-m:#d9c3a8}
.logo,.wordmark{color:var(--brown-d)}
.tag{color:#7a5a45}
.sec-t,.copy h2,.fid h2,.contact h2{color:var(--brown-d)}
nav a:hover{background:var(--brown-l);color:var(--brown-d)}
nav a.active{box-shadow:inset 0 -1.5px 0 var(--brown)}
nav a.active:hover{background:var(--brown-l);color:var(--brown-d)}
.btn{border-color:var(--brown);color:var(--brown)}
.btn:hover{background:var(--brown);color:#fff;border-color:var(--brown)}
.btn.solid,.hero .btn.solid{background:var(--brown);border-color:var(--brown);color:#fff}
.btn.solid:hover,.drawer .btn.solid:hover{background:#fff;color:var(--brown);border-color:var(--brown)}
.btn.dl{border:0;color:#6a5648}.btn.dl:hover{background:none;color:var(--brown-d);border:0}
.plus{background:var(--brown);color:#fff}
.plus:hover{background:#fff;color:var(--brown);box-shadow:inset 0 0 0 1px var(--brown)}
.fab{background:var(--brown);color:#fff}.fab:hover{background:var(--brown-d)}
.badge{background:#fff;color:var(--brown)}
.stamp.six{background:var(--brown);border-color:var(--brown)}.stamp.on{background:var(--brown-l)}
.fchip:hover,.pchip:hover{border-color:var(--brown)}
.fchip[aria-pressed="true"],.pchip[aria-pressed="true"]{background:var(--brown);border-color:var(--brown);color:#fff}
.qty button{border-color:var(--brown);color:var(--brown)}.qty button:hover{background:var(--brown);color:#fff}
.toast{background:var(--brown-d);color:#fff}
.mclose:hover{background:var(--brown);color:#fff}
.prog{background:var(--brown)}
.boutique{background:#fcfaf6}
.card{background:var(--brown-l)!important;border-color:#eee0cf}
.pov-media,.pov-media .art,.pov-rel button,.loy{background:var(--brown-l)}
.meta .cat,.pov-crumb{color:var(--brown)}
.price{color:var(--brown-d)}
/* pied de page marron */
footer.foot{background:var(--brown-d);color:#f3e9df;border-top:0}
.foot-line,.fcol p{color:#d9c8b6}
.foot-links a,.foot-links span,.fcol a,.fcol span{color:#f3e9df}
.foot-links a:hover{color:#fff}
footer.foot .foot-brand,footer.foot .foot-sub{color:#fff}
.foot-bot{color:#b8a28d}
footer.foot .btn.solid{background:#f3e9df;border-color:#f3e9df;color:var(--brown-d)}
footer.foot .btn.solid:hover{background:transparent;color:#f3e9df}
footer.foot .adm-link{color:#d9c8b6}
footer.foot .adm-link:hover,footer.foot .adm-link:focus-visible{background:#f3e9df;color:var(--brown-d)}
/* réseaux sociaux (pied de page et menu) */
.foot-social,.menu-social{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.soc{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid currentColor;opacity:.9;transition:opacity .2s,background .2s,color .2s;text-decoration:none}
.soc svg{width:17px;height:17px}
.foot-links .foot-social .soc{color:#f3e9df}
.foot-links .foot-social .soc:hover{background:#f3e9df;color:var(--brown-d);text-decoration:none}
.minfo .menu-social .soc{color:var(--brown)}.minfo .menu-social .soc:hover{background:var(--brown);color:#fff}
/* admin : touches de marron */
#admin .ad-top h1,#admin .ad-card h1,.ad-brand b{color:var(--brown-d)}
.ad-eyebrow{color:var(--brown)}
.ad-nav button[aria-selected="true"]{background:var(--brown-l);color:var(--brown-d)}
.ad-nav button[aria-selected="true"]::before{background:var(--brown)}
.nb{background:var(--brown)}
.ad-btn.primary{background:var(--brown);border-color:var(--brown);color:#fff}
.ad-btn.primary:hover{background:#fff;color:var(--brown)}
.ad-btn:hover,.ad-ico:hover{background:var(--brown-l)}
.seg button[aria-pressed="true"]{background:var(--brown);color:#fff}
.kpi.dark{background:var(--brown);border-color:var(--brown)}
.qa .ic{background:var(--brown)}.qa button:hover{border-color:var(--brown)}
.ad-box h2::before,.ad-panel h2::before{background:var(--brown)}
.bar-row .bt i,.goal-bar i{background:var(--brown)}.goal-h b{color:var(--brown)}
.ad-sw input:checked+i{background:var(--brown)}
.pm[aria-pressed="true"]{background:var(--brown);border-color:var(--brown);color:#fff}
.pm:hover,.chip:hover{border-color:var(--brown)}
.cu-tag.vip{background:var(--brown);color:#fff}
.ad-hero{background:var(--brown-l);border-color:#eadfce}.ad-hero .hg{color:var(--brown-d)}
.ad-toast{background:var(--brown-d)}
.stepper button:hover{background:var(--brown);color:#fff}
.ad-who{font:.74rem var(--ui);color:#7a5a45;padding:2px 4px 4px;min-height:1em}
.ad-col:hover,.ad-foot .ad-btn:hover{background:var(--brown);color:#fff;border-color:var(--brown)}
/* médiathèque et sélecteur d'image */
.ml-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ml-tools input{width:180px}
.ad-panel:has(.soc-list),.ad-panel:has(.stf-form),.ad-panel:has(#stfList){max-width:none}
.mlib2{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ml-item{border:1px solid #ece4d9;border-radius:10px;padding:8px;display:grid;gap:6px;background:#fff}
.ml-th{padding:0;border:0;border-radius:8px;overflow:hidden;aspect-ratio:1;background:var(--brown-l);cursor:zoom-in}
.ml-th img{width:100%;height:100%;object-fit:cover;display:block}
.ml-use{color:#888;font-size:.68rem;line-height:1.3;min-height:1.7em}
.ml-act{display:flex;gap:4px;flex-wrap:wrap}
.ml-prev{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:9999;cursor:zoom-out}
.ml-prev img{max-width:92vw;max-height:92vh;border-radius:10px}
.mpick{position:fixed;inset:0;z-index:255;display:grid;place-items:center;padding:16px}
.mpick-bg{position:absolute;inset:0;background:rgba(20,12,8,.5);backdrop-filter:blur(3px)}
.mpick-card{position:relative;width:min(860px,100%);max-height:min(86vh,720px);background:#fff;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.5);animation:adin .25s both}
.mpick-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #eee;flex-wrap:wrap}
.mpick-act{display:flex;gap:6px;align-items:center}
.mpick-grid{padding:12px 14px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;flex:1}
.mp-item{position:relative;aspect-ratio:1;border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;cursor:pointer;background:var(--brown-l)}
.mp-item img{width:100%;height:100%;object-fit:cover;display:block}
.mp-item:hover{border-color:var(--brown-m)}.mp-item.on{border-color:var(--brown)}
.mp-name{position:absolute;left:0;right:0;bottom:0;padding:14px 6px 4px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;font:600 .66rem var(--ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.mp-ck{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--brown);color:#fff;font:700 .7rem/20px var(--ui);text-align:center;display:none;font-style:normal}
.mp-item.on .mp-ck{display:block}
.mpick-f{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-top:1px solid #eee;font:.82rem var(--ui)}
.sh-img{cursor:pointer}
/* réseaux sociaux et personnel (admin) */
.soc-list{display:grid;gap:6px;margin-bottom:10px}
.soc-row{display:grid;grid-template-columns:auto 130px 1fr auto auto;gap:8px;align-items:center}
.soc-row.off{opacity:.55}
.soc-ic{width:30px;height:30px;border-radius:50%;background:var(--brown-l);display:grid;place-items:center;color:var(--brown)}
.soc-ic svg{width:16px;height:16px}
.stf-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;align-items:end;margin-bottom:8px}
.stf-form label{display:grid;gap:3px;font-size:.7rem;color:#777;font-weight:600}
.stfrow{grid-template-columns:1.4fr auto auto auto}
@media(max-width:700px){.soc-row{grid-template-columns:auto 1fr auto auto}.soc-row input[data-sf="url"]{grid-column:1/-1;order:5}.stfrow{grid-template-columns:1fr auto}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rays,.marquee div,.gal-track{animation:none}
  .gal-wrap{overflow-x:auto}
  .wordmark span,.tag,.hero .btn,.hero-sub{animation:none;opacity:1;transform:none;filter:none}
  .copy{opacity:1;transform:none}.js .split:not(.in) .w>span{transform:none}.card.in{animation:none}
  .pov-media .art svg{animation:none}
}
