/*
  wp-root.css — White-PR portable design core
  ---------------------------------------------
  Przenośny RDZEŃ wzorców projektowych studia (theme-agnostyczny).
  Źródło prawdy: white-pr/_shared/wp-root.css → kopiowane do <project>/theme/assets/wp-root.css.

  ZASADA: tu są tylko rzeczy NIEZALEŻNE od konkretnego sklepu i motywu:
    • skala odstępów        var(--gap-A-B)         (płynny clamp od B rem do A rem)
    • szerokość kontenera   var(--box-container)   + warianty narrow/extra-narrow
    • silnik typografii      var(--h1..--h6), var(--p)  (override min/max w skórce projektu)
    • promienie/tranzycje    var(--radius-*), var(--transition-*)
    • siatki auto-fit        var(--repeat-autofit-*)
    • klasy utility          PREFIX .wp-*  (namespace, żeby NIE kolidować z motywem)

  Czego TU NIE MA (to żyje w skórce projektu, np. nf-theme.css):
    • paleta marki, przyciski .btn-*, wiązania font-family, megamenu, breakpointy specyficzne.

  Nazwy zmiennych dobrane tak, by nie nachodziły na Dawn/Horizon/Pinnacle
  (te używają --font-heading-scale, --page-width itp.). Klasy .wp-* nigdy nie nadpisują motywu.
*/

