/* ============================================================
   BOLE Soccer Cleats Showroom — sporty volt-on-pitch aesthetic
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --text-xs:clamp(.75rem,.7rem+.25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem+.35vw,1rem);
  --text-base:clamp(1rem,.95rem+.25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem+.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem+1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem+2.5vw,3.5rem);

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;

  --radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-full:9999px;
  --transition-interactive:180ms cubic-bezier(.16,1,.3,1);

  --font-display:'Oswald',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}

/* ---- LIGHT (default) ---- */
:root,[data-theme='light']{
  --color-bg:#f4f5f3;
  --color-surface:#ffffff;
  --color-surface-2:#fafafa;
  --color-surface-offset:#eef0ec;
  --color-surface-dynamic:#e6e8e3;
  --color-divider:#e4e6e1;
  --color-border:#d7dad2;
  --color-text:#15171a;
  --color-text-muted:#62666b;
  --color-text-faint:#9aa0a4;
  --color-accent:#b6ff1a;        /* volt */
  --color-accent-ink:#0c1a00;
  --color-pitch:#0b3d24;          /* deep pitch green */
  --color-pitch-2:#0e5230;
  --shadow-sm:0 1px 2px oklch(.2 .01 80 / .06);
  --shadow-md:0 6px 18px oklch(.2 .01 80 / .08);
  --shadow-lg:0 18px 48px oklch(.2 .01 80 / .14);
  --card-grad:linear-gradient(180deg,#ffffff,#f7f8f5);
}

/* ---- DARK ---- */
[data-theme='dark']{
  --color-bg:#0a0c0a;
  --color-surface:#121612;
  --color-surface-2:#161a16;
  --color-surface-offset:#0e120e;
  --color-surface-dynamic:#1d221d;
  --color-divider:#1d221d;
  --color-border:#272d27;
  --color-text:#e9ece6;
  --color-text-muted:#8b938b;
  --color-text-faint:#5d645d;
  --color-accent:#c6ff2e;
  --color-accent-ink:#0a1400;
  --color-pitch:#0e5230;
  --color-pitch-2:#127a44;
  --shadow-sm:0 1px 2px oklch(0 0 0 / .3);
  --shadow-md:0 6px 18px oklch(0 0 0 / .4);
  --shadow-lg:0 18px 48px oklch(0 0 0 / .5);
  --card-grad:linear-gradient(180deg,#161a16,#101410);
}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in oklab,var(--color-bg) 88%,transparent);
  backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid var(--color-border);
}
.header-inner{
  max-width:1600px;margin:0 auto;
  display:flex;align-items:center;gap:var(--space-4);
  padding:var(--space-3) var(--space-5);
  max-width:1640px;
}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text);flex-shrink:0}
.brand-mark{width:38px;height:38px;flex-shrink:0}
.brand-text{font-family:var(--font-display);font-weight:700;letter-spacing:.04em;line-height:.95;text-transform:uppercase}
.brand-text b{display:block;font-size:var(--text-lg)}
.brand-text small{display:block;font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500;letter-spacing:.18em}

.search-wrap{flex:1;max-width:520px;margin:0 auto;position:relative}
.search-wrap svg{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-faint);pointer-events:none}
#search{
  width:100%;height:44px;padding:0 var(--space-4) 0 calc(var(--space-3) + 24px);
  border:1px solid var(--color-border);border-radius:var(--radius-full);
  background:var(--color-surface);color:var(--color-text);
  box-shadow:var(--shadow-sm);
}
#search::placeholder{color:var(--color-text-faint)}
#search:focus{outline:none;border-color:var(--color-pitch-2);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 40%,transparent)}

.header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}
.icon-btn{
  width:44px;height:44px;border-radius:var(--radius-full);
  display:grid;place-items:center;color:var(--color-text-muted);
  border:1px solid var(--color-border);background:var(--color-surface);
}
.icon-btn:hover{color:var(--color-text);border-color:var(--color-pitch-2)}

/* ============ HERO ============ */
.hero{
  max-width:1640px;margin:0 auto;padding:var(--space-12) var(--space-5) var(--space-6);
}
.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);
  font-family:var(--font-display);text-transform:uppercase;letter-spacing:.22em;
  font-size:var(--text-xs);color:var(--color-pitch-2);font-weight:600;
}
[data-theme='dark'] .hero-eyebrow{color:var(--color-accent)}
.hero-eyebrow::before{content:"";width:28px;height:2px;background:currentColor;display:inline-block}
.hero h1{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:var(--text-2xl);letter-spacing:.005em;margin:var(--space-3) 0 var(--space-2);
  line-height:.98;
}
.hero h1 em{font-style:normal;color:var(--color-pitch-2)}
[data-theme='dark'] .hero h1 em{color:var(--color-accent)}
.hero p{color:var(--color-text-muted);max-width:60ch;font-size:var(--text-base)}

