/* ============================================================
   BOSFOR & BAŁTYK — Site-wide Layout Layer (Claude-owned)
   Centered header (bb-hdr), logo/favicon, loader. Loads after brand.css
   on EVERY page. Keep header/loader/site-chrome here (not brand.css).
   ⚠ Do not delete — header CSS lives here.
   ============================================================ */

:root{
  --bb-royal:#0a4fba; --bb-royal-deep:#073a8a; --bb-cyan:#04bee9;
  --bb-amber:#ea910f; --bb-amber-deep:#985200; --bb-gold:#ffc30a; --bb-vanilla:#fef8e0; --bb-ink:#1a1b1c;
}

/* hide the old template header entirely if any page still emits it */
.main-header{ display:none !important; }

/* ============================================================
   NEW CENTERED HEADER (bb-hdr) — logo middle, split nav, lang switcher
   ============================================================ */
.bb-hdr{ position:sticky; top:0; z-index:1000; font-family:'Montserrat',sans-serif; }

/* top royal bar */
.bb-hdr__top{ background:var(--bb-royal-deep); color:rgba(254,248,224,.9); }
.bb-hdr__top-inner{ max-width:1280px; margin:0 auto; padding:8px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:12px; }
.bb-hdr__loc{ letter-spacing:.04em; }
.bb-hdr__loc i{ color:var(--bb-gold); margin-right:6px; }

/* language switcher (native <details>) */
.bb-lang{ position:relative; }
.bb-lang summary{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
  font-weight:700; letter-spacing:.08em; color:var(--bb-vanilla); padding:4px 10px;
  border:1px solid rgba(254,248,224,.25); border-radius:999px; }
.bb-lang summary::-webkit-details-marker{ display:none; }
.bb-lang summary::after{ content:"▾"; font-size:10px; opacity:.8; }
.bb-lang .fi{ border-radius:2px; width:18px; height:13px; }
.bb-lang ul{ position:absolute; right:0; top:calc(100% + 8px); margin:0; padding:6px;
  list-style:none; background:var(--bb-vanilla); border-radius:10px; min-width:170px;
  box-shadow:0 14px 40px rgba(10,79,186,.22); z-index:50; }
.bb-lang li a{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:7px;
  color:var(--bb-royal); font-weight:600; font-size:13px; text-decoration:none; }
.bb-lang li a:hover{ background:rgba(234,145,15,.12); color:var(--bb-amber-deep); }

/* main bar: 3-column grid, logo centered */
/* full-width band: pattern fills the gutters L & R, cream bar centered on top */
.bb-hdr__main-wrap{
  position:relative;
  background:var(--bb-vanilla);
  background-image:url('../images/brand/pattern-strip.png');
  background-repeat:repeat-x; background-position:center; background-size:auto 100%;
  border-bottom:1px solid rgba(255,195,10,.45);
  box-shadow:0 4px 22px rgba(10,79,186,.07);
}
.bb-hdr__main{ position:relative; z-index:2;
  /* wide cream bar (no mask — mask was clipping the dropdown text).
     Feathered edges done with gradient backgrounds instead. */
  background:
    linear-gradient(90deg, transparent 0, var(--bb-vanilla) 40px) left/50% 100% no-repeat,
    linear-gradient(270deg, transparent 0, var(--bb-vanilla) 40px) right/50% 100% no-repeat;
  max-width:1500px; margin:0 auto; padding:6px 56px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:40px; }
.bb-navtoggle{ display:none; }

.bb-hdr__nav{ display:flex; align-items:center; gap:34px; }
.bb-hdr__nav--left{ justify-content:flex-end; }
.bb-hdr__nav--right{ justify-content:flex-start; }
.bb-hdr__nav a{ position:relative; color:var(--bb-royal); font-weight:600; font-size:13px;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none; padding:8px 0;
  white-space:nowrap; transition:color .2s; }
.bb-hdr__nav a:hover{ color:var(--bb-amber-deep); }
.bb-hdr__nav a:not(.bb-hdr__cta)::after{ content:""; position:absolute; left:50%; bottom:2px; height:2px; width:0;
  background:linear-gradient(90deg,var(--bb-gold),var(--bb-amber)); transform:translateX(-50%); transition:width .26s; }
