/*
Theme Name: Szafa Otwarta
Theme URI: https://ecommerce-manager.pl
Author: ecommerce-manager.pl
Description: Autorski motyw WooCommerce dla sklepu z modą damską — czysta biel, mocna czerwień promocyjna, ostre krawędzie, duże zdjęcia produktów. Układ inspirowany sklepami typu Pakuten.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: szafa-otwarta
*/

/* ==========================================================================
   0. Design tokens
   ========================================================================== */
:root{
  --so-red:#ee0033;          /* pasek promocyjny, ceny promocyjne, akcenty */
  --so-red-dark:#c8002b;
  --so-pink:#fd5164;         /* plakietka rabatu na zdjęciu */
  --so-black:#000000;        /* przyciski */
  --so-ink:#212529;          /* tekst podstawowy */
  --so-grey-900:#333333;
  --so-grey-600:#666666;
  --so-grey-400:#777777;     /* opisy, meta */
  --so-grey-300:#9b9b9b;
  --so-line:#e6e6e6;
  --so-line-soft:#f0f0f0;
  --so-bg-soft:#f6f6f6;
  --so-white:#ffffff;
  --so-green:#2e7d32;

  --so-maxw:1360px;
  --so-gut:20px;
  --so-radius:0px;

  --so-font:'Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,Helvetica,sans-serif;
  --so-font-display:'Jost','Open Sans',-apple-system,'Segoe UI',Arial,sans-serif;

  --so-shadow:0 6px 26px rgba(0,0,0,.10);
  --so-shadow-sm:0 2px 8px rgba(0,0,0,.07);
}

/* ==========================================================================
   1. Reset / baza
   ========================================================================== */
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--so-white);color:var(--so-ink);
  font-family:var(--so-font);font-size:14px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .15s ease}
a:hover{color:var(--so-red)}
button{font-family:inherit}
h1,h2,h3,h4{
  margin:0 0 .5em;font-family:var(--so-font-display);font-weight:700;
  line-height:1.2;color:var(--so-ink);letter-spacing:.01em;
}
h1{font-size:clamp(24px,3.4vw,36px)}
h2{font-size:clamp(20px,2.4vw,28px)}
h3{font-size:18px}
p{margin:0 0 1em}

.so-container{max-width:var(--so-maxw);margin:0 auto;padding:0 var(--so-gut);width:100%}
.so-section{padding:48px 0}
.so-section--tight{padding:26px 0}

/* Nagłówek sekcji — wersaliki + mocna kreska (jak na Pakuten) */
.so-sec-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:0 0 26px;padding-bottom:12px;border-bottom:2px solid var(--so-ink);
}
.so-sec-head h2{
  margin:0;font-size:clamp(19px,2.2vw,26px);font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
}
.so-sec-head .so-more{
  font-family:var(--so-font-display);font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;color:var(--so-grey-400);white-space:nowrap;
}
.so-sec-head .so-more:hover{color:var(--so-red)}

/* Przyciski — czarne, prostokątne, wersaliki */
.so-btn,.button,button.button,a.button,
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
  display:inline-flex;align-items:center;justify-content:center;
  height:44px;padding:0 26px;border:0;border-radius:var(--so-radius);
  background:var(--so-black);color:#fff;cursor:pointer;
  font-family:var(--so-font-display);font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;line-height:1;
  transition:background .18s ease,color .18s ease;
}
.so-btn:hover,.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce #respond input#submit:hover{background:var(--so-red);color:#fff}
.so-btn--ghost{background:transparent;color:var(--so-ink);border:1px solid var(--so-ink)}
.so-btn--ghost:hover{background:var(--so-ink);color:#fff}
.so-btn--red{background:var(--so-red)}
.so-btn--red:hover{background:var(--so-black)}

/* ==========================================================================
   2. Pasek promocyjny (czerwony, na samej górze)
   ========================================================================== */
.so-topbar{
  background:var(--so-red);color:#fff;text-align:center;
  font-family:var(--so-font-display);font-size:13px;font-weight:500;letter-spacing:.03em;
  padding:9px var(--so-gut);
}
.so-topbar strong{font-weight:700}
.so-topbar a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.so-topbar a:hover{color:#fff;opacity:.85}
.so-topbar .so-red-txt{font-weight:700;text-transform:uppercase;letter-spacing:.06em}

/* ==========================================================================
   3. Header
   ========================================================================== */
.so-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--so-line)}
.so-header__main{
  display:flex;align-items:center;gap:26px;
  max-width:var(--so-maxw);margin:0 auto;padding:18px var(--so-gut);
}

/* Logo — wordmark (podmienialny na plik w Wygląd → Dostosuj → Logo) */
.so-logo{display:inline-flex;align-items:center;color:var(--so-ink);flex:0 0 auto}
.so-logo:hover{color:var(--so-ink)}
.so-logo .custom-logo-link{display:inline-flex;align-items:center;line-height:0}
.so-logo img{max-height:44px;width:auto}
.so-logo__wrap{display:flex;flex-direction:column;line-height:1}
.so-logo__lockup{
  font-family:var(--so-font-display);font-size:27px;font-weight:700;
  text-transform:uppercase;letter-spacing:.10em;white-space:nowrap;
}
.so-logo__b{color:var(--so-red)}
.so-logo__div{display:none}
.so-logo__tag{
  font-family:var(--so-font-display);font-size:9px;font-weight:500;
  letter-spacing:.34em;text-transform:uppercase;color:var(--so-grey-400);margin-top:5px;
}

/* Wyszukiwarka */
.so-search{flex:1;max-width:640px}
.so-search form{display:flex;width:100%}
.so-search input[type=search],.so-search .search-field{
  flex:1;height:42px;border:1px solid var(--so-line);border-right:0;border-radius:0;
  padding:0 16px;font-family:var(--so-font);font-size:13.5px;color:var(--so-ink);background:#fff;outline:none;
}
.so-search input::placeholder{color:var(--so-grey-300)}
.so-search input:focus{border-color:var(--so-ink)}
.so-search button{
  width:52px;height:42px;border:0;border-radius:0;background:var(--so-black);
  color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .18s ease;
}
.so-search button:hover{background:var(--so-red)}
.so-search button svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:1.8}

