/*
 * Súbor: css/components/contact-locations.css
 * Obsah: Rozloženie kontaktnej sekcie s oblasťami pôsobenia, zoznamom lokalít, mapou a formulárom vrátane mobilného zobrazenia.
 * Použitie: index.html, sluzba-betonove_a_oporne_mury.html, sluzba-havarie.html, sluzba-pripojky.html.
 * Zapojenie: <link rel="stylesheet" href="css/components/contact-locations.css">; zachovaj pozíciu v hlavičke podľa css/README.md.
 * Závislosti: HTML triedy a selektory uvedené v pravidlách nižšie, css/general/base.css a farebné premenné témy stránky.
 */
/* Shared contact and coverage section for service pages. */
.contact-section.contact-locations {
  min-height: 100vh;
  min-height: 100svh;
  padding-block: clamp(48px, 6vw, 88px);
  scroll-margin-top: 80px;
}

.contact-locations .contact-locations__heading {
  max-width: 1000px;
  margin-bottom: 36px;
}

.contact-locations .contact-locations__heading h2 {
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.15;
}

.contact-locations .contact-grid {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: stretch;
  gap: clamp(28px, 4vw, 64px);
}

.contact-locations__coverage { min-width: 0; }
.contact-locations__coverage h3 { margin-bottom: 16px; }
.contact-locations .location-map { margin: 28px auto; }
.contact-locations .contact-details { font-size: 16px; gap: 20px; }

.contact-locations .contact-form {
  display: flex;
  flex-direction: column;
  min-height: max(640px, calc(100vh - 160px));
  min-height: max(640px, calc(100svh - 160px));
  padding: clamp(24px, 3vw, 44px);
}

.contact-locations .contact-form h3 { font-size: 26px; margin-bottom: 24px; }
.contact-locations .form-grid { flex: 1; gap: 22px; grid-template-rows: auto auto auto 1fr; }
.contact-locations .field { gap: 8px; align-content: start; }
.contact-locations .field label { font-size: 15px; }
.contact-locations .field input:not([type="checkbox"]),
.contact-locations .field textarea { min-height: 52px; padding: 12px 14px; }
.contact-locations .field--message { display: flex; flex-direction: column; }
.contact-locations .field--message textarea { flex: 1; min-height: 180px; }
.contact-locations .contact-form .btn { min-height: 52px; margin-top: 24px; font-size: 16px; }

@media (max-width: 767px) {
  .contact-section.contact-locations { padding-block: 40px; }
  .contact-locations .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .contact-locations .contact-form {
    grid-row: 1;
    min-height: 100vh;
    min-height: 100svh;
    padding: 24px 20px;
  }
  .contact-locations .form-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; gap: 20px; }
  .contact-locations .contact-details { grid-template-columns: minmax(0, 1fr); font-size: 15px; }
}
