/*
Theme Name: Pędzlem Malowane
Theme URI: https://pedzlem-malowane.pl
Author: Manufaktura Pędzlem Malowane
Author URI: https://pedzlem-malowane.pl
Description: Autorski motyw WooCommerce dla rodzinnej manufaktury zestawów do malowania figurek gipsowych dla dzieci. Ostre, geometryczne krawędzie (zero zaokrągleń), płaskie 2D przyciski, w ciepłej różowo-fioletowej palecie marki, w edytorialnym, zdjęciowym układzie (pełnoekranowe hero, kafelki kategorii, pasek opinii).
Version: 4.5.1
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pedzlem-malowane
Tags: e-commerce, custom-colors, custom-menu, custom-logo, one-column, right-sidebar, translation-ready
*/

/* =========================================================================
   DESIGN TOKENS — "glass & squircle", inspirowane językiem iOS
   ========================================================================= */
:root{
  /* kolory marki */
  --pm-pink:        #E4ABB5;
  --pm-pink-deep:    #DC99A7;
  --pm-pink-light:   #F8D8DC;
  --pm-purple:       #9791B3;
  --pm-purple-mid:   #A09BBA;
  --pm-purple-light: #CDC7DE;

  --pm-plaster:      #FDFCFB;
  --pm-plaster-alt:  #F7F3F1;
  --pm-ink:          #3C3237;
  --pm-ink-soft:     #7C6C71;
  --pm-white:        #FFFFFF;

  /* powierzchnie szklane */
  --pm-glass:        rgba(255,255,255,.58);
  --pm-glass-strong: rgba(255,255,255,.78);
  --pm-glass-border: rgba(255,255,255,.65);
  --pm-glass-blur:   22px;

  /* typografia */
  --pm-font-display: "Belleza", "Iowan Old Style", Georgia, serif;
  --pm-font-body:    "Nunito", "Segoe UI", sans-serif;

  /* promienie — ostre krawędzie, zero zaokrągleń */
  --r-xl: 0px;
  --r-lg: 0px;
  --r-md: 0px;
  --r-sm: 0px;
  --pm-radius: 0px;

  /* cienie ambientowe barwione kolorem marki, zamiast szarych */
  --sh-sm: 0 8px 22px -12px rgba(60,50,55,.22);
  --sh-md: 0 18px 44px -16px rgba(220,153,167,.38), 0 6px 18px -10px rgba(151,145,179,.28);
  --sh-lg: 0 30px 70px -20px rgba(220,153,167,.42), 0 10px 30px -12px rgba(151,145,179,.32);
  --sh-glow-pink: 0 0 0 1px rgba(255,255,255,.5) inset, 0 12px 30px -10px rgba(228,171,181,.55);
}

