/* A warmer, distinctive editorial palette with larger, easier-to-scan type. */
:root {
  --navy: #15293a;
  --deep-navy: #102335;
  --blue: #196f77;
  --premium-blue: #287e82;
  --premium-cyan: #e7ad68;
  --muted: #586d79;
  --line: #e1e6de;
  --display: 'Avenir Next', 'Trebuchet MS', sans-serif;
  --body-font: 'Avenir Next', 'Trebuchet MS', Arial, sans-serif;
  font-size: 17px;
}
body {
  color: #183145;
  background: #f6f5ef;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.72;
  letter-spacing: .005em;
}
.site-header {
  background: rgba(250, 249, 244, .97);
  border-bottom-color: #e1e5dd;
}
.brand-name { color: #17334a; }
.brand-name > span { color: #16727a; }
.brand-mark span { background: #16727a; }
.brand-mark span:nth-child(3) { background: #d99b55; }
.main-nav a, .nav-dropdown > summary { color: #395467; }
.main-nav a:hover, .text-link:hover { color: #126d75; }
.button-dark { background: #17354b; }
.button-dark:hover { background: #234a61; }
.button-primary { background: #13727a; box-shadow: 0 9px 24px rgba(15, 97, 105, .2); }
.button-primary:hover { background: #0e5d65; }
.hero {
  background: radial-gradient(ellipse at 77% 36%, rgba(221, 162, 91, .18), transparent 38%), linear-gradient(118deg, #102335 0%, #17374a 60%, #1e4b57 100%);
}
.hero h1 { font-size: clamp(52px, 5.8vw, 76px); letter-spacing: -3.6px; line-height: 1.08; }
.hero h1 span, .city-hero h1 span, .region-hero h1 span { color: #e8b46f; }
.hero-lead { font-size: 17px; line-height: 1.8; }
.hero .eyebrow { color: #d1d9d8; }
.hero-foot { font-size: 10px; letter-spacing: 1.3px; }
.hero-foot b { color: #e8b46f; }
.trust-note { font-size: 12px; }
.value-item h3 { font-size: 14px; }
.value-item p { font-size: 12px; }
.value-icon { color: #146e75; background: #e7f1ed; }
.section-heading h2, .location-intro h2, .faq-layout h2, .contact-copy h2 { letter-spacing: -1.4px; }
.section-heading > p { font-size: 15px; }
.plan-card h3 { font-size: 20px; }
.plan-desc { font-size: 13px; line-height: 1.75; }
.spec-list div { font-size: 12px; }
.plan-link { font-size: 13px; }
.locations-section { background: linear-gradient(125deg, #102335, #17394c 68%, #20535a); }
.location-intro > p { font-size: 15px; }
.region-pills a, .region-pills span { font-size: 11px; }
.location-panel h3 { font-size: 22px; }
.search-field input, .select-wrap select { font-size: 12px; }
.location-name b { font-size: 13px; }
.location-name span, .location-region { font-size: 10px; }
.location-status { font-size: 10px; }
.location-disclaimer { font-size: 11px; }
.step h3 { font-size: 17px; }
.step p { font-size: 13px; }
.faq-list summary { font-size: 15px; }
.faq-list details p { font-size: 13px; }
.contact-form label { font-size: 12px; }
.contact-form input, .contact-form select, .contact-form textarea { font-size: 13px; }
.form-legal { font-size: 10px; }
.page-hero {
  background: radial-gradient(ellipse at 82% 50%, #e3eeea 0, rgba(246,245,239,0) 48%), #f6f5ef;
  border-bottom-color: #e1e6de;
}
.page-hero h1 { font-size: clamp(43px, 5vw, 64px); letter-spacing: -2.4px; }
.page-hero h1 span { color: #16727a; }
.page-hero > .container > p { font-size: 16px; }
.page-content { background: #f6f5ef; }
.eyebrow { color: #607782; font-size: 11px; letter-spacing: 1.6px; }
.article-card h2 { font-size: 30px; }
.article-card > p, .legal-article > p, .legal-article li { font-size: 14px; }
.side-card h3, .feature-card h2 { font-size: 17px; }
.side-card p, .feature-card p { font-size: 13px; }
.notice-box { background: #eef4ef; border-color: #dbe7dc; border-left-color: #16727a; }
.notice-box > b { font-size: 14px; }
.notice-box p { font-size: 12px; }
.directory-card h2 { font-size: 15px; }
.directory-card p { font-size: 12px; }
.directory-card small { font-size: 10px; }
.city-hero, .region-hero { background: radial-gradient(ellipse at 82% 40%, rgba(231, 173, 104, .16), transparent 37%), linear-gradient(120deg, #102335, #17394c 60%, #20535a); }
.city-hero-copy > p, .region-hero > .container > p { font-size: 15px; }
.city-content-main > p { font-size: 14px; }
.city-content-main h2 { font-size: 33px; }
.city-feature-grid b { font-size: 12px; }
.city-feature-grid p { font-size: 11px; }
.city-sidebar h3 { font-size: 19px; }
.city-sidebar p { font-size: 12px; }
.nearby-card b { font-size: 12px; }
.nearby-card small { font-size: 10px; }
.search-result-card h3 { font-size: 16px; }
.search-result-card p { font-size: 12px; }
.search-result-card > span { font-size: 9px; }
.search-result-card > b { font-size: 10px; }
.nav-direct, .nav-dropdown > summary { font-size: 12px; }
.mega-column a { font-size: 12px; }
.mega-kicker, .mega-column > b { font-size: 9px; }
.mega-intro p { font-size: 12px; }
.header-search small { font-size: 11px; }
.site-search-form {
  border-color: #dce5e3;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 12px 32px rgba(19, 50, 60, .11);
}
.site-search-form .search-field > span { color: #16727a; }
.site-search-form .search-field input { color: #183145; font-size: 14px; }
.site-search-form .search-field input::placeholder { color: #677d88; opacity: 1; }
.site-search-form .button { font-size: 12px; }
.site-footer { background: #fdfcf8; }
.footer-links b { font-size: 11px; }
.footer-links a, .footer-bottom { font-size: 10px; }
@media (max-width: 900px) {
  :root { font-size: 16px; }
  .hero h1 { font-size: clamp(49px, 7vw, 65px); }
  .section-heading > p { font-size: 14px; }
}
@media (max-width: 680px) {
  body { font-size: 15px; }
  .hero h1 { font-size: 49px; letter-spacing: -2.8px; }
  .hero-lead { font-size: 15px; }
  .nav-direct, .nav-dropdown > summary { font-size: 13px; }
  .mega-column a { font-size: 11px; }
  .site-search-form .search-field input { font-size: 13px; }
  .hero-foot { font-size: 8px; }
  .page-hero h1 { font-size: 42px; letter-spacing: -2px; }
  .page-hero > .container > p { font-size: 14px; }
  .section-heading h2, .location-intro h2, .faq-layout h2 { font-size: 35px; }
  .section-heading > p { font-size: 13px; }
  .location-intro > p { font-size: 14px; }
  .location-name b { font-size: 12px; }
  .faq-list summary { font-size: 13px; }
  .city-hero h1, .region-hero h1 { font-size: 43px; }
  .city-hero-copy > p, .region-hero > .container > p { font-size: 13px; }
  .city-content-main > p { font-size: 13px; }
  .city-content-main h2 { font-size: 27px; }
  .site-footer .footer-links a { font-size: 10px; }
}
