/** Shopify CDN: Minification failed

Line 2041:3 Unexpected "-"

**/
/* PUSH FORCE 1779120000N · mobile-batch-2026-05-18 */
html, body {
  overflow-x: clip;
  max-width: 100%;
}

*, *::before, *::after {
  box-sizing: border-box;
}

img, video {
  max-width: 100%;
  height: auto;
}

:root {
  /* ── Palette ─────────────────────────────── */
  --sor-gold:         #C9A24E;
  --sor-gold-dark:    #A8842E;
  --sor-gold-light:   #EDD9A3;
  --sor-beige-warm:   #F7F2EB;
  --sor-beige-mid:    #E8DCCB;
  --sor-beige-light:  #FFFCF9;
  --sor-white:        #FFFFFF;
  --sor-brown:        #6E5A45;
  --sor-text:         #3A2D1E;
  --sor-text-muted:   #8C7A65;
  --sor-border:       #E0D3BE;
  --sor-green:        #3D6B4F;

  /* ── Typography ──────────────────────────── */
  --sor-heading: 'Playfair Display', Georgia, serif;
  --sor-body:    'Lato', system-ui, sans-serif;

  --sor-hero-size:   clamp(3.5rem, 7vw, 6.5rem);
  --sor-h2-size:     clamp(2.5rem, 4.4vw, 4.2rem);
  --sor-h3-size:     clamp(1.7rem, 2.6vw, 2.4rem);
  --sor-body-size:   1.25rem;
  --sor-body-large:  1.35rem;
  --sor-lead:        1.7;

  /* ── Layout ──────────────────────────────── */
  --sor-section-gap: clamp(4rem, 9vw, 8rem);
  --sor-container:   min(1240px, 92vw);
  --sor-radius:      12px;
  --sor-radius-sm:   6px;
  --sor-radius-pill: 999px;

  /* ── Effects ─────────────────────────────── */
  --sor-shadow:       0 4px 28px rgba(110, 90, 69, 0.08);
  --sor-shadow-hover: 0 12px 44px rgba(110, 90, 69, 0.16);
  --sor-ease:         cubic-bezier(0.4, 0, 0.2, 1);
  --sor-speed:        0.24s;
}

/* ── Base ─────────────────────────────────── */
body {
  background: var(--sor-beige-light);
  color: var(--sor-text);
  font-family: var(--sor-body);
  font-size: var(--sor-body-size);
  line-height: var(--sor-lead);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
  font-family: var(--sor-heading);
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--sor-text);
  margin: 0;
}

h1 {
  font-size: var(--sor-hero-size);
  font-weight: 300;
  line-height: 1.1;
}

h2 {
  font-size: var(--sor-h2-size);
  line-height: 1.2;
}

h3 {
  font-size: var(--sor-h3-size);
  line-height: 1.3;
}

/* ── Utility ──────────────────────────────── */
.sor-container {
  max-width: var(--sor-container);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.sor-section {
  padding: var(--sor-section-gap) 0;
}

.sor-eyebrow {
  display: inline-block;
  font-family: var(--sor-body);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sor-gold);
}

.sor-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.95rem;
  font-family: var(--sor-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: var(--sor-radius-pill);
  background: var(--sor-gold);
  color: var(--sor-white);
}

.sor-pill--light {
  background: var(--sor-gold-light);
  color: var(--sor-text);
}

.sor-pill--green {
  background: var(--sor-green);
  color: var(--sor-white);
}

/* ── Buttons ──────────────────────────────── */
.sor-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  /* Premium gold gradient — same one used on hero / header / drawer CTAs */
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%);
  color: var(--sor-white);
  border: none;
  border-radius: var(--sor-radius-pill);
  padding: 1rem 2.4rem;
  font-family: var(--sor-body);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18);
  transition: background var(--sor-speed) var(--sor-ease), transform var(--sor-speed) var(--sor-ease), box-shadow var(--sor-speed) var(--sor-ease);
  min-height: 52px;
}

.sor-btn-primary:hover {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%);
  transform: translateY(-1px);
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

/* Hero CTA — premium gold gradient (matches the home sticky CTA) */
.sor-hero__cta.sor-btn-primary,
.sor-hero__cta {
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%) !important;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18);
  position: relative !important;
  overflow: hidden !important;
}
.sor-hero__cta::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 220, 150, 0) 35%, rgba(255, 240, 200, 0.55) 50%, rgba(255, 220, 150, 0) 65%, transparent 100%);
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}
/* Header CTA "Zamów poszewkę" — same shine effect */
.sor-header-cta {
  position: relative !important;
  overflow: hidden !important;
}
.sor-header-cta::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 220, 150, 0) 35%, rgba(255, 240, 200, 0.55) 50%, rgba(255, 220, 150, 0) 65%, transparent 100%);
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}
.sor-hero__cta.sor-btn-primary:hover,
.sor-hero__cta:hover {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%) !important;
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

.sor-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: transparent;
  color: var(--sor-brown);
  border: 1.5px solid var(--sor-brown);
  border-radius: var(--sor-radius-pill);
  padding: 0.95rem 2.2rem;
  font-family: var(--sor-body);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--sor-speed) var(--sor-ease), color var(--sor-speed) var(--sor-ease);
  min-height: 52px;
}

.sor-btn-secondary:hover {
  background: var(--sor-beige-mid);
}

.sor-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: transparent;
  color: var(--sor-white);
  border: none;
  font-family: var(--sor-body);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  padding: 0.5rem 0.25rem;
  cursor: pointer;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  transition: border-color var(--sor-speed) var(--sor-ease);
}

.sor-btn-ghost:hover {
  border-bottom-color: var(--sor-white);
}

/* ── Color swatches (variants) ─────────── */
:root {
  --sor-color-ivory:        #FFFFF0;
  --sor-color-orchampagne:  #C9A24E;
  --sor-color-roseblush:    #F4C2C2;
  --sor-color-mauve:        #C3A0B8;
  --sor-color-sage:         #B2BFB0;
  --sor-color-granat:       #1B2A4A;
  --sor-color-szary:        #8E9BAB;
  --sor-color-bordeaux:     #6B2737;
  --sor-color-biel:         #FFFFFF;
  --sor-color-karmel:       #9B6B3C;
}

.sor-color-picker {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin: 1rem 0 0.25rem;
}

.sor-swatch {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
  transition: transform 0.28s var(--sor-ease), box-shadow 0.28s var(--sor-ease);
  position: relative;
  padding: 0;
  background-clip: padding-box;
  background-color: #e0e0e0;
  background-size: cover;
  background-position: center;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.08),
    0 1px 3px rgba(0, 0, 0, 0.08);
}

@media (hover: hover) {
  .sor-swatch:hover {
    transform: scale(1.08);
    box-shadow:
      inset 0 0 0 1px rgba(0, 0, 0, 0.1),
      0 4px 14px rgba(201, 162, 78, 0.35);
  }
}

.sor-swatch.active {
  transform: scale(1.06);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.1),
    0 0 0 2px var(--sor-white),
    0 0 0 3.5px var(--sor-gold),
    0 4px 16px rgba(201, 162, 78, 0.45);
}

.sor-swatch:focus-visible {
  outline: none;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.1),
    0 0 0 2px var(--sor-white),
    0 0 0 3.5px var(--sor-gold);
}

@media (max-width: 749px) {
  .sor-swatch { width: 44px; height: 44px; }
  .sor-color-picker { gap: 11px; }
}

/* ── Visually hidden ─────────────────────── */
.sor-vh {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ───────────────────────────────────────────
   PRODUCT PAGE OVERRIDES — Premium compact
   ─────────────────────────────────────────── */

/* Title — tighter, more elegant */
.product__title h1,
.product__title .h1 {
  font-family: var(--sor-heading) !important;
  font-size: clamp(1.55rem, 2.3vw, 2.35rem) !important;
  font-weight: 500 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.01em !important;
  color: var(--sor-text) !important;
  margin: 0.5rem 0 0.5rem !important;
  text-wrap: balance;
}

@media (max-width: 749px) {
  .product__title h1,
  .product__title .h1 {
    font-size: clamp(1.5rem, 6.5vw, 1.75rem) !important;
    line-height: 1.2 !important;
  }
}

/* Vendor — smaller, more discreet above title */
.product__text.caption-with-letter-spacing {
  font-size: 0.72rem !important;
  letter-spacing: 0.18em !important;
  color: var(--sor-text-muted) !important;
  margin-bottom: 0.4rem !important;
}

/* Price block — compact, premium */
.product .price {
  margin-top: 0.25rem;
}
.product .price__regular .price-item--regular,
.product .price__sale .price-item--sale {
  font-family: var(--sor-body) !important;
  font-size: 1.55rem !important;
  font-weight: 700 !important;
  color: var(--sor-text) !important;
}
.product .price__sale .price-item--regular,
.product .price s.price-item--regular {
  font-size: 1.05rem !important;
  color: var(--sor-text-muted) !important;
  opacity: 0.7;
}

/* ═══════════════════════════════════════════════════════════════
   ADD TO CART — premium luxury gold, clean rewrite
   ═══════════════════════════════════════════════════════════════ */

/* Reset Dawn wrappers around the submit (kill stray borders/bg/outlines) */
product-form,
.product-form,
.product-form__buttons,
.product-form__error-message-wrapper {
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Parent containers of the submit button — span the full info column on desktop too,
   so the ATC button matches the bundle row width above it (no narrower gold pill) */
.product__info-container .product-form,
.product__info-container .product-form__buttons,
.product__info-container product-form {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Standalone submit — only visible element */
.product-form__submit {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 68px !important;
  padding: 0 1.4rem 0 1.4rem !important;
  margin: 0 !important;
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 45%, #B9872E 100%) !important;
  color: #FFFDF8 !important;
  font-family: var(--sor-body) !important;
  font-size: 1.4rem !important;       /* ~22.4px desktop */
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
  line-height: 1 !important;
  text-transform: none !important;
  text-shadow: 0 1px 1px rgba(112, 80, 25, 0.18);
  border: 0 !important;
  border-radius: 999px !important;
  cursor: pointer;
  box-shadow:
    0 10px 25px rgba(200, 157, 67, 0.28),
    0 2px 8px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
  transition:
    background 0.3s ease,
    transform 0.18s ease,
    box-shadow 0.3s ease,
    filter 0.3s ease;
  will-change: transform, box-shadow;
  position: relative;
}

/* Breathing animation only runs on ENABLED button (don't pulse a greyed-out / sold-out ATC) */
.product-form__submit:not([disabled]):not([aria-disabled='true']) {
  animation: soralianaAtcBreath 3.4s ease-in-out infinite;
}

/* Kill any pseudo Dawn ships */
.product-form__submit::before {
  display: none !important;
}

/* Inline SVG arrow via data URI — crisp, no box, no font glyph */
.product-form__submit::after {
  content: '' !important;
  display: inline-block !important;
  width: 22px !important;
  height: 22px !important;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFDF8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 100% !important;
  background-color: transparent !important;
  /* Reset Dawn's .button::after ring/border (base.css line 1246) */
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle;
  transition: transform 0.25s ease;
  filter: none !important;
  shape-rendering: geometricPrecision;
}
/* Also kill Dawn's box-shadow ring on the button itself if it shows through */
.product-form__submit:not([disabled]):hover::after,
.product-form__submit:not([disabled])::after {
  box-shadow: none !important;
}

.product-form__submit:hover:not([disabled]) {
  background: linear-gradient(135deg, #E1BB68 0%, #D2A84F 45%, #C39438 100%) !important;
  transform: translateY(-1px);
  filter: brightness(1.04);
  box-shadow:
    0 14px 30px rgba(200, 157, 67, 0.36),
    0 3px 10px rgba(0, 0, 0, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.30);
  animation-play-state: paused;
}
.product-form__submit:hover:not([disabled])::after {
  transform: translateX(4px);
}

.product-form__submit:active:not([disabled]) {
  transform: translateY(0) scale(0.99);
  box-shadow:
    0 6px 16px rgba(200, 157, 67, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.product-form__submit:focus-visible {
  outline: 2px solid #FFFDF8;
  outline-offset: 2px;
  box-shadow:
    0 0 0 4px rgba(200, 157, 67, 0.35),
    0 10px 25px rgba(200, 157, 67, 0.28);
}

.product-form__submit[disabled],
.product-form__submit[aria-disabled="true"] {
  filter: grayscale(0.3) brightness(0.95);
  cursor: not-allowed;
  animation: none !important;
}

/* Noticeable breathing — clear pulse so the button "calls" the user */
@keyframes soralianaAtcBreath {
  0%, 100% {
    transform: scale(1);
    box-shadow:
      0 10px 25px rgba(200, 157, 67, 0.28),
      0 2px 8px rgba(0, 0, 0, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.22);
  }
  50% {
    transform: scale(1.025);
    box-shadow:
      0 18px 40px rgba(200, 157, 67, 0.48),
      0 4px 14px rgba(0, 0, 0, 0.10),
      0 0 0 6px rgba(201, 162, 78, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.32);
  }
}
.product-form__submit {
  animation-duration: 2.6s !important;
}

@media (max-width: 749px) {
  .product-form__submit {
    font-size: 1.45rem !important;       /* ~23.2px on mobile */
    min-height: 64px !important;
    padding: 0 1.5rem !important;
  }
  .product-form__submit::after {
    width: 22px !important;
    height: 22px !important;
  }
}

/* ATC breathing animation is intentionally kept even with reduced-motion
   because it's a 2.5% scale pulse — well within accessibility guidelines —
   and it's a critical conversion element. */

/* Compact product info column padding */
.product__info-container {
  padding-top: 0.35rem;
}
/* Kill Dawn's default `margin: 1.5rem 0` on children — it adds 24px top AND bottom
   so price.margin-bottom collided with savings.margin-top regardless of overrides.
   Now ONLY margin-top governs spacing (per-relationship rules below). */
.product__info-container > * {
  margin-bottom: 0 !important;
}
.product__info-container > * + * {
  margin-top: 0.6rem; /* ~10px baseline */
}

/* ─── Conversion-tight spacing per relationship ─── */
/* Stars hug the title (micro gap ~4px) */
.product__info-container > .sor-product-stars,
.product__info-container > *:has(> .sor-product-stars) { margin-top: 0.25rem !important; }
/* Price comes after stars with a related gap (~10px) */
.product__info-container > *:has(.product__price-wrapper),
.product__info-container > *:has(.price) { margin-top: 0.55rem !important; }
/* Savings line — glued to the price, same visual block */
.product__info-container > .sor-savings-block,
.product__info-container > *:has(> .sor-savings-block) { margin-top: 0.05rem !important; }
/* Color swatches: breathing room from savings (~28px) */
.product__info-container > .sor-cp-inline,
.product__info-container > *:has(> .sor-cp-inline) { margin-top: 1.75rem !important; }
/* Bundle: enough clearance for corner badges (top:-8px) without floating too far (~36px) */
.product__info-container > .sor-qb,
.product__info-container > *:has(> .sor-qb) { margin-top: 2.25rem !important; }
/* ATC submit: breathing room from the bundle (with its internal perk) */
.product__info-container > *:has(.product-form__submit) { margin-top: 1rem !important; }
/* Use-cases bar between bundle and ATC */
.product__info-container > .sor-uc,
.product__info-container > *:has(> .sor-uc) { margin-top: 0.85rem !important; }

/* Star rating row — no own margin, parent gap controls spacing */
.sor-product-stars {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--sor-body);
  font-size: 0.92rem;
  color: var(--sor-text-muted);
  margin: 0 !important;
}
.sor-product-stars__svgs {
  display: inline-flex;
  gap: 0.1rem;
  color: var(--sor-gold);
}
.sor-product-stars a {
  color: var(--sor-text-muted);
  text-decoration: underline;
  text-decoration-color: rgba(0,0,0,0.15);
  text-underline-offset: 3px;
  transition: color 0.24s ease, text-decoration-color 0.24s ease;
}
.sor-product-stars a:hover {
  color: var(--sor-gold);
  text-decoration-color: var(--sor-gold);
}

/* ───────────────────────────────────────────
   ANNOUNCEMENT BAR — visual rules live in section stylesheet now.
   This block only keeps sticky positioning + the height variable
   so the floating header can offset by --sor-announcement-h.
   ─────────────────────────────────────────── */
:root {
  --sor-announcement-h: 24px;
}
@media (max-width: 749px) {
  :root { --sor-announcement-h: 22px; }
}

.utility-bar,
.shopify-section--announcement-bar,
.announcement-bar-section {
  position: sticky !important;
  top: 0 !important;
  z-index: 101 !important;
  overflow: hidden;
  border-bottom: 0 !important;
}
.utility-bar * { color: #FFFFFF !important; }

/* — Header (under the announcement bar, desktop) — */
.section-header {
  position: sticky !important;
  top: var(--sor-announcement-h) !important;
  z-index: 100 !important;
  background: var(--sor-beige-light, #FFFCF9) !important;
  border-bottom: 1px solid var(--sor-border) !important;
}

/* — MOBILE: floating glassmorphic header card (Emily's Pillow style) — */
@media (max-width: 749px) {
  .section-header {
    position: fixed !important;
    top: calc(var(--sor-announcement-h) + 10px) !important;
    left: 16px !important;
    right: 16px !important;
    width: calc(100% - 32px) !important;
    margin: 0 !important;
    background: rgba(255, 248, 238, 0.82) !important;
    backdrop-filter: blur(14px) saturate(1.05);
    -webkit-backdrop-filter: blur(14px) saturate(1.05);
    border-radius: 22px !important;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45) !important;
    box-shadow:
      0 8px 24px rgba(58, 48, 40, 0.10),
      0 2px 6px rgba(58, 48, 40, 0.06);
    transition:
      transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
      opacity 0.28s ease;
    will-change: transform, opacity;
  }
  .section-header.sor-header-hidden {
    transform: translateY(calc(-100% - 30px));
    opacity: 0;
    pointer-events: none;
  }
  /* Header inner: compact padding so the card stays slim */
  .section-header .header {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  /* Force logo visible inside the floating card */
  .section-header .header__heading-logo-wrapper,
  .section-header .header__heading-link,
  .section-header .header__heading-logo {
    display: inline-block !important;
    visibility: visible !important;
  }
  .section-header .header__heading-logo {
    max-height: 28px !important;
    width: auto !important;
    display: block !important;
  }
  /* Hide the "Zamów poszewkę" CTA + Track order on mobile — saves horizontal space
     (the floating card is calc(100% - 32px) ≈ 343px, must fit hamburger + logo + search + bell + cart) */
  .section-header .sor-header-cta,
  .section-header .sor-header-track {
    display: none !important;
  }
  /* Tighten icon row gap so nothing clips off the right edge */
  .section-header .header__icons {
    gap: 0.15rem !important;
  }
  .section-header .header__icon {
    padding: 0.35rem !important;
  }
  /* Remove background blur conflict on the announcement bar group container */
  .section-header.sor-is-scrolled {
    background: rgba(255, 248, 238, 0.92) !important;
  }
}
@media (max-width: 749px) and (prefers-reduced-motion: reduce) {
  .section-header { transition: none !important; }
  .section-header.sor-header-hidden {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }
}
/* Disable Dawn's sticky-header internal positioning (we handle sticky via parent) */
sticky-header,
sticky-header.shopify-section-header-sticky,
sticky-header.shopify-section-header-hidden {
  transform: none !important;
  position: static !important;
  top: auto !important;
  animation: none !important;
}
/* Section group container must not clip sticky children */
.shopify-section-group-header-group {
  position: static !important;
  overflow: visible !important;
  z-index: auto;
}
/* All announcement-bar visual rules now live in sections/announcement-bar.liquid {% stylesheet %} */

/* ───────────────────────────────────────────
   HEADER ICONS — uniform sizes + visual weight
   ─────────────────────────────────────────── */
.section-header .header__icon svg,
.section-header .header__icon .svg-wrapper svg,
.section-header .sor-bell svg,
.section-header #cart-icon-bubble svg {
  width: 19px !important;
  height: 19px !important;
}

/* ───────────────────────────────────────────
   PRODUCT TITLE — bigger on mobile, fills width
   ─────────────────────────────────────────── */
@media (max-width: 749px) {
  .product__title h1,
  .product__title .h1 {
    font-size: clamp(1.55rem, 7.2vw, 1.85rem) !important;
    line-height: 1.15 !important;
    font-weight: 500 !important;
    margin: 0.3rem 0 0.25rem !important;
  }

  /* Stars: tighter spacing under title */
  .sor-product-stars {
    margin: 4px 0 8px !important;
    font-size: 0.88rem !important;
  }
}

/* ───────────────────────────────────────────
   INLINE COLOR SWATCHES (custom_liquid in main-product)
   ─────────────────────────────────────────── */
.sor-cp-inline {
  margin: 0 !important;
}
.sor-cp-inline__label {
  font-family: var(--sor-body);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--sor-text-muted);
  margin: 0 0 0.55rem;
}
.sor-cp-inline__label strong {
  font-weight: 700;
  color: var(--sor-text);
  letter-spacing: 0;
  text-transform: none;
  margin-left: 0.25rem;
}

/* Stock indicator below swatches — adaptive urgency */
.sor-cp-stock {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 1.05rem 0 0;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  font-family: var(--sor-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: rgba(120, 120, 120, 0.08);
  color: #6F6259;
  vertical-align: middle;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease;
}
.sor-cp-stock__ic {
  color: #D4882C;
  font-weight: 700;
  flex-shrink: 0;
}
.sor-cp-stock strong { font-weight: 700; }
.sor-cp-stock--low {
  background: rgba(201, 162, 78, 0.16);
  color: #8B6A1F;
}
.sor-cp-stock--urgent {
  background: rgba(220, 60, 50, 0.12);
  color: #B83A2E;
  font-weight: 700;
  animation: sor-stock-pulse 1.8s ease-in-out infinite;
}
@keyframes sor-stock-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}
@media (max-width: 480px) {
  .sor-cp-stock {
    display: inline-block;
    margin-left: 0;
    margin-top: 0.6rem;
    font-size: 0.7rem;
    padding: 0.16rem 0.5rem;
  }
  .sor-cp-inline__label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
}
.sor-color-picker--inline {
  justify-content: flex-start;
  gap: 12px;
  margin: 0;
}
.sor-color-picker--inline .sor-swatch {
  width: 44px;
  height: 44px;
}
@media (max-width: 749px) {
  /* Mobile: force exact 5 swatches per row (5+5 layout for 10 colors) via grid */
  .sor-color-picker--inline {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
  }
  .sor-color-picker--inline .sor-swatch {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
  }
}

/* ───────────────────────────────────────────
   SAVINGS LINE + EBOOK GIFT (under price)
   Mirrors the homepage spotlight visual treatment
   ─────────────────────────────────────────── */
.sor-savings-block {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0 !important;
}
/* Price anchor — "Cena rynkowa: X zł → Twoja cena Y zł" — psychological anchor */
.sor-price-anchor {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.2rem 0 0 !important;
  font-family: var(--sor-body);
  font-size: 0.85rem;
  color: var(--sor-text-muted, #8C7A65);
  line-height: 1.3;
}
.sor-price-anchor__label {
  font-weight: 500;
}
.sor-price-anchor__value {
  color: var(--sor-text-muted, #8C7A65);
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  text-decoration-color: rgba(140, 122, 101, 0.55);
  font-weight: 600;
}
.sor-price-anchor__sep {
  color: var(--sor-gold, #C9A24E);
  font-weight: 700;
  opacity: 0.7;
}
.sor-price-anchor__current {
  color: var(--sor-text, #3A2D1E);
  font-weight: 600;
}
.sor-price-anchor__current strong {
  color: var(--sor-gold-dark, #A8842E);
  font-weight: 800;
}
@media (max-width: 480px) {
  .sor-price-anchor {
    font-size: 0.78rem;
    gap: 0.3rem;
  }
}
.sor-savings-line {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--sor-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--sor-green);
  margin: 0;
  line-height: 1.25;
}
.sor-savings-line strong {
  font-weight: 800;
  color: var(--sor-green);
}
.sor-savings-line__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.32rem 0.7rem;
  background: var(--sor-green);
  color: #fff;
  font-family: var(--sor-body);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  border-radius: 5px;
  line-height: 1;
}
@media (max-width: 749px) {
  .sor-savings-line { font-size: 1.02rem; }
  .sor-savings-line__badge { font-size: 0.85rem; padding: 0.28rem 0.6rem; }
}

/* Conditional ebook gift — appears only when bundle qty ≥ 2 */
.sor-qb-ebook {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #FFF8EC;
  border: 1px solid #C9A24E;
  border-radius: 8px;
  padding: 0.5rem 0.8rem;
  margin: 0.5rem 0 0 0 !important;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.sor-qb-ebook.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.sor-qb-ebook[hidden] { display: none !important; }
.sor-qb-ebook__ic {
  font-family: var(--sor-body);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  color: var(--sor-gold-dark);
  flex-shrink: 0;
}
.sor-qb-ebook__txt {
  font-family: var(--sor-body);
  font-size: 0.92rem;
  font-weight: 500;
  color: #6E5A45;
  line-height: 1.35;
}
.sor-qb-ebook__txt strong {
  font-weight: 700;
  color: var(--sor-text);
}
@media (max-width: 749px) {
  .sor-qb-ebook { padding: 0.42rem 0.65rem; margin: 0.5rem 0 0 0 !important; }
  .sor-qb-ebook__txt { font-size: 0.86rem; }
}

@media (prefers-reduced-motion: reduce) {
  .sor-qb-ebook { transition: opacity 0.15s ease; transform: none; }
  .sor-qb-ebook.is-visible { transform: none; }
}

/* ───────────────────────────────────────────
   INLINE QTY BUNDLE (3 tiers above ATC)
   ─────────────────────────────────────────── */
.sor-qb {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0 !important;
  align-items: stretch;
  padding-top: 14px;
}
.sor-qb__card {
  position: relative;
  border: 1.5px solid var(--sor-border);
  border-radius: 12px;
  background: var(--sor-white);
  padding: 1rem 0.55rem 0.85rem;
  cursor: pointer;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background 0.2s ease;
}
.sor-qb__card:hover {
  border-color: var(--sor-gold);
  transform: translateY(-1px);
}
/* 3+1 GRATIS card (3rd / featured) — the BIG one, visually dominant.
   Same bottom alignment as the other 2 cards so all 3 badges sit on the SAME horizontal line. */
.sor-qb__card--featured {
  border-color: rgba(201, 162, 78, 0.7) !important;
  border-width: 2px;
  background: linear-gradient(180deg, rgba(255, 252, 248, 1) 0%, rgba(247, 242, 235, 0.6) 100%);
  box-shadow: 0 6px 24px rgba(201, 162, 78, 0.14);
  padding: 1.15rem 0.6rem 1rem !important;
}
.sor-qb__card--featured .sor-qb__qty {
  font-size: 0.95rem !important;
  font-weight: 800 !important;
}
.sor-qb__card--featured .sor-qb__total {
  font-size: 1.1rem !important;  /* same size as the other 2 cards — no overflow with extra perk line */
  color: var(--sor-gold-dark, #A8842E) !important;
}
.sor-qb__card--featured:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(201, 162, 78, 0.22);
}
.sor-qb__card.active {
  border-color: var(--sor-gold);
  border-width: 2px;
  box-shadow: 0 0 0 3px rgba(201, 162, 78, 0.18), 0 4px 20px rgba(201, 162, 78, 0.16);
  background: linear-gradient(180deg, #FFFCF9 0%, var(--sor-beige-light) 100%);
}
.sor-qb__card--featured.active {
  box-shadow: 0 0 0 3px rgba(201, 162, 78, 0.25), 0 8px 28px rgba(201, 162, 78, 0.28);
  background: linear-gradient(180deg, #FFFCF9 0%, var(--sor-beige-warm, #F7F2EB) 100%);
}
/* Checkmark — visible only when active. Sits ON the bottom-left corner of the card
   (on the same horizontal line as the discount badge), so it never covers text. */
.sor-qb__check {
  position: absolute;
  bottom: -10px;
  left: 12px;
  top: auto;
  right: auto;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--sor-green, #3D6B4F);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 3;
  box-shadow: 0 2px 6px rgba(61, 107, 79, 0.32);
}
.sor-qb__card.active .sor-qb__check {
  opacity: 1;
  transform: scale(1);
}
/* Percent discount badge — bigger, perfectly centered ON the card's bottom border line */
.sor-qb__badge {
  position: absolute;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  top: auto;
  right: auto;
  background: var(--sor-gold);
  color: #fff;
  font-family: var(--sor-body);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  padding: 5px 12px;
  border-radius: 999px;
  line-height: 1;
  box-shadow: 0 3px 10px rgba(201, 162, 78, 0.32);
  white-space: nowrap;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* Same for the top cornertag (BESTSELLER, 3+1 GRATIS) — perfectly centered on top line */
.sor-qb__cornertag {
  top: -11px !important;
  bottom: auto !important;
  height: 22px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.sor-qb__qty {
  font-family: var(--sor-body);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--sor-text);
  letter-spacing: 0.02em;
  margin-top: 0.1rem;
}
.sor-qb__total {
  font-family: var(--sor-body);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--sor-text);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
/* Per-unit price — small muted line just below the total */
.sor-qb__per {
  font-family: var(--sor-body);
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--sor-text-muted, #8C7A65);
  letter-spacing: 0.02em;
  margin-top: 1px;
}
.sor-qb__tag {
  font-family: var(--sor-body);
  font-size: 0.62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--sor-text-muted);
}

/* Corner tag — TOP CENTER (emotional hook: BESTSELLER, 3+1 GRATIS) */
.sor-qb__cornertag {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  bottom: auto;
  right: auto;
  font-family: var(--sor-body);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 999px;
  line-height: 1.3;
  white-space: nowrap;
  z-index: 2;
}
.sor-qb__cornertag--bestseller {
  background: var(--sor-text, #3A2D1E);
  color: #FFF8ED;
}
.sor-qb__cornertag--value {
  background: var(--sor-gold-dark, #A8842E);
  color: #fff;
}
/* 3+1 GRATIS — premium dark badge with subtle gold shine animation
   Bigger and more prominent than Bestseller because it's the best offer */
.sor-qb__cornertag--free {
  background: linear-gradient(135deg, #3A2D1E 0%, #4A3825 50%, #2E2316 100%);
  color: #FFF8ED;
  font-weight: 900;
  font-size: 0.72rem !important;
  padding: 5px 14px !important;
  height: auto !important;
  letter-spacing: 0.1em;
  box-shadow:
    0 4px 14px rgba(58, 45, 30, 0.32),
    0 0 0 1px rgba(201, 162, 78, 0.35),
    inset 0 1px 0 rgba(255, 244, 220, 0.18);
  position: absolute;
  overflow: hidden;
  z-index: 3;
}
/* Shine sweep animation — diagonal gold gleam slides across every 3.5s */
.sor-qb__cornertag--free::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 220, 150, 0) 35%,
    rgba(255, 220, 150, 0.55) 50%,
    rgba(255, 220, 150, 0) 65%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-cornertag-shine 3.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes sor-cornertag-shine {
  0%   { left: -75%; }
  60%  { left: 125%; }
  100% { left: 125%; }
}
/* 3+1 GRATIS shine: kept on for all users — it's a slow, gentle gold gleam
   well within accessibility guidelines and critical for converting visitors. */
/* Mobile: still bigger than bestseller but proportionally adjusted */
@media (max-width: 749px) {
  .sor-qb__cornertag--free {
    font-size: 0.64rem !important;
    padding: 4px 12px !important;
    letter-spacing: 0.08em;
  }
}

/* ═══════════════════════════════════════════════════════════════
   .sor-shine — reusable diagonal gold gleam animation
   Add this class to any element you want to feel "premium / alive".
   Requires the element to be `position: relative; overflow: hidden`.
   =══════════════════════════════════════════════════════════════ */
.sor-shine {
  position: relative;
  overflow: hidden;
}
.sor-shine::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 220, 150, 0) 35%,
    rgba(255, 240, 200, 0.55) 50%,
    rgba(255, 220, 150, 0) 65%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}
@keyframes sor-shine-sweep {
  0%   { left: -75%; }
  60%  { left: 125%; }
  100% { left: 125%; }
}
/* Variant: slower sweep for big buttons (less distracting) */
.sor-shine--slow::after { animation-duration: 6s; }
.sor-shine--fast::after { animation-duration: 2.8s; }

/* Shine on the −38% badge of the 3+1 GRATIS bundle (premium signal at price level) */
.sor-qb__card--featured .sor-qb__badge {
  position: absolute;
  overflow: hidden;
}
.sor-qb__card--featured .sor-qb__badge::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 240, 200, 0) 40%,
    rgba(255, 250, 220, 0.6) 50%,
    rgba(255, 240, 200, 0) 60%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4s ease-in-out infinite 0.75s;
  pointer-events: none;
  border-radius: inherit;
}

/* Apply shine to BESTSELLER cornertag — matches the 3+1 visual energy
   without overpowering it (3+1 stays the dominant offer).
   IMPORTANT: keep position: absolute (inherited from .sor-qb__cornertag)
   so the badge stays centered on top of the card. */
.sor-qb__cornertag--bestseller {
  position: absolute;
  overflow: hidden;
}
.sor-qb__cornertag--bestseller::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 45%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 240, 200, 0.4) 50%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-cornertag-shine 5s ease-in-out infinite 1.5s;
  pointer-events: none;
}

/* Sticky ATC pill — add subtle shine on the gold button */
.sor-sticky-atc__btn {
  position: relative;
  overflow: hidden;
}
.sor-sticky-atc__btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 240, 200, 0) 40%,
    rgba(255, 250, 220, 0.45) 50%,
    rgba(255, 240, 200, 0) 60%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-shine-sweep 5s ease-in-out infinite 2s;
  pointer-events: none;
}

/* Home sticky CTA — same shine */
.sor-sticky-home-cta__btn {
  position: relative;
  overflow: hidden;
}
.sor-sticky-home-cta__btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 240, 200, 0) 40%,
    rgba(255, 250, 220, 0.5) 50%,
    rgba(255, 240, 200, 0) 60%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4.5s ease-in-out infinite 1s;
  pointer-events: none;
}

/* Cart drawer checkout button — shine to draw eye to final conversion */
.cart-drawer #CartDrawer-Checkout,
.cart-drawer .cart__checkout-button {
  position: relative;
  overflow: hidden;
}
.cart-drawer #CartDrawer-Checkout::after,
.cart-drawer .cart__checkout-button::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 240, 200, 0) 40%,
    rgba(255, 250, 220, 0.5) 50%,
    rgba(255, 240, 200, 0) 60%,
    transparent 100%
  );
  transform: skewX(-22deg);
  animation: sor-shine-sweep 4s ease-in-out infinite 0.5s;
  pointer-events: none;
}

