/* ==========================================================================
   MANUMANIA — style landingow i stron informacyjnych
   --------------------------------------------------------------------------
   DLACZEGO OSOBNY PLIK, A NIE user.css:
   user.css jest kompilowany przez LESS razem z gc__user.less. LESS to nie CSS
   — traktuje "1 / 3" jako dzielenie, probuje rozwiazywac nieznane funkcje jak
   view() i wywraca sie na czesci nowoczesnej skladni. Gdy kompilacja padnie,
   Shoper nie produkuje ZADNEGO arkusza i cala skorka zostaje bez stylow.
   Zdarzylo sie to 02.09.2026.
   Ten plik jest podlaczany bezposrednio przez <link> w scripts/header.tpl,
   wiec idzie do przegladarki taki, jaki jest. Zaden kompilator go nie rusza.

   NIE PRZENOSIC TEJ ZAWARTOSCI Z POWROTEM DO user.css.
   W user.css zostaja wylacznie definicje zmiennych @gc__ dla GrowCommerce.

   Laduje sie PO skompilowanym LESS, wiec przy rownej specyficznosci wygrywa.
   ========================================================================== */

/* ===== MANUMANIA - fundament stylow =====
   Zgodne z Master Brief v1.1:
   - typografia   §0.2, §3.4, §3.5  Montserrat w naglowkach, Quicksand w tresci i UI
   - kolory       §3.2, §3.3        zielen #669933 jako marka, #4D7326 jako kolor tekstu
   - tla          §3.2              jedno neutralne tlo #F5F6F2
   - kontrast     §27.2             kazdy tekst i CTA zdaje WCAG 2.1 AA
   - rytm         §7.2              kontener 1340px, odstepy 48-104px
   Aktualizacja: 31.08.2026
   ------------------------------------------------------------------
   ZASADA KOLORU: --mm-green to kolor MARKI (obramowania, akcenty
   graficzne). Wszedzie, gdzie zielen niesie TEKST albo jest tlem pod
   bialym tekstem, obowiazuje --mm-green-dark. Powod: bialy tekst na
   #669933 daje 3,40:1, a WCAG AA wymaga 4,5:1. #4D7326 daje 5,27:1.
   ================================================================== */
/* fonty ladowane jednym zadaniem na gorze pliku - patrz linia 70 */

:root{
  --mm-green:#669933;
  --mm-green-dark:#4D7326;
  --mm-green-darker:#3E5D1F;
  --mm-graphite:#313130;
  --mm-bg:#F5F6F2;
  --mm-line:#E4E6DF;
  --mm-muted:#65685E;
  --mm-tint-soft:#EAF0E2;
  /* aliasy wstecznie zgodne - dawne trzy tla kremowe wskazuja teraz na jedno neutralne */
  --mm-cream:#F5F6F2;
  --mm-tint:#F5F6F2;
  --mm-sectionbg:#F5F6F2;
}

/* ---------- uklad ---------- */
/* Odstep miedzy modulami. Bylo clamp(48px,7vw,104px), czyli 202 px miedzy
   trescia dwoch sasiednich sekcji przy 1440 px. Po pierwszym zmniejszeniu 109 px,
   po drugim okolo 78 px. Lacznie ciasniej o 61 procent. */
.resetcss.fr-view .mm-section{padding:clamp(24px,2.7vw,41px) 24px;}
.resetcss.fr-view .mm-section-tint,
.resetcss.fr-view .mm-section-alt,
.resetcss.fr-view .mm-section--tint{
  background:var(--mm-bg);
  /* Pelna szerokosc ekranu. Landing siedzi w .centercol o ograniczonej
     szerokosci, wiec tlo trzeba rozciagnac sztucznie: cien o promieniu
     100vmax maluje kolor poza elementem, a clip-path przycina go w pionie
     do granic sekcji, zeby nie zachodzil na sasiednie moduly.
     Ta sama technika co w sekcji ciemnej i w zielonym pasie CTA. */
  box-shadow:0 0 0 100vmax var(--mm-bg);
  clip-path:inset(0 -100vmax);
}
.resetcss.fr-view .mm-section-dark{background:var(--mm-graphite);color:#fff;}
.resetcss.fr-view .mm-wrap{max-width:1340px;margin:0 auto;}
.resetcss.fr-view .mm-prose{max-width:72ch;}
.resetcss.fr-view .mm-center{text-align:center;}

/* ---------- typografia (§3.5) ---------- */
/* Skala zmniejszona wobec §3.5 decyzja wlasciciela marki z 31.08.2026:
   H1 40-45px zamiast 64-72px. Pozostale stopnie przeskalowane
   proporcjonalnie, zeby zachowac hierarchie. Do naniesienia w briefie. */
.resetcss.fr-view .mm-h1{font-family:'Montserrat',sans-serif !important;font-weight:700;color:var(--mm-graphite);font-size:clamp(30px,3.6vw,45px);line-height:1.12;letter-spacing:-.02em;margin:0 0 16px;text-wrap:balance;}
.resetcss.fr-view .mm-h2{font-family:'Montserrat',sans-serif !important;font-weight:600;color:var(--mm-green-dark);font-size:clamp(24px,2.6vw,33px);line-height:1.2;letter-spacing:-.015em;margin:0 0 16px;text-wrap:balance;}
.resetcss.fr-view .mm-h3{font-family:'Montserrat',sans-serif !important;font-weight:600;color:var(--mm-graphite);font-size:clamp(19px,1.8vw,24px);line-height:1.28;margin:0 0 10px;}
.resetcss.fr-view .mm-eyebrow{font-family:'Montserrat',sans-serif !important;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--mm-green-dark);margin:0 0 12px;}
.resetcss.fr-view .mm-lead{font-family:'Quicksand',sans-serif;font-weight:500;font-size:clamp(17px,1.4vw,21px);line-height:1.5;color:var(--mm-muted);margin:0 0 22px;max-width:62ch;}
.resetcss.fr-view .mm-body{font-family:'Quicksand',sans-serif;font-weight:400;color:var(--mm-graphite);line-height:1.65;font-size:clamp(16.5px,1.05vw,18px);}

/* ---------- przyciski (§27.2) ---------- */
.resetcss.fr-view .mm-btn{display:inline-block;font-family:'Quicksand',sans-serif;font-weight:600;padding:14px 30px;border-radius:8px;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .08s ease;font-size:16px;border:1.5px solid transparent;cursor:pointer;}
.resetcss.fr-view .mm-btn:focus-visible,.resetcss.fr-view .mm-pill:focus-visible,.resetcss.fr-view .mm-faq summary:focus-visible{outline:3px solid var(--mm-green-dark);outline-offset:2px;}
.resetcss.fr-view .mm-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--mm-green);color:var(--mm-green-dark);font-family:'Quicksand',sans-serif;font-weight:600;padding:12px 22px;border-radius:30px;text-decoration:none;font-size:15px;}

/* ---------- siatki ---------- */
.resetcss.fr-view .mm-grid{display:grid;gap:24px;}
.resetcss.fr-view .mm-grid-2{grid-template-columns:1fr 1fr;}
.resetcss.fr-view .mm-grid-3{grid-template-columns:1fr 1fr 1fr;}
.resetcss.fr-view .mm-grid-4{grid-template-columns:1fr 1fr 1fr 1fr;}
@media(max-width:900px){.resetcss.fr-view .mm-grid-2,.resetcss.fr-view .mm-grid-3,.resetcss.fr-view .mm-grid-4{grid-template-columns:1fr;}}

