@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Montserrat:wght@500;600;700;800&display=swap');

/* Same brand tokens as the public Geisser Solutions website. */
:root {
  color-scheme: light;
  font-family: 'DM Sans', Arial, sans-serif;
  color: #16232f;
  background: #fff;
  --navy: #083e79;
  --gold: #f4c543;
  --ink: #16232f;
  --green: var(--navy);
  --muted: #53616e;
  --border: #d8dee3;
  --quiet: #f5f7f8;
}

body { background: #fff; color: var(--ink); line-height: 1.6; }
h1, h2, h3 { font-family: Montserrat, Arial, sans-serif; color: var(--ink); font-weight: 700; }
a { color: var(--navy); }
a:hover { color: #0058a7; }
:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

body > header { max-width: none; background: #fff; border-bottom: 1px solid rgba(8, 62, 121, .14); padding-inline: max(24px, calc((100vw - 1160px) / 2)); }
.area-label { color: var(--navy); font-weight: 700; }
.header-right a, .header-right .text-button { font-weight: 700; }
.site-return .text-button { font-weight: 700; }
.eyebrow { color: var(--navy); letter-spacing: .12em; text-transform: uppercase; }
.intro .lede { color: var(--muted); }
.contact-detail, .auth-form { border-color: var(--border); }

.primary, .secondary { border-radius: 3px; border-color: var(--navy); font-weight: 700; }
.primary { background: var(--navy); color: #fff; }
.primary:hover { background: #0058a7; color: #fff; }
.secondary { color: var(--navy); background: #fff; }
.secondary:hover, .map-command:hover { background: #eef4f8; color: var(--navy); }
.text-button { color: var(--navy); font-weight: 700; }
input:not([type=checkbox]), textarea, .search-form select, .map-location-label select, .estate-filters select { border-color: #b4c5d5; color: var(--ink); }
input[type=checkbox], input[type=radio], .filter-check input, .map-toggles input { accent-color: var(--navy); }

.portal-nav { border-color: var(--border); }
.portal-nav a { color: #334557; font-weight: 700; }
.portal-nav a:hover, .portal-nav a:focus-visible { color: var(--navy); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.tabs .active { border-bottom-color: var(--gold); color: var(--navy); }
.tabs span { background: #eef4f8; }
.approved { background: #e7f0fa; color: var(--navy); }
.property-item { border-color: var(--border); border-radius: 3px; }
.property-photo, .vehicle-photos img { background: var(--quiet); }
.catalog-sidebar, .estate-map, .property-attributes, .saved-map-searches, .filter-actions { border-color: var(--border); }
.filter-actions { background: #fff; }
.results-heading span, .property-facts, .map-privacy, .map-count, .map-status, .property-extra dt { color: var(--muted); }
.map-command, .location-result { color: var(--navy); border-color: #b4c5d5; }
.location-result { background: #eef4f8; }
.map-canvas { background: #eaf0f5; }
.estate-map-marker, .estate-cluster { background: var(--navy); }
.estate-price-marker { border-color: var(--navy); color: var(--navy); }
.map-command[aria-pressed=true] { background: #eef4f8; border-color: var(--navy); color: var(--navy); }
.property-item.map-selected { outline-color: var(--gold); }
.map-empty-zone { background: var(--quiet); color: var(--muted); }
.photo-viewer button { color: var(--navy); }

body > footer { max-width: none; background: #0d2232; color: #dce5ea; border-top: 0; padding: 28px max(24px, calc((100vw - 1160px) / 2)); }
body > footer a { color: #dce5ea; }
body > footer a:hover { color: var(--gold); }

@media (max-width: 800px) {
  body > header { background: #fff; padding-inline: 24px; }
  body > footer { padding-inline: 24px; }
}
@media (max-width: 450px) {
  body > header, body > footer { padding-inline: 20px; }
}
