/* ==========================================================================
   Colecciones Deportivas Baja — shared stylesheet
   Design language: flat color-block storefront — solid forest-green sections
   alternating with clean white panels, bold condensed uppercase display
   type, circular icon badges with thin borders. No gradients, no soft
   skeuomorphic glow — hard/flat shadows or thin borders only.
   ========================================================================== */

/* ------------------------------- Local fonts ------------------------------ */
@font-face{
  font-family: 'GC Sublime';
  src: url('fonts/Sublime.woff2') format('woff2'),
       url('fonts/Sublime.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------------------------------- Tokens ------------------------------ */
:root{
  /* brand palette — forest-green primary, white base, red accent-only */
  --color-green:        #034320;
  --color-green-dark:   #022f16;
  --color-green-deep:   #01230f;
  --color-green-tint:   rgba(3,67,32,0.10);

  --color-white:        #FFFFFF;
  --color-off:          #F6F1E9;   /* warm off-white for subtle zebra panels/circles */
  --color-off-2:        #EFE7D8;

  --color-ink:          #17130F;   /* near-black text on white */
  --color-ink-soft:     #5B564E;   /* muted body text on white */
  --color-line:         rgba(23,19,15,0.14);
  --color-line-strong:  rgba(23,19,15,0.30);
  --color-line-onGreen: rgba(255,255,255,0.40);

  --color-red:          #c90310;   /* accent ONLY: links, ask-a-question, lang toggle, focus */
  --color-red-dark:     #9c020c;
  --color-red-bg:       rgba(201,3,16,0.10);

  /* status colors (kept distinct from brand so they read as state, not brand) */
  --amber:        #A9660A;
  --amber-bg:     #FBE6C4;
  --sold-gray:    #6B675F;
  --sold-bg:      #E7E3DA;
  --available:    #1E7A44;
  --available-bg: rgba(30,122,68,0.12);

  /* flat per-category swatches — solid colors, no gradients. Kept distinct
     per sport/TCG so cards/tiles stay scannable at a glance; brand chrome
     (header, buttons, hero, trust band) stays strictly green/white/red. */
  --cat-basketball: #C1691F;
  --cat-baseball:   #2E5872;
  --cat-hockey:     #24404A;
  --cat-football:   #6B4415;
  --cat-golf:       #2C5C3A;
  --cat-f1:         #B3272A;
  --cat-nascar:     #33407A;
  --cat-pokemon:    #C1291F;
  --cat-mtg:        #4A2470;

  /* radii + flat/hard shadows (no blur-heavy glows) */
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --shadow-flat:  3px 3px 0 rgba(23,19,15,.12);
  --shadow-panel: -4px 0 0 rgba(23,19,15,.08);

  /* type */
  --font-display: 'GC Sublime', 'Arial Narrow', 'Helvetica Neue', sans-serif;
  --font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, 'SF Mono', 'Cascadia Code', Menlo, Consolas, monospace;

  /* motion */
  --ease-out: cubic-bezier(.16,.8,.32,1);
  --dur-fast: 160ms;
  --dur-med: 260ms;
  --dur-slow: 360ms;

  /* layout */
  --container: 1280px;
  --header-h: 76px;
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){
    animation-duration: 0.001ms !important;
  }
}

/* -------------------------- Page transitions ------------------------------
   Cross-document View Transitions — smooth crossfade between pages on the
   same origin. No JS: supporting browsers (Chrome/Edge 126+) opt in via this
   at-rule; everywhere else navigation just works as a normal page load. */
@view-transition{
  navigation: auto;
}
::view-transition-old(root),
::view-transition-new(root){
  animation-duration: var(--dur-slow);
  animation-timing-function: var(--ease-out);
}

/* ---------------------------------- Reset -------------------------------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body{
  margin: 0;
  background: var(--color-white);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img, svg{ display:block; max-width:100%; }
ul{ list-style: none; margin:0; padding:0; }
a{ color: inherit; text-decoration:none; }
button{ font: inherit; color: inherit; background:none; border:none; cursor:pointer; }
input, select, textarea{ font: inherit; color: inherit; }
h1,h2,h3,h4,p,figure{ margin:0; }
.icon{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon-fill{ fill:currentColor; stroke:none; }

/* focus visibility — red is the accent color for interactive states */
:focus-visible{
  outline: 2px solid var(--color-red);
  outline-offset: 2px;
  border-radius: 2px;
}
button, a, input, select, textarea{ cursor: pointer; }
input, select, textarea{ cursor: auto; }

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 20px;
}
@media (min-width:768px){ .container{ padding: 0 32px; } }
@media (min-width:1280px){ .container{ padding: 0 48px; } }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.eyebrow{
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-green);
  display:flex; align-items:center; gap:10px;
  font-weight: 600;
}
.eyebrow::before{
  content:"";
  width: 22px; height: 2px;
  background: var(--color-green);
  display:inline-block;
}

/* ================================ HEADER ================================= */
.site-header{
  position: sticky; top:0; z-index: 60;
  background: var(--color-white);
  border-bottom: 2px solid var(--color-ink);
}
.header-row{
  display:flex; align-items:center; gap: 14px;
  height: var(--header-h);
}
.logo{
  display:flex; align-items:center; gap:10px;
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-ink);
}
.logo .logo-mark{
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--color-green);
  display:flex; align-items:center; justify-content:center;
  color: var(--color-white);
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
}
.logo .logo-sub{
  display:block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-ink-soft);
  font-weight: 400;
  margin-top: 2px;
}
.logo-img{
  height: 54px;
  width: auto;
  flex-shrink: 0;
  display: block;
}
@media (max-width:640px){ .logo-img{ height: 66px; } }
@media (max-width:360px){ .logo-img{ height: 50px; } }
.logo-img-sm{ height: 32px; }

.primary-nav{ display:none; }
@media (min-width:1100px){
  .primary-nav{ display:flex; align-items:center; gap: 2px; }
}
.nav-trigger, .nav-link{
  display:flex; align-items:center; gap:5px;
  padding: 9px 9px;
  border-radius: var(--r-md);
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--color-ink);
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast);
}
.nav-trigger:hover, .nav-trigger[aria-expanded="true"], .nav-link:hover{
  background: var(--color-green-tint);
  color: var(--color-green);
}
.nav-trigger .icon{ width:16px; height:16px; transition: transform var(--dur-fast) var(--ease-out); }
.nav-trigger[aria-expanded="true"] .icon{ transform: rotate(180deg); }

.nav-link-highlight{
  color: var(--color-green);
}
.nav-link-highlight:hover{
  color: var(--color-green-dark);
}

.header-tools{
  margin-left: auto;
  display:flex; align-items:center; gap: 8px;
}
.search-field{
  display:none;
  align-items:center; gap:8px;
  background: var(--color-off);
  border: 1px solid var(--color-line);
  border-radius: 999px;
  padding: 8px 14px;
  min-width: 210px;
  transition: border-color var(--dur-fast);
}
.search-field:focus-within{ border-color: var(--color-green); }
.search-field .icon{ width:16px; height:16px; color: var(--color-ink-soft); }
.search-field input{
  background:none; border:none; outline:none;
  color: var(--color-ink); width:100%;
  font-size: 14px;
}
.search-field input::placeholder{ color: var(--color-ink-soft); }
@media (min-width:760px){ .search-field{ display:flex; } }

/* ------------------------------ Language toggle --------------------------- */
.lang-toggle{
  display:flex; align-items:center; gap:2px;
  border: 1.5px solid var(--color-ink);
  border-radius: 999px;
  padding: 3px;
  flex-shrink: 0;
}
.lang-btn{
  padding: 5px 10px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--color-ink-soft);
  transition: background var(--dur-fast), color var(--dur-fast);
}
.lang-btn:hover{ color: var(--color-ink); }
.lang-btn.is-active{
  background: var(--color-red);
  color: var(--color-white);
}
.lang-sep{ color: var(--color-line-strong); font-size:11px; }

