/* ==========================================================================
   template/v2/style.css – szablon v2 (2026), wg projektu Claude Design "NNW Szkolne".
   Kolory i typografia w zmiennych CSS; marka może nadpisać zmienne (brand.config.php -> colors).
   Prefiks klas: nw-
   ========================================================================== */

:root {
  --bg: #ffffff; --surface: #f4f7f8; --surface2: #ffffff;
  --text: #3a4a52; --head: #2f4048; --muted: #7b8b94; --muted2: #5a6b74; --muted3: #6b8794;
  --line: #dce7ec; --line2: #eef2f5; --input-line: #ccd9e0; --dash: #c9d7de;
  --blue: #2e9ad3; --blue-deep: #1a6b96; --blue-text: #2e9ad3; --head-blue: #1a6b96;
  --green: #64b445; --green-dark: #57a83c; --green-text: #57a83c; --brand-deep: #1f86c4;
  --h1: #38a7dd; --h2: #2e9ad3; --h3: #1f86c4;
  --band1: #eef4f7; --band2: #e3edf2; --ph1: #d9e6ec; --ph2: #cfdfe7;
  --ok-bg: #f1f8ec; --info-bg: #eef7fc; --info-line: #b9dcef;
  --err-bg: #fdf1f0; --err-line: #e4b3ad; --err-text: #c0392b; --faq-hover: #eaf1f5;
  --font: Lato, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color-scheme: light;
}

/* --- baza ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); color: var(--text); background: var(--bg); line-height: 1.5; }
img { max-width: 100%; height: auto; }
a { color: var(--blue-text); text-decoration: none; }
a:hover { color: var(--head-blue); text-decoration: underline; }
table { border-collapse: collapse; }
button, input, select { font-family: inherit; }
[hidden] { display: none !important; }
.nw-wrap { width: 100%; overflow-x: hidden; }
.nw-container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.nw-container--900 { max-width: 900px; }
.nw-container--1000 { max-width: 1000px; }
.nw-container--1100 { max-width: 1100px; }
.nw-section { width: 100%; padding: clamp(34px, 5vw, 60px) 0; }
.nw-section--tight-bottom { padding-bottom: 6px; }
.nw-section--tight-top { padding-top: 0; }
.nw-section--white { background: var(--surface2); }
.nw-section--surface { background: var(--surface); }
.nw-section--band { background: linear-gradient(180deg, var(--band1) 0%, var(--band2) 100%); }
.nw-section--gradient { background: linear-gradient(135deg, var(--h1) 0%, var(--h2) 50%, var(--h3) 100%); }
.nw-testbanner { background: #ffc107; color: #a30000; text-align: center; font-weight: 900; text-transform: uppercase; padding: 8px 12px; font-size: 14px; }

/* --- pasek górny ----------------------------------------------------- */
.nw-topbar { background: var(--surface2); border-bottom: 1px solid var(--line); }
.nw-topbar__inner { display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: flex-end; align-items: center; padding: 10px 20px; font-size: 14px; font-weight: 700; }
.nw-topbar__link { display: flex; align-items: center; gap: 8px; }
.nw-topbar__link--phone { color: var(--green-text); }
.nw-topbar__link--mail { color: var(--blue-text); }
.nw-ico { display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 10px; line-height: 1; }
.nw-ico--phone { width: 18px; height: 18px; border-radius: 50%; background: var(--green); }
.nw-ico--mail { width: 18px; height: 13px; border-radius: 2px; background: var(--blue); font-size: 9px; }

/* --- nagłówek z logo i menu ----------------------------------------- */
.nw-header { background: var(--surface2); }
.nw-header__inner { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; padding: 12px 20px 18px; }
.nw-logo { flex-shrink: 0; display: block; }
.nw-logo img { display: block; max-height: 84px; width: auto; max-width: 100%; }
.nw-nav { display: flex; flex-wrap: wrap; gap: 10px 26px; align-items: center; font-size: 13px; font-weight: 900; letter-spacing: 0.03em; text-transform: uppercase; }
.nw-nav a { color: var(--text); padding: 6px 0; }
.nw-nav a:hover { color: var(--blue-text); text-decoration: none; }
.nw-nav a.is-accent { color: var(--green-text); }
.nw-nav a.is-accent:hover { color: var(--head-blue); }
.nw-nav a.is-current { color: var(--blue-text); }

