/*
Theme Name: Slice
Theme URI: https://slicestargard.pl
Author: MGWJ Solutions
Description: Autorski motyw dla pizzerii SLICE (Stargard). Nowojorski styl, integracja z WooCommerce, własny system rozmiarów i dodatków do pizzy. Czerwień + krem, ciężki grotesk + szeryf.
Version: 2.1
Requires at least: 6.0
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 9.9
Text Domain: slice
*/

/* ==========================================================================
   1. Zmienne / tokeny
   ========================================================================== */
:root{
  --slice-red:        #c43433;   /* podstawowa czerwień (header, footer, tekst, obramowania) */
  --slice-red-dark:   #a52f23;   /* hover / przyciemnienie */
  --slice-cream:      #faefe0;   /* tło strony */
  --slice-cream-2:    #f2e4d4;   /* tło drawera, delikatne sekcje */
  --slice-cream-soft: #fbf4e9;   /* pola formularzy */
  --slice-white:      #fdf7ee;   /* tekst na czerwieni */

  --font-display: "Helvetica Now Display", "HelveticaNowDisplay", "Helvetica Neue", Helvetica, Arial, sans-serif; /* nagłówki, nawigacja, przyciski */
  --font-body:    "ITC Garamond LT Std Light Narrow", "ITC Garamond", "Garamond", Georgia, "Times New Roman", serif;  /* tekst, opisy, ceny */

  --header-h: 72px;
  --wrap: 1180px;
  --radius-pill: 999px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

/* ==========================================================================
   1b. Czcionki – @font-face (lokalne pliki)
   --------------------------------------------------------------------------
   Helvetica Now Display oraz ITC Garamond Light Narrow to czcionki komercyjne
   wymagające licencji. Umieść zakupione pliki .woff2 w:
     /assets/fonts/helvetica-now-display-extrabold.woff2
     /assets/fonts/helvetica-now-display-regular.woff2
     /assets/fonts/itc-garamond-light-narrow.woff2
     /assets/fonts/itc-garamond-light-narrow-italic.woff2

   Alternatywnie: skonfiguruj Adobe Fonts Kit ID w functions.php
   (define 'SLICE_ADOBE_FONTS_KIT_ID' w wp-config.php) i pomiń poniższe.

   UWAGA: nazwy font-family muszą dokładnie pasować do zmiennych --font-display
   i --font-body powyżej.
   ========================================================================== */

/* Helvetica Now Display – ExtraBold (nagłówki, hero, nawigacja) */
@font-face {
  font-family: "Helvetica Now Display";
  src: url("assets/fonts/helvetica-now-display-extrabold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Helvetica Now Display – Bold */
@font-face {
  font-family: "Helvetica Now Display";
  src: url("assets/fonts/helvetica-now-display-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Helvetica Now Display – Regular */
@font-face {
  font-family: "Helvetica Now Display";
  src: url("assets/fonts/helvetica-now-display-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ITC Garamond Light Narrow – Regular (treść, opisy, ceny) */
@font-face {
  font-family: "ITC Garamond LT Std Light Narrow";
  src: url("assets/fonts/itc-garamond-light-narrow.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* ITC Garamond Light Narrow – Italic */
@font-face {
  font-family: "ITC Garamond LT Std Light Narrow";
  src: url("assets/fonts/itc-garamond-light-narrow-italic.woff2") format("woff2");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

/* ==========================================================================
   2. Reset / baza
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  color:var(--slice-red);
  background:var(--slice-cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

h1,h2,h3,h4,.display{
  font-family:var(--font-display);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.02;
  margin:0 0 .4em;
  text-transform:uppercase;
}

.slice-wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }

/* ==========================================================================
   3. Przyciski
   ========================================================================== */
.slice-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  font-size:14px; letter-spacing:.02em;
  color:var(--slice-red);
  background:transparent;
  border:1.5px solid var(--slice-red);
  border-radius:var(--radius-pill);
  padding:.7em 1.6em;
  transition:background .2s var(--ease), color .2s var(--ease), transform .15s var(--ease);
  text-align:center;
}
.slice-btn:hover{ background:var(--slice-red); color:var(--slice-white); }
.slice-btn:active{ transform:translateY(1px); }
.slice-btn--block{ width:100%; }
.slice-btn--solid{ background:var(--slice-red); color:var(--slice-white); }
.slice-btn--solid:hover{ background:var(--slice-red-dark); }

/* ==========================================================================
   4. Header
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:120;
  background:var(--slice-red); color:var(--slice-white);
  height:var(--header-h);
}
.site-header__bar{
  height:var(--header-h);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  max-width:1400px; margin:0 auto; padding:0 24px;
}
.header-burger{
  justify-self:start;
  display:inline-flex; flex-direction:column; gap:5px;
  background:none; border:0; padding:8px;
}
.header-burger span{ display:block; width:26px; height:2.5px; background:var(--slice-white); border-radius:2px; }
.site-logo{
  justify-self:center;
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:28px; letter-spacing:.06em; color:var(--slice-white);
  display:flex; align-items:center; justify-content:center;
  min-width:0; /* zapobiega rozciąganiu kolumny grida */
}
/* Logo obrazkowe: the_custom_logo() renderuje <a class="custom-logo-link"><img></a> */
.site-logo .custom-logo-link{
  display:flex; align-items:center; justify-content:center;
}
.site-logo .custom-logo-link img,
.site-logo img{
  max-width:160px;
  max-height:52px;
  width:auto;
  height:auto;
  display:block;
  object-fit:contain;
}
.header-icons{ justify-self:end; display:inline-flex; align-items:center; gap:18px; }
.header-icons a{ position:relative; display:inline-flex; color:var(--slice-white); }
.header-icons svg{ width:24px; height:24px; }
.cart-count{
  position:absolute; top:-8px; right:-10px;
  min-width:18px; height:18px; padding:0 4px;
  background:var(--slice-white); color:var(--slice-red);
  font-family:var(--font-display); font-weight:700; font-size:11px;
  border-radius:var(--radius-pill);
  display:flex; align-items:center; justify-content:center; line-height:1;
}
.cart-count:empty,.cart-count[data-count="0"]{ display:none; }

/* ==========================================================================
   5. Drawer (menu boczne)
   ========================================================================== */
.slice-drawer{
  position:fixed; inset:0 auto 0 0; z-index:200;
  width:min(360px,86vw);
  background:var(--slice-cream-2);
  transform:translateX(-100%);
  transition:transform .38s var(--ease);
  display:flex; flex-direction:column;
  box-shadow:0 0 60px rgba(0,0,0,.18);
}
.slice-drawer__head{
  height:var(--header-h);
  display:flex; align-items:center; padding:0 18px;
}
.drawer-close{ background:none; border:0; padding:8px; color:var(--slice-red); display:inline-flex; }
.drawer-close svg{ width:26px; height:26px; }
.slice-drawer__nav{ padding:30px 36px; }
.slice-drawer__nav ul{ list-style:none; margin:0; padding:0; }
.slice-drawer__nav li{ margin:0 0 14px; }
.slice-drawer__nav a{
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  font-size:22px; letter-spacing:.01em; color:var(--slice-red);
  transition:opacity .2s var(--ease);
}
.slice-drawer__nav a:hover{ opacity:.6; }
.slice-overlay{
  position:fixed; inset:0; z-index:190;
  background:rgba(40,15,12,.45);
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s;
}
body.drawer-open .slice-drawer{ transform:translateX(0); }
body.drawer-open .slice-overlay{ opacity:1; visibility:visible; }
body.drawer-open{ overflow:hidden; }

/* ==========================================================================
   6. Hero (strona główna)
   ========================================================================== */
.slice-hero{
  position:relative;
  min-height:calc(100vh - var(--header-h));
  display:flex; align-items:center; justify-content:center;
  background:var(--slice-red) center/cover no-repeat;
  overflow:hidden;
}
.slice-hero::after{ content:""; position:absolute; inset:0; background:rgba(120,30,20,.12); }
.slice-hero__title{
  position:relative; z-index:2;
  color:var(--slice-white);
  font-size:clamp(48px,11vw,150px);
  text-align:center;
  text-shadow:0 2px 30px rgba(0,0,0,.25);
  padding:0 16px;
}
.slice-hero__cta{ position:relative; z-index:2; margin-top:6px; }

/* ==========================================================================
   7. Strona MENU (archiwum produktów)
   ========================================================================== */
.menu-hero{
  position:relative; max-width:var(--wrap); margin:48px auto 0; padding:0 24px;
}
.menu-hero__img{
  border-radius:6px; overflow:hidden; aspect-ratio:16/6;
  background:var(--slice-red) center/cover no-repeat;
  position:relative;
  display:flex; align-items:center; justify-content:center;
}
.menu-hero__img img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; display:block;
}
/* Tytuł zawsze na wierzchu, widoczny niezależnie od zdjęcia */
.menu-hero__title{
  position:relative; z-index:2;
  color:var(--slice-white);
  font-size:clamp(40px,7vw,90px);
  margin:0;
  text-shadow:0 2px 20px rgba(0,0,0,.3);
}
.menu-intro{
  max-width:920px; margin:36px auto 8px; text-align:center;
  font-size:16px; line-height:1.7;
}

.menu-tabs{
  display:flex; flex-wrap:wrap; justify-content:center; gap:0 40px;
  margin:40px auto 0; padding:0 24px;
  border-bottom:1.5px solid rgba(196,52,51,.18);
  max-width:var(--wrap);
}
.menu-tab{
  background:none; border:0;
  padding:14px 4px 16px;
  font-family:var(--font-body); font-size:17px; color:var(--slice-red);
  position:relative; opacity:.55;
  transition:opacity .2s var(--ease);
  display:inline-flex; align-items:center; gap:10px;
  cursor:pointer;
  white-space:nowrap;
}
.menu-tab__ico{ display:inline-flex; align-items:center; }
.menu-tab__ico img{ width:18px; height:18px; display:block; }
.menu-tab.is-active{ opacity:1; font-weight:600; }
.menu-tab.is-active::after{
  content:""; position:absolute; left:0; right:0; bottom:-1.5px; height:2px;
  background:var(--slice-red); border-radius:2px;
}
.menu-tab:hover{ opacity:.85; }

.menu-section{ max-width:var(--wrap); margin:0 auto; padding:40px 24px 60px; }
.menu-section[hidden]{ display:none; }
.menu-empty{ text-align:center; opacity:.5; padding:40px 0; }

/* Grid produktów – 3 kolumny */
.product-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px 36px;
}

/* Karta produktu */
.product-card{
  display:flex; flex-direction:column;
  text-align:center;
}
.product-card__media{
  width:100%;
  background:transparent;
  margin:0 auto 20px;
  /* Brak overflow:hidden, aspect-ratio, max-width – zdjęcie samo ustala wysokość */
}
.product-card__media img,
.product-card__media .product-img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
  object-fit:unset;
  /* Brak crop – PNG z przezroczystością pokazuje się w pełni */
}
.product-card__media a{ display:block; width:100%; }
.product-card__placeholder{ width:100%; aspect-ratio:3/4; background:var(--slice-cream-2); border-radius:6px; }
.product-card__body{ display:flex; flex-direction:column; flex:1; }
.product-card__name{ font-size:24px; margin:0 0 10px; }
.product-card__name a{ color:inherit; }
.product-card__desc{ font-size:14px; line-height:1.5; margin:0 auto 14px; max-width:260px; opacity:.8; flex:1; }
.product-card__footer{ display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:auto; }
.product-card__price{ font-size:16px; font-family:var(--font-body); }
/* Cena "od X zł" */
.product-card__price bdi,
.product-card__price span{ font-family:var(--font-body); }

/* ==========================================================================
   8. Pojedynczy produkt
   ========================================================================== */
.single-product-main{ max-width:1280px; margin:40px auto 80px; padding:0 24px; }
.product-layout{
  display:grid; grid-template-columns:1.05fr 1fr; gap:60px; align-items:start;
}
.product-photo{
  background:transparent;
  display:flex; align-items:center; justify-content:center;
}
.product-photo img{ width:100%; height:auto; display:block; object-fit:unset; }
.product-info{ padding-top:8px; }
.product-info h1{ font-size:clamp(30px,4vw,44px); color:var(--slice-red); margin-bottom:.25em; }
.product-info__desc{ font-size:18px; margin:0 0 22px; }

.size-tabs{ display:flex; align-items:center; gap:0; margin:0 0 26px; }
.size-tab{
  background:none; border:0; padding:2px 18px 2px 0; margin-right:18px;
  font-family:var(--font-body); font-size:18px; color:var(--slice-red); opacity:.55;
  position:relative; transition:opacity .2s var(--ease);
}
.size-tab:not(:last-child)::after{
  content:""; position:absolute; right:0; top:2px; bottom:2px; width:1px; background:rgba(192,57,43,.4);
}
.size-tab.is-active{ opacity:1; font-weight:600; }

.addons-title{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; font-size:18px; margin:0 0 14px; }
.addons-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:14px; margin:0 0 30px; max-width:520px; }
.addon{
  position:relative; border:1.5px solid rgba(192,57,43,.35); border-radius:10px;
  background:var(--slice-cream-soft);
  padding:14px 10px 12px; text-align:center; cursor:pointer;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.addon:hover{ border-color:var(--slice-red); }
.addon input{ position:absolute; opacity:0; pointer-events:none; }
.addon.is-checked{ border-color:var(--slice-red); box-shadow:0 0 0 1px var(--slice-red) inset; }
.addon__img{ width:52px; height:52px; object-fit:contain; margin:0 auto 8px; }
.addon__name{ font-size:13px; line-height:1.25; margin:0 0 6px; }
.addon__price{ font-size:13px; font-weight:600; }

/* ==========================================================================
   9. O nas
   ========================================================================== */
.onas-hero{ max-width:var(--wrap); margin:50px auto 0; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.onas-hero h1{ font-size:clamp(48px,8vw,96px); margin:0 0 .15em; }
.onas-hero__tagline{ font-family:var(--font-body); font-style:italic; font-size:22px; margin:0 0 22px; }
.onas-hero__lead{ font-size:15px; line-height:1.7; margin:0 0 26px; }
.onas-hero__img img{ width:100%; border-radius:6px; filter:grayscale(1); }

.onas-cols{ max-width:var(--wrap); margin:70px auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
/* Mapa zawsze po lewej, tekst po prawej */
.onas-cols__map{ order:1; }
.onas-cols__text{ order:2; }
.onas-cols__map iframe{ width:100%; min-height:360px; border:0; border-radius:6px; display:block; }
.onas-cols__map img{ width:100%; min-height:360px; border:0; border-radius:6px; }
.onas-cols h2{ font-size:30px; margin:0 0 18px; }
.onas-cols p{ font-size:15px; line-height:1.7; }

/* Sekcja 3 – Zespół */
.onas-team{ max-width:var(--wrap); margin:70px auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.onas-team__text h2{ font-size:30px; margin:0 0 18px; }
.onas-team__text p{ font-size:15px; line-height:1.7; }
.onas-team__img img{ width:100%; border-radius:6px; object-fit:cover; max-height:480px; }

/* ==========================================================================
   10. Kontakt
   ========================================================================== */
.kontakt-layout{ display:grid; grid-template-columns:1fr 1fr; min-height:calc(100vh - var(--header-h)); }
.kontakt-form-col{ padding:60px clamp(24px,6vw,90px); display:flex; flex-direction:column; justify-content:center; }
.kontakt-form-col h1{ font-size:clamp(56px,9vw,118px); margin:0 0 .2em; }
.kontakt-intro{ max-width:520px; font-size:16px; line-height:1.7; margin:0 0 34px; }
.kontakt-image-col{ background:var(--slice-red) center/cover no-repeat; min-height:340px; }

.slice-field{ margin:0 0 22px; max-width:560px; }
.slice-field label{ display:block; font-size:15px; margin:0 0 8px; }
.slice-field input,.slice-field textarea{
  width:100%; font-family:var(--font-body); font-size:16px; color:var(--slice-red);
  background:var(--slice-cream-soft);
  border:1px solid rgba(192,57,43,.45); border-radius:8px;
  padding:14px 16px;
}
.slice-field textarea{ min-height:120px; resize:vertical; }
.slice-field input::placeholder,.slice-field textarea::placeholder{ color:rgba(192,57,43,.55); }
.slice-field input:focus,.slice-field textarea:focus{ outline:none; border-color:var(--slice-red); }
.kontakt-extra{ margin-top:40px; }
.kontakt-extra h3{ font-family:var(--font-body); font-weight:600; text-transform:none; font-size:18px; margin:0 0 14px; }
.kontakt-extra__row{ display:flex; flex-wrap:wrap; gap:30px; font-size:16px; }
.kontakt-extra__row span{ display:inline-flex; align-items:center; gap:10px; }
.kontakt-extra__row svg{ width:20px; height:20px; }
.slice-notice{ max-width:560px; padding:14px 18px; border-radius:8px; margin:0 0 26px; font-size:15px; }
.slice-notice--ok{ background:rgba(60,140,80,.14); }
.slice-notice--err{ background:rgba(192,57,43,.14); }

/* ==========================================================================
   11. Strony ogólne / treść
   ========================================================================== */
.page-content{ max-width:860px; margin:60px auto; padding:0 24px; }
.page-content h1{ font-size:clamp(40px,7vw,80px); margin:0 0 .4em; }
.page-content p{ margin:0 0 1.1em; }
.page-content a{ text-decoration:underline; }

/* ==========================================================================
   12. WooCommerce – delikatne nadpisania (koszyk/checkout/konto)
   ========================================================================== */
.woocommerce-page .page-content,.woocommerce-cart .page-content,.woocommerce-checkout .page-content{ max-width:var(--wrap); }
.woocommerce .button,.woocommerce a.button,.woocommerce button.button,
.woocommerce input.button,.woocommerce #respond input#submit{
  font-family:var(--font-display); font-weight:700; text-transform:uppercase; font-size:14px;
  color:var(--slice-red); background:transparent; border:1.5px solid var(--slice-red);
  border-radius:var(--radius-pill); padding:.7em 1.6em; transition:.2s var(--ease);
}
.woocommerce .button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce #respond input#submit:hover{ background:var(--slice-red); color:var(--slice-white); }
.woocommerce .button.alt,.woocommerce button.button.alt{ background:var(--slice-red); color:var(--slice-white); }
.woocommerce-message,.woocommerce-info,.woocommerce-error{ border-top-color:var(--slice-red); }

/* ==========================================================================
   13. Footer
   ========================================================================== */
.site-footer{ background:var(--slice-red); color:var(--slice-white); margin-top:80px; }
.site-footer__bar{
  max-width:1400px; margin:0 auto; padding:22px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.footer-legal{ display:flex; flex-wrap:wrap; gap:8px 26px; font-family:var(--font-display); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.03em; }
.footer-legal a{ color:var(--slice-white); opacity:.92; }
.footer-legal a:hover{ opacity:.7; }
.footer-copy{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:15px; letter-spacing:.04em; }
.footer-social{ display:flex; align-items:center; gap:18px; }
.footer-social .label{ font-family:var(--font-display); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.03em; }
.footer-social a{ color:var(--slice-white); display:inline-flex; }
.footer-social svg{ width:20px; height:20px; }

/* ==========================================================================
   13b. Współpraca
   ========================================================================== */
.wspolpraca-hero{
  background:var(--slice-red) center/cover no-repeat;
  padding:90px 0 80px;
  color:var(--slice-white);
}
.wspolpraca-hero--img{ position:relative; }
.wspolpraca-hero__inner{ position:relative; z-index:2; max-width:720px; }
.wspolpraca-hero h1{
  font-size:clamp(52px,9vw,110px);
  color:var(--slice-white);
  margin:0 0 .2em;
}
.wspolpraca-hero__lead{
  font-size:20px; line-height:1.6;
  color:var(--slice-white); opacity:.92;
  margin:0 0 36px; max-width:560px;
}

.wspolpraca-oferty{
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
  margin:80px auto;
}
.wspolpraca-card{
  padding:36px 28px 32px;
  border:1.5px solid rgba(196,52,51,.2);
  border-radius:6px;
  background:var(--slice-cream-soft);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.wspolpraca-card:hover{
  border-color:var(--slice-red);
  box-shadow:0 4px 24px rgba(196,52,51,.1);
}
.wspolpraca-card__icon{
  width:44px; height:44px;
  color:var(--slice-red);
  margin:0 0 20px;
}
.wspolpraca-card__icon svg{ width:44px; height:44px; }
.wspolpraca-card h2{
  font-size:22px; margin:0 0 14px; text-transform:uppercase;
}
.wspolpraca-card p{ font-size:15px; line-height:1.7; margin:0; }

/* ==========================================================================
   13c. Imprezy grupowe
   ========================================================================== */
.imprezy-hero{
  position:relative;
  min-height:62vh;
  background:var(--slice-red) center/cover no-repeat;
  display:flex; align-items:flex-end;
  padding-bottom:70px;
  overflow:hidden;
}
.imprezy-hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(120,20,15,.72) 0%, rgba(120,20,15,.18) 60%, transparent 100%);
}
.imprezy-hero__inner{ position:relative; z-index:2; }
.imprezy-hero__tag{
  display:inline-block;
  font-family:var(--font-display); font-weight:700; font-size:12px;
  text-transform:uppercase; letter-spacing:.08em;
  color:var(--slice-white);
  border:1.5px solid rgba(255,255,255,.5);
  border-radius:var(--radius-pill);
  padding:.35em 1em;
  margin:0 0 20px;
}
.imprezy-hero h1{
  font-size:clamp(52px,9vw,110px);
  color:var(--slice-white); margin:0 0 .2em;
}
.imprezy-hero p{
  font-size:18px; line-height:1.6;
  color:var(--slice-white); opacity:.9;
  max-width:560px; margin:0 0 32px;
}

.imprezy-pakiety{ margin:80px auto; }
.imprezy-pakiety__heading{
  font-size:clamp(28px,4vw,44px); margin:0 0 48px; text-transform:uppercase;
}
.imprezy-pakiety__grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:32px;
}
.imprezy-pkg{
  padding:36px 32px;
  border-left:3px solid var(--slice-red);
  background:var(--slice-cream-soft);
  border-radius:0 6px 6px 0;
}
.imprezy-pkg__num{
  display:block;
  font-family:var(--font-display); font-weight:800;
  font-size:13px; letter-spacing:.08em;
  color:var(--slice-red); opacity:.5;
  margin:0 0 14px;
}
.imprezy-pkg h3{ font-size:22px; margin:0 0 12px; text-transform:uppercase; }
.imprezy-pkg p{ font-size:15px; line-height:1.7; margin:0; }

.imprezy-galeria{
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
  margin:60px auto;
}
.imprezy-galeria__img{ aspect-ratio:4/3; overflow:hidden; border-radius:6px; }
.imprezy-galeria__img img{ width:100%; height:100%; object-fit:cover; }

.imprezy-kontakt{
  background:var(--slice-red);
  padding:70px 0;
  margin-top:60px;
}
.imprezy-kontakt h2{
  font-size:clamp(32px,5vw,56px);
  color:var(--slice-white); margin:0 0 .3em;
}
.imprezy-kontakt p{
  font-size:17px; line-height:1.7;
  color:var(--slice-white); opacity:.9;
  max-width:520px; margin:0 0 32px;
}
.imprezy-kontakt .slice-btn{
  color:var(--slice-white); border-color:rgba(255,255,255,.6);
}
.imprezy-kontakt .slice-btn:hover{ background:var(--slice-white); color:var(--slice-red); }
.imprezy-kontakt .slice-btn--solid{
  background:var(--slice-white); color:var(--slice-red); border-color:var(--slice-white);
}
.imprezy-kontakt .slice-btn--solid:hover{ background:var(--slice-cream-2); }
.imprezy-kontakt__row{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.imprezy-kontakt__row svg{ width:18px; height:18px; margin-right:6px; vertical-align:middle; }

/* ==========================================================================
   14. Responsywność
   ========================================================================== */
@media(max-width:980px){
  .product-layout{ grid-template-columns:1fr; gap:34px; }
  .product-photo{ max-width:420px; margin:0 auto; }
  .onas-hero,.onas-cols,.onas-team,.kontakt-layout{ grid-template-columns:1fr; }
  .kontakt-image-col{ min-height:280px; order:-1; }
  .wspolpraca-oferty{ grid-template-columns:1fr; gap:24px; }
  .imprezy-pakiety__grid{ grid-template-columns:1fr; }
  .imprezy-galeria{ grid-template-columns:1fr 1fr; }
  .product-grid{ grid-template-columns:repeat(2,1fr); gap:32px 24px; }
}
@media(max-width:760px){
  .product-grid{ grid-template-columns:1fr; gap:40px; }
  .site-logo{ font-size:24px; }
  body{ font-size:16px; }
  .imprezy-galeria{ grid-template-columns:1fr; }
  .wspolpraca-oferty{ gap:16px; }
  .menu-tabs{ gap:0 20px; }
  .menu-tab{ font-size:15px; }
}