.icon-btn{
  position:relative;
  width: 42px; height: 42px;
  display:flex; align-items:center; justify-content:center;
  border-radius: var(--r-md);
  color: var(--color-ink);
  transition: background var(--dur-fast);
}
.icon-btn:hover{ background: var(--color-off); }
.badge-count{
  position:absolute; top:2px; right:2px;
  min-width: 17px; height:17px; padding:0 4px;
  border-radius: 999px;
  background: var(--color-green);
  color: var(--color-white);
  font-family: var(--font-mono);
  font-size: 10.5px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
  transform: scale(0);
  transition: transform var(--dur-fast) var(--ease-out);
}
.badge-count.is-visible{ transform: scale(1); }

.hamburger{ display:flex; }
@media (min-width:1100px){ .hamburger{ display:none; } }
.hamburger .icon{ width:22px; height:22px; }

/* ------------------------------- Mega menu -------------------------------- */
.mega-panel{
  display:none; /* trigger lives in .primary-nav, which is hidden below 1200px — panel must not occupy layout there either */
}
@media (min-width:1100px){
  .mega-panel{
    display:block;
    position:absolute; left:0; right:0; top: 100%;
    background: var(--color-white);
    color: var(--color-ink);
    border-bottom: 3px solid var(--color-green);
    box-shadow: 0 4px 0 rgba(23,19,15,.06);
    opacity:0; visibility:hidden; transform: translateY(-8px);
    transition: opacity var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out), visibility var(--dur-med);
    z-index: 55;
  }
  .mega-panel.is-open{ opacity:1; visibility:visible; transform: translateY(0); }
}
.mega-panel-inner{ padding: 32px 48px 40px; }
.mega-panel-head{
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom: 20px; padding-bottom:16px;
  border-bottom: 1px solid var(--color-line);
}
.mega-panel-title{ font-family: var(--font-display); font-size: 22px; font-weight:700; text-transform:uppercase; letter-spacing:.01em; }
.mega-panel-note{ font-size: 13px; color: var(--color-ink-soft); }
.mega-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
@media (max-width: 1080px){ .mega-grid{ grid-template-columns: repeat(3,1fr); } }
.mega-grid-social{ grid-template-columns: repeat(2, minmax(180px, 1fr)); max-width: 420px; }
.mega-item{
  display:flex; align-items:center; gap:12px;
  padding: 14px 16px;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  transition: background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
}
.mega-item:hover{
  background: var(--color-green-tint);
  border-color: var(--color-green);
  transform: translateX(2px);
}
.mega-item .mega-icon{
  width: 40px; height:40px; border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--color-white); color: var(--color-green);
  border: 1.5px solid var(--color-green);
  flex-shrink:0;
}
.mega-item .mega-icon .icon{ width:19px; height:19px; }
.mega-item-label{ font-weight:700; font-size:14.5px; font-family: var(--font-display); text-transform:uppercase; letter-spacing:.01em; }
.mega-item-count{ display:block; font-family: var(--font-mono); font-size:11px; color: var(--color-ink-soft); margin-top:2px; }

/* backdrop for mega menu + drawers */
.scrim{
  position:fixed; inset:0; background: rgba(23,19,15,.55);
  opacity:0; visibility:hidden; transition: opacity var(--dur-med), visibility var(--dur-med);
  z-index: 50;
}
.scrim.is-open{ opacity:1; visibility:visible; }
/* .site-header sits above the scrim (z-index 60) so it stays visible while the
   mega menu is open. The filter sheet and inquiry drawer only cover part of
   the viewport width, so without this the header would show through
   un-dimmed in the uncovered strip alongside them. */
body:has(.filter-sheet.is-open) .site-header,
body:has(.inquiry-drawer.is-open) .site-header{
  z-index: 45;
}
/* The mobile nav drawer has its own logo + close button, so hide the page
   header entirely while it's open rather than just dimming it — otherwise
   two logos/menus are visible at once. visibility (not display) keeps the
   header's layout space reserved so nothing jumps when the drawer closes. */
body:has(.mobile-drawer.is-open) .site-header{
  visibility: hidden;
}

/* --------------------------- Mobile nav drawer ---------------------------- */
.mobile-drawer{
  position:fixed; top:0; left:0; bottom:0; width: min(340px, 86vw);
  background: var(--color-white);
  z-index: 70;
  transform: translateX(-100%);
  transition: transform var(--dur-slow) var(--ease-out);
  display:flex; flex-direction:column;
  box-shadow: var(--shadow-panel);
  border-right: 1px solid var(--color-line);
}
.mobile-drawer.is-open{ transform: translateX(0); }
.mobile-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 20px; border-bottom:2px solid var(--color-ink);
}
.mobile-drawer-body{ padding: 12px 8px; overflow-y:auto; flex:1; }
.accordion{ border-bottom: 1px solid var(--color-line); }
.accordion-trigger{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding: 16px 12px; font-weight:700; font-size:15px;
  font-family: var(--font-display); text-transform:uppercase; letter-spacing:.02em;
}
.accordion-trigger .icon{ transition: transform var(--dur-fast) var(--ease-out); }
.accordion-trigger[aria-expanded="true"] .icon{ transform: rotate(180deg); }
.accordion-panel{
  max-height:0; overflow:hidden;
  transition: max-height var(--dur-med) var(--ease-out);
}
.accordion-list{ padding: 2px 12px 16px 12px; display:flex; flex-direction:column; gap:2px; }
.accordion-list a{
  display:flex; align-items:center; gap:10px;
  padding: 9px 10px; border-radius: var(--r-md);
  font-size: 14px; color: var(--color-ink-soft);
}
.accordion-list a:hover{ background: var(--color-green-tint); color: var(--color-green); }
.mobile-drawer-link{
  display:block; width:100%;
  padding: 16px 12px; font-weight:700; font-size:15px;
  font-family: var(--font-display); text-transform:uppercase; letter-spacing:.02em;
  color: var(--color-ink); border-bottom: 1px solid var(--color-line);
}
.mobile-drawer-link-highlight{ color: var(--color-green); }
.mobile-drawer-foot{ padding: 16px 20px; border-top:1px solid var(--color-line); }
.mobile-search{
  display:flex; align-items:center; gap:8px;
  background: var(--color-off); border:1px solid var(--color-line);
  border-radius: 999px; padding: 10px 14px; margin: 4px 8px 12px;
}
.mobile-search input{ background:none; border:none; outline:none; color:var(--color-ink); width:100%; font-size:14px; }
.mobile-search .icon{ width:16px; height:16px; color:var(--color-ink-soft); }