/* ---------- karty ---------- */
.resetcss.fr-view .mm-card{background:#fff;border-radius:14px;padding:32px;box-shadow:0 1px 3px rgba(49,49,48,.07);}
.resetcss.fr-view .mm-card-featured{border:2px solid var(--mm-green);position:relative;}
.resetcss.fr-view .mm-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--mm-green-dark);color:#fff;font-family:'Montserrat',sans-serif !important;font-weight:700;font-size:12px;letter-spacing:.05em;padding:6px 16px;border-radius:20px;white-space:nowrap;}
.resetcss.fr-view .mm-placeholder{background:repeating-linear-gradient(45deg,#E7E8E2,#E7E8E2 10px,#DDDFD7 10px,#DDDFD7 20px);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#65685E;font-family:'Quicksand',sans-serif;font-size:13px;font-style:italic;text-align:center;padding:16px;}

/* ===== Komponenty landingow potrzeb (§7.2) ===== */
.resetcss.fr-view .mm-hero-grid{display:grid;grid-template-columns:44fr 56fr;gap:48px;align-items:center;margin-bottom:8px;}
.resetcss.fr-view .mm-hero-grid .mm-placeholder{aspect-ratio:4/3;border-radius:16px;}
@media (max-width:900px){.resetcss.fr-view .mm-hero-grid{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-trust-line{margin-top:18px;font-family:'Quicksand',sans-serif;font-size:15px;color:var(--mm-muted);}

/* ===== Karty kategorii (strefa 3) =====
   Komponent scalony z PIĘCIU miejsc arkusza. Wartości są dokładnie te,
   które obowiązywały przed scaleniem — zmieniła się tylko organizacja.
   Wariant --bare to prawdziwy modyfikator, nie duplikat: zdejmuje tło,
   obramowanie i zaokrąglenie, żeby kartę niosło samo zdjęcie. Na tym
   landingu używa go cały komplet ośmiu kart, ale wersja podstawowa
   zostaje dla landingów, które jej potrzebują. */
.resetcss.fr-view .mm-need-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:900px){.resetcss.fr-view .mm-need-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.resetcss.fr-view .mm-need-grid{grid-template-columns:1fr;}}

.resetcss.fr-view .mm-need-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--mm-line);border-radius:14px;}
.resetcss.fr-view .mm-need-card .mm-placeholder{aspect-ratio:4/3;border-radius:0;margin:0;}
.resetcss.fr-view .mm-need-card-body{display:flex;flex-direction:column;flex:1;padding:16px 18px 20px;}

/* Wariant bez obwódki */
.resetcss.fr-view .mm-need-card--bare{background:transparent;border:none;border-radius:0;}
.resetcss.fr-view .mm-need-card--bare .mm-placeholder{border-radius:12px;}
.resetcss.fr-view .mm-need-card--bare .mm-need-card-body{padding:14px 2px 0;}

/* Nagłówek jako h3 — poprawna hierarchia bez przeskoku poziomu. Selektor
   przyjmuje też h4, żeby stary markup działał. min-height rezerwuje dwie
   linie, dzięki czemu opisy startują równo w obrębie rzędu. */
.resetcss.fr-view .mm-need-card-body h3,.resetcss.fr-view .mm-need-card-body h4{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:18px;min-height:2.6em;margin:0 0 6px;color:var(--mm-graphite);}
@media (max-width:560px){.resetcss.fr-view .mm-need-card-body h3,.resetcss.fr-view .mm-need-card-body h4{min-height:0;}}

/* Opis rozpycha kartę, link jest dociskany do dołu — dzięki temu w obrębie
   rzędu linki stoją równo mimo opisów o różnej długości (1-3 linie). */
.resetcss.fr-view .mm-need-card-body p{flex:1;font-family:'Quicksand',sans-serif;font-weight:400;font-size:15px;line-height:1.5;color:var(--mm-muted);margin:0 0 10px;}
.resetcss.fr-view .mm-need-card-body a{margin-top:auto;align-self:flex-start;font-family:'Quicksand',sans-serif;font-weight:600;font-size:15px;color:var(--mm-green-dark);text-decoration:none;}
.resetcss.fr-view .mm-need-card-body a:hover{text-decoration:underline;}

/* Strzałka z CSS, nie z treści — jednakowa we wszystkich i reaguje na najechanie. */
.resetcss.fr-view .mm-need-card-body a::after{content:"→";display:inline-block;margin-left:6px;transition:transform .18s ease;}
@media (hover:hover){.resetcss.fr-view .mm-need-card-body a:hover::after{transform:translateX(3px);}}
@media (prefers-reduced-motion:reduce){.resetcss.fr-view .mm-need-card-body a::after{transition:none;}}

/* ===== Karty trzech kierunków (strefa 4) =====
   Komponent scalony z SZEŚCIU miejsc arkusza, w których narastał kolejnymi
   nadpisaniami. Wartości są dokładnie te, które obowiązywały przed
   scaleniem — zmieniła się wyłącznie ich organizacja.

   Co zniknęło jako martwe: reguły .mm-tier h3 i h4 (w całości przesłonięte
   przez .mm-tier-name), .mm-tier .ico, .mm-tier-label, komplet
   .mm-tier-specs (ukryty i nieobecny w treści), .mm-tier .mm-badge oraz
   próg 800 px, który i tak przegrywał z późniejszym progiem 900 px.

   Zniknęła też reguła .mm-tier p i zbudowane na niej obejście z podwójną
   klasą (.mm-tier .mm-tier-ctx itd.). Powód pierwotny: .mm-tier p to klasa
   plus element, więc wygrywała z samą klasą .mm-tier-ctx niezależnie od
   kolejności. Skoro każdy akapit ma teraz komplet własnych deklaracji,
   reguła na element jest zbędna, a razem z nią całe obejście. */

:root{--mm-flag-h:40px;}

.resetcss.fr-view .mm-tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1180px;align-items:stretch;margin:calc(28px + var(--mm-flag-h) + 16px) auto 0;}
@media (max-width:900px){.resetcss.fr-view .mm-tier-grid{grid-template-columns:1fr 1fr;max-width:680px;}}
@media (max-width:640px){.resetcss.fr-view .mm-tier-grid{grid-template-columns:1fr;max-width:420px;margin-top:28px;}}

