/* ================================================================
   KAJAKI BAGRY — main.css  v3.0
   • Pełne style motywu
   • Sekcje tematyczne dostępne jako klasy CSS dla Spectra
   • Kompatybilny z edytorem bloków Gutenberg + Spectra plugin
   ================================================================ */

/* ── RESET ── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

/* ── TOKENY ── */
:root {
  --ocean:  #062d3f;
  --teal:   #0a7b8c;
  --aqua:   #17b8c8;
  --sand:   #f0e4cc;
  --cream:  #faf7f2;
  --orange: #e8682a;
  --white:  #ffffff;
  --text:   #1a1a1a;
  --muted:  #6b7b80;
  --max-w:  1400px;
  --pad-x:  clamp(24px, 5vw, 100px);
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Jost', sans-serif;
  color: var(--text);
  background: var(--cream);
  overflow-x: hidden;
}

/* Admin bar */
.admin-bar nav { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar nav { top: 46px; } }

/* ── KURSOR ── */
#cursor-dot, #cursor-ring {
  position: fixed; top: 0; left: 0; border-radius: 50%;
  pointer-events: none; z-index: 9999; transform: translate(-50%, -50%);
}
#cursor-dot  { width: 8px; height: 8px; background: var(--aqua); }
#cursor-ring { width: 36px; height: 36px; border: 1.5px solid var(--aqua); opacity: .55; transition: width .2s, height .2s, border-color .2s; }
.cursor-hover #cursor-ring { width: 52px; height: 52px; border-color: var(--orange); }
@media (hover: none) { #cursor-dot, #cursor-ring { display: none; } body { cursor: auto !important; } }

/* ── NAV ── */
nav {
  position: fixed; top: 0; width: 100%; z-index: 200;
  padding: 22px var(--pad-x);
  display: flex; align-items: center; justify-content: center;
  transition: background .4s, padding .4s, box-shadow .4s;
}
nav.scrolled { background: rgba(6,45,63,.97); backdrop-filter: blur(16px); padding: 13px var(--pad-x); box-shadow: 0 2px 40px rgba(0,0,0,.3); }
.nav-inner { width: 100%; max-width: var(--max-w); display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: 'Bebas Neue', sans-serif; font-size: 2rem; color: var(--white); letter-spacing: 2px; text-decoration: none; }
.nav-logo span { color: var(--aqua); }
.nav-links { display: flex; gap: 36px; list-style: none; align-items: center; }
.nav-links a { color: rgba(255,255,255,.82); text-decoration: none; font-size: .88rem; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; transition: color .2s; position: relative; padding-bottom: 3px; }
.nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1.5px; background: var(--aqua); transition: width .25s; }
.nav-links a:hover { color: var(--aqua); }
.nav-links a:hover::after { width: 100%; }
.nav-cta { background: var(--orange); color: var(--white) !important; padding: 10px 26px; border-radius: 2px; font-weight: 600 !important; }
.nav-cta::after { display: none !important; }
.nav-cta:hover { background: #c9531a !important; }
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav-burger span { display: block; width: 26px; height: 2px; background: var(--white); border-radius: 2px; transition: transform .3s, opacity .3s; }
.nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity: 0; }
.nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu { display: none; position: fixed; inset: 0; z-index: 190; background: rgba(6,45,63,.97); backdrop-filter: blur(20px); flex-direction: column; align-items: center; justify-content: center; gap: 40px; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-family: 'Bebas Neue', sans-serif; font-size: 3rem; letter-spacing: 2px; color: var(--white); text-decoration: none; transition: color .2s; }
.mobile-menu a:hover { color: var(--aqua); }