/* =========================================================================
   RESET / BASE
   ========================================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  color: var(--pm-ink);
  font-family: var(--pm-font-body);
  font-size: 14.5px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  background: var(--pm-plaster);
  position: relative;
  overflow-x: hidden;
}
/* "tapeta" — bardzo subtelne, rozmyte plamy koloru na niemal białym tle */
body::before{
  content:"";
  position: fixed; inset: 0; z-index:-2;
  background:
    radial-gradient(560px 480px at 88% -6%, rgba(248,216,220,.5), transparent 60%),
    radial-gradient(520px 460px at -8% 18%, rgba(205,199,222,.4), transparent 60%),
    radial-gradient(640px 560px at 90% 70%, rgba(228,171,181,.14), transparent 60%),
    radial-gradient(520px 460px at 5% 96%, rgba(160,155,186,.14), transparent 60%),
    var(--pm-plaster);
  filter: blur(2px);
}
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--pm-pink-deep); text-decoration: none; transition: color .2s ease; }
a:hover{ color: var(--pm-purple); }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
  font-family: var(--pm-font-display);
  font-weight: 400;
  line-height: 1.25;
  color: var(--pm-ink);
  margin: 0 0 .5em;
  letter-spacing: .01em;
}
h1{ font-size: clamp(1.6rem, 3vw, 2.4rem); }
h2{ font-size: clamp(1.2rem, 1.9vw, 1.55rem); }
h3{ font-size: 1rem; }
h4{ font-size: .92rem; }
p{ margin:0 0 1em; }
.pm-container{ max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.pm-eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family: var(--pm-font-body);
  font-weight: 800;
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pm-pink-deep);
  margin-bottom: 1rem;
  padding: .35em 1em;
  background: var(--pm-glass);
  border: 1px solid var(--pm-glass-border);
  border-radius: 0;
  backdrop-filter: blur(10px);
  box-shadow: var(--sh-sm);
}
:focus-visible{ outline: 3px solid var(--pm-purple); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* helper: gradientowy tekst do najważniejszych nagłówków */
.pm-gradient-text{
  background: linear-gradient(120deg, var(--pm-pink-deep) 0%, var(--pm-purple) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* =========================================================================
   BRUSH-STROKE SIGNATURE DIVIDER
   ========================================================================= */
.pm-brushstroke{ width: 100%; height: 46px; margin: 0; display:block; }
.pm-brushstroke svg{ width:100%; height:100%; display:block; }

/* =========================================================================
   BUTTONS — płaskie, 2D, w kolorystyce marki
   ========================================================================= */
.pm-btn, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page a.button{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family: var(--pm-font-body);
  font-weight: 800;
  font-size: .82rem;
  color: var(--pm-white) !important;
  background: var(--pm-pink-deep) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: .9em 1.8em !important;
  cursor:pointer;
  box-shadow: none !important;
  transition: background-color .18s ease;
}
.pm-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover{
  background: var(--pm-purple) !important;
}
.pm-btn:active, .woocommerce a.button:active, .woocommerce button.button:active{
  background: var(--pm-ink) !important;
}
.pm-btn.pm-btn-outline{
  background: transparent !important;
  color: var(--pm-pink-deep) !important;
  border: 2px solid var(--pm-pink-deep) !important;
}
.pm-btn.pm-btn-outline:hover{ color: var(--pm-white) !important; background: var(--pm-pink-deep) !important; }

/* =========================================================================
   HEADER — pływająca szklana "wyspa" (nawiązanie do iOS Dynamic Island)
   HEADER — pełna szerokość ekranu, statyczny (bez animacji przy scrollu)
   ========================================================================= */
.pm-header{
  position: sticky; top: 0; z-index: 100;
  width: 100%;
}
.pm-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap: 20px;
  width: 100%;
  padding: 16px 32px;
  background: var(--pm-glass-strong);
  border-bottom: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur)) saturate(1.5);
  -webkit-backdrop-filter: blur(var(--pm-glass-blur)) saturate(1.5);
}
.pm-logo{ display:flex; align-items:center; gap:.6rem; }
.pm-logo img{ height: 46px; width:auto; }
.pm-logo__text{ font-family: var(--pm-font-display); font-size: 1.1rem; color: var(--pm-ink); }

.pm-nav{ display:flex; }
.pm-nav ul{ display:flex; gap: 1.7rem; align-items:center; }
.pm-nav a{
  color: var(--pm-ink); font-weight: 800; font-size: .82rem; position:relative;
  text-transform: uppercase; letter-spacing: .07em;
}
.pm-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background: linear-gradient(90deg, var(--pm-pink-deep), var(--pm-purple));
  border-radius: 0;
  transform: scaleX(0); transform-origin:left;
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
}
.pm-nav a:hover::after{ transform: scaleX(1); }

.pm-header__actions{ display:flex; align-items:center; gap: 10px; }
.pm-icon-link{
  display:flex; align-items:center; justify-content:center;
  width: 38px; height: 38px; border-radius: 0;
  background: var(--pm-glass); border: 1px solid var(--pm-glass-border);
  font-size: 1rem;
}
.pm-cart-link{
  position:relative; display:flex; align-items:center; gap:.4em;
  font-weight:800; color: var(--pm-ink);
  background: var(--pm-glass); border: 1px solid var(--pm-glass-border);
  padding: .5em .9em; border-radius: 0;
}
.pm-cart-count{
  background: linear-gradient(135deg, var(--pm-pink-deep), var(--pm-purple));
  color:#fff; font-size:.72rem; font-weight:800;
  border-radius:0; min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 5px;
}
.pm-menu-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.pm-menu-toggle span{ display:block; width:24px; height:2.5px; margin:5px 0; background: var(--pm-ink); border-radius:0; }