/* ================================ BUTTONS ================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 22px;
  border-radius: var(--r-md);
  font-family: var(--font-display);
  font-weight: 700; font-size: 13.5px;
  text-transform: uppercase; letter-spacing: .03em;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
  white-space: nowrap;
}
.btn:active{ transform: translate(1px,1px); }
.btn-primary{ background: var(--color-green); color: var(--color-white); }
.btn-primary:hover{ background: var(--color-green-dark); }
.btn-lg{ padding: 16px 30px; font-size: 14.5px; }
.btn-outline-onDark{
  background:transparent; border:1.5px solid var(--color-ink); color: var(--color-ink);
}
.btn-outline-onDark:hover{ border-color: var(--color-green); color: var(--color-green); }
.btn-outline-onCream{
  background:transparent; border:1.5px solid var(--color-ink); color: var(--color-ink);
}
.btn-outline-onCream:hover{ background: var(--color-ink); color: var(--color-white); }
.btn-block{ width:100%; }
.btn-ghost-link{
  display:inline-flex; align-items:center; gap:6px;
  font-family: var(--font-display);
  font-weight:700; font-size:13.5px;
  text-transform: uppercase; letter-spacing:.02em;
  border-bottom: 1.5px solid currentColor;
  padding-bottom: 2px;
  color: var(--color-red);
}
.btn-ghost-link:hover{ color: var(--color-red-dark); }
.hero .btn-ghost-link{ color: var(--color-white); }
.hero .btn-ghost-link:hover{ color: var(--color-off); }
.btn-disabled, .btn:disabled{ opacity:.45; pointer-events:none; }

/* ------------------------------ Ask dropdown ------------------------------ */
.ask-dropdown{ position:relative; display:inline-block; }
.ask-dropdown .ask-link .icon{ width:14px; height:14px; transition: transform var(--dur-fast) var(--ease-out); }
.ask-dropdown .ask-link[aria-expanded="true"] .icon{ transform: rotate(180deg); }
.ask-menu{
  position:absolute; left:0; top: calc(100% + 10px);
  min-width: 190px;
  background: var(--color-white);
  border: 1.5px solid var(--color-ink);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-flat);
  padding: 6px;
  z-index: 20;
}
.ask-menu-item{
  display:flex; align-items:center; gap:10px;
  padding: 9px 10px;
  border-radius: var(--r-sm);
  font-family: var(--font-body);
  font-weight: 600; font-size: 13.5px;
  color: var(--color-ink);
  transition: background var(--dur-fast);
}
.ask-menu-item:hover{ background: var(--color-off); }
.ask-menu-item .icon{ width:17px; height:17px; color: var(--color-green); }

/* ================================= HERO =================================== */
.hero{
  position:relative; overflow:hidden;
  background: var(--color-green);
  padding: 76px 0 84px;
  border-bottom: 2px solid var(--color-ink);
}
.hero-cardfield{
  position:absolute; inset:0;
  right: 8%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='168' height='168'%3E%3Crect width='168' height='168' fill='none' stroke='rgba(255,255,255,0.14)' stroke-width='1'/%3E%3C/svg%3E");
  opacity:.5;
}
.hero-layout{
  position:relative; z-index:1;
  display:grid; grid-template-columns: 1fr; gap: 24px;
  align-items:center;
}
@media (min-width: 880px){
  .hero-layout{ grid-template-columns: 1.08fr 1fr; gap: 14px; }
}
.hero-inner{ position:relative; max-width: 640px; }
.hero h1{
  font-family: var(--font-display);
  font-size: clamp(38px, 6vw, 68px);
  line-height: 1.02;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--color-white);
  margin: 20px 0 20px;
}
.hero h1 em{ font-style: normal; color: var(--color-white); font-weight:700; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.hero p.lede{
  font-size: 18px; color: rgba(255,255,255,.88); max-width: 52ch; margin-bottom: 34px;
}
.hero-ctas{ display:flex; flex-wrap:wrap; align-items:center; gap: 26px; }
/* Give the primary CTA the same underline accent as the ghost-link CTA beside it. */
/* On the green hero, the primary CTA must not be green-on-green —
   solid white with the register's hard offset shadow. */
.hero-ctas .btn-primary{
  background: var(--color-white); color: var(--color-ink);
  box-shadow: 4px 4px 0 rgba(23,19,15,.28);
}
.hero-ctas .btn-primary:hover{
  background: var(--color-off); color: var(--color-ink);
  transform: translateY(-2px);
  box-shadow: 6px 8px 0 rgba(23,19,15,.3);
}
@media (max-width:640px){
  .hero-ctas .btn-primary{ padding: 19px 34px; font-size: 16px; }
  .hero-ctas .btn-ghost-link{ font-size: 15.5px; }
}
.hero .eyebrow{ color: var(--color-white); }
.hero .eyebrow::before{ background: var(--color-white); }

/* ---- Hero card fan: 3-card depth-shuffle carousel of real pieces ---- */
.hero-fan{
  --cardw: 221px; /* 30% larger than the 170px base */
  --cardh: 309px; /* 2.5:3.5 ratio, matches physical card stock */
  --peek: 99px;
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:22px;
  justify-self:center;
  width:100%;
}
.stage{
  position:relative; width:100%; max-width: 546px;
  height: calc(var(--cardh) + 96px);
  perspective: 1500px;
  touch-action: pan-y;
}
.stage:focus-visible{
  outline: 2px solid var(--color-white); outline-offset: 8px; border-radius: var(--r-lg);
}
.card-slot{
  position:absolute; left:50%; top:50%;
  width: var(--cardw); height: var(--cardh);
  border:0; background:none; padding:0; cursor:pointer;
  transform-origin: 50% 60%;
  transition: transform .62s cubic-bezier(.22,.68,.24,1), opacity .5s ease, filter .5s ease;
  will-change: transform;
}
.card-slot:focus-visible{
  outline: 2px solid var(--color-white); outline-offset: 4px; border-radius: var(--r-lg);
}
/* fallback for any position beyond the ±2 named ones (e.g. ±3 with a 7-card set) — must come
   before the specific rules below so they can override it; keeps far cards centered, hidden, inert */
.card-slot[data-pos]{ transform: translate(-50%,-50%) translateZ(-220px) scale(.7); opacity:0; pointer-events:none; }
.card-slot[data-pos="0"]{ transform: translate(calc(-50% + var(--drag-x, 0px)), -50%) translateZ(110px) rotate(0) scale(1); z-index:40; opacity:1; pointer-events:auto; }
.card-slot[data-pos="-1"]{ transform: translate(calc(-50% - var(--peek) + var(--drag-x, 0px)), calc(-50% + 22px)) translateZ(-30px) rotate(-9deg) scale(.93); z-index:30; opacity:1; filter:brightness(.72); pointer-events:auto; }
.card-slot[data-pos="1"]{  transform: translate(calc(-50% + var(--peek) + var(--drag-x, 0px)), calc(-50% + 22px)) translateZ(-30px) rotate(9deg) scale(.93); z-index:30; opacity:1; filter:brightness(.72); pointer-events:auto; }
.card-slot[data-pos="-2"]{ transform: translate(calc(-50% - var(--peek)*1.5 + var(--drag-x, 0px)), calc(-50% + 40px)) translateZ(-150px) rotate(-14deg) scale(.82); z-index:10; opacity:0; }
.card-slot[data-pos="2"]{  transform: translate(calc(-50% + var(--peek)*1.5 + var(--drag-x, 0px)), calc(-50% + 40px)) translateZ(-150px) rotate(14deg) scale(.82); z-index:10; opacity:0; }
.card-slot:not([data-pos]){ opacity:0; pointer-events:none; }
.stage.is-dragging .card-slot{ transition: none; }
.card{
  display:block; position:relative; width:100%; height:100%;
  border-radius: var(--r-lg);
  overflow:hidden;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med);
  box-shadow: 0 26px 50px -24px rgba(23,19,15,.75);
}
.card-slot:hover .card,
.card-slot:focus-visible .card{ transform: translateY(-16px); }
.card-slot[data-pos="0"] .card{
  box-shadow: 0 40px 90px -30px rgba(23,19,15,.8), 0 0 46px -6px rgba(255,255,255,.4);
}
.card img{ width:100%; height:100%; object-fit:cover; border-radius: var(--r-lg); display:block; }

.fan-controls{ display:flex; align-items:center; justify-content:center; gap:18px; }
.fan-arrow{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border: 1.5px solid var(--color-line-onGreen);
  color: var(--color-white);
  transition: background var(--dur-fast), border-color var(--dur-fast);
  flex-shrink:0;
}
.fan-arrow:hover{ background: rgba(255,255,255,.14); border-color: var(--color-white); }
.fan-arrow .icon{ width:18px; height:18px; }
.fan-dots{ display:flex; align-items:center; gap:8px; }
.fan-dot{
  width:9px; height:9px; border-radius:50%;
  background: rgba(255,255,255,.4);
  border: 1.5px solid transparent;
  transition: background var(--dur-fast), transform var(--dur-fast);
}
.fan-dot[aria-current="true"]{ background: var(--color-white); transform: scale(1.25); }
.fan-dot:hover{ background: rgba(255,255,255,.7); }

