:root{--lime:#dcff00;--ink:#191919;--muted:#77776e;--purple:#e8e2ff;--line:#e8e8e1}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:14px Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button,.button{border:0;border-radius:30px;padding:13px 21px;background:var(--lime);color:var(--ink);font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #8a6fcf;outline-offset:4px}.black{background:var(--ink);color:#fff}.soft{background:#f0f0eb}.quiet{background:transparent;padding:9px;font-size:12px;font-weight:500}.danger{color:#a43434}.full{width:100%;margin-top:20px}.tiny{font-size:11px;line-height:1.7;color:#85857c}.eyebrow{text-transform:uppercase;letter-spacing:1.3px;font-weight:750;font-size:11px}.logo{font-size:30px;font-weight:900;letter-spacing:-2px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}.logo span{font-size:35px}header{padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #f4f4f0}nav{display:flex;align-items:center;gap:8px}nav a{font-size:12px}main{max-width:1200px;margin:auto;padding:45px 28px;min-height:70vh}.hero{padding:10px 0 20px}.hero h1{font-size:clamp(65px,10.5vw,135px);line-height:.91;letter-spacing:-.078em;margin:26px 0;font-weight:900}.hero h1 span{color:#a4a49e}.subrow{display:flex;justify-content:space-between;align-items:end;gap:25px}.subrow p{max-width:360px;font-size:16px;color:#686861;line-height:1.7;margin:0}.visual{height:320px;max-width:1000px;margin:25px auto;position:relative;overflow:hidden}.tile{position:absolute;width:175px;height:225px;border-radius:20px;padding:15px;box-shadow:0 14px 22px #0000000a}.tile .object{height:145px;display:grid;place-items:center}.object svg{width:120px;height:120px;filter:drop-shadow(0 10px 9px #0002)}.tile strong{font-size:12px;display:block;margin:6px 0}.tile small{font-size:10px;color:#5b554f}.tile.one{left:14%;top:25px;background:#e8e2ff;transform:rotate(-13deg)}.tile.two{right:12%;top:37px;background:#ffb277;transform:rotate(13deg)}.tile.three{right:32%;top:75px;background:#cdeafa;transform:rotate(-4deg);z-index:2}.spark{position:absolute;left:34%;top:0;width:180px;height:180px;background:var(--lime);clip-path:polygon(50% 0,60% 30%,82% 8%,74% 37%,100% 40%,78% 56%,98% 82%,67% 70%,63% 100%,47% 76%,22% 99%,29% 67%,0 64%,26% 48%,3% 24%,37% 32%)}.tag{position:absolute;left:12%;bottom:12px;background:var(--ink);color:#fff;border-radius:30px;padding:12px 18px;font-size:11px;transform:rotate(-4deg)}.tag.right{left:auto;right:12%;background:var(--lime);color:var(--ink);transform:rotate(4deg);bottom:0}.section{margin:45px 0}.sectionhead{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}h2{font-size:32px;letter-spacing:-1.2px;line-height:1.1;margin:0}h3{font-size:19px;letter-spacing:-.5px;line-height:1.25;margin:10px 0}p{line-height:1.7;color:var(--muted)}.sectionhead p{font-size:12px;margin:10px 0 0}.pill{background:var(--purple);border-radius:30px;padding:8px 12px;font-size:11px;white-space:nowrap}.feed{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.card{border:1px solid var(--line);border-radius:20px;overflow:hidden;position:relative;background:#fff}.art{height:180px;background:var(--tone);display:grid;place-items:center;overflow:hidden}.art svg{width:115px;height:115px;filter:drop-shadow(0 12px 8px #0002)}.art img{width:100%;height:100%;object-fit:contain;padding:12px}.card .body{padding:18px}.store{text-transform:uppercase;letter-spacing:.8px;font-size:10px;color:#92928a;overflow-wrap:anywhere}.price{font-size:12px;color:#85857b;margin:12px 0 17px;min-height:15px}.cardactions{display:flex;gap:8px}.storelink{border:1px solid #deded7;border-radius:30px;padding:11px 8px;text-decoration:none;color:var(--ink);text-align:center;font-size:11px;flex:1}.cardactions button{padding:11px 10px;font-size:11px;flex:1}.cardfoot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:13px}.cardfoot button{padding:0;font-size:10px;background:none;color:#8a8a80;font-weight:500}.reserved .art{filter:grayscale(1);opacity:.55}.reserved .body{background:#f7f7f5}.reserved h3,.reserved .price,.reserved .store{color:#a0a097}.badge{position:absolute;top:12px;right:12px;border-radius:20px;padding:7px 11px;font-size:10px;background:#fff}.when{color:#99998e;font-size:10px;margin-top:13px}.banner{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--ink);border-radius:24px;padding:35px;color:#fff;margin:40px 0}.banner h2{font-size:36px}.banner p{color:#aaa;font-size:13px;max-width:500px}.banner .button{white-space:nowrap}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:35px 0}.step{background:#f4f4ef;border-radius:22px;padding:27px}.step:nth-child(2){background:var(--purple)}.step:nth-child(3){background:var(--lime)}.step h3{font-size:24px;margin:30px 0 12px}.step p{font-size:12px;color:#626257}.faq{max-width:700px;margin:60px auto}details{border-bottom:1px solid var(--line);padding:19px 0}summary{font-weight:650;cursor:pointer}details p{font-size:12px}.listhead{display:flex;justify-content:space-between;align-items:center;gap:20px}.listhead h1,.page-title{font-size:clamp(39px,5vw,65px);letter-spacing:-3px;line-height:1.04;margin:18px 0}.listhead p{max-width:620px;white-space:pre-wrap}.avatar{width:85px;height:85px;background:var(--lime);font-size:56px;display:grid;place-items:center;border-radius:25px;transform:rotate(8deg);flex-shrink:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:25px 0 30px}.actions{display:flex;gap:8px;flex-wrap:wrap}.layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:25px}.gifts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.gifts .art{height:200px}.panel{background:#f4f4ef;padding:22px;border-radius:20px;margin-bottom:18px}.panel h2{font-size:21px;letter-spacing:-.6px}.panel p{font-size:12px}.panel.purple{background:var(--purple)}.recent{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font-size:12px;padding:13px 0;border-top:1px solid #deded6}.recent svg,.recent img{width:36px;height:40px;object-fit:contain;flex-shrink:0}.recent small{font-size:10px;color:#8d8d81;display:block;margin-top:4px;overflow-wrap:anywhere}.recent span{min-width:0}.empty{border:1px dashed #cccabe;background:#f7f7f2;border-radius:20px;text-align:center;padding:45px 23px}.empty h2{font-size:25px}.empty p{font-size:13px}.loading{text-align:center;padding:90px 20px;color:#8a8a80}.form-page{max-width:480px;margin:0 auto 60px}.form-page h1{font-size:56px;letter-spacing:-3px;line-height:1;margin:22px 0}.formbox{background:#f5f5f0;border-radius:22px;padding:28px}label{display:block;font-size:12px;font-weight:650;margin:16px 0 7px}input,textarea,select{width:100%;padding:12px 14px;border:1px solid #deded5;border-radius:10px;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #b8a3f2;border-color:transparent}textarea{resize:vertical;min-height:75px}.row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.help{font-size:12px;line-height:1.7;background:#eeeee7;color:#77776b;padding:14px;border-radius:12px;margin:17px 0}.error{font-size:12px;color:#a33434;background:#fff0ed;border-radius:10px;padding:12px;line-height:1.6}.error:empty{display:none}.success{background:#f0f8df;color:#576c31}.switcher{display:flex;background:#f1f1eb;border-radius:30px;padding:4px;margin-bottom:23px}.switcher button{flex:1;padding:10px;background:none;color:#777}.switcher button.active{background:var(--ink);color:#fff}.dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dashcard{background:#f5f5ef;border-radius:20px;padding:25px}.dashcard h2{font-size:23px;overflow-wrap:anywhere}.dashcard p{font-size:12px}.dashcard .button{font-size:12px}.statusline{font-size:11px;color:#777;margin-bottom:15px}.local-list{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #ddd;padding:16px 0}.local-list p{margin:0;font-size:13px}.local-list .button{font-size:11px}.stats{display:flex;gap:12px;margin:25px 0;flex-wrap:wrap}.stat{background:#f4f4ed;padding:17px 22px;border-radius:15px;min-width:130px}.stat strong{display:block;font-size:30px;letter-spacing:-1px}.stat span{font-size:11px;color:#777}.search{max-width:340px;margin-bottom:23px}.feed-bottom{display:flex;justify-content:center;margin:27px 0}.light-note{font-size:11px;color:#888;line-height:1.7;margin:15px 0}dialog{border:0;border-radius:23px;padding:28px;max-width:500px;width:calc(100% - 30px);max-height:90vh;overflow:auto;box-shadow:0 24px 80px #0002}dialog::backdrop{background:#19191966;backdrop-filter:blur(4px)}dialog h2{font-size:28px;margin:0 35px 20px 0}dialog p{font-size:13px}.close{position:absolute;right:20px;top:18px;background:#f1f1ec;padding:5px 10px;font-size:21px;color:#777}.linkrow{display:flex;gap:8px}.linkrow input{font-size:11px;min-width:0}.linkrow button{padding:11px 15px;font-size:11px}.image-preview{max-height:120px;max-width:100%;display:block;margin:12px auto}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:14px 20px;border-radius:14px;font-size:12px;max-width:90%;text-align:center;z-index:20}footer{padding:25px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #eee;color:#999;font-size:11px}footer .logo{font-size:21px}.hidden{display:none!important}
@media(max-width:950px){.feed{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:minmax(0,1fr) 240px}.cardactions{flex-direction:column}}
@media(max-width:750px){.layout{grid-template-columns:1fr}.hero h1{font-size:80px}.subrow{flex-direction:column;align-items:start}.steps{grid-template-columns:1fr}.banner{flex-direction:column;align-items:start}.tile.one{left:3%}.tile.two{right:3%}.tile.three{right:31%}.tile{width:145px;height:200px}.tile .object{height:125px}.spark{left:29%}.toolbar{align-items:start;flex-direction:column}.tag{left:0}.tag.right{right:0}.cardactions{flex-direction:row}.feed{grid-template-columns:repeat(2,minmax(0,1fr))}.sectionhead{align-items:start;flex-direction:column}}
@media(max-width:500px){header{padding:18px 15px;align-items:start}.logo{font-size:26px}nav{gap:4px;flex-wrap:wrap;justify-content:end}nav .button,nav button{padding:9px 12px;font-size:10px}nav .quiet{padding:6px;font-size:10px}main{padding:30px 16px}.hero h1{font-size:61px}.subrow p{font-size:14px}.visual{height:275px}.tile{width:110px;height:166px;padding:10px}.tile .object{height:98px}.object svg{width:80px;height:80px}.tile strong{font-size:10px}.tile small{font-size:8px}.spark{width:150px;height:150px}.tag{font-size:9px;padding:10px 13px;bottom:7px}.tag.right{bottom:0}.tile.three{top:68px}.feed,.gifts{gap:12px}.art,.gifts .art{height:140px}.art svg{width:95px;height:95px}.card .body{padding:13px}.cardactions{flex-direction:column}.card h3{font-size:17px}.dashboard{grid-template-columns:1fr}.page-title,.listhead h1{font-size:39px}.avatar{width:56px;height:56px;font-size:36px;border-radius:17px}.banner{padding:27px}.banner h2{font-size:30px}.row{grid-template-columns:1fr}.form-page h1{font-size:45px}.formbox{padding:22px}.local-list{align-items:start;flex-direction:column}footer{align-items:start}}
@media(prefers-reduced-motion:no-preference){.tile{animation:float 6s ease-in-out infinite}.tile.two{animation-delay:-2s}.tile.three{animation-delay:-4s}@keyframes float{50%{translate:0 -8px}}}

a.quiet{color:var(--ink);text-decoration:none}a.quiet:hover{text-decoration:underline}
[hidden]{display:none!important}
#catalogSearch{width:100%;max-width:420px;margin:0 0 22px}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:6px 0 10px}
.loadmore{text-align:center;margin:26px 0}
.pick{display:grid;gap:10px;margin:16px 0}
.tablewrap{overflow-x:auto;margin:10px 0 36px;border:1px solid var(--line);border-radius:18px}
.admintable{width:100%;border-collapse:collapse;font-size:13px}.admintable th,.admintable td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.admintable th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.admintable tr:last-child td{border-bottom:0}.admintable tr.off{opacity:.5}
.admintable select{padding:7px 10px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit}
#adminProduct{margin:12px 0 36px;max-width:640px}#adminProduct textarea{min-height:84px}
.admintable a{color:var(--ink);text-decoration:underline}

/* ===== Couche mobile-first : toucher, mouvement, feuilles basses, zone sûre ===== */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{-webkit-tap-highlight-color:transparent;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
img{max-width:100%}
:focus-visible{outline:2px solid #6b4fd6;outline-offset:2px}
/* retour au toucher : le bouton répond au doigt tout de suite */
button,.button,.chip,.pbtn{transition:transform 160ms var(--ease-out),background-color 160ms var(--ease-out),filter 160ms var(--ease-out)}
button:active,.button:active,.chip:active,.pbtn:active{transform:scale(.97)}
button:disabled:active{transform:none}
/* pas de survol « collé » sur écran tactile */
@media(hover:none){button:hover,.button:hover,.pbtn:hover{filter:none}.chip:hover{background:#fff}.chip.on:hover{background:var(--ink)}a.quiet:hover{text-decoration:none}}
/* cibles tactiles de 44 px, champs à 16 px (iOS ne zoome plus au focus) */
@media(pointer:coarse){
  button,.button,.chip{min-height:44px}
  .close{min-width:44px;min-height:44px;right:12px;top:12px;display:grid;place-items:center;padding:0}
  a.quiet{display:inline-flex;align-items:center;min-height:44px;padding:0 10px}
  input,textarea,select,.linkrow input{font-size:16px}
  .cardactions button{font-size:13px}
}
/* menu : une rangée qui défile, le bouton principal en premier */
@media(max-width:600px){
  header{flex-wrap:wrap;gap:4px;padding:12px 16px 6px;align-items:center}
  nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;gap:2px;scrollbar-width:none;overscroll-behavior-x:contain}
  nav::-webkit-scrollbar{display:none}
  nav .button{order:-1;flex:none;margin-right:6px}
  nav a,nav button{flex:none;white-space:nowrap}
  main{padding-bottom:12px}
}
/* fenêtres : feuille basse sur mobile (poignée, geste vers le bas), carte centrée sur grand écran */
dialog{margin:auto 0 0;width:100%;max-width:none;max-height:92dvh;border-radius:28px 28px 0 0;padding:6px 22px calc(26px + env(safe-area-inset-bottom));overscroll-behavior:contain;transform:translateY(100%);transition:transform 320ms var(--ease-drawer),overlay 320ms allow-discrete,display 320ms allow-discrete}
dialog[open]{transform:none}
@starting-style{dialog[open]{transform:translateY(100%)}}
dialog::backdrop{opacity:0;transition:opacity 260ms var(--ease-out),overlay 260ms allow-discrete,display 260ms allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]::backdrop{opacity:0}}
.grabber{height:28px;margin:0 -22px 4px;touch-action:none;cursor:grab;display:flex;justify-content:center;align-items:center}
.grabber::before{content:"";width:40px;height:5px;border-radius:3px;background:#d4d4cc}
@media(min-width:601px){
  dialog{margin:auto;width:calc(100% - 30px);max-width:500px;max-height:90dvh;border-radius:23px;padding:28px;opacity:0;transform:translateY(10px) scale(.96);transition:transform 220ms var(--ease-out),opacity 220ms var(--ease-out),overlay 220ms allow-discrete,display 220ms allow-discrete}
  dialog[open]{opacity:1;transform:none}
  @starting-style{dialog[open]{opacity:0;transform:translateY(10px) scale(.96)}}
  .grabber{display:none}
}
/* confirmation (toast) : entre en douceur, au-dessus de la barre du bas */
.toast{bottom:calc(22px + env(safe-area-inset-bottom));max-width:min(92%,420px)}
.toast:not([hidden]){animation:toast-in 260ms var(--ease-out)}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,12px)}}
body:has(.stickybar) .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
/* chargement : squelette plutôt qu'un texte */
.loading{font-size:0;padding:30px 0;min-height:60vh;text-align:left}
.loading::before,.loading::after{content:"";display:block;border-radius:22px;background:linear-gradient(90deg,#efefe9 25%,#f8f8f4 37%,#efefe9 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}
.loading::before{height:58px;width:min(420px,72%)}
.loading::after{height:320px;margin-top:26px}
@keyframes shimmer{from{background-position:100% 50%}to{background-position:0 50%}}
/* liste : actions principales à portée de pouce */
.tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:15;flex-wrap:nowrap;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#ffffffe8;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--line)}
.stickybar>*{flex:1}
body:has(.stickybar) footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
@media(min-width:601px){.stickybar{position:static;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;flex-wrap:wrap}.stickybar>*{flex:none}body:has(.stickybar) footer{padding-bottom:25px}}
/* mouvement réduit : on garde les fondus, on retire les déplacements */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  button:active,.button:active,.chip:active,.pbtn:active{transform:none}
  dialog,dialog[open]{transform:none;transition:opacity 150ms}
  dialog{opacity:0}dialog[open]{opacity:1}
  @starting-style{dialog[open]{opacity:0;transform:none}}
  .loading::before,.loading::after{animation:none}
}
.stickybar>*{white-space:nowrap;padding-left:16px;padding-right:16px}.stickybar>.soft{flex:0 0 auto}
@media(min-width:601px){.stickybar>*{padding-left:21px;padding-right:21px}}

/* ===== Catalogue : galerie épurée (inspirée de goods.so) ===== */
.shop{display:block;margin:8px 0 40px}
.shopside .sidelabel{font-size:12px;color:#8a8a92;margin:0 0 10px}
.cats{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 14px;margin:0 -2px}.cats::-webkit-scrollbar{display:none}
.catlink{flex:none;border:0;background:#f4f4f6;color:var(--ink);border-radius:980px;padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;gap:7px;align-items:center}
.catlink span{color:#8a8a92;font-weight:400;font-size:12px}
.catlink.on{background:var(--ink);color:#fff}.catlink.on span{color:#ffffff99}
#catalogSearch{width:100%;margin:0 0 16px;border:0;border-radius:980px;background:#f4f4f6;padding:12px 18px;font-size:15px}
.sidenote{display:none}
.ggrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gtile{position:relative;background:#f4f4f6;border-radius:14px;aspect-ratio:1/1.12;overflow:hidden;display:flex;flex-direction:column;cursor:default;outline:none}
.gimg{flex:1;display:flex;align-items:center;justify-content:center;padding:14% 14% 4%;min-height:0}
.gimg img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.gimg svg{width:46%;height:auto}
.gcap{padding:0 14px 14px;display:flex;flex-direction:column;gap:2px}
.gcap span{font-size:12px;color:#8a8a92}
.gcap h3{margin:0;font-size:14px;font-weight:500;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gadd{position:absolute;top:10px;right:10px;width:36px;height:36px;min-height:0;padding:0;border-radius:50%;background:#fff;color:var(--ink);font-size:20px;line-height:1;box-shadow:0 1px 4px #0001;display:grid;place-items:center}
.peek{display:none}
.loadmore{text-align:center;margin:28px 0}.loadbtn{border:0;border-radius:980px;background:#f4f4f6;color:var(--ink);padding:12px 22px;font-weight:600;font-size:14px;cursor:pointer}
@media(min-width:640px){.ggrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media(min-width:900px){
  .shop{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}
  .shopside{position:sticky;top:20px;padding-top:4px}
  .cats{flex-direction:column;gap:2px;overflow:visible;padding:0;margin:0 0 22px}
  .catlink{background:none;border-radius:8px;padding:5px 0;font-size:15px;justify-content:space-between;width:100%}
  .catlink.on{background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}.catlink.on span{color:#8a8a92}
  #catalogSearch{border-radius:10px;padding:10px 14px;font-size:14px}
  .sidenote{display:block;font-size:14px;line-height:1.45;margin-top:26px}.sidenote b{display:block;font-size:22px;margin-bottom:8px}
  .gadd{display:none}
}
/* fiche au survol (souris) : texte court et épuré qui glisse sur la tuile ; au clavier : au focus ; au doigt : feuille basse */
@media(hover:hover) and (pointer:fine){
  .peek{display:flex;flex-direction:column;gap:8px;position:absolute;left:10px;right:10px;bottom:10px;padding:14px;background:#fff;border-radius:10px;box-shadow:0 8px 28px #0000001f;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
  .gtile:hover .peek,.gtile:focus-within .peek{opacity:1;transform:none;pointer-events:auto;transition-delay:120ms}
  .peek strong{font-size:15px}.peek p{margin:0;font-size:13px;line-height:1.4;color:#55555c;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .gbtn{align-self:flex-start;min-height:0;padding:9px 14px;font-size:13px}
  .gtile:has(.peek:hover),.gtile:hover{cursor:default}
}
@media(prefers-reduced-motion:no-preference){
  .ggrid .gtile{animation:rise 340ms var(--ease-out) backwards}
  .ggrid .gtile:nth-child(2){animation-delay:40ms}.ggrid .gtile:nth-child(3){animation-delay:80ms}.ggrid .gtile:nth-child(4){animation-delay:120ms}.ggrid .gtile:nth-child(5){animation-delay:160ms}.ggrid .gtile:nth-child(n+6){animation-delay:200ms}
  body.noanim .gtile{animation:none!important}
}
.gbtn{white-space:nowrap}

/* ===== Back-office (mobile d'abord) ===== */
.bo-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 0 22px;padding:2px}.bo-tabs::-webkit-scrollbar{display:none}
.bo-tab{flex:none;background:#f4f4f6;color:var(--ink);font-weight:600;font-size:14px}.bo-tab.on{background:var(--ink);color:#fff}
.pill{display:inline-block;border-radius:980px;background:#f4f4f6;color:#55555c;font-size:11px;font-weight:600;padding:4px 10px}.pill.hot{background:#ffe1dc;color:#a6261a}.pill.warn{background:#fff0cf;color:#8a5a00}
.bo-tab .pill{margin-left:6px;background:#fff;color:var(--ink)}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 26px}
.kpi{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:#f4f4f6;color:var(--ink);border-radius:16px;padding:16px;text-align:left;font-weight:400}.kpi strong{font-size:30px;letter-spacing:-.03em}.kpi span{font-size:12px;color:#66666d}.kpi.hot strong{color:#a6261a}
.bo-cols{display:grid;gap:26px}.bo-cols h2{font-size:18px;margin:0 0 10px}
.bo-list{list-style:none;margin:0 0 14px;padding:0}.bo-list li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.bo-list li span{font-size:12px;color:#77777e}
.bo-bar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}.bo-bar input,.bo-bar select{flex:1 1 200px;width:auto}
.bo-cards{display:grid;gap:12px}
.bo-card{background:#f7f7f4;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px}.bo-card.off{opacity:.55}
.bo-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.bo-prod{display:flex;gap:12px;align-items:flex-start}.bo-prod img,.noimg{width:64px;height:64px;border-radius:10px;object-fit:contain;background:#fff;flex:none}.noimg{display:grid;place-items:center;color:#bbb;font-size:22px}
.stockrow{background:#fff;border-radius:12px;padding:8px 10px}
.stepper{display:inline-flex;align-items:center;gap:6px}.stepper input{width:70px;text-align:center;padding:9px 6px}.stepper button{padding:0;width:40px;min-height:40px;font-size:18px}
.fields{align-items:flex-end}.fields label{font-size:12px;color:#66666d;display:flex;flex-direction:column;gap:4px;flex:1 1 90px}.fields input,.fields select{padding:9px 10px;font-size:14px}.fields .check{flex-direction:row;align-items:center;gap:8px;flex:0 0 auto}.fields .check input{width:auto}
.clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.soldout{position:absolute;top:10px;right:10px;background:#fff;border-radius:980px;padding:6px 12px;font-size:12px;font-weight:600;color:#66666d}
@media(min-width:760px){.kpis{grid-template-columns:repeat(4,1fr)}.bo-cols{grid-template-columns:1fr 1fr}.bo-cards{grid-template-columns:repeat(2,1fr)}}

.peek .gbtn{width:100%;text-align:center;justify-content:center}.peek .gbtn.alt,.gbtn.alt{background:#f4f4f6}
.formbox .check{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:13px;font-weight:400}.formbox .check input{width:auto}

/* pages légales */
.legal{max-width:760px;margin:10px auto 60px;line-height:1.6;font-size:15px}
.legal h1{font-size:clamp(34px,6vw,56px);letter-spacing:-.04em;margin:20px 0 6px}
.legal .meta{color:#8a8a92;font-size:13px;margin:0 0 28px}
.legal h2{font-size:20px;letter-spacing:-.02em;margin:34px 0 10px}
.legal p,.legal li{font-size:15px;margin:0 0 12px}.legal ul,.legal ol{padding-left:22px;margin:0 0 14px}
.legal a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
mark.todo{background:#fff3a8;color:#5c4a00;padding:1px 5px;border-radius:5px;font-size:.92em}
.legal-links{display:flex;gap:14px;flex-wrap:wrap}.legal-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legalform{max-width:640px}.legalform textarea{min-height:90px}.legalform .tiny{margin:4px 0 14px;color:#77777e}

/* ===== Questionnaire « cadeau idéal » et bandeau d'accueil ===== */
.quizbanner{display:flex;flex-direction:column;gap:18px;align-items:flex-start;background:#f4f4f6;border-radius:24px;padding:28px}
.quizbanner h2{font-size:clamp(26px,5vw,40px);letter-spacing:-.04em;margin:6px 0}.quizbanner p{margin:0;color:#55555c;font-size:15px}
@media(min-width:760px){.quizbanner{flex-direction:row;align-items:center;justify-content:space-between;padding:36px 40px}}
.quiz{max-width:760px;margin:10px auto 60px}
.qstep{display:flex;flex-direction:column;gap:14px;animation:rise 320ms var(--ease-out) backwards}
.qlead{font-size:16px;line-height:1.5;color:#55555c;margin:0 0 8px;max-width:560px}
.qprogress{height:4px;background:#ececf0;border-radius:2px;overflow:hidden;margin:6px 0 4px}.qprogress span{display:block;height:100%;background:var(--ink);border-radius:2px;transition:width 300ms var(--ease-out)}
.qtitle{font-size:clamp(28px,6vw,44px);letter-spacing:-.04em;line-height:1.05;margin:6px 0 0}
.qopts{display:grid;gap:10px;margin:14px 0 8px}
.qopt{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:#f4f4f6;color:var(--ink);border-radius:16px;padding:18px 20px;font-size:17px;font-weight:500;min-height:60px}
.qopt.on{background:var(--ink);color:#fff}
.qnav{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.qright{display:flex;gap:8px;align-items:center}
.qfinish{text-align:center;margin-top:6px}
.why{display:flex;flex-wrap:wrap;gap:6px}.why span{background:#fff;border-radius:980px;font-size:11px;padding:4px 10px;color:#55555c}.why.big span{background:#f4f4f6;font-size:13px;padding:7px 14px;color:var(--ink)}
.rgrid{display:grid;grid-template-columns:1fr;gap:12px;margin:8px 0 22px}
.rcard{background:#f4f4f6;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px}
.rimg{aspect-ratio:1/.8;display:grid;place-items:center;padding:6%}.rimg img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}.rimg svg{width:40%;height:auto}
.rname{font-size:15px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rprice{font-size:14px;color:#55555c}
.rbtns{display:flex;flex-direction:column;gap:8px;margin-top:auto}.rbtns button{width:100%}
@media(min-width:520px){.rgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.rgrid{grid-template-columns:repeat(3,1fr)}}
.panel .recent img{width:44px;height:44px;object-fit:contain;border-radius:8px;background:#f4f4f6;mix-blend-mode:multiply}
@media(max-width:600px){footer{flex-direction:column;align-items:flex-start;gap:10px}}
/* cartes de recommandation : cadre d'image de taille fixe (l'image ne peut plus agrandir la carte au chargement) */
.rimg{position:relative;display:block;aspect-ratio:1/.8;padding:0;overflow:hidden;contain:layout paint}
.rimg img{position:absolute;inset:6%;width:88%;height:88%;max-width:none;max-height:none;object-fit:contain}
.rimg svg{position:absolute;left:30%;top:30%;width:40%;height:40%}
.rcard{contain:layout}

/* sélections de cadeaux */
.selhead{margin:0 0 18px}.selhead h2{font-size:clamp(24px,4vw,34px);letter-spacing:-.03em;margin:0 0 4px}.selhead p{margin:0 0 6px;color:#66666d;font-size:15px}
.pnote{font-style:italic;color:var(--ink)!important}
.selgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.selcard{display:flex;flex-direction:column;gap:4px;background:#f4f4f6;border-radius:16px;padding:14px;color:var(--ink);text-decoration:none;min-height:190px}
.selimgs{display:flex;align-items:center;justify-content:center;gap:4px;height:92px;margin-bottom:8px}.selimgs img{width:33%;height:92px;object-fit:contain;mix-blend-mode:multiply}
.selcard strong{font-size:15px;line-height:1.2}.selcard span{font-size:12px;color:#66666d;line-height:1.3}.selcard small{margin-top:auto;font-size:11px;color:#8a8a92}
@media(min-width:760px){.selgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* back-office : curation */
.cur-col{background:#f7f7f4;border-radius:18px;padding:18px;margin:0 0 18px;display:flex;flex-direction:column;gap:10px}.cur-col h2{font-size:20px;margin:0 0 2px}
.cur-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.cur-item{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:14px;padding:12px;border:2px solid transparent}.cur-item.ok{border-color:#dcff00}
.cur-main{display:flex;gap:12px;align-items:flex-start}.cur-main img,.cur-main .noimg{width:64px;height:64px;flex:none;object-fit:contain;border-radius:10px;background:#f4f4f6}
.cur-note{font-size:13px;font-style:italic;color:#55555c;margin:4px 0}
.cur-btns{display:flex;gap:8px;flex-wrap:wrap}.cur-btns button{flex:1 1 120px}
.pill.ok{background:#e7f8c8;color:#3d5a00}
.cur-foot{margin-top:4px}
@media(min-width:700px){.cur-item{flex-direction:row;align-items:center;justify-content:space-between}.cur-btns{flex:0 0 auto}.cur-btns button{flex:0 0 auto}}

.cur-verif{margin:6px 0 4px}.cur-verif p{margin:5px 0 0;font-size:12px;line-height:1.45;color:#55555c}.cur-verif a{color:var(--ink);text-decoration:underline;word-break:break-all}
.pill.warn{background:#fff0cf;color:#8a5a00}.pill.hot{background:#ffe1dc;color:#a6261a}

/* noms de produits : une seule ligne (le nom complet reste lisible dans la fiche, la feuille et l'infobulle) */
.gcap{min-width:0}.gcap h3,.rname{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset;line-clamp:unset}
.peek .pname{font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