@media (max-width: 860px){
  .pm-header__inner{ padding: 14px 20px; }
  .pm-nav{
    position:absolute; top: 100%; left:0; right:0;
    background: var(--pm-glass-strong);
    border-bottom: 1px solid var(--pm-glass-border);
    backdrop-filter: blur(var(--pm-glass-blur));
    display:none;
    padding: 18px 22px;
  }
  .pm-nav.is-open{ display:block; }
  .pm-nav ul{ flex-direction:column; align-items:flex-start; gap: .9rem; }
  .pm-menu-toggle{ display:block; }
}

/* =========================================================================
   ANNOUNCEMENT BAR — wąski pasek zaufania nad hero, jak w butikowych sklepach
   ========================================================================= */
.pm-announce{
  background: linear-gradient(90deg, var(--pm-pink-deep), var(--pm-purple));
  color:#fff;
}
.pm-announce .pm-container{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap: 8px 24px;
  padding: 9px 24px;
  font-size: .8rem; font-weight: 700; letter-spacing:.02em;
}
@media (max-width: 780px){
  .pm-announce .pm-container{ justify-content:center; text-align:center; }
  .pm-announce span:nth-child(2){ display:none; }
}

/* =========================================================================
   HERO PEŁNOEKRANOWE — duże zdjęcie w tle + edytorialny nagłówek na overlay
   (wzorzec z eleganckich sklepów wnętrzarskich/meblowych)
   ========================================================================= */
.pm-hero-full{
  position: relative;
  min-height: 78vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  border-radius: 0 0 var(--r-xl) var(--r-xl);
  margin-top: -1px;
}
.pm-hero-full__media, .pm-hero-full__placeholder{ position:absolute; inset:0; }
.pm-hero-full__media img{ width:100%; height:100%; object-fit:cover; }
.pm-hero-full__placeholder{
  background:
    radial-gradient(700px 500px at 20% 20%, rgba(255,255,255,.5), transparent 60%),
    linear-gradient(135deg, var(--pm-pink) 0%, var(--pm-purple-mid) 55%, var(--pm-purple) 100%);
}
.pm-hero-full__overlay{
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(60,50,55,.5) 0%, rgba(60,50,55,.3) 50%, rgba(60,50,55,.3) 100%);
}
.pm-hero-full__content{
  position:relative; z-index:1;
  padding: 64px 24px;
  max-width: 720px;
  text-align: center;
  margin: 0 auto;
}
.pm-hero-full__content h1{ color:#fff; }
.pm-hero-full__content h1 .pm-hero-highlight{
  color: var(--pm-pink-light);
  text-shadow: 0 2px 18px rgba(0,0,0,.35);
}
.pm-hero-full__content .pm-eyebrow{
  background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.4); color:#fff;
  backdrop-filter: blur(8px);
}
.pm-hero-full__content .pm-lede{ color: rgba(255,255,255,.92); font-size: .92rem; max-width: 48ch; margin-left:auto; margin-right:auto; }
.pm-hero-full__content .pm-hero__actions{ justify-content: center; }
@media (max-width: 700px){ .pm-hero-full{ min-height: 68vh; } .pm-hero-full__content{ padding: 44px 20px; } }

/* =========================================================================
   KAFELKI KATEGORII — duże, zdjęciowe karty "shop by type"
   ========================================================================= */