/* Ikony po prawej */
.so-actions{display:flex;align-items:center;gap:24px;margin-left:auto}
.so-act{
  display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;
  font-family:var(--so-font-display);font-size:10.5px;font-weight:500;
  text-transform:uppercase;letter-spacing:.08em;color:var(--so-ink);
}
.so-act:hover{color:var(--so-red)}
.so-act svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.5}
.so-act__count{
  position:absolute;top:-5px;right:2px;min-width:17px;height:17px;padding:0 4px;
  background:var(--so-red);color:#fff;border-radius:9px;
  font-family:var(--so-font);font-size:10px;font-weight:700;line-height:17px;text-align:center;
}

/* ==========================================================================
   4. Nawigacja + mega menu
   ========================================================================== */
.so-nav{background:#fff;border-top:1px solid var(--so-line-soft)}
.so-nav__inner{max-width:var(--so-maxw);margin:0 auto;padding:0 var(--so-gut);position:relative}
.so-menu{list-style:none;margin:0;padding:0;display:flex;gap:0;flex-wrap:wrap;justify-content:center}
.so-menu>li{position:relative}
.so-menu>li.so-has-mega{position:static}
.so-menu>li>a{
  display:block;position:relative;padding:14px 13px;
  font-family:var(--so-font-display);font-size:13px;font-weight:600;
  text-transform:uppercase;letter-spacing:.09em;color:var(--so-ink);
}
.so-menu>li>a:hover{color:var(--so-red)}
.so-menu>li.so-hot>a{color:var(--so-red);font-weight:700}
.so-menu>li.so-hot>a:hover{color:var(--so-black)}
.so-menu>li>a::after{
  content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;
  background:var(--so-red);transform:scaleX(0);transition:transform .18s ease;
}
.so-menu>li:hover>a::after{transform:scaleX(1)}

/* Zwykły dropdown (menu z WP) */
.so-menu .sub-menu,.so-menu ul.children{
  list-style:none;margin:0;padding:8px 0;position:absolute;top:100%;left:0;min-width:230px;
  background:#fff;border:1px solid var(--so-line);box-shadow:var(--so-shadow);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:all .18s ease;z-index:70;
}
.so-menu>li:hover>.sub-menu,.so-menu>li:hover>ul.children{opacity:1;visibility:visible;transform:translateY(0)}
.so-menu .sub-menu li a{display:block;padding:9px 20px;font-size:13px;color:var(--so-grey-600)}
.so-menu .sub-menu li a:hover{color:var(--so-red);background:var(--so-bg-soft)}

/* Mega menu (fallback budowany z kategorii sklepu) */
.so-mega{
  position:absolute;top:100%;left:var(--so-gut);right:var(--so-gut);transform:translateY(6px);
  background:#fff;border:1px solid var(--so-line);
  box-shadow:var(--so-shadow);padding:28px 30px;z-index:70;
  opacity:0;visibility:hidden;transition:all .18s ease;
}
.so-menu>li.so-has-mega:hover>.so-mega{opacity:1;visibility:visible;transform:translateY(0)}
.so-mega__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px 28px}
.so-mega__grid--flat{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 24px}
.so-mega__link{display:block;padding:7px 0;font-size:13px;color:var(--so-grey-400)}
.so-mega__link:hover{color:var(--so-red)}
.so-mega__head{
  display:block;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--so-line);
  font-family:var(--so-font-display);font-size:12.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;color:var(--so-ink);
}
.so-mega__head:hover{color:var(--so-red)}
.so-mega__col ul{list-style:none;margin:0;padding:0}
.so-mega__col li{margin-bottom:7px}
.so-mega__col li a{font-size:13px;color:var(--so-grey-400)}
.so-mega__col li a:hover{color:var(--so-red)}

/* ==========================================================================
   5. Hero / kafle kategorii
   ========================================================================== */
