/* =========================================================
   UI FIXES — kalkulator, karuzela opinii, hero, kontrast, menu.
   ========================================================= */
html,body{ overflow-x:clip; }
:root{ --shadow:0 4px 16px rgba(30,57,67,.05); --shadow-lg:0 12px 34px rgba(30,57,67,.08); }

/* ---------- KALKULATOR: cena na górze + PEŁNA lista „co za co” ---------- */
.calc{ overflow:visible; background:transparent; box-shadow:none; border-radius:0;
  display:grid; grid-template-columns:1.4fr 1fr; gap:24px; align-items:start; }
.calc .form{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.calc .summary{ display:flex; flex-direction:column; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.summary .stag{ order:1; margin-bottom:14px; }
.summary .total{ order:2; }
.summary > .btn,.summary a.btn{ order:3; }
.summary .disclaimer{ order:4; }
.summary .sum-rows{ order:5; margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); overflow:visible; max-height:none; }
.summary .sum-rows::before{ content:"Szczegóły wyceny — co składa się na koszt"; display:block; margin-bottom:10px; font-size:.78rem; letter-spacing:1.2px; text-transform:uppercase; font-weight:700; color:var(--gold-dark); }
.summary .sum-row{ font-size:1rem; }
@media(min-width:981px){ .calc .summary{ position:sticky; top:96px; } }   /* sticky, ale BEZ obcinania listy */
@media(max-width:980px){ .calc{ grid-template-columns:1fr; } .calc .summary{ position:static; order:-1; } }

/* ---------- KARUZELA OPINII: nie wychodzi poza kontener ---------- */
.revgrid{ min-width:0; }
.revgrid > *{ min-width:0; }            /* KLUCZ: pozwala kolumnie się zwęzić, karuzela scrolluje w środku */
.grev{ min-width:0; max-width:100%; overflow:hidden; }
.grev-track{ max-width:100%; }

/* ---------- HERO: zdjęcie widoczne (prawa), tekst czytelny (lewa) ---------- */
.hero{ background:#eef3ef !important; }
.hero::before{
  background: linear-gradient(100deg, rgba(247,250,247,.94) 0%, rgba(247,250,247,.85) 44%, rgba(247,250,247,.58) 72%, rgba(247,250,247,.40) 100%), var(--himg) center/cover no-repeat !important;
  opacity:1 !important; mix-blend-mode:normal !important;
}
@media(max-width:820px){ .hero::before{ background: linear-gradient(180deg, rgba(247,250,247,.82), rgba(247,250,247,.90)), var(--himg) center/cover no-repeat !important; } }
.hero h1{ color:var(--green-deep) !important; }
.hero h1 .accent{ color:var(--gold-dark) !important; }
.hero p.lead{ color:var(--ink) !important; opacity:1 !important; }
.hero .eyebrow{ background:#fff !important; color:var(--green-deep) !important; border-color:var(--line) !important; }
.hero .trust .item b{ color:var(--green-deep) !important; }
.hero .trust .item span{ color:var(--ink-soft) !important; }

/* ---------- KONTRAST: ciemniejsze, grubsze menu + nagłówki ---------- */
nav.main a{ color:var(--green-deep); font-weight:700; }
nav.main a:hover,nav.main a.active{ background:var(--cream-2); color:var(--green-deep); }
.topbar{ background:var(--green-deep) !important; }
.section-head .kicker,.kicker{ color:var(--gold-dark) !important; }
.btn-outline{ border-width:2px; border-color:var(--green-deep); color:var(--green-deep); font-weight:700; }
.btn-outline:hover{ background:var(--green-deep); color:#fff; }
.crumbs a{ color:var(--green-soft); font-weight:600; }
.card .more{ color:var(--gold-dark); font-weight:700; }

/* ---------- RESPONSYWNOŚĆ: menu hamburger zanim się ściśnie ---------- */
@media(max-width:1040px){
  nav.main{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:#fff; padding:14px; gap:4px; border-bottom:1px solid var(--line); box-shadow:var(--shadow); }
  nav.main.open{ display:flex; }
  nav.main a{ padding:14px; font-size:1.08rem; border-radius:10px; }
  nav.main a.cta{ margin-left:0; justify-content:center; color:#fff; }
  .burger{ display:block; }
  header.site .container{ gap:12px; }
}
@media(max-width:430px){ .logo .name{ font-size:1.18rem; } .logo .name small{ font-size:.6rem; letter-spacing:1.5px; } .logo img{ height:42px; } }

/* ---------- INFOGRAFIKI: pasek statystyk + porównanie ---------- */
.statband{ background:linear-gradient(180deg,#f2f6f2,#e8efe9); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.statband .container{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; padding:34px 22px; align-items:start; }
.stat{ text-align:center; }
.stat .si{ color:var(--gold-dark); margin-bottom:8px; line-height:1; }
.stat .si svg{ width:30px; height:30px; }
.stat .snum{ font-family:'Fraunces',serif; font-size:1.95rem; font-weight:700; color:var(--green-deep); line-height:1; }
.stat .slabel{ font-size:.92rem; color:var(--ink-soft); margin-top:5px; }
.statband .scta{ grid-column:1/-1; text-align:center; margin-top:10px; }
.statband .scta a{ font-weight:700; color:var(--gold-dark); }
@media(max-width:760px){ .statband .container{ grid-template-columns:repeat(2,1fr); gap:24px; } }

.compare{ display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:920px; margin:0 auto; }
.compare .col{ background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); overflow:hidden; }
.compare .col h3{ color:#fff; padding:16px 20px; font-size:1.22rem; text-align:center; margin:0; }
.compare .col.trad h3{ background:var(--green-deep); }
.compare .col.krem h3{ background:var(--gold-dark); }
.compare ul{ list-style:none; padding:18px 22px; margin:0; display:flex; flex-direction:column; gap:12px; }
.compare li{ display:flex; gap:10px; align-items:flex-start; font-size:1.01rem; color:var(--ink); }
.compare li b{ color:var(--green-deep); }
.compare li::before{ content:"✓"; color:var(--gold-dark); font-weight:800; flex-shrink:0; }
@media(max-width:640px){ .compare{ grid-template-columns:1fr; } }

/* ---------- FORMULARZ-LEAD (otwarty) + obietnica oddzwonienia ---------- */
.leadband{ background:linear-gradient(135deg,#edf2ee,#f6f8f5); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.leadband .container{ display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; padding:44px 22px; }
.leadband .lcopy h2{ color:var(--green-deep); font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:10px; }
.leadband .lcopy p{ color:var(--ink-soft); font-size:1.1rem; margin-bottom:16px; }
.leadband .lpromise{ display:inline-flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:50px; padding:10px 18px; font-weight:700; color:var(--green-deep); box-shadow:var(--shadow); }
.leadband .lpromise .dot{ width:12px; height:12px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 0 rgba(63,125,87,.6); animation:tlpulse 2s infinite; }
.leadband .lphone{ margin-top:14px; }
.leadband .lphone a{ font-size:1.5rem; font-weight:700; color:var(--green-deep); display:inline-flex; gap:8px; align-items:center; }
.leadform{ background:#fff; border-radius:18px; box-shadow:0 22px 55px rgba(30,57,67,.16); padding:26px 24px; }
.leadform h3{ color:var(--green-deep); margin-bottom:3px; font-size:1.3rem; }
.leadform .lsub{ color:var(--ink-soft); font-size:.95rem; margin-bottom:16px; }
.leadform .lrow{ margin-bottom:12px; }
.leadform input,.leadform textarea{ width:100%; font:inherit; font-size:16px; padding:13px 15px; border:2px solid var(--line); border-radius:12px; background:#f6f8f5; min-height:50px; }
.leadform input:focus,.leadform textarea:focus{ border-color:var(--gold); background:#fff; outline:none; }
.leadform textarea{ min-height:82px; resize:vertical; }
.leadform .lbtn{ width:100%; justify-content:center; }
.leadform .lnote{ font-size:.84rem; color:var(--ink-soft); margin-top:10px; text-align:center; }
.leadform .form-ok{ display:none; margin-top:14px; }
@media(max-width:820px){ .leadband .container{ grid-template-columns:1fr; gap:24px; } }

/* ---------- PULSUJĄCE CTA (psychologia kontaktu) ---------- */
@keyframes tlpulse{ 0%{box-shadow:0 0 0 0 rgba(176,141,87,.5)} 70%{box-shadow:0 0 0 14px rgba(176,141,87,0)} 100%{box-shadow:0 0 0 0 rgba(176,141,87,0)} }
.pulse{ animation:tlpulse 2.2s infinite; }
.fab{ position:fixed; right:20px; bottom:24px; z-index:1150; background:var(--gold); color:#fff; border-radius:50px; padding:15px 22px; font-weight:700; font-size:1.05rem; box-shadow:0 14px 34px rgba(176,141,87,.5); display:inline-flex; align-items:center; gap:10px; }
.fab:hover{ background:var(--gold-dark); color:#fff; }
@media(max-width:760px){ .fab{ display:none; } }   /* na mobile jest sticky-call */
@media(prefers-reduced-motion:reduce){ .pulse,.leadband .lpromise .dot{ animation:none; } }

/* ---------- GRUPY USŁUG (logiczny podział) ---------- */
.svc-groups{ display:flex; flex-direction:column; gap:30px; }
.svc-group h3{ display:flex; align-items:center; gap:10px; font-size:1.3rem; color:var(--green-deep); margin:0 0 16px; padding-bottom:10px; border-bottom:2px solid var(--cream-2); }
.svc-group h3 .gi{ color:var(--gold-dark); display:inline-flex; }
.svc-group h3 .gi svg{ width:26px; height:26px; }

/* ---------- ODZNAKI / WYRÓŻNIENIA ---------- */
.awards{ display:flex; align-items:center; justify-content:center; gap:34px; flex-wrap:wrap; }
.awards .aw{ display:flex; align-items:center; gap:14px; }
.awards img{ height:78px; width:auto; background:#fff; border-radius:14px; padding:8px; box-shadow:var(--shadow); }
.awards .at b{ display:block; color:var(--green-deep); font-family:'Fraunces',serif; font-size:1.1rem; }
.awards .at span{ color:var(--ink-soft); font-size:.95rem; }

/* ---------- STOPKA: wyraźniejsze logo ---------- */
.foot-brand img{ height:60px !important; }
.foot-brand .badges img{ height:62px !important; }

/* ---------- STOPKA CIEMNA (logo + odznaki wyraźne) ---------- */
footer.site{ background:#1b262a !important; color:#c3ccce !important; border-top:none !important; }
footer.site h4{ color:#ffffff !important; }
footer.site p,footer.site a,footer.site li{ color:#aab4b7 !important; }
footer.site a:hover{ color:var(--gold-soft) !important; }
.foot-brand img{ height:66px !important; filter:brightness(0) invert(1); opacity:.96; }
.fphone a{ color:#ffffff !important; }
.foot-bottom{ border-top:1px solid rgba(255,255,255,.12) !important; color:#93a0a3 !important; }
.foot-bottom a{ color:#aab4b7 !important; }
.foot-brand .badges img{ background:#fff !important; height:62px !important; filter:none !important; }
.tlcc-settings-link{ color:#aab4b7 !important; }

/* ---------- KARTY ODDZIAŁÓW (kontakt): zdjęcie | dane | mapa ---------- */
.loccard{ display:grid; grid-template-columns:280px 1fr 1.05fr; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); margin-bottom:22px; }
.loccard .lc-photo{ background-size:cover; background-position:center; min-height:230px; }
.loccard .lc-info{ padding:24px 26px; }
.loccard .lc-info h3{ font-size:1.22rem; color:var(--green-deep); margin-bottom:8px; }
.loccard .lc-info .lc-addr{ color:var(--ink-soft); margin-bottom:12px; line-height:1.55; }
.loccard .lc-info .lc-tel{ display:flex; flex-direction:column; gap:4px; }
.loccard .lc-info .lc-tel a{ color:var(--green-deep); font-weight:700; display:inline-flex; gap:7px; align-items:center; }
.loccard .lc-info .lc-tel span{ color:var(--ink-soft); font-weight:400; font-size:.95rem; }
.loccard .lc-map{ min-height:230px; }
.loccard .lc-map iframe{ width:100%; height:100%; border:0; display:block; }
@media(max-width:980px){ .loccard{ grid-template-columns:1fr 1fr; } .loccard .lc-photo{ display:none; } }
@media(max-width:760px){ .loccard{ grid-template-columns:1fr; } .loccard .lc-map{ min-height:200px; } }
.firmcard{ background:#fff; border:1px solid var(--line); border-left:5px solid var(--gold); border-radius:var(--radius); box-shadow:var(--shadow); padding:24px 28px; max-width:760px; margin:0 auto; }
.firmcard h3{ color:var(--green-deep); margin-bottom:10px; }
.firmcard p{ color:var(--ink-soft); margin-bottom:6px; line-height:1.6; }
.firmcard b{ color:var(--green-deep); }

/* ---------- TOOLTIP „?” (cennik: standardy) ---------- */
.tip{ display:inline-grid; place-items:center; width:19px; height:19px; border-radius:50%; background:var(--cream-2); color:var(--gold-dark); font-size:.72rem; font-weight:800; cursor:help; position:relative; vertical-align:middle; margin-left:6px; border:1px solid var(--gold-soft); }
.tip:hover::after,.tip:focus::after{ content:attr(data-tip); position:absolute; bottom:150%; left:50%; transform:translateX(-50%); background:var(--green-deep); color:#fff; padding:10px 13px; border-radius:10px; width:230px; font-size:.85rem; font-weight:400; line-height:1.45; box-shadow:var(--shadow-lg); z-index:60; text-align:left; }
.tip:hover::before,.tip:focus::before{ content:""; position:absolute; bottom:140%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--green-deep); z-index:60; }
@media(max-width:760px){ .tip:hover::after,.tip:focus::after{ width:170px; left:auto; right:-4px; transform:none; } .tip:hover::before,.tip:focus::before{ left:auto; right:4px; transform:none; } }