.pm-tiles{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pm-tile{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  aspect-ratio: 3/4;
  border-radius: var(--r-lg);
  padding: 1.6rem;
  overflow:hidden;
  color:#fff;
  box-shadow: var(--sh-md);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.pm-tile:hover{ transform: translateY(-6px) scale(1.01); box-shadow: var(--sh-lg); }
.pm-tile::before{
  content:""; position:absolute; inset:0;
  background: linear-gradient(200deg, rgba(255,255,255,.22), transparent 55%), linear-gradient(0deg, rgba(0,0,0,.42), rgba(0,0,0,.05) 55%);
}
.pm-tile--pink{ background: linear-gradient(150deg, var(--pm-pink) 0%, var(--pm-pink-deep) 100%); }
.pm-tile--purple{ background: linear-gradient(150deg, var(--pm-purple-mid) 0%, var(--pm-purple) 100%); }
.pm-tile--mix{ background: linear-gradient(150deg, var(--pm-pink-deep) 0%, var(--pm-purple) 100%); }
.pm-tile__price{
  position:relative; align-self:flex-end;
  font-weight:800; font-size:.85rem;
  background: rgba(255,255,255,.25); backdrop-filter: blur(8px);
  padding: .35em .9em; border-radius: 0;
}
.pm-tile__body{ position:relative; display:flex; flex-direction:column; gap:.3rem; }
.pm-tile__eyebrow{ font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.85; }
.pm-tile__title{ font-family: var(--pm-font-display); font-size: 1.1rem; }
.pm-tile__cta{ font-weight:800; font-size:.9rem; margin-top:.3rem; }
@media (max-width: 900px){ .pm-tiles{ grid-template-columns: 1fr; } .pm-tile{ aspect-ratio: 16/10; } }

/* =========================================================================
   OPINIE — pasek zaufania
   ========================================================================= */
.pm-testimonials{ display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.pm-testimonial{
  margin:0;
  background: var(--pm-glass-strong);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-lg);
  padding: 1.8rem;
  box-shadow: var(--sh-sm);
}
.pm-testimonial__stars{ color: var(--pm-pink-deep); letter-spacing:.15em; margin-bottom:.6rem; font-size:.9rem; }
.pm-testimonial blockquote{ margin:0 0 1rem; font-style:italic; color: var(--pm-ink); }
.pm-testimonial figcaption{ font-weight:800; font-size:.85rem; color: var(--pm-ink-soft); }
@media (max-width: 900px){ .pm-testimonials{ grid-template-columns:1fr; } }

/* =========================================================================
   NEWSLETTER
   ========================================================================= */
.pm-newsletter{
  display:flex; align-items:center; justify-content:space-between; gap: 32px; flex-wrap:wrap;
  background: var(--pm-glass-strong);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-lg);
  padding: 2.2rem 2.4rem;
  box-shadow: var(--sh-md);
}
.pm-newsletter h2{ margin-bottom:.3rem; font-size: 1.15rem; }
.pm-newsletter p{ margin:0; color: var(--pm-ink-soft); }
.pm-newsletter__form{ display:flex; gap: 10px; flex-wrap:wrap; }
.pm-newsletter__form input[type="email"]{
  padding: .85em 1.2em; border-radius: 0;
  border: 1px solid rgba(60,50,55,.15);
  background: #fff; min-width: 220px; font-family: var(--pm-font-body);
}
@media (max-width: 780px){ .pm-newsletter{ flex-direction:column; align-items:flex-start; } .pm-newsletter__form{ width:100%; } .pm-newsletter__form input{ flex:1; } }

/* =========================================================================
   HERO — panel szklany nad rozmytymi plamami koloru
   ========================================================================= */
.pm-hero{ padding: 56px 0 92px; position:relative; overflow:visible; }
.pm-hero__grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items:center;
}
.pm-hero__copy{
  background: var(--pm-glass);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  -webkit-backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-xl);
  padding: 2.6rem 2.4rem;
  box-shadow: var(--sh-lg);
}
.pm-hero__copy h1{ margin-bottom:.4em; }
.pm-hero__copy p.pm-lede{ font-size: .92rem; color: var(--pm-ink-soft); max-width: 46ch; }
.pm-hero__actions{ display:flex; gap: 14px; margin-top: 1.8rem; flex-wrap:wrap; }
.pm-hero__figure{
  position:relative;
  aspect-ratio: 1/1;
  border-radius: var(--r-xl);
  overflow:hidden;
  background: linear-gradient(150deg, var(--pm-pink-light), var(--pm-purple-light));
  box-shadow: var(--sh-lg);
  border: 1px solid rgba(255,255,255,.6);
}
.pm-hero__figure::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(200deg, rgba(255,255,255,.35), transparent 45%);
  pointer-events:none;
}
.pm-hero__figure img{ width:100%; height:100%; object-fit:cover; position:relative; z-index:0; }
@media (max-width: 860px){
  .pm-hero__grid{ grid-template-columns: 1fr; }
  .pm-hero__copy{ padding: 2rem 1.6rem; }
  .pm-hero__figure{ max-width: 380px; margin: 0 auto; }
}