.so-hero{max-width:var(--so-maxw);margin:0 auto;padding:18px var(--so-gut) 0}
.so-hero__grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.so-hero__cell{position:relative;overflow:hidden;min-height:220px;display:flex;align-items:flex-end;color:#fff}
.so-hero__cell--main{grid-row:span 2;min-height:500px}
.so-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease}
.so-hero__cell:hover .so-hero__bg{transform:scale(1.04)}
.so-hero__cell::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.5) 100%)}
.so-hero__inner{position:relative;z-index:2;padding:30px}
.so-hero__eyebrow{
  display:inline-block;background:var(--so-red);color:#fff;padding:5px 12px;margin-bottom:12px;
  font-family:var(--so-font-display);font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
}
.so-hero__title{color:#fff;font-size:clamp(24px,3vw,42px);margin:0 0 6px;text-transform:uppercase;letter-spacing:.02em}
.so-hero__sub{color:rgba(255,255,255,.92);font-size:15px;margin:0 0 18px}
.so-hero__cta{
  display:inline-flex;height:44px;align-items:center;padding:0 28px;background:#fff;color:var(--so-ink);
  font-family:var(--so-font-display);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
}
.so-hero__cta:hover{background:var(--so-red);color:#fff}

.so-cats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.so-cat{text-align:center}
.so-cat__img{aspect-ratio:3/4;overflow:hidden;background:var(--so-bg-soft);position:relative}
.so-cat__img img,.so-cat__img .so-ph{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.so-cat:hover .so-cat__img img{transform:scale(1.05)}
.so-cat__name{
  margin-top:10px;font-family:var(--so-font-display);font-size:12.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;
}
.so-ph{
  display:flex;align-items:center;justify-content:center;background:var(--so-bg-soft);
  color:var(--so-grey-300);font-family:var(--so-font-display);font-weight:700;font-size:18px;text-transform:uppercase;
}

/* ==========================================================================
   6. Siatka produktów + karta
   ========================================================================== */
ul.products,.so-products{
  list-style:none;margin:0!important;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:28px 20px;
}
ul.products::before,ul.products::after{content:none!important}
ul.products li.product{width:auto!important;margin:0!important;float:none!important;padding:0!important;clear:none!important}

.so-card,li.product{position:relative;background:#fff;border-radius:0}
.so-card__media,li.product .so-thumb{position:relative;overflow:hidden;background:var(--so-bg-soft);aspect-ratio:2/3}
.so-card__media>a.woocommerce-LoopProduct-link{position:absolute;inset:0;display:block;width:100%;height:100%}
.so-card__media img,li.product>a img{
  width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,opacity .3s ease;
}
li.product:hover .so-card__media img,li.product:hover>a img{transform:scale(1.03)}

/* Plakietki: rabat (róż) i nowość (czerń) */
.so-badge{position:absolute;top:0;left:0;z-index:3;display:flex;flex-direction:column;gap:0;align-items:flex-start}
.so-badge span{
  display:block;padding:6px 11px;border-radius:0;color:#fff;
  font-family:var(--so-font-display);font-size:12px;font-weight:700;letter-spacing:.04em;
}
.so-badge .is-sale{background:var(--so-pink)}
.so-badge .is-new{background:var(--so-black)}
.so-badge .so-badge__note{
  background:var(--so-pink);color:#fff;padding:0 11px 5px;
  font-family:var(--so-font);font-size:9.5px;font-weight:400;letter-spacing:.02em;line-height:1.2;
}

/* Serce „ulubione" */
.so-heart{
  position:absolute;top:8px;right:8px;z-index:3;width:34px;height:34px;border:0;border-radius:0;
  background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;cursor:pointer;
  opacity:0;transition:opacity .2s ease,background .2s ease;
}
li.product:hover .so-heart{opacity:1}
.so-heart svg{width:18px;height:18px;stroke:var(--so-ink);fill:none;stroke-width:1.6}
.so-heart:hover{background:#fff}
.so-heart:hover svg{stroke:var(--so-red)}

/* Pasek kodu promocyjnego na dole zdjęcia */
.so-promo-code{
  position:absolute;left:0;right:0;bottom:0;z-index:3;background:rgba(0,0,0,.78);color:#fff;
  padding:6px 10px;font-size:11px;letter-spacing:.02em;text-align:center;
}
.so-promo-code strong{font-weight:700;letter-spacing:.05em}

/* Treść karty */
.so-card__body{padding:12px 2px 4px}
.so-card__cat{font-size:11.5px;color:var(--so-grey-300);margin-bottom:3px;letter-spacing:.02em}
.so-card__title,.woocommerce-loop-product__title{
  font-family:var(--so-font);font-size:13.5px;font-weight:400;line-height:1.45;color:var(--so-ink);
  margin:0 0 8px;min-height:2.9em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:0;font-size:13.5px}
li.product a:hover .woocommerce-loop-product__title{color:var(--so-red)}
.so-brand{
  font-family:var(--so-font-display);font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;color:var(--so-grey-400);margin-bottom:4px;
}

/* Blok ceny */
.so-price{display:block;margin-top:2px}
.woocommerce ul.products li.product .price{color:var(--so-ink);font-size:17px;font-weight:700;margin:0}
.so-price__now{
  font-family:var(--so-font-display);font-size:19px;font-weight:700;color:var(--so-red);line-height:1.15;
  display:inline-block;
}
.so-price__now--plain{color:var(--so-ink)}
.so-price__reg,.so-price__low{font-size:11.5px;color:var(--so-grey-400);margin-top:3px;line-height:1.35}
.so-price__reg del,.so-price__low del{color:var(--so-grey-400);text-decoration:line-through;margin-right:3px}
.so-price__reg .so-pct,.so-price__low .so-pct2{color:var(--so-red);font-weight:700}
.so-price__low{font-size:10.5px;color:var(--so-grey-300)}

/* Przycisk „do koszyka" w karcie */
li.product .button,li.product a.add_to_cart_button,li.product a.added_to_cart{
  width:100%;margin-top:10px;height:40px;font-size:12px;letter-spacing:.08em;opacity:0;
  transform:translateY(4px);transition:opacity .2s ease,transform .2s ease,background .18s ease;
}
li.product:hover .button{opacity:1;transform:translateY(0)}
@media(hover:none){li.product .button{opacity:1;transform:none}.so-heart{opacity:1}}

/* ==========================================================================
   7. Paski promocyjne / USP / tekst SEO
   ========================================================================== */
.so-strip{
  background:var(--so-ink);color:#fff;padding:36px 34px;display:flex;align-items:center;
  justify-content:space-between;gap:22px;flex-wrap:wrap;
}
.so-strip h2{color:#fff;margin:0;text-transform:uppercase;letter-spacing:.05em}
.so-strip p{color:rgba(255,255,255,.85);margin:6px 0 0}
.so-strip--red{background:var(--so-red)}

.so-usp{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  border-top:1px solid var(--so-line);border-bottom:1px solid var(--so-line);padding:22px 0;
}
.so-usp__item{
  display:flex;align-items:center;gap:11px;justify-content:center;
  font-family:var(--so-font-display);font-size:12.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;color:var(--so-ink);text-align:left;
}
.so-usp__item svg{width:26px;height:26px;stroke:var(--so-red);fill:none;stroke-width:1.4;flex:0 0 auto}

.so-seo{border-top:1px solid var(--so-line);padding-top:34px;color:var(--so-grey-400);font-size:13.5px}
.so-seo h2,.so-seo h3{color:var(--so-ink);text-transform:uppercase;letter-spacing:.05em;font-size:17px;margin:26px 0 12px}
.so-seo h2:first-child{margin-top:0}
.so-seo p{margin-bottom:14px;line-height:1.8}

/* ==========================================================================
   8. Sklep / archiwum
   ========================================================================== */
.so-shop-layout{display:block}
.so-shop-main{min-width:0}
.woocommerce-products-header__title,.page-title{
  font-size:clamp(22px,2.8vw,32px);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px;
}
.so-shop-head{padding:26px 0 4px}
.so-breadcrumb,.woocommerce-breadcrumb,.so-pdp-crumbs{
  font-size:12px;color:var(--so-grey-300);margin:16px 0 12px;letter-spacing:.02em;
}
.so-breadcrumb a:hover,.woocommerce-breadcrumb a:hover,.so-pdp-crumbs a:hover{color:var(--so-red)}
.woocommerce .woocommerce-result-count{color:var(--so-grey-400);font-size:12.5px;margin-bottom:18px}
.woocommerce .woocommerce-ordering{margin-bottom:18px}
.woocommerce .woocommerce-ordering select{
  height:42px;border:1px solid var(--so-line);border-radius:0;padding:0 14px;
  font-family:var(--so-font);font-size:13px;background:#fff;
}
.so-brand-filter-note{font-size:13px;color:var(--so-grey-400);margin-bottom:14px}
.so-brand-filter-note strong{color:var(--so-ink)}

/* Filtry (lewa kolumna, gdy używana) */
.so-filter-block{margin-bottom:26px}
.so-filter-block h3{
  font-family:var(--so-font-display);font-size:13px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;padding-bottom:9px;border-bottom:1px solid var(--so-line);margin-bottom:12px;
}
.so-filter-searchbox input{width:100%;height:40px;border:1px solid var(--so-line);padding:0 12px;font-family:var(--so-font)}
.so-filter-note{display:block;font-size:11.5px;color:var(--so-grey-300);margin-top:6px}
.so-filter-cats{list-style:none;margin:0;padding:0}
.so-filter-cats li{margin-bottom:8px}
.so-filter-cats a{font-size:13px;color:var(--so-grey-400);display:flex;justify-content:space-between;gap:10px}
.so-filter-cats a:hover,.so-filter-cats a.is-active{color:var(--so-red)}
.so-filter-cats span{color:var(--so-grey-300);font-size:11.5px}

/* Paginacja */
.woocommerce nav.woocommerce-pagination{margin-top:36px}
.woocommerce nav.woocommerce-pagination ul{border:0;margin:0;display:flex;gap:6px;justify-content:center}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{
  min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--so-line);padding:0 10px;
  font-family:var(--so-font-display);font-weight:600;font-size:13px;color:var(--so-ink);
}
.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--so-ink);background:#fff;color:var(--so-red)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--so-black);color:#fff;border-color:var(--so-black)}

/* ==========================================================================
   9. Karta produktu (single)
   ========================================================================== */
.so-single-wrap{padding-bottom:20px}
.single-product div.product{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px;margin-top:10px;
}
.single-product div.product>.woocommerce-product-gallery{grid-column:1;grid-row:1;width:100%!important;min-width:0;float:none!important;margin:0}
.single-product div.product>.summary{grid-column:2;grid-row:1;margin:0;padding-top:2px;width:auto!important;float:none!important}
.single-product div.product>.so-pdp-desc,
.single-product div.product>.so-composition,
.single-product div.product>.related,
.single-product div.product>.up-sells,
.single-product div.product>.woocommerce-tabs,
.single-product div.product>.product_meta{grid-column:1 / -1}

.woocommerce-product-gallery{position:relative}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper{margin:0}
.woocommerce-product-gallery__image{overflow:hidden;background:var(--so-bg-soft)}
.woocommerce-product-gallery__image img{width:100%!important;height:auto;display:block}
/* Miniatury w pionowej kolumnie OBOK głównego zdjęcia (row-reverse = kolumna po lewej). */
.single-product .woocommerce-product-gallery{display:flex;flex-direction:row-reverse;gap:12px;align-items:flex-start;max-width:100%;overflow:hidden}
.single-product .woocommerce-product-gallery__wrapper{flex:1 1 auto;min-width:0;width:auto}
.woocommerce-product-gallery--columns-4 .flex-control-thumbs{
  flex:0 0 84px;display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;
  max-height:70vh;overflow-y:auto;
}
.woocommerce-product-gallery--columns-4 .flex-control-thumbs li{width:84px!important;margin:0;list-style:none}
.woocommerce-product-gallery--columns-4 .flex-control-thumbs img{opacity:.55;transition:opacity .15s ease}
.woocommerce-product-gallery--columns-4 .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery--columns-4 .flex-control-thumbs img:hover{opacity:1}
.woocommerce-product-gallery__trigger{top:12px;right:12px;z-index:4}
.woocommerce span.onsale{
  position:absolute;top:0;left:0;margin:0;padding:6px 12px;min-height:0;min-width:0;line-height:1.3;
  background:var(--so-pink);color:#fff;border-radius:0;
  font-family:var(--so-font-display);font-size:12px;font-weight:700;letter-spacing:.04em;z-index:5;
}

.single-product div.product{position:relative}
.so-badge--pdp{position:absolute;top:0;z-index:6;left:96px} /* 84 px kolumny miniatur + 12 px odstępu */
.so-pdp-sku{font-size:12.5px;color:var(--so-grey-400);margin:0 0 10px}
.so-pdp-sku strong{color:var(--so-ink);font-weight:600}
.single-product .so-brand-lg{
  display:block;font-family:var(--so-font-display);font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;color:var(--so-grey-400);margin-bottom:6px;
}
.single-product .product_title{
  font-family:var(--so-font);font-size:clamp(19px,2vw,25px);font-weight:400;
  line-height:1.35;margin:0 0 12px;letter-spacing:0;
}
.so-price--single{margin:4px 0 18px}
.so-price--single .so-price__now{font-size:32px}
.so-price--single .so-price__reg{font-size:12.5px;margin-top:6px}
.so-price--single .so-price__low{font-size:11.5px;margin-top:3px}
.single-product form.cart{margin:20px 0;position:relative}
.single-product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.single-product .quantity{flex:0 0 auto;margin:0}
.single-product .quantity input.qty{
  width:74px;height:54px;border:1px solid var(--so-line);border-radius:0;text-align:center;
  font-family:var(--so-font-display);font-size:15px;font-weight:600;
}
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product button.single_add_to_cart_button{
  height:54px;flex:1 1 240px;width:auto;max-width:420px;margin:0;
  font-size:14px;letter-spacing:.12em;background:var(--so-black);
}
.woocommerce div.product .single_add_to_cart_button:hover{background:var(--so-red)}
.single-product table.variations{margin:0 0 14px;border:0}
.single-product table.variations th.label{display:none}
.single-product table.variations tr,.single-product table.variations td{display:block;width:100%;padding:0}
.single-product .reset_variations{display:inline-block;margin-top:6px;font-size:12px;color:var(--so-grey-400)}

/* Rozmiary jako kafelki */
.so-size-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px}
.so-size-label{font-family:var(--so-font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.so-unit-toggle{display:inline-flex;border:1px solid var(--so-line);padding:2px}
.so-unit-toggle button{border:0;background:transparent;font-size:11.5px;font-weight:600;color:var(--so-grey-400);padding:5px 11px;cursor:pointer}
.so-unit-toggle button.is-active{background:var(--so-ink);color:#fff}
.so-hidden-select{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.so-swatches{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.so-swatch{
  min-width:52px;height:44px;padding:0 12px;border:1px solid var(--so-line);background:#fff;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-family:var(--so-font-display);font-size:13px;font-weight:600;color:var(--so-ink);
}
.so-swatch:hover{border-color:var(--so-ink)}
.so-swatch.is-active{border-color:var(--so-ink);background:var(--so-ink);color:#fff}
.so-swatch.is-low>span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--so-red);display:inline-block;margin-left:6px}
.so-swatch.is-out{color:var(--so-grey-300);border-style:dashed;cursor:not-allowed;background:var(--so-bg-soft)}
.so-swatch.is-out>span{text-decoration:line-through}

.so-sizetable-link{
  display:inline-flex;align-items:center;gap:7px;margin:2px 0 14px;
  font-size:12.5px;font-weight:600;color:var(--so-ink);border-bottom:1px solid var(--so-ink);padding-bottom:2px;
}
.so-sizetable-link svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6}
.so-sizetable-link:hover{color:var(--so-red);border-color:var(--so-red)}
.so-sizetable-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center}
.so-sizetable-modal[hidden]{display:none}
.so-sizetable-modal__bg{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.so-sizetable-modal__panel{
  position:relative;background:#fff;max-width:760px;width:92%;max-height:86vh;overflow:auto;padding:30px;
}
.so-sizetable-modal__close{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;background:transparent;font-size:26px;cursor:pointer;line-height:1}
.so-sizetable-modal__title{text-transform:uppercase;letter-spacing:.07em;font-size:16px;margin-bottom:14px}
.so-sizetable-modal__note{font-size:12px;color:var(--so-grey-300);margin:14px 0 0}
.so-sizetable__wrap{overflow-x:auto}
.so-sizetable__wrap table{width:100%;border-collapse:collapse;font-size:13px}
.so-sizetable__wrap th,.so-sizetable__wrap td{border:1px solid var(--so-line);padding:8px 10px;text-align:center}
.so-sizetable__wrap th{background:var(--so-bg-soft);font-weight:700}

.so-pdp-usp{display:flex;flex-direction:column;gap:9px;margin-top:20px;padding-top:20px;border-top:1px solid var(--so-line)}
.so-pdp-usp div{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--so-grey-600)}
.so-pdp-usp svg{width:19px;height:19px;stroke:var(--so-red);fill:none;stroke-width:1.5;flex:0 0 auto}
.so-pdp-desc{margin-top:44px;padding-top:30px;border-top:1px solid var(--so-line);font-size:14px;color:var(--so-grey-600);line-height:1.8;max-width:900px}
.so-composition{margin-top:14px;font-size:13px;color:var(--so-grey-400)}
.so-composition__label{font-weight:700;color:var(--so-ink)}

/* Polecane / powiązane — pozioma karuzela */
.related.products,.up-sells.products{margin-top:52px;padding-top:34px;border-top:1px solid var(--so-line)}
.related.products>h2,.up-sells.products>h2{
  font-size:20px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:20px;
}
/* Bez scroll-snap i bez scroll-behavior:smooth — oba blokują programowe przewijanie
   strzałkami karuzeli (mandatory snap cofa scroll do zera, a smooth zamraża się tam,
   gdzie animacje są wstrzymane). Przewijanie robi JS przez scrollLeft. */
.related.products ul.products,.up-sells.products ul.products{
  display:flex;gap:18px;overflow-x:auto;padding-bottom:10px;
}
.related.products ul.products li.product,.up-sells.products ul.products li.product{
  flex:0 0 clamp(180px,20vw,230px);
}
.related.products ul.products::-webkit-scrollbar,.up-sells.products ul.products::-webkit-scrollbar{height:5px}
/* Strzałki karuzeli (dokłada je assets/main.js) — nad krawędziami przewijanej listy. */
.so-carousel{position:relative}
.so-carousel-arrow{
  position:absolute;top:calc(50% + 22px);transform:translateY(-50%);z-index:4;
  width:42px;height:42px;padding:0;border:1px solid var(--so-line);background:#fff;color:var(--so-ink);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.so-carousel-arrow svg{width:20px;height:20px}
.so-carousel-arrow:hover{background:var(--so-ink);color:#fff;border-color:var(--so-ink)}
.so-carousel-prev{left:-10px}
.so-carousel-prev svg{transform:rotate(180deg)}
.so-carousel-next{right:-10px}
@media(max-width:760px){.so-carousel-arrow{display:none}}
.related.products ul.products::-webkit-scrollbar-thumb,.up-sells.products ul.products::-webkit-scrollbar-thumb{background:var(--so-line)}

/* ==========================================================================
   10. Koszyk / kasa / konto / strony
   ========================================================================== */
.so-page{padding:30px 0 50px}
.so-page__title{text-transform:uppercase;letter-spacing:.05em;margin-bottom:18px}
.so-page__content{font-size:14px;line-height:1.8;color:var(--so-grey-600)}
.so-page__content h2,.so-page__content h3{color:var(--so-ink)}
.so-page--wc{padding-top:24px}
.woocommerce table.shop_table{border:1px solid var(--so-line);border-radius:0}
.woocommerce table.shop_table th{font-family:var(--so-font-display);text-transform:uppercase;letter-spacing:.06em;font-size:12px}
.woocommerce-cart table.cart img{width:78px}
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--so-black);border-radius:0}
.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--so-red)}
.woocommerce .cart-collaterals .cart_totals>h2,.woocommerce-checkout h3,.woocommerce-billing-fields h3{
  font-size:16px;text-transform:uppercase;letter-spacing:.06em;
}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  border:1px solid var(--so-line)!important;border-radius:0!important;min-height:44px;padding:10px 12px;font-family:var(--so-font)
}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--so-red);border-radius:0}
.woocommerce-message::before,.woocommerce-info::before{color:var(--so-red)}