/* Bonus perk line inside bundle cards (replaces standalone ebook box) */
.sor-qb__perk {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px dashed rgba(201, 162, 78, 0.35);
  font-family: var(--sor-body);
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--sor-text-muted);
  letter-spacing: 0.01em;
  line-height: 1.3;
  width: 100%;
  justify-content: center;
  text-align: center;
}
.sor-qb__perk strong {
  font-weight: 700;
  color: var(--sor-gold-dark);
  margin-left: 0.15rem;
}
.sor-qb__perk-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--sor-gold);
  color: #fff;
  /* Use a tighter font + slight vertical nudge so the "+" glyph
     sits visually centered (text glyphs render above their em center) */
  font-family: 'Lato', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  padding-bottom: 1px;
  flex-shrink: 0;
}

/* Price row: strike + total side by side */
.sor-qb__price-row {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: center;
}
.sor-qb__strike {
  font-family: var(--sor-body);
  font-size: 0.75rem;
  color: var(--sor-text-muted);
  text-decoration: line-through;
  opacity: 0.55;
  letter-spacing: 0;
  font-weight: 400;
}

/* Savings line below price (only when card has data-discount > 0) */
.sor-qb__save {
  display: block;
  font-family: var(--sor-body);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--sor-gold-dark);
  letter-spacing: 0.02em;
  margin-top: 0.15rem;
  line-height: 1.3;
}
/* Savings line visible on all cards including 1-pack (cumulative with compare-at) */

/* Featured "best value" card — visually identical to other inactive cards by default.
   Only the active state gets the gold ring (handled by .sor-qb__card.active). */
.sor-qb__card--featured.active {
  box-shadow: 0 0 0 2px var(--sor-gold), 0 4px 18px rgba(201,162,78,0.22);
}
.sor-qb__badge--free {
  background: var(--sor-text);
  color: #FFF8ED;
  font-weight: 800;
}

@media (max-width: 749px) {
  .sor-qb { gap: 7px; }
  .sor-qb__card { padding: 0.7rem 0.35rem 0.55rem; }
  .sor-qb__qty { font-size: 0.74rem; }
  .sor-qb__total { font-size: 0.85rem; }
  .sor-qb__strike { font-size: 0.72rem; }
  .sor-qb__tag { font-size: 0.55rem; }
  .sor-qb__save { font-size: 0.64rem; }
  .sor-qb__badge { font-size: 0.78rem !important; padding: 4px 10px !important; bottom: -12px !important; top: auto !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important; height: 24px !important; font-weight: 900 !important; }
  .sor-qb__check { bottom: -10px !important; left: 8px !important; top: auto !important; right: auto !important; width: 18px !important; height: 18px !important; }
  .sor-qb__cornertag { font-size: 0.54rem; padding: 2px 7px; top: -7px; bottom: auto; left: 50%; right: auto; transform: translateX(-50%); letter-spacing: 0.04em; }
  .sor-qb__perk { font-size: 0.6rem; margin-top: 0.3rem; padding-top: 0.3rem; gap: 0.25rem; }
  .sor-qb__perk-ic { width: 12px; height: 12px; font-size: 0.68rem; }
  .sor-qb__price-row { gap: 0.25rem; }
}


/* ───────────────────────────────────────────
   GALLERY — compact thumbnails, prominent arrows, balanced layout
   ─────────────────────────────────────────── */

/* Image column smaller — info column wider */
@media (min-width: 750px) {
  .product--thumbnail.product--large > .product__media-wrapper,
  .product--large > .product__media-wrapper {
    flex: 0 0 45% !important;
    max-width: 45% !important;
  }
  .product--thumbnail.product--large > .product__info-wrapper,
  .product--large > .product__info-wrapper {
    flex: 0 0 55% !important;
    max-width: 55% !important;
    padding-left: clamp(1.25rem, 2.5vw, 2.5rem) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   GALLERY PAGINATION DOTS — testimonials-style indicator below the
   photo gallery (no longer overlays). Inactive = round dot, active
   = wide gold pill. Identical behavior on desktop + mobile.
   Legacy `.sor-gallery-progress*` classes kept hidden in case any
   cached HTML still references them.
   ═══════════════════════════════════════════════════════════════ */
.sor-gallery-progress,
.sor-gallery-progress__dash { display: none !important; }

.sor-gallery-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 0.4rem auto 1rem;          /* hug the gallery — much closer than before */
  padding: 0;
  background: transparent;            /* no pill bg → no visual overlay over scrolling photos */
  border-radius: 0;
  box-shadow: none;
  width: auto;
  /* Natural document flow — dots scroll with photos as one block.
     No z-index / no backdrop-filter — they can't visually float above
     photos that scroll past behind them. */
  position: static;
}
.sor-gallery-dots__dot {
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(201, 162, 78, 0.35);
  transition: width 0.35s cubic-bezier(0.22, 0.61, 0.36, 1),
              background 0.25s ease,
              transform 0.18s ease;
}
.sor-gallery-dots__dot:hover {
  background: rgba(201, 162, 78, 0.6);
  transform: scale(1.15);
}
.sor-gallery-dots__dot.is-active {
  width: 26px;
  background: var(--sor-gold, #C9A24E);
  transform: none;
  box-shadow: 0 1px 6px rgba(201, 162, 78, 0.45);
}
.sor-gallery-dots__dot:focus-visible {
  outline: 2px solid var(--sor-gold-dark, #A8842E);
  outline-offset: 3px;
}
@media (max-width: 749px) {
  .sor-gallery-dots {
    gap: 0.42rem;
    margin: 0.3rem auto 0.5rem;        /* tighter on mobile too */
    padding: 0 0.75rem;
    flex-wrap: wrap;
    max-width: 100vw;
  }
  .sor-gallery-dots__dot { width: 6px; height: 6px; }
  .sor-gallery-dots__dot.is-active { width: 22px; }
}

/* ═══════════════════════════════════════════════════════════════
   SMOOTH FADE between gallery images on DESKTOP only.
   On mobile, swiping happens mid-transition so the opacity fade
   creates a "white veil" effect — keep mobile images fully opaque.
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 750px) {
  .product__media-item {
    transition: opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .product__media-item:not(.is-active) {
    opacity: 0.4;
  }
  .product__media-item.is-active {
    opacity: 1;
  }
}
@media (max-width: 749px) {
  .product__media-item { opacity: 1 !important; }
}

/* Floating benefit pills overlay — absolute over <media-gallery> */
.sor-gallery-pills {
  list-style: none;
  margin: 0;
  padding: 0.85rem 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  background: transparent;
  pointer-events: none;
  justify-content: center;
}
.sor-gallery-pills li {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--sor-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #2E2418;
  padding: 0.42rem 0.95rem 0.42rem 0.85rem;
  background: linear-gradient(135deg, rgba(255, 252, 246, 0.96) 0%, rgba(252, 244, 230, 0.94) 100%);
  border: 1px solid rgba(201, 162, 78, 0.35);
  border-radius: 999px;
  backdrop-filter: blur(12px) saturate(1.15);
  -webkit-backdrop-filter: blur(12px) saturate(1.15);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 4px 14px rgba(58, 48, 40, 0.14),
    0 0 0 1px rgba(255, 255, 255, 0.25) inset;
  white-space: nowrap;
  pointer-events: auto;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.sor-gallery-pills li::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, #E8C467 0%, #C9A24E 60%, #A8842E 100%);
  box-shadow: 0 0 6px rgba(201, 162, 78, 0.7);
  flex-shrink: 0;
}
.sor-gallery-pills li:hover {
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 6px 18px rgba(58, 48, 40, 0.18),
    0 0 0 1px rgba(255, 255, 255, 0.3) inset;
}
@media (max-width: 749px) {
  /* Stay overlaid on the photo, but allow wrapping so all 5 pills fit
     without being cropped. Bottom-anchored row, centered. */
  .sor-gallery-pills {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.4rem 0.4rem 0.55rem;
    gap: 0.24rem 0.22rem;
    flex-wrap: wrap !important;
    justify-content: center;
    overflow: visible;
    background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.18) 75%, rgba(0, 0, 0, 0.28) 100%);
    mask-image: none;
    -webkit-mask-image: none;
  }
  .sor-gallery-pills li {
    font-size: 0.58rem;
    padding: 0.22rem 0.46rem 0.22rem 0.42rem;
    gap: 0.22rem;
    letter-spacing: 0.01em;
    font-weight: 600;
    flex: 0 0 auto;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset, 0 2px 6px rgba(58, 48, 40, 0.18);
    background: rgba(255, 252, 246, 0.96);
  }
  .sor-gallery-pills li::before {
    width: 5px;
    height: 5px;
    box-shadow: 0 0 4px rgba(201, 162, 78, 0.6);
  }
}

/* Thumbnails — hidden from UI (still rendered in DOM for swatch JS clickthrough) */
slider-component.thumbnail-slider,
.thumbnail-slider {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  pointer-events: none;
}

/* Prev/next slider buttons centered vertically on the image — ALWAYS visible */
media-gallery { position: relative; }
media-gallery .slider-buttons,
media-gallery .slider-buttons.quick-add-hidden,
media-gallery .slider-buttons.small-hide {
  display: flex !important;
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  right: 0 !important;
  transform: translateY(-50%) !important;
  padding: 0 0.75rem !important;
  pointer-events: none !important;
  z-index: 5 !important;
  justify-content: space-between !important;
  background: transparent !important;
  border: 0 !important;
  visibility: visible !important;
}
media-gallery .slider-buttons .slider-button {
  pointer-events: auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45) !important;
  border: 0 !important;
  color: var(--sor-text) !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.7;
  transition: background 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}