@media (max-width: 640px){
  .hero-fan{ --cardw: 172px; --cardh: 240px; --peek: 75px; }
  .stage{ max-width: 390px; }
}
@media (max-width: 400px){
  .hero-fan{ --cardw: 140px; --cardh: 196px; --peek: 60px; }
}

/* ============================ CATEGORY GRID =============================== */
.section{ padding: 72px 0; }
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
  margin-bottom: 32px; flex-wrap:wrap;
}
.section-title{
  font-family: var(--font-display); font-weight:700;
  text-transform: uppercase; letter-spacing: -0.005em;
  font-size: clamp(26px, 3.2vw, 36px); margin-top:10px;
}
.category-layout{
  display:grid; grid-template-columns: 1fr; gap: 32px;
}
@media (min-width: 860px){
  .category-layout{ grid-template-columns: 260px 1fr; gap: 40px; align-items:start; }
  .category-intro{ position:sticky; top: 96px; }
}
.category-rotator-line{
  margin-top: 18px;
  font-family: var(--font-display); font-weight:700; text-transform:uppercase;
  font-size: clamp(17px, 1.9vw, 22px); line-height:1.3;
  color: var(--color-ink);
}
.rotator-word{
  display:inline-block;
  font-size: clamp(24px, 3vw, 34px);
  color: var(--color-green);
  transition: opacity .4s ease-in-out;
}
.rotator-word.is-leaving{ opacity:0; }
.rotator-word.is-entering{ opacity:0; }

.tile-grid{
  display:grid; grid-template-columns: repeat(2,1fr); gap: 14px;
}
@media (min-width: 560px){ .tile-grid{ grid-template-columns: repeat(3,1fr); } }

.cat-tile{
  position:relative; border-radius: var(--r-lg); overflow:hidden;
  aspect-ratio: 4 / 5;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding: 16px;
  color: var(--color-white);
  isolation:isolate;
  border: 1.5px solid var(--color-ink);
  box-shadow: 6px 6px 0 var(--color-ink);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med);
}
.cat-tile:hover{ transform: translateY(-5px); box-shadow: 9px 9px 0 var(--color-ink); }
.cat-tile::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background-size: cover; background-position: center;
  filter: brightness(1); transition: filter var(--dur-med) var(--ease-out);
}
.cat-tile:hover::before{ filter: brightness(1.06); }
.cat-tile::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background: rgba(0,0,0,.38);
  transition: background var(--dur-med) var(--ease-out);
}
.cat-tile:hover::after{ background: rgba(0,0,0,.26); }
.cat-tile .tile-label{ font-family: var(--font-display); font-weight:700; font-size: clamp(18px, 2.1vw, 24px); line-height:1.1; letter-spacing:.01em; text-transform:uppercase; text-shadow: 0 2px 10px rgba(0,0,0,.45); }
.cat-tile .tile-count{ font-family: var(--font-mono); font-size:12px; opacity:.9; margin-top:4px; }

/* per-category tile photo (real catalog imagery, not flat swatches) */
.bg-basketball::before{ background-image: url("images/categories/basketball.jpg"); }
.bg-baseball::before{ background-image: url("images/categories/baseball.jpg"); }
.bg-hockey::before{ background-image: url("images/categories/hockey.jpg"); }
.bg-football::before{ background-image: url("images/categories/american-football.jpg"); }
.bg-golf::before{ background-image: url("images/categories/golf.jpg"); }
.bg-f1::before{ background-image: url("images/categories/f1.jpg"); }
.bg-nascar::before{ background-image: url("images/categories/nascar.jpg"); }
.bg-pokemon::before{ background-image: url("images/categories/pokemon.jpg"); }
.bg-mtg::before{ background-image: url("images/categories/mtg.jpg"); }

/* direct-background variants (for plain elements: card media, thumbs, gallery) */
.media-basketball{ background: var(--cat-basketball); }
.media-baseball{ background: var(--cat-baseball); }
.media-hockey{ background: var(--cat-hockey); }
.media-football{ background: var(--cat-football); }
.media-golf{ background: var(--cat-golf); }
.media-f1{ background: var(--cat-f1); }
.media-nascar{ background: var(--cat-nascar); }
.media-pokemon{ background: var(--cat-pokemon); }
.media-mtg{ background: var(--cat-mtg); }

/* ============================ PRODUCT CARDS =============================== */
.rail{
  display:flex; gap: 18px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding: 10px 20px 14px; margin: 0 -20px;
}
.rail::-webkit-scrollbar{ height:6px; }
.rail::-webkit-scrollbar-thumb{ background: var(--color-line-strong); border-radius:99px; }
.rail .product-card{ scroll-snap-align:start; flex: 0 0 240px; }
@media (min-width:640px){ .rail .product-card{ flex-basis:260px; } }

.product-grid{
  display:grid; grid-template-columns: repeat(2,1fr); gap: 20px;
}
@media (min-width:640px){ .product-grid{ grid-template-columns: repeat(3,1fr); } }
@media (min-width:1180px){ .product-grid{ grid-template-columns: repeat(4,1fr); } }