/* Wysuwany koszyk */
.so-cart-drawer{position:fixed;inset:0;z-index:250;overflow:hidden;visibility:hidden;opacity:0;transition:opacity .2s ease}
.so-cart-drawer.is-open{visibility:visible;opacity:1}
.so-cart-drawer__bg{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.so-cart-drawer__panel{
  position:absolute;top:0;right:0;bottom:0;width:min(400px,92%);background:#fff;
  transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;
}
.so-cart-drawer.is-open .so-cart-drawer__panel{transform:translateX(0)}
.so-cart-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--so-line)}
.so-cart-drawer__title{font-family:var(--so-font-display);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:14px}
.so-cart-drawer__close{border:0;background:transparent;font-size:26px;cursor:pointer;line-height:1}
.so-cart-drawer__body{padding:16px 20px;overflow-y:auto;flex:1}
.so-cart-drawer .woocommerce-mini-cart__buttons a{width:100%;margin-bottom:8px}

/* ==========================================================================
   11. Stopka
   ========================================================================== */
.so-footer{background:#fff;border-top:1px solid var(--so-line);margin-top:60px;padding:0}
.so-footer__usp{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:28px 0;border-bottom:1px solid var(--so-line);
}
.so-footer__usp-item{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--so-grey-600);line-height:1.35}
.so-footer__usp-item strong{color:var(--so-ink);font-weight:700}
.so-footer__usp-item svg{width:25px;height:25px;stroke:var(--so-red);fill:none;stroke-width:1.4;flex:0 0 auto}

