:root{
  /* Spanish Tiles brand: logo navy + grey */
  --accent:#2D2F8E; --accent-dark:#1E2066; --accent-soft:#E9EAF6;
  --ink:#1F1F1F; --ink-soft:#6B6B6B; --ink-faint:#9C9CA8;
  --surface:#fff; --surface-2:#FAF7F0; --border:#E6E1D8;
  --shadow:0 1px 3px rgba(0,0,0,.06); --shadow-lg:0 12px 40px rgba(0,0,0,.18);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--surface-2);line-height:1.5}
a{color:var(--accent);text-decoration:none}
.serif{font-family:Fraunces,Georgia,serif}
.muted{color:var(--ink-soft)} .tiny{font-size:.8rem}
.btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:10px;padding:10px 16px;font-size:.92rem;font-weight:600;font-family:inherit;cursor:pointer;background:var(--accent);color:#fff}
.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--border)}
.btn.sm{padding:6px 12px;font-size:.82rem}
.btn:disabled{opacity:.5;cursor:default}

/* top bar (white, with the Spanish Tiles logo) */
.bar{position:sticky;top:0;z-index:20;background:var(--surface);color:var(--ink);display:flex;align-items:center;gap:18px;padding:10px 20px;box-shadow:var(--shadow);border-bottom:1px solid var(--border)}
.bar .logo{height:42px;display:block}
.bar .studio-tag{font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:999px;padding:4px 10px;margin-left:2px}
.bar .brand{font-family:Fraunces,serif;font-weight:600;font-size:1.15rem;letter-spacing:.3px;color:var(--accent)}
.bar .brand small{display:block;font-family:Inter,sans-serif;font-weight:500;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.bar .spacer{flex:1}
.bar a{color:var(--ink);font-size:.88rem;font-weight:600;opacity:.92}
.bar a:hover{opacity:1;color:var(--accent)}
.bar .pill{background:var(--accent);color:#fff;padding:6px 12px;border-radius:999px}

/* hero banner (rotating hero shots behind the page heading) */
.hero{position:relative;overflow:hidden;background:var(--accent-dark);color:#fff}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease}
.hero .bg.show{opacity:1}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,14,52,.45),rgba(16,14,52,.68))}
.hero-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:72px 20px 60px}
.hero h1{font-size:2.2rem;line-height:1.15;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.hero p{margin-top:8px;font-size:.95rem;opacity:.92;text-shadow:0 1px 8px rgba(0,0,0,.4)}
@media(max-width:680px){.hero-inner{padding:48px 20px 40px}.hero h1{font-size:1.6rem}}

/* stock qty range slider */
.stkbox{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 16px}
.stkbox label{font-size:.78rem;font-weight:600;color:var(--ink-soft);white-space:nowrap}
.dual{position:relative;width:170px;height:22px}
.dual .track{position:absolute;top:9px;left:0;right:0;height:4px;border-radius:2px;background:var(--border)}
.dual .fill{position:absolute;top:9px;height:4px;border-radius:2px;background:var(--accent)}
.dual input[type=range],.filters .dual input[type=range]{position:absolute;left:0;top:0;width:100%;min-width:0;height:22px;margin:0;padding:0;border:0;border-radius:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.dual input[type=range]::-webkit-slider-runnable-track{height:4px;background:transparent}
.dual input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:var(--shadow);cursor:pointer;pointer-events:auto;margin-top:-6px}
.dual input[type=range]::-moz-range-track{background:transparent}
.dual input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:var(--shadow);cursor:pointer;pointer-events:auto}
.stkbox .lab{font-size:.78rem;font-weight:600;color:var(--ink);min-width:80px;text-align:right;white-space:nowrap}

/* item number chip + stock label */
.codechip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;color:var(--ink-soft);white-space:nowrap}
.meta2{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:8px}
.stk{font-size:.72rem;font-weight:600;white-space:nowrap}
.stk.in{color:#1B7A3D}
.stk.out{color:#B4302E}
.stockline{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;margin:4px 0 2px}
.stockline .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.stockline.in{color:#1B7A3D}.stockline.in .dot{background:#1B7A3D}
.stockline.out{color:#B4302E}.stockline.out .dot{background:#B4302E}

.wrap{max-width:1280px;margin:0 auto;padding:22px 20px 80px}

/* filters */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 18px}
.filters input,.filters select{padding:9px 14px;border:1px solid var(--border);border-radius:999px;font-size:.9rem;font-family:inherit;background:var(--surface);min-width:170px}
.filters input[type=search]{min-width:240px}

/* grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .15s;position:relative}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.card .ph{aspect-ratio:1;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .body{padding:11px 13px 13px}
.card .nm{font-weight:600;font-size:.86rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.3em}
.card .mt{font-size:.72rem;color:var(--ink-soft);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .save{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);box-shadow:var(--shadow);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);transition:all .12s}
.card .save.on{background:var(--accent);color:#fff}
.card .save:hover{transform:scale(1.08)}

/* detail modal */
.overlay{position:fixed;inset:0;background:rgba(31,31,31,.6);display:none;place-items:center;z-index:50;padding:20px}
.modal{background:var(--surface);border-radius:18px;max-width:860px;width:100%;max-height:92vh;overflow:auto;box-shadow:var(--shadow-lg)}
.modal .top{display:grid;grid-template-columns:340px 1fr;gap:0}
@media(max-width:680px){.modal .top{grid-template-columns:1fr}}
.modal .img{aspect-ratio:1;background:var(--surface-2)}
.modal .img img{width:100%;height:100%;object-fit:cover}
.modal .info{padding:24px}
.modal h2{font-family:Fraunces,serif;font-size:1.4rem;line-height:1.2;margin-bottom:6px}
.modal .badges{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.modal .badge{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark)}
.modal .research{font-size:.9rem;color:var(--ink);margin:12px 0;line-height:1.6}
.spectable{width:100%;border-collapse:collapse;margin-top:10px;font-size:.85rem}
.spectable td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.spectable td.k{color:var(--ink-soft);width:42%;font-weight:500}
.modal .close{position:absolute;top:14px;right:18px;background:rgba(255,255,255,.9);border:0;width:38px;height:38px;border-radius:50%;font-size:22px;cursor:pointer}

/* list rows */
.lrow{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin-bottom:8px}
.lrow .ph{width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--surface-2)}
.lrow .ph img{width:100%;height:100%;object-fit:cover}
.lrow .nm{font-weight:600;font-size:.92rem}
.lrow .mt{font-size:.76rem;color:var(--ink-soft);margin-top:2px}
.empty{text-align:center;color:var(--ink-soft);padding:60px 20px}
