:root{
  /* Kolory/tema */
  --brand:#0A66C2;
  --link:#7DC3FF;
  --ink:#e9eaec;
  --muted:#b8bdc5;
  --bg:#0e1116;
  --card:#151a21;
  --shadow:0 10px 24px rgba(0,0,0,.45);
  --ring:0 0 0 3px rgba(125,195,255,.35);

  /* Layout/animacje */
  --radius:18px;
  --transition:all .4s ease;
  --hero-pos:22%;
  color-scheme:dark;

  /* Overlay globalny i hero */
  --overlay-rgb:0,0,0;
  --overlay-alpha:.85;
  --hero-overlay-rgb:10,102,194;
  --hero-overlay-alpha:.5;

  /* Glass dla kart */
  --card-rgb:21,26,33;
  --glass-alpha-card:.60;
  --glass-blur:8px;
}

*{box-sizing:border-box}
html,body{height:100%}
html{background:var(--bg)}
body{
  margin:0; font-family:Roboto,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--ink); background:transparent; transition:var(--transition); position:relative;
}

/* Tło (stałe) */
.bg-layer{
  position:fixed; inset:0;
  background:url('tlo.jpg') center var(--hero-pos)/cover no-repeat;
  z-index:-1; pointer-events:none; will-change:transform;
}
@media (max-width:720px){
  :root{ --hero-pos:28% }
  .bg-layer{ background-attachment:scroll }
}

/* Overlay globalny (z „dziurą” na hero) */
.global-overlay{
  position:fixed; inset:0; z-index:0; pointer-events:none;
}
.global-overlay::before,
.global-overlay::after{
  content:""; position:absolute; left:0; right:0;
  background:rgba(var(--overlay-rgb), var(--overlay-alpha));
}
.global-overlay::before{ top:0; height:var(--hero-top,0px) }
.global-overlay::after{ top:var(--hero-bottom,0px); bottom:0 }

/* Treść ponad overlayem */
header, main, footer, .sticky-bar{ position:relative; z-index:1 }

a{color:var(--link); text-decoration:none; transition:var(--transition)}
a:hover{text-decoration:underline; text-underline-offset:3px}
.wrap{max-width:1100px; margin-inline:auto; padding:28px 20px}

/* Animacje wejścia */
.fade-in{opacity:0; transform:translateY(20px); animation:fadeInUp .8s forwards}
.fade-in.delay-1{animation-delay:.2s}
.fade-in.delay-2{animation-delay:.4s}
.fade-in.delay-3{animation-delay:.6s}
@keyframes fadeInUp{to{opacity:1; transform:translateY(0)}}
.reveal{opacity:0; transform:translateY(12px); transition:opacity .6s, transform .6s}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal, .fade-in, .card, .place, .btn{transition:none; animation:none}
}