.so-footer__grid{display:grid;grid-template-columns:repeat(4,1fr) 1.2fr;gap:30px;padding:40px 0}
.so-footer h4{
  font-family:var(--so-font-display);font-size:13px;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;margin-bottom:16px;color:var(--so-ink);
}
.so-footer ul{list-style:none;margin:0;padding:0}
.so-footer li{margin-bottom:9px}
.so-footer a{font-size:13px;color:var(--so-grey-400)}
.so-footer a:hover{color:var(--so-red)}

.so-footer__brand .so-logo{margin-bottom:16px}
.so-footer__brand p{font-size:13px;color:var(--so-grey-400);max-width:280px}
.so-social{display:flex;gap:10px;margin:16px 0 18px}
.so-social a{
  width:38px;height:38px;border:1px solid var(--so-line);display:flex;align-items:center;justify-content:center;color:var(--so-ink);
}
.so-social a:hover{background:var(--so-red);border-color:var(--so-red);color:#fff}
.so-social svg{width:18px;height:18px}

/* Kolumna „infolinia" */
.so-footer__hotline{border-left:1px solid var(--so-line);padding-left:30px}
.so-hotline__num{
  display:flex;align-items:center;gap:10px;font-family:var(--so-font-display);
  font-size:23px;font-weight:700;color:var(--so-ink);margin-bottom:8px;
}
.so-hotline__num svg{width:22px;height:22px;stroke:var(--so-red);fill:none;stroke-width:1.6;flex:0 0 auto}
.so-hotline__hours{font-size:12.5px;color:var(--so-grey-400);margin-bottom:14px;line-height:1.6}
.so-hotline__mail{font-size:13.5px;font-weight:600;color:var(--so-ink);border-bottom:1px solid var(--so-ink);padding-bottom:2px}
.so-hotline__mail:hover{color:var(--so-red);border-color:var(--so-red)}

.so-footer__bottom{
  border-top:1px solid var(--so-line);padding:18px 0;display:flex;justify-content:space-between;
  align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--so-grey-300);
}
.so-footer__legal{display:flex;flex-wrap:wrap;gap:6px 18px}
.so-footer__legal a{font-size:12px;color:var(--so-grey-400)}
.so-footer__credit a{color:var(--so-grey-400)}
.so-footer__credit a:hover{color:var(--so-red)}
.so-pay{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.so-pay span{
  height:26px;padding:0 10px;border:1px solid var(--so-line);display:inline-flex;align-items:center;
  font-family:var(--so-font-display);font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--so-grey-400);
}