media-gallery .slider-buttons .slider-button:hover:not([disabled]) {
  background: rgba(255, 255, 255, 0.95) !important;
  opacity: 1;
  transform: scale(1.06);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14);
}
media-gallery .slider-buttons .slider-button[disabled] {
  opacity: 0.3;
  cursor: not-allowed;
}
media-gallery .slider-counter { display: none !important; }
@media (max-width: 749px) {
  media-gallery .slider-buttons .slider-button {
    width: 36px;
    height: 36px;
  }
}

/* Hide the native zoom icon button on product media */
.product__media-toggle,
[data-shopify-zoom-target],
modal-opener.product__media-toggle,
.product__media-icon { display: none !important; }

/* Gallery overlay container is media-gallery itself (already position: relative) */
.product__media-wrapper { position: relative; }

/* — Urgency badge (top-left of media gallery) — */
.sor-urgency-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem 0.55rem 0.85rem;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  font-family: var(--sor-body);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--sor-text);
  box-shadow: 0 4px 14px rgba(58, 48, 40, 0.10);
  pointer-events: none;
  white-space: nowrap;
  max-width: calc(100% - 32px);
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.sor-urgency-badge__ic {
  flex-shrink: 0;
  color: #E0712D;
  shape-rendering: geometricPrecision;
  transform-origin: 50% 65%;
  animation: sor-flame-flicker 1.4s ease-in-out infinite;
  filter: drop-shadow(0 0 4px rgba(224, 113, 45, 0.55));
}
.sor-urgency-badge__txt {
  white-space: nowrap;
}
@keyframes sor-flame-flicker {
  0%, 100% {
    transform: scale(1) rotate(-1deg);
    filter: drop-shadow(0 0 3px rgba(224, 113, 45, 0.45)) brightness(1);
  }
  25% {
    transform: scale(1.08) rotate(1.5deg);
    filter: drop-shadow(0 0 6px rgba(255, 140, 60, 0.75)) brightness(1.12);
  }
  50% {
    transform: scale(0.96) rotate(-1.5deg);
    filter: drop-shadow(0 0 4px rgba(220, 100, 30, 0.55)) brightness(0.95);
  }
  75% {
    transform: scale(1.05) rotate(0.8deg);
    filter: drop-shadow(0 0 7px rgba(255, 150, 70, 0.8)) brightness(1.1);
  }
}

/* ATC button summary — append "qty poszewki · price" after the existing label
   (set via data-sor-summary by sor-qty-bundle JS on each bundle click) */
.product-form__submit[data-sor-summary]::after,
product-form button[type="submit"][data-sor-summary]::after {
  content: ' · ' attr(data-sor-summary);
  font-weight: 600;
  margin-left: 0.3rem;
  letter-spacing: 0.01em;
  opacity: 0.95;
}
@media (max-width: 480px) {
  .product-form__submit[data-sor-summary]::after,
  product-form button[type="submit"][data-sor-summary]::after {
    display: block;
    margin-left: 0;
    margin-top: 0.15rem;
    font-size: 0.85em;
  }
}

/* ═══════════════════════════════════════════════════════════════
   "X osób ogląda teraz" — subtle live counter under the stars
   ═══════════════════════════════════════════════════════════════ */
.sor-viewing {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  font-family: var(--sor-body);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--sor-text-muted);
  letter-spacing: 0.01em;
  margin: 0.35rem 0 0.3rem !important;
  line-height: 1.3;
  width: 100%;
  flex-basis: 100%;
}
.sor-viewing__line {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}
.sor-viewing__sep {
  color: var(--sor-text-muted);
  opacity: 0.55;
  font-weight: 400;
}
.sor-viewing__dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #E0712D;                                              /* orange-red = urgency / live activity */
  box-shadow: 0 0 0 0 rgba(224, 113, 45, 0.45);
  animation: sor-viewing-pulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
.sor-viewing__warn {
  color: #D4882C;                                                   /* warm amber = warning, not alarming red */
  font-weight: 600;
  flex-shrink: 0;
}
@keyframes sor-viewing-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(224, 113, 45, 0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(224, 113, 45, 0);  }
  100% { box-shadow: 0 0 0 0 rgba(224, 113, 45, 0);     }
}
.sor-viewing__txt strong { color: var(--sor-text); font-weight: 700; }
.sor-viewing__line--scarcity .sor-viewing__txt { color: #B07522; font-weight: 600; }
/* Mobile: keep both lines on a single row — tighter spacing, smaller font */
@media (max-width: 480px) {
  .sor-viewing {
    flex-wrap: nowrap;
    gap: 0.25rem 0.4rem;
    font-size: 0.74rem;
  }
  .sor-viewing__line { white-space: nowrap; }
  .sor-viewing__line--scarcity .sor-viewing__txt {
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
.product__info-container > .sor-viewing,
.product__info-container > *:has(> .sor-viewing) { margin-top: 0.35rem !important; }
/* Viewing-now dot pulse kept regardless of reduce-motion preference:
   the live indicator is a key social-proof signal; iOS Safari users
   often have "Reduce Motion" on system-wide which kills the urgency cue. */


/* ═══════════════════════════════════════════════════════════════
   PREMIUM POLISH PACK — smooth scroll, image shimmer, silk texture,
   subtle scroll-snap, custom gold cursor. Designed to feel luxurious
   without ever getting in the user's way.
   ═══════════════════════════════════════════════════════════════ */

/* 1. Smooth scroll globally (anchor links, JS scrollTo, etc.) */
html { scroll-behavior: smooth; }
/* Offset for sticky header pill so anchor links don't hide under it */
html { scroll-padding-top: 80px; }
@media (max-width: 749px) { html { scroll-padding-top: 60px; } }

/* 2. Image loading shimmer — gold gradient skeleton while images load.
   EXCLUDES logos and small UI images (which would show an unwanted
   cream rectangle behind transparent PNGs). */
@keyframes sor-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
img[loading="lazy"]:not(.loaded):not(.sor-footer-brand-img):not(.header__heading-logo):not([class*="logo"]):not([class*="icon"]) {
  background: linear-gradient(
    90deg,
    rgba(247, 242, 235, 0.6) 0%,
    rgba(201, 162, 78, 0.12) 50%,
    rgba(247, 242, 235, 0.6) 100%
  );
  background-size: 200% 100%;
  animation: sor-shimmer 1.8s linear infinite;
}
img.loaded { animation: none; background: none; }
/* Logos and brand images — never get a background, always pure transparent */
.sor-footer-brand-img,
.header__heading-logo,
img[class*="logo" i] {
  background: transparent !important;
  animation: none !important;
}

/* 3. Silk texture overlay — subtle diagonal gradient on key sections.
   Uses pure CSS (no images) so it stays light. The effect is barely
   perceptible but adds depth & premium feel. */
.sor-testimonials,
.sor-tm,
.sor-stats,
.sor-faq,
.sor-bigben,
.sor-edito {
  position: relative;
  isolation: isolate;
}
.sor-testimonials::before,
.sor-tm::before,
.sor-stats::before,
.sor-faq::before,
.sor-bigben::before,
.sor-edito::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    repeating-linear-gradient(
      120deg,
      transparent 0px,
      transparent 28px,
      rgba(201, 162, 78, 0.018) 28px,
      rgba(201, 162, 78, 0.018) 56px
    );
  pointer-events: none;
}

/* 4. Scroll-snap was removed — caused unwanted auto-scrolling in Chrome/Safari.
   The smooth scroll behavior (#1 above) is enough for elegant page navigation. */

/* 5. Custom gold cursor for interactive elements — uses inline SVG
   cursor with brand gold accent. Falls back to standard pointer. */
.sor-btn-primary,
.sor-qb__card,
.sor-faq__q,
.sor-tm__card,
.sor-benefits__card,
.sor-exp__card,
.menu-drawer__menu-item[href*="jedwabna-poszewka"],
.sor-header-cta,
.sor-sticky-atc__btn,
.sor-res__cta {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8' fill='%23C9A24E' fill-opacity='0.85' stroke='%23A8842E' stroke-width='1.5'/%3E%3C/svg%3E") 11 11, pointer;
}


   - Decorative side lines around eyebrows ("─── WYNIKI ───")
   - Card hover lift with gold-tinted shadow
   - Subtle italic accent for em in titles
   ═══════════════════════════════════════════════════════════════ */
/* Eyebrow with decorative side lines for that premium editorial feel */
.sor-eyebrow,
.sor-cmp__eyebrow,
.sor-exp__eyebrow,
.sor-res__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
}
.sor-eyebrow::before,
.sor-eyebrow::after,
.sor-cmp__eyebrow::before,
.sor-cmp__eyebrow::after,
.sor-exp__eyebrow::before,
.sor-exp__eyebrow::after,
.sor-res__eyebrow::before,
.sor-res__eyebrow::after {
  content: '';
  width: 28px;
  height: 1px;
  background: rgba(201, 162, 78, 0.5);
  display: inline-block;
}

/* Universal card hover lift — subtle premium feel */
.sor-benefits__card,
.sor-stats__card,
.sor-tm__card,
.sor-exp__card,
.sor-res__card,
.sor-bigben__item,
.sor-guar__card {
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.3s ease;
}
.sor-benefits__card:hover,
.sor-stats__card:hover,
.sor-tm__card:hover,
.sor-exp__card:hover,
.sor-res__card:hover,
.sor-bigben__item:hover,
.sor-guar__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(110, 90, 69, 0.10), 0 0 0 1px rgba(201, 162, 78, 0.15);
}

/* ═══════════════════════════════════════════════════════════════
   PREMIUM TITLE PATTERN — italic accent word in gold across all
   section titles. Just wrap a word in <em> in the title text.
   ═══════════════════════════════════════════════════════════════ */
.sor-hero__heading em,
.sor-benefits__title em,
.sor-stats__title em,
.sor-spotlight__title em,
.sor-exp__title em,
.sor-tm__title em,
.sor-how__title em,
.sor-faq__title em,
.sor-res__title em,
.sor-bigben__title em,
.sor-cmp__title em,
.sor-edito__title em,
.sor-guar__title em {
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--sor-gold-dark, #A8842E) !important;
  /* Subtle weight contrast: keep regular text bolder so italic stands out */
}

/* ═══════════════════════════════════════════════════════════════
   SEARCH MODAL — clean floating pill, NO dark overlay, NO white strip.
   Complete rebuild — strips all Dawn defaults that cause visual junk.
   ═══════════════════════════════════════════════════════════════ */
/* Kill the dark backdrop overlay entirely — it's visual noise */
details[open] .modal-overlay,
details[open] .modal-overlay::after {
  display: none !important;
  background: transparent !important;
  height: 0 !important;
}
/* Search modal container — transparent, no white strip */
.search-modal {
  opacity: 0;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: auto !important;
}
details[open] > .search-modal {
  opacity: 1;
}
/* The floating pill card — only this part is visible */
.search-modal__content {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 14px !important;
  max-width: 920px;
  margin: 0 auto;
  background: rgba(255, 252, 249, 0.96);
  backdrop-filter: blur(14px) saturate(1.08);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  border-radius: 999px;
  box-shadow: 0 6px 28px rgba(110, 90, 69, 0.12);
  border: 1px solid rgba(224, 211, 190, 0.55);
  width: calc(100% - 28px);
  position: relative;
  top: auto !important;
  bottom: auto !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1;
  gap: 8px;
}
.search-modal__form {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
}
/* Strip Dawn's .field wrapper completely — transparent, no inner card.
   The outer .search-modal__content already provides the cream pill background;
   any second cream layer here creates the visible "stacked cards" effect. */
