:root {
  --krem: #FBF8F5;
  --granat: #22304A;
  --roz: #C08081;
  --roz-btn: #9E6163;
  --roz-hover: #8A5254;
  --roz-tekst: #8F5658;
  --roz-jasny: #D9989A;
  --roz-tlo: #BE7A7C;
  --tekst: #4A4038;
  --muted: #625850;
  --linia: rgba(34, 48, 74, 0.12);
  --biel-cieple: #FBF8F5;
  --r-kontrolka: 10px;
  --r-karta: 12px;
  --r-sekcja: 24px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
  background: var(--krem);
  color: var(--granat);
  line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3 { letter-spacing: -0.01em; }

/* ---------- przyciski ---------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  font-size: 16px;
  padding: 15px 26px;
  border-radius: var(--r-kontrolka);
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.btn--pink { background: var(--roz-btn); color: #fff; }
.btn--pink:hover { background: var(--roz-hover); }
.btn--navy { background: var(--granat); color: var(--krem); }
.btn--navy:hover { background: #1a2539; }
.btn--ghost { background: transparent; border: 1px solid #D9CCC4; color: var(--granat); font-weight: 600; font-size: 15px; }
.btn--ghost:hover { border-color: var(--granat); }
.btn--big { padding: 17px 30px; }
.btn--full { width: 100%; }

.link-pink {
  color: var(--roz-jasny);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--roz-jasny);
  padding-bottom: 2px;
  align-self: flex-start;
}

/* ---------- topbar ---------- */

.topbar { background: var(--krem); position: sticky; top: 0; z-index: 40; border-bottom: 1px solid transparent; }
.topbar.is-scrolled { border-bottom-color: var(--linia); }

.topbar__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.topbar__logo { font-size: 21px; font-weight: 800; color: var(--granat); text-decoration: none; letter-spacing: -0.01em; }

.topbar__nav { display: flex; align-items: center; gap: 24px; }
.topbar__nav > a { font-size: 16px; font-weight: 600; color: var(--tekst); text-decoration: none; }
.topbar__nav > a:hover { color: var(--granat); }
.topbar__nav > a.topbar__tel { color: #fff; font-size: 15px; padding: 12px 18px; }

.burger {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid #E4D8D0;
  border-radius: var(--r-kontrolka);
  background: transparent;
  color: var(--granat);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* ---------- uklad sekcji ---------- */

.section__inner { max-width: 1200px; margin: 0 auto; padding-left: 60px; padding-right: 60px; }

.section--white { background: #fff; padding: 96px 0; }
.section--plain { background: transparent; padding: 72px 0 96px 0; }
.section--pink {
  background: var(--roz-tlo);
  border: 1px solid var(--linia);
  border-bottom: none;
  border-radius: var(--r-sekcja) var(--r-sekcja) 0 0;
  padding: 96px 0 120px 0;
}
.section--navy { background: var(--granat); color: var(--krem); padding: 96px 0; }
.section--overlap { margin-top: -24px; position: relative; border-radius: var(--r-sekcja) var(--r-sekcja) 0 0; }
.section--rounded { border-radius: var(--r-sekcja); margin-bottom: 88px; }
#dokumenty { padding-bottom: 120px; }

.label-row { display: flex; align-items: center; gap: 14px; margin-bottom: 32px; }
.label-row--spaced { margin-top: 104px; }
.label-num { font-size: 17px; font-weight: 800; color: var(--roz-tekst); }
.label-name { font-size: 15px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--granat); }
.label-note { font-size: 14px; color: var(--muted); margin-left: auto; }
.label-row--dark .label-num, .label-row--dark .label-name { color: var(--granat); }
.label-row--navy .label-num { color: var(--roz-jasny); }
.label-row--navy .label-name { color: var(--krem); }

.section h2 { font-size: 38px; line-height: 1.15; font-weight: 800; }
.section__lead { font-size: 17px; line-height: 1.7; color: var(--tekst); max-width: 720px; margin-top: 20px; }

.eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--roz-tekst); }

/* ---------- hero ---------- */

.hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 72px 60px 0 60px;
  display: flex;
  align-items: center;
  gap: 48px;
}

