.swieta .hero { height: 70svh; min-height: 30rem; max-height: 44rem; }
.swieta .hero-overlay h1 { font-size: clamp(2.8rem, 9vw, 5.5rem); }
.has-announce .site-header { top: 2.3rem; }

/* Trzy warianty kolorystyczne podglądu: ?kolor=wino | miedz | roz (bez parametru: wygląd domyślny). */
.swieta.k-wino { --accent: #6e2b36; --accent-text: #fffdf8; --tint: rgba(74, 20, 32, .55); --section-bg: var(--color-paper); }
.swieta.k-miedz { --accent: #8a4f1c; --accent-text: #fffdf8; --tint: rgba(62, 36, 16, .5); --section-bg: var(--color-paper); --line: #b87333; }
.swieta.k-roz { --accent: #8a3a4a; --accent-text: #fffdf8; --tint: rgba(110, 50, 62, .42); --section-bg: #f1dcd6; }
.swieta[class*="k-"] .hero::after { background: linear-gradient(180deg, var(--tint) 0%, rgba(20,22,20,.05) 42%, var(--tint) 100%); }
.swieta[class*="k-"] .featured { background: var(--section-bg); }
.swieta[class*="k-"] .featured .eyebrow, .swieta[class*="k-"] .how-list span { color: var(--accent); }
.swieta[class*="k-"] .button-dark { background: var(--accent); color: var(--accent-text); }
.swieta[class*="k-"] .hero .button-light { color: var(--accent); }
.swieta[class*="k-"] .how h2 { border-top: 2px solid var(--line, var(--accent)); padding-top: var(--space-6); }
.swieta[class*="k-"] .product-card:hover strong { color: var(--accent); }
.swieta[class*="k-"] .how { background: var(--accent); color: var(--accent-text); }
.swieta[class*="k-"] .how h2 { border-top-color: color-mix(in srgb, var(--accent-text) 55%, transparent); }
.swieta[class*="k-"] .how .how-list span { color: color-mix(in srgb, var(--accent-text) 75%, transparent); }
.swieta[class*="k-"] .how .how-list p { color: color-mix(in srgb, var(--accent-text) 88%, transparent); }
.swieta[class*="k-"] .how .button-dark { background: var(--accent-text); color: var(--accent); }
.swieta.k-miedz .how { background: #8a4f1c; }
.swieta.k-miedz .featured { background: #f3e8dc; }
.swieta.k-wino .featured { background: #f6ecec; }

/* Świąteczne animacje w hero: padający śnieg i migające gwiazdki. Tylko transform i opacity, wyłączone przy "ogranicz ruch". */
.festive { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
.flake { position: absolute; top: -6%; left: var(--x); width: var(--s); height: var(--s); border-radius: 50%; background: rgba(255, 253, 248, .85); filter: blur(.4px); will-change: transform; animation: snow var(--d) linear var(--delay) infinite; }
.star { position: absolute; left: var(--x); top: var(--y); width: var(--size); height: var(--size); background: #fff3d1; clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%); opacity: .85; animation: twinkle var(--tw) ease-in-out var(--delay) infinite; }
@keyframes snow { from { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(var(--sway), 55vh, 0); } to { transform: translate3d(0, 112vh, 0); } }
@keyframes twinkle { 0%, 100% { opacity: .25; transform: scale(.7) rotate(0deg); } 50% { opacity: 1; transform: scale(1.1) rotate(20deg); } }
@media (prefers-reduced-motion: reduce) { .festive { display: none; } }

/* Choinki i bombki w kolorze wina w hero /swieta/. */
.festive .bauble { position: absolute; top: 0; left: var(--x); width: var(--s); height: calc(var(--len) + var(--s)); transform-origin: 50% 0; animation: swing 4.5s ease-in-out var(--sd) infinite; will-change: transform; }
.festive .bauble::before { content: ''; position: absolute; top: 0; left: 50%; width: 1px; height: var(--len); background: rgba(255, 253, 248, .6); }
.festive .bauble::after { content: ''; position: absolute; top: var(--len); left: 0; width: var(--s); height: var(--s); border-radius: 50%; background: radial-gradient(circle at 32% 28%, #c47a8b 0 8%, #8a3a4a 30%, #6e2b36 62%, #4a1520 100%); box-shadow: 0 6px 12px rgba(0,0,0,.3), inset -2px -3px 6px rgba(0,0,0,.25); }
@keyframes swing { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
@media (max-width: 700px) { .festive .bauble:nth-of-type(n+3) { display: none; } }
@media (prefers-reduced-motion: reduce) { .festive .bauble { animation: none; } }

/* Choinka w zdjęciu stoi z lewej strony, a skrzynka na środku: na wąskim ekranie przesuwamy kadr tak, żeby widać było choinkę. */
.swieta .hero-image { object-position: 50% center; }
@media (max-width: 800px) { .swieta .hero-image { object-position: 8% center; } }

/* Liczniki dni w hero /swieta/. */
.festive-counters { display: flex; justify-content: center; gap: var(--space-3); margin: 0 auto var(--space-5); padding: 0; list-style: none; max-width: 40rem; }
.festive-counters li { flex: 1 1 0; padding: var(--space-3) var(--space-2); border: 1px solid rgba(255, 253, 248, .35); border-radius: var(--radius-sm); background: rgba(40, 14, 20, .38); backdrop-filter: blur(6px); }
.festive-counters strong { display: block; font-family: var(--font-display); font-variation-settings: 'SOFT' 100; font-weight: 340; font-size: clamp(1.8rem, 6vw, 2.8rem); line-height: 1; letter-spacing: -.03em; }
.festive-counters span { display: block; margin-top: .3rem; font-size: .72rem; line-height: 1.25; }
@media (max-width: 520px) { .festive-counters span { font-size: .66rem; } .festive-counters { gap: var(--space-2); } }

/* Generator imienia w kolorach strony świątecznej (wino i róż). */
.swieta .preview { background: #f1dcd6; }
.swieta .preview-patterns legend strong { color: #6e2b36; }
.swieta .preview-form input { border-color: #6e2b36; }
.swieta .preview-chips button { border-color: rgba(110, 43, 54, .35); }
.swieta .preview-chips button:hover { border-color: #6e2b36; }
.swieta .preview-pattern-list button[aria-pressed="true"] { border-color: #6e2b36; box-shadow: 0 0 0 2px #f1dcd6, 0 0 0 4px #6e2b36; }
.swieta .preview .button-dark { background: #6e2b36; color: #fffdf8; }
.swieta .preview-stage img { box-shadow: 0 1.25rem 3rem rgba(74, 20, 32, .22); }

/* Szybkie filtry nad listą prezentów. */
.xmas-filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-6) 0 0; }
.xmas-filters button { padding: .55rem 1.05rem; border: 1px solid #6e2b36; border-radius: var(--radius-full); background: transparent; color: #4a1520; font-size: .9rem; }
.xmas-filters button:hover { background: rgba(110, 43, 54, .08); }
.xmas-filters button[aria-pressed="true"] { background: #6e2b36; color: #fffdf8; }
.xmas-filter-status { min-height: 1.4em; margin: var(--space-3) 0 0; font-size: .9rem; font-weight: 600; color: #6e2b36; }
.product-card[hidden] { display: none; }

/* Przyklejony pasek terminu po przewinięciu banera. */
.xmas-sticky { position: fixed; z-index: 45; top: 0; left: 0; right: 0; padding: .55rem var(--space-4); background: #4a1520; color: #fffdf8; text-align: center; font-size: .85rem; font-weight: 600; transform: translateY(-100%); transition: transform .35s ease; }
.xmas-sticky.is-on { transform: none; }
.xmas-sticky a { text-decoration: underline; text-underline-offset: .2em; }
@media (prefers-reduced-motion: reduce) { .xmas-sticky { transition: none; } }

/* Strona po zakończeniu sezonu. */
.xmas-closed { padding: var(--space-24) 0; background: #6e2b36; color: #fffdf8; text-align: center; }
.xmas-closed h1 { max-width: 14ch; margin: 0 auto var(--space-4); font-size: clamp(2.6rem, 8vw, 5rem); }
.xmas-closed p { max-width: 34rem; margin-left: auto; margin-right: auto; }
.xmas-closed-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.xmas-closed .button-outline { border: 1px solid #fffdf8; color: #fffdf8; background: transparent; }
.xmas-closed .button-light { color: #6e2b36; }

/* Dostępność: widoczna ramka fokusu z klawiatury, w kolorze wina na jasnym tle i jasna na ciemnym. */
.swieta a:focus-visible, .swieta button:focus-visible, .swieta input:focus-visible, .swieta textarea:focus-visible { outline: 3px solid #6e2b36; outline-offset: 3px; }
.swieta .room a:focus-visible, .swieta .room button:focus-visible, .swieta .how a:focus-visible, .xmas-sticky a:focus-visible, .xmas-closed a:focus-visible { outline-color: #fffdf8; }
.swieta .card-tag, .swieta .eyebrow { font-size: max(.75rem, 12px); }

/* Kalkulator terminu. */
.xmas-calc { padding: var(--space-10) 0; background: #f6ecec; border-bottom: 1px solid rgba(110, 43, 54, .15); }
.xmas-calc h2 { margin-bottom: var(--space-5); }
.xmas-calc-form { display: grid; gap: var(--space-5); }
.xmas-calc fieldset { margin: 0; padding: 0; border: 0; display: grid; gap: var(--space-2); }
.xmas-calc legend, .xmas-calc label[for] { margin-bottom: var(--space-2); padding: 0; font-weight: 600; }
.xmas-calc fieldset label { display: flex; gap: var(--space-2); align-items: center; font-weight: 400; }
.xmas-calc select { width: 100%; max-width: 20rem; min-height: 3rem; padding: .5rem 1rem; border: 1px solid #6e2b36; border-radius: var(--radius-full); background: var(--color-white); color: var(--color-ink); font-size: 1rem; }
.xmas-calc-result { min-height: 3em; margin: var(--space-5) 0 0; font-size: 1.15rem; font-weight: 600; color: #4a1520; }
.xmas-calc-result[data-state="late"] { color: #8a2332; }
.xmas-calc-note { margin: var(--space-2) 0 0; font-size: .85rem; color: #4d5551; }
@media (min-width: 48rem) { .xmas-calc-form { grid-template-columns: 1fr 1fr; align-items: end; } }
