/* ============================================================
   STOREFRONT — vstupné CSS (verejná časť e-shopu)
   design-tokens.css aj komponenty sa linkujú SAMOSTATNE v <head> cez
   $this->cssLinks() (verzované, cache-busting) — redizajn 26. Žiadny @import
   (ten sa necachebustoval). Tu už len storefront-špecifický layout.
   ============================================================ */

/* Storefront-only rozloženie (.wrap, hero, cat-grid, sekcie) doplní Fáza 3.
   Spoločný kontajner: */
.wrap{ max-width:var(--wrap-max); margin:0 auto; padding:0 var(--sp-6); }

/* Redizajn 22 — mobilné premenné + responzivita kontajnera/sekcií */
:root{ --tabbar-h:64px; }
@media (max-width:560px){
  .wrap{ padding:0 var(--sp-4); }                 /* 32px → 16px na malom mobile */
  .home-section,
  .featured-band .wrap,
  .features-band .wrap,
  .home-tv{ padding-left:var(--sp-4); padding-right:var(--sp-4); }
  .home-section{ padding-top:var(--sp-6); padding-bottom:var(--sp-6); }
}

/* Reveal-on-scroll (storefront.js + 70-dizajn.md § 7.9.1) */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* Breadcrumb */
.breadcrumb{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:var(--muted); margin:var(--sp-4) 0; }
.breadcrumb a{ color:var(--muted); transition:color var(--t-fast) var(--ease); }
.breadcrumb a:hover{ color:var(--rosso); }
.breadcrumb .bc-sep{ color:var(--line-strong); }
.breadcrumb .bc-current{ color:var(--ink); }

/* Stránkovanie */
.pagination{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin:var(--sp-7) 0; }
.pg-link{ min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid var(--line); border-radius:0; font-family:var(--font-display); font-weight:var(--fw-medium); font-size:14px; background:var(--surface); transition:var(--t-fast) var(--ease); }
.pg-link:hover{ border-color:var(--ink); }
.pg-current{ background:var(--accent); color:#fff; border-color:var(--accent); }

/* Sekcia výpisu (toolbar + počet) */
.catalog-toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-3); margin-bottom:var(--sp-5); }
.catalog-toolbar .count{ color:var(--graphite); font-size:14px; }
.catalog-toolbar .count b, .catalog-toolbar .count strong{ font-family:var(--font-display); color:var(--ink); }

/* Auth (login/registrácia/reset) */
.auth-page{ display:grid; place-items:center; padding:var(--sp-7) var(--sp-5); }
.auth-card{ width:min(440px, 100%); }
.auth-card h1{ font-size:30px; margin-bottom:var(--sp-2); }
.auth-sub{ color:var(--muted); font-size:14px; margin-bottom:var(--sp-4); }
.auth-card .btn-block{ margin-top:var(--sp-3); }
.auth-links{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:var(--sp-4); font-size:13.5px; }
.auth-links a:hover{ color:var(--rosso); }

/* Statické stránky + kontakt */
.static-page{ padding-bottom:var(--sp-7); }
.static-page .prose{ padding:var(--sp-3) 0 var(--sp-6); }
.kontakt-layout{ display:grid; grid-template-columns:1fr 1.2fr; gap:var(--sp-6); padding-bottom:var(--sp-7); align-items:start; }
.kontakt-info h3, .kontakt-form-wrap h3{ font-size:22px; margin-bottom:var(--sp-3); }
.kontakt-info p{ margin-bottom:10px; display:flex; align-items:center; gap:8px; color:var(--muted); }
.kontakt-info a{ color:var(--text); }
.kontakt-info a:hover{ color:var(--rosso); }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-success{ display:flex; align-items:center; gap:8px; color:var(--ok); margin-bottom:var(--sp-3); }
@media (max-width:820px){ .kontakt-layout{ grid-template-columns:1fr; } }

