/* Halloween $40 Flash Sale (Sat Oct 31 2026, 12-3 PM). Hidden from 3 PM PDT by assets/seasonal/flash40.js (html.f40-over). */
.f40{position:relative;padding:44px 0 56px;overflow:hidden;
  background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(255,120,30,.20),transparent 70%),radial-gradient(ellipse 60% 50% at 85% 60%,rgba(120,40,140,.22),transparent 70%),linear-gradient(180deg,#07070b,#120a12 55%,#0b0a0d);
  border-top:1px solid rgba(255,150,60,.35);border-bottom:1px solid rgba(255,150,60,.35)}
.f40 .wrap{position:relative}
.f40-head{text-align:center;margin:0 auto 22px;max-width:760px}
.f40-k{display:block;font:700 .72rem/1.4 var(--caps);letter-spacing:.28em;text-transform:uppercase;color:#ff9d4d;margin-bottom:6px}
.f40-head h2{margin:0;font:700 clamp(2rem,6.4vw,3.2rem)/1.05 var(--deco);letter-spacing:.02em}
.f40-head h2 b{font-weight:700}
.f40-top{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px;align-items:center;max-width:960px;margin:0 auto}
.f40-poster{margin:0;border-radius:10px;overflow:hidden;border:1px solid rgba(255,170,90,.55);box-shadow:0 0 0 4px rgba(10,6,8,.8),0 0 40px rgba(255,120,30,.28),0 18px 40px rgba(0,0,0,.7);background:#0b0a0d;aspect-ratio:2/3}
.f40-poster img{display:block;width:100%;height:100%;object-fit:cover}
.f40-info{display:flex;flex-direction:column;gap:14px}
.f40-live-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.f40-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font:700 .78rem/1 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:#1a0d04;background:linear-gradient(135deg,#ffd27a,#ff8a3d);box-shadow:0 0 18px rgba(255,138,61,.45)}
.f40-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:#1a0d04}
html.f40-live .f40-pill::before{background:#c0161b;box-shadow:0 0 0 0 rgba(192,22,27,.7);animation:f40p 1.6s infinite}
@keyframes f40p{70%{box-shadow:0 0 0 8px rgba(192,22,27,0)}100%{box-shadow:0 0 0 0 rgba(192,22,27,0)}}
.f40-cd{font:600 .95rem/1.3 var(--body);color:#ffe7b8;font-variant-numeric:tabular-nums}
.f40-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;list-style:none}
.f40-facts li{padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid rgba(227,192,136,.35);font:500 1rem/1.25 var(--body);color:var(--cream)}
.f40-facts b{display:block;font:700 1.25rem/1.1 var(--caps);color:#ffd27a;letter-spacing:.03em}
.f40-ctas{display:flex;flex-wrap:wrap;gap:10px}
.f40-ctas .btn{flex:1 1 200px;min-height:54px}
.f40-ctas .f40-sub{flex:1 1 120px}
.f40-note{margin:0;font:italic 500 .98rem/1.4 var(--body);color:var(--muted)}
.f40-dh{margin:34px 0 14px;text-align:center}
.f40-dh h3{margin:0;font:700 clamp(1.25rem,3.6vw,1.6rem)/1.2 var(--caps);letter-spacing:.06em;color:var(--brass);font-style:normal}
.f40-dh p{margin:4px 0 0;color:var(--muted);font-size:1rem}
.f40-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.f40-d{margin:0;display:flex;flex-direction:column;border-radius:8px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;
  background:#1a1113;border:1px solid rgba(227,192,136,.55);box-shadow:0 10px 22px -8px rgba(0,0,0,.7);transition:transform .2s var(--ease),box-shadow .2s}
.f40-d:hover{transform:translateY(-2px);box-shadow:0 0 0 1px #e3c088,0 14px 26px -8px rgba(0,0,0,.8)}
.f40-d:active{transform:scale(.97)}
.f40-d:focus-visible{outline:2px solid #ffd27a;outline-offset:3px}
/* the art: da Vinci parchment edge to edge, also while loading (no blue behind it) */
.f40-art{display:block;aspect-ratio:1;background:#dcc293 url(../flash40/paper-768.webp) center/cover}
.f40-art img{display:block;width:100%;height:100%;object-fit:cover}
.f40-d figcaption{padding:8px 8px 4px;text-align:center;font:italic 500 1.02rem/1.2 var(--body);color:var(--cream)}
.f40-d figcaption small{display:block;margin-top:3px;font:700 .74rem/1.3 var(--caps);letter-spacing:.06em;color:#ffd27a;font-style:normal}
.f40-d .pk-add{width:auto;margin:4px 8px 8px;min-height:40px}
/* viewer (assets/viewer/viewer.js adds .vw-parch for [data-vw-parch] collections): plain parchment preview, full view, thumbnails */
.vw.vw-parch .vw-pv .pv-art{background:#dcc293 url(../flash40/paper-768.webp) center/cover!important}
/* full view: the design (its own parchment) lies on a slightly deeper parchment "table", so the sheet edge reads as a card, not a seam */
.vw.vw-parch .ex-stage{background:linear-gradient(rgba(70,45,20,.30),rgba(70,45,20,.30)),#cdb07c url(../flash40/paper-768.webp) center/cover!important}
.vw.vw-parch .vw-pv .pv-art .pv-bg{display:none!important}
.vw.vw-parch .vw-pv .pv-art img{object-fit:contain}
.vw.vw-parch .ex-track img{filter:none!important;border-radius:3px;box-shadow:0 0 0 1px rgba(90,60,25,.35),0 10px 26px -6px rgba(40,22,6,.55)}
.vw.vw-parch .pv-strip button,.vw.vw-parch .ex-strip button{background:#dcc293 url(../flash40/paper-768.webp) center/cover!important}
/* /shop banner */
.f40-ban{display:flex;align-items:center;gap:14px;margin:0 auto 18px;max-width:900px;padding:10px 14px;border-radius:10px;text-decoration:none;color:var(--cream,#f4ead4);
  background:radial-gradient(ellipse 80% 120% at 0% 50%,rgba(255,120,30,.28),transparent 70%),linear-gradient(135deg,#140b10,#1d0f18);border:1px solid rgba(255,170,90,.6);box-shadow:0 0 24px rgba(255,120,30,.22)}
.f40-ban img{width:64px;height:96px;object-fit:cover;border-radius:6px;flex:none;border:1px solid rgba(255,170,90,.5)}
.f40-ban b{display:block;font:700 1.15rem/1.15 Cinzel,Georgia,serif;color:#ffd27a}
.f40-ban>span{flex:1;min-width:0}.f40-ban>span>span{display:block;font:500 .95rem/1.35 "EB Garamond",Georgia,serif}
.f40-ban i{display:block;font:600 .85rem/1.3 "EB Garamond",Georgia,serif;font-style:normal;color:#ff9d4d;font-variant-numeric:tabular-nums}
.f40-ban em{margin-left:auto;flex:none;padding:8px 12px;border-radius:6px;font:700 .72rem/1 Cinzel,Georgia,serif;letter-spacing:.12em;text-transform:uppercase;font-style:normal;color:#1a0d04;background:linear-gradient(135deg,#ffd27a,#ff8a3d)}
@media (max-width:1100px){.f40-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){
  .f40{padding:26px 0 40px}
  .f40-top{grid-template-columns:1fr;gap:18px}
  .f40-poster{max-width:360px;width:88%;margin:0 auto}
  .f40-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .f40-ban em{display:none}
}
@media (prefers-reduced-motion:reduce){.f40-d{transition:none}.f40-d:active,.f40-d:hover{transform:none}html.f40-live .f40-pill::before{animation:none}}
.hero-facts [data-f40] a{color:inherit;text-decoration:underline;text-decoration-color:rgba(255,157,77,.7);text-underline-offset:3px}
/* the Oct 31 "2 slots" picker (assets/oct31/oct31.js) is for regular bookings; $40 flash times are 12-3 PM in Square */
.vw[data-vw-set-open="Halloween $40 Flash"] .o31-row{display:none!important}