.resetcss.fr-view .mm-tier{display:flex;flex-direction:column;position:relative;overflow:hidden;padding:0;text-align:center;background:#fff;border:1px solid var(--mm-line);border-radius:14px;box-shadow:none;}

/* Polecany wysuwa się w górę DOKŁADNIE o wysokość wstęgi, dzięki czemu dolne
   krawędzie zdjęć wyrównują się same. Stąd wysokość wstęgi w zmiennej. */
.resetcss.fr-view .mm-tier--featured{border:2px solid var(--mm-green);box-shadow:0 10px 30px rgba(77,115,38,.10);margin-top:calc(-1 * var(--mm-flag-h));}
@media (max-width:640px){.resetcss.fr-view .mm-tier--featured{margin-top:0;}}

/* Wstęga MUSI mieścić się w jednej linii — dwie rozbijają stałą wysokość,
   od której zależy wyrównanie zdjęć. Stąd nowrap i skracanie wielokropkiem. */
.resetcss.fr-view .mm-tier-flag{display:none;}
.resetcss.fr-view .mm-tier--featured .mm-tier-flag{display:flex;align-items:center;justify-content:center;height:var(--mm-flag-h);padding:0 12px;background:var(--mm-green-dark);color:#fff;font-family:'Montserrat',sans-serif !important;font-weight:700;font-size:10.5px;letter-spacing:.05em;line-height:1.2;text-transform:uppercase;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media (max-width:420px){.resetcss.fr-view .mm-tier--featured .mm-tier-flag{font-size:9.5px;letter-spacing:.02em;padding:0 8px;}}

.resetcss.fr-view .mm-tier .mm-placeholder{aspect-ratio:4/3;border-radius:0;margin:0;}
.resetcss.fr-view .mm-tier-body{display:flex;flex-direction:column;align-items:center;flex:1;padding:22px 22px 26px;}

.resetcss.fr-view .mm-tier-name{font-family:'Montserrat',sans-serif !important;font-weight:700;font-size:clamp(20px,1.75vw,23px);line-height:1.12;letter-spacing:-.015em;color:var(--mm-graphite);margin:0 0 6px;}
.resetcss.fr-view .mm-tier--featured .mm-tier-name{font-size:clamp(21px,1.9vw,25px);color:var(--mm-green-dark);}

.resetcss.fr-view .mm-tier-product{font-family:'Quicksand',sans-serif;font-weight:600;font-size:15px;line-height:1.55;color:var(--mm-graphite);margin:0 0 12px;flex:1;}
.resetcss.fr-view .mm-tier-best{font-family:'Quicksand',sans-serif;font-weight:400;font-size:15px;line-height:1.55;color:var(--mm-muted);margin:0 0 20px;flex:1;}
.resetcss.fr-view .mm-tier-price{font-family:'Montserrat',sans-serif !important;font-weight:700;font-size:22px;line-height:1.55;letter-spacing:-.01em;color:var(--mm-graphite);margin:auto 0 2px;flex:1;}
.resetcss.fr-view .mm-tier-ctx{font-family:'Quicksand',sans-serif;font-weight:400;font-size:12.5px;line-height:1.4;color:var(--mm-muted);margin:0 0 18px;flex:1;}

.resetcss.fr-view .mm-tier-action{display:inline-block;align-self:center;font-family:'Quicksand',sans-serif;font-weight:600;font-size:15px;color:var(--mm-green-dark);text-decoration:none;margin-top:0;padding-bottom:2px;border-bottom:1.5px solid var(--mm-green);}
@media (hover:hover){.resetcss.fr-view .mm-tier-action:hover{color:var(--mm-graphite);border-bottom-color:var(--mm-graphite);}}
.resetcss.fr-view .mm-tier-action:focus-visible{outline:3px solid var(--mm-green-dark);outline-offset:3px;}

.resetcss.fr-view .mm-purpose-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:900px){.resetcss.fr-view .mm-purpose-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.resetcss.fr-view .mm-purpose-grid{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-purpose-card{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--mm-line);}
.resetcss.fr-view .mm-purpose-card .mm-placeholder{aspect-ratio:16/10;border-radius:0;margin:0;}
.resetcss.fr-view .mm-purpose-card-body{display:flex;flex-direction:column;flex:1;padding:16px 18px 20px;}
.resetcss.fr-view .mm-purpose-card-body h3,.resetcss.fr-view .mm-purpose-card-body h4{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:17px;margin:0 0 8px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-purpose-card-body ul{flex:1;margin:0;padding-left:18px;font-family:'Quicksand',sans-serif;font-size:14.5px;color:var(--mm-muted);line-height:1.6;}

/* ===== Strefa serii — sekcja z trzema markami =====
   Ciemne tło idzie na całą szerokość ekranu, jak pozostałe ciemne sekcje.
   Cztery kolumny: intro tekstowe i trzy marki. Podpis stoi NAD zdjęciem —
   nazwa i zakres serii są treścią, zdjęcie ilustracją.

   Kreska rozdzielająca jest pseudoelementem w środku odstępu, nie
   krawędzią kolumny. Dzięki temu WSZYSTKIE kolumny mają identyczną
   szerokość treści niezależnie od tego, czy akurat mają kreskę. Wersja
   na paddingu dawała pierwszej kolumnie zdjęcie szersze o 22 px, kiedy
   przy zwężeniu traciła kreskę.

   Zastąpiło komponent .mm-portfolio-*, który układał trzy równe karty
   ze zdjęciem u góry i podpisem pod spodem. */
.resetcss.fr-view .mm-serie{display:grid;grid-template-columns:1fr repeat(3,1.05fr);align-items:start;column-gap:56px;}
.resetcss.fr-view .mm-serie-intro .mm-h2{margin:0 0 18px;}
.resetcss.fr-view .mm-serie-intro p{margin:0 0 26px;}
.resetcss.fr-view .mm-serie-item{position:relative;}
.resetcss.fr-view .mm-serie-item::before{content:"";position:absolute;left:-28px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.14);}
.resetcss.fr-view .mm-serie-item h3{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:20px;line-height:1.3;margin:0 0 10px;color:#fff;}
.resetcss.fr-view .mm-serie-item p{margin:0 0 22px;font-family:'Quicksand',sans-serif;font-size:15px;line-height:1.55;color:#B9BCB1;}
.resetcss.fr-view .mm-serie-item .mm-placeholder{aspect-ratio:4/3;border-radius:12px;margin:0;}

/* Poniżej 1080 px intro przechodzi nad marki, żeby kolumny nie zrobiły się
   za wąskie na nazwę i zakres. Pierwsza marka traci kreskę, bo stoi przy
   krawędzi panelu — szerokość kolumny się przy tym nie zmienia. */
@media (max-width:1080px){
  .resetcss.fr-view .mm-serie{grid-template-columns:repeat(3,1fr);column-gap:44px;}
  .resetcss.fr-view .mm-serie-intro{grid-column:1 / -1;padding-bottom:34px;max-width:660px;}
  .resetcss.fr-view .mm-serie-intro .mm-h2 br{display:none;}
  .resetcss.fr-view .mm-serie-item::before{left:-22px;}
  .resetcss.fr-view .mm-serie-item:nth-child(2)::before{display:none;}
}

/* Poniżej 760 px jedna kolumna, kreski kładą się poziomo. */
@media (max-width:760px){
  .resetcss.fr-view .mm-serie{grid-template-columns:1fr;}
  .resetcss.fr-view .mm-serie-item{padding-top:24px;border-top:1px solid rgba(255,255,255,.14);}
  .resetcss.fr-view .mm-serie-item::before{display:none;}
}

/* ===== Rozwiązanie-bohater: zdjęcie po lewej, treść po prawej =====
   Zdjęcie jest szersze od kolumny tekstowej i rozciąga się na jej
   wysokość, więc obie kolumny kończą się na tym samym poziomie
   niezależnie od tego, ile punktów ma lista. Bez stretch zdjęcie
   o proporcji 4/3 kończyłoby się wysoko nad przyciskiem. */
.resetcss.fr-view .mm-hero-product-grid{display:grid;grid-template-columns:1.32fr .88fr;gap:52px;align-items:stretch;}
@media (max-width:900px){.resetcss.fr-view .mm-hero-product-grid{grid-template-columns:1fr;gap:32px;align-items:start;}}
.resetcss.fr-view .mm-hero-product-grid .mm-placeholder{height:100%;min-height:360px;border-radius:16px;margin:0;}
@media (max-width:900px){.resetcss.fr-view .mm-hero-product-grid .mm-placeholder{height:auto;min-height:0;aspect-ratio:4/3;}}
.resetcss.fr-view .mm-hero-product-grid .mm-eyebrow{margin-top:0;}

.resetcss.fr-view .mm-feature-list{list-style:none;margin:18px 0;padding:0;}
.resetcss.fr-view .mm-feature-list li{padding:8px 0 8px 26px;position:relative;font-family:'Quicksand',sans-serif;color:var(--mm-graphite);font-size:16px;}
.resetcss.fr-view .mm-feature-list li::before{content:'✓';position:absolute;left:0;color:var(--mm-green-dark);font-weight:700;}

/* ===== Strefa 8 — dwa moduły obok siebie =====
   Lewy odpowiada na pytanie „jaką techniką", prawy na „co jeszcze da się
   zmienić". Rozdziela je pionowa kreska rysowana pseudoelementem w środku
   odstępu, nie krawędzią kolumny — tak samo jak w strefie serii, żeby
   szerokość kolumn nie zależała od tego, czy kreska jest widoczna. */
.resetcss.fr-view .mm-duo{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;align-items:start;}
.resetcss.fr-view .mm-duo-col{position:relative;}
.resetcss.fr-view .mm-duo-col + .mm-duo-col::before{content:"";position:absolute;left:-32px;top:0;bottom:0;width:1px;background:var(--mm-line);}
@media (max-width:1000px){
  .resetcss.fr-view .mm-duo{grid-template-columns:1fr;row-gap:52px;}
  .resetcss.fr-view .mm-duo-col + .mm-duo-col::before{left:0;right:0;top:-26px;bottom:auto;width:auto;height:1px;}
}
.resetcss.fr-view .mm-duo .mm-sec-head{margin-bottom:0;}
.resetcss.fr-view .mm-duo .mm-h2{font-size:clamp(22px,2.1vw,28px);line-height:1.25;margin:0 0 12px;}
.resetcss.fr-view .mm-duo .mm-lead{font-size:16px;line-height:1.55;margin:0;}

/* ===== Techniki znakowania — karta z ikoną z lewej =====
   Ten sam schemat co pasek faktów: ikona w kolumnie pierwszej, tytuł i
   opis w drugiej, dzięki czemu tytuł i opis mają wspólną krawędź lewą. */
.resetcss.fr-view .mm-tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 0;}
@media (max-width:560px){.resetcss.fr-view .mm-tech-grid{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-tech-item{display:grid;grid-template-columns:auto 1fr;gap:0 14px;border:1px solid var(--mm-line);border-radius:14px;padding:18px;background:#fff;}
.resetcss.fr-view .mm-tech-item .mm-ico{grid-column:1;grid-row:1 / 3;--mm-ico-size:38px;color:var(--mm-green-dark);margin-top:1px;}
.resetcss.fr-view .mm-tech-item h3{grid-column:2;grid-row:1;font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:16px;line-height:1.3;margin:0 0 5px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-tech-item p{grid-column:2;grid-row:2;font-family:'Quicksand',sans-serif;font-size:13.5px;line-height:1.5;color:var(--mm-muted);margin:0;}

/* ===== Personalizacja — ikona w kółku, tytuł i zdanie obok ===== */
/* Jedna kolumna: prawy modul ma mniej tresci niz lewy, wiec w dwoch
   kolumnach konczyl sie o 235 px wyzej i zostawial kreske wiszaca w
   pustce. W jednej kolumnie zdania czytaja sie tez po jednej linii. */
.resetcss.fr-view .mm-brand-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-top:26px;}
.resetcss.fr-view .mm-brand-item{display:grid;grid-template-columns:auto 1fr;gap:0 14px;}
.resetcss.fr-view .mm-brand-item .mm-ico-circle{grid-column:1;grid-row:1 / 3;width:60px;height:60px;margin:0;}
.resetcss.fr-view .mm-brand-item .mm-ico{--mm-ico-size:36px;}
.resetcss.fr-view .mm-brand-item h3{grid-column:2;grid-row:1;font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:15.5px;line-height:1.3;margin:0 0 5px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-brand-item p{grid-column:2;grid-row:2;font-family:'Quicksand',sans-serif;font-size:13.5px;line-height:1.5;color:var(--mm-muted);margin:0;}

/* ===== Realizacje — karta ze zdjęciem z lewej =====
   Struktura tekstu jest STAŁA we wszystkich kartach: nazwa marki, potem
   trzy pary etykieta plus zdanie (Potrzeba, Rozwiązanie, Wykonanie),
   na końcu przycisk. Etykiety idą z treści, nie z CSS, bo są częścią
   wypowiedzi, a nie ozdobą — inaczej niż strzałki czy ptaszki.
   Zdjęcie rozciąga się na wysokość karty, a przycisk jest dociskany do
   dołu, żeby przy różnej długości zdań karty kończyły się równo. */
.resetcss.fr-view .mm-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px;}
@media (max-width:1100px){.resetcss.fr-view .mm-cases{grid-template-columns:1fr 1fr;}}
@media (max-width:700px){.resetcss.fr-view .mm-cases{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-case{display:grid;grid-template-columns:.95fr 1.05fr;gap:16px;align-items:stretch;border:1px solid var(--mm-line);border-radius:14px;padding:16px;background:#fff;}
.resetcss.fr-view .mm-case .mm-placeholder{height:100%;min-height:230px;border-radius:10px;margin:0;}
.resetcss.fr-view .mm-case-body{display:flex;flex-direction:column;}
.resetcss.fr-view .mm-case-body h3{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:16px;line-height:1.3;margin:0 0 12px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-case-row{margin:0 0 9px;}
.resetcss.fr-view .mm-case-row strong{display:block;font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:12.5px;line-height:1.3;color:var(--mm-green-dark);margin:0 0 2px;}
.resetcss.fr-view .mm-case-row span{display:block;font-family:'Quicksand',sans-serif;font-size:13.5px;line-height:1.45;color:var(--mm-muted);}
.resetcss.fr-view .mm-case-body .mm-btn{margin-top:auto;align-self:flex-start;padding:10px 18px;font-size:13.5px;}

/* Ponizej 520 px zdjecie idzie NAD tekst. W ukladzie obok siebie karta
   ma wtedy okolo 130 px na zdjecie przy 288 px wysokosci - pasek zamiast
   fotografii. */
@media (max-width:520px){
  .resetcss.fr-view .mm-case{grid-template-columns:1fr;gap:14px;}
  .resetcss.fr-view .mm-case .mm-placeholder{height:auto;min-height:0;aspect-ratio:16/9;}
}

/* Strzałka w przycisku z CSS, tak samo jak przy linkach kart produktowych. */
.resetcss.fr-view .mm-btn--arrow::after{content:"→";display:inline-block;margin-left:8px;transition:transform .18s ease;}
@media (hover:hover){.resetcss.fr-view .mm-btn--arrow:hover::after{transform:translateX(3px);}}
@media (prefers-reduced-motion:reduce){.resetcss.fr-view .mm-btn--arrow::after{transition:none;}}

.resetcss.fr-view .mm-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;}
@media (max-width:800px){.resetcss.fr-view .mm-faq-grid{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-faq{border-bottom:1px solid var(--mm-line);padding:14px 0;}
.resetcss.fr-view .mm-faq summary{cursor:pointer;font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:16px;color:var(--mm-graphite);list-style:none;position:relative;padding-right:24px;}
.resetcss.fr-view .mm-faq summary::-webkit-details-marker{display:none;}
.resetcss.fr-view .mm-faq summary::after{content:'+';position:absolute;right:0;top:0;color:var(--mm-green-dark);font-size:20px;line-height:1;}
.resetcss.fr-view .mm-faq[open] summary::after{content:'–';}
.resetcss.fr-view .mm-faq p{margin:10px 0 0;font-family:'Quicksand',sans-serif;font-size:15px;color:var(--mm-muted);line-height:1.6;}

.resetcss.fr-view .mm-final-cta{background:var(--mm-graphite);border-radius:20px;padding:clamp(32px,5vw,56px);display:flex;justify-content:space-between;align-items:center;gap:32px;color:#fff;}
.resetcss.fr-view .mm-final-cta h2,.resetcss.fr-view .mm-final-cta .mm-h2{color:#fff;margin:0 0 10px;}
.resetcss.fr-view .mm-final-cta p{color:#D2D4CB;margin:0;max-width:520px;font-family:'Quicksand',sans-serif;font-size:17px;line-height:1.55;}
.resetcss.fr-view .mm-final-cta-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0;}
/* nowrap trzyma etykietę w jednej linii tam, gdzie przycisk stoi obok
   tekstu i ma miejsce. Poniżej 800 px przycisk jest rozciągnięty na całą
   szerokość, więc nowrap nic już nie daje, a przy 320 px wypychał treść
   o 60 px poza ekran. */
.resetcss.fr-view .mm-final-cta-actions a{white-space:nowrap;}
@media (max-width:800px){.resetcss.fr-view .mm-final-cta{flex-direction:column;align-items:flex-start;text-align:left;}.resetcss.fr-view .mm-final-cta-actions{align-items:stretch;width:100%;}.resetcss.fr-view .mm-final-cta-actions a{text-align:center;white-space:normal;}}

@media (prefers-reduced-motion:reduce){.resetcss.fr-view .mm-btn{transition:none;}}

/* Quicksand ma wagi 300-700. Te elementy zadaly 800/900 pod Interem -
   bez tego przegladarka pogrubialaby je sztucznie. */
.gc__label__sale,.grow-more,.grow-less{font-weight:700 !important;}

/* ===== MANUMANIA - uzupelnienie biblioteki (landing potrzeby) ===== */

/* przyciski w hero i pod sekcjami */
.resetcss.fr-view .mm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}

/* strefa 10 - jak pracujemy */
/* ===== Proces — sześć etapów w rzędzie =====
   Bez numerów: kolejność niesie sam układ i strzałki, więc numer był
   trzecim znacznikiem tego samego. Etapy rozdziela strzałka rysowana
   pseudoelementem, ukrywana na ostatnim w rzędzie — progi są PRZEDZIAŁAMI,
   bo przy nakładających się zapytaniach reguła dla trzech kolumn działała
   dalej przy dwóch.
   Tytuł ma max-width, który wymusza łamanie na dwie linie także na
   krótszych hasłach — inaczej część stała w jednej, część w dwóch. */
.resetcss.fr-view .mm-proc{display:grid;grid-template-columns:repeat(6,1fr);column-gap:26px;row-gap:34px;margin-top:32px;}
@media (max-width:1200px){.resetcss.fr-view .mm-proc{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.resetcss.fr-view .mm-proc{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.resetcss.fr-view .mm-proc{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-proc-step{position:relative;}
.resetcss.fr-view .mm-proc-head{margin:0 0 14px;font-size:0;} /* font-size:0 zwija &nbsp;, ktore Froala zostawil po usunietej ikonie */
.resetcss.fr-view .mm-proc-head .mm-ico{--mm-ico-size:56px;color:var(--mm-green-dark);}
.resetcss.fr-view .mm-proc-step h3{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:15px;line-height:1.3;margin:0 0 6px;max-width:155px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-proc-step p{font-family:'Quicksand',sans-serif;font-size:13.5px;line-height:1.5;color:var(--mm-muted);margin:0;}
@media (max-width:480px){.resetcss.fr-view .mm-proc-step h3{max-width:none;}}

/* Strzałka biegnie OD krawędzi jednej ikony DO następnej, a nie stoi
   krótką kreską w środku odstępu. Ikona ma 56 px, więc linia zaczyna się
   66 px od lewej krawędzi etapu i sięga 18 px poza jego prawą krawędź —
   przy odstępie 26 px zostawia to około 8 px luzu przed kolejną ikoną.
   Grot jest osobnym pseudoelementem: kwadrat z dwoma krawędziami obrócony
   o 45 stopni, dzięki czemu ma tę samą grubość co linia. */
.resetcss.fr-view .mm-proc-step::after{content:"";position:absolute;top:28px;left:66px;right:-18px;height:0;border-top:2px dotted var(--mm-green);}
.resetcss.fr-view .mm-proc-step::before{content:"";position:absolute;top:24px;right:-18px;width:8px;height:8px;border-top:2px solid var(--mm-green);border-right:2px solid var(--mm-green);transform:rotate(45deg);}
.resetcss.fr-view .mm-proc-step:last-child::after,.resetcss.fr-view .mm-proc-step:last-child::before{content:none;}
@media (min-width:1201px){.resetcss.fr-view .mm-proc-step:nth-child(6n)::after,.resetcss.fr-view .mm-proc-step:nth-child(6n)::before{content:none;}}
@media (min-width:761px) and (max-width:1200px){.resetcss.fr-view .mm-proc-step:nth-child(3n)::after,.resetcss.fr-view .mm-proc-step:nth-child(3n)::before{content:none;}}
@media (min-width:481px) and (max-width:760px){.resetcss.fr-view .mm-proc-step:nth-child(2n)::after,.resetcss.fr-view .mm-proc-step:nth-child(2n)::before{content:none;}}
@media (max-width:480px){.resetcss.fr-view .mm-proc-step::after,.resetcss.fr-view .mm-proc-step::before{content:none;}}

/* Domówienie serii — poza ścieżką, bo to nie kolejny etap, tylko powrót
   do zapisanych ustaleń. */
.resetcss.fr-view .mm-proc-again{display:grid;grid-template-columns:auto 1fr;gap:0 16px;align-items:center;margin-top:40px;padding:20px 22px;border:1px solid var(--mm-line);border-left:3px solid var(--mm-green);border-radius:12px;background:#fff;}
.resetcss.fr-view .mm-proc-again .mm-ico-circle{width:56px;height:56px;margin:0;}
.resetcss.fr-view .mm-proc-again .mm-ico{--mm-ico-size:34px;}
.resetcss.fr-view .mm-proc-again h3{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:16px;line-height:1.3;margin:0 0 4px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-proc-again p{font-family:'Quicksand',sans-serif;font-size:14px;line-height:1.5;color:var(--mm-muted);margin:0;max-width:70ch;}
@media (max-width:520px){.resetcss.fr-view .mm-proc-again{grid-template-columns:1fr;gap:12px;}}

/* Ikony procesu. Każda przycięta do własnej zawartości — wszystkie mają
   zewnętrzny okrąg, więc wychodzą optycznie równe mimo różnych ramek
   w plikach źródłowych. */
.resetcss.fr-view .mm-ico--proc-1{-webkit-mask-image:url("../images/user/mm__proc-1-mowisz.svg");mask-image:url("../images/user/mm__proc-1-mowisz.svg");}
.resetcss.fr-view .mm-ico--proc-2{-webkit-mask-image:url("../images/user/mm__proc-2-dobieramy.svg");mask-image:url("../images/user/mm__proc-2-dobieramy.svg");}
.resetcss.fr-view .mm-ico--proc-3{-webkit-mask-image:url("../images/user/mm__proc-3-ustalamy.svg");mask-image:url("../images/user/mm__proc-3-ustalamy.svg");}
.resetcss.fr-view .mm-ico--proc-4{-webkit-mask-image:url("../images/user/mm__proc-4-projekt.svg");mask-image:url("../images/user/mm__proc-4-projekt.svg");}
.resetcss.fr-view .mm-ico--proc-5{-webkit-mask-image:url("../images/user/mm__proc-5-produkcja.svg");mask-image:url("../images/user/mm__proc-5-produkcja.svg");}
.resetcss.fr-view .mm-ico--proc-6{-webkit-mask-image:url("../images/user/mm__proc-6-dostawa.svg");mask-image:url("../images/user/mm__proc-6-dostawa.svg");}
.resetcss.fr-view .mm-ico--proc-7{-webkit-mask-image:url("../images/user/mm__proc-7-partia.svg");mask-image:url("../images/user/mm__proc-7-partia.svg");}

/* etykieta REALIZACJA / PROJEKT KONCEPCYJNY - wymog par. 3.7, 5.1, 17 */
.resetcss.fr-view .mm-label{display:inline-block;font-family:'Montserrat',sans-serif !important;font-weight:700;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;padding:4px 10px;border-radius:4px;margin-bottom:10px;}
.resetcss.fr-view .mm-label--real{background:var(--mm-tint-soft);color:var(--mm-green-dark);}
.resetcss.fr-view .mm-label--concept{background:#EDEDE8;color:#54574E;border:1px dashed #AFB2A7;}

/* drobny przypis pod sekcja */
.resetcss.fr-view .mm-note{font-family:'Quicksand',sans-serif;font-size:13.5px;color:var(--mm-muted);margin-top:14px;font-style:italic;}

/* naglowek sekcji wysrodkowany z leadem */
.resetcss.fr-view .mm-sec-head{max-width:64ch;margin:0 auto 8px;}
.resetcss.fr-view .mm-sec-head .mm-lead{margin-left:auto;margin-right:auto;}

/* zielone slowo-klucz w naglowku - par. 3.3 */
.resetcss.fr-view .mm-accent{color:var(--mm-green-dark);}

/* ===== MANUMANIA - poprawki ukladu przed powieleniem na 6 landingow ===== */

/* 1. Sekcja grafitowa zarzadza kolorami swoich dzieci.
      Bez tego kazdy landing wymagalby stylow inline. */
.resetcss.fr-view .mm-section-dark .mm-h1,
.resetcss.fr-view .mm-section-dark .mm-h2,
.resetcss.fr-view .mm-section-dark .mm-h3,
.resetcss.fr-view .mm-section-dark h2,
.resetcss.fr-view .mm-section-dark h3{color:#fff;}
.resetcss.fr-view .mm-section-dark .mm-lead,
.resetcss.fr-view .mm-section-dark .mm-body,
.resetcss.fr-view .mm-section-dark p{color:#D2D4CB;}
.resetcss.fr-view .mm-section-dark .mm-eyebrow{color:#9ED064;}
.resetcss.fr-view .mm-section-dark .mm-note{color:#B9BCB1;}
.resetcss.fr-view .mm-section-dark .mm-placeholder{background:repeating-linear-gradient(45deg,#3D3D3B,#3D3D3B 10px,#454543 10px,#454543 20px);color:#9C9F95;}



/* 4. Breadcrumb - wymog par. 7.2 strefa 1 */
.resetcss.fr-view .mm-breadcrumb{font-family:'Quicksand',sans-serif;font-size:14px;color:var(--mm-muted);margin:0 0 20px;}
.resetcss.fr-view .mm-breadcrumb a{color:var(--mm-muted);text-decoration:none;}
.resetcss.fr-view .mm-breadcrumb a:hover{color:var(--mm-green-dark);text-decoration:underline;}
.resetcss.fr-view .mm-breadcrumb span{margin:0 7px;color:var(--mm-muted);}

/* 5. Callout "poza katalogiem" - komunikat kluczowy z par. 2.6 */
.resetcss.fr-view .mm-callout{background:#fff;border:1px solid var(--mm-line);border-left:3px solid var(--mm-green);border-radius:12px;padding:30px 34px;display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:center;}
@media (max-width:800px){.resetcss.fr-view .mm-callout{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-callout h2,.resetcss.fr-view .mm-callout .mm-h2{margin:0 0 8px;}
.resetcss.fr-view .mm-callout p{margin:0;font-family:'Quicksand',sans-serif;font-size:16px;color:var(--mm-muted);line-height:1.6;}
.resetcss.fr-view .mm-callout .mm-actions{margin-top:0;justify-content:flex-end;}
@media (max-width:800px){.resetcss.fr-view .mm-callout .mm-actions{justify-content:flex-start;}}

/* 6. Realizacje: 1 duzy + 2 mniejsze wg par. 7.2 strefa 9 */

/* 7. Lista scenariuszy bez numeracji - to rownolegle sytuacje, nie sekwencja */
.resetcss.fr-view .mm-scenario-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px;}
@media (max-width:900px){.resetcss.fr-view .mm-scenario-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.resetcss.fr-view .mm-scenario-grid{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-scenario{border-left:2px solid var(--mm-green);padding:2px 0 2px 16px;}
.resetcss.fr-view .mm-scenario strong{display:block;font-family:'Quicksand',sans-serif;font-weight:600;font-size:15.5px;line-height:1.45;color:var(--mm-graphite);margin:0 0 6px;}
.resetcss.fr-view .mm-scenario span{display:block;font-family:'Quicksand',sans-serif;font-weight:400;font-size:15px;line-height:1.5;color:var(--mm-muted);}
.resetcss.fr-view .mm-actions--center{justify-content:center;}
@media (prefers-reduced-motion:reduce){.resetcss.fr-view .mm-btn:active{transform:none;}}

/* ===== Przyciski sklepu - ten sam schemat co .mm-btn =====
   Kolory ida ze zmiennych @gc__shop__now (spoczynek #4D7326) i
   @gc__shop__now__hover (najechanie #313130) na gorze tego pliku.
   Ponizej tylko ZACHOWANIE, ktorego zmienne nie obsluguja:

   1. Szablon deklaruje :hover bez oslony, wiec na dotyku przycisk
      potrafi zostac w kolorze najechania po tapnieciu. Ponizej
      wymuszamy powrot do koloru spoczynku na urzadzeniach bez myszy.
   2. Dochodzi :active - jedyny stan, ktory realnie dziala na dotyku.
   3. Dochodzi widoczny fokus klawiatury (par. 27.2).
   ========================================================== */

.btn.btn-red,
.btn.addtobasket,
.btn.btn-red.btn-red,
button.btn.btn-red,
.btn.btn-red.addtobasket{
  transition:background-color .18s ease,border-color .18s ease,transform .08s ease;
}

/* 1. urzadzenia bez myszy - najechanie nie moze sie zakleszczyc */
@media (hover:none){
  .btn.btn-red:hover,
  .btn.addtobasket:hover,
  .btn.btn-red.btn-red:hover,
  button.btn.btn-red:hover,
  .btn.btn-red.addtobasket:hover{
    background-color:#4D7326 !important;
    border-color:#4D7326 !important;
    color:#fff !important;
  }
}

/* 2. wcisniecie - dziala i na dotyku, i pod myszka */
.btn.btn-red:active,
.btn.addtobasket:active,
.btn.btn-red.btn-red:active,
button.btn.btn-red:active,
.btn.btn-red.addtobasket:active{
  background-color:#1F1F1E !important;
  border-color:#1F1F1E !important;
  color:#fff !important;
  transform:translateY(1px);
}

/* 3. fokus klawiatury */
.btn.btn-red:focus-visible,
.btn.addtobasket:focus-visible,
button.btn.btn-red:focus-visible{
  outline:3px solid #4D7326;
  outline-offset:2px;
}

@media (prefers-reduced-motion:reduce){
  .btn.btn-red,.btn.addtobasket,button.btn.btn-red{transition:none;}
  .btn.btn-red:active,.btn.addtobasket:active,button.btn.btn-red:active{transform:none;}
}

/* ===== MANUMANIA - rytm i kompozycja =====
   Zrodlo interesujacosci wg par. 3.8: uklad i typografia, nie ozdobniki.
   Zero nowych kolorow, zero ciezkich cieni, zero pigulek.
   ========================================================== */

/* --- 1. Naglowek sekcji do lewej. Przelamuje monotonie srodkowania. --- */
.resetcss.fr-view .mm-sec-head--left{max-width:none;margin:0 0 8px;text-align:left;}
.resetcss.fr-view .mm-sec-head--left .mm-lead{margin-left:0;margin-right:0;}

/* --- 2. Nadtytul z kreska. Drobny detal redakcyjny. --- */
.resetcss.fr-view .mm-eyebrow--rule{display:flex;align-items:center;gap:14px;}
.resetcss.fr-view .mm-eyebrow--rule::after{content:"";flex:1;height:1px;background:var(--mm-line);max-width:120px;}
.resetcss.fr-view .mm-sec-head--left .mm-eyebrow--rule::after{max-width:none;}

/* --- 3. Duze liczby zamiast malych kolek. Brief prosi o nie wprost (rozdz. 7 modul 7). --- */

/* --- 4. Sekcja na pelna szerokosc ekranu. Jeden mocny przelam na stronie. --- */
/* Kolor rozlania bierze sie ze zmiennej, wiec ten sam modyfikator obsluguje
   sekcje grafitowa i zielona. Domyslnie grafit, zeby nie zmienic strefy 6. */
.resetcss.fr-view .mm-section--bleed{box-shadow:0 0 0 100vmax var(--mm-bleed,var(--mm-graphite));clip-path:inset(0 -100vmax);}


/* --- 6. Technologie: numer + kreska zamiast pudelka --- */

/* --- 7. Hero: zdjecie wchodzi pod nastepna sekcje --- */
.resetcss.fr-view .mm-hero-grid--overlap{align-items:stretch;}
.resetcss.fr-view .mm-hero-grid--overlap .mm-placeholder{aspect-ratio:auto;min-height:clamp(280px,38vw,460px);}
.resetcss.fr-view .mm-hero-grid--overlap > div:first-child{display:flex;flex-direction:column;justify-content:center;}

/* --- 8. Pasek kompetencji pod hero. Tylko fakty, ktore sa prawdziwe. --- */
/* ===== Pasek faktów — kanoniczny element wszystkich landingów =====
   Układ dwukolumnowy: ikona w kolumnie pierwszej, tytuł i opis w drugiej.
   Dzięki temu tytuł i opis mają WSPÓLNĄ krawędź lewą — wcześniej tytuł był
   odsunięty o szerokość ikony, a opis wracał do krawędzi kontenera.

   Progi kolumn wynikają z pomiaru, nie z okrągłych liczb. Przy czterech
   kolumnach najdłuższy tytuł potrzebuje ok. 233 px na fakt, co z odstępami
   28 px daje ok. 1016 px treści — przy 901 px dawało to 30 px przewijania
   poziomego. Przy 375 px dwie kolumny dawały 107 px przewijania, bo na
   tytuł zostawało ok. 90 px. Stąd dwa progi: 1100 px i 640 px.

   Ikona ma 52 px. Zmierzone: przy 56 px i więcej opisy rozjeżdżają się na
   3/4/5 linii, przy 52 px i mniej na 3/4/4. */
.resetcss.fr-view .mm-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0 28px;border-top:1px solid var(--mm-line);margin-top:44px;}
@media (max-width:1100px){.resetcss.fr-view .mm-facts{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.resetcss.fr-view .mm-facts{grid-template-columns:1fr;}}
.resetcss.fr-view .mm-fact{display:grid;grid-template-columns:auto 1fr;gap:0 14px;align-items:start;padding:22px 22px 6px 0;}
@media (max-width:640px){.resetcss.fr-view .mm-fact{padding:18px 0 6px;}}
.resetcss.fr-view .mm-fact .mm-ico-img{margin:0;grid-row:1;grid-column:1;width:52px;height:52px;}
@media (max-width:800px){.resetcss.fr-view .mm-fact .mm-ico-img{width:48px;height:48px;}}
.resetcss.fr-view .mm-fact-body{grid-row:1;grid-column:2;font-family:'Quicksand',sans-serif;font-size:14px;color:var(--mm-muted);line-height:1.5;}
.resetcss.fr-view .mm-fact-body strong{display:block;margin:0 0 6px;max-width:none;min-height:0;}
.resetcss.fr-view .mm-fact strong{font-family:'Montserrat',sans-serif !important;font-weight:600;font-size:16px;color:var(--mm-graphite);}
.resetcss.fr-view .mm-fact span{font-family:'Quicksand',sans-serif;font-size:14px;color:var(--mm-muted);line-height:1.5;}

/* --- 9. Delikatne wejscie sekcji przy przewijaniu.
       Progresywne: dziala tylko tam, gdzie przegladarka to wspiera,
       i wylacza sie przy ograniczonej animacji. Bez JS. --- */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    @keyframes mmRise{from{transform:translateY(16px);}to{transform:none;}}
    .resetcss.fr-view .mm-reveal{animation:mmRise linear both;animation-timeline:view();animation-range:entry 0% entry 42%;}
  }
}



/* ===== Przyciski: nowe najechanie =====
   Zamiast zmiany koloru na grafit - ODWROCENIE przycisku.
   Biale wypelnienie wjezdza od dolu, tekst i obwodka staja sie zielone.
   Zostajemy w jednym kolorze marki, a zmiana jest jednoznaczna.
   Zrobione na background-size, bez pseudoelementow - nic sie nie nakłada
   i nie ma problemow z kolejnoscia warstw.
   ====================================================== */

.resetcss.fr-view .mm-btn-primary{
  background-color:var(--mm-green-dark);color:#fff !important;
  background-image:linear-gradient(#fff,#fff);
  background-repeat:no-repeat;
  background-position:50% 100%;
  background-size:100% 0%;
  border-color:var(--mm-green-dark);
  transition:background-size .26s cubic-bezier(.4,0,.2,1),color .2s ease,border-color .2s ease,transform .08s ease;
}
@media (hover:hover){
  .resetcss.fr-view .mm-btn-primary:hover{background-size:100% 100%;color:var(--mm-green-dark) !important;}
}
.resetcss.fr-view .mm-btn-primary:focus-visible{background-size:100% 100%;color:var(--mm-green-dark) !important;background-color:var(--mm-green-dark);}
/* wcisniecie wraca do pelnego wypelnienia - wyrazna reakcja na dotyku */
.resetcss.fr-view .mm-btn-primary:active{background-size:100% 0%;background-color:var(--mm-green-darker);color:#fff !important;transform:translateY(1px);}

/* Secondary odwraca sie tak samo, tylko w graficie - zeby oba przyciski
   dzialaly wedlug tej samej logiki, ale nigdy nie wygladaly identycznie. */
.resetcss.fr-view .mm-btn-outline{
  background-color:transparent;border:1.5px solid var(--mm-graphite);color:var(--mm-graphite) !important;
  background-image:linear-gradient(var(--mm-graphite),var(--mm-graphite));
  background-repeat:no-repeat;
  background-position:50% 100%;
  background-size:100% 0%;
  transition:background-size .26s cubic-bezier(.4,0,.2,1),color .2s ease,transform .08s ease;
}
@media (hover:hover){
  .resetcss.fr-view .mm-btn-outline:hover{background-size:100% 100%;color:#fff !important;}
}
.resetcss.fr-view .mm-btn-outline:focus-visible{background-size:100% 100%;color:#fff !important;}
.resetcss.fr-view .mm-btn-outline:active{background-size:100% 100%;background-image:linear-gradient(#1F1F1E,#1F1F1E);color:#fff !important;transform:translateY(1px);}

.resetcss.fr-view .mm-btn-outline-light{
  background-color:transparent;border:1.5px solid #fff;color:#fff !important;
  background-image:linear-gradient(#fff,#fff);
  background-repeat:no-repeat;
  background-position:50% 100%;
  background-size:100% 0%;
  transition:background-size .26s cubic-bezier(.4,0,.2,1),color .2s ease,transform .08s ease;
}
@media (hover:hover){
  .resetcss.fr-view .mm-btn-outline-light:hover{background-size:100% 100%;color:var(--mm-graphite) !important;}
}
.resetcss.fr-view .mm-btn-outline-light:focus-visible{background-size:100% 100%;color:var(--mm-graphite) !important;}
.resetcss.fr-view .mm-btn-outline-light:active{background-size:100% 100%;color:var(--mm-graphite) !important;transform:translateY(1px);}

@media (prefers-reduced-motion:reduce){
  .resetcss.fr-view .mm-btn-primary,.resetcss.fr-view .mm-btn-outline,.resetcss.fr-view .mm-btn-outline-light{transition:color .12s ease;}
}






/* Przyciski w hero: gdy mieszcza sie obok siebie - dziela szerokosc rowno,
   gdy nie - kazdy bierze pelna linie. Bez tego zawijaly sie w pion
   z roznymi szerokosciami, co wyglada na przypadek, nie na decyzje. */
.resetcss.fr-view .mm-hero-grid .mm-actions{gap:12px;}
.resetcss.fr-view .mm-hero-grid .mm-actions .mm-btn{flex:1 1 auto;text-align:center;}

/* ===== IKONY MANUMANII =====
   Format: SVG liniowe, viewBox 0 0 24 24, stroke 1.75, bez fill,
   bez atrybutow width/height, bez metadanych edytora.
   Lokalizacja: images/user/mm__nazwa.svg
   Prefiks mm__ odrozniaja od zestawu gc__ nalezacego do szablonu.

   Sposob uzycia: maska CSS. Plik jest cache'owany jak obrazek,
   a kolor bierze sie z background-color, wiec ikona reaguje na
   hover, stan aktywny i sekcje ciemna bez duplikowania plikow.

   <span class="mm-ico" style="--ico:url(...)"></span>  <- nie tak
   Zamiast tego klasa na ikone, np. .mm-ico--haft (nizej wzor). */

.resetcss.fr-view .mm-ico{
  display:inline-block;
  width:var(--mm-ico-size,24px);
  height:var(--mm-ico-size,24px);
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
  flex-shrink:0;
  vertical-align:middle;
}
.resetcss.fr-view .mm-ico--lg{--mm-ico-size:32px;}
.resetcss.fr-view .mm-ico--sm{--mm-ico-size:18px;}

/* Deklaracje ikon. Plik idzie przez maskę, więc kolor bierze się z
   background-color i jedna ikona obsługuje tło jasne i ciemne.
   Wszystkie osiem narysowane w tej samej ramce 1254 px, więc mają
   wspólny kadr 137 120 1018 1018 — dzięki temu zachowują wzajemne
   proporcje z projektu zamiast być przycinane każda osobno. */
.resetcss.fr-view .mm-ico--zn-haft{-webkit-mask-image:url("../images/user/mm__zn-haft.svg");mask-image:url("../images/user/mm__zn-haft.svg");}
.resetcss.fr-view .mm-ico--zn-dtf{-webkit-mask-image:url("../images/user/mm__zn-dtf.svg");mask-image:url("../images/user/mm__zn-dtf.svg");}
.resetcss.fr-view .mm-ico--zn-sublimacja{-webkit-mask-image:url("../images/user/mm__zn-sublimacja.svg");mask-image:url("../images/user/mm__zn-sublimacja.svg");}
.resetcss.fr-view .mm-ico--zn-grawer{-webkit-mask-image:url("../images/user/mm__zn-grawer.svg");mask-image:url("../images/user/mm__zn-grawer.svg");}
.resetcss.fr-view .mm-ico--ps-kolor{-webkit-mask-image:url("../images/user/mm__ps-kolor.svg");mask-image:url("../images/user/mm__ps-kolor.svg");}
.resetcss.fr-view .mm-ico--ps-miejsce{-webkit-mask-image:url("../images/user/mm__ps-miejsce.svg");mask-image:url("../images/user/mm__ps-miejsce.svg");}
.resetcss.fr-view .mm-ico--ps-metka{-webkit-mask-image:url("../images/user/mm__ps-metka.svg");mask-image:url("../images/user/mm__ps-metka.svg");}
.resetcss.fr-view .mm-ico--ps-opakowanie{-webkit-mask-image:url("../images/user/mm__ps-opakowanie.svg");mask-image:url("../images/user/mm__ps-opakowanie.svg");}

/* kolo pod ikone - uzywane w .mm-tier i .mm-brand-item */
.resetcss.fr-view .mm-ico-circle{
  width:52px;height:52px;border-radius:50%;
  background:var(--mm-tint-soft);color:var(--mm-green-dark);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;flex-shrink:0;
}
.resetcss.fr-view .mm-section-dark .mm-ico-circle{background:rgba(255,255,255,.10);color:#9ED064;}

/* ===== Ikony paska faktow =====
   Sa DWUKOLOROWE (grafit + zielony tint), wiec nie moga isc przez maske CSS -
   maska splaszcza wszystko do jednego koloru. Uzywamy tla graficznego.
   Rozmiar 56px: ponizej 48px detale tych ilustracji zlewaja sie w plame. */
.resetcss.fr-view .mm-ico-img{
  display:block;width:56px;height:56px;
  background-repeat:no-repeat;background-position:left center;background-size:contain;
  margin:0 0 12px;flex-shrink:0;
}
.resetcss.fr-view .mm-ico--polska{background-image:url("../images/user/mm__polska.svg");}
.resetcss.fr-view .mm-ico--technologie{background-image:url("../images/user/mm__technologie.svg");}
.resetcss.fr-view .mm-ico--probka{background-image:url("../images/user/mm__probka.svg");}
.resetcss.fr-view .mm-ico--ps{background-image:url("../images/user/mm__ps.svg");}

@media (max-width:800px){.resetcss.fr-view .mm-ico-img{width:48px;height:48px;}}







/* ===== Finalne CTA — zielony pas =====
   Zieleń jest CIEMNA (#4D7326), nie markowa (#669933). Biały tekst na
   markowej daje 3,40:1 i nie przechodzi progu 4,5 dla treści; na ciemnej
   ma 5,53:1. Z tego samego powodu lead jest czysto biały, a nie przygaszony
   — przygaszona szarość z sekcji grafitowej dałaby tu 2,27:1.
   Zdjęcie dochodzi do prawej krawędzi ekranu i znika poniżej 1000 px,
   gdzie zabrałoby miejsce tekstowi. */
.resetcss.fr-view .mm-cta-band{--mm-bleed:var(--mm-green-dark);position:relative;overflow:hidden;background:var(--mm-green-dark);color:#fff;padding-top:clamp(40px,4.5vw,64px);padding-bottom:clamp(40px,4.5vw,64px);}
.resetcss.fr-view .mm-cta-band .mm-wrap{position:relative;z-index:1;}
.resetcss.fr-view .mm-cta-band-inner{display:grid;grid-template-columns:minmax(0,1.15fr) auto;gap:28px 48px;align-items:center;max-width:900px;}
@media (max-width:760px){.resetcss.fr-view .mm-cta-band-inner{grid-template-columns:1fr;align-items:start;}}
.resetcss.fr-view .mm-cta-band .mm-h2{color:#fff;margin:0 0 10px;}
.resetcss.fr-view .mm-cta-band p{margin:0;font-family:'Quicksand',sans-serif;font-size:16px;line-height:1.55;color:#fff;max-width:52ch;}
.resetcss.fr-view .mm-cta-band-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
.resetcss.fr-view .mm-btn-light{background:#fff;color:var(--mm-green-dark) !important;}
@media (hover:hover){.resetcss.fr-view .mm-btn-light:hover{background:var(--mm-tint-soft);}}
.resetcss.fr-view .mm-btn-light:active{background:var(--mm-tint-soft);transform:translateY(1px);}
.resetcss.fr-view .mm-cta-band-link{font-family:'Quicksand',sans-serif;font-weight:600;font-size:14.5px;color:#fff;text-decoration:none;padding:2px 0;}
.resetcss.fr-view .mm-cta-band-link:hover{text-decoration:underline;}
.resetcss.fr-view .mm-cta-band-link:focus-visible{outline:3px solid #fff;outline-offset:3px;}
.resetcss.fr-view .mm-cta-band-photo{position:absolute;top:0;right:0;bottom:0;width:32%;min-width:280px;z-index:0;border-radius:0;}
.resetcss.fr-view .mm-cta-band-photo.mm-placeholder{background:repeating-linear-gradient(45deg,#456B22,#456B22 10px,#4D7326 10px,#4D7326 20px);color:#EAF0E2;border-radius:0;}
@media (max-width:1000px){.resetcss.fr-view .mm-cta-band-photo{display:none;}}

/* ===== Kadry zdjęć na wąskich ekranach =====
   Przy jednej kolumnie zdjęcie 4:3 zajmuje 245 px z 395 px karty, czyli
   ponad połowę. Strefa 3 z ośmioma kartami dawała przez to 3216 px, czyli
   cztery ekrany telefonu na samą listę kategorii. Kadr 16:9 skraca każdą
   kartę o ok. 60 px, nie zabierając zdjęciu czytelności. */
@media (max-width:560px){
  .resetcss.fr-view .mm-need-card .mm-placeholder{aspect-ratio:16/9;}
  .resetcss.fr-view .mm-purpose-card .mm-placeholder{aspect-ratio:16/9;}
}

/* ===== Link w karcie sytuacji (strefa 2) =====
   Karty opisują sytuację czytelnika i do tej pory nie prowadziły nigdzie —
   najsilniejszy moment strony był ślepym zaułkiem. Treść linku jest RÓŻNA
   w każdej karcie, żeby nie powtórzyć problemu ośmiu identycznych „Zobacz
   możliwości" w strefie 3. Karta układa się w kolumnę, link jest dociskany
   do dołu, więc w obrębie rzędu linki stoją równo. */
.resetcss.fr-view .mm-purpose-card-body a{margin-top:14px;align-self:flex-start;font-family:'Quicksand',sans-serif;font-weight:600;font-size:14.5px;color:var(--mm-green-dark);text-decoration:none;}
.resetcss.fr-view .mm-purpose-card-body a::after{content:"→";display:inline-block;margin-left:6px;transition:transform .18s ease;}
@media (hover:hover){
  .resetcss.fr-view .mm-purpose-card-body a:hover{text-decoration:underline;}
  .resetcss.fr-view .mm-purpose-card-body a:hover::after{transform:translateX(3px);}
}
@media (prefers-reduced-motion:reduce){.resetcss.fr-view .mm-purpose-card-body a::after{transition:none;}}

/* Stan fokusu dla linków, które dotąd miały tylko domyślny obrys przeglądarki. */
.resetcss.fr-view .mm-need-card-body a:focus-visible,
.resetcss.fr-view .mm-purpose-card-body a:focus-visible,
.resetcss.fr-view .mm-breadcrumb a:focus-visible{outline:3px solid var(--mm-green-dark);outline-offset:3px;}

/* ===== Strony informacyjne: bez powtórzonego tytułu =====
   Szablon info/index.tpl wypisuje nazwę strony w .boxhead jako <span>,
   nad właściwą treścią. Przy landingach dawałoby to dwa tytuły jeden nad
   drugim, bo landing niesie własny nagłówek.
   Zakres: WSZYSTKIE strony informacyjne — decyzja z 2 września 2026,
   bo wszystkie mają zostać przebudowane z własnym nagłówkiem w treści.
   UWAGA: do czasu przebudowy strona bez własnego nagłówka w treści
   zostaje bez widocznego tytułu. Dotyczy jedenastu istniejących stron.
   Selektor celuje w .box_infopage, więc nagłówki kategorii, produktów
   i pozostałych bloków sklepu pozostają nietknięte. */
.box_infopage > .boxhead{display:none;}

/* ==========================================================================
   WZMOCNIENIE SPECYFICZNOSCI — NAGLOWKI W MONTSERRACIE
   --------------------------------------------------------------------------
   GrowCommerce narzuca Quicksand calej stronie regula o specyficznosci (0,7,1)
   z !important — lancuch 24 :not() w skompilowanym LESS. Gdy obie deklaracje
   sa !important, rozstrzyga specyficznosc, wiec .mm-h1 (0,1,0) przegrywalo
   MIMO wlasnego !important. Zmierzone na zywo 02.09.2026: naglowki wychodzily
   w Quicksandzie 19,5 px zamiast Montserrata 33 px.
   Prefiks .resetcss.fr-view daje 2 klasy, powtorzenie klasy landingu dokłada 6,
   razem (0,8,0) — bije (0,7,1). Brief §3.4 wymaga Montserrata w naglowkach.
   NIE SKRACAC tych selektorow — kazde powtorzenie jest policzone.
   ========================================================================== */
  .resetcss.fr-view .mm-h1.mm-h1.mm-h1.mm-h1.mm-h1.mm-h1,
  .resetcss.fr-view .mm-h2.mm-h2.mm-h2.mm-h2.mm-h2.mm-h2,
  .resetcss.fr-view .mm-h3.mm-h3.mm-h3.mm-h3.mm-h3.mm-h3,
  .resetcss.fr-view .mm-eyebrow.mm-eyebrow.mm-eyebrow.mm-eyebrow.mm-eyebrow.mm-eyebrow,
  .resetcss.fr-view .mm-badge.mm-badge.mm-badge.mm-badge.mm-badge.mm-badge,
  .resetcss.fr-view .mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body h3,
  .resetcss.fr-view .mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body.mm-need-card-body h4,
  .resetcss.fr-view .mm-tier--featured .mm-tier-flag.mm-tier-flag.mm-tier-flag.mm-tier-flag.mm-tier-flag.mm-tier-flag,
  .resetcss.fr-view .mm-tier-name.mm-tier-name.mm-tier-name.mm-tier-name.mm-tier-name.mm-tier-name,
  .resetcss.fr-view .mm-tier-price.mm-tier-price.mm-tier-price.mm-tier-price.mm-tier-price.mm-tier-price,
  .resetcss.fr-view .mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body h3,
  .resetcss.fr-view .mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body.mm-purpose-card-body h4,
  .resetcss.fr-view .mm-serie-item.mm-serie-item.mm-serie-item.mm-serie-item.mm-serie-item.mm-serie-item h3,
  .resetcss.fr-view .mm-tech-item.mm-tech-item.mm-tech-item.mm-tech-item.mm-tech-item.mm-tech-item h3,
  .resetcss.fr-view .mm-brand-item.mm-brand-item.mm-brand-item.mm-brand-item.mm-brand-item.mm-brand-item h3,
  .resetcss.fr-view .mm-case-body.mm-case-body.mm-case-body.mm-case-body.mm-case-body.mm-case-body h3,
  .resetcss.fr-view .mm-case-row.mm-case-row.mm-case-row.mm-case-row.mm-case-row.mm-case-row strong,
  .resetcss.fr-view .mm-faq.mm-faq.mm-faq.mm-faq.mm-faq.mm-faq summary,
  .resetcss.fr-view .mm-proc-step.mm-proc-step.mm-proc-step.mm-proc-step.mm-proc-step.mm-proc-step h3,
  .resetcss.fr-view .mm-proc-again.mm-proc-again.mm-proc-again.mm-proc-again.mm-proc-again.mm-proc-again h3,
  .resetcss.fr-view .mm-label.mm-label.mm-label.mm-label.mm-label.mm-label,
  .resetcss.fr-view .mm-fact.mm-fact.mm-fact.mm-fact.mm-fact.mm-fact strong
  {font-family:'Montserrat',sans-serif !important;}

/* ==========================================================================
   IKONY JAKO PSEUDO-ELEMENTY
   --------------------------------------------------------------------------
   DLACZEGO NIE PRZEZ <span> W HTML:
   Edytor Froala w panelu Shopera USUWA puste elementy inline przy zapisie —
   uznaje je za smieci po formatowaniu. Zmierzone na zywo 02.09.2026: wszystkie
   20 elementow ikon zniknelo, a <div class="mm-proc-head"> zostal z samym
   &nbsp; w srodku. Kolka .mm-ico-circle tez zostaly skasowane.
   Pseudo-elementu Froala usunac nie moze, bo nie istnieje w HTML.
   Dzieki temu ikony wracaja po samym wgraniu CSS — bez wklejania stron od nowa.

   PRZYPISANIE PRZEZ :nth-child, nie przez klase:
   klasa rozrozniajaca (mm-ico--zn-haft) siedziala na usunietym elemencie,
   wiec jedyne, co zostalo, to kolejnosc. Jest stala we wszystkich szesciu
   landingach, bo generuje ja jeden szablon.
   UWAGA: zmiana kolejnosci kafelkow w HTML przestawi ikony.
   ========================================================================== */


/* ---------- pasek faktow ----------
   Te ikony sa DWUKOLOROWE, wiec ida tlem graficznym, nie maska. */
.resetcss.fr-view .mm-fact::before{
  content:"";grid-column:1;grid-row:1;
  width:52px;height:52px;
  background-repeat:no-repeat;background-position:left center;background-size:contain;
}
.resetcss.fr-view .mm-facts .mm-fact:nth-child(1)::before{background-image:url("../images/user/mm__polska.svg");}
.resetcss.fr-view .mm-facts .mm-fact:nth-child(2)::before{background-image:url("../images/user/mm__technologie.svg");}
.resetcss.fr-view .mm-facts .mm-fact:nth-child(3)::before{background-image:url("../images/user/mm__probka.svg");}
.resetcss.fr-view .mm-facts .mm-fact:nth-child(4)::before{background-image:url("../images/user/mm__ps.svg");}
@media (max-width:800px){
  .resetcss.fr-view .mm-fact::before{width:48px;height:48px;}
}

/* Froala usunal takze <span> wokol opisu w pasku faktow, wiec tekst zostal
   goly w .mm-fact-body i stracil styl. Styl opisu przeniesiony do reguly
   .mm-fact-body w linii 579, zeby nie dublowac selektora. */

/* ---------- sekcja 8, modul lewy: technologie znakowania ---------- */
.resetcss.fr-view .mm-tech-item::before{
  content:"";
  background-color:var(--mm-green-dark);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  grid-column:1;grid-row:1 / 3;
  width:38px;height:38px;margin-top:1px;
  -webkit-mask-size:contain;mask-size:contain;
}
.resetcss.fr-view .mm-tech-grid .mm-tech-item:nth-child(1)::before{-webkit-mask-image:url("../images/user/mm__zn-haft.svg");mask-image:url("../images/user/mm__zn-haft.svg");}
.resetcss.fr-view .mm-tech-grid .mm-tech-item:nth-child(2)::before{-webkit-mask-image:url("../images/user/mm__zn-dtf.svg");mask-image:url("../images/user/mm__zn-dtf.svg");}
.resetcss.fr-view .mm-tech-grid .mm-tech-item:nth-child(3)::before{-webkit-mask-image:url("../images/user/mm__zn-sublimacja.svg");mask-image:url("../images/user/mm__zn-sublimacja.svg");}
.resetcss.fr-view .mm-tech-grid .mm-tech-item:nth-child(4)::before{-webkit-mask-image:url("../images/user/mm__zn-grawer.svg");mask-image:url("../images/user/mm__zn-grawer.svg");}

/* ---------- sekcja 8, modul prawy: kolo + ikona ----------
   Jeden element nie moze byc jednoczesnie kolem i maska, bo maska przycina
   wlasne tlo. Dlatego ::before rysuje kolo, a ::after ikone — oba wstawione
   jawnie w te sama komorke siatki, wiec sie nakladaja. */
.resetcss.fr-view .mm-brand-item::before{
  content:"";grid-column:1;grid-row:1 / 3;
  width:60px;height:60px;border-radius:50%;
  background:var(--mm-tint-soft);
}
.resetcss.fr-view .mm-brand-item::after{
  content:"";
  background-color:var(--mm-green-dark);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  grid-column:1;grid-row:1 / 3;
  width:60px;height:60px;
  -webkit-mask-size:36px 36px;mask-size:36px 36px;
}
.resetcss.fr-view .mm-brand-grid .mm-brand-item:nth-child(1)::after{-webkit-mask-image:url("../images/user/mm__ps-kolor.svg");mask-image:url("../images/user/mm__ps-kolor.svg");}
.resetcss.fr-view .mm-brand-grid .mm-brand-item:nth-child(2)::after{-webkit-mask-image:url("../images/user/mm__ps-miejsce.svg");mask-image:url("../images/user/mm__ps-miejsce.svg");}
.resetcss.fr-view .mm-brand-grid .mm-brand-item:nth-child(3)::after{-webkit-mask-image:url("../images/user/mm__ps-metka.svg");mask-image:url("../images/user/mm__ps-metka.svg");}
.resetcss.fr-view .mm-brand-grid .mm-brand-item:nth-child(4)::after{-webkit-mask-image:url("../images/user/mm__ps-opakowanie.svg");mask-image:url("../images/user/mm__ps-opakowanie.svg");}

/* ---------- sekcja 10: sciezka procesu ---------- */
.resetcss.fr-view .mm-proc-head::before{
  content:"";
  background-color:var(--mm-green-dark);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  display:block;width:56px;height:56px;
  -webkit-mask-size:contain;mask-size:contain;
}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(1) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-1-mowisz.svg");mask-image:url("../images/user/mm__proc-1-mowisz.svg");}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(2) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-2-dobieramy.svg");mask-image:url("../images/user/mm__proc-2-dobieramy.svg");}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(3) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-3-ustalamy.svg");mask-image:url("../images/user/mm__proc-3-ustalamy.svg");}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(4) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-4-projekt.svg");mask-image:url("../images/user/mm__proc-4-projekt.svg");}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(5) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-5-produkcja.svg");mask-image:url("../images/user/mm__proc-5-produkcja.svg");}
.resetcss.fr-view .mm-proc .mm-proc-step:nth-child(6) .mm-proc-head::before{-webkit-mask-image:url("../images/user/mm__proc-6-dostawa.svg");mask-image:url("../images/user/mm__proc-6-dostawa.svg");}

/* ---------- kolejna partia: kolo + ikona, jak w module prawym ---------- */
.resetcss.fr-view .mm-proc-again::before{
  content:"";grid-column:1;grid-row:1;
  width:56px;height:56px;border-radius:50%;
  background:var(--mm-tint-soft);
}
.resetcss.fr-view .mm-proc-again::after{
  content:"";
  background-color:var(--mm-green-dark);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  grid-column:1;grid-row:1;
  width:56px;height:56px;
  -webkit-mask-size:34px 34px;mask-size:34px 34px;
  -webkit-mask-image:url("../images/user/mm__proc-7-partia.svg");mask-image:url("../images/user/mm__proc-7-partia.svg");
}
@media (max-width:520px){
  .resetcss.fr-view .mm-proc-again::before,
  .resetcss.fr-view .mm-proc-again::after{grid-row:1;grid-column:1;}
}