.hero__text { flex: 1; display: flex; flex-direction: column; gap: 28px; }
.hero__text h1 { font-size: 54px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; max-width: 620px; }
.hero__lead { font-size: 17px; line-height: 1.7; color: var(--tekst); max-width: 500px; }
.hero__cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 10px; }
.hero__note { font-size: 14px; color: var(--muted); }

.hero__photo { width: 460px; flex-shrink: 0; position: relative; }
.hero__photo img { width: 100%; height: 540px; object-fit: cover; border-radius: var(--r-karta); }

.hero__card {
  position: absolute;
  left: -50px;
  bottom: 28px;
  background: #fff;
  border-radius: var(--r-karta);
  padding: 16px 22px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hero__card-bar { width: 34px; height: 3px; background: var(--roz); margin-bottom: 6px; }
.hero__card strong { font-size: 22px; font-weight: 800; letter-spacing: -0.01em; }
.hero__card span:last-child { font-size: 14px; font-weight: 600; color: var(--muted); }

.trust {
  max-width: 1200px;
  margin: 72px auto 0 auto;
  padding: 32px 60px 80px 60px;
  border-top: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px;
  position: relative;
}
.trust::before { content: ""; position: absolute; top: 0; left: 60px; right: 60px; border-top: 1px solid var(--linia); }
.trust__item { display: flex; flex-direction: column; gap: 4px; }
.trust__item strong { font-size: 24px; font-weight: 800; }
.trust__item span { font-size: 14px; color: var(--muted); }

/* ---------- wspolpraca ---------- */

.steps-wrap { display: flex; gap: 48px; align-items: center; }

.steps { flex: 1; list-style: none; }
.step { /* wiersz kroku */
  display: grid;
  grid-template-columns: 74px 240px 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 28px 0;
  border-top: 1px solid var(--linia);
}
.step__kicker { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--roz-tekst); white-space: nowrap; }
.step h3 { font-size: 18px; font-weight: 700; }
.step p { font-size: 16px; line-height: 1.6; color: var(--tekst); }

.steps-photo { width: 300px; flex-shrink: 0; }
.steps-photo img { width: 100%; height: 300px; object-fit: cover; border-radius: var(--r-karta); }

/* ---------- opinie ---------- */

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

.opinion {
  background: var(--krem);
  border-radius: var(--r-karta);
  padding: 34px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.opinion__head { display: flex; align-items: center; justify-content: space-between; color: var(--roz); }
.opinion__tag { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--roz-tekst); }
.opinion p { font-size: 17px; line-height: 1.6; }
.opinion footer { display: flex; flex-direction: column; gap: 2px; }
.opinion footer strong { font-size: 15px; font-weight: 700; }
.opinion footer span { font-size: 14px; color: var(--muted); }

/* ---------- kalkulator ---------- */

.kalk { display: flex; gap: 64px; }
.kalk__text { flex: 1; display: flex; flex-direction: column; gap: 22px; }
.kalk__text h2, .kalk__text p { color: var(--granat); }
.kalk__text p { font-size: 17px; line-height: 1.7; max-width: 440px; }
.kalk__bik { font-size: 14px !important; }