/* section toggle */
.section-toggle{display:inline-flex;gap:4px;margin-top:var(--space-6);padding:4px;background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-full)}
.section-toggle button{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:var(--text-sm);color:var(--color-text-muted)}
.section-toggle button:hover{color:var(--color-text)}
.section-toggle button[aria-current="true"]{background:var(--color-text);color:var(--color-bg)}
@media (max-width:560px){.section-toggle{width:100%}.section-toggle button{flex:1}}

.stats{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-6)}
.stat .num{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1}
.stat .lbl{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-muted);margin-top:var(--space-1)}

/* ============ LAYOUT ============ */
.shell{max-width:1640px;margin:0 auto;padding:0 var(--space-5) var(--space-16);display:grid;grid-template-columns:268px 1fr;gap:var(--space-8);align-items:start}
.sidebar{position:sticky;top:88px;max-height:calc(100dvh - 104px);overflow-y:auto;padding-right:var(--space-2)}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}
.sidebar h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;font-size:var(--text-xs);color:var(--color-text-muted);padding:0 var(--space-2) var(--space-3)}
.cat-list{display:flex;flex-direction:column;gap:2px}
.cat-btn{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);
  width:100%;text-align:left;padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;
}
.cat-btn:hover{background:var(--color-surface-offset);color:var(--color-text)}
.cat-btn[aria-current="true"]{background:var(--color-text);color:var(--color-bg);font-weight:600}
.cat-btn .count{font-size:var(--text-xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums}
.cat-btn[aria-current="true"] .count{color:color-mix(in oklab,var(--color-bg) 70%,transparent)}

/* mobile category select */
.mobile-cats{display:none;margin:0 auto var(--space-6);max-width:1640px;padding:0 var(--space-5)}
.mobile-cats select{width:100%;height:48px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:600}

/* ============ MAIN GRID ============ */
.main{min-width:0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin:var(--space-8) 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}
.section-head:first-child{margin-top:0}
.section-head h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-lg);letter-spacing:.02em;line-height:1.1}
.section-head .meta{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.08em;text-transform:uppercase}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}

/* category overview card */
.cat-card{
  position:relative;display:block;text-decoration:none;color:inherit;
  border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--card-grad);box-shadow:var(--shadow-sm);
}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--color-pitch-2)}
.cat-card .thumb{aspect-ratio:1/1;overflow:hidden;background:var(--color-surface-offset)}
.cat-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 320ms var(--transition-interactive)}
.cat-card:hover .thumb img{transform:scale(1.05)}
.cat-card .info{padding:var(--space-3) var(--space-4) var(--space-4)}
.cat-card .info h3{font-family:var(--font-display);font-weight:600;text-transform:uppercase;font-size:var(--text-sm);letter-spacing:.02em;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.cat-card .info .c{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}
.cat-card .info .c b{color:var(--color-pitch-2);font-weight:700}
[data-theme='dark'] .cat-card .info .c b{color:var(--color-accent)}

/* album card */
.card{
  position:relative;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--card-grad);box-shadow:var(--shadow-sm);
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--color-pitch-2)}
.card .thumb{aspect-ratio:1/1;overflow:hidden;background:var(--color-surface-offset);position:relative}
.card .thumb img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 300ms var(--transition-interactive),transform 320ms var(--transition-interactive)}
.card .thumb img.loaded{opacity:1}
.card:hover .thumb img.loaded{transform:scale(1.06)}
.card .badge{position:absolute;top:var(--space-2);right:var(--space-2);background:color-mix(in oklab,var(--color-bg) 78%,transparent);backdrop-filter:blur(6px);color:var(--color-text);font-size:var(--text-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-full);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:3px}
.card .info{padding:var(--space-3);flex:1;display:flex;flex-direction:column;gap:var(--space-1)}
.card .info .title{font-size:var(--text-xs);line-height:1.35;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:500;min-height:2.7em}
.card .open{font-size:var(--text-xs);color:var(--color-pitch-2);font-weight:600;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:4px}
[data-theme='dark'] .card .open{color:var(--color-accent)}

