/*
 * MNC Concept - main.css
 * Scalony z <style> bloków _demo/redesign-strona-glowna.html, o-nas.html, kontakt.html,
 * redesign-menu-{sniadania,napoje,alkohole}.html (te 3 mają identyczny arkusz - scalony raz).
 * Konflikty tego samego selektora z różną treścią rozwiązane świadomie (patrz commit/log
 * budowy motywu) - m.in. .hero-tag/.timeline/.community/.locate/.reviewcard byly martwym
 * CSS na stronach, które faktycznie ich nie renderują; wygrywa wersja realnie używanej strony.
 */

:root{
  --font-display:'Poppins',"Arial Black",sans-serif;
  --font-body:'Poppins',-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  /* sky stamp: deep navy instead of near-black, pale sky-blue instead of tan, bronze-gold accent kept */
  --paper:#FAF7F0;
  --ink:#141414;
  --ink-soft:#5C5C5C;
  --line:#A0ABB1;
  --sky:#CEEEFF;
  --ink-soft-on-dark:#B8B8B8;
  --line-on-dark:rgba(255,255,255,.18);
  /* pure white - primary CTA on dark backgrounds, and the brightest emphasis text over photos/video (hero h1) */
  --paper-bright:#FFFFFF;
  /* wagi fontu w zmiennych - jedno miejsce zmiany dla całego systemu typografii */
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --fw-extrabold:800;
  --fw-black:900;
}

*{box-sizing:border-box;}

html{ scroll-behavior:smooth; overflow-x:clip; }

@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
}

img{ max-width:100%; display:block; }
/* Wszystkie akapity treści - capslock (odtworzone na żądanie klienta, zgodne z wcześniejszą, utraconą wersją WP). */
p{ text-transform:uppercase; }
/* Wyjątek: długi tekst do czytania (polityka prywatności, treść wpisów bloga) -
   capslock na całych akapitach prawnych/artykułowych jest nieczytelny, zostaje
   tylko na krótkich akapitach marketingowych (hero, sekcje, karty). */
.legal-prose p, .article-prose p{ text-transform:none; }

a{ color:inherit; }

.wrap{ max-width:1240px; margin:0 auto; padding:0 32px; }

@media (max-width:760px){ .wrap{ padding:0 20px; } }

/* ---------- loader ---------- */
.loader{
  position:fixed; inset:0; z-index:9999; background:var(--paper);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .5s ease, visibility 0s linear .5s;
}

.loader.loaded{ opacity:0; visibility:hidden; }

.loader-inner{ display:flex; flex-direction:column; align-items:center; gap:18px; }

.loader-word{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; font-size:16px; letter-spacing:.03em; color:var(--ink); }

.loader-word sup{ font-size:.55em; }

.loader-bar{ width:120px; height:2px; background:var(--line); overflow:hidden; position:relative; }

.loader-fill{ position:absolute; top:0; left:-40%; height:100%; width:40%; background:var(--ink); animation:loaderSweep 1.15s ease-in-out infinite; }

@keyframes loaderSweep{ 0%{ left:-40%; } 100%{ left:100%; } }

@media (prefers-reduced-motion: reduce){ .loader-fill{ animation:none; left:0; width:100%; } }

/* ---------- announce ---------- */
.announce{ background:var(--sky); color:var(--ink); font-family:var(--font-display); font-size:11px; letter-spacing:.06em; text-transform:uppercase; font-weight:var(--fw-semibold); padding:9px 0; }

.announce .row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; }

.announce .contact{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 18px; min-width:0; }

.announce .contact span{ min-width:0; font-weight:var(--fw-regular); }

.announce .social{ display:flex; align-items:center; gap:16px; margin-left:auto; }

.announce .social a{ display:inline-flex; align-items:center; justify-content:center; color:inherit; opacity:.85; transition:opacity .5s ease; padding:8px; margin:-8px; }

.announce .social a:hover{ opacity:1; }

.announce .social svg{ width:18px; height:18px; }


/* ---------- header ---------- */
header.site{ background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }

.headbar{ display:flex; align-items:center; justify-content:space-between; padding:16px 32px; max-width:1240px; margin:0 auto; }

.headnav{ order:2; flex:1; display:flex; align-items:center; justify-content:center; gap:28px; }

.headbar > .btn{ order:3; }

.headnav a.toplink{ position:relative; font-family:var(--font-display); font-size:15px; font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase; text-decoration:none; color:var(--ink); }

.headnav a.toplink::after{ content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--ink); transition:right .35s cubic-bezier(.2,.8,.2,1); }

.headnav a.toplink:hover::after{ right:0; }

.wordmark{ order:1; display:inline-flex; text-decoration:none; transition:opacity .5s ease; }

.wordmark img{ height:20px; width:auto; display:block; }

.wordmark:hover{ opacity:.65; }

.btn{
  display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:var(--paper-bright);
  font-family:var(--font-display); font-size:13.5px; font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase;
  padding:12px 22px; text-decoration:none; border:2px solid var(--ink); border-radius:0;
  transition:background .5s ease, color .5s ease, border-color .5s ease;
}

.btn:hover{ background:var(--paper); color:var(--ink); border-color:var(--ink); }

.btn-light{ background:var(--paper-bright); color:var(--ink); border-color:var(--paper-bright); }

.btn-light:hover{ background:var(--ink); color:var(--paper-bright); border-color:var(--paper-bright); }

.btn-line{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-size:13.5px; font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase;
  text-decoration:none; color:var(--ink); background:transparent; border:2px solid var(--ink); padding:11px 20px;
  transition:color .5s ease, border-color .5s ease, background .5s ease;
}

.btn-line:hover{ background:var(--ink); color:var(--paper-bright); border-color:var(--ink); }

.menu-toggle{ order:0; display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:44px; background:none; border:none; padding:0; cursor:pointer; flex-shrink:0; margin:-6px; transition:opacity .3s ease; }

.menu-toggle span{ display:block; width:22px; height:2px; background:var(--ink); transition:transform .3s ease, opacity .3s ease; }

.menu-toggle[aria-expanded="true"]{ opacity:0; pointer-events:none; }

.nav-backdrop{ position:fixed; inset:0; background:rgba(20,20,20,.5); opacity:0; pointer-events:none; transition:opacity .4s ease; z-index:150; }

.nav-backdrop.is-open{ opacity:1; pointer-events:auto; }

body.nav-locked{ overflow:hidden; }

.mobile-nav{
  position:fixed; top:0; right:0; bottom:0; width:min(88vw,400px); max-width:100vw;
  background:var(--paper); z-index:151; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .45s cubic-bezier(.16,1,.3,1);
  box-shadow:-16px 0 48px rgba(20,20,20,.18); overflow-y:auto;
}

.mobile-nav.is-open{ transform:translateX(0); }

.mobile-nav-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); flex-shrink:0; }

.mobile-nav-head .wordmark img{ height:18px; width:auto; display:block; }

.mobile-nav-close{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin:-8px; background:none; border:none; padding:0; cursor:pointer; color:var(--ink); flex-shrink:0; }

