.kontakt-grid { display:grid; grid-template-columns: .9fr 1.1fr; gap:48px; align-items:stretch; }
.form-panel { display:flex; flex-direction:column; }
#ktForm { flex:1; display:flex; flex-direction:column; gap:16px; }
/* Para pol (imie/firma, e-mail/telefon): .grid2 ROZPINA sie na caly wiersz
   nadrzednego .fgrid (inaczej siedzialaby w jednej z jego dwoch kolumn i pola
   mialyby cwierc szerokosci formularza). */
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; grid-column:1 / -1; }
/* Pola tekstowe/selecty wypelniaja CALA szerokosc swojej kolumny siatki. */
.fgrid .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fgrid .field select,
.fgrid .field textarea { width:100%; box-sizing:border-box; }
.f-grow { flex:1; }
.f-grow textarea { height:100%; min-height:120px; resize:vertical; }
.msg-meta { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:6px; }
.msg-count { font-size:12px; color:var(--muted); margin-left:auto; font-variant-numeric:tabular-nums; }
.msg-err { display:none; color:var(--magenta); font-weight:600; font-size:12.5px; }
.msg-meta.over .msg-err { display:block; }
.msg-meta.over .msg-count { color:var(--magenta); font-weight:600; }
.input.err { box-shadow: inset 0 0 0 2px var(--magenta); background:#fff; }
@media(max-width:480px){ .grid2{ grid-template-columns:1fr; } }
@media(max-width:880px){ .kontakt-grid{ grid-template-columns:1fr; gap:34px; } }

.kbox { display:flex; gap:15px; align-items:flex-start; padding:22px 24px; border-radius:var(--r-lg); background:var(--bg-soft); box-shadow: inset 0 0 0 1px var(--line); }
.kbox + .kbox { margin-top:16px; }
.kbox .ki { width:46px; height:46px; border-radius:12px; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center; flex:none; }
.kbox .t { font-family:var(--font-display); font-weight:700; font-size:15px; }
.kbox .s { font-size:14px; color:var(--ink-2); margin-top:3px; line-height:1.5; }
.kbox .s b { color:var(--ink); }

.form-panel { background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); padding:38px; }
.fgrid { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.fgrid .full { grid-column:1 / -1; }
@media(max-width:480px){ .fgrid{ grid-template-columns:1fr; } }

.map { aspect-ratio: 1 / 1; border-radius:var(--r-lg); margin-top:14px; overflow:hidden; position:relative; }
/* Tooltip HTML nad kropkami mapy Polski (tresc i pozycje ustawia skrypt w kontakt.html). */
.map-tip { position:absolute; display:none; transform:translate(-50%, -140%); pointer-events:none; z-index:5;
           background:#062a4d; color:#fff; font-size:13px; font-weight:600; line-height:1; white-space:nowrap;
           padding:7px 12px; border-radius:8px; box-shadow:0 6px 18px rgba(6,42,77,.35); }
.map-tip::after { content:''; position:absolute; left:50%; top:100%; transform:translateX(-50%);
                  border:6px solid transparent; border-top-color:#062a4d; }
/* Kropki: lekkie powiekszenie na hover (CSS `r` nadpisuje atrybut w nowych przegladarkach).
   cursor:default - kropki sa INFORMACYJNE, nie klikalne. */
.map svg circle[data-miasto] { transition: r .12s ease; cursor:default; }
.map svg circle[data-miasto]:hover { r:9; }
.map svg circle.wwa:hover { r:12; }
.venue-alert { display:flex; gap:13px; align-items:flex-start; margin-top:20px; padding:14px 18px; border-radius:var(--r); background:#fdeaea; box-shadow: inset 0 0 0 1px #f3c9c9; color:#a3232a; font-size:14px; line-height:1.45; }
.page-hero p.lead { max-width:none; }
.venue-alert b { color:#8f1c22; }
.va-ic { width:34px; height:34px; border-radius:9px; background:#fff; color:#d83a3f; display:flex; align-items:center; justify-content:center; flex:none; }

/* file upload */
.file-drop { display:flex; align-items:center; gap:14px; padding:16px 18px; border:1.5px dashed var(--line); border-radius:var(--r-sm); background:var(--bg-soft); cursor:pointer; transition:border-color .15s, background .15s; }
.file-drop:hover, .file-drop.over { border-color:var(--blue); background:var(--blue-tint); }
.fd-ic { width:42px; height:42px; border-radius:10px; background:#fff; color:var(--blue); display:flex; align-items:center; justify-content:center; flex:none; box-shadow:var(--shadow-sm); }
.fd-text { font-size:13.5px; color:var(--ink-2); line-height:1.4; }
.fd-text b { color:var(--ink); font-family:var(--font-display); }
.fd-hint { font-size:12px; color:var(--muted); }
.fd-name { font-size:13px; color:var(--blue-700); font-weight:600; margin-top:8px; display:none; }
.fd-name.show { display:flex; align-items:center; gap:8px; }
.fd-name .x { color:var(--muted); cursor:pointer; font-weight:700; }
.fd-name.err { color:var(--magenta); }

/* reCAPTCHA v2-style widget */
.recaptcha { display:inline-flex; align-items:center; gap:12px; background:#f9f9f9; border:1px solid #d3d3d3; border-radius:3px; padding:12px 14px; width:304px; max-width:100%; box-shadow:0 1px 2px rgba(0,0,0,.06); cursor:pointer; user-select:none; }
.rc-box { position:relative; width:26px; height:26px; border:2px solid #c1c1c1; border-radius:3px; background:#fff; flex:none; }
.rc-check { position:absolute; inset:0; margin:auto; opacity:0; transform:scale(.5); transition:.18s; }
.recaptcha[aria-checked="true"] .rc-check { opacity:1; transform:scale(1); }
.rc-spin { position:absolute; inset:1px; border:2px solid #4285f4; border-top-color:transparent; border-radius:50%; opacity:0; }
.recaptcha.loading .rc-box { border-color:transparent; }
.recaptcha.loading .rc-spin { opacity:1; animation:rcspin .7s linear infinite; }
@keyframes rcspin { to { transform:rotate(360deg); } }
.rc-label { font-size:14px; color:#000; font-family:Arial, sans-serif; }
.rc-brand { margin-left:auto; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1px; }
.rc-brand-t { font-size:10px; color:#555; font-family:Arial, sans-serif; }
.rc-brand-s { font-size:8px; color:#999; font-family:Arial, sans-serif; }
.rc-err { display:none; color:var(--magenta); font-weight:600; font-size:12.5px; margin-top:8px; }
.rc-err.show { display:block; }
.rc3-note { font-size:11.5px; color:var(--muted); line-height:1.5; margin:0; }
.rc3-note a { color:var(--blue-700); text-decoration:underline; }
.rc3-badge { position:fixed; right:14px; bottom:14px; z-index:60; width:64px; height:64px; border-radius:6px; background:#4a90e2; color:#fff; box-shadow:0 3px 10px rgba(0,0,0,.25); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
.rc3-badge svg { width:30px; height:30px; }
.rc3-badge span { font-size:8px; font-family:Arial, sans-serif; letter-spacing:.02em; }

.form-ok { display:none; text-align:center; padding:30px 10px; }
.form-ok.show { display:block; }
.form-ok .okic { width:64px; height:64px; border-radius:50%; background:var(--lime-soft); color:#5f6b00; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }

/* Powiekszony checkbox zgody (RODO) — czytelniejszy do kliknięcia */
.fgrid input[type="checkbox"] { min-width:16px !important; min-height:16px !important; }
