:root{
  --ink:var(--roamleo-ink);--ink-deep:var(--roamleo-pine);--muted:var(--roamleo-muted);
  --paper:var(--roamleo-warm-ivory);--cream:#fffdf8;--green:var(--roamleo-route-green);
  --green-2:var(--roamleo-pine);--gold:var(--roamleo-lion-gold);--gold-soft:#efd6a2;
  --ai-ink:var(--roamleo-ink);--ai-ink-soft:var(--roamleo-pine);--ai-muted:var(--roamleo-muted);
  --ai-canvas:var(--roamleo-warm-ivory);--ai-surface:#fffdf8;--ai-yellow:var(--roamleo-lion-gold);
  --ai-yellow-2:#efd6a2;--ai-lime:#efd6a2;--ai-mint:#8ccdb7;--ai-night:var(--roamleo-pine);--ai-night-2:#0c4d3e;
}
.site-header{background:rgba(255,249,239,.92);border-bottom-color:rgba(20,58,49,.11)}
.site-header .brand.brand-v11{display:flex;width:auto;height:58px;gap:10px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.site-header .brand.brand-v11 img{width:54px;height:54px;object-fit:contain}
.site-header .brand.brand-v11>span{display:flex;min-width:0;flex-direction:column;gap:5px}
.site-header .brand.brand-v11 strong{color:var(--roamleo-ink);font-size:22px;font-weight:850;letter-spacing:.05em}
.site-header .brand.brand-v11 small{color:var(--roamleo-muted);font-size:10px;font-weight:650;letter-spacing:.08em}
.poster-brand-lockup.poster-brand-v11{display:flex;width:min(100%,430px);min-height:190px;align-items:center;gap:24px;padding:24px 30px;border-color:rgba(255,255,255,.72);background:rgba(255,249,239,.96)}
.poster-brand-v11 img{flex:0 0 132px;width:132px;height:132px;object-fit:contain}
.poster-brand-v11 span{display:flex;min-width:0;flex-direction:column;gap:14px;color:var(--roamleo-ink)}
.poster-brand-v11 strong{font-size:clamp(38px,4vw,56px);font-weight:900;line-height:1;letter-spacing:.06em;white-space:nowrap}
.poster-brand-v11 small{color:var(--roamleo-muted);font-size:14px;font-weight:700;letter-spacing:.08em;white-space:nowrap}
.nova-hero-copy h1::after,.nova-kicker i{background:var(--roamleo-lion-gold)}
.nova-hero-copy h1 span,.nova-kicker{color:#f1cb78}
.nova-actions .button,.nova-chat-question{background:var(--roamleo-lion-gold)}
#site-footer{background:radial-gradient(circle at 12% 0,rgba(211,154,44,.16),transparent 34%),linear-gradient(135deg,#083f34 0%,#052d25 100%)}
#site-footer .footer-brand img{width:72px;height:72px;padding:4px;border:0;background:rgba(255,249,239,.96)}
.public-security-filing{margin-left:10px}
@media(max-width:680px){
  html,body{width:100%;max-width:100vw;overflow-x:hidden}
  .site-header .header-cta{display:none}
  .header-inner{width:100%;max-width:100vw}
  .site-header .brand.brand-v11{width:auto;height:50px;gap:7px}
  .site-header .brand.brand-v11 img{width:46px;height:46px}
  .site-header .brand.brand-v11 strong{font-size:20px}
  .site-header .brand.brand-v11 small{font-size:9px}
  .poster-brand-lockup.poster-brand-v11{width:min(100%,340px);min-height:136px;gap:17px;padding:18px 21px}
  .poster-brand-v11 img{flex-basis:94px;width:94px;height:94px}
  .poster-brand-v11 strong{font-size:34px}
  .poster-brand-v11 small{font-size:11px}
  .nova-hero{width:100vw;max-width:100vw}
  .nova-shell{width:calc(100vw - 28px);max-width:calc(100vw - 28px)}
  .nova-hero-grid,.nova-hero-copy,.nova-product{min-width:0;max-width:100%}
  .nova-hero-copy>p:not(.nova-kicker){max-width:100%;overflow-wrap:anywhere}
  .mobile-dock{width:auto;max-width:calc(100vw - 24px)}
  .mobile-dock a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Shared site typography and header layout for every public route. */
:root {
  --site-font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  --site-type-caption: 12px;
  --site-type-meta: 13px;
  --site-type-control: 14px;
  --site-type-body: 16px;
  --site-type-lead: 18px;
  --site-type-h3: 22px;
  --site-type-h2: clamp(28px, 3.3vw, 40px);
  --site-type-h1: clamp(38px, 5vw, 62px);
}

html body,
html body * {
  font-family: var(--site-font-family) !important;
}

html body {
  font-size: var(--site-type-body);
  line-height: 1.72;
}

html body h1 {
  font-size: var(--site-type-h1) !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

html body h2 {
  font-size: var(--site-type-h2) !important;
  line-height: 1.35 !important;
}

html body :is(h3, h4) {
  font-size: var(--site-type-h3) !important;
  line-height: 1.4 !important;
}

html body :is(p, li, dt, dd, summary, blockquote) {
  font-size: var(--site-type-body) !important;
  line-height: 1.75 !important;
}

html body :is(.lead, .hero-description, .public-hero-description) {
  font-size: var(--site-type-lead) !important;
  line-height: 1.7 !important;
}

html body :is(small, .eyebrow, .section-index, .muted, figcaption) {
  font-size: var(--site-type-meta) !important;
  line-height: 1.55 !important;
}

html body :is(button, .button, .header-cta, .text-link, nav a) {
  font-size: var(--site-type-control) !important;
  line-height: 1.35 !important;
}

.site-header .header-inner {
  box-sizing: border-box;
  min-width: 0;
}

.site-header .brand.brand-v11 {
  flex: 0 0 auto;
  height: 58px;
  gap: 8px;
  margin-right: auto;
}

.site-header .brand.brand-v11 img {
  width: 42px;
  height: 42px;
}

.site-header .brand.brand-v11 strong {
  font-size: 19px !important;
  line-height: 1.2 !important;
}

.site-header .brand.brand-v11 small {
  font-size: 11px !important;
  line-height: 1.3 !important;
  letter-spacing: .04em;
}

.site-header nav {
  flex: 0 1 auto;
  min-width: 0;
  gap: clamp(10px, 1.5vw, 20px);
}

.site-header nav a {
  white-space: nowrap;
}

.site-header .header-cta {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 6px;
  white-space: nowrap;
}

@media (max-width: 980px) and (min-width: 681px) {
  .site-header .header-inner {
    height: 68px;
    gap: 9px;
    padding-inline: 14px;
  }

  .site-header .brand.brand-v11 {
    height: 50px;
    gap: 6px;
  }

  .site-header .brand.brand-v11 img {
    width: 40px;
    height: 40px;
  }

  .site-header .brand.brand-v11 strong {
    font-size: 18px !important;
  }

  .site-header .brand.brand-v11 small {
    font-size: 9px !important;
  }

  .site-header nav {
    gap: 8px;
  }

  .site-header nav a,
  .site-header .header-cta {
    font-size: 12px !important;
  }

  .site-header .header-cta {
    min-height: 40px;
    padding-inline: 10px;
  }
}

.national-5a-hero {
  box-sizing: border-box;
  width: 100%;
  max-width: 900px;
}

.national-5a-hero :is(h1, .lead) {
  max-width: 100%;
}

.national-5a-hero .lead {
  font-size: var(--site-type-lead) !important;
}

.national-5a-hero .actions {
  align-items: center;
  gap: 12px 24px;
  margin-top: 24px;
}

.national-5a-hero .actions :is(.button, .text-link) {
  min-height: 44px;
  align-items: center;
}

.national-5a-proof {
  display: none !important;
}

/* Province cards sit on a light surface, so use the same high-contrast brand colors. */
.national-province-grid .city-card {
  min-height: 132px;
  justify-content: flex-start;
  gap: 10px;
  border: 1px solid rgba(20, 58, 49, .16);
  background: #fffdf8;
  box-shadow: 0 8px 22px rgba(20, 58, 49, .045);
}

.national-province-grid .city-card:hover,
.national-province-grid .city-card:focus-visible {
  border-color: rgba(0, 111, 78, .4);
  background: #f4efe4;
  box-shadow: 0 12px 26px rgba(20, 58, 49, .09);
}

.national-province-grid .city-card strong {
  margin: auto 0 0;
  color: var(--roamleo-ink) !important;
  font-family: var(--site-font-family) !important;
  font-size: 23px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
}

.national-province-grid .city-card small {
  color: var(--roamleo-muted) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* Keep the release marker consistently quiet across every page footer. */
#site-footer .footer-note .site-version {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, .58);
  font-size: 12px !important;
  line-height: 1.4 !important;
  letter-spacing: .02em;
  white-space: nowrap;
}

@media (max-width: 680px) {
  .national-5a-hero {
    max-width: 100%;
    padding-inline: 18px;
  }
}

/* One consistent brand lockup across the complete site. */
.site-header .header-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  height: 76px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.4vw, 34px);
}

.site-header .brand.brand-v11 {
  flex: 0 0 auto;
  display: flex;
  height: 54px;
  align-items: center;
  gap: 8px;
  margin-right: auto;
}

.site-header .brand.brand-v11 img {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
}

.site-header .brand.brand-v11 > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.site-header .brand.brand-v11 strong {
  font-size: 19px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .04em !important;
}

.site-header .brand.brand-v11 small {
  display: block;
  color: var(--roamleo-muted);
  font-size: 10px !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-header nav {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.6vw, 22px);
}

.site-header nav a {
  white-space: nowrap;
}

.site-header .header-cta {
  flex: 0 0 auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border-radius: 8px;
  white-space: nowrap;
}

/* Rebalance the home feature cards to share one orderly grid and height. */
.nova-bento {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-template-rows: minmax(390px, auto) !important;
  align-items: stretch;
  gap: 16px;
}

.nova-bento-card,
.nova-bento-card.dark {
  min-width: 0;
  min-height: 390px !important;
  display: flex;
  flex-direction: column;
  grid-row: auto !important;
  padding: 26px;
  border-radius: 18px;
}

.nova-bento-card h3 {
  margin: 32px 0 12px !important;
}

.nova-bento-card > p {
  max-width: none;
  margin: 0;
}

.nova-chat-demo {
  margin-top: auto !important;
  padding: 15px;
  border-radius: 16px;
}

.nova-route-line {
  position: relative;
  z-index: 1;
  margin-top: auto;
  padding-top: 28px;
}

.nova-map-orbit {
  right: -42px;
  bottom: -62px;
  width: 156px;
  height: 156px;
  opacity: .62;
  pointer-events: none;
}

.public-feature-section .nova-section-head {
  width: 100%;
  max-width: none;
  margin: 0 0 42px;
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}

.public-feature-section .nova-section-head h2 {
  max-width: 800px;
  text-wrap: balance;
}

.public-feature-section .nova-section-head > p {
  max-width: 440px;
  justify-self: end;
  margin: 0;
  line-height: 1.8 !important;
}

@media (max-width: 980px) and (min-width: 681px) {
  .site-header .header-inner {
    height: 68px;
    gap: 9px;
    padding-inline: 14px;
  }

  .site-header .brand.brand-v11 {
    height: 50px;
    gap: 6px;
  }

  .site-header .brand.brand-v11 img {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }

  .site-header .brand.brand-v11 strong { font-size: 18px !important; }
  .site-header .brand.brand-v11 small { font-size: 9px !important; }
  .site-header nav { gap: 8px; }
  .site-header nav a,
  .site-header .header-cta { font-size: 12px !important; }
  .site-header .header-cta { min-height: 40px; padding-inline: 10px; }
}

@media (max-width: 900px) {
  .nova-bento {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
  }

  .nova-bento-card,
  .nova-bento-card.dark {
    min-height: 0 !important;
  }

  .nova-bento-card h3 { margin-top: 28px !important; }
  .nova-chat-demo { margin-top: 24px !important; }
  .nova-route-line { margin-top: 26px; padding-top: 0; }
  .public-feature-section .nova-section-head {
    width: 100%;
    max-width: none;
    margin: 0 0 30px;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
  .public-feature-section .nova-section-head > p {
    max-width: 680px;
    justify-self: start;
  }
}

@media (max-width: 680px) {
  .site-header .header-inner {
    height: 66px;
    gap: 8px;
    padding-inline: 14px;
  }

  .site-header .brand.brand-v11 { height: 48px; gap: 6px; }
  .site-header .brand.brand-v11 img { flex-basis: 40px; width: 40px; height: 40px; }
  .site-header .brand.brand-v11 strong { font-size: 18px !important; }
  .site-header .brand.brand-v11 small { font-size: 8.5px !important; }
  .site-header nav { display: none; }
  .site-header .header-cta { display: none; }
  .nova-bento-card,
  .nova-bento-card.dark { padding: 22px; border-radius: 17px; }
}

/* Keep the home feature heading as wide as its card grid. */
body.public-home-v2-shell .public-feature-section .nova-section-head {
  width: 100%;
  max-width: none;
  margin: 0 0 42px;
  box-sizing: border-box;
  text-align: left;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}
body.public-home-v2-shell .public-feature-section .nova-section-head h2 { max-width: 800px; }
body.public-home-v2-shell .public-feature-section .nova-section-head > p:last-child {
  max-width: 440px;
  justify-self: end;
  margin: 0;
  line-height: 1.8 !important;
}
@media (max-width: 900px) {
  body.public-home-v2-shell .public-feature-section .nova-section-head {
    max-width: none;
    margin: 0 0 30px;
    text-align: left;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
  body.public-home-v2-shell .public-feature-section .nova-section-head > p:last-child {
    max-width: 680px;
    justify-self: start;
  }
}

/* Preserve the approved brand casing in every shared header. */
body .site-header .brand.brand-v11 small { text-transform: none !important; }

/* Use one compact type scale for the website footer information row. */
#site-footer .footer-note p,
#site-footer .footer-note .site-version {
  font-size: 12px !important;
  line-height: 1.65 !important;
  letter-spacing: normal;
  margin: 0;
}
#site-footer .footer-note a { font-size: inherit !important; }