.product-card{
  background: var(--color-white); color: var(--color-ink);
  border: 1.5px solid var(--color-ink);
  border-radius: var(--r-md);
  overflow:hidden;
  box-shadow: none;
  display:flex; flex-direction:column;
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med), filter var(--dur-med);
  position:relative;
}
.product-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-flat); }
.product-card .card-media{
  position:relative; aspect-ratio: 3/4; overflow:hidden;
}
.product-card .card-media .tile-pattern{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M0 12L12 0' stroke='rgba(255,255,255,0.18)' stroke-width='2'/%3E%3C/svg%3E"); }
.card-badge-row{
  position:absolute; top:10px; left:10px; right:10px;
  display:flex; align-items:flex-start; justify-content:space-between; gap:8px;
}
.card-badge{
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-family: var(--font-display); font-weight:700; font-size:11px; letter-spacing:.02em; text-transform:uppercase;
  background: var(--color-ink); color: var(--color-white);
  padding: 4px 9px; border-radius: 999px;
}
.avail-badge{
  flex-shrink:0;
  font-family: var(--font-display); font-size:10.5px; letter-spacing:.02em; text-transform:uppercase;
  padding: 4px 9px; border-radius: 999px; font-weight:700;
}
.avail-badge.is-reserved{ background: var(--amber-bg); color: var(--amber); }
.avail-badge.is-sold{ background: var(--sold-bg); color: var(--sold-gray); }
.avail-badge.is-available{ background: var(--available-bg); color: var(--available); }
.avail-badge.inline{ position:static; display:inline-flex; flex-shrink:initial; }

.product-card.is-reserved{ filter: saturate(.88) brightness(.94); }
.product-card.is-sold .card-media{ filter: grayscale(1) brightness(.85); }
.product-card.is-sold{ opacity:.72; }
.product-card.is-sold .btn-add-inquiry{ display:none; }
.product-card.is-sold .sold-note{
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; color: var(--color-ink-soft); padding: 0 14px 14px;
}

.card-body{ padding: 12px 14px 14px; display:flex; flex-direction:column; gap:8px; flex:1; }
.card-title{ font-weight:600; font-size:14.5px; line-height:1.3; }
.card-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.grade-chip{
  display:inline-flex; align-items:center; gap:5px;
  font-family: var(--font-mono); font-size:11px; font-weight:700;
  padding: 3px 8px; border-radius: var(--r-sm);
  background: transparent; color: var(--color-ink);
  border: 1.5px solid var(--color-ink);
}
.card-price{ font-family: var(--font-mono); font-weight:700; font-size:15px; font-variant-numeric: tabular-nums; }
.card-actions{ margin-top:auto; }
.btn-add-inquiry{
  width:100%; padding: 10px 14px; border-radius: var(--r-sm);
  background: var(--color-green); color: var(--color-white);
  font-weight:700; font-size:12.5px;
  text-transform: uppercase; letter-spacing:.02em;
  display:flex; align-items:center; justify-content:center; gap:6px;
  transition: background var(--dur-fast);
}
.btn-add-inquiry:hover{ background: var(--color-green-dark); }
.btn-add-inquiry.is-added{ background: var(--available); }
.btn-add-inquiry .icon{ width:15px; height:15px; }

/* ============================== TRUST BAND ================================ */
.trust-band{ background: var(--color-green); border-top:2px solid var(--color-ink); border-bottom:2px solid var(--color-ink); }
.trust-steps{
  display:grid; grid-template-columns: 1fr; gap: 28px;
  position:relative;
}
@media (min-width:860px){ .trust-steps{ grid-template-columns: repeat(3,1fr); gap: 8px; } }
.trust-step{ position:relative; padding: 0 8px 0 0; }
.trust-step .step-num{
  display:flex; align-items:center; justify-content:center;
  width: 46px; height:46px; border-radius:50%;
  border: 2px solid var(--color-white);
  color: var(--color-white);
  font-family: var(--font-display); font-weight:700;
  font-size:15px; letter-spacing:0;
  margin-bottom: 14px;
}
.trust-step h4{ font-family: var(--font-display); font-size:20px; font-weight:700; text-transform:uppercase; letter-spacing:.005em; margin: 0 0 8px; color: var(--color-white); }
.trust-step p{ color: rgba(255,255,255,.85); font-size:14.5px; max-width:34ch; }
.trust-step:not(:last-child)::after{
  content:"→";
  position:absolute; right:-6px; top: 12px;
  color: var(--color-white); font-size:20px; font-weight:700;
  display:none;
}
@media (min-width:860px){ .trust-step:not(:last-child)::after{ display:block; } }
.trust-note{
  margin-top:34px; padding-top:24px; border-top:1px solid var(--color-line-onGreen);
  font-size:14px; color: rgba(255,255,255,.85); display:flex; gap:10px; align-items:flex-start; max-width:70ch;
}
.trust-note .icon{ color: var(--color-white); margin-top:2px; }

/* ================================= FOOTER ================================= */
.site-footer{ background: var(--color-white); border-top: 4px solid var(--color-green); padding: 56px 0 28px; }
.footer-grid{
  display:grid; grid-template-columns: 1fr; gap: 40px;
}
@media (min-width:760px){ .footer-grid{ grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 24px; } }
.footer-about p{ color: var(--color-ink-soft); font-size:14px; max-width: 34ch; margin-top:14px; }
.footer-col h5{ font-family: var(--font-display); font-size:13px; letter-spacing:.04em; text-transform:uppercase; color: var(--color-green); margin-bottom:14px; font-weight:700; }
.footer-col ul{ display:flex; flex-direction:column; gap:9px; }
.footer-col a{ font-size:14px; color: var(--color-ink-soft); }
.footer-col a:hover{ color: var(--color-green); }
.footer-bottom{
  margin-top: 44px; padding-top:22px; border-top:1px solid var(--color-line);
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
  font-size:12.5px; color: var(--color-ink-soft);
}

/* ============================= BREADCRUMB ================================= */
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13px; color: var(--color-ink-soft); flex-wrap:wrap; }
.breadcrumb a:hover{ color: var(--color-green); }
.breadcrumb .sep{ opacity:.5; }
.breadcrumb .current{ color: var(--color-ink); font-weight:600; }

/* ========================== CATEGORY PAGE LAYOUT =========================== */
.cat-header{ padding: 40px 0 32px; background: var(--color-green); border-bottom: 2px solid var(--color-ink); }
.cat-header .breadcrumb{ color: rgba(255,255,255,.8); }
.cat-header .breadcrumb a:hover{ color: var(--color-white); }
.cat-header .breadcrumb .current{ color: var(--color-white); }
.cat-header .section-title{ margin-top:10px; color: var(--color-white); }
.cat-header p{ color: rgba(255,255,255,.88); max-width: 60ch; margin-top:10px; }

.cat-layout{
  display:grid; grid-template-columns: 1fr; gap: 32px;
  padding: 32px 0 80px;
}
@media (min-width: 960px){ .cat-layout{ grid-template-columns: 260px 1fr; gap: 40px; } }

.filters-panel{ display:none; }
@media (min-width:960px){
  .filters-panel{
    display:block; align-self:start; position:sticky; top: calc(var(--header-h) + 20px);
  }
}
.filter-group{ padding: 18px 0; border-bottom:1px solid var(--color-line); }
.filter-group:first-child{ padding-top:0; }
.filter-group h4{ font-size:12.5px; font-weight:700; margin-bottom:12px; letter-spacing:.04em; text-transform:uppercase; font-family: var(--font-display); }
.filter-option{ display:flex; align-items:center; gap:9px; padding:6px 0; font-size:13.5px; color: var(--color-ink-soft); }
.filter-option input{ accent-color: var(--color-green); width:15px; height:15px; }
.filter-option:hover{ color: var(--color-ink); }
.range-row{ display:flex; align-items:center; gap:8px; }
.range-row input{
  width:100%; background: var(--color-off); border:1px solid var(--color-line);
  border-radius: var(--r-sm); padding:8px 10px; color:var(--color-ink); font-size:13px;
}

.filter-search{ position:relative; }
.filter-search-input{
  width:100%; background: var(--color-off); border:1px solid var(--color-line);
  border-radius: var(--r-sm); padding:8px 10px; color:var(--color-ink); font-size:13px;
  transition: border-color var(--dur-fast);
}
.filter-search-input:focus{ outline:none; border-color: var(--color-green); }
.filter-suggestions{
  position:absolute; left:0; right:0; top: calc(100% + 4px);
  background: var(--color-white); border:1.5px solid var(--color-ink);
  border-radius: var(--r-sm); box-shadow: var(--shadow-flat);
  max-height: 220px; overflow-y:auto; z-index: 15;
}
.filter-suggestion-item{
  display:block; width:100%; text-align:left; padding:8px 10px;
  font-size:13px; color: var(--color-ink);
}
.filter-suggestion-item:hover{ background: var(--color-off); }

.filter-category-picker{ padding-top:0; }
.category-picker-row{ display:flex; flex-wrap:wrap; gap:8px; }
.category-picker-item{
  display:flex; align-items:center; gap:7px;
  padding:7px 12px; border-radius:99px;
  border:1.5px solid var(--color-line-strong);
  font-size:12.5px; font-weight:600; color: var(--color-ink-soft);
  transition: border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);
}
.category-picker-item .icon{ width:15px; height:15px; }
.category-picker-item:hover{ border-color: var(--color-green); color: var(--color-ink); }
.category-picker-item.is-active{ border-color: var(--color-green); background: var(--color-green-tint); color: var(--color-ink); }

.pagination{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:32px; }
.pagination-label{ font-family: var(--font-mono); font-size:13px; color: var(--color-ink-soft); }
.pagination .btn{ padding:10px 18px; font-size:13px; }

.filters-toggle{ display:flex; margin-bottom:18px; }
@media (min-width:960px){ .filters-toggle{ display:none; } }
.filters-toggle .btn{ gap:10px; }

.chips-row{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; min-height: 0; }
.chips-row[hidden]{ display:none; }
.chip{
  display:inline-flex; align-items:center; gap:7px;
  background: var(--color-off); border:1px solid var(--color-line-strong);
  padding: 6px 8px 6px 13px; border-radius:999px; font-size:12.5px;
}
.chip button{ display:flex; width:16px; height:16px; align-items:center; justify-content:center; border-radius:50%; background: rgba(23,19,15,.08); }
.chip button:hover{ background: var(--color-green); color: var(--color-white); }
.chip .icon{ width:11px; height:11px; }
.chip.clear-all{ color: var(--color-red); font-weight:700; background:none; border-color:transparent; padding-left:6px; }

