/* Rolling Owl Games — shop.css 2.4.0 */
:root{
  --felt:#1E4A3D; --felt-dk:#14342B; --table:#E8EEEA; --paper:#FFFFFF; --ink:#1A1C1B; --muted:#56635D;
  --line:#CBD6D0; --brass:#E3A72F; --brass-dk:#B98117; --sale:#C8452F;
  --k-board:#C8452F; --k-mtg:#6D4AA8; --k-pkmn:#2F7DC4; --k-war:#4E5B31; --k-rpg:#9A4E21; --k-lorcana:#1F3B73;
  --slab:Rockwell,"Roboto Slab","Zilla Slab","Rockwell Nova","DejaVu Serif",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--table);color:var(--ink);font:16px/1.55 var(--sans)}
img,svg{display:block}
a{color:var(--felt)}
a:hover{color:var(--felt-dk)}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{font-family:var(--slab);font-weight:700;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(30px,4.4vw,48px)}
h2{font-size:clamp(23px,2.6vw,30px)}
h3{font-size:19px}
p{margin:0 0 1em}

/* header */
.strip{background:var(--felt-dk);color:#CFE0D8;font-size:13.5px}
.strip .wrap{display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.strip a{color:#fff}
.open-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7BD88F;margin-right:6px;vertical-align:1px}
.open-dot.closed{background:#E26D5A}
.top{background:var(--felt);color:#fff}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:76px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font:700 23px/1 var(--slab)}
.brand:hover{color:#fff}
.brand small{display:block;font:500 12px/1.3 var(--sans);color:#B9D3C8;letter-spacing:.02em;margin-top:3px}
.nav{display:flex;gap:2px;flex-wrap:wrap;margin-left:auto}
.nav a{color:#fff;text-decoration:none;font-weight:600;font-size:15px;padding:9px 12px;border-radius:6px}
.nav a:hover,.nav a[aria-current]{background:rgba(255,255,255,.12)}
.search{display:flex;flex:1 1 220px;max-width:300px}
.search input{flex:1;min-width:0;border:0;border-radius:6px 0 0 6px;padding:9px 12px;font:inherit;font-size:15px}
.search button{border:0;border-radius:0 6px 6px 0;background:var(--brass);color:var(--ink);font-weight:700;padding:0 14px;cursor:pointer}
.cart-link{display:flex;align-items:center;gap:6px}

/* buttons, forms */
.btn{display:inline-block;border:0;border-radius:7px;background:var(--brass);color:var(--ink);font:700 15px/1 var(--sans);padding:13px 20px;text-decoration:none;cursor:pointer}
.btn:hover{background:#F0B842;color:var(--ink)}
.btn-felt{background:var(--felt);color:#fff}
.btn-felt:hover{background:var(--felt-dk);color:#fff}
.btn-ghost{background:transparent;color:var(--felt);box-shadow:inset 0 0 0 2px var(--felt)}
.btn[disabled]{background:#C9D0CC;color:#59615D;cursor:not-allowed}
.form{display:grid;gap:14px;max-width:520px}
.form label{display:grid;gap:5px;font-weight:600;font-size:14.5px}
.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:10px 12px;border:1px solid #AEBDB5;border-radius:7px;background:#fff;width:100%}
.form textarea{min-height:120px;resize:vertical}
.form .check{display:flex;align-items:center;gap:8px;font-weight:500}
.form .check input{width:auto}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hint{font-size:13.5px;color:var(--muted);font-weight:400}
.notice{border-radius:8px;padding:14px 16px;margin:0 0 18px;font-weight:500}
.notice-ok{background:#DDF0E3;color:#14532D}
.notice-err{background:#FBE1DC;color:#7F1D12}

/* sections */
main{display:block}
.section{padding:44px 0}
.panel{background:var(--paper);border-radius:12px;padding:28px}
.lede{font-size:18px;color:var(--muted);max-width:60ch}
.crumbs{font-size:14px;color:var(--muted);margin:22px 0 4px}
.crumbs a{color:var(--muted)}

/* hero */
.hero{background:var(--felt);color:#fff;padding:46px 0 56px;position:relative}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:14px;background:repeating-linear-gradient(90deg,var(--felt-dk) 0 14px,transparent 14px 28px)}
.hero h1{max-width:16ch}
.hero .lede{color:#CFE0D8}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:start}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.hero .btn-ghost{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}

/* event cards */
.events-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.ev{background:#fff;color:var(--ink);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;min-height:150px}
.ev:hover{color:var(--ink);transform:translateY(-2px)}
.ev-band{height:8px;background:var(--k)}
.ev-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px;flex:1}
.ev-day{font:700 13px/1.2 var(--sans);color:var(--k)}
.ev-title{font:700 16.5px/1.25 var(--slab)}
.ev-meta{font-size:13px;color:var(--muted);margin-top:auto}
.k-board{--k:var(--k-board)}.k-mtg{--k:var(--k-mtg)}.k-pkmn{--k:var(--k-pkmn)}.k-war{--k:var(--k-war)}.k-rpg{--k:var(--k-rpg)}.k-lorcana{--k:var(--k-lorcana)}
.seats{display:inline-block;font-size:12.5px;font-weight:700;padding:2px 7px;border-radius:20px;background:#EEF2EF;color:var(--muted)}
.seats.low{background:#FBE1DC;color:#7F1D12}

/* box tiles: the shelf */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:26px 22px}
.box{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.box:hover{color:var(--ink)}
.box-art{aspect-ratio:1/1;background:var(--c);border-radius:6px;box-shadow:7px 7px 0 rgba(20,52,43,.28);position:relative;overflow:hidden;color:#fff;padding:16px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s ease,box-shadow .15s ease}
.box:hover .box-art{transform:translate(-2px,-2px);box-shadow:9px 9px 0 rgba(20,52,43,.3)}
.box-art::before{content:"";position:absolute;inset:10px;border:2px solid rgba(255,255,255,.35);border-radius:3px;pointer-events:none}
.box-art .glyph{width:46px;height:46px;opacity:.9}
.box-art .t{font:700 18px/1.15 var(--slab);text-shadow:0 1px 0 rgba(0,0,0,.25);position:relative}
.box-name{font-weight:600;margin-top:14px;line-height:1.35}
.box-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;font-size:14px;color:var(--muted)}
.price{font:700 17px/1 var(--sans);color:var(--ink)}
.stock{font-size:13px;font-weight:600}
.stock.out{color:var(--sale)}
.stock.few{color:var(--brass-dk)}

/* category list */
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.cat{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start;background:#fff;border-radius:10px;padding:18px;text-decoration:none;color:var(--ink)}
.cat:hover{color:var(--ink);box-shadow:0 0 0 2px var(--felt)}
.cat svg{width:52px;height:52px;color:var(--felt)}
.cat strong{font:700 18px/1.2 var(--slab);display:block;margin-bottom:4px}
.cat span{font-size:14px;color:var(--muted)}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px}
.toolbar select{font:inherit;padding:7px 10px;border-radius:6px;border:1px solid #AEBDB5}

/* product */
.product{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:44px;align-items:start}
.product .box-art{aspect-ratio:1/1;max-width:460px;padding:26px}
.product .box-art .t{font-size:34px}
.product .box-art .glyph{width:84px;height:84px}
.facts{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 22px;padding:0;list-style:none}
.facts li{background:#fff;border-radius:8px;padding:9px 13px;font-size:14px}
.facts b{display:block;font-size:12px;color:var(--muted);font-weight:600}
.buy{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:18px 0}
.buy label{display:grid;gap:4px;font-size:13px;font-weight:600}
.buy input{width:72px;font:inherit;padding:10px;border:1px solid #AEBDB5;border-radius:7px}
.big-price{font:700 32px/1 var(--sans);margin:10px 0 6px}

/* events page */
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;margin:0 0 26px;padding:0;list-style:none}
.legend li::before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--k);margin-right:6px;vertical-align:-1px}
.day{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.day h2{font-size:20px;margin:0}
.day h2 span{display:block;font:500 14px/1.4 var(--sans);color:var(--muted)}
.slot{display:grid;grid-template-columns:6px 1fr auto;gap:16px;align-items:center;background:#fff;border-radius:10px;padding:14px 16px 14px 0;margin-bottom:10px;overflow:hidden}
.slot::before{content:"";align-self:stretch;background:var(--k);margin:-14px 0}
.slot h3{margin:0 0 2px}
.slot p{margin:0;font-size:14.5px;color:var(--muted)}
.slot .when{font-weight:700;color:var(--k);font-size:14px}

/* misc blocks */
.band{background:var(--ink);color:#fff;border-radius:14px;padding:34px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}
.band p{color:#C9D2CD}
.band .btn{justify-self:start}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.hours{width:100%;border-collapse:collapse;font-size:15px}
.hours td{padding:6px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.hours tr.today td{font-weight:700}
.cart-table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden}
.cart-table th,.cart-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line)}
.cart-table th{font-size:13px;color:var(--muted);font-weight:600}
.cart-sum{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-top:18px;flex-wrap:wrap}
.prose{max-width:68ch}

/* footer */
.foot{background:var(--felt-dk);color:#CFE0D8;margin-top:56px;padding:40px 0 26px;font-size:14.5px}
.foot a{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
.foot h4{font:700 16px/1.2 var(--slab);color:#fff;margin:0 0 10px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.foot-legal{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.14);margin-top:28px;padding-top:18px;font-size:13px}

@media (max-width:860px){
  .hero-grid,.product,.band,.day{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .nav{margin-left:0}
  .search{max-width:none}
}
@media (max-width:520px){
  .shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  .events-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ev{min-height:0}
  .ev-title{font-size:15px}
  .form .row{grid-template-columns:1fr}
  .slot{grid-template-columns:6px 1fr}
  .slot .btn{grid-column:2}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.ev:hover,.box:hover .box-art{transform:none}}
