
/* IPB – clean 2‑column form layout + red focus */
.ipb-form{
  display:grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    "meno email"
    "telefon typ"
    "sprava sprava"
    "file submit"
    "gdpr gdpr"
    "status status";
  gap: 18px 22px;
}
.ipb-form input[name="meno"]{ grid-area: meno; }
.ipb-form input[name="email"]{ grid-area: email; }
.ipb-form input[name="telefon"]{ grid-area: telefon; }
.ipb-form select[name="typ"], .ipb-form select[name="vyber"]{ grid-area: typ; }
.ipb-form textarea[name="sprava"]{ grid-area: sprava; }
.ipb-form input[type="file"]{ grid-area: file; }
.ipb-form [type="submit"]{ grid-area: submit; justify-self:start; align-self:start; }
.ipb-form label:has(input[name="gdpr"]){ grid-area: gdpr; display:flex; align-items:center; gap:10px; }
.ipb-form input[name="gdpr"]{ grid-area: gdpr; }
.ipb-form #form-status{ grid-area: status; }
:root{ --ipb-red:#e11d1d; --field-bord:#232a32; --field-bg:#0f1318; }
.ipb-form input, .ipb-form select, .ipb-form textarea{
  padding:14px 14px; border-radius:12px; background:var(--field-bg); border:2px solid var(--field-bord);
  color:#e9edf3; transition:border-color .2s ease, box-shadow .2s ease;
}
.ipb-form input:focus-visible, .ipb-form select:focus-visible, .ipb-form textarea:focus-visible{
  outline:none; border-color:var(--ipb-red); box-shadow:0 0 0 4px rgba(225,29,29,.15);
}
@media (max-width: 980px){
  .ipb-form{
    grid-template-columns: 1fr;
    grid-template-areas:
      "meno"
      "email"
      "telefon"
      "typ"
      "sprava"
      "file"
      "gdpr"
      "submit"
      "status";
  }
  .ipb-form [type="submit"]{ justify-self:stretch; }
}

/* Toast-like alert for form errors */
.form-alert, .form-status.err.show {
  background: rgba(224,38,43,0.10);
  border: 1px solid rgba(224,38,43,0.35);
  border-left: 4px solid #ff3b3b;
  border-radius: 14px;
  padding: 16px 18px;
  color: #ffd9d9;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  backdrop-filter: saturate(120%) blur(2px);
  margin-top: 18px;
}
/* menu underline for active */
#mainnav a.active{
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  text-decoration: underline;
  text-decoration-color: #ff3b3b;
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
}

/* ====== IPB – krajší chybový panel pod formulárom (override) ====== */
#formErrors.form-errors,
.form-errors,
#form-status.err.show,
#form-status.error,
#ipb-fullform .form-status.err.show {
  background: rgba(224, 38, 43, 0.10) !important;
  border: 1px solid rgba(224, 38, 43, 0.35) !important;
  border-left: 4px solid #ff3b3b !important;
  border-radius: 14px !important;
  padding: 16px 18px !important;
  color: #ffd9d9 !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.25) !important;
  backdrop-filter: saturate(120%) blur(2px);
  max-width: 100%;
  margin-top: 18px !important;
}
#formErrors h4,
#ipb-fullform .form-status.err.show h4 {
  margin: 0 0 8px 0 !important;
  font-weight: 700 !important;
  color: #ffb3b3 !important;
  letter-spacing: .2px;
}
#formErrors ul { margin: 8px 0 0 20px !important; padding: 0 !important; }
#formErrors li { margin: 6px 0 !important; line-height: 1.55 !important; list-style: disc !important; }
#formErrors li::marker { color: #ff3b3b !important; }
#formErrors.form-errors *,
#ipb-fullform .form-status.err.show * { box-shadow: none !important; }

/* ====== IPB – aktívna položka v menu len podčiarknutá (override) ====== */
#mainnav a.active,
header #mainnav a.active,
#mainnav a[aria-current="page"],
#mainnav a[aria-current="true"] {
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: underline !important;
  text-decoration-color: var(--brand) !important;
  text-underline-offset: 6px !important;
  text-decoration-thickness: 2px !important;
}
#mainnav a.active::before,
#mainnav a.active::after,
#mainnav a[aria-current="page"]::before,
#mainnav a[aria-current="true"]::after {
  content: none !important;
  display: none !important;
  all: unset !important;
}
#mainnav a:hover {
  text-decoration: underline;
  text-decoration-color: var(--brand);
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
}

/* --- IPB NAV FIX: force only underline for hover/active, keep text color --- */
#mainnav a,
#mainnav a:visited,
#mainnav a:focus,
#mainnav a:active {
  color: inherit !important;
  outline: none !important;
  text-shadow: none !important;
}
#mainnav a:hover {
  text-decoration: underline;
  text-decoration-color: var(--brand);
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
}
#mainnav a.active,
header #mainnav a.active,
#mainnav a[aria-current="page"],
#mainnav a[aria-current="true"] {
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-decoration: underline !important;
  text-decoration-color: var(--brand) !important;
  text-underline-offset: 6px !important;
  text-decoration-thickness: 2px !important;
}
#mainnav a.active::before,
#mainnav a.active::after,
#mainnav a[aria-current="page"]::before,
#mainnav a[aria-current="true"]::after {
  content: none !important;
  display: none !important;
}