:root {
  /* ================================
     KONTENER
  ================================ */
  --box-container: min(calc(100vw - 7vw), 100%);
  --box-container-narrow: min(calc(100vw - 7vw), 1000px);
  --box-container-extra-narrow: min(calc(100vw - 12vw), 850px);
  --margin-full-to-container: calc(50% - min(calc(100vw - 7vw), var(--box-container)) / 2);
  --offset-edge-container: 100%;

  /* ================================
     VIEWPORT (baza fluid-type)
  ================================ */
  --vp-min: 375;
  --vp-max: 1440;
  --vp-range: calc(var(--vp-max) - var(--vp-min));
  --rem: 16;

  /* ================================
     TYPOGRAFIA — silnik fluid-type
     Generyczne DOMYŚLNE min/max. Nadpisz --X-min / --X-max w skórce projektu;
     --X (clamp) przeliczy się automatycznie (CSS custom props rozwiązują się po kaskadzie).
  ================================ */
  --p-min: 15;          --p-max: 16;
  --h1-min: 40;         --h1-max: 96;
  --h2-min: 30;         --h2-max: 56;
  --h3-min: 22;         --h3-max: 32;
  --h4-min: 18;         --h4-max: 24;
  --h5-min: 16;         --h5-max: 20;
  --h6-min: 14;         --h6-max: 16;

  --p-slope:  calc((var(--p-max)  - var(--p-min))  * 100 / var(--vp-range));
  --p-intercept:  calc(var(--p-min)  - (var(--p-slope)  * var(--vp-min) / 100));
  --p:  clamp(calc(var(--p-min)/var(--rem)*1rem),  calc((var(--p-intercept)/var(--rem))*1rem  + var(--p-slope)*1vw),  calc(var(--p-max)/var(--rem)*1rem));

  --h1-slope: calc((var(--h1-max) - var(--h1-min)) * 100 / var(--vp-range));
  --h1-intercept: calc(var(--h1-min) - (var(--h1-slope) * var(--vp-min) / 100));
  --h1: clamp(calc(var(--h1-min)/var(--rem)*1rem), calc((var(--h1-intercept)/var(--rem))*1rem + var(--h1-slope)*1vw), calc(var(--h1-max)/var(--rem)*1rem));

  --h2-slope: calc((var(--h2-max) - var(--h2-min)) * 100 / var(--vp-range));
  --h2-intercept: calc(var(--h2-min) - (var(--h2-slope) * var(--vp-min) / 100));
  --h2: clamp(calc(var(--h2-min)/var(--rem)*1rem), calc((var(--h2-intercept)/var(--rem))*1rem + var(--h2-slope)*1vw), calc(var(--h2-max)/var(--rem)*1rem));

  --h3-slope: calc((var(--h3-max) - var(--h3-min)) * 100 / var(--vp-range));
  --h3-intercept: calc(var(--h3-min) - (var(--h3-slope) * var(--vp-min) / 100));
  --h3: clamp(calc(var(--h3-min)/var(--rem)*1rem), calc((var(--h3-intercept)/var(--rem))*1rem + var(--h3-slope)*1vw), calc(var(--h3-max)/var(--rem)*1rem));

  --h4-slope: calc((var(--h4-max) - var(--h4-min)) * 100 / var(--vp-range));
  --h4-intercept: calc(var(--h4-min) - (var(--h4-slope) * var(--vp-min) / 100));
  --h4: clamp(calc(var(--h4-min)/var(--rem)*1rem), calc((var(--h4-intercept)/var(--rem))*1rem + var(--h4-slope)*1vw), calc(var(--h4-max)/var(--rem)*1rem));

  --h5-slope: calc((var(--h5-max) - var(--h5-min)) * 100 / var(--vp-range));
  --h5-intercept: calc(var(--h5-min) - (var(--h5-slope) * var(--vp-min) / 100));
  --h5: clamp(calc(var(--h5-min)/var(--rem)*1rem), calc((var(--h5-intercept)/var(--rem))*1rem + var(--h5-slope)*1vw), calc(var(--h5-max)/var(--rem)*1rem));

  --h6-slope: calc((var(--h6-max) - var(--h6-min)) * 100 / var(--vp-range));
  --h6-intercept: calc(var(--h6-min) - (var(--h6-slope) * var(--vp-min) / 100));
  --h6: clamp(calc(var(--h6-min)/var(--rem)*1rem), calc((var(--h6-intercept)/var(--rem))*1rem + var(--h6-slope)*1vw), calc(var(--h6-max)/var(--rem)*1rem));

  /* ================================
     PROMIENIE / TRANZYCJE
  ================================ */
  --transition-time: 0.2s;
  --transition-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --radius-5: 5px;
  --radius-10: 10px;
  --radius-15: 15px;
  --radius-20: 20px;
  --radius-full: 50vw;

  /* ================================
     SIATKI AUTO-FIT
  ================================ */
  --repeat-autofit-600: repeat(auto-fit, minmax(600px, 1fr));
  --repeat-autofit-550: repeat(auto-fit, minmax(550px, 1fr));
  --repeat-autofit-500: repeat(auto-fit, minmax(500px, 1fr));
  --repeat-autofit-450: repeat(auto-fit, minmax(450px, 1fr));
  --repeat-autofit-400: repeat(auto-fit, minmax(400px, 1fr));
  --repeat-autofit-350: repeat(auto-fit, minmax(350px, 1fr));
  --repeat-autofit-300: repeat(auto-fit, minmax(300px, 1fr));
  --repeat-autofit-250: repeat(auto-fit, minmax(250px, 1fr));
  --repeat-autofit-200: repeat(auto-fit, minmax(200px, 1fr));
  --repeat-autofit-150: repeat(auto-fit, minmax(150px, 1fr));
  --repeat-autofit-100: repeat(auto-fit, minmax(100px, 1fr));

  /* ================================
     SKALA ODSTĘPÓW  --gap-A-B
     A = wartość maks (desktop), B = wartość min (mobile), w rem. Płynny clamp.
     Konwencja przeniesiona 1:1 ze Sparky.
  ================================ */
  --gap-4-3: clamp(3rem, 2.622rem + 1.615vw, 4rem);
  --gap-5-3: clamp(3rem, 2.243rem + 3.229vw, 5rem);
  --gap-6-3: clamp(3rem, 1.865rem + 4.844vw, 6rem);
  --gap-7-3: clamp(3rem, 1.486rem + 6.458vw, 7rem);
  --gap-8-3: clamp(3rem, 1.108rem + 8.073vw, 8rem);
  --gap-9-3: clamp(3rem, 0.73rem + 9.687vw, 9rem);
  --gap-10-3: clamp(3rem, 0.351rem + 11.302vw, 10rem);
  --gap-11-3: clamp(3rem, -0.021rem + 12.89vw, 11rem);
  --gap-12-3: clamp(3rem, -0.399rem + 14.502vw, 12rem);
  --gap-13-3: clamp(3rem, -0.776rem + 16.113vw, 13rem);
  --gap-14-3: clamp(3rem, -1.154rem + 17.724vw, 14rem);
  --gap-15-3: clamp(3rem, -1.532rem + 19.335vw, 15rem);

  --gap-5-4: clamp(4rem, 3.622rem + 1.615vw, 5rem);
  --gap-6-4: clamp(4rem, 3.243rem + 3.229vw, 6rem);
  --gap-7-4: clamp(4rem, 2.865rem + 4.844vw, 7rem);
  --gap-8-4: clamp(4rem, 2.486rem + 6.458vw, 8rem);
  --gap-9-4: clamp(4rem, 2.108rem + 8.073vw, 9rem);
  --gap-10-4: clamp(4rem, 1.73rem + 9.687vw, 10rem);
  --gap-11-4: clamp(4rem, 1.351rem + 11.302vw, 11rem);
  --gap-12-4: clamp(4rem, 0.973rem + 12.916vw, 12rem);
  --gap-13-4: clamp(4rem, 0.594rem + 14.531vw, 13rem);
  --gap-14-4: clamp(4rem, 0.216rem + 16.145vw, 14rem);
  --gap-15-4: clamp(4rem, -0.162rem + 17.76vw, 15rem);

  --gap-6-5: clamp(5rem, 4.622rem + 1.611vw, 6rem);
  --gap-7-5: clamp(5rem, 4.245rem + 3.223vw, 7rem);
  --gap-8-5: clamp(5rem, 3.867rem + 4.834vw, 8rem);
  --gap-9-5: clamp(5rem, 3.489rem + 6.445vw, 9rem);
  --gap-10-5: clamp(5rem, 3.112rem + 8.056vw, 10rem);
  --gap-11-5: clamp(5rem, 2.734rem + 9.668vw, 11rem);
  --gap-12-5: clamp(5rem, 2.356rem + 11.279vw, 12rem);
  --gap-13-5: clamp(5rem, 1.979rem + 12.89vw, 13rem);
  --gap-14-5: clamp(5rem, 1.601rem + 14.502vw, 14rem);
  --gap-15-5: clamp(5rem, 1.224rem + 16.113vw, 15rem);

  --gap-7-6: clamp(6rem, 5.622rem + 1.611vw, 7rem);
  --gap-8-6: clamp(6rem, 5.245rem + 3.223vw, 8rem);
  --gap-9-6: clamp(6rem, 4.867rem + 4.834vw, 9rem);
  --gap-10-6: clamp(6rem, 4.489rem + 6.445vw, 10rem);
  --gap-11-6: clamp(6rem, 4.112rem + 8.056vw, 11rem);
  --gap-12-6: clamp(6rem, 3.734rem + 9.668vw, 12rem);
  --gap-13-6: clamp(6rem, 3.356rem + 11.279vw, 13rem);
  --gap-14-6: clamp(6rem, 2.979rem + 12.89vw, 14rem);
  --gap-15-6: clamp(6rem, 2.601rem + 14.502vw, 15rem);

  --gap-8-7: clamp(7rem, 6.622rem + 1.611vw, 8rem);
  --gap-9-7: clamp(7rem, 6.245rem + 3.223vw, 9rem);
  --gap-10-7: clamp(7rem, 5.867rem + 4.834vw, 10rem);
  --gap-11-7: clamp(7rem, 5.489rem + 6.445vw, 11rem);
  --gap-12-7: clamp(7rem, 5.112rem + 8.056vw, 12rem);
  --gap-13-7: clamp(7rem, 4.734rem + 9.668vw, 13rem);
  --gap-14-7: clamp(7rem, 4.356rem + 11.279vw, 14rem);
  --gap-15-7: clamp(7rem, 3.979rem + 12.89vw, 15rem);

  --gap-9-8: clamp(8rem, 7.622rem + 1.611vw, 9rem);
  --gap-10-8: clamp(8rem, 7.245rem + 3.223vw, 10rem);
  --gap-11-8: clamp(8rem, 6.867rem + 4.834vw, 11rem);
  --gap-12-8: clamp(8rem, 6.489rem + 6.445vw, 12rem);
  --gap-13-8: clamp(8rem, 6.112rem + 8.056vw, 13rem);
  --gap-14-8: clamp(8rem, 5.734rem + 9.668vw, 14rem);
  --gap-15-8: clamp(8rem, 5.356rem + 11.279vw, 15rem);

  --gap-10-9: clamp(9rem, 8.622rem + 1.611vw, 10rem);
  --gap-11-9: clamp(9rem, 8.245rem + 3.223vw, 11rem);
  --gap-12-9: clamp(9rem, 7.867rem + 4.834vw, 12rem);
  --gap-13-9: clamp(9rem, 7.489rem + 6.445vw, 13rem);
  --gap-14-9: clamp(9rem, 7.112rem + 8.056vw, 14rem);
  --gap-15-9: clamp(9rem, 6.734rem + 9.668vw, 15rem);

  --gap-11-10: clamp(10rem, 9.622rem + 1.611vw, 11rem);
  --gap-12-10: clamp(10rem, 9.245rem + 3.223vw, 12rem);
  --gap-13-10: clamp(10rem, 8.867rem + 4.834vw, 13rem);
  --gap-14-10: clamp(10rem, 8.489rem + 6.445vw, 14rem);
  --gap-15-10: clamp(10rem, 8.112rem + 8.056vw, 15rem);

  --gap-3-2: clamp(2rem, 1.622rem + 1.615vw, 3rem);
  --gap-4-2: clamp(2rem, 1.243rem + 3.229vw, 4rem);
  --gap-5-2: clamp(2rem, 0.865rem + 4.844vw, 5rem);
  --gap-6-2: clamp(2rem, 0.486rem + 6.458vw, 6rem);
  --gap-7-2: clamp(2rem, 0.108rem + 8.073vw, 7rem);
  --gap-8-2: clamp(2rem, -0.27rem + 9.687vw, 8rem);
  --gap-9-2: clamp(2rem, -0.649rem + 11.302vw, 9rem);
  --gap-10-2: clamp(2rem, -1.027rem + 12.916vw, 10rem);
  --gap-11-2: clamp(2rem, -1.406rem + 14.531vw, 11rem);
  --gap-12-2: clamp(2rem, -1.784rem + 16.145vw, 12rem);
  --gap-13-2: clamp(2rem, -2.162rem + 17.76vw, 13rem);
  --gap-14-2: clamp(2rem, -2.541rem + 19.374vw, 14rem);
  --gap-15-2: clamp(2rem, -2.919rem + 20.989vw, 15rem);

  --gap-250-2: clamp(2rem, 1.824rem + 0.751vw, 2.5rem);
  --gap-250-150: clamp(1.5rem, 1.148rem + 1.502vw, 2.5rem);
  --gap-250-1: clamp(1rem, 0.472rem + 2.254vw, 2.5rem);
  --gap-250-05: clamp(0.5rem, -0.204rem + 3.005vw, 2.5rem);

  /* 7.5rem = 120px — typowy oddech sekcji w projektach z gęstą treścią.
     Dodane 25.08.2026 przy Select Lease (Figma daje dokładnie 120px padding-block). */
  --gap-750-4: clamp(4rem, 2.768rem + 5.258vw, 7.5rem);

  --gap-2-150: clamp(1.5rem, 1.324rem + 0.751vw, 2rem);
  --gap-3-150: clamp(1.5rem, 0.972rem + 2.254vw, 3rem);
  --gap-4-150: clamp(1.5rem, 0.62rem + 3.756vw, 4rem);
  --gap-5-150: clamp(1.5rem, 0.268rem + 5.258vw, 5rem);

  --grid-gap: clamp(2rem, 1.1718rem + 3.3126vw, 4rem);
  --gap-2-1: clamp(1rem, 0.5833rem + 1.6667vw, 2rem);
  --gap-1-5-1: clamp(1rem, 0.824rem + 0.751vw, 1.5rem);
  --gap-3-1: clamp(1rem, 0.1667rem + 3.3333vw, 3rem);
  --gap-4-1: clamp(1rem, -0.25rem + 5vw, 4rem);
  --gap-5-1: clamp(1rem, -0.6667rem + 6.6667vw, 5rem);
  --gap-6-1: clamp(1rem, -1.0833rem + 8.3333vw, 6rem);
  --gap-7-1: clamp(1rem, -1.5rem + 10vw, 7rem);
  --gap-8-1: clamp(1rem, -1.9167rem + 11.6667vw, 8rem);
  --gap-9-1: clamp(1rem, -2.027rem + 12.916vw, 9rem);
  --gap-10-1: clamp(1rem, -2.406rem + 14.531vw, 10rem);
  --gap-11-1: clamp(1rem, -2.784rem + 16.145vw, 11rem);
  --gap-12-1: clamp(1rem, -3.162rem + 17.76vw, 12rem);

  --gap-1-05: clamp(0.5rem, 0.311rem + 0.807vw, 1rem);
  --gap-2-05: clamp(0.5rem, -0.068rem + 2.422vw, 2rem);
  --gap-3-05: clamp(0.5rem, -0.446rem + 4.036vw, 3rem);
  --gap-4-05: clamp(0.5rem, -0.824rem + 5.651vw, 4rem);

  --gap-150-05: clamp(0.5rem, 0.148rem + 1.502vw, 1.5rem);
  --gap-150-1: clamp(1rem, 0.824rem + 0.751vw, 1.5rem);
  --gap-125-1: clamp(1.25rem, 1.338rem + -0.376vw, 1rem);

  --gap-05-0: clamp(0rem, -0.167rem + 0.741vw, 0.5rem);
  --gap-1-0: clamp(0rem, -0.378rem + 1.615vw, 1rem);
  --gap-125-0: clamp(0rem, -0.473rem + 2.018vw, 1.25rem);
  --gap-150-0: clamp(0rem, -0.568rem + 2.422vw, 1.5rem);
  --gap-2-0: clamp(0rem, -0.757rem + 3.229vw, 2rem);
  --gap-3-0: clamp(0rem, -1.135rem + 4.844vw, 3rem);
  --gap-4-0: clamp(0rem, -1.514rem + 6.458vw, 4rem);
  --gap-5-0: clamp(0rem, -1.892rem + 8.073vw, 5rem);
  --gap-6-0: clamp(0rem, -2.27rem + 9.687vw, 6rem);
  --gap-7-0: clamp(0rem, -2.649rem + 11.302vw, 7rem);
  --gap-8-0: clamp(0rem, -3.027rem + 12.916vw, 8rem);
  --gap-9-0: clamp(0rem, -3.406rem + 14.531vw, 9rem);
  --gap-10-0: clamp(0rem, -3.784rem + 16.145vw, 10rem);
  --gap-11-0: clamp(0rem, -4.162rem + 17.76vw, 11rem);
  --gap-12-0: clamp(0rem, -4.541rem + 19.374vw, 12rem);
  --gap-13-0: clamp(0rem, -4.919rem + 20.989vw, 13rem);
  --gap-14-0: clamp(0rem, -5.298rem + 22.603vw, 14rem);
  --gap-15-0: clamp(0rem, -5.676rem + 24.218vw, 15rem);
  --gap-16-0: clamp(0rem, -6.054rem + 25.832vw, 16rem);
}