.mobile-nav-links{ display:flex; flex-direction:column; padding:8px 20px; }

.mobile-nav a{ font-family:var(--font-display); font-size:18px; font-weight:var(--fw-bold); letter-spacing:.01em; text-transform:uppercase; color:var(--ink); text-decoration:none; padding:16px 0; border-bottom:1px dashed var(--line); }

.mobile-nav a:last-child{ border-bottom:none; }

.mobile-nav-info{ padding:18px 20px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:16px; flex-shrink:0; }

.mni-label{ font-family:var(--font-display); font-size:12px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:5px; }

.mni-value{ font-size:14.5px; color:var(--ink); line-height:1.45; }

.mni-value a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); transition:color .5s ease; }

.mni-value a:hover{ text-decoration-color:var(--ink); }

.mni-hours{ display:flex; flex-direction:column; gap:1px; }

.mni-hours + .mni-hours{ margin-top:8px; }

.mni-hours span:first-child{ color:var(--ink-soft); font-size:13px; }

.mni-hours span:last-child{ font-variant-numeric:tabular-nums; font-weight:var(--fw-semibold); }

.mni-hours-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }

.mni-hours-grid .mni-label{ font-size:10.5px; letter-spacing:.03em; white-space:nowrap; }

.mni-hours-grid .mni-hours span:first-child{ font-size:11px; white-space:nowrap; }

.mobile-nav-foot{ margin-top:auto; padding:16px 20px; border-top:none; display:flex; flex-direction:column; gap:16px; flex-shrink:0; }

.mobile-nav-foot .btn{ justify-content:center; width:100%; color:var(--paper-bright); }

.mobile-nav-social{ padding:16px 20px 20px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:center; gap:18px; flex-shrink:0; }

.mobile-nav-social a{ display:inline-flex; color:var(--ink); opacity:.75; }

.mobile-nav-social svg{ width:19px; height:19px; }

@media (max-width:900px){ .headnav{ display:none; } .headbar{ padding:12px 20px; flex-wrap:wrap; gap:10px 12px; } .menu-toggle{ display:flex; } }

@media (min-width:901px){ .mobile-nav{ display:none !important; } }

@media (max-width:420px){ .wordmark img{ height:17px; } .headbar .btn{ font-size:10px; padding:10px 14px; } }

/* ---------- call fab ---------- */
.call-fab{
  position:fixed; right:22px; bottom:22px; z-index:40;
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; background:var(--ink); color:var(--paper-bright);
  border:2px solid var(--ink); box-shadow:0 8px 24px rgba(20,20,20,.28);
  transition:background .3s ease, color .3s ease, transform .3s ease;
}

.call-fab svg{ width:22px; height:22px; }

.call-fab:hover{ background:var(--paper); color:var(--ink); transform:scale(1.06); }

@media (max-width:760px){ .call-fab{ right:16px; bottom:16px; width:48px; height:48px; } .call-fab svg{ width:20px; height:20px; } }

/* ---------- shared: eyebrow / num label ---------- */
.num{ font-family:var(--font-display); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }

h2.title{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:-.01em; line-height:1.04; font-size:clamp(26px,3.2vw,40px); margin:0 0 16px; text-wrap:balance; }

p.copy{ color:var(--ink-soft); font-size:16px; max-width:44ch; margin:0 0 24px; }

p.copy b{ color:var(--ink); font-weight:var(--fw-bold); }

/* ---------- hero: text on video, masked hard enough to guarantee legibility regardless of frame ---------- */
.hero-full{
  position:relative; height:88vh; min-height:540px; max-height:800px; overflow:hidden;
  background-image:url('../img/hero-video-poster.webp'); background-size:cover; background-position:center;
}

.hero-full video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

@media (prefers-reduced-motion: reduce){ .hero-full video{ display:none; } }

.hero-mask{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,26,17,.5) 0%, rgba(20,26,17,.42) 35%, rgba(20,26,17,.62) 70%, rgba(20,26,17,.88) 100%);
}

.hero-content{ position:relative; z-index:2; height:100%; width:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding-bottom:140px; }

.hero-tag{ font-family:var(--font-display); font-size:11.5px; font-weight:var(--fw-semibold); letter-spacing:.14em; text-transform:uppercase; color:var(--paper); margin-bottom:28px; text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7); }

.hero-content h1{
  font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; color:var(--paper-bright);
  font-size:clamp(36px,7vw,92px); line-height:.96; letter-spacing:-.015em; margin:0 0 30px; max-width:14ch; text-wrap:balance;
  text-shadow:0 4px 28px rgba(0,0,0,.45), 0 1px 4px rgba(0,0,0,.55);
}

.hero-content h1 .dim{ color:var(--paper-bright); }

.hero-content .hero-lede{ color:var(--paper); font-size:16.5px; max-width:44ch; margin:0 0 32px; text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7); }

.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

.hero-content .btn-line{ color:var(--paper-bright); border-color:var(--paper-bright); }

.hero-content .btn-line:hover{ background:var(--paper-bright); color:var(--ink); border-color:var(--paper-bright); }

@media (max-width:760px){ .hero-full{ height:auto; min-height:0; max-height:none; aspect-ratio:3/4; } .hero-content{ padding-bottom:96px; } }

/* ---------- offer: 3 photo tiles linking straight to each menu page ---------- */
.offer{ padding:40px 0 72px; }

.offer .head{ margin-bottom:32px; }

.offer-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

.offer-tile{ position:relative; display:block; aspect-ratio:4/5; overflow:hidden; text-decoration:none; }

.offer-tile img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }

.offer-tile:hover img{ transform:scale(1.06); }

.offer-tile::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:60%; z-index:1;
  background:linear-gradient(0deg, rgba(20,20,20,.9) 0%, rgba(20,20,20,.55) 45%, rgba(20,20,20,0) 100%);
}

.offer-tile-label{
  position:absolute; left:20px; right:20px; bottom:20px; z-index:2; color:#fff;
  font-family:var(--font-display); font-weight:var(--fw-extrabold); font-size:18px; text-transform:uppercase; line-height:1.25;
  text-wrap:balance; text-shadow:0 2px 6px rgba(0,0,0,.9), 0 1px 2px rgba(0,0,0,1);
}

@media (max-width:760px){ .offer-grid{ grid-template-columns:1fr; gap:14px; } .offer{ padding:20px 0 56px; } }

/* ---------- interior showcase (dark chapter, unnumbered interlude) ---------- */
.interior{ background:var(--sky); color:var(--ink); padding:80px 0; }

.interior .grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }

.interior-gallery{ display:grid; grid-template-columns:1.2fr 1fr; gap:12px; }

.interior-gallery .ig-a{ grid-row:1/3; overflow:hidden; }

.interior-gallery .ig-b, .interior-gallery .ig-c{ aspect-ratio:1/1; overflow:hidden; }

.interior-gallery img{ width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width:860px){ .interior .grid{ grid-template-columns:1fr; gap:32px; } .interior{ padding:56px 0; } }