/* ==========================================================================
   12. Blog — lista, kafelki, pojedynczy wpis
   ========================================================================== */
.so-blog{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.so-blog article{margin:0!important}
.so-blog h2{font-size:18px;line-height:1.35}

.so-postgrid{display:grid;gap:34px 24px}
.so-postgrid--3{grid-template-columns:repeat(3,1fr)}
.so-postgrid--4{grid-template-columns:repeat(4,1fr)}

.so-postcard{margin:0}
.so-postcard__media{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--so-bg-soft)}
.so-postcard__media img,.so-postcard__media .so-ph{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.so-postcard:hover .so-postcard__media img{transform:scale(1.04)}
.so-postcard__body{padding:14px 2px 0}
.so-postcard__date{
  font-family:var(--so-font-display);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.09em;color:var(--so-grey-300);margin-bottom:7px;
}
.so-postcard__title{font-family:var(--so-font-display);font-size:16px;font-weight:600;line-height:1.3;margin:0 0 8px}
.so-postcard__title a:hover{color:var(--so-red)}
.so-postcard__excerpt{font-size:13px;color:var(--so-grey-400);line-height:1.6;margin:0 0 10px}
.so-postcard__more{
  font-family:var(--so-font-display);font-size:11.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;border-bottom:1px solid var(--so-ink);padding-bottom:2px;
}
.so-postcard__more:hover{color:var(--so-red);border-color:var(--so-red)}

/* Pojedynczy wpis */
.so-article{max-width:840px;margin:0 auto}
.so-article__head{margin-bottom:22px}
.so-article__title{font-size:clamp(26px,3.2vw,40px);line-height:1.2;margin:6px 0 0}
.so-article__media{margin:0 0 28px}
.so-article__media img{width:100%;height:auto}
.so-article__body{font-size:15px;line-height:1.85;color:var(--so-grey-600)}
.so-article__body h2,.so-article__body h3{color:var(--so-ink);margin:32px 0 12px}
.so-article__body h2{font-size:22px}
.so-article__body h3{font-size:18px}
.so-article__body img{margin:22px 0}
.so-article__body a{color:var(--so-red);text-decoration:underline;text-underline-offset:2px}
.so-article__body ul,.so-article__body ol{padding-left:22px;margin-bottom:18px}
.so-article__body li{margin-bottom:7px}
.so-article__body blockquote{
  border-left:3px solid var(--so-red);margin:24px 0;padding:4px 0 4px 20px;color:var(--so-ink);font-size:16px;
}

/* ==========================================================================
   13. Mobile drawer + burger
   ========================================================================== */
.so-burger{display:none;border:0;background:transparent;padding:0;cursor:pointer}
.so-burger svg{width:26px;height:26px;stroke:var(--so-ink);fill:none;stroke-width:1.8}
.so-drawer{position:fixed;inset:0;z-index:250;overflow:hidden;visibility:hidden;opacity:0;transition:opacity .2s ease}
.so-drawer.is-open{visibility:visible;opacity:1}
.so-drawer__bg{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.so-drawer__panel{
  position:absolute;top:0;left:0;bottom:0;width:84%;max-width:340px;background:#fff;
  transform:translateX(-100%);transition:transform .25s ease;padding:22px 20px;overflow-y:auto;
}
.so-drawer.is-open .so-drawer__panel{transform:translateX(0)}
.so-drawer__panel ul{list-style:none;margin:0;padding:0}
.so-drawer__panel>ul>li>a,.so-drawer__panel .so-menu-mobile>li>a{
  display:block;padding:14px 2px;border-bottom:1px solid var(--so-line-soft);
  font-family:var(--so-font-display);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;
}
.so-menu-mobile>li.so-hot>a{color:var(--so-red);font-weight:700}
/* Rozwijane działy — na <details>, bez dodatkowego JS. */
.so-menu-mobile details{border-bottom:1px solid var(--so-line-soft)}
.so-menu-mobile summary{
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;
  padding:14px 2px;font-family:var(--so-font-display);font-size:14px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;color:var(--so-ink);
}
.so-menu-mobile summary::-webkit-details-marker{display:none}
.so-menu-mobile summary::after{
  content:"";width:8px;height:8px;flex:0 0 auto;margin-right:4px;
  border-right:1.5px solid var(--so-grey-400);border-bottom:1.5px solid var(--so-grey-400);
  transform:rotate(45deg);transition:transform .2s ease;
}
.so-menu-mobile details[open]>summary{color:var(--so-red)}
.so-menu-mobile details[open]>summary::after{transform:rotate(-135deg);border-color:var(--so-red)}
.so-menu-mobile details ul{padding:2px 0 12px 12px;border-left:1px solid var(--so-line-soft);margin-left:4px}
.so-menu-mobile details li{margin:0}
.so-menu-mobile details li a{
  display:block;padding:9px 2px;border:0;font-family:var(--so-font);font-size:13.5px;
  font-weight:400;text-transform:none;letter-spacing:0;color:var(--so-grey-600);
}
.so-menu-mobile details li a:hover{color:var(--so-red)}
.so-menu-mobile .so-mmenu-all{font-weight:600;color:var(--so-ink)}
.so-drawer__close{position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;background:var(--so-bg-soft);font-size:22px;cursor:pointer}

/* ==========================================================================
   14. Strona /marki/ — same logotypy (klasy ns-* zostawione dla starej treści)
   ========================================================================== */
.so-brands,.ns-brands{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:26px 0 10px;
}
.so-brand-card,.ns-brand-card{
  display:flex;align-items:center;justify-content:center;
  height:110px;padding:16px;border:1px solid var(--so-line);background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.so-brand-card:hover,.ns-brand-card:hover{border-color:var(--so-ink);box-shadow:var(--so-shadow-sm)}
.so-brand-card img,.ns-brand-card img{
  /* Stała wysokość zamiast auto — logotypy mają różne proporcje, a przy width/height:auto
     obrazek z lazy-loadingiem ma zerowy box i przeglądarka nie zaczyna go pobierać. */
  width:100%;height:78px;max-width:100%;object-fit:contain;
}
/* Fallback, gdy marka nie ma pliku z logotypem */
.so-brand-card__name,.ns-brand-card__name{
  margin:0;font-family:var(--so-font-display);font-size:14px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;text-align:center;color:var(--so-ink);
}
/* Stara treść strony miała jeszcze opisy — gdyby gdzieś zostały, nie pokazujemy ich */
.ns-brand-card__desc,.so-brand-card__desc{display:none}
.ns-brand-card__logo,.so-brand-card__logo{display:contents}

/* Lista marek jako linki tekstowe — maks. 5 kolumn */
.so-brandlist{display:grid;grid-template-columns:repeat(5,1fr);gap:0 28px;margin:24px 0 8px}
.so-brandlist__item{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:10px 2px;border-bottom:1px solid var(--so-line-soft);
}
.so-brandlist__name{
  font-family:var(--so-font-display);font-size:13.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;color:var(--so-ink);
}
.so-brandlist__item:hover .so-brandlist__name{color:var(--so-red)}
.so-brandlist__n{font-size:11.5px;color:var(--so-grey-300);flex:0 0 auto}

/* ==========================================================================
   15. Responsywność
   ========================================================================== */
@media(max-width:1200px){
  .so-postgrid--4{grid-template-columns:repeat(3,1fr)}
  .so-brandlist{grid-template-columns:repeat(4,1fr)}
  ul.products,.so-products{grid-template-columns:repeat(3,1fr)}
  .so-cats{grid-template-columns:repeat(4,1fr)}
  .so-footer__grid{grid-template-columns:repeat(3,1fr);gap:26px}
  .so-footer__hotline{border-left:0;padding-left:0}
}
@media(max-width:980px){
  .so-header__main{gap:14px;padding:14px var(--so-gut);flex-wrap:wrap}
  .so-burger{display:inline-flex}
  .so-search{order:3;flex:1 0 100%;max-width:none}
  .so-nav{display:none}
  .single-product div.product{grid-template-columns:minmax(0,1fr);gap:26px}
  /* W kolumnie z align-items:flex-start dziecko bierze szerokość max-content,
     a flexslider rozciąga listę zdjęć na kilka tysięcy px — stąd zdjęcie wychodziło poza ekran. */
  .single-product .woocommerce-product-gallery{flex-direction:column;align-items:stretch}
  .single-product .woocommerce-product-gallery .flex-viewport{width:100%;max-width:100%}
  .so-badge--pdp{left:0}
  .woocommerce-product-gallery--columns-4 .flex-control-thumbs{flex-direction:row;flex-wrap:wrap;max-height:none;flex-basis:auto}
  .single-product div.product>.summary{grid-column:1;grid-row:2}
  .so-blog{grid-template-columns:repeat(2,1fr)}
  .so-hero__grid{grid-template-columns:1fr}
  .so-hero__cell--main{grid-row:auto;min-height:340px}
}
@media(max-width:760px){
  .so-postgrid--3,.so-postgrid--4{grid-template-columns:repeat(2,1fr);gap:26px 16px}
  .so-brandlist{grid-template-columns:repeat(2,1fr);gap:0 18px}
  .so-usp,.so-footer__usp{grid-template-columns:repeat(2,1fr);gap:14px}
  .so-footer__grid{grid-template-columns:repeat(2,1fr)}
  .so-cats{grid-template-columns:repeat(3,1fr)}
  .so-strip{padding:26px 20px}
  .so-section{padding:34px 0}
  .so-logo__lockup{font-size:21px;letter-spacing:.08em}
  .so-logo img{max-height:34px}
  .so-act span{display:none}
  .so-actions{gap:18px}
}
@media(max-width:520px){
  .so-postgrid--3,.so-postgrid--4{grid-template-columns:1fr}
  .so-brandlist{grid-template-columns:1fr}
  ul.products,.so-products{grid-template-columns:repeat(2,1fr);gap:22px 12px}
  .so-blog{grid-template-columns:1fr}
  .so-cats{grid-template-columns:repeat(2,1fr)}
  .so-footer__grid{grid-template-columns:1fr}
  .so-card__title{font-size:12.5px;min-height:2.8em}
  .so-price__now{font-size:16px}
  .so-sec-head h2{font-size:17px}
}

/* ==========================================================================
   16. Banery wideo (moduł „Banery wideo" w wp-admin)
   ========================================================================== */
.so-vbslider{position:relative;overflow:hidden}
.so-vbslider__track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);will-change:transform}
.so-vbslide{flex:0 0 100%;min-width:100%}
.so-vbslider__dots{position:absolute;left:0;right:0;bottom:18px;z-index:6;display:flex;gap:8px;justify-content:center}
.so-vbdot{width:10px;height:10px;padding:0;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:transparent;cursor:pointer;transition:all .25s ease;opacity:.85}
.so-vbdot:hover{opacity:1}
.so-vbdot.is-active{background:var(--so-red);border-color:#fff;opacity:1;width:26px;border-radius:5px}

.so-vbanner{position:relative;overflow:hidden;display:flex;align-items:center;background:var(--so-ink)}
.so-vbanner--strip{min-height:150px;height:150px}
.so-vbanner--strip .so-vbanner__content{max-width:none;padding:0;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
.so-vbanner--strip.is-center .so-vbanner__content{justify-content:center;text-align:center}
.so-vbanner--strip .so-vbanner__title{font-size:clamp(17px,2.1vw,25px);margin:0;line-height:1.15}
.so-vbanner--strip .so-vbanner__sub{display:none}
.so-vbanner--small{min-height:320px}
.so-vbanner--medium{min-height:460px}
.so-vbanner--large{min-height:580px}
.so-vbanner--full{min-height:86vh}
.so-vbanner__media{position:absolute;inset:0;z-index:1}
.so-vbanner__media video,.so-vbanner__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.so-vbanner__media iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%);border:0;pointer-events:none}
.so-vbanner__overlay{position:absolute;inset:0;z-index:2}
.so-vbanner__inner{position:relative;z-index:3;width:100%}
.so-vbanner__content{max-width:620px;color:#fff;padding:48px 0}
.so-vbanner.is-center .so-vbanner__content{margin:0 auto;text-align:center}
.so-vbanner.is-right .so-vbanner__content{margin-left:auto;text-align:right}
.so-vbanner__title{
  font-family:var(--so-font-display);color:#fff;font-size:clamp(28px,4vw,52px);font-weight:700;
  line-height:1.08;margin:0 0 14px;text-transform:uppercase;letter-spacing:.03em;text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.so-vbanner__sub{color:rgba(255,255,255,.94);font-size:16px;margin:0 0 24px;max-width:52ch;line-height:1.55;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.so-vbanner.is-center .so-vbanner__sub{margin-left:auto;margin-right:auto}

.so-vbtn{
  display:inline-flex;align-items:center;height:50px;padding:0 32px;border:1px solid transparent;
  font-family:var(--so-font-display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.11em;
  transition:all .18s ease;
}
.so-vbtn--dark{background:var(--so-black);color:#fff;border-color:var(--so-black)}
.so-vbtn--dark:hover{background:var(--so-red);color:#fff;border-color:var(--so-red)}
.so-vbtn--gold{background:var(--so-red);color:#fff;border-color:var(--so-red)}
.so-vbtn--gold:hover{background:#fff;color:var(--so-ink);border-color:#fff}
.so-vbtn--ghost{background:transparent;color:#fff;border-color:#fff}
.so-vbtn--ghost:hover{background:#fff;color:var(--so-ink)}

@media(max-width:760px){
  .so-vbanner--large,.so-vbanner--full{min-height:420px}
  .so-vbanner--medium{min-height:340px}
  .so-vbanner__content{padding:32px 0}
  .so-vbanner__title{font-size:clamp(24px,7vw,34px)}
  .so-vbanner__sub{font-size:14px}
}