/* ── HERO ── */
#hero { min-height: 100vh; position: relative; overflow: hidden; display: flex; align-items: center; }
.hero-slides { position: absolute; inset: 0; z-index: 0; }
.hero-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.3s ease; }
.hero-slide.active { opacity: 1; animation: kenBurns 9s ease-in-out forwards; }
@keyframes kenBurns { from { transform: scale(1.07) translate(0,0); } to { transform: scale(1.00) translate(-1.5%,.5%); } }
.hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(95deg, rgba(6,45,63,.92) 0%, rgba(6,45,63,.5) 55%, rgba(6,45,63,.15) 100%), linear-gradient(0deg, rgba(6,45,63,.75) 0%, transparent 45%); }
.hero-shimmer { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(105deg, transparent 40%, rgba(23,184,200,.04) 50%, transparent 60%); background-size: 200% 200%; animation: shimmerScan 7s linear infinite; }
@keyframes shimmerScan { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.hero-caustic { position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: .07; background-image: repeating-radial-gradient(circle at 20% 35%, rgba(23,184,200,1) 0 2px, transparent 2px 60px), repeating-radial-gradient(circle at 80% 65%, rgba(23,184,200,1) 0 1px, transparent 1px 50px); animation: causticDrift 14s ease-in-out infinite alternate; }
@keyframes causticDrift { from { background-position: 0 0, 0 0; } to { background-position: 70px 50px, -50px 70px; } }
.particles { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.particle { position: absolute; border-radius: 50%; background: rgba(23,184,200,.6); animation: floatUp linear infinite; }
@keyframes floatUp { 0% { transform: translateY(0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: .4; } 100% { transform: translateY(-100vh) scale(.3); opacity: 0; } }
.ripple { position: absolute; border-radius: 50%; border: 1px solid rgba(23,184,200,.22); animation: rippleOut 7s ease-out infinite; pointer-events: none; z-index: 3; }
.ripple:nth-child(1) { width: 360px; height: 360px; right: 14%; top: 18%; animation-delay: 0s; }
.ripple:nth-child(2) { width: 600px; height: 600px; right: 10%; top: 7%;  animation-delay: 2.3s; }
.ripple:nth-child(3) { width: 860px; height: 860px; right: 6%;  top: -5%; animation-delay: 4.6s; }
@keyframes rippleOut { 0% { transform: scale(.65); opacity: .6; } 100% { transform: scale(1.12); opacity: 0; } }
.hero-content { position: relative; z-index: 5; padding: 0 var(--pad-x); max-width: 820px; animation: fadeUp .9s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
.hero-badge { display: inline-flex; align-items: center; gap: 10px; color: var(--aqua); font-size: .78rem; font-weight: 600; letter-spacing: 3.5px; text-transform: uppercase; margin-bottom: 22px; animation: fadeUp .9s .2s ease both; }
.hero-badge::before { content: ''; width: 36px; height: 2px; background: var(--aqua); }
h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(4rem,8.5vw,9.5rem); line-height: .92; color: var(--white); letter-spacing: 2px; animation: fadeUp .9s .35s ease both; text-shadow: 0 4px 50px rgba(0,0,0,.5); }
h1 .accent { color: var(--aqua); display: block; }
.hero-sub { margin-top: 28px; color: rgba(255,255,255,.72); font-size: 1.12rem; line-height: 1.75; max-width: 480px; animation: fadeUp .9s .5s ease both; }
.hero-actions { margin-top: 44px; display: flex; gap: 14px; flex-wrap: wrap; animation: fadeUp .9s .65s ease both; }
.hero-stats { position: absolute; right: var(--pad-x); bottom: 130px; z-index: 5; display: flex; flex-direction: column; gap: 26px; animation: fadeUp .9s .8s ease both; }
.stat { text-align: right; border-right: 2px solid var(--aqua); padding-right: 18px; }
.stat-num { font-family: 'Bebas Neue', sans-serif; font-size: 2.8rem; color: var(--white); line-height: 1; text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.stat-label { font-size: .72rem; color: rgba(255,255,255,.5); letter-spacing: 2px; text-transform: uppercase; }
.slide-controls { position: absolute; bottom: 44px; left: var(--pad-x); z-index: 10; display: flex; align-items: center; gap: 12px; }
.slide-dot { width: 28px; height: 3px; background: rgba(255,255,255,.3); border-radius: 2px; cursor: pointer; transition: background .3s, width .3s; border: none; }
.slide-dot.active { background: var(--aqua); width: 44px; }
.slide-arrows { position: absolute; bottom: 32px; right: var(--pad-x); z-index: 10; display: flex; gap: 10px; }
.slide-arrow { width: 44px; height: 44px; border-radius: 2px; border: 1.5px solid rgba(255,255,255,.3); background: rgba(255,255,255,.07); backdrop-filter: blur(6px); color: var(--white); font-size: 1.1rem; cursor: pointer; transition: background .2s, border-color .2s; display: flex; align-items: center; justify-content: center; }
.slide-arrow:hover { background: var(--aqua); border-color: var(--aqua); }
.edit-toggle { position: absolute; top: 84px; right: var(--pad-x); z-index: 21; background: rgba(6,45,63,.7); backdrop-filter: blur(8px); border: 1px solid rgba(23,184,200,.3); color: var(--aqua); padding: 8px 16px; border-radius: 2px; font-size: .75rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.edit-toggle:hover { background: rgba(23,184,200,.15); }
.slide-upload-panel { position: absolute; top: 130px; right: var(--pad-x); z-index: 20; background: rgba(6,45,63,.9); backdrop-filter: blur(14px); border: 1px solid rgba(23,184,200,.25); border-radius: 6px; overflow: hidden; transition: max-height .4s ease, opacity .3s; max-height: 0; opacity: 0; pointer-events: none; min-width: 280px; }
.slide-upload-panel.open { max-height: 500px; opacity: 1; pointer-events: all; }
.upload-panel-header { padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: space-between; }
.upload-panel-header span { color: var(--white); font-size: .85rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
.upload-close { background: none; border: none; color: rgba(255,255,255,.5); font-size: 1.2rem; cursor: pointer; transition: color .2s; }
.upload-close:hover { color: var(--white); }
.upload-slots { padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.upload-slot { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,.05); border-radius: 3px; padding: 10px 14px; }
.upload-slot-num { width: 24px; height: 24px; border-radius: 50%; background: var(--teal); color: var(--white); font-size: .75rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.upload-slot label { flex: 1; color: rgba(255,255,255,.65); font-size: .82rem; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.upload-slot label:hover { color: var(--aqua); }
.upload-slot input[type="file"] { display: none; }
.upload-slot-status { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.2); flex-shrink: 0; transition: background .3s; }
.upload-slot-status.loaded { background: #4caf76; }
.upload-hint { padding: 0 16px 16px; color: rgba(255,255,255,.35); font-size: .75rem; line-height: 1.5; }
.hero-waves { position: absolute; bottom: -2px; left: 0; width: 100%; z-index: 6; pointer-events: none; }
.hero-waves svg { width: 100%; height: 140px; display: block; }

/* ═══════════════════════════════════════════════════════
   OBSZAR TREŚCI STRONY (the_content + Spectra blocks)
═══════════════════════════════════════════════════════ */
#page-content {
  /* reset domyślnych paddingów WP/Spectra */
}
#page-content .wp-block-group,
#page-content .uagb-section,
#page-content .uagb-container {
  /* Spectra/UAGB bloki - brak dodatkowych override'ów */
}

/* Usuń domyślny margin-top body Gutenberg */
.wp-site-blocks { padding-top: 0 !important; }

/* ── GLOBALS ── */
.section-inner { max-width: var(--max-w); margin: 0 auto; }

.section-label {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--teal); font-size: .74rem; font-weight: 600;
  letter-spacing: 3.5px; text-transform: uppercase; margin-bottom: 16px;
}
.section-label::before { content: ''; width: 24px; height: 2px; background: var(--teal); }

h2 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(2.6rem,4.5vw,5rem); line-height: 1; letter-spacing: 1.5px; color: var(--ocean); }
h3 { font-family: 'Bebas Neue', sans-serif; }

/* ── BUTTONS ── */
.btn-primary { display: inline-block; padding: 16px 42px; background: var(--orange); color: var(--white); font-weight: 600; font-size: 1rem; letter-spacing: .5px; text-decoration: none; border-radius: 2px; transition: transform .2s, background .2s, box-shadow .2s; box-shadow: 0 8px 28px rgba(232,104,42,.4); }
.btn-primary:hover { background: #c9531a; transform: translateY(-3px); box-shadow: 0 14px 36px rgba(232,104,42,.5); }
.btn-ghost { display: inline-block; padding: 16px 42px; border: 1.5px solid rgba(255,255,255,.38); color: var(--white); font-weight: 500; font-size: 1rem; text-decoration: none; border-radius: 2px; backdrop-filter: blur(4px); transition: border-color .2s, background .2s; }
.btn-ghost:hover { border-color: var(--aqua); background: rgba(23,184,200,.12); }
.btn-white { display: inline-block; padding: 16px 40px; background: var(--white); color: var(--orange); font-weight: 700; font-size: 1rem; text-decoration: none; border-radius: 2px; transition: transform .2s, box-shadow .2s; box-shadow: 0 6px 24px rgba(0,0,0,.15); }
.btn-white:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,.2); }
.btn-tel { display: inline-flex; align-items: center; gap: 10px; color: var(--white); text-decoration: none; font-size: 1.05rem; font-weight: 500; }

/* ═══════════════════════════════════════════════════════
   KLASY SEKCJI — używaj jako "Additional CSS Class" w Spectra
   ═══════════════════════════════════════════════════════
   Przykład w Spectra: Block → Advanced → Additional CSS Class(es)
   Wpisz np: kb-section-offer
   ═══════════════════════════════════════════════════════ */

/* ── SEKCJA: OFERTA ── */
.kb-section-offer { background: var(--cream); padding: 110px var(--pad-x); }

.offer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.offer-card { background: var(--white); border-radius: 6px; overflow: hidden; transition: transform .35s cubic-bezier(.23,1,.32,1), box-shadow .35s; position: relative; }
.offer-card::before { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(135deg, rgba(23,184,200,.06) 0%, transparent 60%); opacity: 0; transition: opacity .3s; }
.offer-card:hover { transform: translateY(-12px) scale(1.01); box-shadow: 0 32px 80px rgba(6,45,63,.14); }
.offer-card:hover::before { opacity: 1; }
.offer-card:nth-child(2) { margin-top: 48px; }
.offer-card-img { height: 260px; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; }
.offer-card:nth-child(1) .offer-card-img { background: linear-gradient(135deg, #062d3f 0%, #0a7b8c 100%); }
.offer-card:nth-child(2) .offer-card-img { background: linear-gradient(135deg, #0a7b8c 0%, #17b8c8 100%); }
.offer-card:nth-child(3) .offer-card-img { background: linear-gradient(135deg, #e8682a 0%, #f4943f 100%); }
.offer-card-img::after { content: ''; position: absolute; top: -60%; left: -60%; width: 60%; height: 220%; background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.15) 50%, transparent 60%); transform: skewX(-15deg); transition: left .6s ease; }
.offer-card:hover .offer-card-img::after { left: 130%; }
.emoji-big { font-size: 5.5rem; filter: drop-shadow(0 6px 28px rgba(0,0,0,.25)); position: relative; z-index: 1; }
.offer-card-body { padding: 30px 32px 36px; position: relative; z-index: 1; }
.offer-card-tag { font-size: .7rem; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--teal); margin-bottom: 10px; }
.offer-card-body h3 { font-family: 'Bebas Neue', sans-serif; font-size: 2.1rem; letter-spacing: 1px; color: var(--ocean); margin-bottom: 12px; }
.offer-card-body p { color: var(--muted); font-size: .95rem; line-height: 1.75; }
.offer-card-price { margin-top: 24px; padding-top: 20px; border-top: 1px solid #eee; display: flex; align-items: baseline; gap: 6px; }
.price-num { font-family: 'Bebas Neue', sans-serif; font-size: 2.4rem; color: var(--orange); }
.price-unit { font-size: .85rem; color: var(--muted); }
.offer-header { max-width: 600px; margin-bottom: 72px; }
.offer-header p { margin-top: 20px; color: var(--muted); font-size: 1.05rem; line-height: 1.8; }

/* ── SEKCJA: DOŚWIADCZENIE (ciemna) ── */
.kb-section-dark { background: var(--ocean); color: var(--white); }
.kb-section-dark .section-label { color: var(--aqua); }
.kb-section-dark .section-label::before { background: var(--aqua); }
.kb-section-dark h2 { color: var(--white); }
.kb-section-dark p { color: rgba(255,255,255,.65); }
.exp-feature { display: flex; align-items: flex-start; gap: 16px; padding: 18px 22px; background: rgba(255,255,255,.05); border-left: 3px solid var(--aqua); border-radius: 2px; margin-bottom: 16px; transition: background .3s, transform .3s; }
.exp-feature:hover { background: rgba(255,255,255,.09); transform: translateX(4px); }
.exp-feature-icon { font-size: 1.5rem; flex-shrink: 0; }
.exp-feature-text h4 { font-weight: 600; font-size: .95rem; margin-bottom: 4px; color: var(--white); }
.exp-feature-text p { font-size: .85rem; color: rgba(255,255,255,.48); line-height: 1.5; margin: 0; }
.exp-right-box { background: linear-gradient(135deg, #0d4f68 0%, #0a7b8c 100%); display: flex; align-items: center; justify-content: center; min-height: 540px; position: relative; overflow: hidden; }
.exp-right-box::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 55% 50%, rgba(23,184,200,.22) 0%, transparent 65%); animation: pulseGlow 4s ease-in-out infinite alternate; }
@keyframes pulseGlow { from { opacity: .7; transform: scale(1); } to { opacity: 1; transform: scale(1.05); } }
.water-scene { position: relative; z-index: 1; text-align: center; }
.water-scene .big-emoji { font-size: 9rem; filter: drop-shadow(0 8px 40px rgba(0,0,0,.3)); display: block; }
.water-scene p { font-family: 'Playfair Display', serif; font-style: italic; color: rgba(255,255,255,.55); font-size: 1.1rem; margin-top: 16px; }

/* ── SEKCJA: CENNIK ── */
.kb-section-cennik { background: var(--white); padding: 110px var(--pad-x); }
.cennik-header { text-align: center; margin-bottom: 72px; }
.cennik-header .section-label { justify-content: center; }
.cennik-header .section-label::before { display: none; }
.cennik-header .section-label::after { content: ''; width: 24px; height: 2px; background: var(--teal); }
.cennik-header p { color: var(--muted); margin-top: 16px; font-size: 1.05rem; }
.price-table { max-width: 960px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.price-box { border: 1.5px solid #e8e8e8; border-radius: 6px; padding: 40px; position: relative; overflow: hidden; transition: border-color .3s, transform .3s, box-shadow .3s; }
.price-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--teal), var(--aqua)); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.price-box:hover { border-color: rgba(10,123,140,.3); transform: translateY(-6px); box-shadow: 0 20px 60px rgba(6,45,63,.1); }
.price-box:hover::before { transform: scaleX(1); }
.price-box.featured { background: var(--ocean); border-color: var(--ocean); color: var(--white); }
.price-box.featured::before { background: linear-gradient(90deg, var(--aqua), #4de8f5); transform: scaleX(1); }
.price-box.featured .price-box-title { color: var(--aqua); }
.price-box.featured .price-row { border-color: rgba(255,255,255,.1); }
.price-box.featured .price-row span:first-child { color: rgba(255,255,255,.62); }
.price-box.featured .price-row span:last-child { color: var(--white); }
.price-box-icon { font-size: 2.5rem; margin-bottom: 16px; }
.price-box-title { font-family: 'Bebas Neue', sans-serif; font-size: 1.9rem; letter-spacing: 1px; color: var(--ocean); margin-bottom: 28px; }
.price-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid #f0f0f0; }
.price-row:last-of-type { border-bottom: none; }
.price-row span:first-child { color: var(--muted); font-size: .95rem; }
.price-row span:last-child { font-weight: 600; color: var(--ocean); }
.price-row .highlight { color: var(--orange) !important; }
.featured-badge { position: absolute; top: 20px; right: -32px; background: var(--orange); color: var(--white); font-size: .68rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 5px 44px; transform: rotate(35deg); }

/* ── SEKCJA: LOKALIZACJA ── */
.kb-section-lokalizacja { background: var(--cream); padding: 110px var(--pad-x); }
.loc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.loc-map { background: linear-gradient(135deg, #062d3f 0%, #0a7b8c 100%); border-radius: 6px; height: 440px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 14px; position: relative; overflow: hidden; color: var(--white); }
.loc-map::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(23,184,200,.18) 0%, transparent 65%); animation: pulseGlow 5s ease-in-out infinite alternate; }
.loc-map::after { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(23,184,200,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(23,184,200,.07) 1px, transparent 1px); background-size: 40px 40px; }
.loc-map-pin { font-size: 4rem; position: relative; z-index: 2; animation: pinBounce 2.5s ease-in-out infinite; }
@keyframes pinBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.loc-map h3 { font-family: 'Bebas Neue', sans-serif; font-size: 1.9rem; letter-spacing: 2px; position: relative; z-index: 2; }
.loc-map p { color: rgba(255,255,255,.6); font-size: .9rem; position: relative; z-index: 2; text-align: center; }
.loc-map a { position: relative; z-index: 2; margin-top: 8px; display: inline-block; padding: 12px 28px; background: var(--orange); color: var(--white); text-decoration: none; font-weight: 600; border-radius: 2px; font-size: .9rem; transition: background .2s, transform .2s; }
.loc-map a:hover { background: #c9531a; transform: translateY(-2px); }
.loc-info h2 { margin-bottom: 24px; }
.loc-info > p { color: var(--muted); line-height: 1.8; margin-bottom: 16px; }
.loc-details { margin-top: 36px; display: flex; flex-direction: column; gap: 14px; }
.loc-item { display: flex; gap: 14px; align-items: flex-start; }
.loc-item-icon { width: 44px; height: 44px; border-radius: 3px; background: rgba(10,123,140,.1); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; transition: background .2s, transform .2s; }
.loc-item:hover .loc-item-icon { background: rgba(10,123,140,.18); transform: scale(1.08); }
.loc-item-text h4 { font-weight: 600; color: var(--ocean); margin-bottom: 3px; }
.loc-item-text p { color: var(--muted); font-size: .9rem; margin: 0; }

/* ── SEKCJA: OPINIE ── */
.kb-section-opinie { background: var(--white); padding: 110px var(--pad-x); }
.opinie-header { max-width: 600px; margin-bottom: 64px; }
.opinie-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.opinia { background: var(--cream); border-radius: 6px; padding: 34px; position: relative; overflow: hidden; transition: transform .3s, box-shadow .3s; border: 1.5px solid transparent; }
.opinia::before { content: '"'; position: absolute; top: -10px; right: 20px; font-family: 'Playfair Display', serif; font-size: 8rem; color: rgba(10,123,140,.07); line-height: 1; pointer-events: none; }
.opinia:hover { transform: translateY(-8px); box-shadow: 0 20px 50px rgba(6,45,63,.1); border-color: rgba(10,123,140,.15); }
.opinia:nth-child(2) { margin-top: 36px; }
.stars { color: #f5b800; font-size: 1.05rem; letter-spacing: 3px; margin-bottom: 18px; }
.opinia blockquote { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.04rem; line-height: 1.72; color: var(--ocean); margin-bottom: 24px; }
.opinia-author { display: flex; align-items: center; gap: 13px; }
.author-avatar { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--teal), var(--aqua)); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--white); font-size: 1rem; box-shadow: 0 4px 14px rgba(10,123,140,.3); }
.author-name { font-weight: 600; color: var(--ocean); font-size: .9rem; }
.author-date { font-size: .78rem; color: var(--muted); }

/* ── SEKCJA: BOOKING CTA ── */
.kb-section-booking,
#booking {
  background: var(--orange);
  padding: 90px var(--pad-x);
  position: relative; overflow: hidden;
}
.kb-section-booking::before,
#booking::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(-55deg, transparent, transparent 40px, rgba(255,255,255,.03) 40px, rgba(255,255,255,.03) 80px);
  animation: stripeScroll 18s linear infinite;
}
@keyframes stripeScroll { from { background-position: 0 0; } to { background-position: 200px 200px; } }
.booking-inner { max-width: var(--max-w); margin: 0 auto; position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 36px; }
.booking-text h2 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(2.4rem,4vw,4rem); color: var(--white); letter-spacing: 1px; }
.booking-text p { color: rgba(255,255,255,.72); margin-top: 10px; font-size: 1.05rem; }
.booking-actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }

/* ── FOOTER ── */
footer { background: var(--ocean); color: rgba(255,255,255,.55); padding: 72px var(--pad-x) 36px; }
.footer-inner { max-width: var(--max-w); margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 56px; }
.footer-brand .nav-logo { display: inline-block; margin-bottom: 18px; }
.footer-brand p { font-size: .9rem; line-height: 1.75; max-width: 290px; }

/* Partner logos column */
.footer-partners h4 { color: var(--white); font-weight: 600; font-size: .82rem; letter-spacing: 2.5px; text-transform: uppercase; margin-bottom: 22px; }
.footer-partners-logos { display: flex; flex-direction: column; gap: 16px; }
.footer-partner-link { display: block; transition: opacity .2s, transform .2s; }
.footer-partner-link:hover { opacity: .85; transform: translateY(-2px); }
.footer-partner-logo {
  display: block;
  max-width: 140px;
  max-height: 152px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
  filter: ;
  opacity: .65;
  transition: opacity .25s;
}
.footer-partner-link:hover .footer-partner-logo { opacity: 1; }
.footer-col h4 { color: var(--white); font-weight: 600; font-size: .82rem; letter-spacing: 2.5px; text-transform: uppercase; margin-bottom: 22px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.footer-col ul a { color: rgba(255,255,255,.5); text-decoration: none; font-size: .9rem; transition: color .2s, padding-left .2s; display: inline-block; }
.footer-col ul a:hover { color: var(--aqua); padding-left: 4px; }
.footer-col p { font-size: .9rem; line-height: 1.75; }
.footer-col a { color: rgba(255,255,255,.5); text-decoration: none; transition: color .2s; }
.footer-col a:hover { color: var(--aqua); }
.social-links { display: flex; gap: 10px; margin-top: 24px; }
.social-link { width: 40px; height: 40px; background: rgba(255,255,255,.07); border-radius: 3px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.55); text-decoration: none; font-size: .95rem; transition: background .2s, color .2s, transform .2s; }
.social-link:hover { background: var(--teal); color: var(--white); transform: translateY(-3px); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding-top: 28px; display: flex; justify-content: space-between; align-items: center; font-size: .8rem; }
.footer-bottom a { color: rgba(255,255,255,.35); text-decoration: none; }

/* ── SCROLL REVEAL ── */
.reveal       { opacity: 0; transform: translateY(32px); transition: opacity .75s ease, transform .75s ease; }
.reveal-left  { opacity: 0; transform: translateX(-32px); transition: opacity .75s ease, transform .75s ease; }
.reveal-right { opacity: 0; transform: translateX(32px);  transition: opacity .75s ease, transform .75s ease; }
.reveal.visible, .reveal-left.visible, .reveal-right.visible { opacity: 1; transform: translate(0,0); }

/* ================================================================
   WORDPRESS BLOCK EDITOR INTEGRATION — FINAL CLEAN VERSION
   ================================================================ */

/* 1. CRITICAL: reveal elements MUST be visible in the block editor.
   The JS IntersectionObserver only runs on the frontend, not in the
   editor iframe. Without this override, all .reveal elements stay
   at opacity:0 and the entire page appears blank in the editor. */
.editor-styles-wrapper .reveal,
.editor-styles-wrapper .reveal-left,
.editor-styles-wrapper .reveal-right {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* 2. Section backgrounds — driven by className on wp:group */
.wp-block-group.kb-offer      { background: #faf7f2; padding: 110px clamp(24px,5vw,100px); }
.wp-block-group.kb-dark       { background: #062d3f; padding: 0; }
.wp-block-group.kb-cennik     { background: #ffffff; padding: 110px clamp(24px,5vw,100px); }
.wp-block-group.kb-lokalizacja{ background: #faf7f2; padding: 110px clamp(24px,5vw,100px); }
.wp-block-group.kb-opinie     { background: #ffffff; padding: 110px clamp(24px,5vw,100px); }
.wp-block-group.kb-booking    { background: #e8682a; padding: 90px clamp(24px,5vw,100px); position:relative; overflow:hidden; }
.wp-block-group.kb-booking::before {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(-55deg,transparent,transparent 40px,rgba(255,255,255,.03) 40px,rgba(255,255,255,.03) 80px);
  animation: stripeScroll 18s linear infinite;
  pointer-events: none;
}

/* 3. Headings inside wp:group — Bebas Neue */
.wp-block-group h2.wp-block-heading {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(2.6rem,4.5vw,5rem);
  line-height: 1;
  letter-spacing: 1.5px;
}
.wp-block-group h3.wp-block-heading {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.9rem;
  letter-spacing: 1px;
}
.kb-booking h2.wp-block-heading {
  color: #fff !important;
  font-size: clamp(2.4rem,4vw,4rem) !important;
  letter-spacing: 1px !important;
}

/* 4. Experience columns — prevent wrapping on desktop */
.kb-dark .wp-block-columns {
  flex-wrap: nowrap !important;
  gap: 0 !important;
  margin: 0 !important;
  align-items: stretch;
}
.kb-dark .wp-block-columns .wp-block-column {
  margin: 0 !important;
}
@media (max-width: 900px) {
  .kb-dark .wp-block-columns { flex-wrap: wrap !important; }
}

/* 5. Cennik table styles */
.wp-block-table.price-table-block { margin: 0 !important; }
.wp-block-table.price-table-block table { width:100%; border-collapse:collapse; }
.wp-block-table.price-table-block td {
  border: none !important;
  padding: 11px 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  font-size: 0.95rem;
  vertical-align: middle;
  background: none !important;
}
.wp-block-table.price-table-block tr:last-child td { border-bottom: none !important; }
.wp-block-table.price-table-block td:last-child { text-align: right; font-weight: 600; }
.wp-block-table.price-table-dark td { color: rgba(255,255,255,0.65) !important; border-bottom-color: rgba(255,255,255,0.1) !important; }
.wp-block-table.price-table-dark td:last-child { color: #fff; }

/* 6. wp:quote reset — remove WP default left border */
.wp-block-quote { border-left: none !important; padding-left: 0 !important; }
.wp-block-quote p { margin: 0 !important; }

/* 7. wp:separator override */
.wp-block-separator.is-style-wide { width: 100% !important; margin: 0 0 16px !important; }

/* 8. wp:columns gap fix */
.wp-block-columns.are-vertically-aligned-center { align-items: center; }

/* 9. Hover lift on columns that are cards */
.wp-block-column.kb-card {
  transition: transform .3s cubic-bezier(.23,1,.32,1), box-shadow .3s;
  cursor: default;
}
.wp-block-column.kb-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(6,45,63,.13);
}

/* 10. Mobile responsive */
@media (max-width: 900px) {
  .wp-block-group.kb-offer, .wp-block-group.kb-cennik,
  .wp-block-group.kb-lokalizacja, .wp-block-group.kb-opinie,
  .wp-block-group.kb-booking { padding: 70px clamp(16px,4vw,40px) !important; }
}

/* ── Offer card columns: enforce overflow hidden and border-radius ── */
.kb-offer .wp-block-columns .wp-block-column[style*="border-radius"] {
  overflow: hidden !important;
  border-radius: 6px !important;
}
/* align-items:flex-start so stagger works without stretching */
.kb-offer .wp-block-columns {
  align-items: flex-start !important;
}
/* Remove WP default equal-height stretching on offer columns */
.kb-offer .wp-block-columns .wp-block-column {
  align-self: flex-start;
}

/* ── Footer responsive: 5-col → 2-col → 1-col ── */
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 36px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-partners { grid-column: auto; }
  .footer-partners-logos { flex-direction: row; flex-wrap: wrap; gap: 20px; align-items: center; }
}
@media (max-width: 700px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-partners { grid-column: 1 / -1; }
  .footer-partners-logos { flex-direction: row; gap: 24px; align-items: center; }
  .footer-partner-logo { max-width: 120px; max-height: 44px; }
}
@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; }
}