/* ---------- asymmetric spread (01 - śniadania) ---------- */
.spread{ padding:80px 0; }

.spread .grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:center; }

.spread .photowrap{ position:relative; }

.spread .photowrap .photo{ aspect-ratio:16/11; overflow:hidden; box-shadow:0 30px 54px -22px rgba(20,20,20,.55), 0 14px 26px -14px rgba(20,20,20,.4); }

.spread .photowrap .photo img{ width:100%; height:100%; object-fit:cover; }

.spread .tag{
  position:absolute; left:-1px; bottom:-24px; background:var(--paper); border:1px solid var(--line);
  padding:14px 20px; width:min(78%,320px);
}

.spread .tag .t1{ font-family:var(--font-display); font-size:10px; font-weight:var(--fw-semibold); letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }

.spread .tag .t2{ font-family:var(--font-display); font-size:15px; font-weight:var(--fw-bold); text-transform:uppercase; color:var(--ink); }

.spread .tag .t3{ font-family:var(--font-display); font-size:13px; font-weight:var(--fw-bold); color:var(--ink); margin-top:6px; padding-top:6px; border-top:1px dashed var(--line); font-variant-numeric:tabular-nums; }

@media (max-width:860px){ .spread .grid{ grid-template-columns:1fr; gap:48px; } .spread{ padding:64px 0 72px; } .spread .tag{ bottom:-20px; } }

/* ---------- 02 napoje/matcha: light chapter + even photo grid ---------- */
.matchaband{ background:var(--sky); color:var(--ink); padding:80px 0; overflow:hidden; }

.matchaband .grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }

.bignum{ font-family:var(--font-display); font-weight:var(--fw-bold); color:var(--ink); font-size:clamp(76px,9.5vw,144px); line-height:.85; margin:0 0 8px; }

.bignum + .bignum-cap{ font-family:var(--font-display); font-size:13px; color:var(--ink-soft); max-width:26ch; margin:0 0 26px; text-wrap:pretty; }

.bentogrid{ display:grid; grid-template-columns:1.15fr 1fr; gap:12px; }

.bentogrid .tall{ grid-row:1/3; overflow:hidden; }

.bentogrid .sq{ aspect-ratio:1/1; overflow:hidden; }

.bentogrid .wide{ grid-column:1/-1; aspect-ratio:21/9; overflow:hidden; }

.bentogrid img{ width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width:860px){ .matchaband .grid{ grid-template-columns:1fr; gap:40px; } .matchaband{ padding:56px 0; } .bentogrid{ grid-template-columns:1fr 1fr; max-width:480px; margin:0 auto; } .bentogrid .wide{ aspect-ratio:16/9; } }

/* ---------- 03 wieczor: text + receipt-style price list ---------- */
.eveningband{ padding:80px 0; }

.eveningband .head{ max-width:60ch; margin-bottom:36px; }

.eveningband .head .copy{ margin-bottom:0; }

.pricecards{ border-top:1px solid var(--line); margin-bottom:32px; }

.pricecard{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:16px 0; border-bottom:1px dashed var(--line); }

.pricecard .n{ font-family:var(--font-display); font-weight:var(--fw-bold); text-transform:uppercase; font-size:14.5px; }

.pricecard .p{ font-family:var(--font-display); color:var(--ink); font-variant-numeric:tabular-nums; font-size:13.5px; font-weight:var(--fw-bold); white-space:nowrap; }

@media (max-width:760px){ .eveningband{ padding:56px 0; } }

/* ---------- community: full-bleed overlay quote (static image, no parallax) ---------- */
.community{ position:relative; margin-top:80px; margin-bottom:36px; display:flex; flex-direction:column; align-items:center; text-align:center; padding:96px 0 72px; }

.community-media{
  position:absolute; inset:0;
  background-image:url('../img/anniversary-cups.webp'); background-size:cover; background-position:center;
}

.community-media::after{ content:''; position:absolute; inset:0; background:rgba(16,12,8,.62); }

.community .inner{ position:relative; z-index:2; max-width:720px; padding:0 32px; margin-bottom:56px; }

.community .num{ color:var(--paper); justify-content:center; text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7); }

.community h2{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; color:var(--paper); font-size:clamp(22px,3vw,36px); line-height:1.15; margin:0 0 14px; text-wrap:balance; text-shadow:0 4px 20px rgba(0,0,0,.5), 0 1px 3px rgba(0,0,0,.6); }

.community p{ color:var(--paper); font-size:15px; max-width:48ch; margin:0 auto; text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7); }

@media (max-width:760px){ .community{ padding:64px 0 48px; margin-top:56px; } .community .inner{ margin-bottom:40px; } }

/* ---------- opinie google: 1:1 styled preview widget (przykładowe opinie, nie realne) - osadzony na zdjęciu w community ---------- */
.community .greviews-wrap{ position:relative; z-index:2; width:100%; max-width:1080px; padding:0 32px; text-align:left; }

.greviews-head{ display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-bottom:32px; }

.greviews-glogo{ width:34px; height:34px; flex-shrink:0; }

.greviews-meta .num{ margin-bottom:6px; }

.greviews-stars{ display:flex; gap:2px; margin-bottom:5px; justify-content:flex-start; }

.greviews-stars svg{ width:17px; height:17px; }

.community .greviews-count{ font-family:var(--font-body); font-size:14px; color:var(--ink-soft-on-dark); text-shadow:0 1px 4px rgba(0,0,0,.6); }

.community .greviews-count .tbd{ color:var(--paper); border-color:var(--line-on-dark); }

.greviews-tag{ margin-left:auto; }

.community .greviews-tag.tbd{ color:var(--paper); border-color:var(--line-on-dark); }

.greviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.greview-card{
  background:#fff; border:1px solid #e3e1d8; border-radius:8px; padding:22px 22px 24px;
  box-shadow:0 18px 40px -14px rgba(0,0,0,.5); font-family:Roboto,Arial,"Helvetica Neue",sans-serif;
}

.greview-top{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }

.greview-avatar{ width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:17px; font-weight:var(--fw-medium); flex-shrink:0; }