/* --- hero ------------------------------------------------------------ */
.nw-hero { background: var(--blue); }
.nw-hero__grid { display: flex; flex-wrap: wrap; align-items: stretch; min-height: 360px; }
.nw-hero__photo { flex: 1 1 480px; min-width: 280px; min-height: 300px; background: repeating-linear-gradient(135deg, var(--ph1) 0 14px, var(--ph2) 14px 28px); background-size: cover; background-position: center 35%; background-repeat: no-repeat; }
@media (max-width: 767px) { .nw-hero__photo { min-height: 220px; } }
.nw-hero__panel { flex: 1 1 440px; min-width: 280px; background: linear-gradient(135deg, var(--h1) 0%, var(--h2) 45%, var(--h3) 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 44px 24px 48px; text-align: center; color: #fff; }
.nw-hero__insurer { opacity: 0.95; }
.nw-hero__insurer-name { font-size: 22px; font-weight: 400; letter-spacing: 0.22em; }
.nw-hero__insurer-sub { font-size: 9px; font-weight: 700; letter-spacing: 0.18em; margin-top: 4px; }
.nw-hero__title { margin: 6px 0 0; color: #fff; font-weight: 400; line-height: 1.05; font-size: clamp(30px, 5.4vw, 58px); letter-spacing: 0.02em; text-wrap: balance; }
.nw-hero__title strong { font-weight: 700; }
.nw-badge { display: inline-block; background: var(--green); color: #fff; font-weight: 700; border-radius: 999px; }
.nw-hero__badge { margin-top: 6px; font-size: clamp(20px, 3vw, 30px); padding: 8px 34px; }
.nw-hero--compact { padding: clamp(28px, 4vw, 44px) 20px; text-align: center; color: #fff; background: linear-gradient(135deg, var(--h1) 0%, var(--h2) 50%, var(--h3) 100%); }
.nw-hero--compact .nw-container { padding: 0; }
.nw-hero__kicker { font-size: 12px; font-weight: 700; letter-spacing: 0.2em; opacity: 0.9; text-transform: uppercase; }
.nw-hero--compact .nw-hero__title { margin: 10px 0 0; font-size: clamp(24px, 4vw, 44px); line-height: 1.1; }
.nw-hero__pill { margin-top: 14px; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; background: var(--green); border-radius: 999px; padding: 9px 26px; font-size: clamp(15px, 2vw, 20px); font-weight: 700; color: #fff; }
.nw-hero__pill strong { font-weight: 900; font-size: 1.25em; }
.nw-hero--left { text-align: left; padding: clamp(30px, 5vw, 56px) 20px; }
.nw-hero--left .nw-hero__title { font-size: clamp(26px, 4.4vw, 48px); line-height: 1.12; margin-top: 12px; }
.nw-hero__lead { margin: 14px 0 0; max-width: 620px; font-size: clamp(14px, 1.8vw, 17px); line-height: 1.6; opacity: 0.95; }

/* --- zalety ubezpieczenia ------------------------------------------- */
.nw-features__head { position: relative; padding-right: 90px; }
.nw-features__title { margin: 0; font-size: clamp(21px, 3.2vw, 33px); line-height: 1.22; font-weight: 900; color: var(--green-text); text-transform: uppercase; text-wrap: pretty; }
.nw-features__title span { color: var(--blue-text); font-weight: 700; }
.nw-features__q { position: absolute; right: 0; top: -18px; font-size: clamp(70px, 12vw, 118px); line-height: 1; color: var(--green); font-weight: 700; }
.nw-features__list { list-style: none; margin: 30px 0 0; padding: 0; }
.nw-features__item { display: flex; gap: 16px; align-items: flex-start; padding: 20px 0; border-top: 1px dashed var(--dash); font-size: clamp(14px, 1.6vw, 16px); line-height: 1.55; }
.nw-features__plus { flex-shrink: 0; color: var(--green); font-size: 26px; line-height: 1; font-weight: 700; margin-top: -2px; }
.nw-features__more { margin-top: 22px; border-top: 1px dashed var(--dash); padding-top: 20px; }
.nw-sports { margin-top: 16px; background: var(--surface); border-left: 4px solid var(--green); padding: 18px 20px; font-size: 13px; line-height: 1.6; }

/* --- przyciski ------------------------------------------------------- */
.nw-btn { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 2px solid transparent; border-radius: 6px; padding: 12px 22px; min-height: 46px; font-family: inherit; font-weight: 900; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; text-decoration: none; text-align: center; line-height: 1.2; transition: background 0.15s, color 0.15s, border-color 0.15s; }
.nw-btn:hover { text-decoration: none; }
.nw-btn--green { background: var(--green); border-color: var(--green); color: #fff; }
.nw-btn--green:hover { background: var(--green-dark); border-color: var(--green-dark); color: #fff; }
.nw-btn--outline-green { background: var(--surface2); border-color: var(--green); color: var(--green-text); text-transform: none; letter-spacing: 0; }
.nw-btn--outline-green:hover { background: var(--green); color: #fff; }
.nw-btn--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.nw-btn--blue:hover { background: var(--blue-deep); border-color: var(--blue-deep); color: #fff; }
.nw-btn--outline-blue { background: transparent; border-color: var(--blue); color: var(--head-blue); }
.nw-btn--outline-blue:hover { background: var(--blue); color: #fff; }
.nw-btn--block { display: flex; width: 100%; }
.nw-btn--lg { font-size: 15px; padding: 15px 22px; min-height: 48px; border-radius: 8px; }
.nw-btn--xl { font-size: 16px; padding: 19px 26px; min-height: 58px; border-radius: 8px; }
.nw-btn[disabled] { opacity: 0.6; cursor: wait; }
.nw-linkbtn { appearance: none; border: 0; background: none; padding: 6px 0; margin: 0; font-family: inherit; font-size: 12.5px; color: var(--blue-text); text-decoration: underline; cursor: pointer; text-align: left; }

/* --- pasek "wybierz pakiet", kroki ---------------------------------- */
.nw-choose { text-align: center; padding: clamp(40px, 6vw, 66px) 20px clamp(30px, 4vw, 44px); }
.nw-choose__title { margin: 0 auto; max-width: 820px; font-size: clamp(19px, 2.9vw, 30px); line-height: 1.3; font-weight: 900; text-transform: uppercase; color: var(--green-text); }
.nw-choose__title .is-blue { display: block; color: var(--blue-text); font-size: clamp(22px, 3.4vw, 36px); margin-top: 6px; }
.nw-choose__title .is-green { display: block; margin-top: 4px; }
.nw-stripe { width: 100%; height: 8px; background: var(--blue); }
.nw-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 26px; }
.nw-step { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; color: inherit; border-radius: 8px; padding: 8px 4px; }
a.nw-step:hover { background: var(--surface); text-decoration: none; color: inherit; }
.nw-step__title { font-size: 13px; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted3); }
.nw-step--done .nw-step__title { color: var(--blue-text); }
.nw-step--active .nw-step__title { color: var(--green-text); }
.nw-step__dot { width: 44px; height: 44px; border-radius: 50%; border: 4px solid var(--blue); background: #fff; color: var(--head-blue); display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 18px; }
.nw-step--done .nw-step__dot { background: var(--green); color: #fff; }
.nw-step--active .nw-step__dot { background: var(--blue); color: #fff; }
.nw-step__desc { font-size: 13px; line-height: 1.5; color: var(--muted2); max-width: 230px; }

/* --- tabela ofert (desktop) ----------------------------------------- */
.nw-offer { padding: clamp(26px, 4vw, 48px) 14px clamp(34px, 5vw, 56px); }
.nw-table-wrap { background: var(--surface2); border-radius: 6px; overflow: hidden; box-shadow: 0 10px 30px rgba(12, 60, 90, 0.18); }
.nw-table { width: 100%; table-layout: fixed; font-size: 13px; }
.nw-table th, .nw-table td { vertical-align: middle; }
.nw-table__lead { width: 30%; text-align: left; background: var(--brand-deep); color: #fff; padding: 14px 16px; font-size: 13.5px; font-weight: 900; text-transform: uppercase; line-height: 1.35; }
.nw-table__variant { background: var(--brand-deep); padding: 12px 8px; text-align: center; border-left: 1px solid rgba(255, 255, 255, 0.25); }
.nw-table__price { color: #fff; font-weight: 900; font-size: 23px; line-height: 1; }
.nw-table__price span { font-size: 13px; font-weight: 400; }
.nw-table__buy { display: block; margin-top: 8px; background: var(--green); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: 0.06em; padding: 8px 4px; border-radius: 4px; text-transform: uppercase; }
.nw-table__buy:hover { background: var(--green-dark); color: #fff; text-decoration: none; }
.nw-table__name { padding: 12px 16px; border-bottom: 1px solid var(--line2); line-height: 1.4; font-weight: 700; color: var(--head); text-align: left; }
.nw-table__val { padding: 12px 8px; border-bottom: 1px solid var(--line2); border-left: 1px solid var(--line2); text-align: center; font-size: 12.5px; line-height: 1.35; color: var(--text); }
.nw-table__desc { display: block; margin-top: 3px; font-size: 11.5px; font-weight: 400; color: #8195a0; line-height: 1.4; }
.nw-table__row--sub .nw-table__name { font-weight: 400; color: var(--muted2); padding-left: 34px; font-size: 12.5px; }
.nw-table__row--sub .nw-table__desc { font-size: 11px; }
.nw-table__row--sub .nw-table__name::before { content: "– "; color: var(--green); font-weight: 900; }
.nw-table tbody tr:hover td { background: var(--surface); }

/* --- oferta mobilna (karty + wybór wariantu) ------------------------ */
.nw-mobile { display: none; }
.nw-mobile__lead { color: #fff; font-weight: 900; font-size: 15px; line-height: 1.4; text-transform: uppercase; margin-bottom: 14px; }
.nw-chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 8px; }
.nw-chip { appearance: none; cursor: pointer; font-family: inherit; min-height: 58px; border-radius: 8px; padding: 8px 4px; border: 2px solid rgba(255, 255, 255, 0.5); background: rgba(255, 255, 255, 0.14); color: #fff; font-weight: 900; font-size: 19px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.nw-chip span { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; }
.nw-chip.is-active { background: #fff; color: var(--head-blue); border-color: var(--green); }
.nw-mobile__cta { margin-top: 14px; }
.nw-compare { margin-top: 14px; appearance: none; cursor: pointer; font-family: inherit; border: 2px solid rgba(255, 255, 255, 0.55); background: rgba(255, 255, 255, 0.14); color: #fff; font-weight: 900; font-size: 12.5px; letter-spacing: 0.04em; text-transform: uppercase; padding: 12px 18px; border-radius: 8px; min-height: 46px; }
.nw-compare.is-active { background: #fff; color: var(--head-blue); }
.nw-cards { margin-top: 14px; background: var(--surface2); border-radius: 10px; overflow: hidden; }
.nw-cards__head { background: var(--surface); padding: 12px 16px; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.05em; color: var(--head-blue); border-bottom: 1px solid var(--line); }
.nw-card { padding: 14px 16px; border-bottom: 1px solid var(--line2); display: flex; flex-direction: column; gap: 7px; }
.nw-card__name { font-size: 13.5px; font-weight: 700; line-height: 1.4; color: var(--head); }
.nw-card--sub .nw-card__name { font-weight: 400; color: var(--muted2); }
.nw-card--sub .nw-card__name::before { content: "– "; color: var(--green); font-weight: 900; }
.nw-card__desc { font-size: 12px; line-height: 1.45; color: var(--muted); }
.nw-card__val { font-size: 16px; font-weight: 900; color: var(--green-text); }
.nw-card__val[data-price] { display: none; }
.nw-card__val.is-active { display: block; }
.nw-card__others { display: none; flex-wrap: wrap; gap: 6px; }
.nw-cards.is-compare .nw-card__others { display: flex; }
.nw-card__other { appearance: none; cursor: pointer; font-family: inherit; text-align: left; border: 1px solid var(--line); background: var(--surface); border-radius: 6px; padding: 9px 12px; font-size: 11.5px; line-height: 1.35; color: var(--muted2); min-height: 44px; }
.nw-card__other:hover { border-color: var(--green); }
.nw-card__other strong { font-weight: 900; color: var(--head-blue); }
.nw-card__other.is-active { display: none; }
@media (max-width: 1023px) {
  .nw-table-wrap { display: none; }
  .nw-mobile { display: block; }
}

/* --- dokumenty ------------------------------------------------------- */
.nw-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; align-items: start; }
.nw-docs__title { margin: 0; font-size: clamp(26px, 4vw, 42px); line-height: 1.1; font-weight: 400; color: var(--blue-text); text-transform: uppercase; }
.nw-docs__title strong { color: var(--green-text); font-weight: 900; }
.nw-docs__list { display: flex; flex-direction: column; gap: 14px; }
.nw-doc { display: flex; gap: 16px; align-items: center; background: var(--surface); border-radius: 8px; padding: 16px 18px; color: var(--text); min-height: 66px; }
.nw-doc:hover { background: #e9f1f5; color: var(--head-blue); text-decoration: none; }
.nw-doc__ico { flex-shrink: 0; width: 40px; height: 46px; border: 2px solid var(--green); border-radius: 4px; color: var(--green-text); font-weight: 900; font-size: 12px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 4px; }
.nw-doc__title { font-size: 13.5px; line-height: 1.45; font-weight: 700; }

/* --- kontakt (dane marki) ------------------------------------------- */
.nw-contact { background: var(--surface); }
.nw-contact__inner { display: flex; flex-wrap: wrap; max-width: 1180px; margin: 0 auto; }
.nw-contact__left { flex: 1 1 380px; min-width: 280px; padding: clamp(32px, 4vw, 54px) 24px; display: flex; flex-direction: column; gap: 18px; font-size: 14px; line-height: 1.6; }
.nw-contact__left img { display: block; align-self: flex-start; max-width: 200px; max-height: 110px; width: auto; }
.nw-contact__name { font-size: 15px; font-weight: 700; }
.nw-contact__right { flex: 1 1 380px; min-width: 280px; background: linear-gradient(135deg, var(--h1) 0%, var(--h2) 55%, var(--h3) 100%); color: #fff; padding: clamp(32px, 4vw, 54px) 26px; display: flex; flex-direction: column; gap: 30px; }
.nw-contact__right a { color: #fff; text-decoration: underline; }
.nw-office { display: flex; gap: 14px; font-size: 14px; line-height: 1.55; }
.nw-office__pin { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; background: rgba(255, 255, 255, 0.9); transform: rotate(-45deg); margin-top: 2px; }
.nw-office__name { display: block; font-size: 16px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.02em; }
.nw-office__addr { font-weight: 700; }
.nw-office__extra { display: block; margin-top: 10px; opacity: 0.92; }

/* --- informacja o płatnościach, regulamin, stopka ------------------- */
.nw-payinfo { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 26px; align-items: center; }
.nw-payinfo img { display: block; max-width: 100%; height: auto; }
.nw-payinfo__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; line-height: 1.5; color: var(--muted3); }
.nw-rules { max-width: 1100px; margin: 26px auto 0; background: var(--surface); border-radius: 8px; padding: 24px; font-size: 13px; line-height: 1.6; color: var(--muted2); }
.nw-rules h3 { margin: 0 0 12px; font-size: 17px; color: var(--head-blue); text-transform: uppercase; font-weight: 900; }
.nw-rules > p { margin: 0 0 16px; }
.nw-rules__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.nw-rules__grid strong { color: var(--head); }
.nw-rules__grid p { margin: 6px 0 0; }
.nw-footer { background: var(--brand-deep); color: rgba(255, 255, 255, 0.9); font-size: 12px; padding: 16px 20px; text-align: center; }

/* --- formularz ------------------------------------------------------- */
.nw-form { display: flex; flex-direction: column; gap: 26px; }
.nw-panel { border-top: 3px solid var(--green); background: var(--surface); border-radius: 0 0 10px 10px; padding: 22px; }
.nw-panel--blue { border-top-color: var(--blue); }
.nw-panel__title { margin: 0 0 14px; font-size: 15px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.04em; color: var(--head-blue); }
.nw-panel__title--tight { margin-bottom: 4px; }
.nw-panel__hint { margin: 0 0 18px; font-size: 13px; color: var(--muted); }
.nw-check-wrap { display: flex; flex-direction: column; gap: 8px; }
.nw-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.55; cursor: pointer; }
.nw-check input { width: 22px; height: 22px; margin: 1px 0 0; flex-shrink: 0; accent-color: var(--green); }
.nw-box { background: var(--surface2); border: 1px solid var(--line); border-radius: 8px; padding: 18px; }
.nw-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.nw-grid--sm { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; }
.nw-grid + .nw-grid { margin-top: 16px; }
.nw-field { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--muted2); }
.nw-field--narrow { max-width: 260px; }
.nw-input, .nw-select { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid var(--input-line); border-radius: 6px; font-size: 15px; font-weight: 400; color: var(--head); background: var(--surface2); }
.nw-input:focus, .nw-select:focus { outline: none; border-color: var(--blue-text); box-shadow: 0 0 0 3px rgba(46, 154, 211, 0.15); }
.nw-input[readonly] { background: var(--line2); }
.nw-input.is-invalid, .nw-select.is-invalid { border-color: var(--err-text); }
.nw-field__error { font-size: 12px; font-weight: 700; color: var(--err-text); }
.nw-field__error:empty { display: none; }
.nw-zip-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.nw-zip-row .nw-field { flex: 0 1 200px; }
.nw-zip-row__hint { flex: 1 1 220px; font-size: 12.5px; color: var(--muted); line-height: 1.5; padding-bottom: 12px; }
.nw-addr-list { margin-top: 14px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; max-height: 320px; overflow-y: auto; }
.nw-addr-item { display: block; width: 100%; text-align: left; appearance: none; border: 0; border-bottom: 1px solid var(--line2); background: var(--surface2); padding: 13px 16px; font-size: 14px; color: var(--head); cursor: pointer; min-height: 46px; font-family: inherit; }
.nw-addr-item:hover { background: var(--ok-bg); }
.nw-count { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.nw-count__btn { appearance: none; cursor: pointer; min-height: 52px; border-radius: 8px; padding: 10px 8px; border: 2px solid var(--input-line); background: #fff; color: var(--muted2); font-weight: 900; font-size: 14px; font-family: inherit; }
.nw-count__btn.is-active { background: var(--green); color: #fff; border-color: var(--green-dark); }
.nw-children { margin-top: 20px; display: flex; flex-direction: column; gap: 18px; }
.nw-child__title { margin: 0 0 14px; font-size: 14px; font-weight: 900; color: var(--green-text); text-transform: uppercase; }
.nw-summary { background: var(--surface2); border: 2px solid var(--line); border-radius: 10px; padding: 22px; display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between; }
.nw-summary__info { flex: 1 1 220px; font-size: 14px; line-height: 1.6; font-weight: 700; color: var(--muted2); }
.nw-summary__total { margin-top: 4px; font-size: 24px; font-weight: 900; color: var(--green-text); }
.nw-summary .nw-btn { flex: 1 1 260px; }
.nw-alert { border-radius: 8px; padding: 16px 18px; font-size: 13.5px; line-height: 1.55; font-weight: 700; }
.nw-alert--error { background: var(--err-bg); border: 1px solid var(--err-line); color: var(--err-text); }
.nw-alert--ok { background: var(--ok-bg); border: 2px solid var(--green); color: var(--text); font-weight: 400; padding: 26px; font-size: 14.5px; line-height: 1.6; }
.nw-alert--info { background: var(--info-bg); border: 1px solid var(--info-line); color: var(--head-blue); }
.nw-alert--warn { background: #fff7e6; border: 1px solid #f0c98a; color: #7a5200; font-weight: 400; margin-top: 14px; }
.nw-alert--warn strong { color: #5e3f00; }
/* blokada reszty formularza do czasu akceptacji regulaminu */
.nw-form__rest { display: flex; flex-direction: column; gap: 26px; position: relative; }
.nw-form__rest.is-locked > * { opacity: 0.55; filter: grayscale(0.5); }
.nw-form__rest.is-locked::before { content: ""; position: absolute; inset: -8px; background: rgba(78, 85, 91, 0.22); border-radius: 12px; z-index: 2; cursor: not-allowed; }
.nw-locked-msg { display: none; }
.nw-form__rest.is-locked .nw-locked-msg { display: block; position: sticky; top: 12px; z-index: 3; opacity: 1; filter: none; background: var(--head-blue); color: #fff; text-align: center; font-weight: 700; font-size: 14px; padding: 12px 16px; border-radius: 8px; box-shadow: 0 6px 18px rgba(12, 60, 90, 0.25); }
.nw-alert h2 { margin: 0 0 10px; font-size: 20px; color: var(--green-text); font-weight: 900; text-transform: uppercase; }
.nw-alert p { margin: 0 0 8px; }
.nw-alert p:last-child { margin-bottom: 0; }
.nw-alert ul { margin: 6px 0 0; padding-left: 20px; }
.nw-note { margin: 0; font-size: 12px; color: var(--muted); text-align: center; }
.nw-doclinks { list-style: none; margin: 12px 0 0; padding: 0 0 0 34px; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; line-height: 1.5; }
.nw-more { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--dash); }
.nw-more h3 { margin: 0 0 8px; font-size: 13px; font-weight: 900; color: var(--muted2); text-transform: uppercase; }
.nw-more p { margin: 0; font-size: 13.5px; line-height: 1.55; }
.nw-more p + p { margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.nw-help-small { margin: 14px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--muted); }

/* --- płatność, potwierdzenie ---------------------------------------- */
.nw-summary-list { margin-top: 20px; background: var(--surface2); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.nw-summary-row { display: flex; flex-wrap: wrap; gap: 4px 16px; justify-content: space-between; align-items: baseline; padding: 13px 16px; border-bottom: 1px solid var(--line2); }
.nw-summary-row__label { font-size: 13px; font-weight: 700; color: var(--muted); }
.nw-summary-row__value { font-size: 14.5px; font-weight: 700; color: var(--head); text-align: right; }
.nw-summary-row--total { padding: 16px; background: var(--ok-bg); border-bottom: 0; }
.nw-summary-row--total .nw-summary-row__label { font-weight: 900; text-transform: uppercase; letter-spacing: 0.04em; color: var(--green-text); }
.nw-summary-row--total .nw-summary-row__value { font-size: 26px; font-weight: 900; color: var(--green-text); }
.nw-paybox { background: var(--surface2); border: 2px solid var(--line); border-radius: 10px; padding: 22px; display: flex; flex-direction: column; gap: 18px; }
.nw-paybox__head { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between; }
.nw-paybox__head img { flex: 0 1 300px; display: block; width: 300px; max-width: 100%; height: auto; }
.nw-paybox__text { flex: 1 1 240px; font-size: 13.5px; line-height: 1.6; color: var(--muted2); }
.nw-paybox__id { margin: 0; font-size: 12px; color: var(--muted); line-height: 1.5; word-break: break-all; }
.nw-helpbox { background: var(--surface); border-radius: 10px; padding: 20px; font-size: 13px; line-height: 1.6; color: var(--muted); }
.nw-list { margin: 10px 0 0; padding-left: 20px; font-size: 14px; line-height: 1.6; }
.nw-panel__text { margin: 0; font-size: 14px; line-height: 1.6; color: var(--muted2); }
.nw-panel__text + .nw-panel__text { margin-top: 10px; }

/* --- instrukcja zgłoszenia szkody ----------------------------------- */
.nw-channels { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.nw-channel { background: var(--surface); border-top: 3px solid var(--green); border-radius: 0 0 10px 10px; padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.nw-channel__tag { font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.05em; color: var(--green-text); }
.nw-channel__title { font-size: 17px; font-weight: 900; color: var(--head-blue); line-height: 1.3; }
.nw-channel__desc { font-size: 13.5px; line-height: 1.55; color: var(--muted2); flex: 1 1 auto; }
.nw-channel__link { margin-top: 6px; font-size: 13.5px; font-weight: 900; }
.nw-h2 { margin: 0 0 8px; font-size: clamp(21px, 3vw, 32px); font-weight: 900; text-transform: uppercase; color: var(--green-text); line-height: 1.2; }
.nw-h2--blue { color: var(--head-blue); }
.nw-h2--sm { font-size: clamp(20px, 2.6vw, 28px); }
.nw-h2--gap { margin-bottom: 20px; }
.nw-p { margin: 0 0 26px; max-width: 760px; font-size: 15px; line-height: 1.65; }
.nw-p--muted { font-size: 14.5px; color: var(--muted2); max-width: 720px; margin-bottom: 22px; }
.nw-p--tight { margin-bottom: 14px; font-size: 14.5px; }
.nw-process { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.nw-process__item { background: var(--surface2); border: 1px solid var(--line); border-radius: 10px; padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.nw-process__no { width: 40px; height: 40px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 17px; }
.nw-process__title { font-size: 16px; font-weight: 900; color: var(--head-blue); line-height: 1.3; }
.nw-process__desc { font-size: 13.5px; line-height: 1.6; color: var(--muted2); }
.nw-doclist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 2px 26px; }
.nw-doclist li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px dashed var(--dash); font-size: 14px; line-height: 1.55; }
.nw-doclist .nw-features__plus { font-size: 22px; margin-top: 0; }
.nw-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }
.nw-faq { display: flex; flex-direction: column; gap: 10px; }
.nw-faq__item { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.nw-faq__q { appearance: none; width: 100%; text-align: left; display: flex; gap: 12px; justify-content: space-between; align-items: center; border: 0; background: var(--surface); padding: 15px 16px; font-family: inherit; font-size: 14px; font-weight: 700; color: var(--head); cursor: pointer; min-height: 52px; }
.nw-faq__q:hover { background: var(--faq-hover); }
.nw-faq__icon { flex-shrink: 0; color: var(--green-text); font-size: 20px; font-weight: 900; }
.nw-faq__a { padding: 15px 16px; font-size: 13.5px; line-height: 1.6; color: var(--muted2); background: var(--surface2); }
.nw-help { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; }
.nw-help__text { flex: 1 1 300px; }
.nw-help__text h2 { margin: 0 0 8px; font-size: clamp(19px, 2.4vw, 26px); font-weight: 900; color: var(--head-blue); text-transform: uppercase; }
.nw-help__text p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--muted2); }
.nw-help__actions { flex: 0 1 auto; display: flex; flex-wrap: wrap; gap: 12px; }
.nw-mt { margin-top: 18px; }

/* --- druk ------------------------------------------------------------ */
@media print {
  .nw-topbar, .nw-nav, .nw-mobile, .nw-footer, .nw-btn, .nw-linkbtn { display: none !important; }
  .nw-table-wrap { display: block !important; box-shadow: none; }
}

/* Panel administracyjny (list/export) - 2026-09-05, S-17 C16: v1 usunięte, panel na v2 */
.nw-admin__nav { margin: 0 0 16px; font-size: 14px; }
.nw-admin__alert { margin-bottom: 16px; }
.nw-admin__block { margin-bottom: 26px; }
.nw-admin__actions { margin-top: 16px; }
.nw-admin-login { display: flex; flex-direction: column; gap: 14px; max-width: 360px; }
.nw-admin-wrap { overflow-x: auto; background: var(--surface2); border-radius: 6px; box-shadow: 0 10px 30px rgba(12, 60, 90, 0.12); }
.nw-admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nw-admin-table th { background: var(--brand-deep); color: #fff; text-align: left; padding: 10px 12px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; white-space: nowrap; }
.nw-admin-table td { padding: 9px 12px; border-bottom: 1px solid var(--line2); white-space: nowrap; }
.nw-admin-table tbody tr:hover td { background: var(--surface); }
.nw-admin-table input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--green); }
