/* TCC surface and contrast rules, after the CMS layout variants. */
:root { --accent-dark: #80601f; --section-y: clamp(3.5rem, 6vw, 5.5rem); }
.site-header, .site-header.is-scrolled { background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 2px 16px #16284a08; backdrop-filter: none; }
.site-header__inner, .site-header.is-scrolled .site-header__inner { min-height: 82px; padding-block: 12px; gap: 16px; }
.site-header .site-header__brand-name, body:has(.hero--on-light) .site-header .site-header__brand-name { color: var(--brand); white-space: normal; font-size: 19px; line-height: 1.1; max-width: 215px; }
.tcc-brand-tagline { color: var(--ink-600); margin-top: 5px; font-size: 9px; }
.site-header .site-header__logo { width: 46px; height: 46px; box-shadow: none; padding: 0; }
.site-header .nav-link, .site-header:not(.is-scrolled) .nav-link { color: var(--ink-700); min-height: 44px; display: inline-flex; align-items: center; padding: 8px; font-size: 13px; white-space: nowrap; }
.site-header .nav-link.is-active, .site-header .nav-link:hover, .site-header:not(.is-scrolled) .nav-link:hover { color: var(--brand); background: var(--brand-50); }
.tcc-header-call, .tcc-menu-toggle { width: 44px; height: 44px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--brand); color: white; border: 1px solid var(--brand); cursor: pointer; }
.tcc-menu-toggle { color: var(--brand); background: var(--brand-50); border-color: var(--border); }
.tcc-desktop-nav { display: none; }
.site-drawer button { min-width: 44px; min-height: 44px; }
.site-drawer__panel { padding-bottom: env(safe-area-inset-bottom); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #9b742c; outline-offset: 4px; }
.tcc-header-call:active, .tcc-menu-toggle:active { transform: scale(.96); }
@media (min-width: 1280px) { .tcc-desktop-nav { display: flex; } .tcc-menu-toggle { display: none; } }
@media (max-width: 480px) { .site-header__inner { gap: 10px; } .site-header .site-header__brand-name { font-size: 16px; max-width: 165px; } .tcc-brand-tagline { font-size: 8px; letter-spacing: .08em; } .tcc-header-call { display: none; } }
.hero--style-split { padding-top: 82px; padding-bottom: 0; background: linear-gradient(115deg, #f4f6fa, #fff 70%); }
.hero--style-split .hero__inner { padding-block: clamp(3rem, 5vw, 5rem); }
.hero--style-split h1 { font-size: clamp(2.65rem, 4.6vw, 4.5rem); color: var(--brand); line-height: 1.05; }
.hero--style-split .hero__split-media { aspect-ratio: 1 / 1; border-radius: 18px; box-shadow: 0 18px 40px #16284a18; }
.hero--style-split .hero__lead { font-size: 1.125rem; max-width: 42ch; }
.hero--on-light .btn-primary { background: var(--brand); background-image: none; color: #fff; box-shadow: none; border: 1px solid var(--brand); }
.hero--on-light .btn-primary--white { background: #fff; color: var(--brand); border: 1px solid var(--brand-200); }
.hero--on-light .btn-primary:hover { background: var(--brand-700); color: #fff; }
.hero__trust-stars { display: none; }
.hero__trust-text { line-height: 1.8; }
@media (max-width: 900px) { .hero--style-split .hero__split-media { order: 0; aspect-ratio: 16/10; } .hero--style-split .hero__content { max-width: 640px; } .hero--style-split .hero__split-grid { gap: 2rem; } }
.bento-cell { min-height: 280px; }
.bento-cell__overlay { background: linear-gradient(transparent, #091327e8 55%); padding: 36px 22px 22px; }
.bento-cell__overlay h3 { color: #fff; font-size: 1.5rem; line-height: 1.2; margin-bottom: 8px; }
.bento-cell__overlay p { color: #edf1f7; font-size: .9375rem; line-height: 1.5; }
@media (max-width: 600px) { .bento-grid { grid-template-columns: 1fr; grid-auto-rows: auto; } .bento-cell, .bento-cell--wide { grid-column: auto; grid-row: auto; min-height: 280px; } }
.faq-contact__card { background: var(--brand); color: #fff; border-color: var(--brand); padding: 28px; }
.faq-contact__card h3 { color: #fff; }
.faq-contact__card p { color: #dce4ef; }
.faq-contact__card .faq-contact__all { color: #f0d99f; min-height: 44px; }
.cta-float-card { background: var(--brand); border: 1px solid var(--brand); }
.cta-float-card h2 { color: #fff; }
.cta-float-card p { color: #dce4ef; }
.cta-float-card .btn-primary, .faq-contact__card .btn-primary { background: #fff; color: var(--brand); background-image: none; box-shadow: none; }
.cta-float-card .btn-secondary, .faq-contact__card .btn-secondary { color: #fff; border-color: #93a5be; }
.cta-float-card .btn-secondary:hover, .faq-contact__card .btn-secondary:hover { background: #ffffff15; color: #fff; }
.home-sec--areas-map { background: #fff; }
.tcc-footer .text-ink-400, .tcc-footer .text-ink-500, .tcc-footer .text-ink-600 { color: #bdcadd; }
.tcc-footer h4 { color: #f0d99f !important; font-family: var(--font-body); font-weight: 600; }
.tcc-footer a { overflow-wrap: anywhere; }
.tcc-footer a[aria-label] { min-width: 44px; min-height: 44px; }
@media (max-width: 1023px) { .tcc-footer { padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }

/* Keep the header readable for every CMS hero choice, including hover and scroll. */
#site-header, #site-header.is-scrolled { background:#fff; color:#16284a; }
#site-header .site-header__brand-name { color:#16284a; font-weight:600; }
#site-header .tcc-brand-tagline { color:#4b5667; }
#site-header .nav-link { color:#38414f; font-size:14px; box-shadow:none; }
#site-header .nav-link.is-active, #site-header .nav-link:hover, #site-header .nav-link:focus-visible { color:#16284a; background:#e7ecf4; box-shadow:none; }
#site-header .tcc-menu-toggle { color:#16284a; background:#eef2f6; border-color:#b6c3d4; }
#site-header .tcc-header-call { color:#fff; background:#16284a; }
.hero.hero--on-light h1 { color:#16284a; }
.hero.hero--on-light .hero__lead, .hero.hero--on-light .hero__trust-text { color:#4b5667; }
.hero.hero--on-light .hero__trust-text strong { color:#16284a; }
.hero.hero--on-light .hero__badge { color:#20375b; background:#e7ecf4; border-color:#b6c3d4; backdrop-filter:none; }
.hero.hero--on-light .btn-primary { color:#fff; background:#16284a; background-image:none; border-color:#16284a; }
.hero.hero--on-light .btn-primary:hover, .hero.hero--on-light .btn-primary:focus-visible { color:#fff; background:#20375b; }
.hero.hero--on-light .btn-primary--white { color:#16284a; background:#fff; border-color:#9bb0cd; }
.hero.hero--on-light .btn-primary--white:hover, .hero.hero--on-light .btn-primary--white:focus-visible { color:#16284a; background:#e7ecf4; border-color:#40608d; }
@media (max-width:480px) {
  #site-header .site-header__brand { min-width:0; flex-shrink:1; }
  #site-header .site-header__brand-name { font-size:16px; max-width:165px; }
}
@media (max-width:360px) {
  #site-header .site-header__inner { gap:10px; }
  #site-header .site-header__brand-name { max-width:145px; }
}