.greview-name{ font-size:14px; font-weight:var(--fw-medium); color:#202124; line-height:1.3; }

.greview-time{ font-size:12px; color:#70757a; margin-top:1px; }

.greview-stars{ display:flex; gap:1px; margin-bottom:10px; }

.greview-stars svg{ width:15px; height:15px; }

.greview-text{ font-size:13.5px; line-height:1.55; color:#3c4043; margin:0; }

@media (max-width:900px){ .greviews-grid{ grid-template-columns:1fr; } }

@media (max-width:760px){ .greviews-head{ gap:12px 20px; } .greviews-tag{ margin-left:0; } }

/* ---------- process: connected timeline, stamped stops ---------- */
.process{ padding:80px 0; }

.process .head{ max-width:56ch; margin-bottom:44px; }

.process .head p{ color:var(--ink-soft); }

.timeline{ position:relative; display:flex; justify-content:space-between; gap:24px; }

.timeline::before{ content:''; position:absolute; top:15px; left:12.5%; right:12.5%; height:1px; background:var(--line); }

.tl-step{ position:relative; padding-top:48px; flex:1; text-align:center; }

.tl-dot{
  position:absolute; top:0; left:50%; transform:translateX(-50%); width:32px; height:32px; border-radius:50%; background:var(--ink);
  border:1px solid var(--ink); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:11px; font-weight:var(--fw-bold); color:var(--paper); font-variant-numeric:tabular-nums;
}

.tl-dot.tl-smile{ background:var(--paper); border-color:var(--ink); color:var(--ink); animation:tlSmileBounce 2.2s ease-in-out infinite; }

.tl-dot.tl-smile svg{ width:16px; height:16px; }

@keyframes tlSmileBounce{ 0%, 100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }

@media (prefers-reduced-motion: reduce){ .tl-dot.tl-smile{ animation:none; } }

.tl-step h3{ font-family:var(--font-display); font-weight:var(--fw-bold); text-transform:uppercase; font-size:16px; margin:0 0 8px; }

.tl-step p{ font-size:14px; color:var(--ink-soft); margin:0; max-width:32ch; }

@media (max-width:760px){ .timeline{ flex-direction:column; gap:32px; } .timeline::before{ top:0; bottom:0; left:15px; right:auto; width:1px; height:auto; } .tl-step{ padding-top:0; padding-left:48px; text-align:left; } .tl-dot{ top:0; left:0; transform:none; } .process{ padding:56px 0; } }

.tbd{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-size:11px; color:var(--ink-soft); border:1px dashed var(--ink-soft); padding:4px 10px; margin-top:4px; font-weight:var(--fw-semibold); }

/* ---------- footer (colophon) ---------- */
footer.site{ background:var(--paper); color:var(--ink); border-top:1px solid rgba(20,20,20,.12); padding:56px 0 28px; }

footer.site .wrap{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:28px; }

@media (max-width:900px){ footer.site .wrap{ grid-template-columns:1fr 1fr; gap:32px 24px; } }

@media (max-width:560px){ footer.site .wrap{ grid-template-columns:1fr; gap:32px; } }

.footer-logo{ display:inline-block; }

.footer-tagline{ color:var(--ink-soft); font-size:13px; max-width:32ch; margin-top:16px; }

.footer-logo img{ height:15px; width:auto; display:block; }

.footer-social{ display:flex; align-items:center; gap:14px; margin-top:16px; }

.footer-social a{ display:inline-flex; color:var(--ink-soft); transition:color .5s ease; }

.footer-social a:hover{ color:var(--ink); }

.footer-social svg{ width:17px; height:17px; }

.footer-credit{ color:inherit; }

.footer-credit a{ color:var(--ink); text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color .5s ease; }

.footer-credit a:hover{ text-decoration-color:var(--ink); }

footer.site .col h3{ font-family:var(--font-display); font-size:clamp(14px,1.5vw,16px); font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase; color:var(--ink); margin:0 0 14px; }

footer.site .col a{ display:block; text-decoration:none; color:var(--ink-soft); font-size:13.5px; padding:6px 0; margin-bottom:2px; transition:color .5s ease; }

footer.site .footer-text{ color:var(--ink-soft); font-size:13.5px; line-height:1.5; margin:0 0 10px; }

.footer-hours{ margin:12px 0; }

.footer-hours-label{ font-family:var(--font-display); font-size:12px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }

footer.site .col a:hover{ color:var(--ink); }

footer.site .footer-contact-wrap{ display:block; }

.footer-contact-box{ margin-top:40px; padding:28px 32px; border:1px solid rgba(20,20,20,.14); background:var(--paper-bright); }

.footer-contact-box h3{ font-family:var(--font-display); font-size:clamp(14px,1.5vw,16px); font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase; color:var(--ink); margin:0 0 20px; }

.footer-contact-row{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:28px 48px; }

.footer-contact-item{ display:flex; flex-direction:column; gap:4px; text-decoration:none; color:var(--ink); }

.footer-contact-item .fc-label{ font-family:var(--font-display); font-size:11px; font-weight:var(--fw-semibold); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }

.footer-contact-item .fc-value{ font-size:14.5px; font-weight:var(--fw-semibold); transition:color .5s ease; }

a.footer-contact-item:hover .fc-value{ color:var(--ink-soft); }

@media (max-width:560px){ .footer-contact-box{ padding:22px 20px; } .footer-contact-row{ gap:20px 32px; } }

footer.site .bottom{ max-width:1240px; margin:36px auto 0; padding:18px 32px 0; border-top:1px solid rgba(20,20,20,.15); font-family:var(--font-display); font-size:12.5px; color:var(--ink-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

footer.site .bottom .bottom-link{ color:inherit; text-decoration:underline; text-decoration-color:transparent; transition:color .5s ease, text-decoration-color .5s ease; }

footer.site .bottom .bottom-link:hover{ text-decoration-color:var(--ink); }

@media (max-width:760px){ footer.site .wrap{ grid-template-columns:1fr 1fr; padding:0 20px; } }

/* ---------- scroll reveal ---------- */
/* Hidden-until-scrolled state only applies once JS confirms it can reveal it again (js-reveal on <html>,
   set synchronously in <head>). No JS / JS failure = content is visible by default, never stuck hidden. */
.js-reveal .reveal{ opacity:0; transform:translateY(28px); transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1), background .5s ease, color .5s ease, border-color .5s ease; }

.reveal.is-visible{ opacity:1; transform:translateY(0); }

.reveal-stagger .reveal:nth-child(1){ transition-delay:0s; }

.reveal-stagger .reveal:nth-child(2){ transition-delay:.08s; }

.reveal-stagger .reveal:nth-child(3){ transition-delay:.16s; }

.reveal-stagger .reveal:nth-child(4){ transition-delay:.24s; }

.reveal-stagger .reveal:nth-child(5){ transition-delay:.32s; }

.reveal-stagger .reveal:nth-child(6){ transition-delay:.4s; }

.reveal-stagger li:nth-child(1) .reveal{ transition-delay:0s; }

.reveal-stagger li:nth-child(2) .reveal{ transition-delay:.08s; }

.reveal-stagger li:nth-child(3) .reveal{ transition-delay:.16s; }

.reveal-stagger li:nth-child(4) .reveal{ transition-delay:.24s; }

.reveal-stagger li:nth-child(5) .reveal{ transition-delay:.32s; }

.reveal-stagger li:nth-child(6) .reveal{ transition-delay:.4s; }

@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- promo modal (config in JS near end of body) ---------- */
.promo-backdrop{ position:fixed; inset:0; background:rgba(20,20,20,.5); opacity:0; pointer-events:none; transition:opacity .4s ease; z-index:200; }

.promo-backdrop.is-open{ opacity:1; pointer-events:auto; }

body.promo-locked{ overflow:hidden; }

.promo-modal{
  position:fixed; z-index:201; background:var(--paper-bright);
  left:50%; top:50%; width:min(92vw,640px);
  display:grid; grid-template-columns:1.1fr 1fr;
  transform:translate(-50%,-46%); opacity:0; pointer-events:none;
  transition:opacity .35s ease, transform .35s ease;
  box-shadow:0 24px 64px rgba(20,20,20,.22);
  overflow:hidden;
}

.promo-modal.is-open{ opacity:1; pointer-events:auto; transform:translate(-50%,-50%); }

.promo-media{ position:relative; min-height:280px; }

.promo-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

.promo-media::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,20,20,.35), rgba(20,20,20,0) 45%); }

.promo-close{ position:absolute; top:16px; right:16px; z-index:2; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:var(--paper-bright); border:none; cursor:pointer; color:var(--ink); padding:0; }

.promo-handle{ display:none; }

.promo-body{ padding:44px 36px; text-align:left; display:flex; flex-direction:column; justify-content:center; }

.promo-body .num{ font-family:var(--font-display); font-size:12px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }

.promo-body h3{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; font-size:26px; letter-spacing:-.01em; line-height:1.05; margin:0 0 12px; }

.promo-body p{ color:var(--ink-soft); font-size:15px; line-height:1.5; margin:0 0 26px; }

.promo-body .btn{ align-self:stretch; justify-content:center; font-size:16px; padding:14px 26px; }

@media (max-width:640px){ .promo-modal{ left:0; right:0; top:auto; bottom:0; width:100%; grid-template-columns:1fr; transform:translateY(100%); border-top:1px solid var(--line); max-height:88vh; overflow-y:auto; } .promo-modal.is-open{ transform:translateY(0); } .promo-handle{ display:block; position:absolute; top:14px; left:50%; transform:translateX(-50%); width:40px; height:4px; background:var(--paper-bright); opacity:.8; z-index:2; } .promo-media{ min-height:180px; } .promo-close{ top:14px; right:14px; } .promo-body{ padding:28px 24px 32px; text-align:center; } }

/* ---------- CookieYes (cookie-law-info) - wygląd 1:1 z motywem MNC (ostre rogi, ink/paper, Poppins, .btn/.btn-line), wycentrowany, tło całe zablurowane ---------- */
.cky-consent-container{
  position:fixed !important; left:50% !important; top:50% !important; right:auto !important; bottom:auto !important;
  transform:translate(-50%,-50%) !important; width:min(92vw,460px) !important; max-width:460px !important;
  max-height:88vh !important; overflow-y:auto !important; z-index:1000000 !important;
}

.cky-notice-backdrop{
  position:fixed; inset:0; z-index:999999; opacity:0; pointer-events:none; transition:opacity .35s ease;
  background:rgba(20,20,20,.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}

.cky-notice-backdrop.is-open{ opacity:1; pointer-events:auto; }

.cky-overlay{ background:rgba(20,20,20,.5) !important; backdrop-filter:blur(8px) !important; -webkit-backdrop-filter:blur(8px) !important; }

.cky-consent-bar{
  background:var(--paper-bright) !important; border:none !important; border-radius:0 !important;
  box-shadow:0 24px 64px rgba(20,20,20,.22) !important; padding:40px 36px !important;
}

.cky-preference-center{
  background:var(--paper-bright) !important; border:none !important; border-radius:0 !important;
  box-shadow:0 24px 64px rgba(20,20,20,.22) !important;
}

.cky-title, .cky-preference-title{
  font-family:var(--font-display) !important; font-weight:var(--fw-black) !important; text-transform:uppercase !important;
  letter-spacing:-.01em !important; color:var(--ink) !important; font-size:22px !important; line-height:1.1 !important;
}

.cky-notice-des p, .cky-notice-des, .cky-preference-content-wrapper, .cky-preference-content-wrapper p,
.cky-accordion-header-des p, .cky-accordion-header-des{
  font-family:var(--font-body) !important; color:var(--ink-soft) !important; line-height:1.55 !important; font-size:14.5px !important;
}

.cky-notice-des p a, .cky-preference-content-wrapper p a, .cky-show-desc-btn{ color:var(--ink) !important; text-decoration:underline; text-decoration-color:var(--line) !important; }

.cky-accordion-btn{ font-family:var(--font-display) !important; font-weight:var(--fw-semibold) !important; color:var(--ink) !important; }

/* plugin ogranicza opis scrollem na mobile (max-height+overflow-y:scroll) - nie potrzebne, caly modal juz scrolluje na poziomie kontenera */
.cky-consent-bar .cky-notice-des{ max-height:none !important; overflow:visible !important; }

/* przyciski: rowna szerokosc, wyrazny odstep, Akceptuj jako pelnoszerokosciowy primary CTA - dokladnie wzorzec .btn/.btn-line z reszty strony
   (specificity > plugin: .cky-consent-container jako dodatkowy prefiks, bo plugin ma wlasna regule
   flex-direction:column na mobile ktora inaczej wygrywa kolejnoscia zaladowania arkuszy) */
.cky-consent-container .cky-notice-btn-wrapper, .cky-preference-center .cky-prefrence-btn-wrapper{
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; gap:12px !important; margin-top:26px !important;
}

.cky-btn{
  font-family:var(--font-display) !important; font-size:13.5px !important; font-weight:var(--fw-semibold) !important;
  letter-spacing:0 !important; text-transform:uppercase !important; border-radius:0 !important; border:2px solid var(--ink) !important;
  padding:12px 18px !important; text-align:center !important; white-space:nowrap !important;
  transition:background .5s ease, color .5s ease, border-color .5s ease !important;
}

.cky-consent-container .cky-notice-btn-wrapper .cky-btn{ flex:0 0 calc(50% - 6px) !important; width:calc(50% - 6px) !important; margin:0 !important; }

.cky-consent-container .cky-notice-btn-wrapper .cky-btn-accept{ flex:0 0 100% !important; width:100% !important; order:3; }

.cky-preference-center .cky-prefrence-btn-wrapper .cky-btn{ flex:1 1 0 !important; width:auto !important; margin:0 !important; }

.cky-btn-accept{ background:var(--ink) !important; color:var(--paper-bright) !important; border-color:var(--ink) !important; }

.cky-btn-accept:hover{ background:var(--paper) !important; color:var(--ink) !important; }

.cky-btn-reject, .cky-btn-customize{ background:transparent !important; color:var(--ink) !important; border-color:var(--ink) !important; }

.cky-btn-reject:hover, .cky-btn-customize:hover{ background:var(--ink) !important; color:var(--paper-bright) !important; }

.cky-btn-close{ border-radius:0 !important; }

@media (max-width:480px){
  .cky-consent-bar{ padding:24px 18px !important; }
  /* plugin doklada wlasny padding:0 24px na .cky-notice-btn-wrapper NIEZALEZNIE od paddingu .cky-consent-bar
     - dwa paddingi obok siebie zostawialy przyciskom ~130px szerokosci, za malo dla "ODRZUC WSZYSTKIE"
     (nowrap) ktory wychodzil poza obrys. Zamiast kruszyc font/padding, przyciski ida pod sobą (100%),
     tak jak juz "AKCEPTUJ WSZYSTKO". */
  .cky-notice-btn-wrapper{ padding:0 !important; }
  .cky-consent-container .cky-notice-btn-wrapper .cky-btn{ flex:0 0 100% !important; width:100% !important; }
}

/* ---------- floating "revisit consent" bubble: domyślny plugin-owy niebieski (#0056A7, inline style)
   zamieniony na ten sam język co .call-fab (ink/paper, invert on hover) ---------- */
.cky-btn-revisit-wrapper{
  background:var(--ink) !important; border:2px solid var(--ink) !important;
  box-shadow:0 8px 24px rgba(20,20,20,.28) !important;
  transition:background .3s ease, border-color .3s ease, transform .3s ease !important;
}

.cky-btn-revisit-wrapper:hover{ background:var(--paper) !important; border-color:var(--ink) !important; transform:scale(1.06); }

.cky-btn-revisit-wrapper:hover .cky-btn-revisit img{ filter:invert(1); }

/* ---------- motion system: tilt tiles, sweep links, marquee, slice-reveal titles, sticker tag, button press ---------- */
.tilt img{ transition:transform .5s cubic-bezier(.2,.8,.2,1); }

@media (hover:hover){ .tilt:hover img{ transform:scale(1.05); } }

@media (prefers-reduced-motion: reduce){ .tilt img{ transition:none; } }

.marquee{ background:var(--ink); color:var(--paper-bright); overflow:hidden; padding:14px 0; }

.marquee-track{ display:flex; width:max-content; gap:28px; animation:marqueeScroll 26s linear infinite; }

.marquee-track span{ font-family:var(--font-display); font-weight:var(--fw-extrabold); text-transform:uppercase; font-size:14px; letter-spacing:.04em; white-space:nowrap; display:flex; align-items:center; gap:28px; }

.marquee-track span::after{ content:'★'; font-size:10px; color:var(--sky); }

@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

.js-reveal h2.title .slice{ display:inline-block; clip-path:inset(0 100% 0 0); transition:clip-path .8s cubic-bezier(.2,.8,.2,1); }

.js-reveal .is-visible h2.title .slice, .js-reveal h2.title.is-visible .slice{ clip-path:inset(0 0 0 0); }

.spread .tag{ transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease; }

.spread .tag:hover{ transform:translateY(-4px); box-shadow:0 16px 32px -12px rgba(20,20,20,.35); }

@media (prefers-reduced-motion: reduce){ .spread .tag:hover{ transform:none; } }

.btn:active, .btn-line:active, .btn-light:active{ transform:scale(.96); }

/* ---------- hero: ivory background (guaranteed legible text), video as a contained framed panel below ---------- */
.hero-showcase{ background:var(--paper); padding:40px 0 0; }

.hero-copy{ padding-bottom:36px; }

.hero-copy h1{
  font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; color:var(--ink);
  font-size:clamp(34px,6.4vw,80px); line-height:.98; letter-spacing:-.015em; margin:0 0 28px; max-width:15ch; text-wrap:balance;
}

.hero-frame{ position:relative; height:64vh; min-height:380px; max-height:600px; overflow:hidden; }

.hero-frame video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

@media (prefers-reduced-motion: reduce){ .hero-frame video{ display:none; } }

@media (max-width:760px){ .hero-frame{ height:auto; aspect-ratio:4/5; } }

@media (max-width:760px){ .greviews{ padding:64px 0 48px; } }

/* ---------- page header ---------- */
.pagehero{ position:relative; height:52vh; min-height:380px; max-height:520px; overflow:hidden; }

.pagehero-media{ position:absolute; inset:0; }

.pagehero-media img{ width:100%; height:100%; object-fit:cover; display:block; }

.pagehero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(20,26,17,.82) 0%, rgba(20,26,17,.5) 55%, rgba(20,26,17,.14) 100%);
}