/* ================================================================
   UTILITY .wp-*  — namespace, by NIE kolidować z motywem hosta.
   Headingi w sekcjach: używaj font-size: var(--h1..) lub klas .wp-h1..
   Odstępy/kontener: preferuj zmienne wprost (padding-block: var(--gap-8-4)).
================================================================ */

/* Kontener */
.wp-container        { width: var(--box-container); margin-inline: auto; }
.wp-container-narrow { width: var(--box-container-narrow); margin-inline: auto; }
.wp-container-xnarrow{ width: var(--box-container-extra-narrow); margin-inline: auto; }
.wp-width-full       { width: 100% !important; }

/* Skala nagłówków (opt-in, nie nadpisuje .h1..h6 motywu) */
.wp-h1 { font-size: var(--h1); line-height: 1.05; letter-spacing: -0.01em; }
.wp-h2 { font-size: var(--h2); line-height: 1.1;  letter-spacing: -0.005em; }
.wp-h3 { font-size: var(--h3); line-height: 1.2; }
.wp-h4 { font-size: var(--h4); line-height: 1.25; }
.wp-h5 { font-size: var(--h5); line-height: 1.3; }
.wp-h6 { font-size: var(--h6); line-height: 1.35; }
.wp-p  { font-size: var(--p);  line-height: 1.55; }

