/* B-Line Capital brand layer: the look of the original WordPress theme, applied on top of locations.css. */
:root {
  --navy: #003259; --cyan: #00a7db; --slate: #5b7e96; --green: #00a27f; --lime: #d0dd28; --orange: #dd5f13; --dark: #212121;
  --ink: #003259; --go: #00a27f;
  --head: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}
h1, h2, h3, .btn, .btn-pill, .topnav, summary { font-family: var(--head); }
h1, h2 { letter-spacing: -0.005em; }
a { color: var(--navy); }
.btn { background: var(--green); border-color: var(--green); border-radius: 999px; text-transform: uppercase; letter-spacing: 0.02em; font-size: 0.9rem; font-weight: 700; }
.btn:hover { background: #008a6c; border-color: #008a6c; }
.btn-quiet { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-quiet:hover { background: var(--navy); color: #fff; }

/* ---------- header ---------- */
.brand-header { background: #fff; border-bottom: 1px solid #e6eaee; position: sticky; top: 0; z-index: 30; }
.brand-header .header-row { display: flex; align-items: center; gap: 1.2rem; min-height: 74px; }
.brand-header .logo img { height: 50px; width: auto; display: block; }
.topnav { margin-left: auto; }
.topnav > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0.2rem; }
.topnav a, .topnav summary { display: block; padding: 1.55rem 0.7rem 1.45rem; color: var(--navy); text-decoration: none; font-size: 0.86rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; border-bottom: 4px solid transparent; cursor: pointer; white-space: nowrap; }
.topnav a:hover, .topnav summary:hover, .topnav a[aria-current="page"], .topnav .is-current summary { border-bottom-color: var(--green); }
.topnav summary { list-style: none; }
.topnav summary::-webkit-details-marker { display: none; }
.topnav summary::after { content: ""; display: inline-block; margin-left: 0.4rem; border: 4px solid transparent; border-top-color: currentColor; transform: translateY(2px); }
.topnav .has-sub { position: relative; }
.topnav .sub > ul { position: absolute; left: 0; top: 100%; min-width: 300px; list-style: none; margin: 0; padding: 0.5rem 0; background: #fff; border-top: 3px solid var(--green); box-shadow: 0 14px 30px -12px rgba(0, 50, 89, 0.35); z-index: 40; }
.topnav .sub > ul a { padding: 0.6rem 1.1rem; border: 0; text-transform: none; font-size: 0.95rem; font-weight: 500; }
.topnav .sub > ul a:hover { background: #f1f6f9; }
.topnav .sub-all a { color: var(--green); font-weight: 700; }
.btn-pill { display: inline-block; background: var(--green); color: #fff !important; text-decoration: none; text-transform: uppercase; font-weight: 700; font-size: 0.84rem; letter-spacing: 0.02em; padding: 0.7rem 1.3rem; border-radius: 999px; white-space: nowrap; }
.btn-pill:hover { background: #008a6c; }
.brand-header .lang-switch { font-family: var(--head); font-size: 0.82rem; font-weight: 600; border-radius: 999px; padding: 0.45rem 0.8rem; }
.brand-header .menu { display: none; }
@media (max-width: 1180px) {
  .topnav { display: none; }
  .brand-header .menu { display: block; position: static; }
  .brand-header .btn-pill { margin-left: auto; }
  .brand-header .menu > summary { font-family: var(--head); font-weight: 700; text-transform: uppercase; font-size: 0.85rem; color: var(--navy); cursor: pointer; padding: 0.5rem 0.2rem; }
  .brand-header .menu nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 3px solid var(--green); box-shadow: 0 18px 30px -18px rgba(0,0,0,.35); padding: 0.4rem 0 0.8rem; }
  .brand-header .menu nav ul { list-style: none; margin: 0 auto; padding: 0 1.25rem; max-width: 1180px; }
  .brand-header .menu nav a { display: block; padding: 0.65rem 0; border-bottom: 1px solid #edf1f4; color: var(--navy); text-decoration: none; font-weight: 600; }
  .brand-header .header-row { position: relative; }
}
@media (max-width: 560px) {
  .brand-header .logo img { height: 38px; }
  .brand-header .btn-pill { padding: 0.55rem 0.9rem; font-size: 0.74rem; }
  .brand-header .lang-switch { padding: 0.35rem 0.55rem; font-size: 0.74rem; }
  .brand-header .header-row { gap: 0.6rem; }
}

/* ---------- footer ---------- */
.brand-footer { background: var(--dark); color: #e9e9e9; margin-top: 0; }
.brand-footer a { color: #fff; }
.brand-footer .f-grid { display: grid; grid-template-columns: 1.1fr 1.2fr; gap: 2rem 3rem; padding-top: 3rem; padding-bottom: 2.4rem; align-items: start; }
.brand-footer .f-grid.has-form { grid-template-columns: 0.9fr 0.9fr 1.6fr; }
.f-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; }
.f-contact li { display: flex; align-items: center; gap: 0.9rem; font-family: var(--head); font-size: 0.95rem; }
.f-contact li > span:last-child, .f-contact a { color: #fff; }
.f-contact a[href^="/"] { color: var(--cyan); }
.f-ico { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--lime); display: grid; place-items: center; }
.f-ico svg { width: 1.2rem; height: 1.2rem; fill: var(--dark); }
.f-brand img { height: 40px; width: auto; }
.f-brand p { font-family: var(--head); font-size: 0.9rem; margin: 0.9rem 0 0; }
.f-brand .f-disc { font-family: var(--serif); font-size: 0.85rem; color: #bdbdbd; line-height: 1.55; }
.f-brand .f-disc a { color: #fff; }
.brand-footer .footer-base { border-top: 1px solid #3a3a3a; padding-top: 1.1rem; padding-bottom: 1.6rem; }
.brand-footer .footer-base p { margin: 0; font-size: 0.82rem; color: #9b9b9b; font-family: var(--head); }
.brand-footer .footer-base a { color: #9b9b9b; }
.f-form .form { max-width: none; gap: 0.8rem; }
.f-form .fields { gap: 0.8rem; }
.f-form .field { color: #ddd; font-family: var(--head); font-size: 0.8rem; }
.f-form .field .req { color: #9b9b9b; }
.f-form .field input, .f-form .field textarea { background: transparent; border: 1px solid #777; color: #fff; border-radius: 0; }
.f-form .field textarea { min-height: 6.5rem; }
.f-form .form-actions { justify-content: flex-end; }
.f-form .form-actions .small { color: #9b9b9b; order: -1; margin-right: auto; font-size: 0.78rem; }
.f-form .btn { background: var(--lime); border-color: var(--lime); color: var(--dark); padding: 0.7rem 2.2rem; }
.f-form .btn:hover { background: #bfcb1d; }
.f-form .form-status { color: #fff; }
.f-form .form-status.error { color: #ffb4a8; }
.f-form h2 { color: #fff; font-size: 1.15rem; text-transform: uppercase; margin: 0 0 0.9rem; }
@media (max-width: 980px) { .brand-footer .f-grid, .brand-footer .f-grid.has-form { grid-template-columns: 1fr; } }

/* ---------- shared WordPress-style sections ---------- */
.wp h1, .wp h2, .wp .band-title { text-transform: uppercase; }
.wp p { font-family: var(--serif); }
.wp-section { padding: clamp(2.6rem, 6vw, 4.2rem) 0; }
.wp-section.gray { background: #f7f7f7; }
.wp-center { text-align: center; }
.wp-center p { margin-left: auto; margin-right: auto; }
.wp .lead-serif { font-family: var(--serif); font-size: 1rem; max-width: 62ch; color: #333; }
.band-title { font-size: clamp(1.45rem, 1rem + 1.6vw, 2.05rem); font-weight: 700; margin: 0 0 0.9rem; color: #2b2b2b; }
.photo-band { position: relative; color: #fff; background-size: cover; background-position: center; }
.photo-band::before { content: ""; position: absolute; inset: 0; background: rgba(0, 32, 58, 0.72); }
.photo-band > * { position: relative; }
.photo-band .band-title { color: #fff; }
.photo-band p { color: #e7eef4; }
.navy-band { background: var(--navy); color: #fff; }
.navy-band p { color: #fff; }
.cyan-band { background: var(--cyan); color: #fff; }
.cyan-band .band-title, .navy-band .band-title { color: #fff; }
.cyan-band p { color: #fff; }

/* hero with photo */
.wp-hero { position: relative; background-size: cover; background-position: center 30%; color: #fff; }
.wp-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 26, 48, 0.55) 0%, rgba(0, 26, 48, 0.25) 60%, rgba(0, 26, 48, 0.1) 100%); }
.wp-hero .wrap { position: relative; padding-top: clamp(3.4rem, 8vw, 6.2rem); padding-bottom: clamp(3rem, 7vw, 5.4rem); }
.wp-hero h1 { color: #fff; font-weight: 400; text-transform: uppercase; font-size: clamp(2rem, 1.2rem + 3vw, 3.2rem); line-height: 1.12; max-width: 24ch; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.wp-hero .sub { font-family: var(--serif); font-style: italic; font-size: clamp(1.05rem, 0.9rem + 0.6vw, 1.4rem); margin: 1rem 0 0; color: #fff; text-shadow: 0 1px 10px rgba(0,0,0,.3); }
.wp-hero .actions { margin-top: 1.8rem; display: flex; flex-wrap: wrap; gap: 0.8rem; }
.pill { display: inline-block; text-decoration: none; text-transform: uppercase; font-family: var(--head); font-weight: 700; font-size: 0.92rem; letter-spacing: 0.02em; padding: 0.85rem 2rem; border-radius: 999px; }
.pill-lime { background: var(--lime); color: #111 !important; }
.pill-lime:hover { background: #bfcb1d; }
.pill-cyan { background: var(--cyan); color: #fff !important; }
.pill-cyan:hover { background: #0094c4; }
.pill-green { background: var(--green); color: #fff !important; }
.pill-white { background: #fff; color: var(--navy) !important; }
.pill-outline { border: 2px solid #fff; color: #fff !important; }

/* home hero */
.home-wp-hero { background-position: center 25%; }
.home-wp-hero .wrap { padding-bottom: 0; padding-top: clamp(4rem, 10vw, 7.5rem); }
.home-wp-hero .welcome { font-family: var(--head); font-weight: 800; font-size: clamp(3rem, 2rem + 4.8vw, 5.4rem); line-height: 1; text-transform: uppercase; margin: 0; color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.home-wp-hero .welcome-sub { font-family: var(--head); font-weight: 400; font-size: clamp(1.7rem, 1.1rem + 2.6vw, 3rem); line-height: 1.15; text-transform: uppercase; margin: 0.4rem 0 0; color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: clamp(3rem, 8vw, 6rem); list-style: none; padding: 0; }
.tiles li { min-height: 11.5rem; }
.tiles a { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; height: 100%; padding: 1.4rem 1rem; color: #fff; text-decoration: none; transition: filter .15s ease; }
.tiles a:hover { filter: brightness(1.08); }
.tiles svg { width: 3.7rem; height: 3.7rem; fill: #fff; margin-bottom: 0.9rem; }
.tiles strong { font-family: var(--head); text-transform: uppercase; font-size: 0.98rem; line-height: 1.25; }
.tiles .more { margin-top: 1.1rem; font-family: var(--head); text-transform: uppercase; font-size: 0.85rem; }
.tiles .more::after { content: " ›"; font-size: 1.1rem; }
.t-navy { background: var(--navy); } .t-cyan { background: var(--cyan); } .t-slate { background: var(--slate); } .t-green { background: var(--green); }
.t-dark { background: rgba(0, 0, 0, 0.62); }
.t-dark a { gap: 0.8rem; }
.t-dark .pill { border: 2px solid var(--lime); color: var(--lime) !important; padding: 0.55rem 2.6rem; font-size: 0.86rem; }
.t-dark .pill:hover { background: var(--lime); color: #111 !important; }
.more-programs { background: #f1f5f8; border-bottom: 1px solid #e3e9ee; }
.more-programs .wrap { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; align-items: center; justify-content: center; padding-top: 0.9rem; padding-bottom: 0.9rem; font-family: var(--head); font-size: 0.9rem; }
.more-programs span { color: var(--slate); text-transform: uppercase; font-weight: 700; font-size: 0.8rem; letter-spacing: 0.04em; }
.more-programs a { color: var(--navy); font-weight: 600; }
@media (max-width: 900px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tiles li:last-child { grid-column: 1 / -1; min-height: 7rem; } .tiles li { min-height: 9.5rem; } }

/* three green words */
.stats3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 820px; margin: 2.2rem auto 0; padding: 0; list-style: none; }
.stats3 li { text-align: center; font-family: var(--head); font-weight: 700; text-transform: uppercase; color: var(--green); font-size: clamp(1.2rem, 0.9rem + 1vw, 1.6rem); line-height: 1.25; padding: 0.3rem 1rem; }
.stats3 li + li { border-left: 1px solid var(--green); }
.stats3 small { display: block; margin-top: 0.6rem; font-family: var(--serif); font-weight: 400; text-transform: none; color: #555; font-size: 0.92rem; line-height: 1.5; }
@media (max-width: 640px) { .stats3 { grid-template-columns: 1fr; gap: 1.4rem; } .stats3 li + li { border-left: 0; border-top: 1px solid #cfe9e1; padding-top: 1.2rem; } }

/* icon rows */
.icons3, .icons4 { display: grid; gap: 2rem; list-style: none; padding: 0; margin: 2.6rem auto 0; max-width: 1040px; }
.icons3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.icons4 { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 900px; }
.icons3 li, .icons4 li { text-align: center; font-family: var(--head); font-size: 0.95rem; line-height: 1.45; }
.icons3 img { height: 110px; width: auto; margin: 0 auto 1.2rem; display: block; }
.icons4 img { width: 120px; height: 120px; margin: 0 auto 1.1rem; display: block; border-radius: 50%; background: rgba(255,255,255,0.18); box-shadow: 0 0 0 10px rgba(255,255,255,0.12); }
.icons3 sup a, .icons4 sup a, .navy-band sup a, .photo-band sup a { color: var(--cyan); }
@media (max-width: 760px) { .icons3, .icons4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* call-to-action band (handshake photo) */
.cta-band .wrap { text-align: center; padding-top: clamp(3rem, 7vw, 4.6rem); padding-bottom: clamp(3rem, 7vw, 4.6rem); }
.compare-btn { display: inline-flex; align-items: center; gap: 0.9rem; background: var(--green); color: #fff !important; text-decoration: none; border-radius: 999px; padding: 0.85rem 2.2rem 0.85rem 1.6rem; box-shadow: 0 0 0 6px rgba(255,255,255,0.18); margin-top: 0.6rem; }
.compare-btn svg { width: 2.3rem; height: 2.3rem; fill: none; stroke: #fff; stroke-width: 1.6; }
.compare-btn strong { display: block; font-family: var(--head); font-size: 1.25rem; text-transform: uppercase; line-height: 1.1; }
.compare-btn span { display: block; font-family: var(--head); font-size: 0.85rem; text-transform: uppercase; }
.quote-row { display: flex; flex-wrap: wrap; gap: 1.4rem 3rem; align-items: center; justify-content: center; margin-top: 2.2rem; }
.quote-row .q-text { display: flex; align-items: center; gap: 1rem; max-width: 380px; text-align: left; font-family: var(--head); text-transform: uppercase; font-size: 0.86rem; line-height: 1.5; color: #fff; }
.quote-row .q-text img { width: 56px; height: 56px; flex: none; }
.quote-pill { display: inline-flex; align-items: center; gap: 0.8rem; background: #fff; color: #555 !important; text-decoration: none; border-radius: 999px; padding: 0.3rem 0.35rem 0.3rem 1.2rem; font-family: var(--head); text-transform: uppercase; font-size: 0.95rem; }
.quote-pill img { width: 40px; height: 40px; }

/* author block in the WordPress layout */
.wp-author { background: #f7f7f7; padding: clamp(2.6rem, 6vw, 4rem) 0; }
.wp-author .wrap { display: grid; grid-template-columns: 150px 1fr; gap: 2.4rem; align-items: start; }
.wp-author .av { width: 150px; height: 150px; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 2px 10px rgba(0,0,0,.12); object-fit: cover; }
.wp-author .by { display: inline-block; border: 1.5px solid #333; padding: 0.35rem 0.7rem; font-family: var(--head); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 1.2rem; }
.wp-author h2 { color: #0088c2; font-size: 1.7rem; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.wp-author h2 .ic { display: inline-flex; gap: 0.5rem; }
.wp-author h2 .ic a { width: 2rem; height: 2rem; border-radius: 6px; background: #ececec; display: grid; place-items: center; }
.wp-author h2 .ic img { width: 1rem; height: 1rem; opacity: 0.7; }
.wp-author .role { font-family: var(--head); font-style: italic; font-size: 0.85rem; margin: 0 0 1rem; }
.wp-author p { font-family: var(--head); font-size: 0.92rem; color: #333; max-width: 75ch; }
.wp-author h3 { color: #0088c2; text-transform: uppercase; font-size: 0.92rem; margin: 1.2rem 0 0.6rem; }
.wp-author ul.exp { columns: 3; column-gap: 2rem; font-family: var(--head); font-size: 0.85rem; padding-left: 1rem; margin: 0; }
@media (max-width: 760px) { .wp-author .wrap { grid-template-columns: 1fr; } .wp-author ul.exp { columns: 1; } }

/* product pages */
.intro-band .wrap { text-align: center; padding-top: clamp(2.4rem, 6vw, 3.8rem); padding-bottom: clamp(2.4rem, 6vw, 3.8rem); }
.intro-band p { font-family: var(--head); font-size: clamp(1rem, 0.9rem + 0.4vw, 1.2rem); line-height: 1.6; max-width: 54ch; margin: 0 auto; }
.intro-band .actions { justify-content: center; display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.8rem; }
.cyan-h { color: var(--cyan); text-transform: uppercase; font-weight: 500; font-size: clamp(1.4rem, 1rem + 1.3vw, 1.9rem); margin: 0 0 1.4rem; }
.dots { columns: 2; column-gap: 3rem; list-style: none; padding: 0; margin: 0; font-family: var(--head); font-size: 0.95rem; }
.dots li { break-inside: avoid; position: relative; padding-left: 1.7rem; margin-bottom: 0.95rem; line-height: 1.45; }
.dots li::before { content: ""; position: absolute; left: 0.2rem; top: 0.45em; width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--cyan); }
@media (max-width: 760px) { .dots { columns: 1; } }
.all-about { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2.4rem; align-items: start; }
.all-about .glance { position: static; }
@media (max-width: 900px) { .all-about { grid-template-columns: 1fr; } }
.img-split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(1.6rem, 4vw, 3.4rem); align-items: center; }
.img-split img { width: 100%; height: auto; border-radius: 4px; box-shadow: 0 14px 30px -18px rgba(0,0,0,.45); }
.img-split.flip { grid-template-columns: 1.1fr 0.9fr; }
.img-split.flip img { order: 2; }
@media (max-width: 820px) { .img-split, .img-split.flip { grid-template-columns: 1fr; } .img-split.flip img { order: 0; } }
.wp-steps { list-style: none; counter-reset: s; padding: 0; margin: 1.2rem 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.wp-steps li { counter-increment: s; background: #fff; border-top: 4px solid var(--green); padding: 1.3rem 1.2rem 1.2rem; box-shadow: 0 6px 18px -12px rgba(0,0,0,.3); }
.wp-steps li::before { content: counter(s); display: block; font-family: var(--head); font-weight: 800; color: var(--green); font-size: 1.8rem; line-height: 1; margin-bottom: 0.5rem; }
.wp-steps strong { display: block; font-family: var(--head); text-transform: uppercase; font-size: 0.95rem; color: var(--navy); margin-bottom: 0.4rem; }
.wp-steps p, .wp-steps li { font-family: var(--serif); font-size: 0.95rem; }
@media (max-width: 820px) { .wp-steps { grid-template-columns: 1fr; } }
.chip-row { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: center; margin-top: 1rem; }
.chip-row a { border: 1.5px solid var(--navy); border-radius: 999px; padding: 0.5rem 1.1rem; font-family: var(--head); font-size: 0.85rem; font-weight: 600; text-decoration: none; color: var(--navy); }
.chip-row a:hover { background: var(--navy); color: #fff; }
.wp .terms th, .wp .terms td { font-family: var(--head); font-size: 0.92rem; }
.wp .faq h3 { font-family: var(--head); }
.wp .faq p { font-family: var(--serif); }
.wp .glance { border-top-color: var(--green); }
.wp .uses-grid h3 { color: var(--green); font-family: var(--head); }
.about-icons img { width: 96px; height: 96px; display: block; margin: 0 0 1rem; }
.about-icons h3 { text-transform: uppercase; color: var(--navy); font-size: 1.05rem; }
.team-img { width: 100%; max-width: 900px; height: auto; display: block; margin: 1.4rem auto 0; border-radius: 4px; }
.wp .disclosures li { font-family: var(--serif); }
.wp .quote-grid { padding-top: 2.4rem; }

/* location pages pick up the brand colors */
.hero .glance, .glance { border-top-color: var(--green); }
.home-h1 { margin: 0; }
.home-h1 span { display: block; }
.wp-steps-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px) { .wp-steps-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .wp-steps-4 { grid-template-columns: 1fr; } }
.wp .programs strong { color: var(--navy); font-family: var(--head); text-transform: uppercase; font-size: 1rem; }
.wp .glance h2 { font-family: var(--head); text-transform: uppercase; font-size: 1rem; color: var(--navy); }
.wp .rail-card h2 { font-family: var(--head); text-transform: uppercase; font-size: 1rem; }
.wp .form legend { font-family: var(--head); text-transform: uppercase; color: var(--navy); }
.wp .quote-grid .btn { background: var(--green); }
.wp .navy-band .byline a { color: #fff; }
.wp-section > .wrap > p:last-child { margin-bottom: 0; }

.brand-header .logo { flex: none; }
.photo-band .lead-serif, .cyan-band .lead-serif, .navy-band .lead-serif { color: #fff; }
.wp .wp-author h2 { text-transform: none; }
.quote-pill { padding: 0.35rem 0.4rem 0.35rem 1.3rem; color: #5b7e96 !important; letter-spacing: 0.02em; }
.q-ico { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--orange); display: grid; place-items: center; box-shadow: 0 0 0 3px #fde3d3; }
.q-ico svg { width: 1.3rem; height: 1.3rem; fill: #fff; }

.prose.wide { max-width: none; margin: 0; padding: 0; }
.wp-hero h1 { max-width: 30ch; }

@media (max-width: 560px) {
  .brand-header > .header-row > .lang-switch { display: none; }
  .brand-header .logo img { height: 34px; }
}
.brand-header .m-lang a { color: var(--green); }


/* ---------- one typographic system: the location pages' Archivo, sentence case, quiet rules ---------- */
:root { --head: "Archivo", "Helvetica Neue", Arial, sans-serif; --serif: var(--head); }
.wp p, .wp li, .wp .lead-serif, .stats3 small, .wp-steps p, .wp-steps li, .f-brand .f-disc, .wp .faq p, .wp .disclosures li { font-family: var(--head); }
.wp h1, .wp h2, .wp .band-title, .wp-hero h1, .cyan-h, .tiles strong, .stats3 li, .wp-steps strong, .about-icons h3, .wp-author h3, .f-form h2,
.topnav a, .topnav summary, .btn, .btn-pill, .pill, .compare-btn strong, .compare-btn span, .quote-row .q-text, .quote-pill, .tiles .more,
.wp .programs strong, .wp .glance h2, .wp .rail-card h2, .wp .form legend, .brand-header .menu > summary, .wp-author .by, .t-dark .pill { text-transform: none; }
.wp h1, .wp h2, .wp h3, .band-title, .cyan-h { font-stretch: 112%; letter-spacing: -0.01em; }
.band-title { color: var(--ink); font-weight: 680; font-size: clamp(1.5rem, 1.15rem + 1.1vw, 2rem); }
.photo-band .band-title, .cyan-band .band-title, .navy-band .band-title { color: #fff; }
.cyan-h { color: var(--ink); font-weight: 680; font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.7rem); margin: 0 0 1.1rem; }
.wp-hero h1 { font-weight: 720; letter-spacing: -0.02em; font-size: clamp(2.1rem, 1.3rem + 2.8vw, 3.3rem); max-width: 22ch; }
.wp-hero .sub { font-style: normal; font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem); max-width: 60ch; }
.eyebrow { display: inline-block; margin-bottom: 0.9rem; padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--lime); color: #111; font-size: 0.85rem; font-weight: 650; letter-spacing: 0; text-shadow: none; }
.wp-hero h1 .eyebrow { display: table; }
.home-wp-hero .welcome { font-weight: 760; font-stretch: 118%; letter-spacing: -0.025em; text-transform: none; }
.home-wp-hero .welcome-sub { font-weight: 420; font-stretch: 108%; text-transform: none; letter-spacing: -0.01em; }
.tiles strong { font-size: 1.08rem; font-weight: 680; font-stretch: 110%; }
.tiles .more { font-size: 0.9rem; opacity: 0.9; }
.stats3 li { color: var(--go); font-weight: 700; font-stretch: 116%; letter-spacing: -0.015em; font-size: clamp(1.35rem, 1rem + 1vw, 1.8rem); }
.stats3 li + li { border-left-color: var(--rule); }
.stats3 small { color: var(--text); }
.wp .lead-serif { color: var(--text); font-size: 1.08rem; line-height: 1.6; }
.photo-band .lead-serif, .cyan-band .lead-serif, .navy-band .lead-serif { color: #fff; }
.topnav a, .topnav summary { font-size: 0.95rem; font-weight: 600; letter-spacing: 0; }
.btn, .btn-pill, .pill { letter-spacing: 0; font-weight: 650; font-size: 0.95rem; }
.compare-btn strong { font-size: 1.2rem; font-weight: 700; }
.compare-btn span { font-size: 0.9rem; }
.quote-row .q-text { font-size: 0.98rem; }
.quote-pill { font-size: 1rem; }
.f-contact li, .f-brand p { font-family: var(--head); }
.f-form h2 { font-size: 1.2rem; }
/* the location pages' signature: a survey-sheet grid behind the key panel */
.market-band { background-color: var(--field); background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 28px 28px; border-block: 1px solid var(--rule); }
.wp-section.gray { background: var(--field); }
/* bullets and lists match the location pages */
.dots li::before { content: ""; left: 0.15rem; top: 0.42em; width: 0.7rem; height: 0.38rem; border-radius: 0; background: none; border-left: 2px solid var(--go); border-bottom: 2px solid var(--go); transform: rotate(-45deg); }
.dots { font-size: 1rem; }
.wp-steps li { border-top-color: var(--go); box-shadow: none; border: 1px solid var(--rule); border-top: 3px solid var(--go); border-radius: var(--r); }
.wp-steps strong { color: var(--ink); font-size: 1.05rem; font-weight: 650; }
.wp-steps li::before { font-stretch: 116%; color: var(--go); }
.about-icons h3 { color: var(--ink); font-size: 1.1rem; }
.chip-row a { font-weight: 600; font-size: 0.92rem; }
/* author block in the location style */
.wp-author { background: #fff; border-top: 1px solid var(--rule); }
.wp-author .wrap { grid-template-columns: 120px 1fr; }
.wp-author .av { width: 120px; height: 120px; border: 0; box-shadow: none; }
.wp-author .by { border: 0; padding: 0; font-size: 0.85rem; font-weight: 500; letter-spacing: 0; color: var(--muted); margin-bottom: 0.4rem; }
.wp-author h2 { color: var(--ink); font-size: 1.5rem; font-stretch: 112%; }
.wp-author .role { font-style: normal; color: var(--muted); font-size: 0.92rem; }
.wp-author p { font-size: 1rem; color: var(--text); }
.wp-author h3 { color: var(--ink); font-size: 1.05rem; font-weight: 650; }
.wp-author ul.exp { font-size: 0.95rem; list-style: none; padding: 0; }
.wp-author ul.exp li { padding: 0.2rem 0; break-inside: avoid; }

/* ---------- simplified palette: navy + green + neutrals ---------- */
:root { --cyan: var(--go); --slate: var(--navy); --lime: var(--go); --orange: var(--go); }
.pill-lime { background: var(--go); color: #fff !important; }
.pill-lime:hover { background: #008a6c; }
.pill-cyan { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.75); }
.pill-cyan:hover { background: rgba(255,255,255,.12); }
.eyebrow { background: rgba(255,255,255,.16); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.f-ico { background: var(--go); }
.f-ico svg { fill: #fff; }
.f-contact a[href^="/"] { color: #fff; }
.f-form .btn { background: var(--go); border-color: var(--go); color: #fff; }
.f-form .btn:hover { background: #008a6c; }
.q-ico { background: var(--go); box-shadow: 0 0 0 3px #d5efe7; }
.quote-pill { color: var(--navy) !important; }
.q-calc { width: 3.2rem; height: 3.2rem; flex: none; border-radius: 50%; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 2px rgba(255,255,255,.6); display: grid; place-items: center; }
.q-calc svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; }
.icons3 sup a, .icons4 sup a, .navy-band sup a, .photo-band sup a, .home-hero2 sup a { color: #9fe0cc; }
.icons4 img { background: var(--navy); box-shadow: 0 0 0 8px #e3ebf1; }
.wp sup.fn a { text-decoration: none; }

/* ---------- home: data-led hero ---------- */
.home-hero2 { background: var(--navy); color: #fff; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 28px 28px; }
.home-hero2-grid { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: clamp(1.6rem, 4vw, 3.6rem); align-items: center; padding-top: clamp(2.8rem, 6vw, 4.6rem); padding-bottom: clamp(2.8rem, 6vw, 4.6rem); }
.hh-eyebrow { margin: 0 0 1rem; font-size: 0.92rem; font-weight: 600; color: #9fe0cc; }
.home-hero2 h1 { color: #fff; font-size: clamp(2.4rem, 1.4rem + 3.4vw, 3.9rem); font-weight: 740; font-stretch: 116%; letter-spacing: -0.025em; line-height: 1.04; max-width: 14ch; margin: 0; text-transform: none; }
.hh-lede { font-size: 1.15rem; line-height: 1.6; color: #dbe6ee; max-width: 46ch; margin: 1.2rem 0 0; }
.home-hero2 .actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.8rem; }
.btn-ghost { background: transparent !important; border: 2px solid rgba(255,255,255,.7) !important; color: #fff !important; }
.btn-ghost:hover { background: rgba(255,255,255,.1) !important; }
.hh-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 2.4rem 0 0; border-top: 1px solid rgba(255,255,255,.22); }
.hh-stats div { padding: 1rem 0.9rem 0 0; }
.hh-stats dt { font-size: clamp(1.25rem, 1rem + 0.8vw, 1.65rem); font-weight: 700; font-stretch: 116%; letter-spacing: -0.015em; color: #fff; white-space: nowrap; }
.hh-stats dd { margin: 0.25rem 0 0; font-size: 0.85rem; color: #b9cad8; line-height: 1.35; }
@media (max-width: 980px) { .home-hero2-grid { grid-template-columns: 1fr; } .hh-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 0.4rem; } }
.prog-cards { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); border-top: 2px solid var(--ink); }
.prog-cards li { border-bottom: 1px solid var(--rule); }
.prog-cards a { padding: 1.1rem 1.4rem 1.2rem 0; }
.prog-cards strong { color: var(--go) !important; text-transform: none !important; font-size: 1.1rem !important; font-stretch: 110%; }
.prog-cards span { color: var(--text); }

/* ---------- market map ---------- */
.usmap { position: relative; margin: 0; }
.usmap-base, .usmap-dots { display: block; width: 100%; height: auto; }
.usmap-dots { position: absolute; inset: 0; }
.usmap-dots circle { fill: var(--go); stroke: #fff; stroke-width: 1.6; transition: r .12s ease; }
.usmap-dark .usmap-dots circle { fill: #3fd0a6; stroke: var(--navy); }
.usmap-dots a:hover circle, .usmap-dots a:focus circle { r: 9; }
.usmap-dots a:focus { outline: none; }
.usmap-tip { position: absolute; z-index: 5; pointer-events: none; background: #fff; color: var(--ink); border-radius: 6px; padding: 0.55rem 0.75rem; box-shadow: 0 10px 26px -10px rgba(0,0,0,.45); font-size: 0.85rem; line-height: 1.35; min-width: 11rem; }
.usmap-tip strong { display: block; font-size: 0.95rem; margin-bottom: 0.15rem; }
.usmap-tip span { display: block; color: var(--text); }
.usmap figcaption { font-size: 0.82rem; color: var(--muted); margin-top: 0.6rem; }
.dir-map { padding: clamp(1.6rem, 4vw, 2.6rem) 0; margin-bottom: 1rem; }
.dir-map-grid { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 2rem; align-items: center; }
.dir-stats { margin: 0; display: grid; gap: 0; border-top: 2px solid var(--ink); }
.dir-stats div { padding: 0.85rem 0; border-bottom: 1px solid var(--rule); }
.dir-stats dt { font-size: 1.7rem; font-weight: 700; font-stretch: 116%; color: var(--ink); letter-spacing: -0.015em; }
.dir-stats dd { margin: 0.15rem 0 0; color: var(--text); font-size: 0.92rem; }
@media (max-width: 860px) { .dir-map-grid { grid-template-columns: 1fr; } .dir-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.2rem; } }

.hh-stats { display: flex; flex-wrap: wrap; gap: 0 2.2rem; }
.hh-stats div { padding-right: 0; }
.hh-stats { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); column-gap: 3.2rem; row-gap: 0.2rem; }