.kalk__card {
  width: 520px;
  flex-shrink: 0;
  background: #fff;
  border-radius: var(--r-karta);
  padding: 34px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.kalk__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.kalk__grid label { display: flex; flex-direction: column; gap: 7px; font-size: 14px; font-weight: 700; }
.kalk__grid input {
  height: 48px;
  border: 1px solid #DCCBC4;
  border-radius: var(--r-kontrolka);
  padding: 0 14px;
  font-size: 16px;
  font-family: inherit;
  color: var(--granat);
  width: 100%;
}
.kalk__grid input::placeholder { color: #8A7C72; }
.kalk__grid input:focus { outline: 2px solid var(--roz); outline-offset: 1px; border-color: var(--roz); }

.kalk__result {
  border-top: 1px solid #E9DCD6;
  padding-top: 18px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.kalk__result[hidden] { display: none; }
.kalk__result-text { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.kalk__result-text span { font-size: 14px; color: var(--muted); }
.kalk__result-text strong { font-size: 36px; line-height: 1.1; font-weight: 800; }
.kalk__result-text em { font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--roz-tekst); }
.kalk__result .btn { white-space: nowrap; font-size: 15px; padding: 14px 22px; }

.kalk__error { font-size: 14px; color: var(--roz-tekst); font-weight: 600; }

/* ---------- dokumenty ---------- */

.doc-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 32px; }

.doc-cat {
  text-align: left;
  background: #fff;
  border: 1px solid #E4D8D0;
  border-radius: var(--r-karta);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  font-family: inherit;
  color: var(--granat);
  transition: border-color 0.15s ease;
}
.doc-cat:hover { border-color: var(--roz-btn); }
.doc-cat strong { font-size: 16px; font-weight: 700; }
.doc-cat span { font-size: 13px; color: var(--muted); }
.doc-cat.is-active { background: var(--roz-btn); border-color: var(--roz-btn); color: #fff; }
.doc-cat.is-active span { color: rgba(255, 255, 255, 0.85); }

.doc-body { display: flex; gap: 56px; margin-top: 40px; }

.doc-photo { width: 380px; flex-shrink: 0; display: flex; flex-direction: column; gap: 14px; }
.doc-photo img { width: 100%; height: 250px; object-fit: cover; border-radius: var(--r-karta); }
.doc-photo p { font-size: 14px; line-height: 1.6; color: var(--muted); }

.doc-right { flex: 1; min-width: 0; }
.doc-list { list-style: none; }
.doc-list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 17px 0;
  border-top: 1px solid var(--linia);
}
.doc-list li svg { flex-shrink: 0; margin-top: 2px; }
.doc-list h4 { font-size: 17px; font-weight: 700; }
.doc-list p { font-size: 14px; line-height: 1.5; color: var(--muted); }
.doc-more { margin-top: 16px; display: none; }

/* ---------- o mnie ---------- */

.omnie { display: flex; align-items: center; gap: 64px; }
.omnie__photo { width: 400px; flex-shrink: 0; }
.omnie__photo img { width: 100%; height: 300px; object-fit: cover; border-radius: var(--r-karta); }
.omnie__text { display: flex; flex-direction: column; gap: 20px; max-width: 560px; }
.omnie__text h2 { font-size: 34px; color: var(--krem); }
.omnie__text p { font-size: 17px; line-height: 1.7; color: rgba(251, 248, 245, 0.85); }

/* ---------- blog ---------- */

.posts { list-style: none; }
.post {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 28px 0;
  border-top: 1px solid var(--linia);
}
.post__date { font-size: 14px; color: var(--muted); }
.post h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
.post__tag { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--roz-tekst); }
.posts__more { display: block; font-size: 16px; font-weight: 600; color: var(--roz-tekst); border-top: 1px solid var(--linia); padding-top: 18px; }

/* ---------- kontakt / stopka ---------- */

.footer { background: var(--granat); color: var(--krem); padding: 96px 0 0 0; }

.footer__grid { display: flex; gap: 64px; }
.footer__main { flex: 1; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.footer__main h2 { font-size: 40px; color: var(--krem); max-width: 480px; }
.footer__phone { font-size: 34px; font-weight: 800; color: var(--roz-jasny); text-decoration: none; }
.footer__mail { font-size: 17px; color: rgba(251, 248, 245, 0.88); text-decoration: none; }
.footer__mail:hover, .footer__phone:hover { text-decoration: underline; }
.footer__addr { font-size: 17px; color: rgba(251, 248, 245, 0.88); }
.footer__main .btn { margin-top: 10px; }

.footer__side { width: 440px; display: flex; flex-direction: column; gap: 16px; }
.footer__side img { width: 100%; height: 230px; object-fit: cover; border-radius: var(--r-karta); }
.footer__social { display: flex; align-items: center; gap: 12px; font-size: 16px; color: rgba(251, 248, 245, 0.88); text-decoration: none; }
.footer__social svg { color: var(--roz-jasny); }
.footer__social:hover { text-decoration: underline; }

.footer__legal {
  margin-top: 88px;
  border-top: 1px solid rgba(251, 248, 245, 0.18);
  padding-top: 18px;
  padding-bottom: 24px;
  font-size: 13px;
  color: rgba(251, 248, 245, 0.6);
}

/* ---------- sticky CTA (mobile) ---------- */

.sticky-cta {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  background: var(--roz-btn);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  text-align: center;
  text-decoration: none;
  padding: 18px 0 calc(18px + env(safe-area-inset-bottom, 0px)) 0;
  border-radius: 16px 16px 0 0;
  transition: transform 0.25s ease;
}
.sticky-cta.is-hidden { transform: translateY(105%); }

/* ==================== tablet ==================== */

@media (max-width: 1080px) {
  .topbar__inner, .section__inner, .hero__inner { padding-left: 32px; padding-right: 32px; }
  .trust { padding-left: 32px; padding-right: 32px; }
  .trust::before { left: 32px; right: 32px; }
  .hero__text h1 { font-size: 44px; }
  .hero__photo { width: 380px; }
  .hero__photo img { height: 460px; }
  .kalk { gap: 40px; }
  .kalk__card { width: 460px; }
  .step { /* wiersz kroku */ grid-template-columns: 70px 200px 1fr; }
  .doc-photo { width: 300px; }
  .omnie__photo { width: 320px; }
  .topbar__nav { gap: 20px; }
}

/* ==================== mobile ==================== */

@media (max-width: 820px) {
  body { padding-bottom: 96px; }

  .topbar__inner { height: 64px; padding-left: 24px; padding-right: 16px; }
  .topbar__logo { font-size: 18px; }
  .burger { display: flex; }
  .topbar__nav {
    display: none;
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    background: var(--krem);
    border-bottom: 1px solid var(--linia);
    flex-direction: column;
    align-items: stretch;
    padding: 12px 24px 20px 24px;
    gap: 0;
  }
  .topbar__nav > a { padding: 13px 0; font-size: 17px; border-bottom: 1px solid var(--linia); }
  .topbar__nav > a.topbar__tel { margin-top: 14px; justify-content: center; border-bottom: none; }
  .topbar.is-open .topbar__nav { display: flex; }

  .hero__inner { flex-direction: column; align-items: stretch; padding-top: 24px; gap: 0; }
  .hero__text { gap: 18px; }
  .hero__text h1 { font-size: 30px; line-height: 1.18; }
  .hero__lead { font-size: 16px; }
  .hero__cta { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 4px; }
  .hero__cta .btn--ghost { text-align: center; }
  .hero__note { text-align: center; font-size: 13px; }
  .hero__photo { width: 100%; margin: 16px 0 0 0; }
  .hero__photo img { height: 360px; }
  .hero__card { position: relative; left: auto; bottom: auto; margin: -36px 0 0 16px; width: fit-content; padding: 12px 18px; }
  .hero__card strong { font-size: 18px; }
  .hero__card span:last-child { font-size: 13px; }

  .trust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 48px; padding: 26px 24px 64px 24px; }
  .trust::before { left: 24px; right: 24px; }
  .trust__item strong { font-size: 19px; }
  .trust__item span { font-size: 13px; }

  .section--white, .section--navy { padding: 64px 0; }
  .section--plain { padding: 52px 0 64px 0; }
  .section--pink { padding: 64px 0 84px 0; }
  #dokumenty { padding-bottom: 84px; }
  .section__inner { padding-left: 24px; padding-right: 24px; }
  .section h2 { font-size: 26px; }
  .section__lead { font-size: 15px; }
  .section--overlap { margin-top: -16px; border-radius: 16px 16px 0 0; }
  .section--rounded { border-radius: var(--r-sekcja); margin-bottom: 48px; }

  .label-num { font-size: 15px; }
  .label-name { font-size: 14px; }
  .label-note { display: none; }
  .label-row--spaced { margin-top: 64px; }

  .steps-wrap { flex-direction: column; align-items: stretch; gap: 20px; }
  .step { /* wiersz kroku */ grid-template-columns: 1fr; gap: 4px; padding: 14px 0 14px 26px; position: relative; border-top: none; }
  .step::before { content: ""; position: absolute; left: 0; top: 25px; width: 10px; height: 10px; border-radius: 50%; background: var(--roz); }
  .step::after { content: ""; position: absolute; left: 4px; top: 43px; bottom: -18px; width: 2px; background: #E4D8D0; }
  .step:last-child::after { display: none; }
  .step h3 { font-size: 17px; }
  .step p { font-size: 15px; }
  .steps-photo { display: none; }

  .opinions { grid-template-columns: 1fr; gap: 16px; }
  .opinion { padding: 26px; }
  .opinion p { font-size: 16px; }
  .opinion:nth-child(3) { display: none; }

  .kalk { flex-direction: column; gap: 28px; }
  .kalk__card { width: 100%; padding: 24px; }
  .kalk__grid { grid-template-columns: 1fr; gap: 16px; }
  .kalk__grid label:nth-child(3), .kalk__grid label:nth-child(4) { }
  .kalk__result { flex-direction: column; align-items: stretch; gap: 12px; }
  .kalk__result-text strong { font-size: 30px; }
  .kalk__result .btn { white-space: normal; }
  .kalk__text p { font-size: 15px; }

  .doc-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .doc-cat { padding: 14px 16px; }
  .doc-cat strong { font-size: 15px; }
  .doc-cat span { font-size: 12px; }
  .doc-body { flex-direction: column; gap: 22px; margin-top: 26px; }
  .doc-photo { display: none; }
  .doc-more { display: inline-flex; }
  .doc-list li.is-extra { display: none; }
  .doc-list.is-expanded li.is-extra { display: flex; }
  .doc-list h4 { font-size: 16px; }
  .doc-list p { font-size: 13px; }

  .omnie { flex-direction: column; align-items: stretch; gap: 22px; }
  .omnie__photo { width: 100%; }
  .omnie__photo img { height: 230px; }
  .omnie__text h2 { font-size: 26px; }
  .omnie__text p { font-size: 16px; }
  .omnie__photo { order: 2; }
  .omnie__text { order: 1; }

  .post { grid-template-columns: 1fr; gap: 8px; padding: 20px 0; }
  .post h3 { font-size: 18px; line-height: 1.35; }
  .post__date { font-size: 14px; }
  .post__tag { display: none; }

  .footer { padding-top: 64px; }
  .footer__grid { flex-direction: column; gap: 32px; }
  .footer__main h2 { font-size: 27px; }
  .footer__phone { font-size: 30px; }
  .footer__mail, .footer__addr { font-size: 16px; }
  .footer__main .btn { align-self: stretch; text-align: center; }
  .footer__side { width: 100%; }
  .footer__legal { margin-top: 64px; padding-bottom: 24px; }

  .sticky-cta { display: block; }
}

@media (max-width: 360px) {
  .hero__text h1 { font-size: 26px; }
  .section h2 { font-size: 23px; }
  .footer__phone { font-size: 26px; }
  .trust { grid-template-columns: 1fr; }
}

/* ---------- uslugi ---------- */

.uslugi h2 { max-width: 720px; }
.uslugi__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 36px; }
.usluga {
  background: #fff;
  border: 1px solid #E4D8D0;
  border-radius: var(--r-karta);
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.usluga h3 { font-size: 17px; font-weight: 700; margin-top: 8px; }
.usluga p { font-size: 14px; line-height: 1.6; color: var(--muted); }

/* ---------- dokumenty: tryb, notka, wysylka listy ---------- */

.doc-tryb { display: flex; align-items: center; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.doc-tryb__label { font-size: 14px; font-weight: 600; color: var(--muted); margin-right: 4px; }
.doc-tryb__btn {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--granat);
  background: #fff;
  border: 1px solid #E4D8D0;
  border-radius: 999px;
  padding: 9px 18px;
  cursor: pointer;
}
.doc-tryb__btn.is-active { background: var(--granat); border-color: var(--granat); color: #fff; }

.doc-note { font-size: 13px; color: var(--muted); margin-top: 14px; }

.doc-mail { margin-top: 24px; border-top: 1px solid var(--linia); padding-top: 22px; }
.doc-mail__label { display: block; font-size: 16px; font-weight: 700; margin-bottom: 10px; }
.doc-mail__row { display: flex; gap: 10px; }
.doc-mail__row input {
  flex: 1;
  min-width: 0;
  height: 48px;
  border: 1px solid #DCCBC4;
  border-radius: var(--r-kontrolka);
  padding: 0 14px;
  font-size: 16px;
  font-family: inherit;
  color: var(--granat);
}
.doc-mail__row input:focus { outline: 2px solid var(--roz); outline-offset: 1px; }
.doc-mail__row .btn { white-space: nowrap; }
.doc-mail__note { font-size: 12px; color: var(--muted); margin-top: 8px; }
.honey { display: none !important; }

/* ---------- faq ---------- */

.faq { margin-top: 8px; }
.faq__item { border-top: 1px solid var(--linia); }
.faq__item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--granat);
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: "+";
  font-size: 24px;
  font-weight: 500;
  color: var(--roz-tekst);
  flex-shrink: 0;
  transition: transform 0.2s ease;
  line-height: 1;
}
.faq__item[open] summary::after { transform: rotate(45deg); }
.faq__item p { font-size: 16px; line-height: 1.7; color: var(--tekst); padding: 0 44px 22px 0; max-width: 760px; }

/* ---------- kontakt: formularz ---------- */

.footer__sub { font-size: 17px; line-height: 1.6; color: rgba(251, 248, 245, 0.85); max-width: 420px; }
.footer__route {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--krem);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid rgba(251, 248, 245, 0.4);
  border-radius: 999px;
  padding: 10px 18px;
  align-self: flex-start;
}
.footer__route:hover { border-color: var(--krem); }
.footer__route svg { color: var(--roz-jasny); }