/* =========================================================================
   SECTIONS — generyczne
   ========================================================================= */
.pm-section{ padding: 68px 0; position: relative; }
.pm-section--alt{ position:relative; }
.pm-section--alt::before{
  content:"";
  position:absolute; inset: 0 -6vw;
  background: linear-gradient(180deg, rgba(248,216,220,.32), rgba(205,199,222,.28));
  z-index:-1;
  border-radius: 0;
}
.pm-section__head{ max-width: 640px; margin-bottom: 2.6rem; }
.pm-section__head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* trzy typy zestawów — szklane karty ze "squircle" ikoną */
.pm-sets{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.pm-set-card{
  background: var(--pm-glass-strong);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-lg);
  padding: 2.1rem 1.9rem;
  box-shadow: var(--sh-md);
  position:relative;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.pm-set-card:hover{ transform: translateY(-6px); box-shadow: var(--sh-lg); }
.pm-set-card__blob{
  width: 60px; height: 60px; border-radius: var(--r-sm);
  background: linear-gradient(135deg, var(--pm-pink), var(--pm-pink-deep));
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 1.3rem; font-size: 1.5rem;
  box-shadow: var(--sh-glow-pink);
}
.pm-set-card:nth-child(2) .pm-set-card__blob{ background: linear-gradient(135deg, var(--pm-purple-mid), var(--pm-purple)); box-shadow: 0 0 0 1px rgba(255,255,255,.5) inset, 0 12px 30px -10px rgba(151,145,179,.55); }
.pm-set-card:nth-child(3) .pm-set-card__blob{ background: linear-gradient(135deg, var(--pm-pink-deep), var(--pm-purple)); }
.pm-set-card .pm-price{
  font-weight:800; display:inline-block; margin: .8rem 0 1rem;
  background: linear-gradient(120deg, var(--pm-pink-deep), var(--pm-purple));
  -webkit-background-clip: text; background-clip:text; color:transparent;
  font-size: 1.05rem;
}
@media (max-width: 900px){ .pm-sets{ grid-template-columns: 1fr; } }

/* historia / o nas */
.pm-story{ display:grid; grid-template-columns: .85fr 1.15fr; gap: 52px; align-items:center; }
.pm-story__figure{
  border-radius: var(--r-xl);
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.6);
  aspect-ratio: 4/5;
}
.pm-story__figure img{ width:100%; height:100%; object-fit:contain; }
.pm-story__sig{ font-family: var(--pm-font-display); letter-spacing: .03em; color: var(--pm-ink-soft); margin-top: 1.4rem; }
@media (max-width: 860px){ .pm-story{ grid-template-columns:1fr; } }

