/* V_CODE visual catalog: original photography, quiet surfaces, electric accents. */
.v21-photo-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px;margin:16px 0 28px}
.v21-photo-tile{appearance:none;border:1px solid var(--border,rgba(130,150,180,.2));background:var(--card,#17202d);color:var(--text,#fff);border-radius:22px;min-width:0;padding:10px 10px 14px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s;overflow:hidden}
.v21-photo-tile:hover{transform:translateY(-3px);border-color:#3284ff;box-shadow:0 8px 24px #087dff18}
.v21-photo-tile:focus-visible{outline:3px solid #3284ff;outline-offset:3px}
.v21-tile-visual{width:100%;aspect-ratio:1.2;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:15px;overflow:hidden;color:#121826;font-size:clamp(13px,3vw,21px);font-weight:800;overflow-wrap:anywhere}
.v21-tile-visual img{display:block;width:100%;height:100%;object-fit:contain;padding:8px;box-sizing:border-box}
.v21-photo-tile strong{font-size:clamp(12px,3vw,16px);line-height:1.25;overflow-wrap:anywhere;font-weight:650}
.v21-photo-tile small{font-size:11px;color:var(--muted,#8c9aae);line-height:1.3}
.v21-wordmark{padding:12px;box-sizing:border-box}
html[data-theme="light"] .v21-photo-tile{background:#fff;border-color:#dce5f1;color:#142036}
.catalog-breadcrumbs{flex-wrap:wrap;row-gap:6px}
@media(min-width:700px){.v21-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px}.v21-photo-tile{padding:14px 14px 18px}}
@media(max-width:350px){.v21-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(prefers-reduced-motion:reduce){.v21-photo-tile{transition:none}.v21-photo-tile:hover{transform:none}}

/* V21 review correction: contain the full image inside a definite media box. */
.product-card .product-image-wrap { position:relative; background:#fff; }
.product-card .product-image-wrap > .product-image {
  position:absolute; inset:0; display:block; width:100%; height:100%;
  max-width:100%; max-height:100%; min-width:0; min-height:0;
  object-fit:contain; object-position:center; box-sizing:border-box;
  padding:18px 24px; background:transparent;
}
.product-card.has-official-image .product-image-wrap,
html[data-theme="light"] .product-card .product-image-wrap { background:#fff; }
/* Keep intrinsic image dimensions from stretching the gallery past its frame. */
.v14-sheet-media .product-gallery { position:absolute; inset:0; height:100%; }
.v14-sheet-media .gallery-track { height:100%; }
.v14-sheet-media .gallery-slide { position:relative; height:100%; min-width:0; min-height:0; aspect-ratio:auto; overflow:hidden; }
.v14-sheet-media .gallery-slide img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; max-width:100%; max-height:100%; padding:18px; box-sizing:border-box; object-fit:contain; object-position:center; }
@media(max-width:560px) {
  .product-card .product-image-wrap > .product-image { padding:12px 16px; }
}

/* V_CODE catalogue refinement: photo-led discovery and progressive filters. */
:root { --v22-cyan:#69dfd4; --v22-ink:#102238; }
html:not([data-theme="light"]) { --bg:#080d16; --surface:#101824; --surface-2:#131e2c; --surface-3:#1a293b; --text:#eef4fa; --muted:#a0afbf; --line:#ffffff17; --topbar-bg:#080d16; }
.topbar { margin-bottom:20px; }
.brand-lockup b { letter-spacing:.15em; }
.kicker { color:var(--v22-cyan); font-size:10px; letter-spacing:.17em; }
.section-head h2 { letter-spacing:-.04em; }
.hero { min-height:300px; border:1px solid #42628a55; border-radius:26px; }
.hero>img { opacity:.58; object-position:85% center; }
.hero-overlay { background:linear-gradient(90deg,#07192cec 0%,#07192cb8 48%,#0e244742 100%); }
.hero .eyebrow { color:#9eece0; font-size:10px; letter-spacing:.14em; }
.hero-copy { bottom:25px; left:25px; }
.hero h1 { font-size:clamp(34px,5vw,56px); max-width:650px; margin:14px 0 13px; }
.hero p { color:#c7d8e7; font-size:14px; }
.hero .primary-btn { background:#9aeee2; color:#092b32; border:0; font-weight:750; box-shadow:none; min-height:46px; }
.search-box { border-radius:15px; border:1px solid var(--line); box-shadow:none; min-height:52px; }
.home-search { margin-top:18px; }
.page-head { padding-top:5px; margin-bottom:18px; }
.page-head h1 { font-size:clamp(32px,5vw,48px); letter-spacing:-.05em; margin:8px 0; }
.page-head p { font-size:13px; line-height:1.5; }
.catalog-mode { padding:4px; border-radius:13px; background:var(--surface-2); }
.catalog-mode button { min-height:38px; border-radius:9px; font-size:13px; }
.catalog-mode button.active { background:#daeaf6; color:#142c43; box-shadow:none; }
.v22-filter-panel { margin:12px 0 20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.v22-filter-panel>summary,.v22-brand-directory>summary { cursor:pointer; padding:14px 16px; color:var(--text); font-size:13px; font-weight:650; min-height:46px; box-sizing:border-box; }
.v22-filter-panel>summary::marker,.v22-brand-directory>summary::marker { color:var(--v22-cyan); }
.v22-filter-panel[open]>summary { border-bottom:1px solid var(--line); }
.v22-filter-panel .v19-filters { padding:14px 14px 0; margin:0; }
.v22-filter-panel .catalog-tools { padding:14px; margin:0; }
.v22-filter-panel .compact-select select { min-height:44px; }
.v22-brand-directory { margin:4px 0 30px; border:1px solid var(--line); border-radius:15px; background:var(--surface); }
.v22-brand-directory>summary { padding:16px; }
.v22-brand-search { box-sizing:border-box; width:calc(100% - 28px); margin:0 14px 12px; min-height:46px; padding:10px 13px; background:var(--surface-2); color:var(--text); border:1px solid var(--line); border-radius:10px; font:inherit; font-size:14px; }
.v22-brand-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 14px 14px; gap:7px; max-height:420px; overflow-y:auto; overscroll-behavior:contain; }
.v22-brand-link { display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-height:62px; text-align:left; padding:11px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); color:var(--text); font:inherit; cursor:pointer; }
.v22-brand-link strong { font-size:13px; overflow-wrap:anywhere; }
.v22-brand-link small { color:var(--muted); font-size:11px; }
.v22-directory-empty { grid-column:1/-1; font-size:13px; color:var(--muted); }
.v21-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px; margin:18px 0 18px; }
.v21-photo-tile { padding:0 0 15px; gap:5px; border:1px solid var(--line); border-radius:19px; background:var(--surface); align-items:flex-start; text-align:left; }
.v21-photo-tile>.v21-tile-visual { border-radius:0; aspect-ratio:1.22; background:#f3f5f7; margin-bottom:7px; }
.v21-photo-tile>.v21-tile-visual img { padding:13px; }
.v21-photo-tile>strong { padding:0 13px; font-size:17px; letter-spacing:-.025em; }
.v21-photo-tile>small { padding:0 13px; font-size:11px; color:var(--muted); }
.v21-photo-tile:nth-child(3n) { border-bottom-color:#71d2c866; }
.v21-photo-tile:nth-child(3n+1) { border-bottom-color:#7c9ff366; }
.v21-photo-grid>.v21-photo-tile:first-child:not(.v22-text-tile) { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.05fr; grid-template-rows:1fr 1fr; min-height:150px; padding:0; gap:0; background:linear-gradient(115deg,#1b3a52,#101e33); border-color:#4e819066; }
.v21-photo-grid>.v21-photo-tile:first-child:not(.v22-text-tile)>.v21-tile-visual { grid-column:2; grid-row:1/3; height:100%; min-height:150px; margin:0; aspect-ratio:auto; background:#edf2f5; }
.v21-photo-grid>.v21-photo-tile:first-child:not(.v22-text-tile)>strong { grid-column:1; grid-row:1; align-self:end; padding:14px 18px 4px; font-size:27px; color:#f0f7fb; }
.v21-photo-grid>.v21-photo-tile:first-child:not(.v22-text-tile)>small { grid-column:1; grid-row:2; align-self:start; padding:3px 18px 14px; color:#b9d9e6; }
.v22-text-tile { justify-content:center; min-height:112px; background:var(--surface-2); }
.v22-text-tile>.v21-tile-visual { display:none; }
.product-card { border-radius:20px; border:1px solid var(--line); background:var(--surface); box-shadow:none; }
.product-card .product-image-wrap { aspect-ratio:1.06; }
.product-card .product-image-wrap>.product-image { padding:12px 15px; }
.product-card .product-name { font-size:15px; line-height:1.35; letter-spacing:-.015em; }
.product-card .product-meta { font-size:9px; letter-spacing:.06em; color:var(--muted); }
.product-card .product-info { padding:13px; }
.product-card .product-price { font-size:17px; letter-spacing:-.025em; }
.product-card .product-availability { font-size:10px; }
.catalog-products-head { margin-top:28px; }
.catalog-products-head h2 { font-size:23px; letter-spacing:-.035em; }
.bottom-nav { border-color:var(--line); background:#101824ed; backdrop-filter:blur(18px); }
.nav-item.active { color:#91e8dd; background:#7bd6d00d; }
.launch-masthead { min-height:270px; border-radius:22px; }
.launch-copy h1 { font-size:34px; }
.launch-selection { margin-bottom:24px; }
html[data-theme="light"] .kicker { color:#186f72; }
html[data-theme="light"] .v22-filter-panel,html[data-theme="light"] .v22-brand-directory { background:#fff; }
html[data-theme="light"] .bottom-nav { background:#ffffffef; }
html[data-theme="light"] .nav-item.active { color:#17559b; background:#e8f1fc; }
html[data-theme="light"] .v21-photo-tile { color:#172b41; border-color:#d9e4eb; }
html[data-theme="light"] .v21-photo-tile>small { color:#5c7083; }
summary:focus-visible { outline:3px solid var(--v19-accent); outline-offset:3px; }
@media(min-width:700px) {
  .v21-photo-grid { grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:16px; }
  .v21-photo-grid>.v21-photo-tile:first-child:not(.v22-text-tile) { grid-column:span 2; }
  .v22-brand-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:560px) {
  .app-shell { padding-inline:16px; }
  .hero { min-height:285px; aspect-ratio:auto; }
  .hero-copy { left:21px; bottom:22px; }
  .hero h1 { font-size:37px; }
  .hero>img { object-position:72% center; opacity:.48; }
  .launch-copy { padding:21px; }
  .launch-copy h1 { font-size:29px; }
  .launch-visual { height:148px; }
  .v21-photo-tile>strong { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .v21-photo-tile:hover { transform:none; } }