/* Vyhľadávací dialóg */
.search-dialog{ position:fixed; inset:0; background:color-mix(in srgb, var(--ink) 60%, transparent); backdrop-filter:blur(3px); z-index:90; padding-top:12vh; }
.search-dialog-inner{ background:var(--paper); border-radius:var(--r-md); box-shadow:var(--shadow-lg); padding:var(--sp-4) var(--sp-5); max-width:680px; }
.search-dialog-form{ display:flex; align-items:center; gap:12px; }
.search-dialog-form input{ flex:1; font-size:18px; border:none; padding:10px 0; background:transparent; }
.search-dialog-form input:focus{ outline:none; }
.search-ac{ list-style:none; margin-top:10px; }
.search-ac li a{ display:flex; justify-content:space-between; align-items:center; padding:11px 6px; border-top:1px solid var(--line); }
.search-ac li a:hover{ background:var(--cream); }
.search-ac .ac-price{ color:var(--rosso); font-family:var(--font-display); font-weight:var(--fw-semibold); }

/* Stránka vyhľadávania */
.search-page-form{ display:flex; gap:var(--sp-2); margin-bottom:var(--sp-4); max-width:560px; }
.search-page-form input{ flex:1; }
.search-summary{ color:var(--muted); margin-bottom:var(--sp-4); }

/* Katalóg layout (sidebar + výpis) */
.page-title{ font-family:var(--font-display); font-size:clamp(30px, 3.4vw, 40px); letter-spacing:-.02em; margin:var(--sp-3) 0 var(--sp-2); }
.cat-intro{ color:var(--graphite); max-width:70ch; margin-bottom:var(--sp-5); font-size:15px; }
.catalog-layout{ display:grid; grid-template-columns:248px 1fr; gap:var(--sp-7); align-items:start; padding:var(--sp-4) 0 var(--sp-8); border-top:1px solid var(--line); }
.catalog-filters{ background:transparent; border:none; border-radius:0; padding:0; position:sticky; top:104px; font-size:14px; }
.filter-group{ margin-bottom:0; border-bottom:1px solid var(--line); padding:var(--sp-4) 0; }
.filter-group h4{ font-family:var(--font-display); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--graphite); margin-bottom:12px; font-weight:var(--fw-semibold); }
.filter-sub{ display:block; padding:5px 0; color:var(--ink); opacity:.85; font-size:14px; }
.filter-sub:hover{ color:var(--accent); opacity:1; }
.filter-price{ display:flex; gap:8px; }
.catalog-filters select, .catalog-filters input{ width:100%; border:1px solid var(--line); background:var(--surface); padding:9px 11px; font-family:var(--font-body); font-size:13px; }
.sort-form label{ font-size:13px; color:var(--graphite); display:inline-flex; align-items:center; gap:8px; }
.sort-form select{ width:auto; border:1px solid var(--line); background:var(--surface); padding:9px 12px; font-family:var(--font-body); }

/* Filter bottom-sheet (redizajn 22) — desktop: skryté ovládače, klasický sidebar */
.cf-head, .cf-scrim, .filter-toggle{ display:none; }

@media (max-width:820px){
  .catalog-layout{ grid-template-columns:1fr; }

  /* Spúšťač v toolbare */
  .filter-toggle{ display:inline-flex; align-items:center; gap:6px;
    border:1.5px solid var(--ink); background:transparent; color:var(--ink);
    font-family:var(--font-display); font-weight:var(--fw-semibold); font-size:13px;
    padding:9px 16px; min-height:44px; margin-right:auto; }

  /* Scrim */
  .cf-scrim{ display:block; position:fixed; inset:0; z-index:82;
    background:rgba(20,13,8,.5); opacity:0; pointer-events:none;
    transition:opacity var(--t-base) var(--ease); }
  body.filter-open .cf-scrim{ opacity:1; pointer-events:auto; }

  /* Filtre ako spodný sheet */
  .catalog-filters{ display:block; position:fixed; left:0; right:0; bottom:0; top:auto;
    z-index:83; max-height:82%; overflow-y:auto; background:var(--surface);
    border-radius:22px 22px 0 0; transform:translateY(100%);
    transition:transform var(--t-slow) var(--ease);
    padding:0 var(--sp-5) calc(var(--sp-5) + env(safe-area-inset-bottom));
    box-shadow:0 -20px 50px -20px rgba(20,13,8,.4); }
  .catalog-filters::before{ content:""; display:block; width:40px; height:4px;
    border-radius:3px; background:var(--line-strong); margin:10px auto 0; }
  body.filter-open .catalog-filters{ transform:none; }

  .cf-head{ display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; background:var(--surface); z-index:1;
    padding:12px 0; border-bottom:1px solid var(--line); margin-bottom:6px; }
  .cf-head h3{ font-family:var(--font-display); font-size:21px; color:var(--ink); }

  /* Veľký „Filtrovať" submit nech zatvára sheet (odošle GET) — necháme plnú šírku */
  .catalog-filters .btn-block{ position:sticky; bottom:0; }
}

