/* =========================================================
   Les 10 thèmes de design du site public
   Chaque thème = palette (variables) + forme + en-tête + textures
   ========================================================= */
.btn-hero-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.btn-hero-ghost:hover{background:rgba(255,255,255,.1)}

/* ---------- Socle des thèmes sombres ---------- */
.dark{--card:#1b1a20;--field:#24232b;--line:rgba(255,255,255,.1);--mut:#a6a3b0;--pri-soft:color-mix(in srgb,var(--pri) 16%,#1b1a20);--sh:0 1px 0 rgba(255,255,255,.03),0 14px 30px -18px rgba(0,0,0,.8);--sh-lg:0 30px 60px -20px rgba(0,0,0,.85)}
.dark .site-head{background:color-mix(in srgb,var(--bg) 80%,transparent)}
.dark .main-nav a.on,.dark .chip.on{background:var(--pri);border-color:var(--pri);color:#0b0b0c}
.dark .btn{background:var(--card);color:var(--ink)}
.dark .btn-pri{background:var(--pri);color:#0b0b0c}.dark .btn-pri:hover{filter:brightness(1.1);background:var(--pri)}
.dark .btn-acc{background:var(--acc);color:#0b0b0c}
.dark .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.dark .btn-hero-ghost{background:transparent;color:#fff}
.dark .fav-btn,.dark .slot,.dark .qty button{background:var(--field);color:var(--ink);border-color:var(--line)}
.dark .fav-btn.on{background:#e11d48;color:#fff}
.dark .slot.mine{background:var(--pri);color:#0b0b0c}
.dark .expo-stand,.dark .copy-box{background:var(--field)}
.dark .expo-promo,.dark .note{background:color-mix(in srgb,var(--acc) 14%,var(--card));color:var(--ink)}
.dark .logo{border-color:var(--card);background:var(--card)}
.dark .section-alt{background:color-mix(in srgb,var(--card) 60%,var(--bg))}
.dark .plan-hall{fill:#16151b}.dark .stand rect{fill:#22212a}.dark .stand.taken rect{fill:color-mix(in srgb,var(--sc,var(--pri)) 30%,#16151b)}
.dark .plan-zone rect{fill:color-mix(in srgb,var(--acc) 12%,#16151b)}
.dark .pick .stand.st-libre rect{fill:#13321f}.dark .pick .stand:not(.st-libre) rect{fill:#1d1c22;stroke:#2c2b33}
.dark .tbl th{background:var(--field)}.dark .tbl tr:hover td{background:color-mix(in srgb,var(--pri) 6%,var(--card))}
.dark .flash-ok{background:#0f2a1a;color:#a7f3c4;border-color:#1f5134}.dark .flash-err{background:#2c1214;color:#fecaca;border-color:#5b1d22}
.dark .flash-info{background:var(--pri-soft);color:var(--ink)}
.dark .badge.b-grey{background:#2a2930;color:#cfccd8}
.dark .ticket-cut{background:radial-gradient(circle at 0 50%,var(--bg) 12px,transparent 13px),radial-gradient(circle at 100% 50%,var(--bg) 12px,transparent 13px)}
.dark .qr-box{background:#fff}
.dark .tix-opt:has(input:checked){background:var(--pri-soft)}
.dark .gal-ph{color:#fff}

/* ---------- 1. Aurora : style par défaut (app.css) ---------- */

/* ---------- 2. Élégance ---------- */
.theme-elegance{--r:22px;--r-sm:12px}
.theme-elegance h1,.theme-elegance h2,.theme-elegance h3{font-weight:600;letter-spacing:0}
.theme-elegance .hero h1 em{font-style:italic;font-weight:500}
.theme-elegance .hero::before{background:radial-gradient(45% 60% at 10% 10%,color-mix(in srgb,var(--pri) 75%,transparent),transparent 70%),radial-gradient(40% 50% at 95% 20%,color-mix(in srgb,var(--acc) 45%,transparent),transparent 70%),radial-gradient(50% 50% at 60% 120%,color-mix(in srgb,var(--pri) 45%,transparent),transparent 70%)}
.theme-elegance .hero::after{background-image:none}
.theme-elegance .eyebrow::before{width:40px;height:1px}
.theme-elegance .kicker{font-family:var(--ft);font-style:italic;text-transform:none;letter-spacing:0;font-size:17px;font-weight:600;color:var(--pri)}
.theme-elegance .sec-head h2{font-size:clamp(32px,4vw,48px)}

/* ---------- 3. Encre (tatouage) ---------- */
.theme-encre{--r:4px;--r-sm:3px;--btn-r:3px}
.theme-encre h1,.theme-encre h2,.theme-encre h3,.theme-encre .brand-txt strong{text-transform:uppercase;letter-spacing:.02em;font-weight:700}
.theme-encre .hero{background:#070708}
.theme-encre .hero::before{inset:0;filter:none;background:
  radial-gradient(18% 22% at 82% 28%,color-mix(in srgb,var(--pri) 70%,transparent),transparent 70%),
  radial-gradient(6% 8% at 70% 60%,color-mix(in srgb,var(--pri) 65%,transparent),transparent 70%),
  radial-gradient(3% 4% at 90% 70%,color-mix(in srgb,var(--pri) 70%,transparent),transparent 70%),
  radial-gradient(40% 70% at 0% 100%,rgba(255,255,255,.05),transparent 70%)}
.theme-encre .hero::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");background-size:auto;mask-image:none;opacity:.8}
.theme-encre .hero h1{font-size:clamp(48px,8vw,104px);line-height:.92}
.theme-encre .hero h1 em{color:var(--pri);font-size:.42em;letter-spacing:.12em;margin-top:14px}
.theme-encre .eyebrow{color:var(--acc)}
.theme-encre .hero-card{border-radius:4px;background:rgba(255,255,255,.04);border-color:rgba(226,52,63,.35)}
.theme-encre .countdown div{border-radius:2px}
.theme-encre .expo-cover{height:70px;background:linear-gradient(135deg,#1c1b20,#0c0c0e);border-bottom:3px solid var(--c)}
.theme-encre .expo-cover::after{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.03) 0 6px,transparent 6px 12px)}
.theme-encre .kicker{color:var(--pri);letter-spacing:.2em}
.theme-encre .brand-mark{background:var(--pri);color:#fff;border-radius:2px}
.theme-encre .site-foot{border-top:3px solid var(--pri)}
.theme-encre .cta-band{border:1px solid rgba(226,52,63,.35)}

/* ---------- 4. Néon ---------- */
.theme-neon{--r:12px;--r-sm:8px;--btn-r:8px}
.theme-neon h1,.theme-neon h2,.theme-neon .brand-txt strong{text-transform:uppercase;letter-spacing:.04em}
.theme-neon .hero{background:#05040d}
.theme-neon .hero::before{inset:0;filter:none;background:radial-gradient(60% 50% at 50% 100%,color-mix(in srgb,var(--acc) 40%,transparent),transparent 70%),radial-gradient(40% 40% at 85% 10%,color-mix(in srgb,var(--pri) 30%,transparent),transparent 70%)}
.theme-neon .hero::after{inset:auto -20% -2px -20%;height:70%;mask-image:linear-gradient(0deg,#000 10%,transparent 95%);
  background-image:linear-gradient(color-mix(in srgb,var(--pri) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pri) 55%,transparent) 1px,transparent 1px);
  background-size:56px 56px;transform:perspective(420px) rotateX(62deg);transform-origin:bottom}
.theme-neon .hero h1{text-shadow:0 0 18px color-mix(in srgb,var(--pri) 70%,transparent),0 0 2px #fff;font-weight:800}
.theme-neon .hero h1 em{color:var(--acc);text-shadow:0 0 16px color-mix(in srgb,var(--acc) 80%,transparent)}
.theme-neon .hero-card{border-color:color-mix(in srgb,var(--pri) 45%,transparent);box-shadow:0 0 30px -8px color-mix(in srgb,var(--pri) 60%,transparent),inset 0 0 20px -12px var(--pri)}
.theme-neon .countdown b,.theme-neon .hero-stats b{color:var(--pri);text-shadow:0 0 12px color-mix(in srgb,var(--pri) 70%,transparent)}
.theme-neon .btn-pri,.theme-neon .btn-acc{box-shadow:0 0 22px -4px color-mix(in srgb,var(--pri) 80%,transparent)}
.theme-neon .btn-acc{box-shadow:0 0 22px -4px color-mix(in srgb,var(--acc) 80%,transparent);color:#fff}
.theme-neon .expo-card:hover{box-shadow:0 0 0 1px var(--pri),0 0 30px -8px var(--pri)}
.theme-neon .kicker{color:var(--acc);text-shadow:0 0 10px color-mix(in srgb,var(--acc) 60%,transparent)}
.theme-neon .brand-mark{background:transparent;border:2px solid var(--pri);color:var(--pri);box-shadow:0 0 14px -2px var(--pri)}

/* ---------- 5. Terroir ---------- */
.theme-terroir{--r:10px;--r-sm:6px;--btn-r:6px}
.theme-terroir body,.theme-terroir.pub{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .32 0 0 0 0 .2 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E")}
.theme-terroir .hero{background:linear-gradient(160deg,color-mix(in srgb,var(--pri) 85%,#000),var(--deep))}
.theme-terroir .hero::before{filter:none;inset:0;background:radial-gradient(35% 55% at 88% 30%,color-mix(in srgb,var(--acc) 30%,transparent),transparent 70%)}
.theme-terroir .hero::after{background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px);mask-image:none}
.theme-terroir .hero h1{font-weight:700;font-style:italic}
.theme-terroir .hero h1 em{font-style:normal;font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.24em;font-size:.26em}
.theme-terroir .eyebrow,.theme-terroir .kicker{font-family:var(--ft);font-style:italic;text-transform:none;letter-spacing:.02em;font-size:16px}
.theme-terroir .sec-head h2{font-style:italic}
.theme-terroir .expo-cover{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 40%,#2a1a14))}
.theme-terroir .card,.theme-terroir .expo-card{border-color:color-mix(in srgb,var(--pri) 14%,transparent)}

/* ---------- 6. Atelier (déco scandinave) : en-tête clair ---------- */
.theme-atelier{--r:26px;--r-sm:14px}
.theme-atelier .hero{background:var(--bg);color:var(--ink)}
.theme-atelier .hero::before{inset:auto;filter:none;right:-90px;top:40px;width:520px;height:520px;border-radius:50%;background:color-mix(in srgb,var(--pri) 85%,#fff)}
.theme-atelier .hero::after{inset:auto;mask-image:none;right:300px;bottom:-60px;width:240px;height:320px;border-radius:120px 120px 0 0;background:var(--acc)}
.theme-atelier .hero h1{font-weight:600;letter-spacing:-.02em}
.theme-atelier .hero h1 em{color:var(--pri);font-style:italic;font-weight:500}
.theme-atelier .hero-lead{color:color-mix(in srgb,var(--ink) 75%,transparent)}
.theme-atelier .hero-meta{color:var(--ink)}
.theme-atelier .eyebrow{color:var(--pri)}
.theme-atelier .hero-card{background:rgba(255,255,255,.72);border-color:rgba(255,255,255,.9);color:var(--ink);box-shadow:var(--sh-lg)}
.theme-atelier .hero-card .small{color:var(--mut)!important}
.theme-atelier .countdown div{background:var(--bg)}.theme-atelier .countdown small,.theme-atelier .hero-stats span{color:var(--mut)}
.theme-atelier .hero-stats{border-color:var(--line)}.theme-atelier .hero-stats b{color:var(--pri)}
.theme-atelier .btn-hero-ghost{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 25%,transparent);background:rgba(255,255,255,.6)}
.theme-atelier .btn-acc{background:var(--ink);color:#fff}
.theme-atelier .expo-cover{background:color-mix(in srgb,var(--c) 30%,var(--bg))}
.theme-atelier .expo-cover::after{background:radial-gradient(circle at 80% 120%,color-mix(in srgb,var(--c) 60%,transparent) 0 40%,transparent 41%)}

/* ---------- 7. Blueprint (habitat) ---------- */
.theme-blueprint{--r:3px;--r-sm:2px;--btn-r:2px}
.theme-blueprint h1,.theme-blueprint h2,.theme-blueprint h3{letter-spacing:-.02em;font-weight:800}
.theme-blueprint .hero::before{inset:0;filter:none;background:radial-gradient(40% 60% at 85% 40%,color-mix(in srgb,var(--c3,#7fd1ff) 18%,transparent),transparent 70%)}
.theme-blueprint .hero::after{mask-image:none;opacity:1;background-image:
  linear-gradient(rgba(127,209,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(127,209,255,.18) 1px,transparent 1px),
  linear-gradient(rgba(127,209,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(127,209,255,.07) 1px,transparent 1px);
  background-size:100px 100px,100px 100px,20px 20px,20px 20px}
.theme-blueprint .hero h1{text-transform:uppercase;font-size:clamp(40px,6vw,76px);line-height:.95}
.theme-blueprint .hero h1 em{color:var(--pri)}
.theme-blueprint .eyebrow{color:var(--pri);font-family:ui-monospace,Menlo,monospace}
.theme-blueprint .hero-card{border-radius:2px;border-style:dashed;border-color:rgba(127,209,255,.45);background:rgba(14,42,71,.6)}
.theme-blueprint .countdown div{border-radius:0;border:1px solid rgba(127,209,255,.3);background:transparent}
.theme-blueprint .hero-stats b{color:var(--pri)}
.theme-blueprint .kicker{font-family:ui-monospace,Menlo,monospace;color:var(--pri)}
.theme-blueprint .expo-cover{background:var(--c);background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:14px 14px}
.theme-blueprint .expo-cover::after{display:none}
.theme-blueprint .btn-acc{background:var(--pri);color:#fff}
.theme-blueprint .brand-mark{border-radius:2px;background:var(--pri);color:#fff}

/* ---------- 8. Zen : en-tête clair ---------- */
.theme-zen{--r:24px;--r-sm:14px}
.theme-zen .hero{background:linear-gradient(180deg,color-mix(in srgb,var(--pri) 14%,var(--bg)),var(--bg));color:var(--ink)}
.theme-zen .hero::before{inset:auto;filter:blur(2px);left:-120px;bottom:-200px;width:620px;height:420px;border-radius:50%;background:color-mix(in srgb,var(--pri) 28%,transparent)}
.theme-zen .hero::after{inset:auto;mask-image:none;right:-80px;top:-80px;width:380px;height:380px;border-radius:44% 56% 62% 38%/48% 41% 59% 52%;background:color-mix(in srgb,var(--acc) 30%,transparent)}
.theme-zen .hero h1{font-weight:600}.theme-zen .hero h1 em{color:var(--pri);font-style:italic}
.theme-zen .hero-lead{color:color-mix(in srgb,var(--ink) 72%,transparent)}.theme-zen .hero-meta{color:var(--ink)}
.theme-zen .eyebrow{color:var(--pri)}
.theme-zen .hero-card{background:rgba(255,255,255,.65);border-color:#fff;color:var(--ink)}
.theme-zen .hero-card .small{color:var(--mut)!important}
.theme-zen .countdown div{background:color-mix(in srgb,var(--pri) 10%,#fff)}.theme-zen .countdown small,.theme-zen .hero-stats span{color:var(--mut)}
.theme-zen .hero-stats{border-color:var(--line)}.theme-zen .hero-stats b{color:var(--pri)}
.theme-zen .btn-hero-ghost{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.theme-zen .btn-acc{background:var(--pri);color:#fff}
.theme-zen .expo-cover{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 55%,#fff),color-mix(in srgb,var(--c) 85%,#fff))}

/* ---------- 9. Rétro 70 ---------- */
.theme-retro{--r:18px;--r-sm:12px}
.theme-retro h1,.theme-retro h2{font-weight:800;letter-spacing:-.03em}
.theme-retro .hero{background:var(--deep)}
.theme-retro .hero::before{inset:auto;filter:none;right:-140px;bottom:-260px;width:720px;height:720px;border-radius:50%;
  background:radial-gradient(circle,var(--deep) 0 34%,var(--acc) 34% 44%,var(--pri) 44% 54%,#c2410c 54% 64%,#7c2d12 64% 74%,transparent 74%)}
.theme-retro .hero::after{mask-image:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 2px,transparent 2px 6px)}
.theme-retro .hero h1{font-size:clamp(44px,7vw,92px);line-height:.92}
.theme-retro .hero h1 em{color:var(--acc)}
.theme-retro .hero-card{background:rgba(59,36,22,.75);border:2px solid var(--acc)}
.theme-retro .expo-cover{background:repeating-linear-gradient(90deg,var(--c) 0 18px,color-mix(in srgb,var(--c) 70%,#f2b134) 18px 30px,color-mix(in srgb,var(--c) 60%,#3b2416) 30px 40px)}
.theme-retro .expo-cover::after{display:none}
.theme-retro .site-foot{background-image:linear-gradient(90deg,var(--acc) 0 33%,var(--pri) 33% 66%,#c2410c 66%);background-size:100% 8px;background-repeat:no-repeat}
.theme-retro .brand-mark{border-radius:50%;background:var(--pri);color:#fff}

/* ---------- 10. Festif ---------- */
.theme-festif{--r:16px}
.theme-festif h1,.theme-festif h2{font-weight:400;letter-spacing:.01em}
.theme-festif .hero{background:var(--deep)}
.theme-festif .hero::before{inset:0;filter:none;background:radial-gradient(40% 60% at 85% 20%,color-mix(in srgb,var(--pri) 55%,transparent),transparent 70%)}
.theme-festif .hero::after{mask-image:linear-gradient(180deg,#000,transparent 95%);background-image:
  radial-gradient(circle,var(--acc) 1.4px,transparent 1.6px),radial-gradient(circle,rgba(255,255,255,.7) 1px,transparent 1.3px),radial-gradient(circle,color-mix(in srgb,var(--acc) 70%,#fff) 2px,transparent 2.3px);
  background-size:70px 70px,43px 43px,110px 110px;background-position:0 0,17px 29px,40px 9px}
.theme-festif .hero h1{font-size:clamp(42px,6.6vw,84px)}
.theme-festif .hero h1 em{font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.2em;font-size:.24em}
.theme-festif .hero-card{border:1px solid color-mix(in srgb,var(--acc) 55%,transparent)}
.theme-festif .kicker{color:var(--pri)}
.theme-festif .expo-cover{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 50%,#123524))}
.theme-festif .expo-cover::after{background:radial-gradient(circle,rgba(255,255,255,.4) 1px,transparent 1.5px);background-size:16px 16px}

/* ---------- Mini-aperçus des thèmes (admin) ---------- */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.theme-pick{position:relative;cursor:pointer;border:2px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;display:block;transition:.15s}
.theme-pick:hover{transform:translateY(-2px);box-shadow:var(--sh-lg)}
.theme-pick input{position:absolute;opacity:0}
.theme-pick:has(input:checked){border-color:var(--pri);box-shadow:0 0 0 3px color-mix(in srgb,var(--pri) 25%,transparent)}
.tp-hero{height:92px;position:relative;overflow:hidden;padding:12px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end}
.tp-hero b{font-size:19px;line-height:1.05}
.tp-hero i{font-style:normal;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.tp-sw{display:flex;gap:4px;padding:8px 10px 0}.tp-sw span{width:18px;height:18px;border-radius:5px;border:1px solid rgba(0,0,0,.1)}
.tp-txt{display:block;padding:6px 12px 12px;font-size:12.5px;color:#4b5263}.tp-txt strong{display:block;color:#121826;font-size:14px}
.tp-txt em{font-style:normal;color:#8a90a0;font-size:11.5px}
.theme-pick .tp-hero{min-height:96px;height:auto;isolation:isolate}
.theme-pick .tp-hero>*{position:relative}
.theme-pick.theme-atelier .tp-hero,.theme-pick.theme-zen .tp-hero{color:var(--deep)}
.theme-pick.theme-atelier .tp-hero{background:#f4efe8}.theme-pick.theme-zen .tp-hero{background:#e3e9df}
.theme-pick.theme-atelier .hero::before{width:120px;height:120px;right:-30px;top:-30px}
.theme-pick.theme-atelier .hero::after{width:50px;height:70px;right:70px;bottom:-20px;border-radius:30px 30px 0 0}
.theme-pick.theme-zen .hero::before{width:160px;height:110px;left:-40px;bottom:-60px}.theme-pick.theme-zen .hero::after{width:90px;height:90px;right:-20px;top:-20px}
.theme-pick.theme-retro .hero::before{width:170px;height:170px;right:-60px;top:-70px;bottom:auto}
.theme-pick.theme-neon .hero::after{background-size:18px 18px}
.theme-pick.theme-encre .tp-title,.theme-pick.theme-blueprint .tp-title,.theme-pick.theme-neon .tp-title{text-transform:uppercase}
.theme-pick.theme-neon .tp-title{text-shadow:0 0 10px var(--pri)}
.theme-pick.theme-terroir .tp-title{font-style:italic}
.theme-pick .tp-hero i{color:var(--acc)}
.dark .pl-esp rect{fill:#16151b;stroke:#4a4955}.dark .pl-esp text{fill:#b9b8c2}
.dark .pl-i rect.zone{fill:color-mix(in srgb,var(--ic) 18%,#16151b)}.dark .pl-i text{fill:color-mix(in srgb,var(--ic) 55%,#fff)}
.dark .pl-i rect.seat,.dark .pl-i rect.door{fill:#22212a}