.footer__form {
  background: #fff;
  border-radius: var(--r-karta);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: var(--granat);
}
.footer__form label { display: flex; flex-direction: column; gap: 7px; font-size: 14px; font-weight: 700; }
.footer__form input[type="text"],
.footer__form input[type="tel"],
.footer__form input[type="email"],
.footer__form select {
  height: 48px;
  border: 1px solid #DCCBC4;
  border-radius: var(--r-kontrolka);
  padding: 0 14px;
  font-size: 16px;
  font-family: inherit;
  color: var(--granat);
  background: #fff;
  width: 100%;
}
.footer__form textarea {
  border: 1px solid #DCCBC4;
  border-radius: var(--r-kontrolka);
  padding: 12px 14px;
  font-size: 16px;
  font-family: inherit;
  color: var(--granat);
  resize: vertical;
  width: 100%;
}
.footer__form input:focus, .footer__form select:focus, .footer__form textarea:focus { outline: 2px solid var(--roz); outline-offset: 1px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-zgoda { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-size: 12px !important; font-weight: 400 !important; color: var(--muted); line-height: 1.5; }
.form-zgoda input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--roz-btn); flex-shrink: 0; }

@media (max-width: 820px) {
  .uslugi__grid { grid-template-columns: 1fr; gap: 12px; margin-top: 24px; }
  .usluga { padding: 20px; }
  .usluga p { font-size: 13px; }
  .doc-mail__row { flex-direction: column; }
  .doc-mail__row .btn { width: 100%; }
  .faq__item summary { font-size: 16px; padding: 17px 0; }
  .faq__item p { padding: 0 20px 18px 0; font-size: 15px; }
  .form-grid { grid-template-columns: 1fr; }
  .footer__form { padding: 22px; }
}
