/* ==========================================================================
   Build Team theme — tokens + global structure
   Tokens measured from the Figma file (16,452 nodes, 2026-09-04).
   See BuildTeam_Figma_Inventory_20260904.md.
   ========================================================================== */

/* ---- Font: Poppins, self-hosted (OFL) ---- */
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Light.woff2') format('woff2');    font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Regular.woff2') format('woff2');  font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Medium.woff2') format('woff2');   font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-SemiBold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
/* Metric-matched fallback: Arial resized to Poppins, so text does not jump when the web font arrives */
@font-face { font-family:'Poppins Fallback'; src:local('Arial'), local('Helvetica'); size-adjust:112.16%; ascent-override:93.62%; descent-override:31.21%; line-gap-override:8.92%; }

/* ---- Tokens ---- */
:root {
  --font-primary: 'Poppins', 'Poppins Fallback', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --c-primary:     #00517D;
  --c-primary-70:  rgba(0,81,125,.7);
  --c-primary-20:  rgba(0,81,125,.2);
  --c-dark:        #0A142F;
  --c-black:       #000000;
  --c-text:        #000000;
  --c-text-80:     rgba(0,0,0,.8);
  --c-text-70:     rgba(0,0,0,.7);
  --c-text-60:     rgba(0,0,0,.6);
  --c-text-50:     rgba(0,0,0,.5);
  --c-text-40:     rgba(0,0,0,.4);
  --c-bg:          #F2F2F2;
  --c-surface:     #FFFFFF;
  --c-surface-alt: #F6F6F6;
  --c-surface-2:   #F9F9F9;
  --c-border:      #E4E3E3;
  --c-muted:       #A4A4A4;
  --c-ink-nav:     #1D1B20;
  --c-star:        #FBBC04;
  --c-link:        #0081FE;
  --c-focus:       #00517D;

  --r-xs:10px; --r-s:15px; --r-m:20px; --r-l:25px; --r-xl:30px; --r-2xl:40px; --r-pill:50px;

  --maxw:1464px; --gutter:24px; --header-h:57px; --header-top:24px;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;

  --fs-display: clamp(3rem, 2rem + 4vw, 6.875rem);
  --fs-h1:      clamp(2.5rem, 1.8rem + 2.8vw, 5.3rem);
  --fs-h2:      clamp(1.9rem, 1.4rem + 1.8vw, 3.75rem);
  --fs-h2-s:    clamp(1.75rem, 1.3rem + 1.4vw, 3.125rem);
  --fs-h3:      clamp(1.25rem, 1.1rem + .6vw, 1.875rem);
  --fs-h4:      1.4375rem;
  --fs-lead:    1.25rem;
  --fs-body-lg: 1.0625rem;
  --fs-body:    1rem;
  --fs-small:   .9375rem;
  --fs-xs:      .875rem;
  --lh-display:1.05; --lh-heading:1.3; --lh-body:1.6;

  --shadow-card: 0 2px 6px rgba(10,20,47,.04), 0 12px 32px rgba(10,20,47,.06);
}

/* ---- Reset ---- */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important} }
body { margin:0; font-family:var(--font-primary); font-size:var(--fs-body); line-height:var(--lh-body); color:var(--c-text); background:var(--c-bg); -webkit-font-smoothing:antialiased; }
img,svg,video { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4 { margin:0 0 var(--space-4); font-weight:500; line-height:var(--lh-heading); color:var(--c-black); }
h1 { font-size:var(--fs-h1); line-height:var(--lh-display); color:var(--c-primary); }
h2 { font-size:var(--fs-h2); }
h3 { font-size:var(--fs-h3); }
h4 { font-size:var(--fs-h4); }
p { margin:0 0 var(--space-4); }
a { color:var(--c-primary); }
a:hover { color:var(--c-dark); }
:focus-visible { outline:3px solid var(--c-focus); outline-offset:3px; border-radius:var(--r-xs); }
ul,ol { padding-left:1.25em; }
table { border-collapse:collapse; width:100%; }
th,td { text-align:left; padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--c-border); }
th { font-weight:600; color:var(--c-dark); }
strong { font-weight:600; }