.pagehero .wrap{ height:100%; }

.pagehero-copy{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; max-width:680px; }

.breadcrumb{ font-family:var(--font-display); font-size:13.5px; font-weight:var(--fw-semibold); letter-spacing:0; color:var(--paper); margin-bottom:16px; text-shadow:0 2px 8px rgba(0,0,0,.6); }

.breadcrumb a{ color:var(--paper); text-decoration:none; transition:color .5s ease; }

.breadcrumb a:hover{ color:var(--sky); }

.pagehero h1{
  font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:-.01em; color:var(--paper-bright);
  font-size:clamp(32px,4.6vw,52px); line-height:1.02; margin:0 0 14px; max-width:16ch; text-wrap:balance;
  text-shadow:0 4px 24px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.6);
}

.pagehero .lede{ color:var(--paper); font-size:16px; max-width:50ch; margin:0 0 24px; text-wrap:pretty; text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7); }

.pagehero .lede b{ color:var(--paper-bright); font-weight:var(--fw-bold); }

.pagehero-cta{ box-shadow:0 18px 32px -14px rgba(0,0,0,.4); }

@media (max-width:760px){ .pagehero{ height:auto; min-height:0; aspect-ratio:4/5; } .pagehero-copy{ padding:48px 0; } }

/* ---------- pagehero--plain: bez zdjęcia (polityka prywatności itp.) - jasne tło, ciemny tekst ---------- */
.pagehero--plain{ height:auto; min-height:0; max-height:none; background:var(--paper); padding:64px 0 40px; }
.pagehero--plain::after{ display:none; }
.pagehero--plain .pagehero-copy{ height:auto; max-width:760px; }
.pagehero--plain .breadcrumb{ color:var(--ink-soft); text-shadow:none; }
.pagehero--plain .breadcrumb a{ color:var(--ink-soft); }
.pagehero--plain .breadcrumb a:hover{ color:var(--ink); }
.pagehero--plain h1{ color:var(--ink); text-shadow:none; }
.pagehero--plain .lede{ color:var(--ink-soft); text-shadow:none; }

