:root {
  --site-ink: #17212b;
  --site-red: #b51f3a;
  --site-cream: #fffaf3;
  --site-focus: #7a4a00;
}

/* Shared professional-services notice */
.professional-disclaimer { padding: 0; border-top: 1px solid rgba(23,33,43,.18); background: #f2eee7; color: #17212b; }
.professional-disclaimer__inner { width: min(1120px,calc(100% - 40px)); margin-inline: auto; padding: 28px 0; }
.professional-disclaimer strong { display:block; margin-bottom:7px; color:#17212b; font:800 .78rem/1.3 Georgia,"Times New Roman",serif; letter-spacing:.08em; text-transform:uppercase; }
.professional-disclaimer p { margin:0; max-width:1000px; font-size:.94rem; line-height:1.65; }
.professional-disclaimer a { color:#9b1730; font-weight:750; text-underline-offset:3px; }

.pathway-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.pathway-card {
  padding: 30px;
  border: 1px solid rgba(23, 33, 43, 0.12);
  border-left: 5px solid var(--site-red);
  border-radius: 10px;
  background: #fffaf3;
  box-shadow: 0 8px 24px rgba(23, 33, 43, 0.08);
}

.subsection-heading {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}

.faq-section { background: #fff; }
.faq-list { max-width: 850px; margin: 0 auto; }
.faq-list details { border-top: 1px solid rgba(23, 33, 43, 0.18); }
.faq-list details:last-child { border-bottom: 1px solid rgba(23, 33, 43, 0.18); }
.faq-list summary {
  padding: 20px 38px 20px 0;
  color: var(--site-ink);
  cursor: pointer;
  font-size: 1.08rem;
  font-weight: 800;
}
.faq-list details p { padding: 0 26px 20px 0; }

html {
  scroll-padding-top: 96px;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

.agent-name .legal-name {
  display: block;
  margin-top: 3px;
  color: #5f6973;
  font-size: 0.58em;
  font-weight: 650;
  letter-spacing: 0.01em;
}

img,
svg,
video,
iframe {
  max-width: 100%;
}

img {
  height: auto;
}

a,
button,
input,
select,
textarea {
  -webkit-tap-highlight-color: rgba(181, 31, 58, 0.18);
}

a,
p,
li,
td,
th,
h1,
h2,
h3 {
  overflow-wrap: anywhere;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--site-focus);
  outline-offset: 3px;
}

.nav-toggle,
.submenu-toggle {
  font: inherit;
}

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 48px;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid rgba(23, 33, 43, 0.18);
  border-radius: 10px;
  background: #fff;
  color: var(--site-ink);
  cursor: pointer;
  font-weight: 800;
}

.nav-toggle-icon,
.nav-toggle-icon::before,
.nav-toggle-icon::after {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle-icon {
  position: relative;
}

.nav-toggle-icon::before,
.nav-toggle-icon::after {
  position: absolute;
  left: 0;
  content: "";
}

.nav-toggle-icon::before { transform: translateY(-7px); }
.nav-toggle-icon::after { transform: translateY(7px); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before { transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after { transform: rotate(-45deg); }

.submenu-toggle {
  display: none;
}

.mobile-action-bar {
  display: none;
}

table {
  max-width: 100%;
}

@media (max-width: 900px) {
  html {
    scroll-padding-top: 82px;
  }

  body {
    padding-bottom: calc(70px + env(safe-area-inset-bottom));
  }

  .container,
  .page,
  main .container {
    max-width: 100%;
  }

  .navbar {
    position: sticky;
    top: 0;
    z-index: 1000;
  }

  .navbar .nav-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .navbar .logo-section,
  .navbar .logo {
    min-width: 0;
  }

  .navbar .agent-name,
  .navbar .brokerage-name {
    font-size: clamp(1rem, 4.5vw, 1.25rem);
    line-height: 1.1;
  }

  .navbar .agent-title {
    font-size: 0.75rem;
    line-height: 1.25;
  }

  html.js .nav-toggle {
    display: inline-flex;
  }

  html.js .navbar .nav-menu {
    grid-column: 1 / -1;
    display: block;
    width: 100%;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    border-top: 1px solid rgba(23, 33, 43, 0.12);
    transition: max-height 220ms ease, opacity 160ms ease, padding 220ms ease;
  }

  html.js .navbar .nav-menu.is-open {
    max-height: min(72vh, 680px);
    padding: 8px 0 16px;
    overflow-y: auto;
    opacity: 1;
    visibility: visible;
    overscroll-behavior: contain;
  }

  .navbar .nav-menu > li {
    position: relative;
    display: block;
    width: 100%;
  }

  .navbar .nav-link,
  .navbar .nav-menu > li > a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 10px 48px 10px 8px;
    font-size: 1rem;
    white-space: normal;
  }

  html.js .navbar .nav-dropdown .dropdown-menu {
    display: none;
    position: static;
    width: 100%;
    max-height: none;
    margin: 0 0 8px;
    padding: 4px 0 4px 18px;
    overflow: visible;
    opacity: 1;
    visibility: visible;
    transform: none;
    border: 0;
    box-shadow: none;
    background: rgba(23, 33, 43, 0.035);
  }

  html.js .navbar .nav-dropdown.submenu-open .dropdown-menu {
    display: block;
  }

  .navbar .dropdown-menu a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 12px;
    white-space: normal;
  }

  html.js .submenu-toggle {
    display: inline-flex;
    position: absolute;
    top: 4px;
    right: 2px;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: rgba(23, 33, 43, 0.06);
    color: var(--site-ink);
    cursor: pointer;
    font-size: 1.3rem;
    line-height: 1;
  }

  .submenu-toggle::after {
    content: "+";
  }

  .submenu-toggle[aria-expanded="true"]::after {
    content: "−";
  }

  .hero,
  header.hero {
    padding-top: clamp(42px, 10vw, 70px);
    padding-bottom: clamp(42px, 10vw, 70px);
  }

  .hero-text h1,
  .hero h1,
  header h1 {
    font-size: clamp(2rem, 9vw, 3rem);
    line-height: 1.06;
  }

  section {
    scroll-margin-top: 88px;
  }

  .grid-2,
  .grid-3,
  .pathway-grid,
  .footer-grid,
  .footer-bottom,
  .quick-facts,
  .posts-grid {
    grid-template-columns: 1fr !important;
  }

  .hero-buttons,
  .hero-actions,
  .guide-actions {
    align-items: stretch;
  }

  .hero-buttons .btn,
  .hero-actions .btn,
  .guide-actions .btn,
  .search-homes-btn {
    min-height: 48px;
  }

  .card,
  .box,
  .article-box,
  .related-box,
  .cta-box,
  .consultation-card {
    max-width: 100%;
  }

  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  input,
  select,
  textarea {
    min-height: 48px;
    font-size: 16px !important;
  }

  .mobile-action-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1200;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px max(10px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    background: rgba(255, 250, 243, 0.97);
    border-top: 1px solid rgba(23, 33, 43, 0.16);
    box-shadow: 0 -8px 24px rgba(23, 33, 43, 0.12);
    backdrop-filter: blur(12px);
  }

  .mobile-action-bar a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px;
    border: 2px solid var(--site-red);
    border-radius: 9px;
    color: var(--site-red);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
  }

  .mobile-action-bar a:last-child {
    background: var(--site-red);
    color: #fff;
  }
}

@media (max-width: 560px) {
  .container {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .page {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .page > header {
    margin-right: -16px !important;
    margin-left: -16px !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  section {
    padding-top: 52px;
    padding-bottom: 52px;
  }

  .section-header {
    margin-bottom: 34px;
  }

  .hero-buttons,
  .hero-actions,
  .guide-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero-buttons .btn,
  .hero-actions .btn,
  .guide-actions .btn {
    width: 100%;
    text-align: center;
  }

  .card,
  .box,
  .article-box,
  .related-box,
  .cta-box,
  .consultation-card {
    padding: 22px 18px !important;
    border-radius: 12px;
  }

  .stat-number {
    font-size: 2rem;
  }
}

/* Community boundary map */
.community-map {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.55fr);
  width: min(1180px, calc(100% - 40px));
  margin: clamp(24px, 5vw, 68px) auto;
  overflow: hidden;
  border: 1px solid rgba(23,33,43,.16);
  background: #17212b;
  box-shadow: 0 18px 44px rgba(23,33,43,.14);
}
.community-map__intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 5vw, 56px);
  color: #f7f0e5;
}
.community-map__eyebrow {
  color: #d9a441;
  font-size: .75rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.community-map__intro h2 {
  margin: 10px 0 16px;
  padding: 0;
  border: 0;
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.55rem);
  line-height: 1.12;
}
.community-map__intro p { margin: 0 0 24px; color: #d7dee4; line-height: 1.65; }
.community-map__intro a {
  align-self: flex-start;
  color: #fff;
  font-weight: 800;
  text-decoration-color: #d9a441;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.community-map__intro a:hover { color: #f0cd83; }
.community-map__frame { min-height: 430px; background: #e8e3da; }
.community-map__frame iframe { display: block; width: 100%; height: 100%; min-height: 430px; border: 0; }

/* Crawlable Google Maps links retain each guide's existing text palette. */
.map-location-link {
  color: inherit;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.map-location-link:visited { color: inherit; }
.map-location-link:hover { color: inherit; text-decoration-thickness: 2px; }
.map-location-link:focus-visible { color: inherit; }
@media (max-width: 760px) {
  .community-map { grid-template-columns: 1fr; width: min(100% - 28px, 620px); }
  .community-map__frame,
  .community-map__frame iframe { min-height: 360px; }
}
@media print {
  .community-map { display: none; }
}

/* Crawlable bridge from each community guide to the live MLS search. */
.current-listings {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  margin: 28px 0 52px;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid rgba(31, 95, 139, .22);
  border-left: 7px solid #d9a441;
  border-radius: 4px;
  background: #f7fafc;
}
.current-listings h2 { margin: 5px 0 8px; padding: 0; border: 0; font-size: clamp(1.55rem, 3vw, 2.2rem); }
.current-listings p { max-width: 720px; margin: 0; }
.current-listings__label { color: #1f5f8b; font-size: .76rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.current-listings__link { display: inline-flex; gap: 10px; align-items: center; justify-content: center; min-height: 50px; padding: 12px 18px; border-radius: 3px; background: #1f5f8b; color: #fff; font-weight: 800; text-align: center; text-decoration: none; }
.current-listings__link:hover { background: #163f5d; color: #fff; }
.current-listings__link:focus-visible { outline: 3px solid #d9a441; outline-offset: 3px; }
@media (max-width: 720px) {
  .current-listings { grid-template-columns: 1fr; gap: 18px; }
  .current-listings__link { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  .navbar,
  .mobile-action-bar,
  .nav-toggle,
  .submenu-toggle {
    display: none !important;
  }

  body {
    padding-bottom: 0 !important;
  }
}

/* Community guides intentionally change rhythm by place. */
.community-guide .local-spotlight {
  position: relative;
  margin: 28px 0 58px;
  padding: clamp(28px, 5vw, 58px);
  overflow: hidden;
  border: 0;
  border-radius: 2px 32px 2px 32px;
  background: #17212b;
  color: #fffaf3;
}
.community-guide .local-spotlight::after {
  position: absolute;
  right: -45px;
  bottom: -70px;
  width: 190px;
  height: 190px;
  border: 24px solid rgba(255,255,255,.08);
  border-radius: 50%;
  content: "";
}
.community-guide .local-spotlight h2 { max-width: 720px; margin: 8px 0 16px; color: inherit; border: 0; font-size: clamp(1.8rem, 4vw, 3.15rem); }
.community-guide .local-spotlight p { position: relative; z-index: 1; max-width: 780px; margin: 0; font-size: clamp(1.02rem, 2vw, 1.2rem); }
.community-guide .spotlight-label,
.community-guide .section-kicker { display: block; color: #d9a441; font-size: .77rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.community-guide .priority-section { margin: 0 0 70px; padding: clamp(24px, 4vw, 42px); border: 1px solid rgba(23,33,43,.14); background: #fffdf9; box-shadow: 12px 12px 0 rgba(181,31,58,.09); }
.community-guide .priority-section h2 { margin-top: 8px; }
.community-guide .faq-group { max-width: 860px; margin-left: auto; margin-right: auto; }

.community-school-led .local-spotlight { border-radius: 0; background: #173f35; }
.community-school-led .priority-section { border-left: 8px solid #b18b45; box-shadow: none; background: #f5f0e5; }
.community-urban .local-spotlight { margin-right: -8vw; padding-right: 12vw; border-radius: 0; background: #29252d; transform: rotate(-.45deg); }
.community-urban .local-spotlight > * { transform: rotate(.45deg); }
.community-urban .priority-section { border: 0; border-top: 6px solid #b51f3a; background: #f2eee9; box-shadow: none; }
.community-industrial .local-spotlight { border-radius: 0; background: #273137; border-left: 14px solid #bd6f47; }
.community-industrial .priority-section { background: repeating-linear-gradient(-45deg,#fff,#fff 18px,#f7f4ef 18px,#f7f4ef 36px); box-shadow: none; }
.community-rural .local-spotlight { border-radius: 42px 4px; background: #34462f; }
.community-rural .priority-section { border-radius: 0 38px 0 38px; border-color: #8b9a75; background: #f4f2e8; box-shadow: none; }
.community-notebook .local-spotlight { border-radius: 3px; background: #f0e5d2; color: #2d2923; box-shadow: 9px 11px 0 #2d2923; }
.community-notebook .local-spotlight::after { border-color: rgba(45,41,35,.08); }
.community-notebook .priority-section { border: 0; border-left: 3px solid #b51f3a; box-shadow: none; }
.community-split-guide .local-spotlight { width: min(88%, 820px); margin-left: auto; border-radius: 36px 3px; background: #203b50; }
.community-split-guide .priority-section { width: min(92%, 900px); border-radius: 3px 28px; box-shadow: -12px 12px 0 rgba(31,95,139,.10); }
.community-field-notes .local-spotlight { border-radius: 0; border-top: 9px solid #d9a441; background: #263039; }
.community-field-notes .priority-section { border: 0; border-bottom: 2px solid #17212b; box-shadow: none; }

@media (min-width: 820px) {
  .community-guide .faq-group-2 { margin-left: 0; }
  .community-guide .faq-group-3 { margin-right: 0; }
  .community-notebook .priority-section,
  .community-rural .priority-section { margin-left: 8%; }
  .community-field-notes .priority-section { margin-right: 8%; }
}
@media (max-width: 560px) {
  .community-guide .local-spotlight { margin-bottom: 38px; }
  .community-guide .priority-section { margin-bottom: 45px; padding: 24px 18px; }
  .community-urban .local-spotlight { margin-right: 0; transform: none; }
  .community-urban .local-spotlight > * { transform: none; }
}
