/*
Theme Name: Grasbot
Theme URI: https://grasbot.com
Author: Grasbot
Description: Sklep Grasbot - Ersatzmesser & Messerteller für Mähroboter. Motyw autorski, konwersyjny, ciemny header + robotyczna zielen.
Version: 1.0.0
Requires PHP: 8.0
Text Domain: grasbot
*/

:root{
  --gb-ink:#14181b;         /* grafit tla headera/footera */
  --gb-ink-2:#1d2429;       /* grafit jasniejszy (karty na ciemnym) */
  --gb-green:#3ddc84;       /* robotyczna zielen (akcent, CTA) */
  --gb-green-d:#1fae5f;     /* zielen ciemniejsza (hover, tekst na bialym) */
  --gb-bg:#f4f6f5;          /* tlo strony */
  --gb-card:#ffffff;
  --gb-text:#20262a;
  --gb-muted:#5c666d;
  --gb-line:#e3e8e6;
  --gb-amber:#ffb020;       /* gwiazdki/badge */
  --gb-red:#e2504c;
  --gb-radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--gb-bg);color:var(--gb-text);line-height:1.6;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--gb-green-d);text-decoration:none}
a:hover{color:var(--gb-ink)}
.gb-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
button{font-family:inherit}

/* ===== TOPBAR ===== */
.gb-topbar{background:var(--gb-green);color:#0c2417;font-size:13.5px;font-weight:600;padding:7px 0;text-align:center}
.gb-topbar b{font-weight:800}

/* ===== HEADER ===== */
.gb-header{background:var(--gb-ink);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(0,0,0,.25)}
.gb-header .gb-wrap{display:flex;align-items:center;gap:22px;padding-top:14px;padding-bottom:14px}
.gb-logo{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.gb-logo .gb-mark{width:38px;height:38px;flex:0 0 38px}
.gb-logo .gb-word{font-size:24px;font-weight:800;letter-spacing:.5px;color:#fff;line-height:1}
.gb-logo .gb-word em{font-style:normal;color:var(--gb-green)}
.gb-logo .gb-sub{display:block;font-size:11px;font-weight:500;color:#93a0a8;letter-spacing:.4px;margin-top:3px}
.gb-search{flex:1;position:relative;max-width:560px;margin:0 auto}
.gb-search input{width:100%;border:2px solid transparent;border-radius:24px;padding:11px 48px 11px 18px;font-size:15px;outline:none;background:#fff;color:var(--gb-text)}
.gb-search input:focus{border-color:var(--gb-green)}
.gb-search button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--gb-muted);cursor:pointer;padding:6px;display:flex}
.gb-search button svg{width:20px;height:20px}
.gb-search button:hover{color:var(--gb-green-d)}
.gb-hdr-right{margin-left:auto;display:flex;align-items:center;gap:18px}
.gb-hdr-ico{position:relative;color:#fff;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;font-weight:600}
.gb-hdr-ico svg{width:24px;height:24px}
.gb-hdr-ico:hover{color:var(--gb-green)}
.gb-cart-n{position:absolute;top:-6px;right:2px;background:var(--gb-green);color:#0c2417;font-size:11px;font-weight:800;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}

/* ===== NAV ===== */
.gb-nav{background:var(--gb-ink-2);border-top:1px solid #2a333a}
.gb-nav .gb-wrap{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.gb-nav a{color:#cfd8dc;font-size:14px;font-weight:600;padding:10px 12px;white-space:nowrap;border-bottom:3px solid transparent}
.gb-nav a:hover,.gb-nav a.on{color:#fff;border-bottom-color:var(--gb-green)}

/* piguly filtrow modeli (modul msz product-filters) */
.msz-model-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.msz-filter-btn{border:2px solid var(--gb-line);background:var(--gb-card);color:var(--gb-text);font-size:13.5px;font-weight:700;padding:7px 16px;border-radius:20px;cursor:pointer;transition:all .15s}
.msz-filter-btn:hover{border-color:var(--gb-green)}
.msz-filter-btn.is-active{background:var(--gb-ink);color:var(--gb-green);border-color:var(--gb-ink)}

/* ===== HERO + FINDER ===== */
.gb-hero{background:linear-gradient(135deg,#14181b 0%,#1b2b22 60%,#14351f 100%);color:#fff;padding:46px 0 40px;position:relative;overflow:visible;z-index:2}  /* (30.07) overflow hidden->visible + z-index: lista podpowiedzi wysuwa sie
     PONIZEJ banera i byla przez niego ucinana oraz zaslaniana pasem zaufania */
/* (30.07) Plama trzymana W SRODKU banera (bylo right/top ujemne + overflow:hidden
   na .gb-hero). Overflow musial zniknac, zeby lista podpowiedzi mogla wyjsc
   poza baner — wiec plame kadrujemy tu, nie kontenerem. */
.gb-hero:after{content:"";position:absolute;right:0;top:0;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(61,220,132,.16),transparent);pointer-events:none;z-index:0}
.gb-hero .gb-wrap{position:relative;z-index:1;text-align:center}  /* (30.07) tresc banera WYSRODKOWANA — h1/lead/szukajka/USP-y mialy
     max-width bez margin:auto, wiec wszystko lezalo przy lewej krawedzi */
.gb-hero h1{font-size:34px;line-height:1.2;font-weight:800;max-width:640px;margin-left:auto;margin-right:auto}
.gb-hero h1 em{font-style:normal;color:var(--gb-green)}
.gb-hero p.gb-lead{color:#aeb9bf;font-size:17px;margin:10px auto 26px;max-width:560px}
.gb-finder{background:#fff;border-radius:14px;padding:18px;display:block;box-shadow:0 12px 34px rgba(0,0,0,.35);max-width:640px;margin-left:auto;margin-right:auto}  /* (30.07) 860->640px: rowno z h1 (max-width:640px), inaczej karta     wystawala poza tekst naglowka i baner wygladal na przesuniety */
.gb-finder .f-col{flex:1;min-width:180px}
.gb-finder label{display:block;font-size:12.5px;font-weight:700;color:var(--gb-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.gb-finder select{width:100%;padding:11px 12px;font-size:15.5px;border:2px solid var(--gb-line);border-radius:8px;background:#fff;color:var(--gb-text);cursor:pointer}
.gb-finder select:focus{border-color:var(--gb-green);outline:none}
.gb-finder .f-go{flex:0 0 auto}
.gb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gb-green);color:#0c2417;font-size:15.5px;font-weight:800;border:0;border-radius:8px;padding:12px 26px;cursor:pointer;transition:background .15s}
.gb-btn:hover{background:var(--gb-green-d);color:#fff}
.gb-hero .gb-usps{display:flex;gap:26px;margin-top:22px;flex-wrap:wrap;justify-content:center}
.gb-hero .gb-usps span{color:#cfd8dc;font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:7px}
.gb-hero .gb-usps svg{width:17px;height:17px;color:var(--gb-green)}

/* ===== SEKCJE ===== */
.gb-sec{padding:40px 0}
.gb-sec h2{font-size:24px;font-weight:800;margin-bottom:20px;display:flex;align-items:center;gap:12px}
.gb-sec h2:after{content:"";flex:1;height:3px;background:linear-gradient(90deg,var(--gb-green),transparent);border-radius:2px}

/* marki (kafle kategorii) */
.gb-brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.gb-brand{background:var(--gb-card);border:1px solid var(--gb-line);border-radius:var(--gb-radius);padding:18px 12px;text-align:center;font-weight:700;font-size:15px;color:var(--gb-text);transition:border-color .15s, transform .15s}
.gb-brand:hover{border-color:var(--gb-green);transform:translateY(-2px);color:var(--gb-green-d)}
.gb-brand small{display:block;color:var(--gb-muted);font-weight:500;font-size:12.5px;margin-top:3px}

/* siatka produktow */
.gb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.gb-card{background:var(--gb-card);border:1px solid var(--gb-line);border-radius:var(--gb-radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;position:relative}
.gb-card:hover{box-shadow:0 10px 26px rgba(20,24,27,.12);transform:translateY(-3px)}
.gb-card .c-img{aspect-ratio:1/1;background:#fff;display:flex;align-items:center;justify-content:center;padding:14px}
.gb-card .c-img img{max-height:100%;object-fit:contain}
.gb-card .c-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1;border-top:1px solid var(--gb-line)}
.gb-card h3{font-size:14.5px;line-height:1.4;font-weight:600;margin-bottom:8px;flex:1}
.gb-card h3 a{color:var(--gb-text)}
.gb-card h3 a:hover{color:var(--gb-green-d)}
.gb-card .c-stars{color:var(--gb-amber);font-size:13px;margin-bottom:6px}
.gb-card .c-stars small{color:var(--gb-muted)}
.gb-card .c-price{font-size:20px;font-weight:800;color:var(--gb-ink);margin-bottom:10px}
.gb-card .c-price small{font-size:12px;color:var(--gb-muted);font-weight:500;display:block}
.gb-card .gb-btn{width:100%;padding:11px 0;font-size:14.5px}
.gb-badge{position:absolute;top:10px;left:10px;background:var(--gb-ink);color:var(--gb-green);font-size:11.5px;font-weight:800;padding:4px 9px;border-radius:6px;letter-spacing:.4px;z-index:2}

/* trust pas */
.gb-trust{background:var(--gb-card);border-top:1px solid var(--gb-line);border-bottom:1px solid var(--gb-line);padding:22px 0;position:relative;z-index:1}
.gb-trust .gb-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.gb-trust .t{display:flex;gap:12px;align-items:flex-start}
.gb-trust svg{width:26px;height:26px;color:var(--gb-green-d);flex:0 0 26px;margin-top:2px}
.gb-trust b{display:block;font-size:14.5px}
.gb-trust span{font-size:13px;color:var(--gb-muted)}

/* ===== WOO OGOLNE ===== */
.woocommerce-page .gb-wrap.gb-main,.gb-wrap.gb-main{padding-top:28px;padding-bottom:48px}
.woocommerce ul.products{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin:0;padding:0;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none !important} /* clearfix Woo = fantomowa komorka grida! */
.woocommerce ul.products li.product{width:auto !important;margin:0 !important;float:none !important;
  background:var(--gb-card);border:1px solid var(--gb-line);border-radius:var(--gb-radius);overflow:hidden;
  display:flex;flex-direction:column;position:relative;padding-bottom:16px;
  transition:box-shadow .15s,transform .15s}
.woocommerce ul.products li.product:hover{box-shadow:0 10px 26px rgba(20,24,27,.12);transform:translateY(-3px)}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;flex:1}
.woocommerce ul.products li.product img{padding:14px;aspect-ratio:1/1;object-fit:contain;background:#fff;margin:0 !important}
.woocommerce ul.products li.product .woocommerce-loop-product__title{color:var(--gb-text);font-size:14.5px;line-height:1.4;font-weight:600;padding:12px 14px 4px;flex:1}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title{color:var(--gb-green-d)}
.woocommerce ul.products li.product .price{color:var(--gb-ink) !important;font-weight:800;font-size:19px;padding:0 14px;margin:0 0 4px}
.woocommerce ul.products li.product .button{margin:8px 14px 0;text-align:center}
.woocommerce ul.products li.product .star-rating{margin:0 14px}
.woocommerce .woocommerce-ordering,.woocommerce .woocommerce-result-count{display:none !important}
.gb-nav .gb-wrap{scrollbar-width:none;-ms-overflow-style:none}
.gb-nav .gb-wrap::-webkit-scrollbar{display:none}
.gb-breadcrumb{font-size:13px;color:var(--gb-muted);margin-bottom:16px}
.gb-breadcrumb a{color:var(--gb-muted)}
.gb-breadcrumb a:hover{color:var(--gb-green-d)}
h1.page-title,h1.gb-title{font-size:26px;font-weight:800;margin-bottom:18px}

/* przyciski woo */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{
  background:var(--gb-green);color:#0c2417;font-weight:800;border-radius:8px;border:0;padding:12px 22px;font-size:15px}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{background:var(--gb-green-d);color:#fff}
.woocommerce .price,.woocommerce div.product p.price{color:var(--gb-ink);font-weight:800}
.woocommerce div.product p.price{font-size:26px}

/* opisy produktow: wiersze obraz-tekst naprzemiennie (jak msz-imgrow) */
.gb-imgrow{display:grid;grid-template-columns:1fr 380px;gap:26px;align-items:center;margin:26px 0}
.gb-imgrow.gb-rev{grid-template-columns:380px 1fr}
.gb-imgrow.gb-rev .gb-ir-i{order:-1}
.gb-ir-i img{width:100%;height:auto;border-radius:10px;display:block}
.gb-ir-t>h3:first-child{margin-top:0}
@media(max-width:760px){.gb-imgrow,.gb-imgrow.gb-rev{grid-template-columns:1fr}.gb-imgrow.gb-rev .gb-ir-i{order:0}}

/* strona produktu */
.woocommerce div.product .product_title{font-size:24px;font-weight:800;line-height:1.3}
.gb-pp-usps{background:#f0faf4;border:1px solid #cdeeda;border-radius:var(--gb-radius);padding:14px 16px;margin:16px 0;display:flex;flex-direction:column;gap:8px}
.gb-pp-usps span{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--gb-text)}
.gb-pp-usps svg{width:16px;height:16px;color:var(--gb-green-d);flex:0 0 16px}
.woocommerce div.product div.woocommerce-product-details__short-description ul{list-style:none;margin:10px 0;padding:0}
.woocommerce div.product div.woocommerce-product-details__short-description li{padding-left:24px;position:relative;margin-bottom:6px;font-size:15px}
.woocommerce div.product div.woocommerce-product-details__short-description li:before{content:"✔";color:var(--gb-green-d);position:absolute;left:0;font-weight:800}
.woocommerce div.product div.summary{padding-left:8px}
.gb-buybox{background:var(--gb-card);border:1px solid var(--gb-line);border-radius:var(--gb-radius);padding:18px;margin-top:14px}
.gb-stock-ok{color:var(--gb-green-d);font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:7px}
.woocommerce div.product form.cart .button{font-size:17px;padding:14px 34px;width:100%}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom-color:var(--gb-green)}

/* koszyk/checkout minimal clean */
.woocommerce-cart table.cart,.woocommerce table.shop_table{border:1px solid var(--gb-line);border-radius:var(--gb-radius);background:var(--gb-card)}
.woocommerce-checkout #payment{background:var(--gb-card);border-radius:var(--gb-radius)}

/* ===== FOOTER ===== */
.gb-footer{background:var(--gb-ink);color:#aeb9bf;margin-top:50px;font-size:14px}
.gb-footer .gb-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;padding-top:38px;padding-bottom:30px}
.gb-footer h4{color:#fff;font-size:14.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin-bottom:12px}
.gb-footer a{color:#aeb9bf;display:block;padding:3px 0}
.gb-footer a:hover{color:var(--gb-green)}
.gb-footer .gb-bottom{border-top:1px solid #2a333a;padding:16px 0;text-align:center;font-size:13px;color:#7d8a92}
.gb-footer .gb-bottom .gb-wrap{display:block;padding-top:0;padding-bottom:0}

/* ===== MOBILE ===== */
@media(max-width:820px){
  /* (30.07) NA MOBILE header NIE jest sticky: menu marek zawija sie tu na
     3-4 rzedy i przyklejone zjadalo pol ekranu przy przewijaniu, zaslaniajac
     tresc. Na desktopie (jeden rzad) sticky zostaje. */
  .gb-header{position:static}
  .gb-header .gb-wrap{flex-wrap:wrap;gap:12px}
  .gb-search{order:3;flex-basis:100%;max-width:none}
  .gb-hero h1{font-size:26px}
  .gb-finder{flex-direction:column;align-items:stretch}
  .gb-finder .f-go{width:100%}
  .gb-finder .gb-btn{width:100%}
  .woocommerce ul.products,.gb-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
  .gb-card .c-price{font-size:17px}
}

/* ── (29.07) Przelacznik jezykow — same flagi, kod w tooltipie ────── */
.gb-langs{background:#0d1114;border-top:1px solid #1e2529;padding:20px 0}
.gb-langs .gb-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.gb-langs__label{font-size:11.5px;font-weight:700;color:#8a97a1;letter-spacing:.1em;
 text-transform:uppercase;white-space:nowrap}
.gb-langs__list{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.gb-lang{position:relative;display:block;width:30px;height:21px;border-radius:3px;overflow:hidden;
 opacity:.55;transition:.16s;filter:grayscale(.35);outline:1px solid rgba(255,255,255,.1);outline-offset:-1px}
.gb-lang img{display:block;width:100%;height:100%;object-fit:cover}
.gb-lang:hover{opacity:1;filter:none;transform:translateY(-2px);outline-color:#3ddc84}
.gb-lang.is-active{opacity:1;filter:none;outline:2px solid #3ddc84;outline-offset:-2px}
/* kod jezyka jako tooltip na hover — nie zasmieca paska */
.gb-lang::after{content:attr(data-code);position:absolute;bottom:calc(100% + 6px);left:50%;
 transform:translateX(-50%);background:#1b2226;color:#cfd8dd;font:700 10px/1 Arial,sans-serif;
 letter-spacing:.06em;padding:4px 7px;border-radius:4px;opacity:0;pointer-events:none;
 transition:.14s;white-space:nowrap}
.gb-lang:hover::after{opacity:1;bottom:calc(100% + 3px)}
@media(max-width:600px){
 .gb-langs .gb-wrap{gap:11px}
 .gb-langs__label{width:100%}
 .gb-lang{width:27px;height:19px}
}
/* ── (29.07) GALERIA PRODUKTU — uklad jak na msz ────────────────────
   Bylo: domyslna galeria Woo z ramka, lupa i miniaturami jako lista
   z numerami. Teraz: czyste zdjecie + rzad miniatur pod spodem.
   UWAGA: NIE ustawiac tu width/float — msz ma wlasny grid (.msz-product),
   grasbot jedzie na domyslnym float:left;width:48% WooCommerce.
   width:100%+float:none rozwalilo galerie na cala szerokosc (fix 29.07). */
.woocommerce div.product div.images.woocommerce-product-gallery{margin:0 0 24px!important;opacity:1!important}
.woocommerce-product-gallery__wrapper,.woocommerce div.product div.images figure,.flex-viewport{margin:0!important}
.woocommerce-product-gallery__image{border:none;border-radius:10px;overflow:hidden;background:#fff;margin:0!important}
.woocommerce-product-gallery__image a{display:block;cursor:default;pointer-events:none}
.woocommerce-product-gallery__image img{border-radius:10px;display:block;width:100%;height:auto;cursor:default}
.woocommerce-product-gallery__trigger{display:none!important}
/* miniatury: rzad kwadratow, bez numerow listy */
.woocommerce div.product div.images .flex-control-thumbs{display:flex!important;gap:9px;flex-wrap:wrap;
 margin:12px 0 0!important;padding:0!important;list-style:none!important}
.woocommerce div.product div.images .flex-control-thumbs li{width:54px!important;margin:0!important;
 list-style:none!important;float:none!important}
.flex-control-thumbs li::before,.flex-control-thumbs li::marker{content:none!important;display:none!important}
.flex-control-thumbs img{border:1px solid #e3e9e6;border-radius:7px;opacity:.62;transition:.15s;
 cursor:pointer;display:block;width:100%;height:auto}
.flex-control-thumbs img.flex-active,.flex-control-thumbs img:hover{opacity:1;border-color:#3ddc84}

/* (29.07) Lightbox USUNIETY — decyzja usera: bez lupy i powiekszania,
   miniatura ma tylko przerzucac glowne zdjecie (zoom/lightbox Woo zdjete
   w functions.php, zostal sam wc-product-gallery-slider). */
@media(max-width:600px){
 .woocommerce div.product div.images .flex-control-thumbs li{width:48px!important}
}

/* -- (30.07 v3) Przycisk formularza odstapienia w stopce (§ 356a BGB) --
   .gb-footer a ma display:block — przycisk dziedziczyl to i rozciagal sie
   na CALA szerokosc kolumny (cienki pasek przez pol stopki). Selektor
   .gb-footer .gb-footer-widerruf-btn ma wyzsza specyficznosc i wygrywa.
   width:fit-content zwezа go do tresci niezaleznie od kontenera. */
.gb-footer .gb-footer-widerruf-btn{display:inline-flex!important;width:fit-content;max-width:100%;
 align-items:center;gap:6px;margin-top:8px;padding:8px 14px;
 background:rgba(61,220,132,.12);border:1px solid rgba(61,220,132,.45);border-radius:8px;
 color:#3ddc84!important;font-size:12.5px;font-weight:700;line-height:1.2;
 text-decoration:none;white-space:nowrap;
 transition:background .15s,border-color .15s,color .15s}
.gb-footer .gb-footer-widerruf-btn::before{content:"↗";font-size:12px;line-height:1;opacity:.85}
.gb-footer .gb-footer-widerruf-btn:hover{background:#3ddc84;border-color:#3ddc84;color:#0d1114!important}

/* -- (29.07) SZUKAJKA W BANERZE + podpowiedzi na zywo (port z msz) --
   Bylo: sam select marek. Teraz pole tekstowe u gory, select jako
   alternatywa pod spodem. Lista podpowiedzi pozycjonowana wzgledem
   .f-row (position:relative ustawia JS), wiec nie rozpycha layoutu. */
.gb-hero-search{text-align:left}
.gb-hero-search .f-lbl{display:block;font-size:12.5px;font-weight:700;color:var(--gb-muted);
 text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.gb-hero-search .f-row{display:flex;gap:10px}
.gb-hero-search input[type="search"]{flex:1;min-width:0;padding:12px 14px;font-size:15.5px;
 border:2px solid var(--gb-line);border-radius:8px;background:#fff;color:var(--gb-text);
 font-family:inherit;outline:none;transition:border-color .15s}
.gb-hero-search input[type="search"]:focus{border-color:var(--gb-green)}
.gb-hero-search .gb-btn{flex:0 0 auto;white-space:nowrap}


/* lista podpowiedzi */
.gb-live{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;
 border:1px solid var(--gb-line);border-radius:var(--gb-radius);
 box-shadow:0 18px 44px rgba(0,0,0,.22);z-index:900;text-align:left;padding:6px;
 max-height:60vh;overflow-y:auto}
.gb-live-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;
 color:var(--gb-text)!important;transition:background .12s}
.gb-live-item + .gb-live-item{border-top:1px solid var(--gb-line)}
.gb-live-item:hover,.gb-live-item.is-active{background:#eefaf3}
.gb-live-item img{width:48px;height:48px;min-width:48px;object-fit:contain;background:#fff;
 border:1px solid var(--gb-line);border-radius:8px;flex-shrink:0}
.gb-live-t{flex:1;min-width:0;font-size:13.5px;font-weight:600;line-height:1.35;
 display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gb-live-p{font-size:14px;font-weight:800;white-space:nowrap;flex-shrink:0;color:var(--gb-green-d)}
.gb-live-empty{padding:16px;color:var(--gb-muted);font-size:14px;text-align:center}

@media(max-width:600px){
 .gb-hero-search .f-row{flex-direction:column}
 .gb-hero-search .gb-btn{width:100%}
 .gb-live-item img{width:40px;height:40px;min-width:40px}
}

/* -- (30.07) HOMEPAGE SEO: duzy tekst na glownej, zwijany "Mehr lesen" --
   v2: sekcja uzywa .gb-wrap (nie .container z msz!) — bez tego tekst
   rozlewal sie na cala szerokosc ekranu. Przycisk ma ZIELONE tlo, bo
   bialy na bialym byl niewidoczny. */
.gb-hpseo{position:relative;padding:44px 0 52px;background:var(--gb-bg);
 border-top:1px solid var(--gb-line)}
.gb-hpseo .gb-wrap{max-width:900px;position:relative}
.gb-hpseo-body{position:relative;max-height:330px;overflow:hidden;
 color:var(--gb-muted);font-size:15.5px;line-height:1.85;transition:max-height .35s ease}
.gb-hpseo-body.is-open{max-height:none}
.gb-hpseo-body h2{font-size:26px;font-weight:800;color:var(--gb-text);margin:0 0 16px;line-height:1.28}
.gb-hpseo-body h3{font-size:19px;font-weight:800;color:var(--gb-text);margin:28px 0 10px}
.gb-hpseo-body p{margin:0 0 14px}
.gb-hpseo-body ul,.gb-hpseo-body ol{padding-left:22px;margin:0 0 16px}
.gb-hpseo-body li{margin-bottom:8px}
.gb-hpseo-body strong{color:var(--gb-text)}
.gb-hpseo-body a{color:var(--gb-green-d);font-weight:600}
.gb-hpseo-body a:hover{text-decoration:underline}
/* gradient wygaszajacy — konczy sie NAD przyciskiem, nie na nim */
.gb-hpseo-fade{position:absolute;left:0;right:0;bottom:64px;height:110px;pointer-events:none;
 background:linear-gradient(to bottom,rgba(244,246,245,0),var(--gb-bg))}
.gb-hpseo-body.is-open ~ .gb-hpseo-fade{display:none}
/* przycisk: zielony, widoczny na jasnym tle */
.gb-hpseo-toggle{display:inline-flex;align-items:center;gap:7px;margin-top:20px;position:relative;z-index:2;
 background:var(--gb-green);border:none;color:#0c2417;
 font-size:14.5px;font-weight:800;padding:11px 22px;border-radius:24px;cursor:pointer;
 font-family:inherit;transition:background .15s,transform .12s}
.gb-hpseo-toggle:hover{background:var(--gb-green-d);color:#fff;transform:translateY(-1px)}
@media(max-width:600px){
 .gb-hpseo{padding:32px 0 38px}
 .gb-hpseo-body{max-height:270px;font-size:15px}
 .gb-hpseo-body h2{font-size:21px}
 .gb-hpseo-body h3{font-size:17.5px}
 .gb-hpseo-fade{bottom:60px;height:90px}
}

/* -- (30.07 v5) ILOSC + "In den Warenkorb" --
   Ramka tylko na owijce .gb-qty-wrap. Wysokosc rowna przyciskowi CTA
   (48px desktop / 52px mobile) — wczesniej owijka byla niska, bo jej
   wysokosc wynikala z zawartosci, a CTA ma wlasny padding.
   !important przy marginesach: woocommerce-layout.css dokleja wciecie
   do form.cart i przesuwalo ramke wzgledem kafelkow wariantow. */
.woocommerce div.product form.cart{display:flex!important;gap:12px;align-items:stretch;flex-wrap:wrap;
 margin:0 0 14px 0!important;padding:0!important;box-sizing:border-box}
/* (30.07 v8) ZNALEZIONA PRZYCZYNA PRZESUNIECIA: WooCommerce dokleja do
   form.cart pseudoelementy clearfix ::before / ::after (content:" ";
   display:table). We flexboxie ::before staje sie PIERWSZYM DZIECKIEM
   i zajmuje slot w rzedzie — spychajac ramke ilosci w prawo.
   display:none na obu kasuje problem u zrodla. */
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after{display:none!important;content:none!important}
/* ramka cienka jak kafelki wariantow (te maja border:1px) */
.gb-qty-wrap{border-width:1px!important}

.gb-qty-wrap{display:flex;align-items:stretch;flex:0 0 auto;height:48px;
 border:2px solid var(--gb-line);border-radius:10px;background:#fff;overflow:hidden;font-size:0}

.gb-qty-wrap .gb-qty-btn{width:44px;border:0;background:#fff;color:var(--gb-text);
 font-size:20px;font-weight:700;line-height:1;cursor:pointer;font-family:inherit;
 display:flex;align-items:center;justify-content:center;padding:0;margin:0;
 -webkit-appearance:none;appearance:none;transition:background .12s,color .12s}
.gb-qty-wrap .gb-qty-btn:hover{background:#eefaf3;color:var(--gb-green-d)}
.gb-qty-wrap .gb-qty-btn:active{background:#dff5e9}
.gb-qty-wrap .gb-qty-btn:focus{outline:none}
.gb-qty-wrap .gb-qty-btn:focus-visible{background:#eefaf3}

.woocommerce div.product form.cart .gb-qty-wrap .quantity{border:0;margin:0;padding:0;background:transparent;
 display:flex;align-items:stretch;flex:0 0 auto;border-radius:0;height:100%}
.woocommerce div.product form.cart .gb-qty-wrap input.qty{width:48px;height:100%;border:0;outline:none;
 text-align:center;font-size:16px;font-weight:700;color:var(--gb-text);background:#fff;font-family:inherit;
 -moz-appearance:textfield;appearance:textfield;padding:0;margin:0;box-shadow:none;line-height:normal;border-radius:0}
.woocommerce div.product form.cart .gb-qty-wrap input.qty:focus{outline:none;box-shadow:none;border:0}
.woocommerce div.product form.cart .gb-qty-wrap input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .gb-qty-wrap input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.gb-qty-wrap label,.gb-qty-wrap .screen-reader-text{position:absolute!important;width:1px;height:1px;
 padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* CTA tej samej wysokosci co ramka ilosci.
   (30.07 v9) Formularz ograniczony do szerokosci RZEDU KAFELKOW:
   3 x 150px + 2 x 8px gap = 466px. Bez tego flex:1 rozciagal przycisk
   do konca kolumny .summary, ktora jest szersza niz kafelki wariantow. */
.woocommerce div.product form.cart{max-width:466px}
.woocommerce div.product form.cart button.single_add_to_cart_button{flex:1;min-width:0;margin:0;
 height:48px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}

@media(max-width:600px){
 /* na telefonie wyzsze pola — palec, nie kursor */
 .gb-qty-wrap{height:52px}
 .gb-qty-wrap .gb-qty-btn{width:50px;font-size:22px}
 .woocommerce div.product form.cart .gb-qty-wrap input.qty{width:54px;font-size:17px}
 .woocommerce div.product form.cart button.single_add_to_cart_button{height:52px;min-width:0;
  flex:1 1 auto;font-size:15.5px}
}
@media(max-width:400px){
 .woocommerce div.product form.cart button.single_add_to_cart_button{flex:1 1 100%}
}

/* -- (30.07) POPUP PO DODANIU DO KOSZYKA -- */
.gb-atc{position:fixed;inset:0;z-index:9999;background:rgba(10,14,16,.55);
 display:flex;align-items:center;justify-content:center;padding:20px;
 animation:gbAtcIn .18s ease}
.gb-atc.is-out{opacity:0;transition:opacity .18s ease}
@keyframes gbAtcIn{from{opacity:0}to{opacity:1}}
.gb-atc__box{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:420px;
 box-shadow:0 24px 60px rgba(0,0,0,.3);position:relative;
 animation:gbAtcUp .22s cubic-bezier(.2,.7,.4,1)}
@keyframes gbAtcUp{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.gb-atc__x{position:absolute;top:10px;right:12px;width:32px;height:32px;border:0;background:transparent;
 color:var(--gb-muted);font-size:26px;line-height:1;cursor:pointer;border-radius:8px;
 display:flex;align-items:center;justify-content:center;transition:background .12s}
.gb-atc__x:hover{background:#f1f4f3;color:var(--gb-text)}
.gb-atc__head{display:flex;align-items:center;gap:9px;margin-bottom:16px;padding-right:30px}
.gb-atc__tick{width:24px;height:24px;border-radius:50%;background:var(--gb-green);color:#0c2417;
 font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 24px}
.gb-atc__head strong{font-size:16px;color:var(--gb-text);line-height:1.3}
.gb-atc__prod{display:flex;gap:12px;align-items:center;padding:12px;background:#f8faf9;
 border:1px solid var(--gb-line);border-radius:10px;margin-bottom:12px}
.gb-atc__prod img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:8px;flex:0 0 56px}
.gb-atc__prod > div{min-width:0;display:flex;flex-direction:column;gap:3px}
.gb-atc__name{font-size:13.5px;font-weight:600;color:var(--gb-text);line-height:1.35;
 display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gb-atc__price{font-size:15px;font-weight:800;color:var(--gb-text)}
.gb-atc__price del{font-weight:500;opacity:.5;font-size:13px}
.gb-atc__sum{font-size:13.5px;color:var(--gb-muted);margin-bottom:16px;text-align:center}
.gb-atc__btns{display:flex;gap:10px;flex-wrap:wrap}
.gb-atc__more,.gb-atc__go{flex:1 1 0;min-width:140px;height:46px;border-radius:10px;
 font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer;
 display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:.14s}
.gb-atc__more{border:2px solid var(--gb-line);background:#fff;color:var(--gb-text)}
.gb-atc__more:hover{border-color:var(--gb-green);color:var(--gb-green-d)}
.gb-atc__go{border:0;background:var(--gb-green);color:#0c2417!important}
.gb-atc__go:hover{background:var(--gb-green-d);color:#fff!important}
.gb-atc__cart{display:block;text-align:center;margin-top:12px;font-size:13px;
 color:var(--gb-muted);text-decoration:underline}
.gb-atc__cart:hover{color:var(--gb-text)}
@media(max-width:480px){
 .gb-atc{padding:14px;align-items:flex-end}
 .gb-atc__box{padding:20px;max-width:none;border-radius:16px 16px 0 0}
 .gb-atc__btns{flex-direction:column-reverse}
 .gb-atc__more,.gb-atc__go{width:100%;min-width:0}
}

/* -- (30.07) KASA: przycisk PayPal nie moze wjezdzac pod naglowek --
   .gb-header ma position:sticky;z-index:50. Blok "express payment"
   (PayPal / Apple Pay) renderuje sie w JS bez wlasnego kontekstu
   ukladania, wiec przy przewijaniu przechodzil NAD pasek menu.
   Wlasny stacking context z niskim z-index rozwiazuje to na stale. */
.wp-block-woocommerce-checkout-express-payment-block{position:relative;z-index:1}
.wp-block-woocommerce-checkout-express-payment-block iframe,
.wp-block-woocommerce-checkout-express-payment-block > div{position:relative;z-index:1}
/* iframe PayPala potrafi miec inline z-index z SDK — przycinamy go */
.wc-block-checkout__actions iframe,
.wp-block-woocommerce-checkout iframe[title*="PayPal" i]{z-index:1!important}

/* -- (30.07) KASA KLASYCZNA — CSS przeniesiony z msz --
   Uklad 2-kolumnowy 57/43 (billing lewo / order review prawo),
   plywajace etykiety w polach, kazda bramka platnosci jako osobny <li>.
   Kolory msz (amber/navy) zamienione na zmienne grasbota. */
/* ============================================================
   KASA — KLASYCZNY CHECKOUT (shortcode [woocommerce_checkout])
   1:1 z trivando (assets/css/shop.css #customer_details/#order_review/#payment),
   kolory zamienione na zmienne messerscheibe24. Stripe UPE w blokowej kasie
   zawsze grupuje Karte+Klarna w jeden komponent React "Payment methods" (nie
   da sie tego rozbic przez CSS/PHP) - dlatego klasyczny checkout, kazda
   bramka jako OSOBNY <li> (woocommerce/checkout/payment.php + payment-method.php). */
form.woocommerce-checkout{display:block;margin-top:20px;padding-top:20px;padding-bottom:50px;}
form.woocommerce-checkout::after{content:"";display:table;clear:both;}
.woocommerce-checkout .woocommerce-NoticeGroup{margin-bottom:20px;}
.woocommerce-checkout .woocommerce-error,.woocommerce-checkout .woocommerce-message,.woocommerce-checkout .woocommerce-info{
  border-radius:var(--gb-radius);border:1px solid var(--gb-line);background:#fff;padding:14px 18px;list-style:none;}
.woocommerce-checkout .woocommerce-error{border-color:#d63638;color:#d63638;}

/* Login / coupon notices nad formularzem */
.nm-checkout-login-coupon{list-style:none;margin:0 0 20px;padding:0;}
.nm-checkout-login-coupon > li{margin-bottom:10px;}

/* ===== 1:1 z trivando (homepage-layout.php l.555-588) — kolumny 57/43 + floating labels ===== */
/* Lewa kolumna billing 57% */
.woocommerce-checkout #customer_details{float:left!important;width:57%!important;padding-right:24px!important;margin-bottom:16px;box-sizing:border-box!important;}
.woocommerce-checkout #customer_details .col-1{float:none!important;width:100%!important;max-width:100%!important;padding:0;margin-bottom:16px;}
.woocommerce-checkout #customer_details .col-2{display:none!important;}
/* Naglowki sekcji */
.woocommerce-checkout .woocommerce-billing-fields > h3,.woocommerce-checkout .woocommerce-additional-fields > h3,.woocommerce-checkout #customer_details h3{font-size:18px!important;font-weight:700!important;color:var(--gb-text)!important;margin:0 0 16px!important;padding:0!important;line-height:1.3!important;}
.woocommerce-checkout #order_review_heading{float:right!important;width:43%!important;font-size:18px!important;font-weight:700!important;color:var(--gb-text)!important;padding:0 0 16px!important;margin:0!important;box-sizing:border-box!important;line-height:1.3!important;}
/* Prawa kolumna order review 43% */
.woocommerce-checkout #order_review{float:right!important;width:43%!important;box-sizing:border-box!important;position:relative;line-height:1.6;}
.woocommerce-checkout .woocommerce-checkout-review-order{padding:0;margin-bottom:0;}
#ship-to-different-address{clear:both;margin-bottom:10px;}
.woocommerce-checkout #order_comments_field,
.woocommerce-checkout .woocommerce-additional-fields{display:none!important;}

/* Floating label form fields (etykieta w srodku pola, wjezdza w gore) */
.woocommerce-checkout .form-row{position:relative!important;margin-bottom:12px!important;}
.woocommerce-checkout p.form-row{margin-bottom:12px!important;}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row{margin-bottom:12px!important;}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p{margin-bottom:12px!important;}
.woocommerce-checkout .form-row > label{position:absolute!important;top:50%!important;left:13px!important;transform:translateY(-50%)!important;font-size:15px!important;font-weight:400!important;color:#999!important;pointer-events:none!important;transition:all .15s ease!important;z-index:1!important;margin:0!important;padding:0 2px!important;background:transparent!important;line-height:1!important;}
.woocommerce-checkout .form-row > label .required{color:#999!important;}
.woocommerce-checkout .form-row > label .optional{font-weight:400!important;color:#999!important;}
.woocommerce-checkout .form-row.tvt-float-active > label,.woocommerce-checkout .form-row.tvt-float-focus > label{top:7px!important;transform:none!important;font-size:11px!important;color:#555!important;font-weight:500!important;}
.woocommerce-checkout .form-row.tvt-float-active > label .required,.woocommerce-checkout .form-row.tvt-float-focus > label .required{color:#555!important;}
/* ukryj natywne placeholdery — floating labels je zastepuja */
.woocommerce-checkout input::placeholder{color:transparent!important;}
.woocommerce-checkout textarea::placeholder{color:transparent!important;}
/* Kraj (select2) — label zawsze u gory */
.woocommerce-checkout .form-row.thwcfd-field-country > label,.woocommerce-checkout .form-row.thwcfd-field-state > label,.woocommerce-checkout #billing_country_field > label,.woocommerce-checkout #billing_state_field > label{top:7px!important;transform:none!important;font-size:11px!important;color:#555!important;font-weight:500!important;}
.woocommerce-checkout .select2-container .select2-selection{padding:22px 12px 8px!important;height:auto!important;min-height:48px!important;border:1px solid #ccc!important;border-radius:6px!important;background:#fff!important;}
.woocommerce-checkout .select2-container .select2-selection__rendered{padding:0!important;line-height:1.2!important;font-size:15px!important;}
/* Pola input (padding 22px gora / 8px dol - miejsce na floating label) */
.woocommerce-checkout input[type=text],.woocommerce-checkout input[type=email],.woocommerce-checkout input[type=tel],.woocommerce-checkout select,.woocommerce-checkout textarea,.woocommerce-checkout .input-text{border:1px solid #ccc!important;border-radius:6px!important;padding:22px 12px 8px!important;font-size:15px!important;transition:border-color .2s!important;background:#fff!important;width:100%!important;box-sizing:border-box!important;}
.woocommerce-checkout input[type=text]:focus,.woocommerce-checkout input[type=email]:focus,.woocommerce-checkout input[type=tel]:focus,.woocommerce-checkout select:focus,.woocommerce-checkout textarea:focus{border-color:var(--gb-text)!important;outline:none!important;box-shadow:0 0 0 2px rgba(26,26,26,.08)!important;}
.woocommerce-checkout select{appearance:auto!important;-webkit-appearance:auto!important;padding-top:22px!important;padding-bottom:8px!important;}
/* Imie/Nazwisko obok siebie */
.woocommerce-checkout .form-row-first,.woocommerce-checkout .form-row-last{width:48.5%!important;}
.woocommerce-checkout .form-row-first{float:left!important;clear:left!important;}
.woocommerce-checkout .form-row-last{float:right!important;clear:right!important;}
.woocommerce-checkout .form-row-wide{clear:both!important;width:100%!important;}

/* ===== ORDER REVIEW 1:1 z trivando (homepage-layout.php l.560-605) =====
   Prosta tabela: ramka+radius na CALEJ tabeli, kazdy th/td tylko border-bottom
   (BEZ bocznych ramek, BEZ szarego tla) - inaczej robi te "boxy" jak u nas wczesniej. */
#order_review{position:relative;float:right!important;line-height:1.6;width:43%!important;box-sizing:border-box!important;}
#order_review_heading{font-size:18px;font-weight:700;color:var(--gb-text);padding-bottom:16px;margin:0;}
.woocommerce-checkout-review-order{padding:0;margin-bottom:0;background:transparent;}
/* CALA tabela: ramka + zaokraglenie (trivando l.602) */
.woocommerce-checkout-review-order-table,
#order_review .shop_table{border:1px solid #e5e5e5!important;border-radius:10px!important;overflow:hidden!important;
  border-collapse:separate!important;border-spacing:0!important;width:100%!important;color:var(--gb-text);}
#order_review .shop_table thead{display:none;}
/* KAZDY wiersz: tylko dolna cienka linia, padding 10x16 (trivando l.603) */
.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table td,
#order_review .shop_table tbody tr th,#order_review .shop_table tbody tr td,
#order_review .shop_table tfoot tr th,#order_review .shop_table tfoot tr td{
  padding:10px 16px!important;border-bottom:1px solid #f0f0f0!important;border-left:0!important;border-right:0!important;
  background:transparent!important;vertical-align:middle;}
.woocommerce-checkout-review-order-table tr:last-child th,.woocommerce-checkout-review-order-table tr:last-child td,
#order_review .shop_table tfoot tr:last-child th,#order_review .shop_table tfoot tr:last-child td{border-bottom:none!important;}
#order_review .shop_table tfoot tr td{text-align:right;}
/* wiersz produktu (nm-checkout-product-wrap) - miniatura | nazwa | cena */
#order_review .shop_table tbody .nm-checkout-product-wrap{display:table;width:100%;}
#order_review .shop_table tbody .nm-checkout-product-thumbnail,
#order_review .shop_table tbody .product-name,
#order_review .shop_table tbody .product-total{display:table-cell;vertical-align:top;}
#order_review .shop_table tbody .nm-checkout-product-thumbnail{width:55px;}
#order_review .shop_table tbody .nm-checkout-product-thumbnail img{width:100%;border-radius:var(--radius-sm);}
#order_review .shop_table tbody .product-name{font-size:15px;line-height:1.4;padding-right:14px;padding-left:12px;}
#order_review .shop_table tbody .product-name .product-quantity{font-size:13px;font-weight:inherit;color:#fff;padding:0 6px;border-radius:50px;background:var(--gb-text);}
#order_review .shop_table tbody .product-name .variation{padding:5px 0 0;}
#order_review .shop_table tbody .product-name .variation li{padding-bottom:0;}
#order_review .shop_table tbody .product-total{text-align:right;}
/* Gesamtsumme (order-total) - wieksza, pogrubiona, mocniejsza linia u gory (trivando l.605) */
.woocommerce-checkout-review-order-table .order-total th,.woocommerce-checkout-review-order-table .order-total td,
#order_review .shop_table tfoot tr.order-total th,#order_review .shop_table tfoot tr.order-total td{
  font-size:17px!important;font-weight:700!important;border-top:2px solid #e5e5e5!important;padding-top:14px!important;white-space:nowrap;}
#order_review .shop_table tfoot tr.order-total td strong{font-weight:700;}
.woocommerce-checkout-review-order-table .order-total .includes_tax{display:inline!important;white-space:nowrap;font-size:12px;font-weight:400;color:var(--gb-muted);}
#order_review .shop_table tfoot .woocommerce-remove-coupon{display:block;font-size:12px;line-height:1.2;}

/* ===== PLATNOSCI 1:1 z trivando (homepage-layout.php l.497-521, 590-593) ===== */
/* #payment box z ramka + bialy */
.woocommerce-checkout #payment,.woocommerce-checkout-payment #payment,.woocommerce-checkout .woocommerce-checkout-payment #payment{border:1px solid #e5e5e5!important;border-radius:10px!important;padding:2px 2px 0 2px!important;margin:16px 0 0 0!important;width:100%!important;box-sizing:border-box!important;background:#fff!important;}
.woocommerce-checkout #payment .payment_methods{border:none!important;margin-bottom:0!important;padding-bottom:0!important;list-style:none;}
/* kazda metoda: ramka przezroczysta, na wybranej delikatne szare tlo + ciemna ramka */
.woocommerce-checkout-payment .wc_payment_methods li{border:1px solid rgba(61,220,132,.45)!important;border-radius:10px!important;padding:14px!important;margin-bottom:10px!important;background:#fff;transition:background .2s,border-color .2s,box-shadow .2s}
.woocommerce-checkout #payment .payment_methods > li:last-child{border-bottom:none!important;}
.woocommerce-checkout-payment .wc_payment_methods li.selected,
.woocommerce-checkout-payment .wc_payment_methods li:has(input:checked){background:rgba(245,158,11,.08)!important;border-color:transparent!important;}
.woocommerce-checkout-payment .wc_payment_methods li label{font-size:17px!important;cursor:pointer;line-height:1.4;color:var(--gb-text);}
.woocommerce-checkout-payment .wc_payment_methods li .payment_box{font-size:15px;}
#payment .payment_methods > li .input-radio{display:inline-block!important;position:relative;top:1px;margin-right:5px;accent-color:var(--accent);}
#payment .payment_methods > li img{display:inline-block;width:auto;max-height:24px;margin-left:6px;vertical-align:middle;}
#payment .payment_methods > li a.about_paypal{display:none;}
#payment .payment_methods > li input:checked ~ .payment_box,
#payment .payment_methods > li.active input:checked ~ .payment_box{display:block!important;}
#payment .payment_box .wc-stripe-elements-field,#payment .payment_box iframe{margin-top:6px;}

/* Google Pay przeniesione JS-em nad #payment. Separator "— LUB —"/"ODER" (Stripe "or") ukryty. */
.gb-express-before-methods{margin-top:16px;}
.gb-express-before-methods:empty{margin-top:0;}
#wc-stripe-payment-request-button-separator,
#wc-stripe-express-checkout-button-separator,
.wc-stripe-payment-request-button-separator,
.wc-stripe-express-checkout-button-separator{display:none!important;}

/* Order review: Place order */
#order_review .place-order{padding-top:15px;margin-bottom:0;}
#order_review .place-order noscript{display:block;font-size:12px;padding-top:5px;}
#order_review .place-order noscript .button{width:100%;margin-top:20px;margin-bottom:15px;padding:12px;}
#order_review .terms{margin-bottom:0;padding-bottom:9px;}
#order_review .terms label{display:inline-block;padding-top:5px;cursor:pointer;}
#place_order{width:100%;margin-top:10px;padding:16px;border-radius:var(--gb-radius);font-weight:800;font-size:16px;
  background:var(--gb-green);color:#0c2417;border:1px solid var(--gb-green-d);box-shadow:0 2px 6px rgba(61,220,132,.28);cursor:pointer;}
#place_order:hover{background:var(--gb-green-d);}

/* Order review: Terms & conditions */
.woocommerce-terms-and-conditions-wrapper{padding-top:10px;padding-bottom:13px;font-size:13px;color:var(--gb-muted);}
.woocommerce-privacy-policy-text{margin-bottom:14px;}
.woocommerce-terms-and-conditions-wrapper .form-row{margin-bottom:0;}
.woocommerce-terms-and-conditions-wrapper .form-row .required{display:none;}

@media all and (max-width:1199px){
  #customer_details{width:58.33333333%;padding-right:50px;}
}

/* Mobile: kolumny jedna pod druga (1:1 trivando - break 991px) */
@media(max-width:991px){
  .woocommerce-checkout #customer_details{float:none!important;width:100%!important;padding-right:0!important;}
  .woocommerce-checkout #order_review_heading{float:none!important;width:100%!important;clear:both!important;padding:24px 0 12px!important;margin:0!important;}
  .woocommerce-checkout #order_review{float:none!important;width:100%!important;clear:both!important;}
}
@media(max-width:768px){
  .woocommerce-checkout #customer_details .col-1{padding:0!important;}
  .woocommerce-checkout .form-row{margin-bottom:10px!important;}
  .woocommerce-checkout .form-row > label{font-size:15px!important;left:12px!important;}
  .woocommerce-checkout .form-row.tvt-float-active > label,.woocommerce-checkout .form-row.tvt-float-focus > label{font-size:11px!important;top:6px!important;}
  .woocommerce-checkout input[type=text],.woocommerce-checkout input[type=email],.woocommerce-checkout input[type=tel],.woocommerce-checkout select,.woocommerce-checkout textarea,.woocommerce-checkout .input-text{font-size:16px!important;padding:22px 12px 8px!important;}
}

/* -- (30.07) BUYBOX: PayPal i pas USP na szerokosc kafelkow wariantow --
   Kafelki (.tvtpv-item) to 3 x 150px + 2 x 8px gap = 466px. Bez tego
   przycisk PayPal i zielona ramka z USP rozciagaly sie na cala kolumne
   .summary i wystawaly poza kafelki. */
.woocommerce div.product .ppc-button-wrapper,
.woocommerce div.product .gb-pp-usps{max-width:466px}
/* sam przycisk PayPala tez — SDK renderuje go na 100% rodzica */
.woocommerce div.product .ppc-button-wrapper > div,
.woocommerce div.product .ppc-button-wrapper iframe{max-width:466px!important}
@media(max-width:600px){
 .woocommerce div.product .ppc-button-wrapper,
 .woocommerce div.product .gb-pp-usps,
 .woocommerce div.product .ppc-button-wrapper > div,
 .woocommerce div.product .ppc-button-wrapper iframe{max-width:100%!important}
}

/* -- (30.07) KOSZYK KLASYCZNY — uklad jak na msz --
   Po przelaczeniu z blokow Gutenberga na [woocommerce_cart] tabela byla
   goła. Ponizej: tabela produktow + podsumowanie po prawej, przyciski
   w kolorach grasbota, pole kuponu w jednej linii. */
.woocommerce-cart .woocommerce{max-width:1200px;margin:0 auto;padding:24px 20px 50px}
.woocommerce-cart table.shop_table{width:100%;border:1px solid var(--gb-line);
 border-radius:var(--gb-radius);border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff}
.woocommerce-cart table.shop_table th{background:#f8faf9;font-weight:700;font-size:13.5px;
 color:var(--gb-text);text-align:left;padding:12px 14px;border-bottom:1px solid var(--gb-line)}
.woocommerce-cart table.shop_table td{padding:14px;border-bottom:1px solid var(--gb-line);vertical-align:middle}
.woocommerce-cart table.shop_table tr:last-child td{border-bottom:0}
.woocommerce-cart td.product-thumbnail img{width:64px;height:64px;object-fit:contain;border-radius:8px;
 border:1px solid var(--gb-line);background:#fff}
.woocommerce-cart td.product-name a{color:var(--gb-text);font-weight:600;font-size:14.5px;line-height:1.4}
.woocommerce-cart td.product-name a:hover{color:var(--gb-green-d)}
.woocommerce-cart td.product-remove a.remove{color:#b9c1c6!important;font-size:22px;line-height:1;
 display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
 border-radius:50%;transition:.14s;text-decoration:none}
.woocommerce-cart td.product-remove a.remove:hover{background:#fee;color:#d63638!important}
.woocommerce-cart td.product-price,.woocommerce-cart td.product-subtotal{font-weight:700;white-space:nowrap}
.woocommerce-cart td.product-quantity .quantity input.qty{width:64px;padding:8px;text-align:center;
 border:2px solid var(--gb-line);border-radius:8px;font-weight:700;font-family:inherit}

/* pole kuponu + Zaktualizuj koszyk w jednej linii */
.woocommerce-cart td.actions{padding:14px!important;background:#f8faf9}
.woocommerce-cart td.actions .coupon{display:flex;gap:8px;align-items:center;float:none!important}
.woocommerce-cart td.actions .coupon input#coupon_code{width:190px;padding:11px 12px;
 border:2px solid var(--gb-line);border-radius:8px;font-family:inherit;font-size:14.5px;background:#fff}
.woocommerce-cart td.actions .coupon input#coupon_code:focus{border-color:var(--gb-green);outline:none}
.woocommerce-cart td.actions .button{background:var(--gb-green);color:#0c2417;border:0;
 padding:11px 18px;border-radius:8px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;
 transition:background .14s}
.woocommerce-cart td.actions .button:hover{background:var(--gb-green-d);color:#fff}
.woocommerce-cart td.actions .button[disabled]{opacity:.5;cursor:not-allowed}

/* podsumowanie */
.woocommerce-cart .cart-collaterals{width:100%;margin-top:26px;display:flex;justify-content:flex-end}
.woocommerce-cart .cart_totals{width:100%;max-width:420px;border:1px solid var(--gb-line);
 border-radius:var(--gb-radius);background:#fff;padding:20px}
.woocommerce-cart .cart_totals h2{font-size:19px;font-weight:800;color:var(--gb-text);margin:0 0 14px}
.woocommerce-cart .cart_totals table{width:100%;border-collapse:collapse}
.woocommerce-cart .cart_totals th,.woocommerce-cart .cart_totals td{padding:10px 0;
 border-bottom:1px solid var(--gb-line);font-size:14.5px;text-align:left}
.woocommerce-cart .cart_totals tr:last-child th,.woocommerce-cart .cart_totals tr:last-child td{border-bottom:0}
.woocommerce-cart .cart_totals tr.order-total th,.woocommerce-cart .cart_totals tr.order-total td{
 font-size:17px;font-weight:800;color:var(--gb-text);padding-top:14px}
.woocommerce-cart .wc-proceed-to-checkout{padding:16px 0 0!important}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:flex!important;width:100%!important;
 align-items:center;justify-content:center;background:var(--gb-green)!important;color:#0c2417!important;
 font-weight:800;font-size:16px;padding:15px;border-radius:10px;text-decoration:none;transition:.15s}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{background:var(--gb-green-d)!important;
 color:#fff!important;transform:translateY(-1px)}
.woocommerce-cart .ppc-button-wrapper{margin-top:10px}

@media(max-width:768px){
 .woocommerce-cart .cart-collaterals{justify-content:stretch}
 .woocommerce-cart .cart_totals{max-width:none}
 .woocommerce-cart td.actions .coupon{flex-wrap:wrap}
 .woocommerce-cart td.actions .coupon input#coupon_code{flex:1;width:auto;min-width:140px}
}

/* (10.07) MOBILNY KOSZYK (klasyczny shortcode): bez tych regul wchodzil domyslny
   "rozsypany" tryb Woo (thead ukryty, etykiety ::before z data-title, wartosci z prawej,
   miniatura UKRYTA, X samotnie na dole). Teraz: karta produktu - miniatura z lewej,
   nazwa u gory, cena/ilosc/kwota w rzedach, X w prawym gornym rogu. */
@media(max-width:768px){
  .woocommerce-cart table.shop_table_responsive tr.cart_item{display:block;position:relative;padding:14px 12px 12px 96px!important;min-height:110px;}
  .woocommerce-cart table.shop_table_responsive tr.cart_item td{display:block;text-align:left!important;padding:2px 0!important;border:none!important;background:none!important;}
  .woocommerce-cart table.shop_table_responsive td::before{float:none!important;display:inline-block;margin-right:6px;color:var(--gb-muted);font-weight:600!important;font-size:12px;}
  /* miniatura: widoczna (Woo ja chowa), absolutnie z lewej */
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail{display:block!important;position:absolute;left:10px;top:14px;width:76px!important;}
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail img{width:72px!important;height:72px!important;}
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail::before{display:none!important;}
  /* nazwa: u gory, bez etykiety "Produkt:", miejsce na X */
  .woocommerce-cart table.shop_table_responsive td.product-name{padding-right:30px!important;font-size:14px!important;line-height:1.35!important;}
  .woocommerce-cart table.shop_table_responsive td.product-name::before{display:none!important;}
  /* X: prawy gorny rog karty */
  .woocommerce-cart table.shop_table_responsive td.product-remove{display:block;position:absolute;top:8px;right:8px;width:auto!important;padding:0!important;}
  .woocommerce-cart table.shop_table_responsive td.product-remove::before{display:none!important;}
  /* cena / ilosc / kwota: zwarte rzedy pod nazwa */
  .woocommerce-cart table.shop_table_responsive td.product-price,
  .woocommerce-cart table.shop_table_responsive td.product-quantity,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal{font-size:14px!important;}
  .woocommerce-cart table.shop_table_responsive td.product-quantity .quantity{display:inline-flex;vertical-align:middle;}

  /* (10.07) KASA mobile: page.php ma inline padding:36px 0 -> ZERO bocznego paddingu
     (pola do krawedzi ekranu) i 36px pustki na dole nad stopka. Nadpisujemy tylko
     na stronach WC, tylko mobile. */
  .woocommerce-checkout .container,
  .woocommerce-cart .container{padding-left:14px!important;padding-right:14px!important;padding-bottom:10px!important;}
  .woocommerce-checkout form.checkout{margin-bottom:0!important;}
  .woocommerce-checkout .woocommerce{padding-bottom:0!important;margin-bottom:0!important;}
}

/* (10.07 v2) MOBILE: taby jako JEDEN przewijany pasek. UWAGA v1 ROZPYCHALO STRONE:
   nowrap-pasek w gridzie bez min-width:0 poszerzal kolumne grida -> cala strona
   wychodzila za ekran (tekst/zdjecia). Fix: min-width:0 + max-width:100% na kontenerach. */
/* (30.07 FIX) Bylo tu osierocone "@media(max-width:700px){" bez klamry zamykajacej:
   reguly tabow mobile usunieto kiedys recznie, a otwarcie zostalo. Efekt: CALY CSS
   ponizej (koszyk, zakladki produktu, OPINIE, pasek trust) siedzial w srodku media
   query i przegladarka go ignorowala -> opinie renderowaly sie jako goly HTML. */

.woocommerce-cart .cart_totals table td{text-align:right;color:var(--gb-text)!important;font-weight:700;}
.woocommerce-cart .cart_totals tr.order-total th,.woocommerce-cart .cart_totals tr.order-total td{border-bottom:none!important;
  font-size:20px!important;font-weight:800!important;color:var(--gb-text)!important;padding-top:18px!important;padding-bottom:18px!important;}
.woocommerce-cart .cart_totals tr.order-total td .amount{font-size:22px!important;}
.woocommerce-cart .cart_totals tr.order-total small.includes_tax,
.woocommerce-cart .cart_totals .tax-rate{font-size:12px!important;font-weight:500!important;color:var(--gb-muted)!important;display:block;}
/* KOSZYK: kolor #BC562B na wierszach totals (jak trivando/checkout) + dopisek VAT */
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td,
.woocommerce-cart .cart_totals table td .amount,
.woocommerce-cart .cart_totals .msz-vat-suffix{color:#BC562B!important;}
.woocommerce-cart .cart_totals .msz-vat-suffix{font-size:12px!important;font-weight:400!important;white-space:nowrap;margin-left:4px;}
/* przycisk Zur Kasse — duzy, amber, pelna szerokosc */
.woocommerce-cart .wc-proceed-to-checkout{padding:18px 0 0!important;}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:flex!important;width:100%!important;
  height:56px!important;align-items:center;justify-content:center;font-size:17px!important;font-weight:800!important;
  background:var(--gb-green)!important;color:#0c2417!important;border:1px solid var(--gb-green-d)!important;
  border-radius:var(--gb-radius)!important;box-shadow:0 2px 8px rgba(217,119,6,.30)!important;text-decoration:none;}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{background:var(--gb-green-d)!important;color:#0c2417!important;transform:translateY(-1px);}

/* naglowek strony Warenkorb */
.woocommerce-cart h1.entry-title,.woocommerce-cart .entry-header h1{font-size:30px!important;margin-bottom:8px;}

/* responsive: podsumowanie pod tabela */
@media(max-width:900px){
  .woocommerce-cart .woocommerce{grid-template-columns:1fr;gap:26px;}
  .woocommerce-cart-form,.woocommerce-cart .cart-collaterals{grid-column:1;}
}

/* ============================================================
   FOOTER
   ============================================================ */

/* -- (30.07 v3) ZAKLADKI PRODUKTU 1:1 Z MSZ --
   v2 robila "pigulki" (zaokraglone kafelki z ramka). Na msz zakladki sa PLASKIE:
   sam tekst, pod calym paskiem cienka linia, a pod AKTYWNA gruba kreska w kolorze
   marki (tam amber, u nas zielen). Panel bez ramki — tresc leci bezposrednio pod
   nawigacja. Msz uzywa wlasnego szablonu (.msz-tabnav), grasbot stoi na domyslnych
   zakladkach Woo (ul.tabs), wiec te same efekty osiagamy na selektorach Woo.
   !important wszedzie, bo woocommerce.css ma wyzsza wage. */
body .woocommerce-tabs{margin-top:36px!important}
body .woocommerce-tabs ul.tabs{display:flex!important;flex-wrap:wrap;gap:2px;
 padding:0!important;margin:0 0 22px!important;list-style:none!important;overflow:visible!important;
 border:0!important;border-bottom:2px solid var(--gb-line)!important}
body .woocommerce-tabs ul.tabs::before,
body .woocommerce-tabs ul.tabs::after{display:none!important;border:0!important;content:none!important}
body .woocommerce-tabs ul.tabs li{margin:0!important;padding:0!important;
 background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
 display:inline-block!important}
body .woocommerce-tabs ul.tabs li::before,
body .woocommerce-tabs ul.tabs li::after{display:none!important;content:none!important;
 border:0!important;box-shadow:none!important}
body .woocommerce-tabs ul.tabs li a{display:inline-block!important;
 background:none!important;background-color:transparent!important;border:0!important;border-radius:0!important;
 box-shadow:none!important;text-shadow:none!important;text-transform:none!important;letter-spacing:normal!important;
 font-family:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1.2!important;
 color:var(--gb-muted)!important;padding:12px 20px!important;margin:0 0 -2px 0!important;
 text-decoration:none!important;border-bottom:3px solid transparent!important;
 transition:color .12s,border-color .12s}
body .woocommerce-tabs ul.tabs li a:hover{color:var(--gb-text)!important;
 background:none!important;box-shadow:none!important;transform:none!important;border-bottom-color:transparent!important}
body .woocommerce-tabs ul.tabs li.active a{color:var(--gb-text)!important;
 background:none!important;border-bottom-color:var(--gb-green)!important}
/* panel z trescia — bez ramki, jak na msz */
body .woocommerce-tabs .panel{border:0!important;border-radius:0!important;
 background:transparent!important;padding:0!important;margin:0!important}
body .woocommerce-tabs .panel > h2:first-child{display:none}
/* MOBILE: pasek zakladek przewijany poziomo, jak na msz (tam @media 700px).
   min-width:0 KONIECZNE i to na CALYM lancuchu rodzicow — nowrap-pasek liczy
   swoja szerokosc minimalna z sumy zakladek; jesli ktorykolwiek przodek nie ma
   min-width:0, ta suma staje sie jego szerokoscia minimalna i rozpycha CALA
   strone poza ekran (dokladnie ten bug: project_messerscheibe24_mobile_fixes).
   overflow-x:auto na samym pasku = palec przesuwa zakladki, strona stoi. */
@media(max-width:700px){
 body .woocommerce div.product,
 body .woocommerce-tabs,
 body .woocommerce-tabs .panel{min-width:0!important;max-width:100%!important}
 body .woocommerce-tabs ul.tabs{flex-wrap:nowrap!important;overflow-x:auto!important;
  min-width:0!important;max-width:100%!important;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding-bottom:1px!important}
 body .woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none}
 body .woocommerce-tabs ul.tabs li{flex:0 0 auto!important;min-width:0!important}
 body .woocommerce-tabs ul.tabs li a{white-space:nowrap!important;
  font-size:14px!important;padding:11px 14px!important}
 /* tresc zakladek (tabele danych technicznych, opinie) tez nie moze rozpychac */
 body .woocommerce-tabs .panel table{display:block;overflow-x:auto;max-width:100%}
 body .msz-reviews,body .msz-review-form{min-width:0;max-width:100%}
 body .msz-reviews-head{grid-template-columns:1fr!important;gap:20px}
}
/* TWARDY BEZPIECZNIK: nic na stronie produktu nie ma prawa wyjsc poza ekran.
   Gdyby ktorys przyszly element znowu rozepchnal layout, ucinamy to na body. */
@media(max-width:700px){
 html,body{overflow-x:hidden;max-width:100%}
}

/* -- (30.07) OPINIE PRODUKTU — CSS przeniesiony z msz --
   Modul inc/product-reviews.php renderowal formularz (gwiazdki, pola,
   zdjecie), ale bez tych regul elementy byly niewidoczne/zapadniete.
   Kolory msz (amber/navy) zamienione na zmienne grasbota. */

/* ── OCENY: sekcja recenzji (tab Bewertungen) Amazon-style ── */
.msz-reviews-head{display:grid;grid-template-columns:230px 1fr;gap:36px;align-items:start;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--gb-line);}
.msz-reviews-avg-big{font-size:40px;font-weight:800;color:var(--gb-text);line-height:1;}
.msz-reviews-avg-big span{font-size:17px;font-weight:600;color:var(--gb-muted);}
.msz-reviews-avg-stars{display:flex;gap:2px;margin:8px 0 6px;}
.msz-reviews-total{font-size:13px;color:var(--gb-muted);}
.msz-reviews-bars{display:flex;flex-direction:column;gap:7px;max-width:440px;}
.msz-bar-row{display:flex;align-items:center;gap:12px;font-size:13px;}
.msz-bar-label{width:62px;color:var(--accent);font-weight:600;white-space:nowrap;}
.msz-bar-track{flex:1;height:20px;background:#eef0f3;border:1px solid #e0e3e8;border-radius:4px;overflow:hidden;}
.msz-bar-fill{display:block;height:100%;background:var(--gb-green);transition:width .3s;}
.msz-bar-pct{width:38px;text-align:right;color:var(--gb-muted);font-weight:600;}

.msz-reviews-list-title{font-size:18px;font-weight:800;color:var(--gb-text);margin:0 0 18px;}
.msz-review{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--gb-line);}
.msz-review:last-child{border-bottom:none;}
.msz-review-author{display:flex;align-items:center;gap:9px;margin-bottom:6px;}
.msz-review-avatar{width:30px;height:30px;border-radius:50%;background:var(--navy-light);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.msz-review-name{font-size:14px;font-weight:600;color:var(--gb-text);}
.msz-review-flag{font-size:16px;line-height:1;margin-left:2px;}
.msz-review-stars{display:flex;align-items:center;gap:8px;margin-bottom:3px;}
.msz-review-stars > svg{margin-right:1px;}
.msz-review-verified{font-size:12px;font-weight:700;color:var(--gb-green-d);}
.msz-review-date{font-size:12.5px;color:var(--gray-light);margin-bottom:8px;}
.msz-review-text{font-size:14px;color:var(--gb-muted);line-height:1.7;}
.msz-review-text p{margin:0 0 8px;}
.msz-reviews-empty{font-size:14px;color:var(--gb-muted);padding:8px 0 24px;}
/* zdjecie w recenzji */
.msz-review-photo{display:inline-block;margin-top:10px;border:1px solid var(--gb-line);border-radius:8px;overflow:hidden;transition:border-color .15s;}
.msz-review-photo:hover{border-color:var(--gb-green);}
.msz-review-photo img{width:120px;height:120px;object-fit:cover;display:block;}

/* ── FORMULARZ OCENY (Amazon-style) ── */
.msz-review-form{margin-top:34px;padding:24px;background:var(--gb-bg);border:1px solid var(--gb-line);border-radius:var(--radius-lg);max-width:680px;}
.msz-review-form-title{font-size:18px;font-weight:800;color:var(--gb-text);margin:0 0 18px;}
.msz-review-login{font-size:14px;color:var(--gb-muted);}
.msz-review-form label{display:block;font-size:13px;font-weight:700;color:var(--gb-text);margin-bottom:6px;}
.msz-review-form .req{color:var(--red);}
.msz-review-form .msz-opt{color:var(--gray-light);font-weight:400;}
.msz-form-rating{margin-bottom:18px;}
/* klikalne gwiazdki — reset MUSI wygrac nad globalnym button{background:amber} */
.msz-review-form .msz-star-pick{display:inline-flex!important;gap:6px;}
.msz-review-form .msz-star-pick-btn{
  appearance:none!important;-webkit-appearance:none!important;
  background:none!important;background-color:transparent!important;background-image:none!important;
  border:none!important;border-radius:0!important;box-shadow:none!important;text-shadow:none!important;
  padding:0!important;margin:0!important;width:auto!important;min-width:0!important;height:auto!important;
  cursor:pointer;line-height:0!important;display:inline-flex!important;}
.msz-review-form .msz-star-pick-btn:hover{transform:none!important;background:none!important;background-color:transparent!important;box-shadow:none!important;}
.msz-review-form .msz-star-pick-btn svg polygon{fill:#d5d9d9;transition:fill .1s;}
.msz-review-form .msz-star-pick-btn.on svg polygon{fill:var(--gb-green);}
.msz-form-row{display:flex;gap:16px;flex-wrap:wrap;}
.msz-form-row .msz-form-field{flex:1;min-width:200px;}
.msz-form-field{margin-bottom:16px;}
.msz-review-form input[type=text],.msz-review-form input[type=email],.msz-review-form textarea{
  width:100%;border:1.5px solid #cbd5e1;border-radius:8px;padding:10px 12px;
  font-family:inherit;font-size:14px;color:var(--gb-text);background:#fff;transition:border-color .15s,box-shadow .15s;}
.msz-review-form input:focus,.msz-review-form textarea:focus{outline:none;border-color:var(--gb-green);box-shadow:0 0 0 3px rgba(245,158,11,.18);}
.msz-review-form textarea{resize:vertical;min-height:110px;}
/* upload zdjecia */
.msz-photo-drop{display:inline-flex!important;align-items:center;gap:9px;cursor:pointer;background:#fff;border:1.5px dashed #cbd5e1;border-radius:8px;padding:11px 18px;font-size:13px;font-weight:600;color:var(--gb-muted);transition:border-color .15s,color .15s;width:auto!important;max-width:max-content;}
.msz-photo-drop:hover{border-color:var(--gb-green);color:var(--gb-green-d);}
.msz-photo-drop svg{width:20px!important;height:20px!important;flex-shrink:0;}
/* twarde ograniczenie KAZDEGO inline-svg w formularzu oceny (inaczej rosnie do 100%) */
.msz-review-form svg{width:20px;height:20px;flex-shrink:0;}
.msz-star-pick-btn svg{width:30px!important;height:30px!important;}
.msz-photo-preview{display:flex;gap:10px;margin-top:12px;}
.msz-photo-preview{position:relative;}
.msz-photo-preview img{width:90px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--gb-line);}
.msz-photo-rm{position:absolute;top:-7px;left:76px;width:22px;height:22px;border:none!important;border-radius:50%!important;background:var(--gb-text)!important;color:#fff!important;font-size:15px!important;line-height:1!important;cursor:pointer;padding:0!important;box-shadow:0 1px 4px rgba(0,0,0,.3)!important;display:flex!important;align-items:center;justify-content:center;}
.msz-photo-rm:hover{background:var(--red)!important;transform:none!important;}
/* (30.07) przycisk wysylki opinii: na msz styl dawala GLOBALNA regula
   .btn,button,input[type=submit] (l.53). Grasbot jej nie ma (przyciski sklepu maja
   wlasne style), wiec renderowal sie goly systemowy button. Stylujemy punktowo. */
.msz-review-submit{margin-top:6px;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;
  background:var(--gb-green)!important;color:#0c2417!important;border:0!important;cursor:pointer;
  padding:13px 26px!important;border-radius:var(--gb-radius)!important;font-family:inherit;
  font-weight:800!important;font-size:15px!important;line-height:1.2!important;width:auto!important;
  text-shadow:none!important;transition:background .15s,transform .12s;}
.msz-review-submit:hover{background:var(--gb-green-d)!important;color:#fff!important;transform:translateY(-1px);}

@media(max-width:680px){
  .msz-reviews-head{grid-template-columns:1fr;gap:20px;}
}

.msz-desc{color:var(--gb-muted);font-size:15px;line-height:1.8;max-width:900px;}

/* -- (30.07) PLATNOSCI 1:1 Z MSZ (tam 1:1 z trivando) --
   Ramka wokol calego #payment, kazda metoda jako wiersz z cienka linia,
   wybrana podswietlona delikatnym tlem marki. Kolory msz (amber) -> zielen. */
.woocommerce-checkout #payment,.woocommerce-checkout-payment #payment,
.woocommerce-checkout .woocommerce-checkout-payment #payment{
 border:1px solid var(--gb-line)!important;border-radius:10px!important;
 padding:2px 2px 0 2px!important;margin:16px 0 0 0!important;width:100%!important;
 box-sizing:border-box!important;background:#fff!important}
.woocommerce-checkout #payment .payment_methods{border:none!important;margin-bottom:0!important;
 padding-bottom:0!important;list-style:none}
.woocommerce-checkout-payment .wc_payment_methods li{border:1px solid rgba(61,220,132,.45)!important;border-radius:10px!important;padding:14px!important;margin-bottom:10px!important;background:#fff;transition:background .2s,border-color .2s,box-shadow .2s}
.woocommerce-checkout #payment .payment_methods > li:last-child{border-bottom:none!important}
.woocommerce-checkout-payment .wc_payment_methods li.selected,
.woocommerce-checkout-payment .wc_payment_methods li:has(input:checked){
 background:rgba(61,220,132,.10)!important;border-color:transparent!important}
.woocommerce-checkout-payment .wc_payment_methods li label{font-size:16px!important;cursor:pointer;
 line-height:1.4;color:var(--gb-text)}
.woocommerce-checkout-payment .wc_payment_methods li .payment_box{font-size:15px}
#payment .payment_methods > li .input-radio{display:inline-block!important;position:relative;top:1px;
 margin-right:5px;accent-color:var(--gb-green)}
#payment .payment_methods > li img{display:inline-block;width:auto;max-height:24px;margin-left:6px;
 vertical-align:middle}
#payment .payment_methods > li a.about_paypal{display:none}
#payment .payment_methods > li input:checked ~ .payment_box,
#payment .payment_methods > li.active input:checked ~ .payment_box{display:block!important}
#payment .payment_box .wc-stripe-elements-field,#payment .payment_box iframe{margin-top:6px}
/* separator Stripe "lub" — precz */
#wc-stripe-payment-request-button-separator,
#wc-stripe-express-checkout-button-separator,
.wc-stripe-payment-request-button-separator,
.wc-stripe-express-checkout-button-separator{display:none!important}
/* (decyzja usera) opisy pod metodami i checkbox zapisu karty — precz */
#payment li.payment_method_ppcp-gateway .payment_box,
#payment li.payment_method_ppcp-blik .payment_box,
#payment li.payment_method_ppcp-eps .payment_box,
#payment li.payment_method_ppcp-ideal .payment_box,
#payment li.payment_method_stripe_klarna .payment_box,
#payment li.payment_method_stripe_eps .payment_box{display:none!important}
#payment .woocommerce-SavedPaymentMethods-saveNew,
#payment .wc-stripe-save-source,
#payment #wc-stripe-new-payment-method-container,
#payment input#wc-stripe-new-payment-method,
#payment label[for="wc-stripe-new-payment-method"]{display:none!important}
/* przycisk zlozenia zamowienia */
#order_review .place-order{padding-top:15px;margin-bottom:0}
#place_order{width:100%;margin-top:10px;padding:16px;border-radius:var(--gb-radius);font-weight:800;
 font-size:16px;background:var(--gb-green);color:#0c2417;border:0;cursor:pointer;
 transition:background .15s,transform .12s}
#place_order:hover{background:var(--gb-green-d);color:#fff;transform:translateY(-1px)}