.search-modal .field {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-height: 0 !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  position: relative;
  box-shadow: none !important;
  overflow: visible;
  outline: none !important;
}
.search-modal .field:focus-within { box-shadow: none !important; }
.search-modal .field::before,
.search-modal .field::after { display: none !important; content: none !important; }
/* The actual text input */
.search-modal .search__input,
.search-modal .field__input {
  flex: 1 1 auto !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 50px 0 18px !important;
  height: 100% !important;
  min-height: 0 !important;
  font-family: var(--sor-body, 'Lato', sans-serif) !important;
  font-size: 0.95rem !important;
  color: var(--sor-text, #3A2D1E) !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 999px !important;
}
.search-modal .search__input::placeholder,
.search-modal .field__input::placeholder {
  color: var(--sor-text-muted, #8C7A65);
  opacity: 1;
}
/* Hide the duplicate label — placeholder handles "Szukaj" on its own */
.search-modal .field__label {
  display: none !important;
}
/* Magnifying glass — flat icon inside the pill at the right, no circular border */
.search-modal .search__button,
.search-modal .field__button {
  position: absolute !important;
  right: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 50% !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  transition: color 0.18s ease, background 0.18s ease;
  min-height: 0 !important;
}
.search-modal .search__button:focus,
.search-modal .field__button:focus,
.search-modal .search__button:focus-visible,
.search-modal .field__button:focus-visible {
  outline: 0 !important;
  box-shadow: none !important;
}
.search-modal .search__button:hover,
.search-modal .field__button:hover {
  color: var(--sor-gold-dark, #A8842E) !important;
  background: rgba(201, 162, 78, 0.10) !important;
}
.search-modal .search__button svg,
.search-modal .field__button svg {
  width: 18px;
  height: 18px;
}
/* Reset button (the X to clear search) — only show when there's text */
.search-modal .reset__button {
  right: 44px !important;
}
.search-modal .reset__button.hidden,
.search-modal .field__button.hidden {
  display: none !important;
}
/* Close button (×) — slim, gold hover, sits outside the pill */
.search-modal__close-button {
  flex-shrink: 0 !important;
  position: static !important;
  margin: 0 !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  border-radius: 50%;
  transition: color 0.18s ease, background 0.18s ease;
}
.search-modal__close-button:hover {
  color: var(--sor-gold-dark, #A8842E) !important;
  background: rgba(201, 162, 78, 0.10) !important;
}
.search-modal__close-button svg {
  width: 18px;
  height: 18px;
}
/* Predictive search dropdown — match brand */
.predictive-search {
  border-radius: 12px !important;
  border: 1px solid var(--sor-border, #E0D3BE) !important;
  box-shadow: 0 12px 36px rgba(110, 90, 69, 0.15) !important;
  margin-top: 8px !important;
  background: rgba(255, 252, 249, 0.98) !important;
  backdrop-filter: blur(12px) saturate(1.05);
  -webkit-backdrop-filter: blur(12px) saturate(1.05);
}
@media (max-width: 749px) {
  .search-modal__content {
    padding: 8px 12px !important;
    width: calc(100% - 24px);
    gap: 6px;
  }
  .search-modal .field {
    height: 40px !important;
  }
  .search-modal .search__input,
  .search-modal .field__input {
    padding: 0 44px 0 16px !important;
    font-size: 0.92rem !important;
  }
  .search-modal__close-button {
    width: 36px !important;
    height: 36px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE HEADER — slim pill, icons grouped on the right
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 749px) {
  /* Logo — sized to fit the slim mobile pill (more prominent than before) */
  .header__heading-logo-wrapper .header__heading-logo,
  .header__heading-logo {
    max-height: 38px !important;
    width: auto !important;
  }
  /* Group icons (search, bell, cart) on the right with tighter spacing */
  .header .header__icons {
    margin-left: auto !important;
    gap: 0.1rem !important;
  }
  /* Hamburger stays at far left (drawer summary) */
  .header header-drawer,
  .header menu-drawer {
    flex-shrink: 0;
  }
  /* Logo wrapper: don't take up the whole row, let icons sit right */
  .header .header__heading,
  .header .header__heading-link {
    margin-right: auto !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   HAMBURGER MENU — refined hierarchy:
   - Plain links (home, FAQ, contact) with subtle hover
   - One single gold CTA for the MAIN product (silk pillowcase)
   - Other product links (ebook, etc.) styled as plain links
   ═══════════════════════════════════════════════════════════════ */
.menu-drawer__navigation { padding: 1rem 0 0.5rem !important; }

/* Reset all menu items to a clean refined look */
.menu-drawer__menu .menu-drawer__menu-item {
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  font-size: 0.98rem !important;
  font-weight: 500 !important;
  color: var(--sor-text, #3A2D1E) !important;
  padding: 0.75rem 1.5rem !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  transition: color 0.18s ease, background 0.18s ease !important;
  text-decoration: none !important;
}
.menu-drawer__menu .menu-drawer__menu-item:hover,
.menu-drawer__menu .menu-drawer__menu-item:focus-visible {
  color: var(--sor-gold-dark, #A8842E) !important;
  background: rgba(201, 162, 78, 0.06) !important;
}

/* Subtle dividers between menu items */
.menu-drawer__menu > li + li { border-top: 1px solid rgba(224, 211, 190, 0.45); }

/* Home link — subtle gold accent */
.sor-drawer-home {
  color: var(--sor-text, #3A2D1E) !important;
  font-weight: 600 !important;
}
/* Drawer order (Sor custom): make the menu list flex so we can reorder items.
   IMPORTANT: every li needs an explicit order, otherwise unstyled items default
   to order:0 and jump to the top (this caused Magazyn to appear first). */
.menu-drawer__menu { display: flex; flex-direction: column; }
.menu-drawer__menu > li { order: 99; }                                                        /* default for any unstyled li */
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="jedwabna-poszewka"]) { order: 1; }
.menu-drawer__menu > li:has(.sor-drawer-home)  { order: 2; }
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="joga-twarzy"]) { order: 3; }
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="najczesciej-zadawane-pytania"]),
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="/faq"]) { order: 4; }
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="kontakt"]) { order: 5; }
.menu-drawer__menu > li:has(.sor-drawer-magazyn) { order: 6; }                                /* secondary link */
.menu-drawer__menu > li:has(.sor-drawer-track) { order: 7; }                                  /* secondary link */
/* Track-order link in drawer — only visible on mobile (desktop already has it in header pill) */
.sor-drawer-track {
  display: flex !important;
  align-items: center;
  gap: 0.55rem;
  color: var(--sor-text-muted, #8C7A65) !important;
  font-weight: 500 !important;
  font-size: 0.92rem !important;
}
.sor-drawer-track__ic { color: var(--sor-gold-dark, #A8842E); flex-shrink: 0; }
.sor-drawer-track:hover { color: var(--sor-gold-dark, #A8842E) !important; }
@media (min-width: 990px) {
  /* Hide the drawer track link on desktop — header pill already shows it */
  .sor-drawer-track-li { display: none !important; }
}

/* MAIN product CTA — only the silk pillowcase gets the gold pill treatment.
   Extra specificity (.menu-drawer parent) to beat the generic typo rule
   defined later in the file with its own !important. */
.menu-drawer .menu-drawer__menu .menu-drawer__menu-item[href*="jedwabna-poszewka"],
.menu-drawer .menu-drawer__menu .menu-drawer__menu-item.link[href*="jedwabna-poszewka"] {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%) !important;
  color: #FFFDF8 !important;
  font-family: var(--sor-body, 'Lato', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.03em !important;
  padding: 0.85rem 1.25rem !important;
  border-radius: 999px !important;
  margin: 0.85rem 1.25rem !important;
  text-align: center;
  text-decoration: none !important;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18);
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
  line-height: 1.25 !important;
}
.menu-drawer .menu-drawer__menu .menu-drawer__menu-item[href*="jedwabna-poszewka"]:hover,
.menu-drawer .menu-drawer__menu .menu-drawer__menu-item.link[href*="jedwabna-poszewka"]:hover {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%) !important;
  color: #FFFDF8 !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}
.menu-drawer .menu-drawer__menu .menu-drawer__menu-item[href*="jedwabna-poszewka"]::after {
  content: '→';
  font-size: 1.05rem;
  font-weight: 400;
  margin-left: 0.15rem;
  color: #FFFDF8 !important;
}
/* The product link's <li> sits outside the divider scheme */
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="jedwabna-poszewka"]) {
  border-top: 0 !important;
}
.menu-drawer__menu > li:has(.menu-drawer__menu-item[href*="jedwabna-poszewka"]) + li {
  border-top: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   CONTACT FORM — compact, branded, aligned with page content width.
   Targets Shopify's default contact-form section so it matches the
   rich-text content above (max-width 720px, smaller padding).
   ═══════════════════════════════════════════════════════════════ */
.contact.page-width--narrow {
  max-width: 720px !important;
}
.contact__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  align-items: start;
}
.contact__fields > .field {
  margin: 0 !important;
  align-self: start;
  flex-wrap: nowrap !important;
}
/* Hide the inline error helper when empty so it doesn't push the field down */
.contact .contact__field-error:empty { display: none !important; }
.contact .contact__field-error { margin-top: 0.35rem; font-size: 0.78rem; color: #B85B5B; }
/* Top spacing for fields OUTSIDE the 2-col grid (phone, textarea).
   Scoped via :not() so it never hits fields inside .contact__fields, regardless of error state. */
.contact .field:not(.contact__fields .field) {
  margin: 0.85rem 0 0 !important;
}
.contact .field {
  min-height: 56px !important;
  height: 56px !important;
  border-radius: 10px !important;
  border: 1px solid var(--sor-border, #E0D3BE) !important;
  background: #FFFCF9 !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
  display: flex;
  align-items: stretch;
}
/* Textarea is the exception — must grow */
.contact .field:has(textarea.text-area) {
  height: auto !important;
  min-height: 130px !important;
}
.contact .field:focus-within {
  border-color: var(--sor-gold, #C9A24E) !important;
  box-shadow: 0 0 0 3px rgba(201, 162, 78, 0.12) !important;
}
.contact .field__input,
.contact textarea.text-area {
  padding: 1.4rem 1rem 0.4rem !important;
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  font-size: 0.95rem !important;
  color: var(--sor-text, #3A2D1E) !important;
  background: transparent !important;
  border: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  width: 100% !important;
  outline: none !important;
  box-shadow: none !important;
}
.contact .field:has(textarea.text-area) textarea.text-area {
  padding: 1.6rem 1rem 0.6rem !important;
  height: auto !important;
}
.contact .field__label {
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  font-size: 0.95rem !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  left: 1rem !important;
  top: 1.05rem !important;
}
/* Float label up when field is filled or focused */
.contact .field__input:focus + .field__label,
.contact .field__input:not(:placeholder-shown) + .field__label,
.contact textarea.text-area:focus + .field__label,
.contact textarea.text-area:not(:placeholder-shown) + .field__label {
  font-size: 0.72rem !important;
  top: 0.4rem !important;
  color: var(--sor-gold-dark, #A8842E) !important;
}
.contact textarea.text-area {
  min-height: 130px !important;
  resize: vertical;
}
/* Submit button — branded gold pill (override Dawn's double-border pseudo elements) */
.contact__button .button,
.contact__button button[type="submit"] {
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  background: var(--sor-gold, #C9A24E) !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 999px !important;
  padding: 0.95rem 2rem !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.03em !important;
  border: 0 !important;
  box-shadow: 0 4px 16px rgba(201, 162, 78, 0.18) !important;
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
  min-width: 200px;
  position: relative;
}
/* Kill Dawn's double-border pseudo-elements that draw a black box around the button */
.contact__button .button::before,
.contact__button .button::after,
.contact__button button[type="submit"]::before,
.contact__button button[type="submit"]::after {
  display: none !important;
  content: none !important;
  box-shadow: none !important;
  border: 0 !important;
}
.contact__button .button:hover,
.contact__button button[type="submit"]:hover {
  background: var(--sor-gold-dark, #A8842E) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(201, 162, 78, 0.24) !important;
}
.contact__button .button:focus-visible,
.contact__button button[type="submit"]:focus-visible {
  outline: 2px solid var(--sor-gold-dark, #A8842E) !important;
  outline-offset: 3px !important;
}
.contact__button { text-align: center; margin-top: 1.25rem !important; }
/* Mobile: stack the name + email row */
@media (max-width: 600px) {
  .contact__fields { grid-template-columns: 1fr; gap: 0.7rem; }
  .contact .field__input,
  .contact textarea.text-area { padding: 0.85rem 0.9rem !important; font-size: 0.92rem !important; }
  .contact .field__label { left: 0.9rem !important; top: 0.9rem !important; font-size: 0.92rem !important; }
}

/* ═══════════════════════════════════════════════════════════════
   TRUST BLOCK — consolidated single card under the ATC button.
   Rendered by snippets/sor-trust-block.liquid on product.json
   (default silk variant) and product.ebook.json (ebook variant).
   ═══════════════════════════════════════════════════════════════ */
.sor-trust {
  background: linear-gradient(180deg, rgba(255, 252, 248, 0.9), rgba(252, 248, 240, 0.6));
  border: 1px solid var(--sor-border, #E0D3BE);
  border-radius: 14px;
  padding: 1rem 1.1rem;
  box-shadow: 0 2px 12px rgba(110, 90, 69, 0.04);
}
/* Sit close to the ATC — small breathing room only */
.product__info-container > .sor-trust,
.product__info-container > *:has(> .sor-trust) { margin-top: 0.7rem !important; }

.sor-trust__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
}
.sor-trust__item {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}
.sor-trust__ic {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(201, 162, 78, 0.10);
  color: var(--sor-gold-dark, #A8842E);
}
.sor-trust__txt {
  display: flex;
  flex-direction: column;
  gap: 1px;
  line-height: 1.25;
}
.sor-trust__t {
  font-family: var(--sor-body);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--sor-text, #3A2D1E);
}
.sor-trust__s {
  font-family: var(--sor-body);
  font-size: 0.76rem;
  font-weight: 400;
  color: var(--sor-text-muted, #8C7A65);
}
.sor-trust__pay {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(224, 211, 190, 0.55);
}
.sor-trust__pay-label {
  font-family: var(--sor-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sor-text-muted, #8C7A65);
  white-space: nowrap;
  flex-shrink: 0;
}
.sor-trust__pay-img {
  height: 22px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  flex: 1 1 auto;
}
.sor-trust__pay-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex: 1 1 auto;
  flex-wrap: wrap;
}
.sor-trust__pay-item {
  display: inline-flex;
  align-items: center;
  height: 28px;
  flex-shrink: 0;
}
.sor-trust__pay-item svg {
  height: 28px;
  width: auto;
  display: block;
}
@media (max-width: 749px) {
  .sor-trust { padding: 0.85rem 0.9rem; border-radius: 12px; }
  .sor-trust__grid { gap: 0.65rem 0.7rem; }
  .sor-trust__ic { width: 28px; height: 28px; }
  .sor-trust__ic svg { width: 17px; height: 17px; }
  .sor-trust__t { font-size: 0.8rem; }
  .sor-trust__s { font-size: 0.7rem; }
  /* Mobile: "AKCEPTUJEMY" label sits ON the separator line (fieldset-legend style),
     freeing the row below for ALL 5 payment icons in a single line. */
  .sor-trust__pay {
    flex-direction: column;
    align-items: stretch;
    position: relative;
    gap: 0.4rem;
    margin-top: 1.1rem;
    padding-top: 1.05rem;
  }
  .sor-trust__pay-label {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #FBF6EB;
    padding: 0.05rem 0.55rem;
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    line-height: 1.4;
    border-radius: 4px;
  }
  .sor-trust__pay-img { height: 19px; }
  .sor-trust__pay-list {
    width: 100%;
    gap: 0.45rem;
    justify-content: space-between;
    flex-wrap: nowrap;
  }
  .sor-trust__pay-item,
  .sor-trust__pay-item svg {
    height: 20px;
    max-width: 100%;
  }
  .sor-trust__pay-item { flex: 1 1 0; justify-content: center; min-width: 0; }
  .sor-trust__pay-item svg { width: 100%; }
}
@media (max-width: 380px) {
  .sor-trust__pay-list { gap: 0.3rem; }
  .sor-trust__pay-item, .sor-trust__pay-item svg { height: 18px; }
}

/* ═══════════════════════════════════════════════════════════════
   STICKY ATC PILL — floating pill (mobile + desktop), mirrors header design
   Slides up from the bottom after the user scrolls past the real ATC button.
   ═══════════════════════════════════════════════════════════════ */
.sor-sticky-atc {
  position: fixed !important;
  left: 50% !important;
  bottom: 14px !important;
  top: auto !important;
  right: auto !important;
  transform: translateX(-50%) translateY(140%);
  z-index: 9999 !important;
  width: calc(100% - 28px);
  max-width: 720px;
  background: rgba(255, 252, 249, 0.92);
  backdrop-filter: blur(14px) saturate(1.08);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  border-radius: 999px;
  box-shadow: 0 6px 32px rgba(110, 90, 69, 0.18);
  border: 1px solid rgba(224, 211, 190, 0.55);
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.24s ease;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  contain: layout;
}
/* Respect the `hidden` HTML attribute — JS toggles it for true hide */
.sor-sticky-atc[hidden] { display: none !important; }
.sor-sticky-atc.is-visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
.sor-sticky-atc__inner {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.4rem 0.4rem 0.4rem 0.55rem;
  margin: 0;
}
.sor-sticky-atc__img {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--sor-beige-warm, #F7F2EB);
  border: 1px solid rgba(224, 211, 190, 0.6);
}
.sor-sticky-atc__txt {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  line-height: 1.15;
  padding: 0 0.2rem;
}
.sor-sticky-atc__qty {
  font-family: var(--sor-body);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--sor-text-muted);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sor-sticky-atc__price {
  font-family: var(--sor-body);
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--sor-gold-dark, #A8842E);
  letter-spacing: 0;
}
.sor-sticky-atc__btn {
  flex-shrink: 0;
  padding: 0.7rem 1.3rem;
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%);
  color: #fff;
  border: 0;
  border-radius: 999px;
  font-family: var(--sor-body);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: none;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 6px 22px rgba(168, 132, 46, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18);
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.sor-sticky-atc__btn:hover,
.sor-sticky-atc__btn:focus-visible {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%);
  transform: translateY(-1px);
  box-shadow: 0 9px 28px rgba(168, 132, 46, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
/* Desktop: a touch more horizontal padding so the pill feels balanced */
@media (min-width: 750px) {
  .sor-sticky-atc__inner { padding: 0.5rem 0.5rem 0.5rem 0.7rem; gap: 0.85rem; }
  .sor-sticky-atc__img { width: 48px; height: 48px; }
  .sor-sticky-atc__btn { padding: 0.8rem 1.55rem; font-size: 0.95rem; }
}
@media (max-width: 380px) {
  .sor-sticky-atc__inner { gap: 0.5rem; padding: 0.35rem 0.4rem 0.35rem 0.5rem; }
  .sor-sticky-atc__img { width: 40px; height: 40px; }
  .sor-sticky-atc__qty { font-size: 0.68rem; }
  .sor-sticky-atc__price { font-size: 0.95rem; }
  .sor-sticky-atc__btn { font-size: 0.82rem; padding: 0.6rem 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .sor-sticky-atc { transition: opacity 0.18s ease; }
}

/* Reserve scroll-end padding so footer content isn't blocked by the floating pill */
body:has([data-sor-sticky-atc]) #MainContent {
  padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
}

/* W promocji — green sale badge floating top-right of product gallery */
.sor-promo-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.95rem 0.5rem 0.85rem;
  background: rgba(61, 107, 79, 0.94);
  color: #fff;
  font-family: var(--sor-body);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(58, 48, 40, 0.18);
  pointer-events: none;
  line-height: 1;
}
.sor-promo-badge__dot {
  position: relative;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
}
/* "Live" indicator — expanding ring outward, like Twitch/Instagram Live */
.sor-promo-badge__dot::before,
.sor-promo-badge__dot::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.9);
  animation: sor-promo-ripple 1.8s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}
.sor-promo-badge__dot::after {
  animation-delay: 0.9s;
}
@keyframes sor-promo-ripple {
  0%   { transform: scale(1);   opacity: 0.9; }
  100% { transform: scale(3);   opacity: 0;   }
}
/* Subtle base pulse on the central dot itself */
.sor-promo-badge__dot {
  animation: sor-promo-corepulse 1.8s ease-in-out infinite;
}
@keyframes sor-promo-corepulse {
  0%, 100% { background: #fff; }
  50%      { background: rgba(255, 255, 255, 0.7); }
}
/* Promo badge animations kept even with reduce-motion preference:
   they're subtle (small pulsing dot) and critical for surfacing the sale signal
   on iOS Safari, where the system "Reduce Motion" toggle is often left on. */
@media (max-width: 749px) {
  .sor-promo-badge {
    top: 12px;
    right: 12px;
    font-size: 0.72rem;
    padding: 0.4rem 0.75rem 0.4rem 0.65rem;
    gap: 0.38rem;
  }
  .sor-promo-badge__dot { width: 6px; height: 6px; }
}

@media (max-width: 749px) {
  .sor-urgency-badge {
    top: 12px;
    left: 12px;
    font-size: 0.85rem;
    padding: 0.45rem 0.85rem 0.45rem 0.7rem;
    gap: 0.4rem;
  }
  .sor-urgency-badge__ic {
    width: 16px;
    height: 16px;
  }
  media-gallery .slider-buttons .slider-button {
    width: 36px;
    height: 36px;
  }
}

/* Sharp crisp arrow icons (override Dawn's default) */
media-gallery .slider-buttons .slider-button svg,
media-gallery .slider-buttons .slider-button .svg-wrapper svg {
  width: 14px !important;
  height: 14px !important;
  display: block;
  shape-rendering: geometricPrecision;
  image-rendering: -webkit-optimize-contrast;
}
media-gallery .slider-buttons .slider-button {
  filter: none !important;
  -webkit-font-smoothing: antialiased;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ═══════════════════════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY REFACTOR — Soraliana premium ecommerce scale
   Mobile-first clamp() values · readable, breathable, luxurious
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  /* Type scale — final dialed-back per spec
     Desktop: hero 42-56 / product title 34-40 / sections 28-36 / body 15-17 / small 12-14 / footer 12-13
     Mobile:  hero 30-38 / product title 26-30 / sections 22-28 / body 14.5-16 / small 12-13 / footer 11.5-12.5 */
  --sor-fs-hero:    clamp(1.875rem, 4.6vw, 3.5rem);    /* 30-56px */
  --sor-fs-h2:      clamp(1.375rem, 2.6vw, 2.25rem);   /* 22-36px */
  --sor-fs-h3:      clamp(1.2rem, 2vw, 1.6rem);        /* 19-26px */
  --sor-fs-h4:      clamp(1.05rem, 1.3vw, 1.25rem);    /* 17-20px */
  --sor-fs-lead:    clamp(1rem, 1.2vw, 1.18rem);       /* 16-19px */
  --sor-fs-body:    clamp(0.91rem, 1.05vw, 1.0625rem); /* 14.5-17px */
  --sor-fs-small:   clamp(0.78rem, 0.85vw, 0.875rem);  /* 12.5-14px */
  --sor-fs-micro:   clamp(0.72rem, 0.78vw, 0.81rem);   /* 11.5-13px */
  --sor-fs-button:  clamp(1rem, 1.18vw, 1.125rem);     /* 16-18px */
}

/* — Dawn font-scale override (Dawn multiplies most text by --font-body-scale) — */
body {
  font-size: var(--sor-fs-body) !important;
  line-height: 1.6;
}

/* — Heading scale — */
h1, .h1 { font-size: var(--sor-fs-hero); line-height: 1.1; }
h2, .h2 { font-size: var(--sor-fs-h2); line-height: 1.2; }
h3, .h3 { font-size: var(--sor-fs-h3); line-height: 1.3; }
h4, .h4 { font-size: var(--sor-fs-h4); line-height: 1.35; }

/* — Paragraphs / generic body — */
p, li, dd, dt, blockquote, .rte, .rte p, .product__description,
.product-info p, .product-info li {
  font-size: var(--sor-fs-body);
  line-height: 1.62;
}

/* ═══════════════════════════════════════════════════════════════
   POLICY / PAGE content (/policies/* + /pages/*) — better breathing
   The legal pages were cramped: tight lines, no paragraph spacing.
   ═══════════════════════════════════════════════════════════════ */
.page-width--narrow .rte {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  color: #4A3D2E;
}
.page-width--narrow .rte p {
  margin: 0 0 1.25rem;
  line-height: 1.85;                       /* airy — easy to read legal text */
  font-size: 0.98rem;
}
.page-width--narrow .rte p:last-child { margin-bottom: 0; }
/* First <p> often a heading-like label (e.g. "SORALIANA", "POLITYKA...") */
.page-width--narrow .rte p strong,
.page-width--narrow .rte strong {
  color: #3A2D1E;
  font-weight: 700;
}
.page-width--narrow .rte h2,
.page-width--narrow .rte h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
  color: #3A2D1E;
  margin: 2rem 0 0.75rem;
  line-height: 1.3;
}
.page-width--narrow .rte ul,
.page-width--narrow .rte ol {
  margin: 0 0 1.25rem;
  padding-left: 1.4rem;
  line-height: 1.8;
}
.page-width--narrow .rte li { margin-bottom: 0.4rem; }
.page-width--narrow .rte a {
  color: var(--sor-gold-dark, #A8842E);
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* The big H1 title on policy pages — slightly calmer + more space below */
.page-width--narrow .main-page-title {
  margin-bottom: 2.25rem !important;
}
@media (max-width: 749px) {
  .page-width--narrow .rte p {
    font-size: 0.92rem;
    line-height: 1.75;
    margin-bottom: 1.1rem;
  }
  .page-width--narrow .main-page-title {
    margin-bottom: 1.6rem !important;
  }
}

/* — Product page critical elements — */
.product__title h1,
.product__title .h1 {
  font-size: clamp(2.125rem, 3.3vw, 2.5rem) !important; /* 34-40px desktop (per spec) */
  font-weight: 500 !important;
  line-height: 1.15 !important;
  margin: 0.15rem 0 0 !important;
}
.product__title { margin: 0 !important; }
@media (max-width: 749px) {
  .product__title h1,
  .product__title .h1 {
    font-size: clamp(1.625rem, 6.8vw, 1.875rem) !important; /* 26-30px mobile (per spec) */
    line-height: 1.18 !important;
  }
}

.product__text.caption-with-letter-spacing {
  font-size: 0.85rem !important;
  letter-spacing: 0.16em !important;
}

.product .price__regular .price-item--regular,
.product .price__sale .price-item--sale {
  font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important; /* 24-30px */
  font-weight: 700 !important;
}
.product .price__sale .price-item--regular,
.product .price s.price-item--regular {
  font-size: clamp(1.05rem, 1.25vw, 1.2rem) !important; /* 17-19px */
}

/* — Buttons (all, EXCEPT product ATC which has its own bigger size) — */
.button:not(.product-form__submit), button.button:not(.product-form__submit), .sor-btn-primary {
  font-size: var(--sor-fs-button) !important;
  letter-spacing: 0.02em;
}

/* — Stars rating row — */
.sor-product-stars {
  font-size: var(--sor-fs-small) !important; /* 14.4-16px */
  margin: 6px 0 10px !important;
}

/* — Inline color picker label — */
.sor-cp-inline__label {
  font-size: 0.95rem !important;
  letter-spacing: 0.01em;
}

/* — Qty bundle cards — */
.sor-qb__qty   { font-size: 0.95rem !important; }
.sor-qb__total { font-size: 1.1rem !important; }
.sor-qb__tag   { font-size: 0.78rem !important; letter-spacing: 0.08em; }
.sor-qb__badge { font-size: 0.7rem !important; padding: 3px 8px; }
@media (max-width: 749px) {
  .sor-qb__qty   { font-size: 0.85rem !important; }
  .sor-qb__total { font-size: 1rem !important; }
  .sor-qb__tag   { font-size: 0.65rem !important; }
}

/* — Urgency lines — */
.sor-urgency__line { font-size: var(--sor-fs-body) !important; }
@media (max-width: 749px) {
  .sor-urgency__line { font-size: 1rem !important; }
}

/* — Vendor caption — */
.product__text {
  font-size: 0.85rem !important;
  letter-spacing: 0.18em !important;
}

/* — Announcement bar font sizes now live in section stylesheet — */

/* — Footer — */
.sor-footer-tagline   { font-size: var(--sor-fs-body) !important; line-height: 1.6; }
.sor-footer-h4        { font-size: 0.95rem !important; letter-spacing: 0.1em; }
.sor-footer-links a   { font-size: 1rem !important; }
.sor-footer-email     { font-size: 1.1rem !important; }
.sor-footer-hours     { font-size: 0.95rem !important; }
/* Visual gap between the links list and the contact block when both share a column */
.sor-footer-links + .sor-footer-contact { margin-top: 1.5rem; }
.sor-footer-bot__copy { font-size: 0.92rem !important; }
.sor-footer-bot__country { font-size: 0.92rem !important; }
.sor-footer-bot__pay-label { font-size: 0.82rem !important; }
.sor-footer-bot__legal {
  font-size: 0.78rem !important;       /* ~12.5px */
  font-weight: 400 !important;
  color: rgba(58, 48, 40, 0.58) !important;
  line-height: 1.7;
  letter-spacing: 0.01em;
}
.sor-footer-bot__legal a {
  color: rgba(58, 48, 40, 0.58) !important;
  font-weight: 400 !important;
  transition: color 0.18s ease;
}
.sor-footer-bot__legal a:hover {
  color: rgba(58, 48, 40, 0.85) !important;
}
.sor-footer-bot__legal li + li::before {
  margin: 0 0.4rem !important;
  color: rgba(58, 48, 40, 0.35) !important;
}
.sor-footer-bot__disclaimer { font-size: 0.8rem !important; line-height: 1.55; }

/* — FAQ — */
.sor-faq summary,
.sor-faq__q,
.sor-faq__question {
  font-size: var(--sor-fs-lead) !important; /* 18-21px */
  line-height: 1.4 !important;
}
.sor-faq .answer,
.sor-faq__a,
.sor-faq__answer,
.sor-faq summary + div,
.sor-faq summary + div p {
  font-size: var(--sor-fs-body) !important;
  line-height: 1.65 !important;
}

/* — Testimonials reviews — */
.sor-tm__quote,
.sor-tm__card blockquote {
  font-size: clamp(1rem, 1.15vw, 1.15rem) !important;
  line-height: 1.6 !important;
}
.sor-tm__name { font-size: 0.95rem !important; }

/* — Product tabs — */
.sor-tabs__btn { font-size: var(--sor-fs-body) !important; }
.sor-tabs__panel,
.sor-tabs__panel p,
.sor-tabs__panel li {
  font-size: var(--sor-fs-body) !important;
  line-height: 1.65 !important;
}

/* — Expert section — */
.sor-exp__name  { font-size: 0.88rem !important; letter-spacing: 0.06em; }
.sor-exp__quote { font-size: var(--sor-fs-body) !important; line-height: 1.6 !important; }

/* — Comparison table — */
.sor-cmp__row-label { font-size: 0.92rem !important; letter-spacing: 0.05em; }
.sor-cmp__cell      { font-size: var(--sor-fs-body) !important; line-height: 1.5 !important; }
.sor-cmp__col-name  { font-size: var(--sor-fs-lead) !important; }
@media (max-width: 749px) {
  .sor-cmp__row-label { font-size: 0.85rem !important; }
  .sor-cmp__cell      { font-size: 0.92rem !important; }
}

/* — Section headers (Sor sections) — */
.sor-eyebrow {
  font-size: 0.85rem !important;
  letter-spacing: 0.2em !important;
}
.sor-stats__num { font-size: clamp(2.6rem, 5vw, 4.2rem) !important; }
.sor-stats__lbl { font-size: var(--sor-fs-body) !important; line-height: 1.45; }

/* — Header menu items — */
.header__menu-item {
  font-size: 1.05rem !important; /* 16.8px */
}

/* — Header CTA button (primary conversion) — */
.sor-header-cta {
  font-size: 1.02rem !important;
}

/* — Track order link (secondary, discreet next to search) — */
.sor-header-track { font-size: 0.78rem !important; }

/* — Cart bubble count — */
.cart-count-bubble { font-size: 0.78rem !important; }

/* — Related products / card names — */
.card__heading, .card__heading a,
.card-information__text {
  font-size: var(--sor-fs-body) !important;
}
.price__container .price-item {
  font-size: var(--sor-fs-body) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PREMIUM SCROLL REVEAL — opacity + translateY, GPU only
   Driven by sor-reveal.js (IntersectionObserver)
   ═══════════════════════════════════════════════════════════════ */
.sor-reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.85s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.85s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.sor-reveal--left  { transform: translate3d(-26px, 0, 0); }
.sor-reveal--right { transform: translate3d(26px, 0, 0); }
.sor-reveal--scale { transform: scale(0.96); }

.sor-reveal-delay-1 { transition-delay: 0.08s; }
.sor-reveal-delay-2 { transition-delay: 0.16s; }
.sor-reveal-delay-3 { transition-delay: 0.24s; }
.sor-reveal-delay-4 { transition-delay: 0.32s; }
.sor-reveal-delay-5 { transition-delay: 0.40s; }

.sor-reveal.is-in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* Reveal animations are KEPT for all users — the 22px translate is very gentle
   (well within accessibility guidelines). They're essential to the brand
   experience and play a role in scrollability/discoverability. */

/* ── Premium hover micro-interactions ── */
/* Buttons subtle lift */
.sor-btn-primary,
.sor-btn-secondary,
.sor-btn-ghost {
  transition: transform 0.25s cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 0.25s ease,
              background 0.25s ease;
}
.sor-btn-primary:hover  { transform: translateY(-1px); }
.sor-btn-secondary:hover { transform: translateY(-1px); }

/* Card-like containers: subtle shadow increase + tiny lift on hover */
.sor-tm__card,
.sor-exp__card,
.sor-how__step,
.sor-bigben__t-card,
.sor-faq__item,
.sor-guar__card {
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 0.32s ease;
}
.sor-tm__card:hover,
.sor-exp__card:hover,
.sor-how__step:hover,
.sor-bigben__t-card:hover,
.sor-faq__item:hover,
.sor-guar__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 38px rgba(58, 48, 40, 0.10);
}

/* Image cards: tiny zoom on hover (editorial feel) */
.sor-how__media img,
.sor-exp__avatar img,
.sor-bigben__media img,
.card__media img {
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.sor-how__media:hover img,
.sor-bigben__media:hover img,
.card__media:hover img,
.card:hover .card__media img {
  transform: scale(1.04);
}

/* Editorial banner: very subtle slow zoom (lifestyle / parallax-lite) */
.sor-edito__img {
  transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.sor-edito__wrap:hover .sor-edito__img {
  transform: scale(1.02);
}

/* Disable hover effects on touch (no-hover devices) */
@media (hover: none) {
  .sor-tm__card:hover,
  .sor-exp__card:hover,
  .sor-how__step:hover,
  .sor-bigben__t-card:hover,
  .sor-faq__item:hover,
  .sor-guar__card:hover {
    transform: none;
    box-shadow: inherit;
  }
  .sor-edito__wrap:hover .sor-edito__img,
  .card:hover .card__media img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sor-btn-primary, .sor-btn-secondary, .sor-btn-ghost,
  .sor-tm__card, .sor-exp__card, .sor-how__step,
  .sor-bigben__t-card, .sor-faq__item, .sor-guar__card,
  .sor-how__media img, .sor-exp__avatar img, .sor-bigben__media img,
  .card__media img, .sor-edito__img {
    transition: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   NUCLEAR TYPOGRAPHY MINIMUMS — last in file, wins all
   Forces minimum readable sizes on every visible text element
   ═══════════════════════════════════════════════════════════════ */

/* ─── BODY BASELINE — html 16px (browser default), body 16px ─── */
html { font-size: 16px; }
body, .product, .product__info-container, main, .shopify-section {
  font-size: 1rem;
  line-height: 1.6;
}

/* ─── PRODUCT PAGE COLUMN ─── */
.sor-product-stars,
.sor-product-stars * { font-size: 0.92rem !important; }      /* ~14.7px */
.sor-product-stars__svgs svg { width: 15px !important; height: 15px !important; }

.sor-cp-inline__label { font-size: 0.92rem !important; }     /* 14.7px */
.sor-cp-inline__label strong { font-size: 0.92rem !important; }

/* Qty bundle */
.sor-qb__qty    { font-size: 0.94rem !important; }            /* 15px */
.sor-qb__total  { font-size: 1.35rem !important; font-weight: 800 !important; } /* 21.6px — bigger for emphasis */
.sor-qb__strike { font-size: 0.78rem !important; opacity: 0.55 !important; }   /* subtle */
.sor-qb__per    { font-size: 0.72rem !important; }
.sor-qb__tag    { font-size: 0.78rem !important; }            /* 12.5px */
.sor-qb__badge  { font-size: 0.78rem !important; padding: 3px 9px !important; } /* 12.5px */
.sor-qb__save   { font-size: 0.85rem !important; }            /* 13.6px */
@media (max-width: 749px) {
  .sor-qb__qty    { font-size: 0.85rem !important; }
  .sor-qb__total  { font-size: 1.18rem !important; }
  .sor-qb__strike { font-size: 0.7rem !important; }
  .sor-qb__per    { font-size: 0.64rem !important; }
  .sor-qb__tag    { font-size: 0.7rem !important; }
  .sor-qb__badge  { font-size: 0.7rem !important; padding: 2.5px 7px !important; }
  .sor-qb__save   { font-size: 0.76rem !important; }
}

/* Ebook gift */
.sor-qb-ebook__txt { font-size: 0.94rem !important; }
.sor-qb-ebook__ic  { font-size: 1.2rem !important; }

/* Savings under price */
.sor-savings-line { font-size: 1.08rem !important; }          /* 17.3px — important conversion lever */
.sor-savings-line__badge { font-size: 0.88rem !important; padding: 0.3rem 0.7rem !important; }

/* Urgency badge on image */
.sor-urgency-badge { font-size: 0.85rem !important; padding: 0.45rem 0.85rem 0.45rem 0.75rem !important; }
.sor-urgency-badge__ic { width: 16px !important; height: 16px !important; }
@media (max-width: 749px) {
  .sor-urgency-badge { font-size: 0.78rem !important; padding: 0.38rem 0.7rem 0.38rem 0.6rem !important; }
  .sor-urgency-badge__ic { width: 14px !important; height: 14px !important; }
}

/* Gallery overlay pills */
.sor-gallery-pills li { font-size: 0.8rem !important; padding: 0.4rem 0.85rem !important; }
@media (max-width: 749px) {
  /* Smaller pills so the 5 fit on 2 lines instead of 3 */
  .sor-gallery-pills li { font-size: 0.58rem !important; padding: 0.22rem 0.46rem !important; }
}

/* ─── SECTION HEADERS + EYEBROW ─── */
.sor-eyebrow { font-size: 0.78rem !important; letter-spacing: 0.2em !important; }
.sor-bigben__title, .sor-stats__heading, .sor-tm__heading, .sor-tm__title,
.sor-faq__heading, .sor-cmp__title, .sor-how__title, .sor-exp__title, .sor-res__title {
  font-size: clamp(1.375rem, 2.6vw, 2.25rem) !important;     /* 22-36px (per spec) */
  line-height: 1.18 !important;
}

/* Stats */
.sor-stats__num { font-size: clamp(2.5rem, 4.6vw, 3.75rem) !important; }
.sor-stats__lbl { font-size: 0.92rem !important; line-height: 1.45 !important; }

/* Testimonials */
.sor-tm__quote, .sor-tm__card blockquote { font-size: 0.98rem !important; line-height: 1.55 !important; }
.sor-tm__name { font-size: 0.88rem !important; }

/* How it works */
.sor-how__h3 { font-size: 1.2rem !important; }
.sor-how__desc { font-size: 0.92rem !important; line-height: 1.5 !important; }

/* Big benefits */
.sor-bigben__t-h3 { font-size: 1.05rem !important; letter-spacing: 0.08em !important; }
.sor-bigben__t-body, .sor-bigben__t-body p { font-size: 0.94rem !important; line-height: 1.6 !important; }

/* Comparison */
.sor-cmp__row-label { font-size: 0.85rem !important; letter-spacing: 0.05em !important; }
.sor-cmp__cell      { font-size: 0.92rem !important; line-height: 1.5 !important; }
.sor-cmp__col-name  { font-size: 1.05rem !important; }
.sor-cmp__pill      { font-size: 0.66rem !important; }
@media (max-width: 749px) {
  .sor-cmp__row-label { font-size: 0.75rem !important; }
  .sor-cmp__cell      { font-size: 0.85rem !important; }
}

/* Experts */
.sor-exp__name  { font-size: 0.85rem !important; letter-spacing: 0.06em !important; }
.sor-exp__quote { font-size: 0.92rem !important; line-height: 1.55 !important; }

/* FAQ */
.sor-faq__q, .sor-faq summary, .sor-faq__question {
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
}
.sor-faq__a, .sor-faq summary + div, .sor-faq summary + div p,
.sor-faq__answer, .sor-faq .answer {
  font-size: 0.94rem !important;
  line-height: 1.6 !important;
}

/* Tabs */
.sor-tabs__btn { font-size: 0.95rem !important; }
.sor-tabs__panel, .sor-tabs__panel p, .sor-tabs__panel li {
  font-size: 0.94rem !important;
  line-height: 1.6 !important;
}

/* Reassurance 5 Gwarancji */
.sor-guar__h3 { font-size: 1rem !important; }
.sor-guar__sub, .sor-guar__sub p { font-size: 0.9rem !important; line-height: 1.5 !important; }

/* Results section */
.sor-res__pills li { font-size: 0.78rem !important; }

/* ─── HEADER ─── */
.header__menu-item { font-size: 0.95rem !important; }          /* 15.2px */
.sor-header-cta    { font-size: 0.98rem !important; }          /* 15.7px — prominent */
.sor-header-track  { font-size: 0.74rem !important; }          /* 11.8px — discreet */

/* ─── FOOTER (compact, premium discreet) ─── */
.sor-footer-main      { padding-top: 2.5rem !important; padding-bottom: 1.5rem !important; }
.sor-footer-tagline   { font-size: 0.85rem !important; line-height: 1.5 !important; }
.sor-footer-h4        { font-size: 0.8rem !important; letter-spacing: 0.12em !important; margin-bottom: 0.85rem !important; }
.sor-footer-links a   { font-size: 0.82rem !important; }       /* ~13px */
.sor-footer-links     { gap: 0.4rem !important; }
.sor-footer-email     { font-size: 0.92rem !important; }       /* email slightly bigger */
.sor-footer-hours     { font-size: 0.8rem !important; }
.sor-footer-bot       { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.sor-footer-bot__copy { font-size: 0.78rem !important; }
.sor-footer-bot__country { font-size: 0.78rem !important; }
.sor-footer-bot__pay-label { font-size: 0.7rem !important; }
.sor-footer-bot__pay-img { height: 22px !important; }
.sor-footer-bot__disclaimer { font-size: 0.7rem !important; line-height: 1.5 !important; padding-top: 0.85rem !important; }
.sor-footer-bot__legal { font-size: 0.7rem !important; margin-top: 0.7rem !important; }
.sor-footer-bot__legal a { font-size: 0.7rem !important; }
@media (max-width: 749px) {
  .sor-footer-main      { padding-top: 2rem !important; padding-bottom: 1rem !important; }
  .sor-footer-tagline   { font-size: 0.82rem !important; }
  .sor-footer-h4        { font-size: 0.78rem !important; margin-bottom: 0.7rem !important; }
  .sor-footer-links a   { font-size: 0.82rem !important; }
  .sor-footer-email     { font-size: 0.88rem !important; }
  .sor-footer-bot__copy { font-size: 0.72rem !important; }
  .sor-footer-bot__country { font-size: 0.72rem !important; }
  .sor-footer-bot__legal { font-size: 0.66rem !important; }
  .sor-footer-bot__legal a { font-size: 0.66rem !important; }
  .sor-footer-bot__disclaimer { font-size: 0.66rem !important; }
}

/* ─── VARIANT PICKER PILLS (Dawn native — podkład shades) — compact + brand ─── */
.product-form__input--pill { margin: 0.2rem 0 0.9rem !important; }
.product-form__input--pill .form__label,
.product-form__input--pill legend.form__label {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #8B6B2E !important;
  margin-bottom: 0.5rem !important;
}
.product-form__input--pill input[type="radio"] + label {
  min-width: 0 !important;
  padding: 0.5rem 1.15rem !important;
  margin: 0 0.45rem 0.45rem 0 !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(110, 90, 69, 0.3) !important;
  background: #fff !important;
  color: #3A2D1E !important;
  letter-spacing: 0 !important;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease !important;
}
.product-form__input--pill input[type="radio"]:hover + label { border-color: #C9A24E !important; }
.product-form__input--pill input[type="radio"]:checked + label {
  background: #1F1812 !important;
  border-color: #1F1812 !important;
  color: #fff !important;
}

/* ─── COLLECTION / CART ─── */
.card__heading, .card__heading a { font-size: 0.95rem !important; }
.card-information__text { font-size: 0.88rem !important; }
.cart-item__name { font-size: 0.95rem !important; }
.cart-item__price-wrapper { font-size: 0.92rem !important; }
.totals__total-value { font-size: 1.15rem !important; }

/* ═══════════════════════════════════════════════════════════════
   CART PAGE (/cart) — full-page cart restyle.
   Dawn's cart CSS is authored in rem for a 10px root, but this
   theme sets html to 16px (see ~line 3360), so Dawn's native cart
   sizing rendered ~1.6x too large and unreadable on mobile.
   These rules rescope the /cart page to the brand. Scoped to
   #main-cart-items + .cart__footer so the cart DRAWER (styled
   separately further down) stays untouched.
   ═══════════════════════════════════════════════════════════════ */

/* — Line items — */
#main-cart-items .cart-item__details { font-size: 0.875rem !important; }
#main-cart-items .cart-item__details > * + * { margin-top: 0.4rem !important; }
#main-cart-items .cart-item__details > * { max-width: none !important; }
#main-cart-items .cart-item__name {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  word-break: normal !important;        /* Dawn's .break class was snapping words mid-letter on iOS Safari */
  overflow-wrap: break-word !important; /* only breaks mid-word when a single word truly overflows */
  hyphens: manual !important;
}
#main-cart-items .product-option { font-size: 0.8rem !important; line-height: 1.4 !important; word-break: normal !important; overflow-wrap: break-word !important; }
#main-cart-items .cart-item__price-wrapper,
#main-cart-items .cart-item__discounted-prices { font-size: 0.95rem !important; }
#main-cart-items .cart-item__old-price { font-size: 0.82rem !important; }
#main-cart-items .cart-items th { font-size: 0.72rem !important; }
#main-cart-items .quantity__input { font-size: 1rem !important; }

/* Price values must never wrap (e.g. "209,30 zł" splitting into "209,30" + "zł"). */
#main-cart-items .cart-item__final-price,
#main-cart-items .cart-item__old-price,
#main-cart-items .cart-item__totals .price,
#main-cart-items .cart-item__totals .price--end,
#main-cart-items .cart-item__price-wrapper .price,
#main-cart-items .cart-item__discounted-prices > * { white-space: nowrap !important; }

/* — Tame Dawn's oversized line total + quantity stepper (rendered ~1.6x too big at 16px root) — */
#main-cart-items .cart-item__totals .price,
#main-cart-items .cart-item__totals .price--end { font-size: 1.1rem !important; font-weight: 600 !important; }
#main-cart-items .cart-item__totals .cart-item__old-price { font-size: 0.82rem !important; }
@media screen and (min-width: 750px) {
  #main-cart-items .cart-item__quantity .quantity {
    min-height: 40px !important; height: 40px !important; width: 132px !important;
  }
  #main-cart-items .cart-item__quantity .quantity__button {
    width: 40px !important; min-height: 40px !important; height: 40px !important;
  }
  #main-cart-items .cart-item__quantity .quantity__button svg { width: 13px !important; height: 13px !important; }
  #main-cart-items .cart-item__quantity .quantity__input {
    font-size: 0.95rem !important; min-height: 40px !important; height: 40px !important;
  }
}

/* Mobile: replace Dawn's 4-equal-cols grid (which gave the title ~60px and
   broke every Polish word mid-letter) with a clean 3-col layout —
   image fixed at 80px, details flex, line total auto-sized. Quantity
   controls occupy a full-width row underneath. */
@media screen and (max-width: 749px) {
  #main-cart-items .cart-item {
    grid-template: auto auto / 80px minmax(0, 1fr) auto !important;
    grid-template-areas:
      "media details totals"
      "qty   qty     qty" !important;
    gap: 0.9rem 0.9rem !important;
    margin-bottom: 2.4rem !important;
  }
  #main-cart-items .cart-item__media { grid-area: media !important; grid-row: auto !important; width: 80px !important; }
  #main-cart-items .cart-item__image { max-width: 80px !important; width: 80px !important; height: auto !important; }
  #main-cart-items .cart-item__details { grid-area: details !important; grid-column: auto !important; min-width: 0 !important; }
  #main-cart-items .cart-item__totals.medium-hide.large-up-hide { grid-area: totals !important; align-self: start !important; }
  #main-cart-items .cart-item__quantity { grid-area: qty !important; grid-column: auto !important; }
  /* Hide the redundant per-unit price block inside details on mobile —
     the line total in the totals cell to its right is what matters.
     Variant options (Rozmiar/Kolor/Pakiet) are inside a <dl> so this
     direct-child selector doesn't touch them. */
  #main-cart-items .cart-item__details > .cart-item__discounted-prices,
  #main-cart-items .cart-item__details > .product-option { display: none !important; }
}

/* — Footer / totals — */
.cart__footer { font-size: 0.9rem !important; }
.cart__footer .totals__total { font-size: 0.95rem !important; }
.cart__footer .totals__total-value { font-size: 1.25rem !important; }
.cart__footer .tax-note { font-size: 0.76rem !important; }
.cart__footer .cart__note label { font-size: 0.82rem !important; }

/* — Checkout button: brand gold gradient (matches site CTAs + drawer) — */
.cart__footer .cart__checkout-button {
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%) !important;
  color: #FFFDF8 !important;
  font-family: var(--sor-body) !important;
  font-size: 0.98rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18) !important;
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
}
.cart__footer .cart__checkout-button::before,
.cart__footer .cart__checkout-button::after { display: none !important; }
.cart__footer .cart__checkout-button:hover {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   FAQ + Stats side-by-side on desktop when adjacent siblings.
   Pattern inspired by Organica Beauty — pairs the compact FAQ card
   with the stats card so the layout feels denser and more editorial.
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 990px) {
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section) {
    float: left;
    width: 50%;
    clear: left;
  }
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section)
    + .shopify-section.sor-stats-section {
    float: right;
    width: 50%;
    clear: right;
  }
  /* Equal vertical padding so both align nicely */
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section) .sor-faq,
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section)
    + .shopify-section.sor-stats-section .sor-stats {
    padding: clamp(2.5rem, 4vw, 4rem) 1rem !important;
  }
  /* Tighten the inner containers so content fits inside the 50% columns */
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section) .sor-container,
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section)
    + .shopify-section.sor-stats-section .sor-container {
    max-width: 100% !important;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  /* Stats inside the half-column: smaller numbers, 1-column grid */
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section)
    + .shopify-section.sor-stats-section .sor-stats__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    max-width: 360px;
    margin: 0 auto;
  }
  .shopify-section.sor-faq-section:has(+ .shopify-section.sor-stats-section)
    + .shopify-section.sor-stats-section .sor-stats__card {
    text-align: center;
  }
  /* Clear floats after the paired sections */
  .shopify-section.sor-stats-section + .shopify-section {
    clear: both;
  }
}

/* ═══════════════════════════════════════════════════════════════
   PRODUCT PAGE — Experts + Testimonials side-by-side on desktop
   Only kicks in when both sections are adjacent siblings.
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 990px) {
  /* Use :has() to ensure both are present and adjacent */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section) {
    float: left;
    width: 50%;
    clear: left;
  }
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section {
    float: right;
    width: 50%;
    clear: right;
  }
  /* Reduce internal section padding so the pair feels balanced height-wise */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section) .sor-exp,
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  /* Equal-height alignment: same vertical padding */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section) .sor-exp,
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm {
    padding-top: clamp(3rem, 5vw, 4.5rem);
    padding-bottom: clamp(3rem, 5vw, 4.5rem);
  }
  /* Force the section AFTER the testimonials pair to clear floats */
  .shopify-section.sor-testimonials-section + .shopify-section {
    clear: both;
  }
  /* Inner card grid: single column when side-by-side (more compact) */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section) .sor-exp__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  /* Cancel the full-bleed scroller hack on testimonials when in 2-col layout
     (otherwise it bleeds outside its 50% column and overlaps experts) */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__scroller {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  /* Stack testimonials vertically in their narrow column (1 card per row) */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__list {
    flex-direction: column;
    gap: 1rem !important;
    padding: 0.5rem 0 0 !important;
  }
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__card {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 1.1rem 1.3rem !important;     /* tighter than default */
  }
  /* Smaller quote + name in 2-col layout for parity with experts */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__quote,
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__card blockquote {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
  }
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__name {
    font-size: 0.85rem !important;
  }
  /* Smaller "Zweryfikowany zakup" badge */
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__verified,
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section .sor-tm__card a[href*="verified"],
  .shopify-section.sor-exp-section:has(+ .shopify-section.sor-testimonials-section)
    + .shopify-section.sor-testimonials-section [class*="verified"] {
    font-size: 0.72rem !important;
    padding: 0.25rem 0.55rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE — Full-width product gallery (edge to edge)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 749px) {
  /* Break the main-product section out of ALL parent padding.
     Page templates (Kontakt, OWS, etc.) restore their own padding via the
     .page-width--narrow rule further down. */
  body:has(.product__media-wrapper) [class*="section-template--"][class*="__main-padding"],
  body:has(.product__media-wrapper) [class*="section-template--"][class*="__main"],
  body main:has(.product__media-wrapper) > .page-width,
  body main:has(.product__media-wrapper) .page-width:has(> .product),
  body .page-width:has(> .product--large),
  body .page-width:has(.product__media-wrapper),
  .product.page-width,
  .product--large,
  .product--medium,
  .product--small,
  .product__info-wrapper.grid__item {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100vw !important;
  }
  /* Gallery wrapper spans 100vw — break out of any parent padding */
  .product__media-wrapper,
  .product .product__media-wrapper,
  .product.page-width .product__media-wrapper,
  [class*="section-template--"][class*="__main"] .product__media-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }
  media-gallery {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    /* NO fixed height, NO overflow hidden — let buttons (below the slider) render */
  }
  /* slider-component contains: ul.product__media-list + div.slider-buttons.
     Let it size naturally so the buttons aren't cropped. */
  body .product__media-wrapper slider-component {
    display: block !important;
    width: 100vw !important;
    position: relative;
  }
  /* The slider list itself is 100vw tall (the actual square image area) */
  body .product__media-list,
  body .product__media-wrapper .product__media-list {
    height: 100vw !important;
    min-height: 100vw !important;
  }
  /* Each slide is exactly 100vw wide AND 100vw tall (square) */
  body .product__media-wrapper .product__media-list .product__media-item,
  body .product__media-wrapper .product__media-list .slider__slide {
    height: 100vw !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
  /* Slider buttons — bring back below the slider, clickable and visible */
  .product__media-wrapper .slider-buttons {
    position: relative !important;
    z-index: 5 !important;
    pointer-events: auto !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.85rem 1rem;
  }
  .product__media-wrapper .slider-button {
    pointer-events: auto !important;
    cursor: pointer;
  }
  /* Inner container — fill the slide */
  body .product__media-item .product-media-container,
  body .product__media-item .product__modal-opener {
    width: 100vw !important;
    height: 100vw !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
  }
  /* Kill Dawn's padding-top aspect-ratio hack on mobile — height is now fixed */
  body .product__media-item .product-media-container .media,
  body .product__media-item .product-media-container.constrain-height .media {
    padding-top: 0 !important;
    height: 100% !important;
    width: 100% !important;
    position: relative !important;
  }
  /* Force images to be visible and cover the slide — no absolute positioning
     (was breaking pointer-events on header / swatches by overlapping them) */
  body .product__media-item img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    opacity: 1 !important;
  }
  .product__media-list,
  .product__media-list .product__media-item {
    padding: 0 !important;
  }
  /* Mobile: each gallery slide takes FULL viewport width — no "peek" of next/prev.
     Uses 100vw + max specificity (body prefix) to outweigh Dawn's calc(100% - 3rem) rule.
     CRITICAL: scroll-padding-left:0 — Dawn's default 1.5rem causes a visible left gap
     on the active slide when it snaps. */
  body .product__media-wrapper .product__media-list,
  body .product__media-list.slider--mobile,
  body .product__media-list.grid--peek,
  body .product__media-list.slider--mobile.grid--peek {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    padding: 0 !important;
    scroll-padding-left: 0 !important;
    scroll-padding-right: 0 !important;
    scroll-snap-type: x mandatory !important;
    --grid-mobile-horizontal-spacing: 0 !important;
    --grid-desktop-horizontal-spacing: 0 !important;
    column-gap: 0 !important;
    gap: 0 !important;
    /* Ensure horizontal swipe works on iOS Safari + Android Chrome */
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body .product__media-wrapper slider-component:not(.thumbnail-slider--no-slide),
  body .product__media-wrapper slider-component {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body .product__media-wrapper .product__media-list .product__media-item,
  body .product__media-wrapper .product__media-list .slider__slide,
  body .product--mobile-columns .product__media-item,
  .grid--peek.slider .product__media-item,
  .grid--peek.slider .product__media-item:first-of-type,
  .slider--mobile.grid--peek .grid__item,
  .slider--mobile.grid--peek .grid__item:first-of-type,
  .slider--mobile.grid--peek.grid--1-col-tablet-down .grid__item,
  .slider--mobile.grid--peek.grid--1-col-tablet-down .grid__item:first-of-type,
  body .product__media-list .grid__item,
  body .product__media-list .grid__item:first-of-type {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    flex: 0 0 100vw !important;
    padding: 0 !important;
    margin: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
  }
  /* Also kill the ::after pseudo-spacer Dawn adds at the end of the slider list */
  .grid--peek.slider::after,
  body .product__media-list.grid--peek::after {
    display: none !important;
    margin: 0 !important;
    width: 0 !important;
    content: none !important;
  }
  .product__media-item .product__media,
  .product__media-item .global-media-settings {
    border-radius: 0 !important;
  }
  .product__media-item img,
  .product__media-item .product__modal-opener img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }
  /* Belt-and-braces: kill any residual padding/margin on inner media wrappers */
  body .product__media-item,
  body .product__media-item > *,
  body .product__media-item .product__media,
  body .product__media-item .global-media-settings,
  body .product__media-item .product-media-container,
  body .product__media-item .product__modal-opener {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  body .product__media-item .product__media,
  body .product__media-item .global-media-settings {
    --media-radius: 0 !important;
    --media-border-width: 0 !important;
  }
  /* Info container — almost edge-to-edge on mobile (just 4px breathing room) */
  .product__info-wrapper,
  .product__info-container {
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
  }
  /* Bundle cards, ATC button, trust block — extend to full available width */
  .product__info-container .sor-qb,
  .product__info-container .product-form,
  .product__info-container .product-form__buttons,
  .product__info-container .sor-trust,
  .product__info-container .sor-cp-inline,
  .product__info-container .sor-size-picker {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Tighten internal padding of the trust card so the icons/text get more horizontal room */
  .product__info-container .sor-trust { padding: 0.85rem 0.75rem !important; }
  /* Bundle cards — slightly tighter gap so 3 cards fit more comfortably */
  .product__info-container .sor-qb { gap: 6px !important; }
  /* ATC button — stretch fully */
  .product__info-container .product-form__submit { width: 100% !important; }
  /* Sections containers — same tight padding */
  .sor-container { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
  /* Section wrappers should not double-pad.
     IMPORTANT: exclude page templates (.page-width--narrow used by Dawn page sections)
     so legal pages, Kontakt, FAQ, etc. keep their normal mobile padding. */
  .sor-section,
  .shopify-section > section,
  [class*="section-template--"][class*="-padding"]:not(.page-width--narrow):not(.page-width) {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Restore generous mobile padding for page templates (rich text pages) */
  .page-width--narrow[class*="section-template--"],
  .shopify-section > .page-width--narrow {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  /* Slider arrows stay within image */
  media-gallery .slider-buttons {
    padding: 0 0.5rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   STRICT DESIGN SYSTEM — final cascade, enforces brand consistency
   Only 4 font sizes, golden-ratio spacing, mobile-1-col, no overlap
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. SECTION CONTAINERS — predictable padding + min height ── */
.sor-section,
.sor-hero,
.sor-benefits,
.sor-bigben,
.sor-cmp,
.sor-stats,
.sor-how,
.sor-exp,
.sor-tm,
.sor-res,
.sor-faq,
.sor-edito,
.sor-tabs,
.sor-guar {
  padding-top: clamp(3rem, 8vw, 5rem) !important;
  padding-bottom: clamp(3rem, 8vw, 5rem) !important;
}
.sor-container {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
@media (max-width: 749px) {
  .sor-container {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
}

/* ── 2. SECTION TITLES — Playfair Display, centered, max 700px ── */
.sor-benefits__title,
.sor-bigben__title,
.sor-cmp__title,
.sor-stats__heading,
.sor-how__title,
.sor-exp__title,
.sor-tm__title,
.sor-tm__heading,
.sor-res__title,
.sor-faq__heading,
.sor-guar__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.8rem, 3vw, 2.8rem) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  color: var(--sor-text) !important;
  text-align: center !important;
  max-width: 700px !important;
  margin: 0 auto !important;
  text-wrap: balance;
}

/* Hero h1 — unique larger scale */
.sor-hero__heading {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.8rem, 5vw, 4.5rem) !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
}
/* Product page title — smaller, tighter than hero */
.product__title h1,
.product__title .h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.9rem, 3.2vw, 2.55rem) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.005em !important;
}
@media (max-width: 749px) {
  .product__title h1,
  .product__title .h1 {
    font-size: clamp(1.8rem, 6.6vw, 2.3rem) !important;
  }
}

/* ── 3. SMALL LABELS — Lato uppercase ── */
.sor-eyebrow,
.sor-cmp__eyebrow,
.sor-res__eyebrow,
.sor-exp__eyebrow,
.sor-bigben__pre,
.sor-bigben__pre em,
.sor-footer-h4,
.sor-bigben__t-h3,
.sor-exp__name,
.sor-cmp__row-label,
.sor-tabs__btn,
.sor-footer-bot__pay-label,
.product__text,
.product__text.caption-with-letter-spacing {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
}
.sor-eyebrow,
.sor-cmp__eyebrow,
.sor-res__eyebrow,
.sor-exp__eyebrow,
.sor-bigben__pre {
  color: var(--sor-gold-dark) !important;
}

/* ── 4. BODY TEXT — Lato 1.05rem line-height 1.8 ── */
.sor-bigben__t-body, .sor-bigben__t-body p,
.sor-bigben__sub,
.sor-cmp__sub,
.sor-cmp__cell,
.sor-stats__lbl,
.sor-how__desc,
.sor-exp__quote,
.sor-tm__quote, .sor-tm__card blockquote,
.sor-res__caption,
.sor-faq__a, .sor-faq__answer, .sor-faq .answer,
.sor-faq summary + div, .sor-faq summary + div p,
.sor-tabs__panel, .sor-tabs__panel p, .sor-tabs__panel li,
.sor-guar__sub, .sor-guar__sub p,
.sor-footer-tagline,
.sor-footer-links a,
.sor-hero__sub,
.product__description, .product-info p, .product-info li {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}
@media (max-width: 749px) {
  .sor-bigben__t-body, .sor-bigben__t-body p,
  .sor-bigben__sub, .sor-cmp__sub, .sor-cmp__cell,
  .sor-how__desc, .sor-exp__quote, .sor-tm__quote,
  .sor-tm__card blockquote, .sor-res__caption,
  .sor-faq__a, .sor-faq__answer, .sor-faq .answer,
  .sor-tabs__panel, .sor-tabs__panel p, .sor-tabs__panel li,
  .sor-guar__sub, .sor-guar__sub p,
  .sor-footer-tagline, .sor-footer-links a {
    font-size: 1rem !important;
    line-height: 1.7 !important;
  }
}

/* FAQ questions slightly larger than body */
.sor-faq__q, .sor-faq summary, .sor-faq__question {
  font-family: 'Lato', system-ui, sans-serif !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* ── 5. SECTION TITLE → SUBTITLE → CONTENT vertical rhythm ── */
.sor-benefits__header,
.sor-bigben__header,
.sor-cmp__header,
.sor-stats__header,
.sor-how__header,
.sor-exp__header,
.sor-tm__header,
.sor-res__header,
.sor-faq__header,
.sor-guar__header {
  text-align: center !important;
  margin-bottom: 2rem !important; /* 32px gap before content */
}
.sor-benefits__header .sor-eyebrow,
.sor-bigben__header .sor-eyebrow,
.sor-cmp__header .sor-cmp__eyebrow,
.sor-res__header .sor-res__eyebrow,
.sor-exp__header .sor-exp__eyebrow {
  margin-bottom: 1rem !important; /* 16px gap eyebrow → title */
}
.sor-benefits__sub, .sor-bigben__sub, .sor-cmp__sub, .sor-res__sub,
.sor-tm__sub, .sor-how__sub, .sor-stats__sub {
  margin-top: 1rem !important;     /* 16px title → subtitle */
  margin-bottom: 0 !important;
  max-width: 580px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ── 6. CONTENT GRIDS — 24px gap, 1-col on mobile ── */
.sor-benefits__grid,
.sor-bigben__grid,
.sor-stats__grid,
.sor-how__steps,
.sor-exp__grid,
.sor-tm__list,
.sor-res__grid,
.sor-faq__list,
.sor-guar__grid {
  gap: 24px !important;
}
@media (max-width: 600px) {
  /* Testimonials list (.sor-tm__list) deliberately EXCLUDED — it scrolls
     horizontally on mobile (handled in sor-testimonials.liquid). */
  .sor-benefits__grid,
  .sor-bigben__grid,
  .sor-stats__grid,
  .sor-how__steps,
  .sor-exp__grid,
  .sor-res__grid,
  .sor-guar__grid {
    grid-template-columns: 1fr !important;
    flex-direction: column !important;
  }
}

/* ── 7. BUTTONS — min-height 48px, full width on mobile ── */
.sor-btn-primary,
.sor-btn-secondary,
.sor-btn-ghost,
.button {
  min-height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
@media (max-width: 600px) {
  .sor-btn-primary,
  .sor-btn-secondary,
  .button:not(.product-form__submit) {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ── 8. PREVENT OVERFLOW / OVERLAP / TRUNCATION ── */
.sor-section *,
.sor-hero *,
.sor-benefits *,
.sor-bigben *,
.sor-cmp *,
.sor-stats *,
.sor-how *,
.sor-exp *,
.sor-tm *,
.sor-res *,
.sor-faq *,
.sor-edito *,
.sor-tabs *,
.sor-guar * {
  box-sizing: border-box;
  max-width: 100%;
}
.sor-section p, .sor-section li, .sor-section blockquote,
.sor-section h1, .sor-section h2, .sor-section h3, .sor-section h4 {
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: manual;
  -webkit-hyphens: manual;
}
/* Strict: no nowrap inside body content (kept on UI like pills/badges) */
.sor-section .sor-bigben__t-body,
.sor-section .sor-tm__quote,
.sor-section .sor-cmp__cell,
.sor-section .sor-res__caption,
.sor-section .sor-faq__a,
.sor-section .sor-faq summary,
.sor-section blockquote, .sor-section p {
  white-space: normal !important;
}

/* ── 9. CARDS — consistent padding ── */
.sor-bigben__t-card,
.sor-benefits__card,
.sor-how__step,
.sor-exp__card,
.sor-tm__card,
.sor-res__card,
.sor-faq__item,
.sor-guar__card {
  padding: 1.5rem !important;
}
@media (min-width: 750px) {
  .sor-bigben__t-card,
  .sor-benefits__card,
  .sor-how__step,
  .sor-exp__card,
  .sor-tm__card,
  .sor-res__card,
  .sor-faq__item,
  .sor-guar__card {
    padding: 2rem !important;
  }
}

/* Stats: keep big numbers, but cap font for screen fit */
.sor-stats__num {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

/* ── 10. FINAL OVERRIDES — remove dangerous overflow:hidden on text — */
.sor-section .sor-cmp__cell,
.sor-section .sor-bigben__t-body,
.sor-section .sor-tm__quote,
.sor-section .sor-exp__quote,
.sor-section .sor-res__caption,
.sor-section .sor-faq__answer,
.sor-section .sor-tabs__panel {
  overflow: visible !important;
  text-overflow: clip !important;
}

/* ═══════════════════════════════════════════════════════════════
   SMART FLOATING PILL HEADER — hide on down, pill on up
   At rest: stays in existing sticky position (no layout disturbance).
   Scroll down past 80px: slides up out of view.
   Scroll up: detaches as centered floating pill.
   ═══════════════════════════════════════════════════════════════ */
.section-header.sor-header {
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    top 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    left 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    max-width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    background 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hidden state — slides up out of viewport */
.section-header.sor-header--hidden {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  transform: translateY(-120%) !important;
  z-index: 1000 !important;
  pointer-events: none !important;
}

/* When both pill + hidden are applied, preserve horizontal centering AND slide up.
   Higher specificity (3 classes) ensures this wins over pill's translateX(-50%). */
.section-header.sor-header--pill.sor-header--hidden {
  top: calc(var(--sor-announcement-h, 0px) + 10px) !important;
  left: 50% !important;
  right: auto !important;
  width: calc(100% - 32px) !important;
  max-width: 960px !important;
  transform: translate(-50%, calc(-100% - 40px)) !important;
  pointer-events: none !important;
}

/* Pill state — detached floating glass pill, centered */
.section-header.sor-header--pill {
  position: fixed !important;
  top: calc(var(--sor-announcement-h, 0px) + 10px) !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  max-width: 960px !important;
  width: calc(100% - 32px) !important;
  border-radius: 999px !important;
  background: #FFFCF9 !important;       /* fully opaque, no transparency */
  box-shadow: 0 4px 28px rgba(110, 90, 69, 0.14) !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  border-bottom: 0 !important;
  z-index: 1000 !important;
}

/* Menu drawer: escape the pill so it opens as a refined panel just below the floating header */
.section-header.sor-header--pill .menu-drawer {
  position: fixed !important;
  top: calc(var(--header-bottom-position, 64px) - 4px) !important;
  left: 16px !important;
  right: 16px !important;
  width: auto !important;
  max-width: 360px !important;
  height: auto !important;
  max-height: calc(var(--viewport-height, 100vh) - var(--header-bottom-position, 64px) - 12px) !important;
  border-radius: 16px !important;
  overflow-y: auto !important;
  box-shadow: 0 12px 40px rgba(110, 90, 69, 0.18) !important;
  background: rgba(255, 252, 249, 0.98) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(224, 211, 190, 0.5) !important;
}

/* Inner Dawn wrappers must be transparent + rounded so they don't poke out as squares */
.section-header.sor-header--pill .header-wrapper,
.section-header.sor-header--pill .header,
.section-header.sor-header--pill sticky-header.header-wrapper,
.section-header.sor-header--pill.sor-is-scrolled .header,
.section-header.sor-header--pill.sor-is-scrolled .header-wrapper {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: inherit !important;
  box-shadow: none !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

@media (max-width: 749px) {
  .section-header.sor-header--pill {
    max-width: calc(100% - 24px) !important;
    border-radius: 999px !important;
    padding-left: 0.6rem !important;
    padding-right: 0.6rem !important;
  }
  /* Ultra-slim mobile pill — minimal padding everywhere, bigger logo */
  .section-header.sor-header--pill .header-wrapper,
  .section-header.sor-header--pill .header,
  .section-header.sor-header--pill sticky-header.header-wrapper,
  .section-header.sor-header--pill.sor-is-scrolled .header,
  .section-header.sor-header--pill.sor-is-scrolled .header-wrapper {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
  }
  .section-header.sor-header--pill .header__heading-logo {
    max-height: 38px !important;
    width: auto !important;
  }
  .section-header.sor-header--pill .header__heading-logo-wrapper,
  .section-header.sor-header--pill .header__heading-link {
    padding: 0 !important;
  }
  .section-header.sor-header--pill .header__icon {
    padding: 0.25rem !important;
    min-height: 0 !important;
  }
  .section-header.sor-header--pill .header__icon svg {
    width: 16px !important;
    height: 16px !important;
  }
  /* Hamburger summary — slimmer click target so pill stays compact */
  .section-header.sor-header--pill header-drawer summary {
    padding: 0.25rem 0.35rem !important;
    min-height: 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-header.sor-header,
  .section-header.sor-header--pill,
  .section-header.sor-header--hidden {
    transition: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE DRAWER MENU — sane font sizes
   Dawn defaults .menu-drawer__menu-item to 1.8rem (~28px effective)
   which is too large for our luxury aesthetic.
   ═══════════════════════════════════════════════════════════════ */
.menu-drawer__menu-item,
.menu-drawer summary.menu-drawer__menu-item,
.menu-drawer .menu-drawer__menu-item.link {
  font-family: var(--sor-heading, 'Playfair Display', Georgia, serif) !important;
  font-size: 1.15rem !important;        /* ~18.4px — readable but elegant */
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.3 !important;
  padding: 0.75rem 1.5rem !important;   /* tighter than Dawn's 1.1rem 3rem */
  color: var(--sor-text, #3A2D1E) !important;
}

/* Tighten the drawer's empty space at the top — Dawn's default 3rem is too much */
.menu-drawer__navigation {
  padding: 0.4rem 0 0.6rem !important;
}
/* Make the drawer auto-size to its content (no big empty area below the menu) */
.menu-drawer__navigation-container {
  grid-template-rows: auto auto !important;
  align-content: start !important;
  height: auto !important;
  overflow-y: visible !important;
}
.menu-drawer__inner-container {
  height: auto !important;
}
/* When in pill mode, force the drawer height to fit its content (no full-viewport stretch) */
.section-header.sor-header--pill .menu-drawer,
header-drawer details[open] .menu-drawer {
  height: auto !important;
  min-height: 0 !important;
}

.menu-drawer__menu-item--active {
  color: var(--sor-gold-dark, #A8842E) !important;
  font-weight: 600 !important;
}

/* Account link in drawer */
.menu-drawer__account.h5 {
  font-family: var(--sor-body, 'Lato', sans-serif) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}

/* Submenu items slightly smaller */
.menu-drawer__submenu .menu-drawer__menu-item {
  font-size: 1.05rem !important;
}

/* Hide language/currency selector inside the mobile drawer — takes too much space */
.menu-drawer .menu-drawer__localization,
.menu-drawer .header-localization {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   BOLDER SECTION TITLES — Playfair Display 700 for readability + Polish glyph consistency
   Marketing copy scans faster when headlines have visual weight.
   Targets all __title / __h2 / __h3 patterns + known section headlines.
   Numbers (__number) and italic quotes stay at their lighter weight.
   ═══════════════════════════════════════════════════════════════ */
[class*="__title"],
[class*="__h2"],
[class*="__h3"],
.sor-bigben__h3,
.sor-edito__txt,
.sor-cmp__title em,
.sor-edito__txt em,
[class*="__title"] em,
[class*="__h2"] em,
[class*="__h3"] em {
  font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════════════════
   SIZE PICKER (Rozmiar) — pills with schematic icon
   Sits above color swatches; pairs with sor-size-picker snippet.
   ═══════════════════════════════════════════════════════════════ */
.sor-size-picker {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.sor-size-picker__label {
  font-family: var(--sor-body);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--sor-text-muted);
  margin: 0;
  letter-spacing: 0.01em;
}
.sor-size-picker__label strong {
  font-weight: 700;
  color: var(--sor-text);
  margin-left: 0.25rem;
}
.sor-size-picker__opts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.sor-size-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.6rem 1rem;
  background: var(--sor-white, #fff);
  border: 1.5px solid var(--sor-border);
  border-radius: 999px;
  font-family: var(--sor-body);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--sor-text);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, transform 0.18s ease;
  line-height: 1;
}
.sor-size-btn:hover:not(.active) {
  border-color: var(--sor-gold);
  color: var(--sor-gold-dark);
}
.sor-size-btn.active {
  border-color: var(--sor-gold);
  background: var(--sor-beige-light, #FFFCF9);
  color: var(--sor-text);
  box-shadow: 0 0 0 2px rgba(201, 162, 78, 0.18);
}
/* Sold-out / unavailable variant — grayed out, strikethrough text, not clickable */
.sor-size-btn--sold-out,
.sor-size-btn[disabled],
.sor-size-btn[aria-disabled="true"] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  position: relative;
  border-color: rgba(224, 211, 190, 0.5) !important;
  background: rgba(247, 242, 235, 0.4) !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  pointer-events: none;
}
.sor-size-btn--sold-out:hover,
.sor-size-btn[disabled]:hover {
  border-color: rgba(224, 211, 190, 0.5) !important;
  color: var(--sor-text-muted, #8C7A65) !important;
}
.sor-size-btn--sold-out .sor-size-btn__txt {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(140, 122, 101, 0.45);
}
/* Diagonal stripe overlay to make sold-out visually obvious */
.sor-size-btn--sold-out::after {
  content: 'wyprzedane';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8C7A65;
  background: #FFFCF9;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid rgba(224, 211, 190, 0.6);
  white-space: nowrap;
}
.sor-size-btn__ic {
  width: 22px;
  height: 18px;
  flex-shrink: 0;
  display: block;
  opacity: 0.85;
}
.sor-size-btn__txt {
  white-space: nowrap;
  line-height: 1.15;
}
.sor-size-picker__hint {
  font-weight: 500;
  font-style: italic;
  color: var(--sor-text-muted);
  margin-left: 0.25rem;
  font-size: 0.88em;
}
.product__info-container > .sor-size-picker,
.product__info-container > *:has(> .sor-size-picker) { margin-top: 1.75rem !important; }
.product__info-container > .sor-size-picker + .sor-cp-inline,
.product__info-container > *:has(> .sor-size-picker) + *:has(> .sor-cp-inline) { margin-top: 1.1rem !important; }
@media (max-width: 749px) {
  .sor-size-btn {
    font-size: 0.86rem;
    padding: 0.55rem 0.85rem;
    gap: 0.45rem;
  }
  .sor-size-btn__ic { width: 18px; height: 15px; }
}

/* ═══════════════════════════════════════════════════════════════
   USE-CASES bar (sor-use-cases) — 3 trigger → benefit lines
   Sits between bundles and ATC. Compact, scannable, conversion-focused.
   ═══════════════════════════════════════════════════════════════ */
.sor-uc {
  list-style: none;
  margin: 0 !important;
  padding: 0.75rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
  background: rgba(247, 242, 235, 0.55);
  border: 1px solid rgba(201, 162, 78, 0.22);
  border-radius: 10px;
}
.sor-uc__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  font-family: var(--sor-body);
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--sor-text);
}
.sor-uc__dot {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sor-gold);
  margin-right: 0.1rem;
}
.sor-uc__when {
  color: var(--sor-text-muted);
  font-weight: 500;
}
.sor-uc__arrow {
  color: var(--sor-gold-dark);
  font-weight: 700;
  margin: 0 0.15rem;
}
.sor-uc__then {
  color: var(--sor-text);
  font-weight: 700;
}
.product__info-container > *:has(.sor-uc) { margin-top: 0.85rem !important; }

@media (max-width: 749px) {
  .sor-uc { padding: 0.65rem 0.7rem; gap: 0.35rem; }
  .sor-uc__row { font-size: 0.82rem; }
}

/* ── Overlay variant — floats on the gallery at the bottom-left corner ── */
.sor-uc--overlay {
  position: absolute;
  bottom: 14px;
  left: 14px;
  top: auto;
  right: auto;
  z-index: 4;
  max-width: min(360px, calc(100% - 28px));
  background: rgba(255, 252, 249, 0.92);
  backdrop-filter: blur(10px) saturate(1.06);
  -webkit-backdrop-filter: blur(10px) saturate(1.06);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 14px;
  box-shadow: 0 6px 22px rgba(58, 48, 40, 0.18);
  padding: 0.65rem 0.95rem;
  gap: 0.35rem;
  pointer-events: none;
}
.sor-uc--overlay .sor-uc__row {
  font-size: 0.8rem;
  line-height: 1.3;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.sor-uc--overlay .sor-uc__when,
.sor-uc--overlay .sor-uc__then {
  white-space: nowrap;
}
@media (max-width: 749px) {
  .sor-uc--overlay {
    bottom: 10px;
    left: 10px;
    max-width: calc(100% - 20px);
    padding: 0.5rem 0.75rem;
    gap: 0.3rem;
    border-radius: 12px;
  }
  .sor-uc--overlay .sor-uc__row { font-size: 0.72rem; }
  .sor-uc--overlay .sor-uc__dot { width: 5px; height: 5px; }
}

/* ═══════════════════════════════════════════════════════════════
   FLOATING HEADER COMPENSATION — reserve space below pill
   The pill is position:fixed and removed from flow, so non-home pages
   need top padding so titles aren't covered. Home (template-index) is
   excluded because the hero image is designed to extend under the pill.
   ═══════════════════════════════════════════════════════════════ */
/* Pad all pages by default to clear the floating pill header */
#MainContent {
  padding-top: clamp(70px, 9vw, 96px);
}
/* Cancel the padding on the homepage where the hero image is meant to
   extend up under the floating pill (.sor-hero only exists on home). */
#MainContent:has(.sor-hero) {
  padding-top: 0;
}

/* ═══════════════════════════════════════════════════════════════
   MENU DRAWER SCRIM — softer, warm-tinted, light blur
   Dawn's default is rgba(--color-foreground, 0.5) which renders as
   a heavy black overlay. Replace with a subtle brand-tinted veil.
   ═══════════════════════════════════════════════════════════════ */
.js menu-drawer > details > summary::before,
.js menu-drawer > details[open]:not(.menu-opening) > summary::before,
menu-drawer > details[open] > summary::before,
header-drawer > details > summary::before,
.js header-drawer > details[open] > summary::before {
  display: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
/* sync 1779042464N */
/* mobile gallery v2 1779042832N */

/* ===========================================================
   Mobile bug fixes batch · 2026-05-18
   1. Collection count must stay on one line
   2. "W promocji" / "Sold out" badges — discreet pill, no char-wrap
   3. Editorial pills — breathable gap when they wrap
   =========================================================== */

/* 1. Collection toolbar count — keep on one line, never break per-char */
.product-count__text,
.product-count-vertical .product-count__text,
.facets-container-drawer .product-count__text {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: manual !important;
  -webkit-hyphens: manual !important;
}
@media (max-width: 749px) {
  .product-count,
  .product-count-vertical {
    margin-left: 0 !important;
  }
  .product-count__text {
    font-size: 0.85rem !important;
  }
}

/* 2. Product card badges — small, gold, discreet, never break chars */
.card__badge .badge,
.card-wrapper .card__badge .badge {
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 0.32rem 0.7rem !important;
  border-radius: 4px !important;
  word-break: keep-all !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  border: none !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;
}
.card__badge .badge:not(.color-scheme-4):not([class*="sold"]) {
  background: var(--sor-gold, #C9A24E) !important;
  color: #fff !important;
}
.card__badge {
  padding: 0.75rem !important;
}
@media (max-width: 749px) {
  .card__badge .badge,
  .card-wrapper .card__badge .badge {
    font-size: 0.6rem !important;
    padding: 0.28rem 0.55rem !important;
    letter-spacing: 0.04em !important;
  }
  .card__badge {
    padding: 0.55rem !important;
  }
}

/* 3. Editorial overlay pills — keep breathing room when they wrap */
@media (max-width: 749px) {
  .sor-edito__pills {
    gap: 0.5rem 0.55rem !important;
    margin-top: 1rem !important;
  }
  .sor-edito__pills li {
    font-size: 0.7rem !important;
    padding: 0.35rem 0.75rem !important;
  }
}

/* ===========================================================
   Product page title — match hero heading style
   (serif, light, italic gold accent on key words)
   =========================================================== */
.sor-product-title__h,
h1.sor-product-title__h,
h2.sor-product-title__h {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
  font-weight: 400 !important;
  font-size: clamp(1.9rem, 4vw, 2.8rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.015em !important;
  color: var(--sor-text, #3A2D1E) !important;
  margin: 0 !important;
  text-wrap: balance;
}
.sor-product-title__h em,
h1.sor-product-title__h em,
h2.sor-product-title__h em {
  color: var(--sor-gold-dark, #A8842E) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-family: 'Playfair Display', Georgia, serif !important;
}
.product__title.sor-product-title { margin-bottom: 0.75rem !important; }
.product__title.sor-product-title > a { text-decoration: none !important; }

@media (max-width: 749px) {
  .sor-product-title__h,
  h1.sor-product-title__h,
  h2.sor-product-title__h {
    font-size: clamp(2.05rem, 8.2vw, 2.65rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.02em !important;
  }

  /* Product info column on mobile — extends to viewport edges with
     comfortable padding for title / size / color / ATC / trust.
     The bundle cards are pulled back outward via negative margin so they
     keep their breathing-room-edge look (user explicit request). */
  body .product .product__info-wrapper,
  body shopify-section .product .product__info-wrapper,
  body .product__info-wrapper {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    box-sizing: border-box !important;
  }
  body .product .product__info-container,
  body .product__info-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }
  /* Title, variant pickers, ATC, trust — sit inside the wrapper padding (1.25rem each side) */
  body .product__info-container .product-form,
  body .product__info-container .product-form__buttons,
  body .product__info-container .sor-trust,
  body .product__info-container .sor-cp-inline,
  body .product__info-container .sor-size-picker {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
  /* Bundle cards — extend wider than the rest (less padding inset) */
  body .product__info-container .sor-qb {
    width: calc(100% + 1.3rem) !important;
    max-width: calc(100% + 1.3rem) !important;
    margin-left: -0.65rem !important;
    margin-right: -0.65rem !important;
    gap: 8px !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    box-sizing: border-box !important;
  }
  body .product__info-container .sor-qb__card {
    padding: 0.85rem 0.4rem 0.7rem !important;
    min-width: 0 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   STICKY HOME CTA — floating pill at the bottom of viewport on home,
   shows after ~35% scroll, links to the silk pillowcase product page.
   Portals to <body> via JS to escape any transformed ancestor.
   =══════════════════════════════════════════════════════════════ */
.sor-sticky-home-cta {
  position: fixed !important;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%) translateY(140%);
  z-index: 9998;
  width: calc(100% - 28px);
  max-width: 460px;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.24s ease;
}
.sor-sticky-home-cta[hidden] { display: none !important; }
.sor-sticky-home-cta.is-visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
.sor-sticky-home-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.95rem 1.4rem;
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%);
  color: #FFFDF8;
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif);
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  -webkit-tap-highlight-color: transparent;
}
.sor-sticky-home-cta__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.sor-sticky-home-cta__btn svg:first-child {
  flex-shrink: 0;
}
.sor-sticky-home-cta__btn svg:last-child {
  flex-shrink: 0;
  margin-left: 0.15rem;
}
.sor-sticky-home-cta__btn span {
  white-space: nowrap;
}
@media (max-width: 380px) {
  .sor-sticky-home-cta__btn {
    font-size: 0.86rem;
    letter-spacing: 0.05em;
    padding: 0.85rem 1.1rem;
    gap: 0.45rem;
  }
}

/* Remove ugly square focus outline on header icons (cart, bell, search,
   hamburger) — keep accessibility via focus-visible only (keyboard nav). */
.header__icon,
.header__icon--cart,
#cart-icon-bubble,
.sor-bell,
header-drawer summary,
.search-modal__toggle,
.header__icon:focus,
.header__icon:active,
.header__icon--cart:focus,
.header__icon--cart:active,
#cart-icon-bubble:focus,
#cart-icon-bubble:active {
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
.header__icon:focus-visible,
#cart-icon-bubble:focus-visible {
  outline: 2px solid var(--sor-gold-dark, #A8842E) !important;
  outline-offset: 3px !important;
}
/* Touchscreens (mobile/tablet): no focus square on tap — keep it desktop-keyboard only */
@media (pointer: coarse) {
  .header__icon:focus-visible,
  .header__icon--cart:focus-visible,
  #cart-icon-bubble:focus-visible,
  .sor-bell:focus-visible,
  header-drawer summary:focus-visible {
    outline: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   RELATED PRODUCTS — Soraliana branding override.
   The Polish ć/ą/ę characters in "Pasujące do Twojego zakupu" were
   rendered with a heavier system fallback because Dawn's heading font
   variant didn't include the full Polish subset. We force Playfair Display
   (full Polish coverage) with explicit weight so all glyphs are consistent.
   =══════════════════════════════════════════════════════════════ */
.related-products,
.related-products__heading {
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
}
.related-products__heading,
.related-products .related-products__heading {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  letter-spacing: -0.01em !important;
  color: var(--sor-text, #1F1812) !important;
  text-align: center !important;
  margin: 0 auto 1.75rem !important;
  text-wrap: balance;
}
.related-products .card__heading,
.related-products .card__heading a,
.related-products .product-card__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 1.05rem !important;
  color: var(--sor-text, #1F1812) !important;
  line-height: 1.25 !important;
}
.related-products .price,
.related-products .price-item,
.related-products .card__information .price__regular,
.related-products .card__information .price__sale {
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  font-size: 0.98rem !important;
  color: var(--sor-text, #1F1812) !important;
}
.related-products .price-item--regular {
  font-weight: 700 !important;
}
.related-products .price--on-sale .price-item--last {
  color: var(--sor-gold-dark, #A8842E) !important;
  font-weight: 700 !important;
}
.related-products .price__sale .price-item--regular {
  color: var(--sor-text-muted, #8C7A65) !important;
  font-weight: 400 !important;
}

/* ═══════════════════════════════════════════════════════════════
   CART DRAWER — Soraliana branding
   z-index high enough to clear the floating header pill,
   cream background, serif headings, gold checkout CTA.
   =══════════════════════════════════════════════════════════════ */
cart-drawer.cart-drawer,
.cart-drawer {
  z-index: 99999 !important;
}
.cart-drawer__overlay {
  z-index: 1 !important;
  background: rgba(45, 30, 15, 0.18) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* The drawer content itself must sit ABOVE the overlay — give it a higher
   stacking level inside the cart-drawer container so the cream card and
   the gold checkout button stay fully clear (no dark filter). */
.cart-drawer .drawer__inner {
  position: relative !important;
  z-index: 2 !important;
}
/* Hide the floating header pill + announcement bar while the cart drawer is open */
body:has(cart-drawer.active) .shopify-section-group-header-group,
body:has(cart-drawer.active) .section-header,
body:has(cart-drawer.active) .utility-bar {
  z-index: 0 !important;
  pointer-events: none !important;
}
/* Drawer container — uniform cream throughout for visual harmony */
.cart-drawer .drawer__inner,
.cart-drawer.is-empty .drawer__inner,
.cart-drawer cart-drawer-items,
.cart-drawer .cart__contents,
.cart-drawer .drawer__contents,
.cart-drawer .drawer__cart-items-wrapper,
.cart-drawer .cart-items {
  background: #FEFCF8 !important;
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif) !important;
  color: var(--sor-text, #3A2D1E) !important;
}
.cart-drawer .drawer__inner { border-radius: 18px 0 0 18px; }

/* Drawer header — flush at top, single-line title + small close X */
.cart-drawer .drawer__header {
  background: #FEFCF8 !important;
  border-bottom: 1px solid rgba(201, 162, 78, 0.18) !important;
  padding: 1rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.cart-drawer .drawer__heading {
  font-family: var(--sor-heading, 'Playfair Display', Georgia, serif) !important;
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  color: var(--sor-text, #1F1812) !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  line-height: 1 !important;
}
.cart-drawer .drawer__close {
  color: var(--sor-text-muted, #8C7A65) !important;
  transition: color 0.2s ease;
  width: 32px !important;
  height: 32px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 4px !important;
  border-radius: 50% !important;
  background: transparent !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.cart-drawer .drawer__close svg {
  width: 16px !important;
  height: 16px !important;
}
.cart-drawer .drawer__close:hover {
  color: var(--sor-gold-dark, #A8842E) !important;
  background: rgba(201, 162, 78, 0.10) !important;
}

/* Column headers (PRODUKT / SUMA) — hide on mobile (too noisy with only 1 item),
   keep subtle on desktop. The product itself + total at bottom carry the meaning. */
@media (max-width: 749px) {
  .cart-drawer .cart-items__heading,
  .cart-drawer th { display: none !important; }
}
.cart-drawer .cart-items__heading,
.cart-drawer th {
  font-family: var(--sor-body) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  padding: 0.7rem 0 0.5rem !important;
  border-bottom: 1px solid rgba(201, 162, 78, 0.18) !important;
}

/* ─── Cart line item layout ─────────────────────────────
   Three-column grid: image | name + variants | price + qty + remove
   Tight, compact, and balanced — no lonely price floating in space. */
.cart-drawer .cart-items table,
.cart-drawer .cart-items tbody,
.cart-drawer .cart-items thead,
.cart-drawer .cart-items tr {
  display: block !important;
  width: 100% !important;
  border-collapse: collapse !important;
}
.cart-drawer .cart-item {
  display: grid !important;
  grid-template-columns: 78px 1fr auto !important;
  column-gap: 1.5rem !important;                          /* explicit column-gap, wider for desktop */
  row-gap: 0.6rem !important;
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid rgba(224, 211, 190, 0.5) !important;
  align-items: start !important;
}
.cart-drawer .cart-item__details {
  padding-left: 0.15rem !important;                       /* belt-and-suspenders: tiny extra space */
}
.cart-drawer .cart-item__media {
  grid-column: 1 !important;
  width: 78px !important;
  padding: 0 !important;
  margin: 0 !important;
}
.cart-drawer .cart-item__image {
  width: 78px !important;
  height: 78px !important;
  border-radius: 10px !important;
  background: #FBF6EB !important;
  box-shadow: 0 2px 10px rgba(110, 90, 69, 0.08);
  object-fit: cover !important;
}
.cart-drawer .cart-item__details {
  grid-column: 2 !important;
  padding: 0 0 0 1.4rem !important;                       /* TABLE layout uses TD padding (grid gap doesn't apply on TDs) */
  margin: 0 !important;
  min-width: 0 !important;
  vertical-align: top !important;
}
.cart-drawer .cart-item__totals {
  grid-column: 3 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 0.5rem !important;
  text-align: right !important;
  min-width: 0 !important;
}
.cart-drawer .cart-item__price-wrapper {
  text-align: right !important;
  white-space: nowrap !important;
}
.cart-drawer .cart-item__quantity {
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  width: auto !important;
}
.cart-drawer .cart-item__quantity-wrapper {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}
.cart-drawer .cart-item__image {
  border-radius: 10px !important;
  background: #FBF6EB !important;
  box-shadow: 0 2px 10px rgba(110, 90, 69, 0.08);
}
.cart-drawer .cart-item__name {
  font-family: var(--sor-heading, 'Playfair Display', Georgia, serif) !important;
  font-size: 1.22rem !important;
  font-weight: 500 !important;
  color: var(--sor-text, #1F1812) !important;
  letter-spacing: -0.005em !important;
  line-height: 1.22 !important;
}
.cart-drawer .cart-item__details > * {
  font-size: 0.82rem !important;
  color: #5A4A3A !important;                              /* warmer, more refined than muted brown */
  margin: 0.18rem 0 !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: keep-all !important;
}
.cart-drawer .cart-item__name {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: keep-all !important;
}
.cart-drawer .cart-item__final-price,
.cart-drawer .product-option,
.cart-drawer .cart-item__totals .price--end {
  font-family: var(--sor-body) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: var(--sor-text, #1F1812) !important;
}
.cart-drawer .cart-item__totals .price--end {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
}
/* Sor: prix plus discrets → le titre reste le héros, ensemble harmonieux */
.cart-drawer .cart-item__discounted-prices,
.cart-drawer .cart-item__discounted-prices *,
.cart-drawer .cart-item__price-wrapper,
.cart-drawer .cart-item__price-wrapper * {
  font-size: 0.82rem !important;
  font-weight: 500 !important;
}
.cart-drawer .cart-item__price-wrapper .cart-item__discounted-prices .cart-item__final-price,
.cart-drawer .cart-item__totals .price--end {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
}
.cart-drawer .product-option { font-size: 0.84rem !important; }
.cart-drawer .cart-remove-button {
  color: var(--sor-text-muted, #8C7A65) !important;
  border-radius: 8px !important;
  transition: background 0.2s ease, color 0.2s ease;
}
.cart-drawer .cart-remove-button:hover {
  color: #B83A2E !important;
  background: rgba(220, 60, 50, 0.06) !important;
}

/* Quantity stepper — clean elegant pill, no inner dividers/lines */
.cart-drawer .quantity,
.cart-drawer quantity-input,
.cart-drawer .quantity-popover-container .quantity {
  border: 1px solid rgba(201, 162, 78, 0.35) !important;
  border-radius: 999px !important;
  background: #FFFCF6 !important;
  min-height: 0 !important;
  height: 34px !important;
  width: auto !important;
  max-width: none !important;
  display: inline-flex !important;
  align-items: center !important;
  overflow: hidden !important;
  isolation: isolate !important;
  box-shadow: 0 1px 4px rgba(110, 90, 69, 0.05);
  padding: 0 !important;
  position: relative !important;
}
/* Kill ALL Dawn pseudo-element dividers between buttons and input */
.cart-drawer .quantity::before,
.cart-drawer .quantity::after,
.cart-drawer .quantity__button::before,
.cart-drawer .quantity__button::after,
.cart-drawer .quantity__input::before,
.cart-drawer .quantity__input::after {
  display: none !important;
  content: none !important;
  border: 0 !important;
}
.cart-drawer .quantity__button {
  color: var(--sor-gold-dark, #A8842E) !important;
  background: transparent !important;
  transition: background 0.2s ease, color 0.2s ease;
  width: 32px !important;
  height: 32px !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;                                  /* no internal dividers */
  border-radius: 0 !important;                           /* corners come from parent pill */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.cart-drawer .quantity__button:hover {
  color: var(--sor-text, #1F1812) !important;
  background: rgba(201, 162, 78, 0.1) !important;
}
.cart-drawer .quantity__input {
  background: transparent !important;
  color: var(--sor-text, #1F1812) !important;
  font-weight: 700 !important;
  font-family: var(--sor-body) !important;
  font-size: 0.92rem !important;
  width: 28px !important;
  min-width: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  border: 0 !important;                                  /* no internal dividers */
  outline: 0 !important;
  box-shadow: none !important;
  height: 32px !important;
}
/* Make sure the SVG icons (- and +) are clean and centered */
.cart-drawer .quantity__button svg {
  width: 12px !important;
  height: 12px !important;
}

/* Cart items wrapper — items stack naturally, footer sits right below them
   (NOT pushed to bottom of viewport, which created huge empty space). */
.cart-drawer .drawer__inner,
.cart-drawer cart-drawer-items,
.cart-drawer .cart__contents {
  display: flex !important;
  flex-direction: column !important;
}
.cart-drawer .drawer__contents,
.cart-drawer .cart-drawer__form,
.cart-drawer .cart-items,
.cart-drawer .drawer__cart-items-wrapper {
  flex: 0 0 auto !important;
  overflow: visible !important;
}
/* Footer sits right under the items (no flex-grow spacer above it) */
.cart-drawer .drawer__footer,
.cart-drawer__footer {
  margin-top: 0 !important;
  flex: 0 0 auto !important;
}

/* Footer area (totals + checkout button) — same cream as drawer body */
.cart-drawer .drawer__footer,
.cart-drawer__footer {
  background: #FEFCF8 !important;
  border-top: 1px solid rgba(201, 162, 78, 0.18) !important;
  padding: 1.1rem 1.25rem 1.25rem !important;
}
/* Reorder so the REALIZUJ ZAKUP button sits ABOVE the totals + ship bar
   (psychology: visible primary CTA hits the eye first, totals are reference) */
.cart-drawer .drawer__footer {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
}
.cart-drawer .drawer__footer .cart__ctas {
  order: 1 !important;
  margin: 0 !important;
}
.cart-drawer .drawer__footer .cart-drawer__footer {
  order: 2 !important;
  border-top: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
/* Kill any rogue dividers / borders inside footer that Dawn might add */
.cart-drawer .drawer__footer > *,
.cart-drawer .cart-drawer__form ~ * {
  border-top: 0 !important;
  border-bottom: 0 !important;
}
.cart-drawer .cart-drawer__form {
  border: 0 !important;
}
/* Hide the empty footer separator line on top */
.cart-drawer .drawer__footer::before,
.cart-drawer__footer::before { display: none !important; content: none !important; }
/* Totals row — label and value perfectly aligned on a single baseline */
.cart-drawer .totals {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  font-family: var(--sor-body) !important;
  gap: 1rem !important;
  margin: 0 0 0.5rem !important;
}
.cart-drawer .totals__total,
.cart-drawer__footer .totals__total {
  font-family: var(--sor-body) !important;
  font-size: 0.95rem !important;                          /* smaller, less shouty than the default h2 */
  font-weight: 600 !important;
  color: #3A2D1E !important;
  letter-spacing: 0.005em !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}
.cart-drawer .totals__total-value,
.cart-drawer .totals__subtotal-value {
  font-family: var(--sor-heading, 'Playfair Display', Georgia, serif) !important;
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  color: #1F1812 !important;
  letter-spacing: -0.005em !important;
  line-height: 1 !important;
  margin: 0 !important;
}
.cart-drawer .tax-note,
.cart-drawer .totals small,
.cart-drawer .totals__subtotal small {
  font-size: 0.78rem !important;
  color: var(--sor-text-muted, #8C7A65) !important;
  line-height: 1.5 !important;
}
.cart-drawer .tax-note a,
.cart-drawer .totals a {
  color: var(--sor-gold-dark, #A8842E) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* Checkout button — premium gold gradient matching site-wide CTAs */
.cart-drawer #CartDrawer-Checkout,
.cart-drawer .cart__checkout-button {
  width: 100% !important;
  background: linear-gradient(135deg, #D9B15F 0%, #C89D43 50%, #B9872E 100%) !important;
  color: #FFFDF8 !important;
  font-family: var(--sor-body) !important;
  font-size: 0.98rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 1.05rem 1.5rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 28px rgba(168, 132, 46, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
  text-shadow: 0 1px 1px rgba(110, 80, 25, 0.18) !important;
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease !important;
  min-height: 0 !important;
}
.cart-drawer #CartDrawer-Checkout::before,
.cart-drawer .cart__checkout-button::before {
  display: none !important;
}
.cart-drawer #CartDrawer-Checkout:hover,
.cart-drawer .cart__checkout-button:hover {
  background: linear-gradient(135deg, #DCB565 0%, #CDA34A 50%, #BD8C34 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 32px rgba(168, 132, 46, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

/* Empty state */
.cart-drawer.is-empty .drawer__heading,
.cart-drawer .cart__empty-text {
  font-family: var(--sor-heading) !important;
  font-weight: 400 !important;
  color: var(--sor-text, #1F1812) !important;
}
.cart-drawer__empty-content .button,
.cart-drawer .drawer__inner-empty .button,
.cart-drawer .drawer__inner-empty button {
  background: var(--sor-gold, #C9A24E) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-size: 0.85rem !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
/* Kill Dawn's pseudo-element border ring that draws the visible rectangle */
.cart-drawer__empty-content .button::before,
.cart-drawer__empty-content .button::after,
.cart-drawer .drawer__inner-empty .button::before,
.cart-drawer .drawer__inner-empty .button::after,
.cart-drawer .drawer__inner-empty button::before,
.cart-drawer .drawer__inner-empty button::after {
  display: none !important;
  content: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
.cart-drawer__empty-content .button:focus,
.cart-drawer__empty-content .button:active,
.cart-drawer .drawer__inner-empty .button:focus,
.cart-drawer .drawer__inner-empty .button:active {
  outline: 0 !important;
  box-shadow: none !important;
}
.cart-drawer__empty-content .button:focus-visible {
  outline: 2px solid var(--sor-gold-dark, #A8842E) !important;
  outline-offset: 3px !important;
  box-shadow: none !important;
}

/* Drawer width on desktop — slightly wider for breathing room */
@media (min-width: 750px) {
  .cart-drawer .drawer__inner {
    max-width: 480px !important;
    width: 480px !important;
  }
}
@media (max-width: 749px) {
  .cart-drawer .drawer__inner {
    border-radius: 18px 0 0 18px !important;
    max-width: calc(100vw - 14px) !important;
    width: calc(100vw - 14px) !important;
    box-shadow: -8px 0 24px rgba(58, 48, 40, 0.18);
  }
  .cart-drawer .drawer__header { padding: 1rem 1.1rem 0.7rem !important; }
  .cart-drawer .drawer__footer { padding: 1rem 1.1rem 1.25rem !important; }
  .cart-drawer .drawer__heading { font-size: 1.25rem !important; }
}

/* ─── Free-shipping progress bar (footer placement) ──────────── */
.sor-cart-ship {
  margin: 0.75rem 0 1rem;
  padding: 0.6rem 0.85rem 0.75rem;
  background: rgba(201, 162, 78, 0.06);
  border: 1px solid rgba(201, 162, 78, 0.18);
  border-radius: 10px;
}
.sor-cart-ship--footer {
  margin: 0.85rem 0 0;
}
.sor-cart-ship__msg {
  margin: 0 0 0.6rem;
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif);
  font-size: 0.82rem;
  line-height: 1.45;
  color: #4A3D2E;
  text-align: left;
}
.sor-cart-ship__msg strong { color: #1F1812; font-weight: 700; white-space: nowrap; }
.sor-cart-ship__ic {
  color: var(--sor-gold-dark, #A8842E);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  vertical-align: -0.25em;
  margin-right: 0.35rem;
}
.sor-cart-ship__bar {
  width: 100%;
  height: 8px;
  background: rgba(201, 162, 78, 0.15);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.sor-cart-ship__fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: var(--sor-ship-pct, 0%);
  min-width: 8px;
  background: linear-gradient(90deg, #D4B05E 0%, #C9A24E 50%, #A8842E 100%);
  border-radius: 999px;
  transition: width 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
  box-shadow: 0 0 8px rgba(201, 162, 78, 0.45) inset;
}
/* Shimmer animation when threshold reached — celebrates the unlock */
.sor-cart-ship--unlocked .sor-cart-ship__bar {
  background: linear-gradient(90deg, #C9A24E 0%, #D4B05E 100%);
}
.sor-cart-ship--unlocked .sor-cart-ship__fill {
  width: 100% !important;
  background: linear-gradient(90deg, #D4B05E 0%, #E8C467 30%, #FFD97A 50%, #E8C467 70%, #D4B05E 100%);
  background-size: 200% 100%;
  animation: sor-ship-shimmer 2.4s linear infinite;
  box-shadow: 0 0 12px rgba(232, 196, 103, 0.6) inset, 0 0 16px rgba(201, 162, 78, 0.5);
}
.sor-cart-ship--unlocked .sor-cart-ship__ic {
  color: var(--sor-gold-dark, #A8842E);
  animation: sor-ship-pop 0.6s ease-out;
}
.sor-cart-ship--unlocked .sor-cart-ship__msg strong {
  color: var(--sor-gold-dark, #A8842E);                   /* elegant gold, no cheap green */
}
/* Scale marker under the bar — explicit 0 → 200 zł milestone */
.sor-cart-ship__scale {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.4rem;
  font-family: var(--sor-body, 'Lato', system-ui, sans-serif);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sor-cart-ship__scale-start {
  color: #8C7A65;
}
.sor-cart-ship__scale-end {
  color: var(--sor-gold-dark, #A8842E);
  text-align: right;
}
.sor-cart-ship__scale-end--reached {
  color: var(--sor-gold-dark, #A8842E);
  font-weight: 700;
}
@keyframes sor-ship-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -100% 0; }
}
@keyframes sor-ship-pop {
  0%   { transform: scale(0.6); opacity: 0; }
  60%  { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); }
}

/* ── Collection facets: compact, on-brand filter/sort label ── */
.mobile-facets__open-label.button-label,
.facets__heading,
.facets__summary .button-label {
  font-family: var(--font-body-family) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.02em !important;
  font-weight: 600 !important;
  text-transform: none !important;
}
.mobile-facets__open { color: #b08d57 !important; }
.mobile-facets__open .svg-wrapper svg,
.mobile-facets__open svg { color: #b08d57 !important; width: 18px; height: 18px; }
.mobile-facets__count,
.product-count__text { font-size: 0.84rem !important; color: rgba(var(--color-foreground), 0.6) !important; }

/* ── Bundle podkład (2 cards) : force pleine largeur via flex (le grid+width:100% ne remplissait pas) ── */
.sor-qb[style*="repeat(2"] {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  align-self: stretch !important;
}
.sor-qb[style*="repeat(2"] > .sor-qb__card {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
}

/* ── FAQ compact — annule les overrides "airy" empilés (padding 1.5rem, gap 24px, font 1.1rem) ── */
.sor-faq__item,
.sor-section .sor-faq__item { padding: 0 !important; }
.sor-faq__list { gap: 0 !important; }
.sor-faq__q,
.sor-faq summary,
.sor-faq__question,
.sor-section .sor-faq summary,
.sor-section .sor-faq__q {
  font-size: 0.95rem !important;
  line-height: 1.3 !important;
  padding: 0.6rem 1rem !important;
}
.sor-faq__a,
.sor-section .sor-faq__a,
.sor-faq__answer,
.sor-faq .answer,
.sor-faq summary + div,
.sor-faq summary + div p {
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  padding-top: 0 !important;
  padding-bottom: 0.7rem !important;
}
/* Tiny breathing room between question and answer (mini-FAQ) — +~3px, the div only */
.sor-faq summary + div,
.sor-faq__a { padding-top: 0.2rem !important; }

/* ═══════════════════════════════════════════════════════════════
   COLLECTION PAGE ("Produkty" — /collections/all) — Soraliana brand
   Branded hero title, refined filter/sort bar, elegant product cards.
   Appended last → wins over Dawn defaults + earlier partial rules.
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero / page title ── */
.collection-hero {
  background: transparent !important;
  padding: clamp(2.2rem, 4.5vw, 3.8rem) 0 0.4rem !important;
  border: 0 !important;
}
.collection-hero__inner { text-align: center !important; }
.collection-hero__title {
  font-family: var(--sor-heading) !important;
  font-size: clamp(2.3rem, 5vw, 3.6rem) !important;
  font-weight: 500 !important;
  color: var(--sor-text) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.08 !important;
  margin: 0 auto !important;
}
.collection-hero__title::before {
  content: 'NASZA KOLEKCJA';
  display: block;
  font-family: var(--sor-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: var(--sor-gold);
  margin-bottom: 0.7rem;
}
.collection-hero__description {
  font-family: var(--sor-body) !important;
  color: var(--sor-text-muted) !important;
  max-width: 560px;
  margin: 0.7rem auto 0 !important;
  font-size: 0.98rem;
  line-height: 1.6;
}

/* ── Filter / sort bar — clean branded strip ── */
.facets-wrapper {
  border-top: 1px solid var(--sor-border) !important;
  border-bottom: 1px solid var(--sor-border) !important;
  margin-top: clamp(1.6rem, 3vw, 2.6rem) !important;
  padding-top: 0.7rem !important;
  padding-bottom: 0.7rem !important;
}
.facets__heading,
.facets__summary-label,
.facets__summary .button-label,
.facet-filters__label,
.product-count__text,
.facets__price,
.facet-filters__sort label,
.mobile-facets__open-label {
  font-family: var(--sor-body) !important;
  color: var(--sor-text) !important;
  letter-spacing: 0.03em !important;
}
.facet-filters__label,
.facets__heading,
.facets__summary-label {
  font-weight: 600 !important;
  text-transform: none !important;
}
.facets__reset,
.active-facets__button-inner,
.facets__summary:hover .facets__summary-label {
  color: var(--sor-gold-dark) !important;
}
.facets__summary { cursor: pointer; }
.facet-filters__sort,
.facets select {
  font-family: var(--sor-body) !important;
  color: var(--sor-text) !important;
}

/* ── Product cards — elegant, centered, brand fonts ── */
.collection .product-grid {
  column-gap: clamp(1rem, 2.5vw, 2rem) !important;
  row-gap: clamp(1.8rem, 3.5vw, 2.8rem) !important;
}
.collection .card,
.collection .card-wrapper { background: transparent !important; }
.collection .card__media,
.collection .card .media {
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #F7F2EB !important;
  box-shadow: 0 8px 24px rgba(110, 90, 69, 0.10) !important;
}
.collection .card__media img {
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}
.collection .card-wrapper:hover .card__media img { transform: scale(1.045) !important; }

.collection .card__content,
.collection .card__information {
  text-align: center !important;
  padding: 0.95rem 0.4rem 0 !important;
}
.collection .card__heading,
.collection .card__heading a {
  font-family: var(--sor-heading) !important;
  font-size: 1.08rem !important;
  font-weight: 500 !important;
  color: var(--sor-text) !important;
  line-height: 1.28 !important;
  letter-spacing: 0 !important;
}
.collection .card__heading a:hover { color: var(--sor-gold-dark) !important; }

/* prices — muted strikethrough regular + gold sale */
.collection .price {
  font-family: var(--sor-body) !important;
  margin-top: 0.4rem !important;
  justify-content: center !important;
  text-align: center !important;
}
.collection .price__container,
.collection .price__regular,
.collection .price__sale {
  justify-content: center !important;
  text-align: center !important;
}
.collection .price .price-item--regular {
  color: var(--sor-text-muted) !important;
  font-weight: 400 !important;
}
.collection .price__sale .price-item--regular {
  text-decoration: line-through !important;
  opacity: 0.7;
}
.collection .price__sale .price-item--sale,
.collection .price .price-item--last,
.collection .price__sale .price-item--last {
  color: var(--sor-gold-dark) !important;
  font-weight: 700 !important;
  font-size: 1.02rem !important;
}

/* "W PROMOCJI" badge → brand gold (it ships as dark color-scheme-4) */
.collection .card__badge .badge,
.collection .card-wrapper .card__badge .badge {
  background: var(--sor-gold) !important;
  color: #fff !important;
  border: 0 !important;
}

/* Hide the Loox star rating on collection cards (cleaner, uniform grid) */
.collection .loox-rating,
.collection .loox-rating-display { display: none !important; }

/* Force 4 products per row on desktop */
@media (min-width: 990px) {
  .collection .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   PREMIUM POLISH — world-class fit & finish (Apple / luxury beauty).
   Net-new micro-details only. Pure CSS, global, zero layout risk.
   The kind of "you can't name it but it feels expensive" signals.
   ═══════════════════════════════════════════════════════════════ */

/* Signature — branded text selection (gold highlight instead of browser blue) */
::selection { background: rgba(201, 162, 78, 0.9); color: #FFFCF9; text-shadow: none; }
::-moz-selection { background: rgba(201, 162, 78, 0.9); color: #FFFCF9; text-shadow: none; }

/* Kill the grey/blue tap flash everywhere (the #1 "cheap app" tell on mobile) */
* { -webkit-tap-highlight-color: transparent; }

/* Crisper type rendering across the whole site */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Tactile "press" — buttons scale down a hair on click (responsiveness reads as quality) */
.button,
.sor-btn-primary, .sor-btn-secondary, .sor-btn-ghost,
.sor-ev__cta, .sor-edito__cta,
.cart__checkout-button,
.product-form__submit, product-form button[type="submit"],
.sor-qb__card, .sor-swatch, .sor-bell, .sor-promo-link {
  transition: transform 0.14s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.22s ease, filter 0.2s ease, color 0.18s ease;
}
.button:active,
.sor-btn-primary:active, .sor-btn-secondary:active, .sor-btn-ghost:active,
.sor-ev__cta:active, .sor-edito__cta:active,
.cart__checkout-button:active,
.product-form__submit:active, product-form button[type="submit"]:active {
  transform: scale(0.972) !important;
}

/* Soft colour transition on every link (no instant snap) */
a { transition: color 0.18s ease; }

/* Slim, branded scrollbar — desktop pointers only (Apple-style thin rail) */
@media (min-width: 990px) and (pointer: fine) {
  html { scrollbar-width: thin; scrollbar-color: #D9C4A0 transparent; }
  ::-webkit-scrollbar { width: 11px; height: 11px; }
  ::-webkit-scrollbar-track { background: transparent; }
  ::-webkit-scrollbar-thumb {
    background-color: #D9C4A0;
    border-radius: 999px;
    border: 3px solid #FFFCF9;
  }
  ::-webkit-scrollbar-thumb:hover { background-color: var(--sor-gold, #C9A24E); }
}

/* Honour reduced-motion: kill the press/transition micro-animations */
@media (prefers-reduced-motion: reduce) {
  .button, .sor-btn-primary, .sor-btn-secondary, .sor-ev__cta,
  .product-form__submit, product-form button[type="submit"], .sor-qb__card, a {
    transition: none !important;
  }
  .button:active, .sor-ev__cta:active, .cart__checkout-button:active,
  .product-form__submit:active, product-form button[type="submit"]:active { transform: none !important; }
}

/* Smooth cross-page fade (View Transitions API — Chrome/Edge; silently ignored elsewhere).
   Gives a soft fade between pages instead of a hard white flash. */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.34s;
  animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ═══════════════════════════════════════════════════════════════
   UNIFIED CTA SHIMMER — the "Zamów i wypróbuj" effect on every primary
   gold CTA (hover-triggered light sweep + lift + brightness).
   Hero & header CTAs keep their own auto-looping shine (untouched).
   ═══════════════════════════════════════════════════════════════ */
.sor-adv__cta, .sor-adv2__cta, .sor-powody__cta, .sor-bigben__cta,
.sor-spotlight__cta, .sor-product-spotlight__cta, .sor-coll__cta,
.sor-thanks__cta, .sor-res__cta, .sor-tm__cta, .sor-edu__cta,
.sor-cmp__cta, .sor-fake__cta, .sor-edito__cta, .sor-ei__cta,
.sor-btn-primary {
  position: relative !important;
  overflow: hidden !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease !important;
}
.sor-adv__cta::after, .sor-adv2__cta::after, .sor-powody__cta::after,
.sor-bigben__cta::after, .sor-spotlight__cta::after, .sor-product-spotlight__cta::after,
.sor-coll__cta::after, .sor-thanks__cta::after, .sor-res__cta::after,
.sor-tm__cta::after, .sor-edu__cta::after, .sor-cmp__cta::after,
.sor-fake__cta::after, .sor-edito__cta::after, .sor-ei__cta::after,
.sor-btn-primary::after {
  content: '';
  position: absolute;
  top: 0;
  left: -120%;
  width: 75%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.45), transparent);
  transform: skewX(-20deg);
  transition: left 0.6s ease;
  pointer-events: none;
}
.sor-adv__cta:hover, .sor-adv2__cta:hover, .sor-powody__cta:hover,
.sor-bigben__cta:hover, .sor-spotlight__cta:hover, .sor-product-spotlight__cta:hover,
.sor-coll__cta:hover, .sor-thanks__cta:hover, .sor-res__cta:hover,
.sor-tm__cta:hover, .sor-edu__cta:hover, .sor-cmp__cta:hover,
.sor-fake__cta:hover, .sor-edito__cta:hover, .sor-ei__cta:hover,
.sor-btn-primary:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.04) !important;
}
.sor-adv__cta:hover::after, .sor-adv2__cta:hover::after, .sor-powody__cta:hover::after,
.sor-bigben__cta:hover::after, .sor-spotlight__cta:hover::after, .sor-product-spotlight__cta:hover::after,
.sor-coll__cta:hover::after, .sor-thanks__cta:hover::after, .sor-res__cta:hover::after,
.sor-tm__cta:hover::after, .sor-edu__cta:hover::after, .sor-cmp__cta:hover::after,
.sor-fake__cta:hover::after, .sor-edito__cta:hover::after, .sor-ei__cta:hover::after,
.sor-btn-primary:hover::after {
  left: 125%;
}
@media (prefers-reduced-motion: reduce) {
  .sor-adv__cta::after, .sor-adv2__cta::after, .sor-powody__cta::after,
  .sor-bigben__cta::after, .sor-spotlight__cta::after, .sor-product-spotlight__cta::after,
  .sor-coll__cta::after, .sor-thanks__cta::after, .sor-res__cta::after,
  .sor-tm__cta::after, .sor-edu__cta::after, .sor-cmp__cta::after,
  .sor-fake__cta::after, .sor-edito__cta::after, .sor-ei__cta::after,
  .sor-btn-primary::after { display: none !important; }
  .sor-adv__cta:hover, .sor-powody__cta:hover, .sor-btn-primary:hover,
  .sor-coll__cta:hover, .sor-res__cta:hover, .sor-bigben__cta:hover { transform: none !important; }
}