.bb-hdr__nav a:not(.bb-hdr__cta):hover::after{ width:100%; }

/* brand icon centered — larger, breaks below the bar for presence */
.bb-hdr__brand{ display:block; line-height:0; padding:0; margin:-10px 0; }
.bb-hdr__brand img{ height:104px; width:auto; display:block; transition:transform .25s;
  filter:drop-shadow(0 4px 14px rgba(10,79,186,.18)); }
.bb-hdr__brand:hover img{ transform:translateY(-2px) scale(1.04); }

/* Menu dropdown — locked styling, overrides Restoria template's .main-menu .navigation rules */
.bb-hdr__has{ position:relative; }
.bb-hdr__drop, .bb-hdr__drop *{ margin:0 !important; line-height:1.4 !important; }
.bb-hdr__drop{ position:absolute !important; left:50% !important; top:calc(100% + 6px) !important;
  transform:translateX(-50%) translateY(8px); display:block !important;
  background:var(--bb-vanilla) !important; border-top:3px solid var(--bb-amber) !important;
  border-radius:0 0 12px 12px !important; box-shadow:0 16px 40px rgba(10,79,186,.20) !important;
  min-width:240px; padding:6px 0 !important; opacity:0; visibility:hidden;
  transition:opacity .22s, visibility .22s, transform .22s; z-index:60; }
.bb-hdr__has:hover .bb-hdr__drop, .bb-hdr__has:focus-within .bb-hdr__drop{
  opacity:1 !important; visibility:visible !important; transform:translateX(-50%) translateY(0); }
.bb-hdr__drop a{ display:block !important; padding:10px 22px !important;
  text-transform:none !important; letter-spacing:.02em !important;
  font-size:14px !important; font-weight:600 !important; color:var(--bb-royal) !important;
  line-height:1.4 !important; margin:0 !important; text-decoration:none !important;
  border-bottom:1px solid rgba(10,79,186,.08);
  transition:background .18s, color .18s, padding-left .18s; }
.bb-hdr__drop a:last-child{ border-bottom:none; }
.bb-hdr__drop a::after, .bb-hdr__drop a::before{ display:none !important; }
.bb-hdr__drop a:hover{ background:rgba(234,145,15,.12); color:var(--bb-amber-deep) !important;
  padding-left:28px !important; }

/* reservation CTA pill */
.bb-hdr__cta{ background:linear-gradient(135deg,var(--bb-gold),var(--bb-amber)) !important;
  color:var(--bb-royal-deep) !important; padding:11px 22px !important; border-radius:999px;
  box-shadow:0 8px 20px rgba(234,145,15,.32); font-weight:700; }
.bb-hdr__cta:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(234,145,15,.45); }

/* burger (mobile only) */
.bb-hdr__burger{ display:none; cursor:pointer; }
.bb-hdr__burger span{ display:block; width:26px; height:2px; background:var(--bb-royal); margin:5px 0; border-radius:2px; transition:.3s; }