/* rozwój dziecka — szklane "widgety" jak ikony iOS */
.pm-values{ display:grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.pm-value{
  text-align:center; padding: 1.8rem 1.1rem;
  background: var(--pm-glass);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
  transition: transform .25s ease, box-shadow .25s ease;
}
.pm-value:hover{ transform: translateY(-4px); box-shadow: var(--sh-md); }
.pm-value__icon{
  width:54px;height:54px;border-radius: var(--r-sm);
  background: linear-gradient(135deg, var(--pm-pink-light), var(--pm-purple-light));
  color: var(--pm-pink-deep);
  display:flex;align-items:center;justify-content:center;
  margin: 0 auto 1rem; font-size:1.1rem; font-weight:800;
  box-shadow: 0 0 0 1px rgba(255,255,255,.6) inset;
}
@media (max-width: 900px){ .pm-values{ grid-template-columns: repeat(2,1fr); } }

/* dla kogo — persony */
.pm-personas{ display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.pm-persona{
  background: var(--pm-glass-strong);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-lg);
  padding: 1.9rem;
  box-shadow: var(--sh-md);
  transition: transform .25s ease, box-shadow .25s ease;
}
.pm-persona:hover{ transform: translateY(-4px); box-shadow: var(--sh-lg); }
.pm-persona__tag{
  display:inline-block; font-size:.74rem; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color: var(--pm-white);
  background: linear-gradient(135deg, var(--pm-purple-mid), var(--pm-purple));
  padding: .35em .9em; border-radius:0; margin-bottom: .9rem;
}
@media (max-width: 900px){ .pm-personas{ grid-template-columns:1fr; } }

/* newsletter / cta pas — gradient "hero" glamour */
.pm-cta-band{
  background: linear-gradient(120deg, var(--pm-pink) 0%, var(--pm-purple) 100%);
  color:#fff; border-radius: var(--r-xl);
  padding: 3.2rem; text-align:center;
  position: relative; overflow:hidden;
  box-shadow: var(--sh-lg);
}
.pm-cta-band::before{
  content:"";
  position:absolute; inset: -40% -10% auto auto;
  width: 320px; height:320px;
  background: rgba(255,255,255,.18);
  border-radius: 0;
  filter: blur(10px);
}
.pm-cta-band h2, .pm-cta-band p{ color:#fff; position:relative; }
.pm-cta-band .pm-btn{ background: rgba(255,255,255,.95) !important; color: var(--pm-purple) !important; position:relative; }
.pm-cta-band .pm-btn:hover{ background: var(--pm-ink) !important; color:#fff !important; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.pm-footer{
  background: linear-gradient(160deg, var(--pm-ink) 0%, #2c2529 100%);
  color: var(--pm-plaster-alt);
  padding: 60px 0 28px; margin-top: 48px;
  border-radius: 0;
}
.pm-footer a{ color: var(--pm-pink-light); }
.pm-footer a:hover{ color:#fff; }
.pm-footer__grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; }
.pm-footer h4{ color:#fff; font-size:1rem; margin-bottom: 1rem; }
.pm-footer__grid li{ margin-bottom:.5rem; }
.pm-footer__logo{ height:38px; margin-bottom:1rem; filter: brightness(0) invert(1); opacity:.92; }
.pm-footer__bottom{
  margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12);
  font-size:.85rem; color: rgba(251,246,242,.6);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
@media (max-width: 780px){ .pm-footer__grid{ grid-template-columns:1fr; } }

/* =========================================================================
   BLOG / PAGE DEFAULTS
   ========================================================================= */
.pm-content{ padding: 56px 0; max-width: 760px; margin:0 auto; }
.pm-content .entry-title{ margin-bottom: .3rem; }
.pm-content .entry-meta{ color: var(--pm-ink-soft); font-size:.9rem; margin-bottom: 2rem; }

/* wariant pełnej szerokości (wybierany jako szablon strony w WP) */
.pm-content--wide{ max-width: 1180px; }
.pm-content--wide .entry-title{ font-size: clamp(2rem, 3.4vw, 2.8rem); margin-bottom: 1.2rem; }

/* =========================================================================
   WOOCOMMERCE OVERRIDES — szklane, "squircle" karty produktów
   ========================================================================= */
.woocommerce .pm-content, .woocommerce-page .pm-content, .woocommerce-account .pm-content{ max-width: 1180px; }

/* hero na stronie sklepu — infografika na pełną szerokość ekranu */
.pm-shop-hero{
  width: 100%;
  line-height: 0;
}
.pm-shop-hero__img{
  width: 100%;
  height: auto;
  display: block;
}

/* pasek filtrowania po kategoriach */
.pm-category-filter{
  display:flex; flex-wrap:wrap; gap: 10px;
  margin-bottom: 1.6rem;
}
.pm-category-filter__pill{
  display:inline-flex; align-items:center;
  padding: .55em 1.3em;
  font-size: .82rem; font-weight: 800;
  color: var(--pm-ink) !important;
  background: var(--pm-glass);
  border: 1.5px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.pm-category-filter__pill:hover{
  border-color: var(--pm-pink-deep);
  color: var(--pm-pink-deep) !important;
}
.pm-category-filter__pill.is-active{
  background: var(--pm-pink-deep);
  border-color: var(--pm-pink-deep);
  color: var(--pm-white) !important;
}

/* licznik wyników + sortowanie */
.woocommerce-result-count,
.woocommerce-ordering{
  margin-bottom: 1.4rem;
}
.woocommerce-result-count{
  display:inline-block;
  float: left;
  color: var(--pm-ink-soft);
  font-size: .85rem;
}
.woocommerce-ordering{
  display:inline-block;
  float: right;
}
.woocommerce .woocommerce-ordering select.orderby{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: var(--pm-font-body);
  font-weight: 700;
  font-size: .82rem;
  color: var(--pm-ink);
  background-color: var(--pm-glass-strong);
  border: 1.5px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  padding: .6em 2.2em .6em 1.1em;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233C3237' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1em center;
}
.woocommerce .woocommerce-ordering select.orderby:hover,
.woocommerce .woocommerce-ordering select.orderby:focus{
  border-color: var(--pm-pink-deep);
  outline: none;
}
@media (max-width: 560px){
  .woocommerce-result-count{ float:none; display:block; }
  .woocommerce-ordering{ float:none; display:block; margin-top:.6rem; }
  .woocommerce .woocommerce-ordering select.orderby{ width:100%; }
}

.woocommerce ul.products{
  clear: both;
  display:grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 26px;
  margin: 0 !important;
}
/* domyślny clearfix WooCommerce (::before/::after z content:" ") staje się
   "widmowym" pierwszym elementem siatki, kiedy kontener jest display:grid —
   wyłączamy go, bo w gridzie clearfix i tak jest zbędny. */
.woocommerce ul.products::before,
.woocommerce ul.products::after{
  content: none !important;
  display: none !important;
}
.woocommerce ul.products li.product{
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  margin:0 !important; float:none !important;
  background: var(--pm-glass-strong);
  border: 1px solid var(--pm-glass-border);
  backdrop-filter: blur(var(--pm-glass-blur));
  border-radius: var(--r-lg);
  padding: 1.1rem 1.1rem 1.6rem;
  box-shadow: var(--sh-md);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
}
.woocommerce ul.products li.product:hover{ transform: translateY(-6px); box-shadow: var(--sh-lg); }
.woocommerce ul.products li.product .pm-thumb-wrap{ position:relative; overflow:hidden; border-radius: var(--r-md); }
.woocommerce ul.products li.product img{
  border-radius: var(--r-md);
  aspect-ratio: 1/1; object-fit: cover;
  margin-bottom: 1rem !important;
  transition: transform .5s ease;
}
.woocommerce ul.products li.product:hover img{ transform: scale(1.06); }
.woocommerce ul.products li.product .add_to_cart_button{
  transition: opacity .2s ease, transform .2s ease;
}
@media (hover:hover){
  .woocommerce ul.products li.product .button:not(.added_to_cart){
    opacity: 0; transform: translateY(6px);
  }
  .woocommerce ul.products li.product:hover .button:not(.added_to_cart){
    opacity: 1; transform: translateY(0);
  }
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--pm-font-display); font-size: .74rem; color: var(--pm-ink); font-weight:400;
}
.woocommerce ul.products li.product .price{
  font-weight:800;
  background: linear-gradient(120deg, var(--pm-pink-deep), var(--pm-purple));
  -webkit-background-clip: text; background-clip:text; color:transparent;
}
.woocommerce ul.products li.product .price del{ -webkit-text-fill-color: var(--pm-ink-soft); opacity:.65; }
.woocommerce ul.products li.product .button{
  margin-top: .9rem !important;
  font-size:.85rem !important;
  padding: .65em 1.4em !important;
}
.woocommerce span.onsale{
  background: linear-gradient(135deg, var(--pm-purple-mid), var(--pm-purple)) !important;
  border-radius: 0 !important;
  font-family: var(--pm-font-body) !important;
  font-weight: 800 !important;
  min-height: unset !important; min-width: unset !important;
  padding: .4em 1em !important;
  line-height:1.4 !important;
  box-shadow: var(--sh-sm);
}
@media (max-width: 1024px){
  .woocommerce ul.products{ grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 700px){
  .woocommerce ul.products{ grid-template-columns: repeat(2, 1fr) !important; gap:16px; }
}
@media (max-width: 460px){
  .woocommerce ul.products{ grid-template-columns: 1fr !important; }
}

/* single product — blok zdjęcie+opis ma rozsądną, ograniczoną szerokość
   i jest wyśrodkowany jako całość, zamiast rozciągać tekst na całą stronę */
.woocommerce div.product{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  column-gap: 4%;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.woocommerce div.product div.images{
  border-radius: var(--r-lg); overflow:hidden; box-shadow: var(--sh-md);
  flex: 0 0 32%;
  max-width: 32%;
}
.woocommerce div.product div.images img{ border-radius: var(--r-lg); }
.woocommerce div.product div.summary{
  flex: 1 1 380px;
  max-width: 460px;
}
/* zakładki, produkty powiązane i "dokup też" wracają do pełnej szerokości
   tego samego bloku (900px), w nowym wierszu pod zdjęciem i opisem */
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related.products,
.woocommerce div.product > .upsells.products{
  flex: 0 0 100%;
  max-width: 100%;
}
@media (max-width: 780px){
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary{ flex: 0 0 100%; max-width: 100%; }
}
.woocommerce div.product .product_title{ font-family: var(--pm-font-display); font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.25; margin-bottom: .3em; }
.woocommerce div.product .woocommerce-product-details__short-description{
  color: var(--pm-ink-soft);
  font-size: 1rem;
  margin: .6rem 0 1.2rem;
}
.woocommerce div.product .woocommerce-product-details__short-description p{ margin: 0 0 .6em; }
.woocommerce div.product p.price, .woocommerce div.product span.price{
  font-weight:800; font-size:1.1rem;
  background: linear-gradient(120deg, var(--pm-pink-deep), var(--pm-purple));
  -webkit-background-clip: text; background-clip:text; color:transparent;
}
.woocommerce div.product form.cart .quantity input.qty{
  border-radius: var(--r-sm); border: 1px solid rgba(60,50,55,.15);
  background: var(--pm-glass); backdrop-filter: blur(10px);
  padding: .7em; height:auto;
}
.woocommerce table.shop_attributes{ border-radius: var(--r-md); overflow:hidden; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ font-weight:700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color: var(--pm-pink-deep); }

/* cart / checkout */
.woocommerce table.shop_table{ border-radius: var(--r-md); overflow:hidden; border-color: rgba(60,50,55,.1); background: var(--pm-glass-strong); backdrop-filter: blur(var(--pm-glass-blur)); }
.woocommerce table.shop_table th{ background: rgba(248,216,220,.4); }
.woocommerce-checkout #payment{ background: rgba(243,234,230,.7) !important; border-radius: var(--r-md); backdrop-filter: blur(var(--pm-glass-blur)); }
.woocommerce-checkout #payment div.payment_box{ background: var(--pm-pink-light) !important; border-radius: var(--r-sm); }
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color: var(--pm-pink-light) !important; }
.select2-container .select2-selection--single{ border-radius: var(--r-sm) !important; height:44px !important; padding-top:6px; }

/* breadcrumb */
.woocommerce-breadcrumb{ color: var(--pm-ink-soft); font-size:.88rem; margin-bottom: 1.6rem; }

/* =========================================================================
   WYMUSZONE WYŚRODKOWANIE — strona pojedynczego produktu
   Nadpisuje z !important cały łańcuch kontenerów (wrap → content → product),
   na wypadek gdyby cokolwiek po drodze (cache, kolejność stylów, domyślne
   CSS WooCommerce) próbowało nadpisać centrowanie.
   ========================================================================= */
.single-product .pm-woocommerce-wrap{
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
.single-product .pm-content{
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
.single-product .woocommerce div.product{
  width: 100% !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  float: none !important;
}
.woocommerce-breadcrumb a{ color: var(--pm-ink-soft); }

/* star rating */
.woocommerce .star-rating span::before, .star-rating::before{ color: var(--pm-pink-deep); }

/* messages / notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border-top-color: var(--pm-pink-deep) !important;
  border-radius: var(--r-sm);
  background: var(--pm-glass-strong);
  backdrop-filter: blur(var(--pm-glass-blur));
}
.woocommerce-message::before{ color: var(--pm-pink-deep) !important; }