/* ---- Layout primitives ---- */
.bt-container { width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.bt-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.bt-skip { position:absolute; left:-999px; top:0; background:var(--c-black); color:#fff; padding:var(--space-2) var(--space-4); border-radius:var(--r-pill); z-index:1000; }
.bt-skip:focus { left:var(--gutter); top:var(--space-2); }
.bt-main { min-height:50vh; }
.bt-card { background:var(--c-surface); border-radius:var(--r-xl); }
.bt-card--xl { border-radius:var(--r-2xl); }
.bt-card--alt { background:var(--c-surface-alt); }
.bt-card--primary { background:var(--c-primary); color:#fff; }
.bt-card--primary h2,.bt-card--primary h3,.bt-card--primary h4 { color:#fff; }
.bt-section { padding-block:var(--space-8); }
.bt-section__inner { padding:var(--space-7) clamp(var(--space-5), 4vw, 77px); }
.bt-page-header { padding-block:var(--space-8) var(--space-6); }
.bt-page-title { margin-bottom:0; }
.bt-prose { max-width:72ch; padding-block:var(--space-8); }
.bt-prose h2 { margin-top:var(--space-6); }

/* ---- Buttons: black pill / outline pill (no orange in the design) ---- */
/* Static blocks reset links to color:inherit; make button labels explicit so they never inherit a wrong colour. */
#bt-root a.bt-btn, a.bt-btn, .bt-btn { color:inherit; }
#bt-root a.bt-btn--primary, a.bt-btn--primary, .bt-btn--primary { color:#fff; }
#bt-root a.bt-btn--outline, a.bt-btn--outline, .bt-btn--outline { color:var(--c-black); }
#bt-root a.bt-btn--light, a.bt-btn--light, .bt-btn--light { color:var(--c-black); }
#bt-root a.bt-btn--primary:hover, a.bt-btn--primary:hover { color:#fff; }
.bt-btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); padding:0 30px; min-height:53px; border-radius:var(--r-xl); border:2px solid transparent; font:inherit; font-size:1.125rem; font-weight:500; line-height:1; text-decoration:none; cursor:pointer; white-space:nowrap; transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease; }
.bt-btn--primary { background:var(--c-black); color:#fff; }
.bt-btn--primary:hover { background:var(--c-primary); color:#fff; }
.bt-btn--outline { background:transparent; color:var(--c-black); border-color:var(--c-black); }
.bt-btn--outline:hover { background:var(--c-black); color:#fff; }
.bt-btn--light { background:#fff; color:var(--c-black); }
.bt-btn--light:hover { background:var(--c-surface-alt); color:var(--c-black); }
.bt-btn--lg { min-height:80px; padding:0 40px; font-size:1.5625rem; border-radius:43.5px; }
.bt-btn:active { transform:translateY(1px); }
.bt-icon-tile { width:52px; height:52px; border-radius:var(--r-xs); background:var(--c-primary); color:#fff; display:inline-flex; align-items:center; justify-content:center; }
.bt-icon-tile--light { background:#fff; color:var(--c-primary); }

/* ---- Header: transparent over page, pill nav, phone outline + black Instant Quote ---- */
.bt-header { position:sticky; top:0; z-index:100; background:transparent; padding-top:var(--header-top); transition:background-color .2s ease,padding .2s ease; }
.bt-header.is-stuck { background:rgba(242,242,242,.92); backdrop-filter:blur(10px); padding-top:var(--space-2); box-shadow:0 1px 0 var(--c-border); }
.bt-header__inner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:var(--space-4); min-height:var(--header-h); }
.bt-logo { display:inline-flex; align-items:center; text-decoration:none; }
.bt-logo img,.bt-logo svg { width:174px; height:37px; }
.bt-logo__text { font-size:2rem; font-weight:300; letter-spacing:-.02em; color:var(--c-primary); line-height:1; }
.bt-logo__text strong { font-weight:600; }

.bt-nav { display:flex; align-items:center; justify-content:center; }
.bt-nav__pill { display:flex; align-items:center; gap:var(--space-2); background:var(--c-surface-alt); border-radius:var(--r-pill); padding:6px; flex-shrink:0; }
.bt-header--on-hero .bt-nav__pill { background:rgba(255,255,255,.5); backdrop-filter:blur(8px); }
.bt-nav__list { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:2px; }
.bt-nav__list > li { position:relative; }
.bt-nav__list > li > a { display:inline-flex; align-items:center; gap:6px; padding:8px 20px; border-radius:var(--r-pill); color:var(--c-text-80); font-size:var(--fs-body-lg); text-decoration:none; line-height:1.7; white-space:nowrap; }
.bt-nav__list > li > a:hover,.bt-nav__list > li.current-menu-item > a,.bt-nav__list > li.current-menu-ancestor > a,.bt-nav__list > li.is-open > a { background:rgba(255,255,255,.8); color:var(--c-black); }
.bt-nav__list > li.menu-item-has-children > a::after { content:''; width:8px; height:8px; border-right:1.5px solid var(--c-ink-nav); border-bottom:1.5px solid var(--c-ink-nav); transform:translateY(-2px) rotate(45deg); }
.bt-nav__list > li.menu-item-has-children::after { content:''; position:absolute; left:0; right:0; top:100%; height:18px; display:none; }
.bt-nav__list > li.menu-item-has-children:hover::after, .bt-nav__list > li.menu-item-has-children:focus-within::after { display:block; }
.bt-nav__list .sub-menu { padding-top:var(--space-4); display:none; position:absolute; left:0; top:calc(100% + 14px); min-width:364px; background:var(--c-surface); border-radius:var(--r-m); padding:var(--space-5); box-shadow:var(--shadow-card); list-style:none; margin:0; z-index:110; }
.bt-nav__list > li:hover > .sub-menu,.bt-nav__list > li:focus-within > .sub-menu,.bt-nav__list > li.is-open > .sub-menu { display:block; }
.bt-nav__list .sub-menu a { display:flex; align-items:center; gap:var(--space-4); padding:12px 8px; color:var(--c-black); font-size:var(--fs-body-lg); text-decoration:none; border-radius:var(--r-xs); }
.bt-nav__list .sub-menu a:hover { background:var(--c-surface-alt); }
.bt-header__actions { display:flex; align-items:center; gap:var(--space-3); justify-self:end; }
.bt-nav-toggle { display:none; background:var(--c-surface-alt); border:0; padding:0; width:48px; height:48px; border-radius:50%; position:relative; cursor:pointer; }
.bt-nav-toggle__bar,.bt-nav-toggle__bar::before,.bt-nav-toggle__bar::after { content:''; display:block; position:absolute; left:14px; right:14px; height:2px; background:var(--c-black); transition:transform .2s ease,opacity .2s ease; }
.bt-nav-toggle__bar { top:23px; }
.bt-nav-toggle__bar::before { top:-7px; }
.bt-nav-toggle__bar::after { top:7px; }
.bt-nav-toggle[aria-expanded="true"] .bt-nav-toggle__bar { background:transparent; }
.bt-nav-toggle[aria-expanded="true"] .bt-nav-toggle__bar::before { transform:translateY(7px) rotate(45deg); }
.bt-nav-toggle[aria-expanded="true"] .bt-nav-toggle__bar::after { transform:translateY(-7px) rotate(-45deg); }
.bt-nav__mobile-actions { display:none; }

@media (max-width:1440px) {
  .bt-header__actions .bt-btn { padding:0 20px; font-size:1rem; min-height:48px; }
  .bt-nav__list > li > a { padding:8px 14px; font-size:1rem; }
}
@media (max-width:1280px) {
  .bt-header__book { display:none; }
}
@media (max-width:1100px) {
  .bt-header__phone { display:none; }
  .bt-nav__list > li > a { padding:8px 12px; font-size:.9375rem; }
  .bt-logo img, .bt-logo svg { width:140px; height:30px; }
}
@media (max-width:900px) {
  .bt-header { padding-top:var(--space-3); }
  .bt-nav-toggle { display:block; }
  .bt-header__actions .bt-btn { display:none; }
  .bt-nav { display:none; position:fixed; inset:0; background:var(--c-bg); z-index:200; overflow:auto; padding:calc(var(--header-h) + var(--space-6)) var(--gutter) var(--space-8); flex-direction:column; justify-content:flex-start; }
  .bt-nav.is-open { display:flex; }
  .bt-nav__pill { flex-direction:column; align-items:stretch; background:transparent; padding:0; gap:0; width:100%; }
  .bt-nav__list { flex-direction:column; align-items:stretch; gap:0; }
  .bt-nav__list > li > a { display:flex; justify-content:space-between; padding:var(--space-4) 0; border-bottom:1px solid var(--c-border); border-radius:0; background:transparent!important; font-size:1.125rem; color:var(--c-black); }
  .bt-nav__list .sub-menu { position:static; display:none; box-shadow:none; background:transparent; padding:0 0 var(--space-3) var(--space-3); min-width:0; }
  .bt-nav__list > li.is-open > .sub-menu { display:block; }
  .bt-nav__list .sub-menu a { padding:10px 0; font-size:var(--fs-body); }
  .bt-nav__mobile-actions { display:flex; flex-direction:column; gap:var(--space-3); margin:var(--space-6) 0 0; }
  .bt-nav__mobile-actions .bt-btn { width:100%; }
  body.bt-nav-open { overflow:hidden; }
}

/* ---- Footer: white, 4 columns, divider, logo + legal + social ---- */
.bt-footer { background:var(--c-surface); color:var(--c-dark); margin-top:var(--space-10); padding-top:var(--space-7); border-radius:var(--r-2xl) var(--r-2xl) 0 0; }
.bt-footer__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:var(--space-7) var(--space-6); padding-bottom:var(--space-7); max-width:1133px; }
.bt-footer__heading { font-size:var(--fs-body); font-weight:600; color:var(--c-dark); margin-bottom:var(--space-3); line-height:1.75; }
.bt-footer__list,.bt-footer__legal-list,.bt-social { list-style:none; margin:0; padding:0; }
.bt-footer__list li { margin-bottom:var(--space-2); }
.bt-footer__list a,.bt-footer__link { color:var(--c-dark); opacity:.5; text-decoration:none; font-size:var(--fs-small); }
.bt-footer__list a:hover,.bt-footer__link:hover { opacity:1; }
.bt-footer__address { font-style:normal; margin-bottom:var(--space-3); opacity:.5; font-size:var(--fs-small); }
.bt-footer__link { display:block; margin-bottom:var(--space-2); }
.bt-footer__legal { max-width:1133px; border-top:1px solid rgba(10,20,47,.06); padding-block:var(--space-6) var(--space-7); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:var(--space-5); }
.bt-footer__logo img,.bt-footer__logo svg { width:221px; height:36px; }
.bt-footer__legal-list { display:flex; justify-content:center; gap:var(--space-7); font-size:var(--fs-xs); }
.bt-footer__legal-list a { color:var(--c-dark); text-decoration:none; }
.bt-social { display:flex; gap:var(--space-4); }
.bt-social a { display:inline-flex; width:37px; height:32px; align-items:center; justify-content:center; border:1.5px solid rgba(10,20,47,.1); border-radius:50%; color:var(--c-dark); text-decoration:none; font-size:0; }
.bt-social svg { width:16px; height:16px; }
.bt-footer__copy { grid-column:1 / -1; font-size:var(--fs-xs); opacity:.5; margin:0; }
@media (max-width:700px) {
  .bt-footer__legal { grid-template-columns:1fr; justify-items:start; }
  .bt-footer__legal-list { justify-content:flex-start; gap:var(--space-5); }
}

/* ---- Static pages base ---- */
#bt-root { display:block; }
/* Aliases for pages ported from the live new-design PHP (their CSS was written against base.css names).
   Same values as the theme tokens, scoped to static blocks only. */
#bt-root {
  --c-blue:#00517D; --c-blue-2:#1B3E70; --c-blue-3:#203C86; --c-navy:#0A142F; --c-white:#FFFFFF;
  --c-bg-soft:#F6F6F6; --c-bg-soft-2:#F2F2F2;
  --c-text-muted:#656464; --c-text-faint:#A9A9A9; --c-border-2:#E7E7E7;
  --radius-pill:50px; --radius-card:16px; --font:var(--font-primary);
}

/* ==========================================================================
   Sections — appended per partial
   ========================================================================== */

/* v0.26: anchored headings clear the sticky header; visible focus on dark buttons */
html { scroll-padding-top:100px; }
.bt-btn:focus-visible, .gform_button:focus-visible { outline:3px solid var(--c-focus); outline-offset:3px; }

.bt-footer__account { grid-column:1 / -1; margin:0; font-size:var(--fs-xs); color:var(--c-dark); opacity:.6; } .bt-footer__account a { color:var(--c-dark); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

.bt-social a:hover { background:var(--c-dark); color:#fff; border-color:var(--c-dark); }
.bt-social { flex-wrap:wrap; }

/* Footer layout v0.28.2: use the full container width, logo flush left, copyright and account link on one row */
.bt-footer__grid { max-width:none; grid-template-columns:repeat(4,minmax(0,1fr)); }
.bt-footer__legal { max-width:none; }
.bt-footer__logo { display:inline-flex; }
.bt-footer__logo img, .bt-footer__logo svg { width:auto; max-width:221px; height:36px; object-fit:contain; object-position:left center; }
.bt-footer__bottom { grid-column:1 / -1; display:flex; justify-content:space-between; align-items:baseline; gap:var(--space-5); flex-wrap:wrap; }
.bt-footer__bottom .bt-footer__copy { flex:1 1 520px; }
.bt-footer__bottom .bt-footer__account { flex:0 0 auto; }
@media (max-width:900px) { .bt-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .bt-footer__grid { gap:var(--space-5) var(--space-4); padding-bottom:var(--space-5); } }

/* Outline buttons: white label on hover/focus (the #bt-root colour rule above was winning, black on black) */
#bt-root a.bt-btn--outline:hover, a.bt-btn--outline:hover, #bt-root a.bt-btn--outline:focus-visible, a.bt-btn--outline:focus-visible { color:#fff; }

/* Large buttons on phones: wrap instead of overflowing the screen (17 Oct 2026) */
@media (max-width:640px) { .bt-btn--lg { white-space:normal; text-align:center; max-width:100%; min-height:64px; padding:12px 28px; font-size:1.25rem; line-height:1.25; } }