.grid-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom: 20px; flex-wrap:wrap; }
.result-count{ font-size:13.5px; color: var(--color-ink-soft); }
.sort-select{
  display:flex; align-items:center; gap:8px;
  background: var(--color-white); border:1px solid var(--color-line-strong);
  padding: 9px 14px; border-radius: var(--r-sm); font-size:13.5px;
}
.sort-select select{ background:none; border:none; outline:none; color:var(--color-ink); }
.sort-select select option{ background: var(--color-white); }

/* Mobile filter sheet */
.filter-sheet{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  background: var(--color-white);
  border-top-left-radius: 18px; border-top-right-radius:18px;
  max-height: 86vh; overflow-y:auto;
  transform: translateY(100%);
  transition: transform var(--dur-slow) var(--ease-out);
  box-shadow: 0 -4px 0 rgba(23,19,15,.08);
  border-top: 2px solid var(--color-ink);
}
.filter-sheet.is-open{ transform: translateY(0); }
.filter-sheet-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 16px 20px; border-bottom:1px solid var(--color-line);
  position:sticky; top:0; background:var(--color-white);
}
.filter-sheet-body{ padding: 6px 20px 20px; }
.filter-sheet-foot{ padding:16px 20px; display:flex; gap:12px; border-top:1px solid var(--color-line); position:sticky; bottom:0; background:var(--color-white); }
.sheet-drag{ width:40px; height:4px; background: var(--color-line-strong); border-radius:99px; margin: 10px auto 0; }

/* =============================== PRODUCT PAGE ============================== */
.product-layout{
  display:grid; grid-template-columns:1fr; gap: 44px;
  padding: 32px 0 88px;
}
@media (min-width:960px){ .product-layout{ grid-template-columns: 1.05fr 1fr; gap:56px; } }

.gallery-main{
  position:relative; aspect-ratio: 4/5; border-radius: var(--r-lg); overflow:hidden;
  border: 1.5px solid var(--color-ink);
  background: var(--cat-basketball);
}
.gallery-main .tile-pattern{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M0 16L16 0' stroke='rgba(255,255,255,0.16)' stroke-width='2'/%3E%3C/svg%3E"); }
.gallery-main .gallery-tag{
  position:absolute; bottom:16px; left:16px;
  font-family: var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  background: var(--color-ink); color: var(--color-white); padding:6px 12px; border-radius:999px;
}
.gallery-main.gallery-main-pair{
  aspect-ratio: unset; display:grid; grid-template-columns:1fr 1fr; gap:10px;
  border:0; background:none;
}
.gallery-pair-item{
  position:relative; aspect-ratio: 4/5; border-radius: var(--r-lg); overflow:hidden;
  border: 1.5px solid var(--color-ink); display:block;
}
.gallery-pair-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery-pair-label{
  position:absolute; bottom:10px; left:10px;
  font-family: var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  background: var(--color-ink); color: var(--color-white); padding:5px 10px; border-radius:999px;
}
.thumb-strip{ display:flex; gap:10px; margin-top:12px; }
.thumb{
  width:74px; height:74px; border-radius: var(--r-sm); overflow:hidden; position:relative;
  border: 2px solid var(--color-line); opacity:.7; transition: opacity var(--dur-fast), border-color var(--dur-fast);
  flex-shrink:0;
}
.thumb.is-active{ opacity:1; border-color: var(--color-green); }
.thumb:hover{ opacity:1; }
.thumb span{ position:absolute; bottom:3px; left:0; right:0; text-align:center; font-family:var(--font-mono); font-size:8.5px; color:#fff; text-transform:uppercase; }
.thumb-front{ background: var(--cat-basketball); }
.thumb-back{ background: var(--color-ink); }
.thumb-detail{ background: var(--color-red); }

.product-title-block{ border-bottom:1px solid var(--color-line); padding-bottom:24px; margin-bottom:24px; }
.product-title-block .breadcrumb{ margin-bottom:18px; }
.product-title-block .player{ font-family: var(--font-display); font-weight:700; text-transform:uppercase; font-size: clamp(26px,3.4vw,38px); line-height:1.05; }
.product-title-block .subtitle{ margin-top:8px; font-size:15px; color: var(--color-ink-soft); }
.product-title-block .subtitle span{ color: var(--color-ink); font-weight:600; }

.grading-slab{
  display:flex; align-items:center; gap:16px;
  background: var(--color-off); border:1px solid var(--color-line);
  border-radius: var(--r-md); padding: 16px 18px; margin-bottom:20px;
}
.grading-slab .slab-mark{
  width:54px; height:54px; border-radius: 50%;
  border: 2px solid var(--color-green); color: var(--color-ink);
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  font-family: var(--font-mono); font-weight:700; flex-shrink:0;
}
.grading-slab .slab-mark strong{ font-size:18px; line-height:1; }
.grading-slab .slab-mark small{ font-size:7.5px; letter-spacing:.08em; margin-top:2px; }
.grading-slab .slab-text strong{ display:block; font-size:15px; font-weight:700; }
.grading-slab .slab-text span{ font-size:12.5px; color: var(--color-ink-soft); font-family: var(--font-mono); }

.provenance{ display:flex; gap:10px; font-size:13.5px; color: var(--color-ink-soft); margin-bottom:24px; }
.provenance .icon{ color: var(--color-green); flex-shrink:0; margin-top:2px; }

.price-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:6px; flex-wrap:wrap; }
.price-value{ font-family: var(--font-mono); font-size: 30px; font-weight:700; font-variant-numeric: tabular-nums; }
.price-value sup{ font-size:14px; color: var(--color-ink-soft); font-family: var(--font-body); margin-left:4px; }

.product-ctas{ margin-top:20px; }
.product-ctas .microcopy{ font-size:12.5px; color: var(--color-ink-soft); margin-top:12px; max-width:46ch; }
.ask-link{ display:inline-flex; margin-top:16px; }

.related-head{ margin-bottom:24px; }

/* =============================== CONTACT PAGE ================================ */
.contact-grid{ display:grid; grid-template-columns: 1fr; gap:20px; margin-bottom:40px; max-width: 560px; }
.contact-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  padding:26px 22px; background: var(--color-white);
  border: 1.5px solid var(--color-ink); border-radius: var(--r-lg);
  box-shadow: var(--shadow-flat);
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
}
.contact-card:hover{ transform: translateY(-4px); box-shadow: 5px 5px 0 rgba(23,19,15,.18); }
.contact-card h3{ font-family: var(--font-display); font-size:16px; text-transform:uppercase; letter-spacing:.01em; }
.contact-card p{ font-size:14px; color: var(--color-ink-soft); }
.contact-card .btn-ghost-link{ margin-top:auto; padding-top:6px; }
.contact-icon{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--color-off); color: var(--color-green);
  border: 1.5px solid var(--color-green);
  flex-shrink:0;
}
.contact-icon .icon{ width:20px; height:20px; }
.contact-visit{ display:grid; grid-template-columns: repeat(2, 1fr); gap:20px; padding-top:32px; border-top:1.5px solid var(--color-line); }
.contact-visit-item{ display:flex; align-items:flex-start; gap:14px; }
.contact-visit-item h4{ font-family: var(--font-display); font-size:14px; text-transform:uppercase; letter-spacing:.01em; margin-bottom:4px; }
.contact-visit-item p{ font-size:14px; color: var(--color-ink-soft); }
.contact-note{ margin-top:24px; max-width:60ch; }
@media (max-width: 780px){
  .contact-grid{ grid-template-columns: 1fr; }
  .contact-visit{ grid-template-columns: 1fr; }
}