/* skeleton */
.skeleton{aspect-ratio:1/1;background:linear-gradient(100deg,var(--color-surface-offset) 30%,var(--color-surface-dynamic) 50%,var(--color-surface-offset) 70%);background-size:200% 100%;animation:shimmer 1.3s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ============ LIGHTBOX / GALLERY ============ */
.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:var(--space-3)}
.lightbox.open{display:flex}
.lightbox::before{content:"";position:absolute;inset:0;background:color-mix(in oklab,#000 82%,transparent);backdrop-filter:blur(6px)}
.lb-card{position:relative;z-index:1;max-width:1080px;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);max-height:92dvh}
.lb-stage{background:var(--color-surface-offset);position:relative;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}
.lb-stage img{width:100%;height:100%;max-height:92dvh;object-fit:contain;opacity:0;transition:opacity 250ms var(--transition-interactive)}
.lb-stage img.loaded{opacity:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:var(--radius-full);background:color-mix(in oklab,var(--color-bg) 70%,transparent);backdrop-filter:blur(8px);color:var(--color-text);display:grid;place-items:center;border:1px solid var(--color-border);z-index:2}
.lb-nav:hover{background:var(--color-surface-dynamic)}
.lb-nav.prev{left:var(--space-3)}
.lb-nav.next{right:var(--space-3)}
.lb-nav[disabled]{opacity:.35;cursor:default}
.lb-counter{position:absolute;top:var(--space-3);left:50%;transform:translateX(-50%);background:color-mix(in oklab,var(--color-bg) 70%,transparent);backdrop-filter:blur(8px);color:var(--color-text);font-size:var(--text-xs);font-weight:600;padding:4px var(--space-3);border-radius:var(--radius-full);font-variant-numeric:tabular-nums;z-index:2}
.lb-body{padding:var(--space-6);overflow-y:auto;display:flex;flex-direction:column}
.lb-body .lb-cat{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;font-size:var(--text-xs);color:var(--color-pitch-2);font-weight:600}
[data-theme='dark'] .lb-body .lb-cat{color:var(--color-accent)}
.lb-body .lb-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-4);line-height:1.2}
.lb-body .lb-meta{display:flex;gap:var(--space-6);margin-bottom:var(--space-5)}
.lb-body .lb-meta .k{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}
.lb-body .lb-meta .v{font-family:var(--font-display);font-weight:700;font-size:var(--text-base)}
.lb-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:var(--space-2);margin-bottom:var(--space-5);max-height:180px;overflow-y:auto;padding:var(--space-1)}
.lb-thumbs::-webkit-scrollbar{width:6px}
.lb-thumbs::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}
.lb-thumb{aspect-ratio:1/1;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;cursor:pointer;background:var(--color-surface-offset)}
.lb-thumb img{width:100%;height:100%;object-fit:cover}
.lb-thumb[aria-current="true"]{border-color:var(--color-pitch-2)}
[data-theme='dark'] .lb-thumb[aria-current="true"]{border-color:var(--color-accent)}
.lb-cta{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm);text-decoration:none;letter-spacing:.02em;align-self:flex-start}
.lb-cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.lb-close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:3;width:40px;height:40px;border-radius:var(--radius-full);background:color-mix(in oklab,var(--color-bg) 70%,transparent);backdrop-filter:blur(8px);color:var(--color-text);display:grid;place-items:center;border:1px solid var(--color-border)}
.lb-close:hover{background:var(--color-surface-dynamic)}

/* ============ STATE / EMPTY ============ */
.state{padding:var(--space-20) var(--space-4);text-align:center;color:var(--color-text-muted)}
.state h3{font-family:var(--font-display);text-transform:uppercase;font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-2)}
.crumb{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted)}
.crumb a{color:var(--color-text);font-weight:600;text-decoration:none}
.crumb a:hover{color:var(--color-pitch-2)}
[data-theme='dark'] .crumb a:hover{color:var(--color-accent)}
.crumb .sep{color:var(--color-text-faint)}
.crumb .cur{color:var(--color-text-muted)}

.load-more-wrap{display:flex;justify-content:center;padding:var(--space-10) 0}
.load-more{padding:var(--space-3) var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-weight:600;font-size:var(--text-sm)}
.load-more:hover{border-color:var(--color-pitch-2);background:var(--color-surface-offset)}

/* ============ FOOTER ============ */
.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface-offset)}
.footer-inner{max-width:1640px;margin:0 auto;padding:var(--space-10) var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-8);justify-content:space-between;align-items:center}
.footer-inner p{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}
.footer-inner .brand-text{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-sm)}

/* ============ RESPONSIVE ============ */
@media (max-width:760px){
  .lb-card{grid-template-columns:1fr;max-height:94dvh}
  .lb-stage{min-height:50vh}
  .lb-body{padding:var(--space-4)}
}
@media (max-width:980px){
  .shell{grid-template-columns:1fr;gap:var(--space-4)}
  .sidebar{display:none}
  .mobile-cats{display:block}
  .header-inner{flex-wrap:wrap}
  .search-wrap{order:3;flex-basis:100%;max-width:none}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}
}
@media (max-width:560px){
  .hero{padding:var(--space-8) var(--space-5) var(--space-4)}
  .grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
  .stats{gap:var(--space-4)}
}