/* ============================ DOMOV — Redizajn „D" ============================ */
/* Storefront tlačidlá (D) — Archivo, hranaté, neutrál + rosso */
.sf-theme .btn{ font-family:var(--font-display); font-weight:var(--fw-semibold); font-size:13px; letter-spacing:.03em; text-transform:none; padding:13px 24px; border-radius:0; border:1.5px solid var(--ink); }
.sf-theme .btn-primary{ background:var(--accent); border-color:var(--accent); color:#fff; }
.sf-theme .btn-primary:hover{ background:var(--rosso); border-color:var(--rosso); }
.sf-theme .btn-ghost{ background:transparent; color:var(--ink); }
.sf-theme .btn-ghost:hover{ background:var(--ink); color:#fff; }
.sf-theme .eyebrow{ font-family:var(--font-display); font-size:11.5px; letter-spacing:.26em; color:var(--accent); font-weight:var(--fw-medium); }

/* ---- Dark mode „demo-B" — komponentové doladenia (zlatá + teplé espresso) ---- */
html[data-theme="dark"] .sf-theme .eyebrow{ color:var(--crema); }
html[data-theme="dark"] .sf-theme .btn-primary{ color:#1a120c; }
html[data-theme="dark"] .sf-theme .btn-primary:hover{ background:var(--crema-light); border-color:var(--crema-light); color:#1a120c; }
html[data-theme="dark"] .sf-theme .btn-ghost{ color:var(--crema); border-color:var(--crema); }
html[data-theme="dark"] .sf-theme .btn-ghost:hover{ background:var(--crema); color:#1a120c; }
html[data-theme="dark"] .sf-theme .icon-btn:hover{ background:var(--crema); color:#1a120c; border-color:var(--crema); }
html[data-theme="dark"] .sf-theme .pc-media img{ mix-blend-mode:normal; }   /* multiply by na tmavom zmizlo */
html[data-theme="dark"] .sf-theme .pc-badge{ color:#1a120c; }                /* tmavý text na zlatom badge */
html[data-theme="dark"] .sf-theme .pc-add{ border-color:var(--crema); color:var(--crema); }
html[data-theme="dark"] .sf-theme .pc-add:hover{ background:var(--crema); color:#1a120c; }
html[data-theme="dark"] .sf-theme .link-more,
html[data-theme="dark"] .sf-theme .pc-b2b{ color:var(--crema); }

.home-section{ padding:var(--sp-7) var(--sp-6); }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--sp-5); }
.section-head h2{ font-family:var(--font-display); font-size:clamp(28px,3.4vw,36px); margin-top:6px; }
.link-more{ font-family:var(--font-display); font-weight:var(--fw-semibold); font-size:13px; color:var(--accent); white-space:nowrap; }

/* Hero */
.hero{ background:var(--surface); border-bottom:1px solid var(--line); }
.hero-grid{ display:grid; grid-template-columns:1fr 1.04fr; gap:var(--sp-7); align-items:center; padding:var(--sp-7) 0; }
.hero-text h1{ font-family:var(--font-display); font-size:clamp(40px,5vw,58px); letter-spacing:-.025em; margin:14px 0 var(--sp-4); }
.hero-text h1 em{ color:var(--accent); font-style:normal; }
.hero-lead{ max-width:44ch; color:var(--graphite); font-size:17px; margin-bottom:var(--sp-5); }
.hero-cta{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.hero-visual{ position:relative; display:block; min-height:480px; border-radius:0; overflow:hidden; background:var(--steel); background-size:cover; background-position:center; }
.hero-tag{ position:absolute; left:20px; bottom:20px; background:rgba(29,32,31,.86); color:#fff; font-family:var(--font-display); font-weight:var(--fw-medium); font-size:12px; padding:10px 16px; }

/* Trust ribbon */
.trust-ribbon{ background:var(--paper); border-bottom:1px solid var(--line); }
.trust-ribbon .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--sp-4); padding:24px var(--sp-6); font-size:13px; color:var(--graphite); }
.trust-ribbon b{ font-family:var(--font-display); color:var(--ink); font-weight:var(--fw-semibold); }

/* Kategórie grid (foto + telo) */
.cat-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.cat-card{ position:relative; display:flex; flex-direction:column; background:var(--surface); transition:background var(--t-base) var(--ease); }
.cat-card:hover{ background:#fbfbfa; }
.cat-ph{ aspect-ratio:1/.72; background-size:cover; background-position:center; border-bottom:1px solid var(--line); }
.cat-body{ padding:18px var(--sp-5) 22px; display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:10px; }
.cat-idx{ grid-column:1/-1; font-family:var(--font-display); font-size:12px; letter-spacing:.12em; color:var(--muted); font-weight:var(--fw-semibold); }
.cat-body strong{ font-family:var(--font-display); font-size:21px; letter-spacing:-.01em; color:var(--ink); margin:5px 0; }
.cat-body small{ grid-column:1; color:var(--graphite); font-size:13px; }
.cat-arr{ grid-row:2/4; grid-column:2; align-self:center; font-family:var(--font-display); font-size:18px; color:var(--accent); transition:transform var(--t-base) var(--ease); }
.cat-card:hover .cat-arr{ transform:translateX(4px); }

/* Produktové riadky (featured/reorder) */
.featured-band{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.featured-band .wrap{ padding:var(--sp-7) var(--sp-6); }
.prod-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--sp-4); }

/* Features / partner */
.features-band{ background:var(--paper); }
.features-band .wrap{ padding:var(--sp-7) var(--sp-6); }
.features-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--sp-5); }
.feature .feature-ic{ display:inline-grid; place-items:center; width:44px; height:44px; border-radius:0; background:var(--surface); border:1px solid var(--line); color:var(--accent); margin-bottom:12px; }
.feature h4{ font-family:var(--font-display); font-size:18px; margin-bottom:6px; }
.feature p{ color:var(--graphite); font-size:14px; }

/* B2B band */
.b2b-band{ background:var(--espresso); color:#dfe1df; }
.b2b-band .wrap{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:var(--sp-6); padding:var(--sp-7) var(--sp-6); align-items:center; }
.b2b-intro h2{ font-family:var(--font-display); color:#fff; font-size:27px; margin-bottom:10px; }
.b2b-intro p{ font-size:14px; color:#a7aba8; margin-bottom:18px; max-width:34ch; }
.b2b-pt .n{ font-family:var(--font-display); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:.1em; color:var(--crema-light); }
.b2b-pt h3{ font-family:var(--font-display); font-size:18px; color:#fff; margin:6px 0; }
.b2b-pt p{ font-size:13px; color:#a7aba8; }

/* Goriziana TV grid */
.home-tv{ padding:var(--sp-7) var(--sp-6); }
.home-tv .video-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--sp-4); }

@media (max-width:980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-visual{ min-height:300px; }
  .cat-grid, .prod-row, .features-grid, .b2b-band .wrap, .home-tv .video-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:560px){
  .cat-grid, .prod-row, .features-grid, .b2b-band .wrap, .home-tv .video-grid{ grid-template-columns:1fr; }
}

/* Chybové stránky (404/405) — § 7.13 */
.error-page{ text-align:center; padding:var(--sp-8) var(--sp-6); max-width:640px; }
.error-page .error-icon{ display:inline-grid; place-items:center; width:96px; height:96px; border-radius:50%; background:var(--cream); color:var(--crema); margin-bottom:var(--sp-5); }
.error-page h1{ font-size:clamp(40px, 6vw, 72px); margin:var(--sp-2) 0; }
.error-page .error-lead{ color:var(--muted); font-size:17px; margin-bottom:var(--sp-5); }
.error-page .error-search{ display:flex; gap:var(--sp-2); justify-content:center; margin-bottom:var(--sp-5); flex-wrap:wrap; }
.error-page .error-search input{ max-width:320px; }