/* Wagi / dekoracje tekstu */
.wp-light   { font-weight: 300 !important; }
.wp-normal  { font-weight: 400 !important; }
.wp-medium  { font-weight: 500 !important; }
.wp-semibold{ font-weight: 600 !important; }
.wp-bold    { font-weight: 700 !important; }
.wp-uppercase { text-transform: uppercase !important; }
.wp-balance   { text-wrap: balance; }
.wp-underline { text-decoration: underline; }
.wp-text-center { text-align: center !important; }

/* Flex pomocnicze */
.wp-flex           { display: flex; }
.wp-items-center   { align-items: center !important; }
.wp-justify-center { justify-content: center !important; }

/* Promienie */
.wp-radius-5    { border-radius: var(--radius-5) !important; }
.wp-radius-10   { border-radius: var(--radius-10) !important; }
.wp-radius-15   { border-radius: var(--radius-15) !important; }
.wp-radius-20   { border-radius: var(--radius-20) !important; }
.wp-radius-full { border-radius: var(--radius-full) !important; }
.wp-radius-none { border-radius: 0 !important; }

/* Linia akcentu przed tekstem (kolor z motywu: currentColor) */
.wp-line-before { display: flex; align-items: center; }
.wp-line-before::before {
  content: ""; display: inline-block; height: 2px; width: 25px;
  background: currentColor; margin-right: 8px; flex: none;
}

/* Widoczność per breakpoint (750px = standard Dawn/Horizon/Pinnacle) */
@media (max-width: 749px) { .wp-hide-mobile  { display: none !important; } }
@media (min-width: 750px) { .wp-hide-desktop { display: none !important; } }