/* ---------- legal-page: polityka prywatności, długa treść ---------- */
.legal-page{ padding:16px 0 88px; }
.legal-prose{ max-width:760px; }
.legal-prose h2{
  font-family:var(--font-display); font-weight:var(--fw-extrabold); text-transform:uppercase; letter-spacing:-.005em;
  font-size:clamp(18px,2.2vw,22px); color:var(--ink); margin:40px 0 12px; padding-top:24px; border-top:1px solid var(--line);
}
.legal-prose h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.legal-prose p{ color:var(--ink-soft); font-size:15px; line-height:1.7; margin:0 0 4px; max-width:70ch; }
.legal-prose p b{ color:var(--ink); font-weight:var(--fw-bold); }
.legal-prose p a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); transition:color .5s ease; }
.legal-prose p a:hover{ text-decoration-color:var(--ink); }

.sitemap-list{ list-style:none; margin:0 0 4px; padding:0; }

.sitemap-list li{ border-top:1px solid var(--line); }

.sitemap-list li:last-child{ border-bottom:1px solid var(--line); }

.sitemap-list a{ display:block; padding:14px 0; color:var(--ink); font-size:15.5px; text-decoration:none; transition:color .5s ease; }

.sitemap-list a:hover{ color:var(--ink-soft); }

