/**
 * psiako.pl — design tokens.
 * Ładowany PIERWSZY. JEDYNE miejsce z wartościami surowymi (hex/rem/px/ms).
 * Każdy wymiar ma jedną skalę; moduły używają tylko `var(--…)`.
 */

/* ── Fonty self-hosted (RODO + perf) ──────────────────────────────────────────
   Plus Jakarta Sans (tekst/UI) + Archivo (nagłówki) — fonty zmienne, self-hosted
   w assets/fonts/. Zastępuje <link> do fonts.googleapis.com. */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── Font nagłówkowy: Archivo (self-hosted) ───────────────────────────────────
   Font zmienny — jeden plik na subset, zakres wag 400–800.
   Pliki: assets/fonts/. Używany TYLKO w nagłówkach
   (h1–h6 + .psiako-*__title + .slide-title) — patrz overrides.css / --font-family-heading.
   Tekst i UI zostają na Plus Jakarta Sans. */
@font-face {
  font-family: Archivo;
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/archivo-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Archivo;
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/archivo-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  /* ── Kolor: marka (schemat light) ─────────────────────────────── */
  --color-primary:            #202025;           /* tekst, nagłówki */
  --color-primary-contrast:   #fff;
  --color-accent:             #173837;           /* CTA, przyciski primary */
  --color-accent-hover:       #336b53;
  --color-accent-contrast:    #fff;
  --color-ink:                #202025;
  --color-ink-strong:         #32373c;           /* nagłówki / strong */
  --color-ink-muted:          #636870;           /* JEDYNA szarość tekstu drugorzędnego */
  --color-surface:            #fff;              /* tło strony */
  --color-surface-alt:        #f9f8f6;           /* subtelne cieplejsze tło (foot drawera) */
  --color-surface-overlay:    rgb(255 255 255 / 97%); /* header/panel z blur */
  --color-layout:             #eaece3;           /* tło sekcji (sage) */
  --color-border:             #c6c9c0;
  --color-border-subtle:      #e8e4df;

  /* ── Kolor: na ciemnym tle (accent / overlay) ─────────────────── */
  --color-on-dark:            #fff;
  --color-on-dark-muted:      rgb(255 255 255 / 70%);
  --color-on-dark-subtle:     rgb(255 255 255 / 55%);
  --color-on-dark-faint:      rgb(255 255 255 / 38%);    /* nieaktywna kropka slidera, ikona na ciemnym */
  --color-divider:            rgb(0 0 0 / 6%);           /* subtelna linia na jasnym tle */
  --color-divider-on-dark:    rgb(255 255 255 / 8%);
  --color-glass-bg:           rgb(255 255 255 / 18%);   /* szklane przyciski na zdjęciu */
  --color-glass-bg-hover:     rgb(255 255 255 / 32%);
  --color-glass-border:       rgb(255 255 255 / 35%);
  --color-btn-glass:          rgb(255 255 255 / 88%);   /* strzałki slidera na zdjęciu */

  /* ── Gradienty-overlay (tekst na zdjęciu) ─────────────────────── */
  --overlay-hero:             linear-gradient(to right, rgb(23 56 55 / 62%) 0%, rgb(23 56 55 / 18%) 55%, transparent 100%);
  --overlay-hero-mobile:      linear-gradient(to bottom, transparent 30%, rgb(23 56 55 / 75%) 100%);
  --overlay-card:             linear-gradient(to top, rgb(0 0 0 / 72%) 0%, rgb(0 0 0 / 5%) 50%, transparent 100%);
  --overlay-card-accent:      linear-gradient(to top, rgb(23 56 55 / 78%) 0%, rgb(23 56 55 / 5%) 50%, transparent 100%);
  --overlay-lightbox:         rgb(0 0 0 / 92%);   /* pełnoekranowy podgląd zdjęcia (PDP) */

  /* ── Kolor: statusy ──────────────────────────────────────────── */
  --color-success:            #58ad69;
  --color-success-bg:         #f0f7f0;            /* tło notki „info" / powiadomienia WC „message" */
  --color-success-border:     #c8e6c8;
  --color-success-fg:         #166534;            /* tekst/ikona na tle success (badge oszczędności, .woocommerce-message) */
  --color-info:               #59bacc;
  --color-info-bg:            #eff6ff;            /* tło powiadomienia WC „info" (pusty koszyk, kupon) */
  --color-info-fg:            #1e40af;            /* tekst powiadomienia WC „info" */
  --color-warning:            #ffbc49;
  --color-lowstock-bg:        #fff3ec;            /* pill „mało sztuk" (ciepły) */
  --color-lowstock-text:      #7c3510;
  --color-lowstock-dot:       #f97316;
  --color-danger:             #e32c26;            /* JEDEN czerwony błędu */
  --color-danger-subtle:      #fef2f2;            /* tło hover „wyloguj" / tło listy błędów WC */
  --color-danger-strong:      #991b1b;            /* tekst listy błędów WC (.woocommerce-error) */
  --color-danger-border:      #fecaca;            /* obramowanie listy błędów WC */
  --color-sale:               #d73429;            /* cena promocyjna WC (osobny czerwony) */
  --color-rating:             #c77605;            /* gwiazdki ocen — pełna. Ciemniejszy gold:
                                                     3.5:1 na białym (WCAG 1.4.11 dla grafik ≥ 3:1;
                                                     #f59e0b dawało 2.15:1) */
  --color-rating-track:       #d9d9d9;             /* gwiazdka pusta (dekoracyjna — brak oceny) */

  /* ── Skala szarości (na razie tylko schemat jasny) ── */
  --color-gray-50:            #f8f9fa;
  --color-gray-100:           #f1f3f5;
  --color-gray-200:           #e0e0e0;
  --color-gray-300:           #ced4da;
  --color-gray-400:           #adb5bd;
  --color-gray-500:           #8e8e8e;
  --color-gray-600:           #6c757d;
  --color-gray-700:           #495057;
  --color-gray-800:           #343a40;
  --color-gray-900:           #212529;

  /* ── Typografia: rodzina / waga ──────────────────────────────── */
  --font-family-base:         "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-family-heading:      "Archivo", system-ui, -apple-system, "Segoe UI", "Roboto", sans-serif;
  --font-weight-regular:      400;
  --font-weight-medium:       500;
  --font-weight-semibold:     600;
  --font-weight-bold:         700;
  --font-weight-base:         var(--font-weight-medium);   /* Customizer font_base */
  --font-weight-heading:      var(--font-weight-bold);     /* Archivo 700 — nagłówki (było regular) */

  /* Parent MBF czyta --mbf-font-headings-family w regułach h1–h6. Nadpisujemy
     tu, żeby nagłówki komponentów parenta też dostały Archivo bez zależności
     od inline-CSS Customizera. */
  --mbf-font-headings-family: "Archivo";

  /* ── Typografia: skala rozmiarów (8 → 36 px) ──────────────────── */
  --font-size-4xs:            0.5rem;     /* 8 — licznik w badge koszyka */
  --font-size-3xs:            0.625rem;   /* 10 — mikro: kickery, etykiety badge */
  --font-size-2xs:            0.75rem;    /* 12 */
  --font-size-xs:             0.8125rem;  /* 13 */
  --font-size-sm:             0.875rem;   /* 14 */
  --font-size-base:           1rem;       /* 16 */
  --font-size-md:             1.125rem;   /* 18 */
  --font-size-lg:             1.25rem;    /* 20 */
  --font-size-xl:             1.5rem;     /* 24 */
  --font-size-2xl:            1.625rem;   /* 26 — entry-title mobile (parent) */
  --font-size-3xl:            1.875rem;   /* 30 — entry-title desktop (parent) */
  --font-size-4xl:            2.25rem;    /* 36 */

  /* ── Typografia: nagłówki responsywne (clamp) ────────────────── */
  --font-size-section-title:  clamp(1.5rem, 3vw, 2.2rem);      /* nagłówki sekcji front-page */
  --font-size-hero-title:     clamp(1.8rem, 4.5vw, 3.4rem);    /* tytuł slajdu hero */
  --font-size-hero-title-sm:  clamp(1.3rem, 5.5vw, 1.8rem);    /* tytuł slajdu hero — mobile */
  --font-size-hero-sub:       clamp(0.875rem, 1.6vw, 1rem);    /* podtytuł slajdu hero */
  --font-size-eyebrow:        clamp(1rem, 1.5vw, 1.15rem);     /* nadtytuł / SEO H1 inline */

  /* ── Typografia: line-height / letter-spacing ────────────────── */
  --line-height-none:         1;        /* przyciski, badge, ikony */
  --line-height-hero:         1.1;      /* duży tytuł hero */
  --line-height-tight:        1.2;
  --line-height-snug:         1.35;
  --line-height-base:         1.5;
  --line-height-relaxed:      1.65;
  --line-height-loose:        1.8;
  --letter-spacing-base:      -0.02em;
  --letter-spacing-heading:   -0.02em;   /* Archivo (grotesk) — luźniej niż Plus Jakarta (było -0.05) */
  --letter-spacing-caps:      0.05em;   /* etykiety wersalikami na przyciskach */
  --letter-spacing-wide:      0.1em;    /* kickery / nav uppercase */
  --letter-spacing-wider:     0.18em;   /* kickery sekcji */

  /* ── Spacing (skala 4px: 2·4·6·8·10·12·14·16·20·24·32·40·48·56·64·80·96) ── */
  --space-0-5:                0.125rem;  /* 2 */
  --space-1:                  0.25rem;   /* 4 */
  --space-1-5:                0.375rem;  /* 6 */
  --space-2:                  0.5rem;    /* 8 */
  --space-2-5:                0.625rem;  /* 10 */
  --space-3:                  0.75rem;   /* 12 */
  --space-3-5:                0.875rem;  /* 14 */
  --space-4:                  1rem;      /* 16 */
  --space-5:                  1.25rem;   /* 20 */
  --space-6:                  1.5rem;    /* 24 */
  --space-7:                  2rem;      /* 32 */
  --space-8:                  2.5rem;    /* 40 */
  --space-9:                  3rem;      /* 48 */
  --space-10:                 3.5rem;    /* 56 */
  --space-11:                 4rem;      /* 64 */
  --space-12:                 5rem;      /* 80 */
  --space-13:                 6rem;      /* 96 */

  /* ── Layout ──────────────────────────────────────────────────── */
  --container-max:            1320px;
  --container-content:        856px;
  --container-wide:           1280px;   /* kontenery sekcji front-page */
  --header-height:            62px;     /* child --psiako-hh (nadpisuje mbf 73px) */
  --header-height-scrolled:   62px;
  --logo-height:              22px;     /* logo w headerze i w drawerze mobilnym */
  --shop-sidebar-width:       340px;
  --drawer-width:             420px;   /* drawer mobilny + minikoszyk */

  /* ── Promień (skala 4/8/12) ──────────────────────────────────── */
  --radius-none:              0;
  --radius-sm:                4px;    /* badge, input, drobny element */
  --radius-md:                8px;    /* przycisk, kafelek, grupa pól */
  --radius-lg:                12px;   /* karta, panel, dropdown */
  --radius-pill:              9999px; /* przyciski-pigułki, pełne zaokrąglenie */

  /* ── Cień ────────────────────────────────────────────────────── */
  --shadow-header:            0 2px 18px rgb(0 0 0 / 7%);    /* header po scrollu */
  --shadow-xs:                0 1px 4px rgb(0 0 0 / 12%);    /* badge / drobny element */
  --shadow-sm:                0 2px 12px rgb(0 0 0 / 7%);    /* karta spoczynek */
  --shadow-md:                0 8px 28px rgb(0 0 0 / 12%);   /* karta hover */
  --shadow-dropdown:          0 4px 14px rgb(0 0 0 / 10%);   /* dropdown nav + panel konta — ostry, mniejszy blur */
  --shadow-lg:                0 12px 32px rgb(0 0 0 / 14%);
  --shadow-drawer:            0 0 40px rgb(0 0 0 / 12%);     /* panel wysuwany (drawer, minikoszyk) */
  --shadow-control:           0 2px 12px rgb(0 0 0 / 15%);   /* pływające przyciski na zdjęciu */
  --shadow-text:              0 2px 10px rgb(0 0 0 / 40%);   /* tekst na zdjęciu */
  --shadow-cta:               0 6px 20px rgb(23 56 55 / 28%); /* hover przycisku akcji (accent) */

  /* ── Motion ──────────────────────────────────────────────────── */
  --transition-fast:          120ms ease;
  --transition-base:          200ms ease;
  --transition-slow:          300ms ease;
  --transition-image:         550ms ease;   /* transform obrazu na hover karty */
  --ease-out:                 cubic-bezier(0.16, 1, 0.3, 1);

  /* ── Breakpointy (referencja — CSS custom props NIE działają w @media) ── */
  --bp-sm:                    480px;
  --bp-md:                    768px;
  --bp-lg:                    1024px;
  --bp-xl:                    1320px;

  /* ── Z-index ─────────────────────────────────────────────────── */
  --z-base:                   1;
  --z-header:                 100;
  --z-dropdown:               150;   /* nav submenu, panel konta, panel wyszukiwania */
  --z-overlay:                190;
  --z-drawer:                 200;
  --z-minicart:               210;
  --z-modal:                  300;
  --z-toast:                  400;

  /* ── Etykiety WooCommerce PL (konsumowane przez szablony parenta
        przez content: var(--mbf-wc-label-*)) ────────────────────── */
  --mbf-wc-label-general: "Ogólne";
  --mbf-wc-label-shipping-address: "Adres dostawy";
  --mbf-wc-label-order-notes: "Uwagi do zamówienia";
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
    --transition-slow: 0ms;
    --transition-image: 0ms;
  }
}