@media (max-width:980px){
  .bb-hdr__main{ grid-template-columns:auto 1fr auto; }
  .bb-hdr__brand{ order:1; justify-self:start; }
  .bb-hdr__brand img{ height:54px; }
  .bb-hdr__burger{ order:3; display:block; justify-self:end; }
  .bb-hdr__top-inner{ font-size:11px; justify-content:flex-end; }
  .bb-hdr__loc{ display:none; }
  .bb-hdr__nav{ order:4; grid-column:1 / -1; flex-direction:column; align-items:stretch; gap:0;
    max-height:0; overflow:hidden; transition:max-height .35s ease; }
  .bb-navtoggle:checked ~ .bb-hdr__nav{ max-height:640px; padding:6px 0; }
  .bb-hdr__nav a{ padding:13px 4px; border-bottom:1px solid rgba(10,79,186,.1); text-align:left; }
  .bb-hdr__nav--left{ justify-content:flex-start; }
  .bb-hdr__has{ position:static; }
  .bb-hdr__drop{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none;
    border-top:none; padding:0 0 0 16px; min-width:0; background:transparent; }
  .bb-hdr__drop a{ padding:10px 4px; }
  .bb-hdr__cta{ margin:10px 0; text-align:center; }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(2){ opacity:0; }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

/* ============================================================
   LOADER — fully disabled (no preloader)
   ============================================================ */
.loader-wrap,
.preloader,
.handle-preloader,
.animation-preloader{ display:none !important; }

/* ============================================================
   FOOTER logo lockup (inverted to cream on royal-blue footer)
   ============================================================ */
.main-footer .logo img,
.main-footer .bb-logo-img{
  height:86px !important; width:auto !important;
  filter:brightness(0) invert(1); opacity:.95;
}
@media (max-width:768px){
  .main-footer .logo img,
  .main-footer .bb-logo-img{ height:70px !important; }
}

/* accessibility */
*:focus-visible{ outline:3px solid var(--bb-gold) !important; outline-offset:3px; border-radius:4px; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Reservation subtext — turquoise */
.reserve-section .request-info{ color: var(--bb-cyan) !important; }
.reserve-section .request-info a{ color: var(--bb-cyan) !important; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.reserve-section .request-info a:hover{ color: var(--bb-gold) !important; }

/* Powered by Team Knocknock (footer) */
.bb-poweredby a{ color:var(--bb-gold) !important; font-weight:700; text-decoration:none; }
.bb-poweredby a:hover{ text-decoration:underline; }

/* Inner page banner — dark veil + WHITE heading for legibility on photo */
.inner-banner{ position:relative; }
.inner-banner__veil{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(7,58,138,.62), rgba(7,58,138,.78)); }
.inner-banner .auto-container{ position:relative; z-index:2; }
.inner-banner .inner-box h1{ color:#fff !important; text-shadow:0 3px 20px rgba(0,0,0,.4); }
.inner-banner .inner-box .text{ color:rgba(254,248,224,.92) !important; }
.inner-banner .inner-box .text *{ color:var(--bb-gold) !important; }

/* Inner banner heading legibility (real markup: .inner h1 / .sub_text) */
.inner-banner .inner h1{ color:#fff !important; text-shadow:0 3px 20px rgba(0,0,0,.45); }
.inner-banner .sub_text, .inner-banner .sub_text p{ color:rgba(254,248,224,.92) !important; }
.inner-banner .sub_text .primary-color{ color:var(--bb-gold) !important; }

/* ============================================================
   STICKY MOBILE CTA BAR (Claude-owned) — appears after hero scroll.
   Mobile/tablet only; conversion anchor (Rezerwacja / Zadzwoń).
   ============================================================ */
.bb-cta-bar{ position:fixed; left:0; right:0; bottom:0; z-index:1500;
  display:none; gap:10px; padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(254,248,224,.97); backdrop-filter:blur(8px);
  border-top:1px solid rgba(10,79,186,.16); box-shadow:0 -6px 24px rgba(10,79,186,.14);
  transform:translateY(110%); transition:transform .3s ease; }
.bb-cta-bar.is-visible{ transform:translateY(0); }
.bb-cta-bar a{ flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:14px; letter-spacing:.02em;
  padding:14px 10px; border-radius:12px; text-decoration:none; min-height:48px; }
.bb-cta-bar__reserve{ background:linear-gradient(135deg,var(--bb-gold),var(--bb-amber)); color:var(--bb-royal-deep); }
.bb-cta-bar__call{ background:var(--bb-royal); color:var(--bb-vanilla); }
@media(max-width:820px){ .bb-cta-bar{ display:flex; } }
@media(min-width:821px){ .bb-cta-bar{ display:none !important; } }

/* Newsletter reassurance microcopy */
.newsletter-note{ font-family:'Montserrat',sans-serif; font-size:11.5px; line-height:1.5;
  color:rgba(254,248,224,.62); margin-top:10px; max-width:38ch; }

/* ---------- Footer quick links (Claude-owned, replaces decorative img cols) ---------- */
.bb-foot-links h4{ font-family:'DM Serif Display',serif; color:var(--bb-vanilla); font-size:18px;
  margin:0 0 16px; letter-spacing:.01em; }
.bb-foot-links ul{ list-style:none; padding:0; margin:0; }
.bb-foot-links li{ margin:0 0 9px; }
.bb-foot-links li a{ font-family:'Montserrat',sans-serif; font-size:14px; color:rgba(254,248,224,.78);
  text-decoration:none; transition:color .2s, padding-left .2s; }
.bb-foot-links li a:hover{ color:var(--bb-gold); padding-left:4px; }

/* Footer legal row (Claude-owned) */
.bb-foot-legal{ font-size:12.5px; color:rgba(254,248,224,.7); margin:0 0 8px; line-height:1.7; }
.bb-foot-legal a, .bb-foot-legal .bb-cc-reopen{ color:rgba(254,248,224,.85); text-decoration:none; font-weight:600; }
.bb-foot-legal a:hover, .bb-foot-legal .bb-cc-reopen:hover{ color:var(--bb-gold); }
.bb-foot-legal .bb-cc-reopen{ background:none; border:0; padding:0; cursor:pointer; font:inherit; }

/* ============================================================
   FOOTER REDESIGN — 4 balanced columns (Claude-owned, replaces template footer)
   ============================================================ */
.bb-foot{ position:relative; background:linear-gradient(180deg, var(--bb-royal) 0%, var(--bb-royal-deep) 100%);
  color:var(--bb-vanilla); padding:clamp(48px,7vw,80px) 0 28px; overflow:hidden; }
.bb-foot__pattern{ position:absolute; inset:0; pointer-events:none;
  background:url('../images/brand/pattern-strip.png') center/280px auto repeat;
  opacity:.06; mix-blend-mode:screen; }
.bb-foot > .auto-container{ position:relative; z-index:1; }
.bb-foot__grid{ display:grid; gap:36px;
  grid-template-columns:1.4fr 1fr 1fr 1.4fr; align-items:flex-start; }
@media(max-width:1080px){ .bb-foot__grid{ grid-template-columns:1fr 1fr; gap:34px 28px; } }
@media(max-width:560px){ .bb-foot__grid{ grid-template-columns:1fr; gap:32px; } }

.bb-foot__col{ font-family:'Montserrat',sans-serif; }
.bb-foot__col--brand{ }
.bb-foot__logo{ display:inline-block; margin-bottom:18px; line-height:0; }
.bb-foot__logo img{ width:170px; max-width:80%; height:auto; filter:brightness(0) invert(1); opacity:.96; }
.bb-foot__tag{ font-family:'DM Serif Display',serif; font-style:italic;
  font-size:15px; line-height:1.55; color:rgba(254,248,224,.86); margin:0 0 22px; max-width:36ch; }
.bb-foot__contact{ list-style:none; padding:0; margin:0; }
.bb-foot__contact li{ font-size:13.5px; line-height:1.55; color:rgba(254,248,224,.86);
  padding:7px 0; border-bottom:1px solid rgba(254,248,224,.10); display:flex; gap:10px; align-items:flex-start; }
.bb-foot__contact li:last-child{ border-bottom:0; }
.bb-foot__contact li > span:first-child{ flex:none; opacity:.9; }
.bb-foot__contact a{ color:var(--bb-vanilla); text-decoration:none; font-weight:600; transition:color .2s; }
.bb-foot__contact a:hover{ color:var(--bb-gold); }
.bb-foot__sub{ display:block; font-size:12px; color:rgba(254,248,224,.62); margin-top:2px; }

.bb-foot__h{ font-family:'DM Serif Display',serif; color:#fff; font-size:18px; letter-spacing:.01em;
  margin:0 0 16px; padding-bottom:10px; border-bottom:2px solid var(--bb-gold); display:inline-block; }
.bb-foot__h--mt{ margin-top:26px; }
.bb-foot__links{ list-style:none; padding:0; margin:0; }
.bb-foot__links li{ margin:0 0 9px; }
.bb-foot__links a{ font-size:14px; color:rgba(254,248,224,.78); text-decoration:none;
  transition:color .2s, padding-left .2s; display:inline-block; }
.bb-foot__links a:hover{ color:var(--bb-gold); padding-left:4px; }
.bb-foot__social{ list-style:none; padding:0; margin:0; display:flex; gap:10px; }
.bb-foot__social a{ width:38px; height:38px; border-radius:50%; background:rgba(254,248,224,.10);
  display:flex; align-items:center; justify-content:center; color:var(--bb-vanilla);
  text-decoration:none; transition:.25s; font-size:15px; }
.bb-foot__social a:hover{ background:linear-gradient(135deg,var(--bb-gold),var(--bb-amber));
  color:var(--bb-royal-deep); transform:translateY(-2px); }

.bb-foot__col--news{ }
.bb-foot__news-lead{ font-size:13.5px; line-height:1.6; color:rgba(254,248,224,.82); margin:0 0 14px; }
.bb-foot__news-row{ display:flex; gap:8px; background:rgba(254,248,224,.10); border:1px solid rgba(254,248,224,.18);
  border-radius:12px; padding:5px; transition:border-color .2s; }
.bb-foot__news-row:focus-within{ border-color:var(--bb-gold); }
.bb-foot__news-row input{ flex:1; min-width:0; background:transparent; border:0; padding:10px 12px;
  font-family:'Montserrat',sans-serif; font-size:14px; color:#fff; outline:none; }
.bb-foot__news-row input::placeholder{ color:rgba(254,248,224,.55); }
.bb-foot__news-row button{ flex:none; padding:10px 18px; border:0; border-radius:8px; cursor:pointer;
  background:linear-gradient(135deg,var(--bb-gold),var(--bb-amber)); color:var(--bb-royal-deep);
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:13px; letter-spacing:.02em;
  transition:transform .15s, box-shadow .15s; }
.bb-foot__news-row button:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(234,145,15,.4); }
.bb-foot__news-note{ font-size:11.5px; line-height:1.55; color:rgba(254,248,224,.58); margin:10px 0 0; }
.bb-foot__news-note a{ color:rgba(254,248,224,.85); text-decoration:underline;
  text-decoration-color:rgba(254,248,224,.3); text-underline-offset:2px; }
.bb-foot__news-note a:hover{ color:var(--bb-gold); }

.bb-foot__bottom{ margin-top:48px; padding-top:24px; border-top:1px solid rgba(254,248,224,.14);
  display:grid; grid-template-columns:1fr auto 1fr; gap:18px 24px; align-items:center;
  font-family:'Montserrat',sans-serif; }
@media(max-width:820px){ .bb-foot__bottom{ grid-template-columns:1fr; text-align:center; } }
.bb-foot__copy{ font-size:13px; color:rgba(254,248,224,.78); margin:0; }
.bb-foot__copy strong{ color:#fff; font-weight:700; }
.bb-foot__legal{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:center;
  font-size:12.5px; color:rgba(254,248,224,.6); }
.bb-foot__legal a, .bb-foot__legal .bb-cc-reopen{ color:rgba(254,248,224,.82); text-decoration:none;
  font-weight:600; transition:color .2s; background:none; border:0; padding:0; font:inherit; cursor:pointer; }
.bb-foot__legal a:hover, .bb-foot__legal .bb-cc-reopen:hover{ color:var(--bb-gold); }
.bb-foot__corp{ font-size:11.5px; color:rgba(254,248,224,.5); margin:0; text-align:right; line-height:1.55; }
@media(max-width:820px){ .bb-foot__corp{ text-align:center; } }
.bb-foot__powered a{ color:rgba(254,248,224,.65); text-decoration:none; }
.bb-foot__powered a:hover{ color:var(--bb-gold); }

/* Hide ALL legacy template footer markup (in case anything still bleeds through) */
.main-footer.bb-foot__legacy{ display:none; }

/* ============================================================
   RESERVATION FORM — status messages (Web3Forms response)
   ============================================================ */
.rv-status{
  padding: 18px 22px; margin: 0 0 22px; border-radius: 10px;
  font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.55;
  text-align: left;
}
.rv-status[hidden]{ display: none !important; }
.rv-status--loading{
  background: rgba(10,79,186,.08);
  border-left: 4px solid var(--bb-royal, #0a4fba);
  color: var(--bb-royal-deep, #073a8a);
}
.rv-status--ok{
  background: #e8f7ee;
  border-left: 4px solid #2da14b;
  color: #1a6a2e;
}
.rv-status--err{
  background: #fdecec;
  border-left: 4px solid #c8332b;
  color: #8a1f1a;
}
.rv-status a{ color: inherit; font-weight: 700; text-decoration: underline; }

/* ============================================================
   MOBILE-FIRST POLISH (mobile-first-design skill recommendations)
   - Force form inputs to 16px font-size on mobile (prevents iOS auto-zoom)
   - Ensure all buttons hit min 48x48 touch target
   - Disable shisha smoke animation on small viewports + low-power devices
   - Mobile-only padding/sizing tweaks for reservation form
   ============================================================ */

/* (5) Prevent iOS auto-zoom on form focus by ensuring 16px+ font-size on mobile */
@media (max-width: 768px) {
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="date"],
  input[type="time"],
  select,
  textarea {
    font-size: 16px !important;
  }
  /* Tighter reservation form on small screens */
  .reservation-form .form-group { margin-bottom: 12px; }
  .reservation-form input,
  .reservation-form select,
  .reservation-form textarea {
    min-height: 48px;
    padding: 12px 16px;
  }
  .reservation-form textarea { min-height: 90px; }
  .theme-btn { min-height: 48px; padding: 14px 24px; }
}

/* (6) Pause shisha smoke + breathing animation on small/touch viewports for perf */
@media (max-width: 640px) {
  .sh-smoke span,
  .sh-hero__bg {
    animation: none !important;
  }
  .sh-smoke span { opacity: 0.15; }
}

/* Universal touch-target guarantee for all CTA buttons */
.bbh-btn,
.theme-btn,
button[type="submit"] {
  min-height: 44px;
}

/* Cookie banner buttons on mobile — easier to tap */
@media (max-width: 640px) {
  .bb-cc__btn,
  .bb-cc-mod__btn {
    min-height: 48px;
    padding: 12px 18px;
  }
}

/* ============================================================
   MOBILE BOTTOM NAV (4 quick actions — mobile only)
   ============================================================ */
.bb-bnav{
  display: none; /* hidden on desktop */
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 980;
  background: linear-gradient(180deg, rgba(7,58,138,0.98) 0%, rgba(5,40,100,0.99) 100%);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 -6px 24px rgba(0,0,0,0.25);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(255,195,10,0.32);
}
.bb-bnav__item{
  flex: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  padding: 8px 4px; min-height: 60px;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: rgba(254,248,224,0.92); text-decoration: none;
  border-radius: 10px;
  transition: background .15s ease, transform .12s ease;
  -webkit-tap-highlight-color: transparent;
}
.bb-bnav__item:active{ background: rgba(255,255,255,0.10); transform: scale(0.96); }
.bb-bnav__item:hover{ color: #fff; }
.bb-bnav__ico{ font-size: 22px; line-height: 1; }
.bb-bnav__lbl{ font-size: 9.5px; line-height: 1.15; }
.bb-bnav__item--accent{
  background: linear-gradient(135deg, var(--bb-gold, #ffc30a), var(--bb-amber, #ea910f));
  color: var(--bb-royal-deep, #073a8a);
  box-shadow: 0 4px 12px rgba(234,145,15,0.35);
}
.bb-bnav__item--accent:hover{ color: var(--bb-royal-deep, #073a8a); }
.bb-bnav__item--accent:active{ background: linear-gradient(135deg, #e8b008, #c97808); }

@media (max-width: 820px){
  .bb-bnav{ display: flex; gap: 6px; }
  body{ padding-bottom: 78px; } /* avoid content under the bar */
  .bb-cta-bar{ display: none !important; } /* hide old 2-button bar */
}

/* ============================================================
   MOBILE HEADER POLISH — full-screen overlay nav with backdrop
   ============================================================ */
@media (max-width: 980px){
  /* When nav is open, lock background scroll */
  .bb-navtoggle:checked ~ .bb-hdr__nav{
    position: fixed; top: 0; left: 0; right: 0;
    max-height: 100vh; height: 100vh;
    background: var(--bb-vanilla);
    padding: 80px 24px 100px;
    overflow-y: auto;
    z-index: 1100;
    box-shadow: -10px 0 40px rgba(0,0,0,0.2);
  }
  /* Click-outside backdrop */
  .bb-navtoggle:checked ~ .bb-hdr__main::before{
    content: ""; position: fixed; inset: 0;
    background: rgba(7,14,26,0.55);
    z-index: 1050;
    backdrop-filter: blur(2px);
  }
  /* Bigger touch targets in mobile nav */
  .bb-hdr__nav a{
    padding: 16px 8px !important;
    font-size: 15px !important;
    border-bottom: 1px solid rgba(10,79,186,0.10) !important;
    min-height: 52px;
    display: flex; align-items: center;
  }
  /* Burger animates into X when open */
  .bb-hdr__burger{
    position: relative;
    z-index: 1200;
    width: 44px; height: 44px;
    padding: 9px;
    display: flex; flex-direction: column; justify-content: center;
  }
  .bb-navtoggle:checked ~ .bb-hdr__burger{ position: fixed; top: 16px; right: 16px; }
  .bb-navtoggle:checked ~ .bb-hdr__burger span{ background: var(--bb-royal-deep); }
}

/* ============================================================
   MOBILE FOOTER POLISH — collapsible columns, tap-friendly
   ============================================================ */
@media (max-width: 768px){
  .bb-foot{ padding: 36px 0 24px; }
  .bb-foot__grid{ gap: 28px; }
  .bb-foot__col{ padding: 0; }
  .bb-foot__h{ font-size: 17px; margin: 0 0 14px; }
  .bb-foot__links li{ margin: 0 0 4px; }
  .bb-foot__links a{
    display: block; padding: 10px 0;
    min-height: 44px; line-height: 1.4;
    border-bottom: 1px solid rgba(254,248,224,0.08);
  }
  .bb-foot__contact li{
    padding: 10px 0; margin: 0;
    border-bottom: 1px solid rgba(254,248,224,0.08);
    font-size: 14px;
  }
  .bb-foot__contact a{ padding: 4px 0; min-height: 36px; display: inline-block; }
  .bb-foot__news input,
  .bb-foot__news button{ min-height: 48px; font-size: 16px; }
  .bb-foot__social{ display: flex; gap: 14px; }
  .bb-foot__social a{
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%; background: rgba(254,248,224,0.10);
    font-size: 18px;
  }
  .bb-foot__legal{ flex-direction: column; gap: 12px; text-align: center; padding-top: 24px; }
  .bb-foot__legal a{ padding: 8px 0; }
}

/* ============================================================
   MOBILE HEADER — CRITICAL FIX
   The desktop dropdown rules use !important and were leaking on mobile,
   floating the sub-menu over the page. Force-hide it on mobile + restore
   burger visibility + bigger logo.
   ============================================================ */
@media (max-width: 980px){
  /* Hide the dropdown sub-menu entirely on mobile.
     The "Menu" parent link still navigates to /menu (which already shows
     the 5 category cards). No need for an inline dropdown on mobile. */
  .bb-hdr__has .bb-hdr__drop{
    display: none !important;
    position: static !important;
    opacity: 0 !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }
  .bb-navtoggle:checked ~ .bb-hdr__nav .bb-hdr__drop{
    /* Still hide even when burger nav is open — keep the menu flat */
    display: none !important;
  }

  /* Burger must be visible + tappable */
  .bb-hdr__burger{
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 44px; height: 44px;
    padding: 9px;
    cursor: pointer;
    background: transparent;
    border: 0;
    z-index: 1200;
  }
  .bb-hdr__burger span{
    display: block;
    width: 26px; height: 2px;
    background: var(--bb-royal, #0a4fba);
    margin: 4px 0;
    border-radius: 2px;
    transition: transform .25s ease, opacity .2s ease, background .2s ease;
  }
  .bb-navtoggle:checked ~ .bb-hdr__burger{
    position: fixed; top: 14px; right: 14px;
  }
  .bb-navtoggle:checked ~ .bb-hdr__burger span{ background: var(--bb-royal-deep, #073a8a); }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(2){ opacity: 0; }
  .bb-navtoggle:checked ~ .bb-hdr__burger span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

  /* Logo: bigger + centered horizontally */
  .bb-hdr__main{
    grid-template-columns: 44px 1fr 44px;
    padding: 8px 14px;
    gap: 10px;
  }
  .bb-hdr__brand{
    order: 2; justify-self: center;
    margin: 0; padding: 0;
  }
  .bb-hdr__brand img{ height: 56px !important; width: auto; }
  .bb-hdr__burger{ order: 3; justify-self: end; }
  .bb-navtoggle{ order: 1; display: none; } /* checkbox hidden */

  /* Hide top utility bar pieces that don't fit */
  .bb-hdr__loc{ display: none; }
}

/* ============================================================
   MOBILE HERO POLISH — better fit on small screens
   ============================================================ */
@media (max-width: 768px){
  .bbh-hero{ min-height: 75vh !important; }
  .bbh-hero__inner{ padding: 0 16px !important; }
  .bbh-hero__title{ font-size: clamp(38px, 11vw, 64px) !important; line-height: 1.05 !important; }
  .bbh-hero__tag{ font-size: 13px !important; letter-spacing: .25em !important; }
  .bbh-hero__lead{ font-size: 15px !important; line-height: 1.6 !important; padding: 0 8px; }
  .bbh-hero__cta{ flex-direction: column; gap: 10px !important; width: 100%; }
  .bbh-hero__cta .bbh-btn{ width: 100%; min-height: 50px; justify-content: center; }
  .bbh-eyebrow{ font-size: 10.5px !important; letter-spacing: .15em !important; }
}

/* ============================================================
   MOBILE FOOTER SIMPLIFICATION
   On phones, hide Quick Links (Odwiedź), Events list, and Newsletter.
   Keep only: brand+address+hours+phone+email, social icons, legal/copyright.
   Justification: bottom-nav already gives Menu/Reserve/Call/Direction →
   redundant quick-links just bloat the footer.
   ============================================================ */
@media (max-width: 768px){
  /* Hide Col 2 (Odwiedź quick-links) and Col 4 (Newsletter) entirely */
  .bb-foot__col:nth-child(2),
  .bb-foot__col--news,
  .bb-foot__col:nth-child(4){
    display: none !important;
  }
  /* Inside Col 3 (Wydarzenia list + Social icons),
     hide the Wydarzenia h4 + its <ul>, keep ONLY the Social block */
  .bb-foot__col:nth-child(3) > .bb-foot__h:not(.bb-foot__h--mt),
  .bb-foot__col:nth-child(3) > ul.bb-foot__links{
    display: none !important;
  }
  /* Re-center the surviving Social-only column under the brand */
  .bb-foot__col:nth-child(3){
    grid-column: 1 / -1;
    text-align: center;
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid rgba(254,248,224,0.10);
  }
  .bb-foot__col:nth-child(3) .bb-foot__h--mt{
    margin-top: 0 !important; margin-bottom: 14px !important;
    text-align: center;
  }
  .bb-foot__col:nth-child(3) .bb-foot__social{
    justify-content: center !important;
  }
  /* Brand column gets generous breathing room */
  .bb-foot__col--brand{ text-align: left; }
  .bb-foot{ padding-top: 32px; padding-bottom: 16px; }
}

/* ============================================================
   MOBILE FOOTER LEGAL LINKS — keep them horizontal (override earlier vertical stacking)
   ============================================================ */
@media (max-width: 768px){
  .bb-foot__legal{
    flex-direction: row !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 10px !important;
    text-align: center;
    padding-top: 14px;
    font-size: 13px;
    line-height: 1.5;
  }
  .bb-foot__legal a,
  .bb-foot__legal button{
    padding: 4px 2px !important;
    min-height: auto !important;
    display: inline !important;
    white-space: nowrap;
  }
  .bb-foot__legal span[aria-hidden="true"]{
    display: inline !important;
    opacity: 0.5;
    margin: 0 2px;
  }
}