/* ---------- menu list + sidebar ---------- */
.menulist{ padding:56px 0 20px; }

.menulist-grid{ display:grid; grid-template-columns:1fr 260px; gap:56px; align-items:start; }

.menulist-main .num{
  font-family:var(--font-display); font-size:15px; font-weight:var(--fw-bold); letter-spacing:0; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;
}

.menulist-main p.note{ color:var(--ink-soft); font-size:13.5px; max-width:60ch; margin:0 0 32px; text-wrap:pretty; }

.menu-category{ scroll-margin-top:100px; margin-top:44px; }

.menu-category:first-child{ margin-top:0; }

.cat-title{ font-family:var(--font-display); font-weight:var(--fw-extrabold); text-transform:uppercase; letter-spacing:-.005em; font-size:23px; color:var(--ink); margin:0 0 4px; }

.sidebar-group-label{ font-family:var(--font-display); font-size:11.5px; font-weight:var(--fw-bold); letter-spacing:.03em; text-transform:uppercase; color:var(--ink-soft); margin:18px 0 6px; }

.sidebar-group-label:first-child{ margin-top:0; }

.menuitem-list{ list-style:none; margin:0; padding:0; }

.menuitem{
  display:grid; grid-template-columns:1fr auto; gap:6px 24px; align-items:baseline; padding:22px 24px; margin:0 -24px;
  border-top:1px solid var(--line); scroll-margin-top:100px; transition:background .5s ease;
}

.menuitem:nth-child(even){ background:rgba(20,20,20,.035); }

.menuitem:hover{ background:rgba(20,20,20,.09); }

.menuitem .name{ font-family:var(--font-display); font-size:17.5px; font-weight:var(--fw-extrabold); text-transform:uppercase; color:var(--ink); grid-column:1; }

.menuitem .price{ grid-column:2; font-family:var(--font-display); font-size:15.5px; font-weight:var(--fw-bold); color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }

.menuitem .desc{ grid-column:1/-1; color:var(--ink-soft); font-size:14.5px; line-height:1.55; max-width:70ch; margin:3px 0 0; text-wrap:pretty; }

.menuitem .tag{
  display:inline-block; font-family:var(--font-display); font-size:11px; font-weight:var(--fw-bold); letter-spacing:.04em; text-transform:uppercase;
  color:var(--paper); background:var(--ink); padding:3px 9px; margin-left:10px; vertical-align:middle;
}

@media (max-width:760px){ .menuitem{ padding:20px 20px; margin:0 -20px; } }

.menu-sidebar{
  position:sticky; top:96px; background:var(--sky); color:var(--ink); padding:28px 24px;
}

.sidebar-label{ font-family:var(--font-display); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:0; text-transform:uppercase; color:var(--ink); margin-bottom:12px; }

.jump-link{
  font-family:var(--font-display); font-size:14px; font-weight:var(--fw-regular); color:var(--ink); text-decoration:none; padding:7px 0 7px 14px;
  border-left:2px solid rgba(20,20,20,.22); transition:color .5s ease, border-color .5s ease;
}

.jump-link:hover{ text-decoration:underline; }

.jump-link.active{ color:var(--ink); font-weight:var(--fw-bold); border-left-color:var(--ink); }

@media (max-width:900px){ .menulist-grid{ grid-template-columns:1fr; } .menu-sidebar{ display:none; } }

/* ---------- faq ---------- */
.faq{ padding:64px 0 80px; }

.faq h2{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(23px,2.8vw,30px); margin:0 0 28px; text-wrap:balance; }

.faqitem{ border-top:1px solid var(--line); padding:18px 0; }

.faqitem summary{ font-weight:var(--fw-bold); font-size:15px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px; transition:text-decoration .5s ease; }

.faqitem summary:hover{ text-decoration:underline; }

.faqitem summary::-webkit-details-marker{ display:none; }

.faqitem summary::after{ content:'+'; font-family:var(--font-display); font-weight:var(--fw-bold); color:var(--ink-soft); }

.faqitem[open] summary::after{ content:'-'; }

.faqitem .faq-panel{ overflow:hidden; height:0; }

.faqitem[open] .faq-panel{ height:auto; }

.faqitem p{ color:var(--ink-soft); font-size:14px; margin:10px 0 0; max-width:66ch; text-wrap:pretty; }

.contact-dl{ margin:24px 0 0; }

.contact-dl dt{ font-family:var(--font-display); font-size:10.5px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:18px; }

.contact-dl dt:first-child{ margin-top:0; }

.contact-dl dd{ margin:4px 0 0; font-size:16px; color:var(--ink); }

.contact-dl dd a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); transition:color .5s ease; }

.contact-dl dd a:hover{ text-decoration-color:var(--ink); }

.contact-map{ margin-top:28px; aspect-ratio:4/3; overflow:hidden; box-shadow:0 26px 48px -20px rgba(20,20,20,.4); }

.contact-map iframe{ width:100%; height:100%; border:0; filter:grayscale(15%) contrast(1.05); display:block; }

.contact-form{ margin-top:24px; display:flex; flex-direction:column; gap:18px; }

.form-row{ display:flex; flex-direction:column; gap:4px; min-width:0; }

.form-row label{ display:block; line-height:1; font-family:var(--font-display); font-size:11px; font-weight:var(--fw-semibold); letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }

.form-row input, .form-row textarea{
  font-family:var(--font-body); font-size:16px; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); padding:12px 14px; border-radius:0; transition:border-color .3s ease; resize:vertical;
}

.form-row input:focus, .form-row textarea:focus{ outline:none; border-color:var(--ink); }

.contact-form .btn{ align-self:flex-start; margin-top:6px; }

.form-note{ font-size:13.5px; color:var(--ink); margin:4px 0 0; }