/* =============================== INQUIRY DRAWER ============================= */
.inquiry-drawer{
  position:fixed; top:0; right:0; bottom:0; width: min(420px, 92vw);
  background: var(--color-white); color: var(--color-ink);
  z-index: 80;
  transform: translateX(100%);
  transition: transform var(--dur-slow) var(--ease-out);
  display:flex; flex-direction:column;
  box-shadow: var(--shadow-panel);
  border-left: 1px solid var(--color-line);
}
.inquiry-drawer.is-open{ transform: translateX(0); }
.drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 22px; border-bottom:2px solid var(--color-ink);
}
.drawer-head h3{ font-family: var(--font-display); font-size:19px; font-weight:700; text-transform:uppercase; }
.drawer-head .close-btn{ width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.drawer-head .close-btn:hover{ background: var(--color-off); }

.drawer-body{ flex:1; overflow-y:auto; padding: 6px 22px 18px; }

.drawer-empty{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding: 60px 20px; gap:14px; color: var(--color-ink-soft);
}
.drawer-empty .empty-icon{
  width:64px; height:64px; border-radius:50%; background: var(--color-white);
  border: 1.5px solid var(--color-green);
  display:flex; align-items:center; justify-content:center; color: var(--color-green);
}
.drawer-empty h4{ font-family: var(--font-display); font-size:18px; color: var(--color-ink); font-weight:700; text-transform:uppercase; }
.drawer-empty p{ font-size:13.5px; max-width:28ch; }

.inquiry-item{
  display:grid; grid-template-columns: 60px 1fr auto; gap:12px;
  padding: 14px 0; border-bottom: 1px solid var(--color-line);
  align-items:flex-start;
}
.inquiry-item .item-thumb{ width:60px; height:60px; border-radius: var(--r-sm); }
.inquiry-item .item-title{ font-size:13.5px; font-weight:600; line-height:1.3; }
.inquiry-item .item-meta{ display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
.inquiry-item .item-price{ font-family: var(--font-mono); font-weight:700; font-size:13.5px; margin-top:6px; }
.inquiry-item .remove-btn{
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color: var(--color-ink-soft);
}
.inquiry-item .remove-btn:hover{ background: var(--color-off); color: var(--color-green-deep); }
.inquiry-item .remove-btn .icon{ width:14px; height:14px; }
.mini-badge{
  font-family: var(--font-mono); font-size:9.5px; letter-spacing:.05em; text-transform:uppercase;
  padding:2px 7px; border-radius:999px; font-weight:700;
}
.mini-badge.is-reserved{ background: var(--amber-bg); color: var(--amber); }
.mini-badge.is-sold{ background: var(--sold-bg); color: var(--sold-gray); }
.mini-badge.is-available{ background: var(--available-bg); color: var(--available); }

.drawer-summary{ padding: 16px 22px; border-top:2px solid var(--color-ink); background: var(--color-off); }
.summary-row{ display:flex; align-items:center; justify-content:space-between; font-size:13.5px; margin-bottom:4px; }
.summary-row strong{ font-family: var(--font-mono); font-size:17px; }
.summary-note{ font-size:11.5px; color: var(--color-ink-soft); margin-bottom:16px; }

.inquiry-form{ display:flex; flex-direction:column; gap:14px; margin-top:4px; }
.form-field{ display:flex; flex-direction:column; gap:6px; }
.form-field label{ font-size:12.5px; font-weight:700; }
.form-field input, .form-field select, .form-field textarea{
  border: 1px solid var(--color-line-strong); background: var(--color-white);
  border-radius: var(--r-sm); padding: 10px 12px; font-size:13.5px; outline:none;
  transition: border-color var(--dur-fast);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color: var(--color-red); }
.form-field textarea{ resize: vertical; min-height:64px; }
.form-hint{ font-size:11.5px; color: var(--color-ink-soft); }

.drawer-confirm{ padding: 8px 0 4px; display:flex; flex-direction:column; gap:14px; text-align:left; }
.drawer-confirm .confirm-icon{
  width:52px; height:52px; border-radius:50%; background: var(--available-bg); color: var(--available);
  display:flex; align-items:center; justify-content:center; margin-bottom:4px;
}
.drawer-confirm h4{ font-family: var(--font-display); font-size:19px; font-weight:700; text-transform:uppercase; }
.drawer-confirm p{ font-size:13.5px; color: var(--color-ink-soft); }
.whatsapp-btn{ background:#1f7a4a; color:#fff; }
.whatsapp-btn:hover{ background:#25915a; }

.hidden{ display:none !important; }

/* ------------------------------ small helpers ------------------------------ */
.stack-8{ display:flex; flex-direction:column; gap:8px; }
.center-note{ text-align:center; color: var(--color-ink-soft); font-size:13.5px; margin-top:18px; }

@media (max-width: 640px){
  .section{ padding: 52px 0; }
  .hero{ padding: 56px 0 60px; }
}

/* ============================ SPLASH SCREEN ================================ */
.cdb-splash {
  position: fixed; inset: 0; z-index: 999;
  display: grid; place-items: center;
  background: var(--color-green);
  overflow: hidden;
  transition: background-color .55s ease;
}
.cdb-splash.cdb-bgout { background-color: transparent; }

.cdb-stage { position: relative; width: 244px; height: 342px; perspective: 1400px; }
@media (max-width: 480px) { .cdb-stage { width: 208px; height: 291px; } }

.cdb-slot {
  position: absolute; left: 50%; top: 50%; width: 100%; height: 100%;
  transform-origin: 50% 60%; opacity: 0;
  transform: translate(-50%,-50%) translateZ(-40px) scale(.9);
  transition: transform .74s cubic-bezier(.3,.7,.2,1), opacity .55s ease, filter .55s ease;
  will-change: transform, opacity;
}
.cdb-card { width: 100%; height: 100%; border-radius: var(--r-lg); background: var(--color-white); border: 1.5px solid var(--color-ink); box-shadow: 6px 6px 0 var(--color-ink); }

/* fade into a fan */
.cdb-stage.in .cdb-slot[data-pos="0"]  { opacity: 1; transform: translate(-50%,-50%) translateZ(90px) rotate(0) scale(1); z-index: 30; }
.cdb-stage.in .cdb-slot[data-pos="-1"] { opacity: 1; transform: translate(calc(-50% - 66px), calc(-50% + 16px)) translateZ(-40px) rotate(-8deg) scale(.95); z-index: 20; filter: brightness(.93); }
.cdb-stage.in .cdb-slot[data-pos="1"]  { opacity: 1; transform: translate(calc(-50% + 66px), calc(-50% + 16px)) translateZ(-40px) rotate(8deg) scale(.95); z-index: 20; filter: brightness(.93); }
/* settle into a stack */
.cdb-stage.reveal .cdb-slot[data-pos="0"]  { transform: translate(-50%,-50%) translateZ(60px) rotate(-2deg) scale(1); z-index: 30; filter: none; }
.cdb-stage.reveal .cdb-slot[data-pos="-1"] { transform: translate(calc(-50% - 12px), calc(-50% + 6px)) translateZ(24px) rotate(-6deg) scale(.99); z-index: 20; filter: brightness(.97); }
.cdb-stage.reveal .cdb-slot[data-pos="1"]  { transform: translate(calc(-50% + 13px), calc(-50% + 10px)) translateZ(6px) rotate(4deg) scale(.98); z-index: 20; filter: brightness(.97); }
/* launch upward off-screen */
.cdb-stage.up .cdb-slot { transition: transform .82s cubic-bezier(.55,0,.85,.36), opacity .5s ease; }
/* launch order: left card first, then right, then middle */
.cdb-stage.up .cdb-slot[data-pos="-1"] { transform: translate(-50%, -170vh) translateZ(24px) rotate(-6deg) scale(.99); transition-delay: 0s; }
.cdb-stage.up .cdb-slot[data-pos="1"]  { transform: translate(-50%, -170vh) translateZ(6px) rotate(4deg) scale(.98); transition-delay: .08s; }
.cdb-stage.up .cdb-slot[data-pos="0"]  { transform: translate(-50%, -170vh) translateZ(60px) rotate(-2deg) scale(1); transition-delay: .15s; }


/* ------------------------- Motion (added 2026-07-20) ------------------------- */
/* Hero entrance — pure CSS keyframes: always runs to completion, no JS
   dependency, so it fails open by definition. Respects the global
   prefers-reduced-motion kill switch at the top of this file. */
@keyframes rise-in{
  from{ opacity:.001; transform: translateY(16px); }
  to{ opacity:1; transform:none; }
}
.hero-inner > *{ animation: rise-in var(--dur-slow) var(--ease-out) backwards; }
.hero-inner > *:nth-child(2){ animation-delay: 70ms; }
.hero-inner > *:nth-child(3){ animation-delay: 140ms; }
.hero-inner > *:nth-child(4){ animation-delay: 210ms; }
.hero-fan{ animation: rise-in 520ms var(--ease-out) 160ms backwards; }

/* Scroll reveals — JS adds .reveal-pending ONLY to elements still below the
   viewport after load, so content is fully visible without JS and at first
   paint (fail-open). A safety timeout in script.js reveals everything anyway. */
.reveal-pending{ opacity:0; transform: translateY(18px); }
.reveal-in{
  opacity:1; transform:none;
  transition: opacity 480ms var(--ease-out), transform 480ms var(--ease-out);
}


/* --------------------- Contact: message composer (2026-07-20) --------------------- */
.compose-panel{
  background: var(--color-white);
  border: 1.5px solid var(--color-ink);
  border-radius: var(--r-md);
  box-shadow: 6px 6px 0 rgba(23,19,15,.12);
  padding: 28px;
  max-width: 720px;
}
.compose-sentence{
  font-size: 19px; line-height: 2.1;
  color: var(--color-ink);
}
.compose-input, .compose-select{
  font: inherit; color: var(--color-ink);
  background: transparent;
  border: none; border-bottom: 2px solid var(--color-green);
  border-radius: 0;
  padding: 2px 6px;
  min-width: 130px;
}
.compose-input:focus, .compose-select:focus{ outline: none; border-bottom-color: var(--color-ink); background: var(--color-off); }
.compose-input-wide{ min-width: 220px; }
.compose-select{ cursor: pointer; }
.compose-preview{
  margin-top: 18px;
  background: var(--color-off);
  border-left: 4px solid var(--color-green);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  padding: 14px 16px;
  font-size: 15px; color: var(--color-ink-soft);
  white-space: pre-wrap;
}
.compose-actions{ display:flex; flex-wrap:wrap; gap: 12px; margin-top: 20px; }
.compose-copied{ margin-top: 10px; color: var(--color-green-dark); font-weight: 600; }
@media (max-width: 560px){
  .compose-panel{ padding: 20px; }
  .compose-sentence{ font-size: 17px; }
  .compose-actions .btn{ width: 100%; }
}


/* ------------------------- Legal pages (2026-07-20) ------------------------- */
.legal-body{ max-width: 680px; }
.legal-body h2{ margin: 28px 0 8px; font-size: 20px; }
.legal-body p{ margin: 0 0 12px; color: var(--color-ink-soft); line-height: 1.65; }
.footer-legal-links{ display:inline-flex; gap: 14px; }
.footer-legal-links a{ text-decoration: underline; text-underline-offset: 3px; }

.compose-section .section-head{ display:block; margin-bottom: 22px; }
.compose-section .section-head .section-title{ margin: 6px 0 4px; }
.compose-section .section-sub{ color: var(--color-ink-soft); margin: 0; }


/* ---------------- Full-screen menu overlay (2026-07-20, replaces side drawer) ---------------- */
.menu-overlay{
  position:fixed; inset:0; z-index:1000;
  background: var(--color-ink); color: var(--color-off);
  display:flex; flex-direction:column;
  padding: 18px 24px 24px;
  clip-path: inset(0 0 100% 0);
  pointer-events:none; visibility:hidden;
  transition: clip-path .32s var(--ease-out), visibility 0s linear .32s;
}
.menu-overlay.is-open{
  clip-path: inset(0 0 0 0);
  pointer-events:auto; visibility:visible;
  transition: clip-path .55s var(--ease-out), visibility 0s;
}
.menu-overlay-head{ display:flex; justify-content:space-between; align-items:center; }
.menu-overlay-brand{
  font-family: var(--font-display); font-weight:700; font-size:18px;
  text-transform:uppercase; letter-spacing:.06em; color: var(--color-green);
}
.menu-overlay-close{
  background:none; border:none; cursor:pointer; padding:12px 0;
  font-family: var(--font-display); font-weight:700; font-size:12px;
  letter-spacing:.12em; text-transform:uppercase; color: var(--color-off);
}
.menu-overlay-close:hover{ color: var(--color-green); }
.menu-overlay-body{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:34px; overflow-y:auto; }
.menu-big-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.menu-big-list a{
  display:flex; align-items:baseline; gap:18px;
  font-family: var(--font-display); font-weight:700;
  font-size: clamp(32px, 9vw, 56px); line-height:1.06;
  text-transform:uppercase; letter-spacing:.01em;
  color: var(--color-off); text-decoration:none; padding:8px 0;
  opacity:0; transform: translateY(26px);
  transition: opacity .2s var(--ease-out), transform .2s var(--ease-out), color .15s;
}
.menu-overlay.is-open .menu-big-list a{ opacity:1; transform:none; transition: opacity .5s var(--ease-out), transform .5s var(--ease-out), color .15s; }
.menu-overlay.is-open .menu-big-list li:nth-child(1) a{ transition-delay:.12s,.12s,0s; }
.menu-overlay.is-open .menu-big-list li:nth-child(2) a{ transition-delay:.18s,.18s,0s; }
.menu-overlay.is-open .menu-big-list li:nth-child(3) a{ transition-delay:.24s,.24s,0s; }
.menu-overlay.is-open .menu-big-list li:nth-child(4) a{ transition-delay:.30s,.30s,0s; }
.menu-big-list a:hover, .menu-big-list a:active{ color: var(--color-green); }
.menu-big-list .num{
  font-size:13px; letter-spacing:.12em; color: var(--color-green);
  font-variant-numeric: tabular-nums;
}
.menu-cats{ display:grid; grid-template-columns:1fr 1fr; gap:20px 28px; }
.menu-cats-col{ display:flex; flex-direction:column; gap:9px; }
.menu-cats-label{
  font-family: var(--font-display); font-weight:700; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color: var(--color-green);
  margin-bottom:2px;
}
.menu-cats a{ color: var(--color-off-2); text-decoration:none; font-size:15.5px; padding:3px 0; }
.menu-cats a:hover{ color: var(--color-green); }
.menu-overlay-foot .mobile-search{ display:flex; }
.menu-overlay .mobile-search input{ background: rgba(255,255,255,.08); color: var(--color-off); border-color: rgba(246,241,233,.25); }
.menu-overlay .mobile-search input::placeholder{ color: rgba(246,241,233,.55); }
body.menu-locked{ overflow:hidden; }
@media (min-height:760px){ .menu-big-list{ gap:8px; } }

/* Inquiry-list thumbnails: show the real product photo when we have one. */
.inquiry-item .item-thumb{ overflow:hidden; }
.inquiry-item .item-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Product photo lightbox (tap main image to view full-size, uncropped). */
.gallery-main img{ cursor: zoom-in; }
.lightbox-overlay{ position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(10,10,10,.92); opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s ease; }
.lightbox-overlay.is-open{ opacity:1; visibility:visible; }
.lightbox-overlay img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:6px; box-shadow:0 12px 48px rgba(0,0,0,.5); }
.lightbox-close{ position:absolute; top:16px; right:16px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:999px; border:none; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; transition:background .15s ease; }
.lightbox-close:hover{ background:rgba(255,255,255,.28); }
.lightbox-close .icon{ width:22px; height:22px; }