/* HERO + lokalny overlay */
.hero{
  position:relative; isolation:isolate;
  min-height:60vh; display:grid; place-items:center; text-align:center; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom,
    rgba(var(--hero-overlay-rgb), var(--hero-overlay-alpha)),
    rgba(var(--hero-overlay-rgb), calc(var(--hero-overlay-alpha) + .06))
  );
  pointer-events:none; z-index:0;
}
.hero > *{ position:relative; z-index:1 }
.hero-inner{display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:center}
.hero-logo{height:84px; width:auto; filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}
.hero h1{margin:6px 0 4px; font-weight:700; font-size:clamp(28px,4vw,44px)}
.hero .sig{font-family:"Allura", cursive; font-size:clamp(36px,6vw,60px); line-height:1; letter-spacing:.5px}
.hero p{margin:8px 0 0; font-size:clamp(16px,2.2vw,19px); opacity:.95}
.cta{margin-top:22px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

.btn{
  appearance:none; border:none; border-radius:999px; padding:12px 20px; font-weight:700; cursor:pointer;
  box-shadow:var(--shadow); transition:transform .06s, box-shadow .2s, background .3s, color .3s, outline-color .2s;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:#fff; color:var(--brand)}
.btn-primary:hover{box-shadow:0 12px 26px rgba(0,0,0,.18)}
.btn-outline{background:rgba(255,255,255,.07); color:#fff; outline:2px solid rgba(255,255,255,.8)}
.btn-outline:hover{background:rgba(255,255,255,.15)}
.btn:focus-visible{outline:0; box-shadow:var(--ring)}

/* Karty (glass) */
.card{
  background:rgba(var(--card-rgb), var(--glass-alpha-card));
  -webkit-backdrop-filter:saturate(115%) blur(var(--glass-blur));
  backdrop-filter:saturate(115%) blur(var(--glass-blur));
  border:1px solid rgba(125,195,255,.18);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:26px;
  transition:var(--transition);
}
.card:hover{transform:translateY(-6px); box-shadow:0 14px 30px rgba(10,102,194,.28)}
@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){
  .card{ background:rgba(var(--card-rgb), .85) }
}

/* Grids/typografia sekcji */
.grid{display:grid; gap:22px}
@media (min-width:920px){ .grid-2{grid-template-columns:1.2fr .8fr} }
.lead{font-size:18px; line-height:1.7; color:var(--muted)}
.section-title{margin:0 0 16px; font-size:28px}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* Kafelki poradni */
.places{display:grid; gap:16px}
@media (min-width:720px){ .places{grid-template-columns:repeat(3,1fr)} }
.place{
  background:linear-gradient(180deg, rgba(29,31,36,.92), rgba(29,31,36,.92));
  border:1px solid rgba(125,195,255,.18);
  border-radius:16px;
  padding:18px;
  box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:10px;
  transition:transform .25s, box-shadow .25s, border-color .25s, background .25s;
  opacity:0; transform:translateY(15px);
}
.place.show{opacity:1; transform:translateY(0)}
.place:hover{transform:translateY(-6px); box-shadow:0 14px 30px rgba(10,102,194,.30)}
.place:focus-within{box-shadow:var(--ring)}
.place h3{margin:0; font-size:18px; color:var(--ink)}
.badge{display:inline-block; background:var(--brand); color:#fff; font-weight:800; letter-spacing:.2px; padding:6px 10px; border-radius:999px; font-size:14px}
.meta{display:flex; gap:10px; align-items:center; color:var(--muted); font-size:14px}
.hours{background:rgba(125,195,255,.18); color:#DDEEFF; font-weight:800; padding:8px 10px; border-radius:10px; font-size:14px; border:1px dashed rgba(125,195,255,.35)}
.actions{display:flex; gap:8px; flex-wrap:wrap}
.tel{
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:12px;
  border:1px solid rgba(255,255,255,.14); background:#1b2129; color:#e9eaec;
  text-decoration:none; font-weight:700; transition:background .2s, box-shadow .2s, transform .2s;
}
.tel:hover{transform:translateY(-2px); box-shadow:0 10px 20px rgba(0,0,0,.25)}

/* Stopka */
footer{margin-top:40px; padding:22px 0; color:var(--muted)}
.foot{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; font-size:14px}

/* Pasek połączeń (mobile) */
.sticky-bar{
  position:fixed; left:0; right:0; bottom:0; display:none;
  background:var(--card); box-shadow:0 -6px 18px rgba(0,0,0,.35); z-index:10;
  padding:10px max(12px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-right));
  border-top-left-radius:16px; border-top-right-radius:16px;
}
.sticky-bar .row{display:flex; gap:8px; align-items:stretch}
.callbtn{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:5px;
  border-radius:12px; border:1px solid rgba(255,255,255,.14); font-weight:800; text-decoration:none;
  color:#e9eaec; background:#1b2129; transition:transform .2s, box-shadow .2s;
}
.callbtn:hover{transform:translateY(-2px); box-shadow:0 10px 20px rgba(0,0,0,.25)}
.callbtn svg{flex:0 0 auto}
@media (max-width:720px){
  .sticky-bar{padding:4px 6px; display: block;}
  .callbtn{padding:6px 8px; font-size:14px}
  body{padding-bottom:56px}
}

/* Pasek nawigacyjny */
.top-nav {
height: 50px;
align-items: center;
display: flex;
position: fixed;
top: 0; left: 0; right: 0;
background: rgba(21,26,33,0.9);
backdrop-filter: blur(8px);
box-shadow: 0 4px 12px rgba(0,0,0,.4);
z-index: 1000;
}
.top-nav .menu {
list-style: none;
margin: 0; padding: 0;
display: flex; gap: 24px;
align-items: center;
}
.top-nav .wrap {
display: flex;
align-items: center;
justify-content: center;
}
.top-nav .menu li { position: relative; }
.top-nav .menu a {
display: block;
padding: 5px 20px;
color: var(--ink);
font-weight: 500;
}
.top-nav .menu a:hover { color: var(--link); }

/* Dropdown */
.dropdown-menu {
display: none;
position: absolute;
top: 100%; left: 0;
background: var(--card);
border-radius: var(--radius);
box-shadow: var(--shadow);
list-style: none;
margin: 0; padding: 8px 0;
min-width: 180px;
}
.dropdown-menu li a {
padding: 10px 16px;
white-space: nowrap;
}
.dropdown:hover .dropdown-menu { display: block; }

/* Sekcja EXTRAS z nagłówkami */
.extras { margin-top: 6mm; }
.extras-group { margin: 10px 0 14px; }
.extras-title{
  font-weight: 600;
  font-size: 12.5pt;
  padding-bottom: 4px;
  border-bottom: 1px solid #e7e7e7;
  margin-bottom: 8px;
}

.extras-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;   /* dwa słupki */
  gap: 10px 16px;
}

.kv{ display:flex; align-items:center; gap:8px; }
.kv .key{
  display:flex; align-items:baseline; gap:4px;
  min-width: 140px;                  /* etykieta */
}
.kv input[type="number"],
.kv input[type="text"],
.kv textarea{
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font: inherit;
}

.kv textarea{ resize: vertical; }
.kv--full{ grid-column: 1 / -1; }   /* element na całą szerokość siatki */

@media (max-width: 860px){
  .extras-grid{ grid-template-columns: 1fr; }  /* jedna kolumna na telefonie */
  .kv .key{ min-width: 120px; }
}