/* ---------- Contact Form 7 - mostek stylów (span-wrappery CF7 wewnątrz .form-row) ---------- */
.wpcf7-form-control-wrap{ display:block; }
.wpcf7 .hp-field{ margin:0; }
.wpcf7-response-output{
  font-family:var(--font-body); font-size:13.5px; line-height:1.5; margin:4px 0 0 !important;
  padding:12px 14px; border:1px solid var(--line); color:var(--ink); background:var(--paper);
}
.wpcf7-form.sent .wpcf7-response-output{ border-color:#3E7A4B; background:#EEF5EF; }
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output{ border-color:#B0473F; background:#FBEDEC; }
.wpcf7-form.spam .wpcf7-response-output{ display:none; }
.wpcf7-not-valid-tip{ font-size:12px; color:#B0473F; margin-top:4px; display:block; }
.wpcf7-form-control.wpcf7-not-valid{ border-color:#B0473F; }
.screen-reader-response{ position:absolute; left:-9999px; }

/* on this page community follows a dark section directly - no light gap between two dark blocks */
#spolecznosc.community{ margin-top:0; }

/* ---------- cross-links ---------- */
.closing-cta{ background:var(--paper); color:var(--ink); padding:64px 0; border-top:1px solid var(--line); }

.closing-cta-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:center; }

.closing-contact{ border-left:1px solid var(--line); padding-left:40px; }

.closing-contact .footer-text{ color:var(--ink-soft); font-size:14px; line-height:1.6; margin:0 0 12px; }

.closing-contact .contact-phone{ display:block; font-family:var(--font-display); font-weight:var(--fw-bold); font-size:18px; color:var(--ink); text-decoration:none; margin-bottom:14px; transition:color .5s ease; }

.closing-contact .contact-phone:hover{ text-decoration:underline; }

@media (max-width:860px){ .closing-cta-grid{ grid-template-columns:1fr; gap:32px; } .closing-contact{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:32px; } }

/* ---------- contact page ---------- */
.contact-main{ padding:80px 0 0; }

.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:start; padding-bottom:80px; }
.contact-grid > *{ min-width:0; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }

.contact-info .title{ font-family:var(--font-display); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:-.005em; color:var(--ink); font-size:clamp(24px,2.6vw,32px); line-height:1.15; margin:10px 0 14px; text-wrap:balance; }

.contact-info .contact-lede{ color:var(--ink-soft); font-size:15px; max-width:42ch; margin:0 0 8px; }

.contact-cards{ display:grid; grid-template-columns:1fr 1fr; column-gap:32px; margin-top:24px; border-top:1px solid var(--line); }

.contact-card{ display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-bottom:1px solid var(--line); min-width:0; }

@media (max-width:560px){ .contact-cards{ grid-template-columns:1fr; } }

.contact-icon{
  width:42px; height:42px; border-radius:50%; background:var(--ink); color:var(--paper-bright);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

.contact-icon svg{ width:19px; height:19px; }

.cc-label{ font-family:var(--font-display); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }

.cc-value{ font-size:15.5px; color:var(--ink); line-height:1.5; }

.hours-row{ display:flex; flex-direction:column; gap:2px; }

.hours-row + .hours-row{ margin-top:12px; }

.hours-row span:first-child{ color:var(--ink-soft); font-size:13.5px; }

.hours-row span:last-child{ font-variant-numeric:tabular-nums; font-weight:var(--fw-semibold); font-size:16px; }

.cc-value a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); transition:color .5s ease; }

.cc-value a:hover{ text-decoration-color:var(--ink); }

.form-row input, .form-row textarea, .form-row select{
  width:100%; box-sizing:border-box; display:block; line-height:1.4;
  font-family:var(--font-body); font-size:16px; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); padding:12px 14px; border-radius:0; transition:border-color .3s ease; resize:vertical;
}

.form-row select{
  appearance:none; -webkit-appearance:none; padding-right:38px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23564F38" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
}

.form-row input:focus, .form-row textarea:focus, .form-row select:focus{ outline:none; border-color:var(--ink); }

/* ---------- mapa: pełna szerokość, przyklejona do footera ---------- */
.contact-map-full{ height:440px; }

.contact-map-full iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(15%) contrast(1.05); }

@media (max-width:760px){ .contact-map-full{ height:320px; } }

.sidebar-other{ margin-top:28px; padding-top:20px; border-top:1px solid rgba(20,20,20,.2); }

.sidebar-other .sidebar-label{ margin-bottom:12px; }

.sidebar-other-tile{ display:flex; align-items:center; gap:12px; text-decoration:none; padding:8px 0; transition:opacity .3s ease; }

.sidebar-other-tile:hover{ opacity:.7; }

.sidebar-other-tile img{ width:44px; height:44px; object-fit:cover; flex-shrink:0; }

.sidebar-other-tile span{ font-family:var(--font-display); font-size:13.5px; font-weight:var(--fw-semibold); color:var(--ink); line-height:1.25; }

.sidebar-jump{ display:flex; flex-direction:column; gap:2px; }

/* ---------- honeypot (formularz kontaktowy - inc/contact-form.php) ---------- */
.hp-field{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; opacity:0; overflow:hidden; pointer-events:none; }

/* ---------- blog: Aktualności (home.php lista + single.php wpis) ---------- */
.blog-list{ padding:16px 0 88px; }

.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }

.blog-card{ display:flex; flex-direction:column; text-decoration:none; border:1px solid var(--line); background:var(--paper); transition:box-shadow .4s ease, transform .4s ease; }

.blog-card:hover{ box-shadow:0 22px 40px -20px rgba(20,20,20,.35); transform:translateY(-3px); }

.blog-card-media{ aspect-ratio:4/3; overflow:hidden; }

.blog-card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }

.blog-card:hover .blog-card-media img{ transform:scale(1.05); }

.blog-card-body{ padding:22px 22px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }

.blog-card-title{ font-family:var(--font-display); font-weight:var(--fw-extrabold); text-transform:uppercase; font-size:19px; line-height:1.2; color:var(--ink); margin:0; }

.blog-card-excerpt{ color:var(--ink-soft); font-size:14px; line-height:1.55; margin:0; text-transform:none; flex:1; }

.blog-card-cta{ align-self:flex-start; margin-top:6px; pointer-events:none; }

.blog-pagination{ margin-top:48px; display:flex; justify-content:center; gap:16px; }

.blog-pagination .page-numbers{ font-family:var(--font-display); font-size:13.5px; font-weight:var(--fw-semibold); color:var(--ink-soft); text-decoration:none; padding:8px 14px; border:1px solid var(--line); transition:color .3s ease, border-color .3s ease; }

.blog-pagination .page-numbers.current, .blog-pagination .page-numbers:hover{ color:var(--ink); border-color:var(--ink); }

@media (max-width:960px){ .blog-grid{ grid-template-columns:1fr 1fr; } }

@media (max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---------- article-prose: treść wpisu Aktualności - czytelna, BEZ capslocku ---------- */
.article-prose{ max-width:760px; }

.article-prose h2{ font-family:var(--font-display); font-weight:var(--fw-extrabold); text-transform:uppercase; font-size:clamp(20px,2.6vw,26px); color:var(--ink); margin:36px 0 14px; }

.article-prose h3{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:18px; color:var(--ink); margin:28px 0 10px; }

.article-prose p{ color:var(--ink-soft); font-size:16px; line-height:1.75; margin:0 0 18px; text-transform:none; }

.article-prose ul, .article-prose ol{ color:var(--ink-soft); font-size:16px; line-height:1.75; margin:0 0 18px; padding-left:22px; }

.article-prose li{ margin-bottom:6px; }

.article-prose img{ width:100%; height:auto; margin:28px 0; box-shadow:0 26px 48px -22px rgba(20,20,20,.4); }

.article-prose a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); }

.article-prose a:hover{ text-decoration-color:var(--ink); }

.article-prose strong, .article-prose b{ color:var(--ink); font-weight:var(--fw-bold); }

/* ---------- locate-cta: pasek CTA na dole wpisu (i reużywalny gdzie indziej) ---------- */
.locate-cta{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-top:56px; padding:32px; background:var(--sky); }

.locate-cta .title{ margin:0; }

.locate-cta-actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

@media (max-width:640px){ .locate-cta{ flex-direction:column; align-items:flex-start; padding:26px; } }
