/* Design tokens. Values measured from the original site (see ref/extracted-css.md). */
:root {
  --blue: #1f6fb4;
  --navy: #0c2438;
  --navy-2: #153d5e;
  --gold: #ecb92f;
  --grey: #535554;
  --light: #eeeeee;
  --white: #ffffff;
  --black: #000000;
  --footer-bar: #191919;
  --footer-bar-text: #86898f;
  --line-dark: rgba(0, 0, 0, 0.1);
  --line-light: rgba(255, 255, 255, 0.3);

  --font-title: "Geologica", sans-serif;
  --font-body: "PT Sans", sans-serif;

  /* Fluid root size: rem scales with the viewport, as on the original. */
  --root-min: 0.938rem;
  --root-max: 1rem;
  --root-fluid: calc(0.752rem + 0.7936vw);

  /* Title scales (size x multiplier per breakpoint) */
  --h1-size: 2.1rem;
  --h2-size: 1.375rem;
  --h3-size: 1.25rem;
  --h4-size: 1.25rem;
  --h5-size: 1.125rem;
  --big-size: 2.5rem;
  --phone-size: 1.5rem;
  --quote-size: 1.125rem;

  --wrap: clamp(70vw, 22.467rem, 90vw);
  --wrap-text: 78rem;
  --grid-gap: calc(20px + 7 * ((100vw - 320px) / 1600));
  --ease: 0.3s ease;
}

@media (min-width: 700px) {
  :root {
    --root-min: 1rem;
    --root-max: 1.063rem;
    --root-fluid: calc(0.559rem + 1.008vw);
    --h1-size: calc(2.1rem * 1.3);
    --big-size: calc(2.5rem * 1.5);
    --phone-size: calc(1.5rem * 1.2);
  }
}

@media (min-width: 1280px) {
  :root {
    --root-min: 0.938rem;
    --root-max: 1.063rem;
    --root-fluid: calc(0.2107rem + 0.9091vw);
    --h1-size: calc(2.1rem * 1.56);
    --h2-size: calc(1.375rem * 0.97);
    --h3-size: calc(1.25rem * 0.89);
    --h4-size: calc(1.25rem * 0.89);
    --h5-size: calc(1.125rem * 0.89);
    --quote-size: calc(1.125rem * 0.95);
    --big-size: calc(2.5rem * 1.74);
    --phone-size: calc(1.5rem * 1.48);
    --wrap: 90vw;
  }
}

@media (min-width: 1500px) {
  :root {
    --root-min: 1rem;
    --root-fluid: calc(0.055rem + 1.008vw);
  }
}

@media (min-width: 1920px) {
  :root {
    --root-min: 1.125rem;
    --root-max: 1.375rem;
    --root-fluid: calc(-0.3295rem + 1.2121vw);
  }
}

/* Reset, typography, layout primitives, buttons. */
*, *::before, *::after { box-sizing: border-box; }
html {
  font-size: clamp(var(--root-min), var(--root-fluid), var(--root-max));
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.78;
  color: var(--black);
  background: var(--white);
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, address, fieldset { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, picture, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--blue); text-decoration: none; transition: color var(--ease); }
address { font-style: normal; }
button, input, select, textarea { font: inherit; color: inherit; }
strong, b { font-weight: 700; }

.icon { width: 1em; height: 1em; fill: currentColor; flex: 0 0 auto; }

/* Containers */
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; position: relative; }
.wrap-text { width: 100%; max-width: min(var(--wrap-text), var(--wrap)); margin: 0 auto; position: relative; }

/* Vertical rhythm */
:root {
  --gap-v: calc(30px + 15 * ((100vw - 320px) / 1600));
  --section-pad: clamp(7.4vw, 3.5rem, 16vw);
}
@media (min-width: 1280px) {
  :root { --section-pad: clamp(7.4vw, 3.5rem, 10vw); }
}
/* Box padding: a share of the box's own width, clamped around rem values */
:root {
  --box-pad-v: clamp(7.4%, 3.5rem, 10%);
  --box-pad-h: clamp(8%, 2rem, 10%);
  --box-pad-v-half: clamp(3.7%, 3.5rem, 5%);
  --box-pad-h-half: clamp(4%, 2rem, 5%);
}
.section { padding: var(--section-pad) 0; position: relative; }

/* Title styles */
.t1, h1 {
  font-family: var(--font-title);
  font-size: var(--h1-size);
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  word-break: break-word;
}
.t2, h2 {
  font-family: var(--font-title);
  font-size: var(--h2-size);
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
}
.t3, h3 {
  font-family: var(--font-title);
  font-size: var(--h3-size);
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
}
.t4, h4 {
  font-family: var(--font-title);
  font-size: var(--h4-size);
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
}
.t5, h5, .t6, h6 {
  font-family: var(--font-title);
  font-size: var(--h5-size);
  line-height: 1.5;
  font-weight: 700;
  text-transform: uppercase;
}
.big {
  font-family: var(--font-title);
  font-size: var(--big-size);
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
}
.phone-big {
  font-family: var(--font-title);
  font-size: var(--phone-size);
  line-height: 1;
  font-weight: 700;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.89rem 1.67rem;
  border-radius: 1.67rem;
  background: var(--blue);
  color: var(--white);
  font-family: var(--font-title);
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  border: 0;
  cursor: pointer;
  transition: background-color var(--ease), color var(--ease);
}
.btn .icon { font-size: 1rem; }
.btn-dark { background: var(--navy); }
.btn-light { background: var(--white); color: var(--black); }
@media (min-width: 1025px) {
  .btn:hover, .btn:focus { background: var(--navy-2); color: var(--white); }
  .btn-dark:hover, .btn-dark:focus { background: var(--blue); }
  .btn-light:hover, .btn-light:focus { background: var(--light); color: var(--black); }
}

/* Small "flair" cloud icon above section titles */
.flair { display: block; width: 4.5rem; height: 4.5rem; color: var(--blue); margin-bottom: 1rem; }
@media (max-width: 699px) { .flair { width: 5rem; height: 5rem; } }

/* Rich text copied from the original pages */
.rich > * + * { margin-top: 1rem; }
.rich p, .rich ul, .rich ol { margin: 1rem 0; }
.rich > :first-child { margin-top: 0; }
.rich > :last-child { margin-bottom: 0; }
.rich > :is(h1, h2, h3, h4, h5, h6):first-child {
  font-family: var(--font-title);
  font-size: var(--h1-size);
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}
.rich > :is(h1, h2, h3, h4, h5, h6):first-child + :is(h2, h3, h4, h5, h6) {
  font-size: var(--h2-size);
  line-height: 1.2;
  margin-top: 0.5rem;
}
.rich :is(h2, h3, h4, h5, h6) { margin-bottom: 1.5rem; }
.rich :is(h2, h3, h4, h5, h6):not(:first-child) { margin-top: 1.5rem; }
.rich :is(h2, h3, h4, h5, h6) + p { margin-top: 0; }
.rich ul li { position: relative; padding: 0.1rem 0 0.1rem 2.22rem; }
.rich ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9rem;
  width: 1.11rem;
  height: 0.278rem;
  background: var(--blue);
}
.rich ol { list-style: decimal; padding-left: 1.5rem; }
.rich .video { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.rich .callout {
  position: relative;
  margin-top: var(--gap-v);
  padding: var(--box-pad-v-half) var(--box-pad-h-half);
  background: var(--navy-2);
  color: var(--white);
  text-align: center;
}
.rich .callout:not(:last-child) { margin-bottom: var(--gap-v); }
.rich .callout a { color: var(--gold); }
.rich .callout:is(.light, .lines, .left-line) { background: none; color: inherit; }
.rich .callout.light { background: var(--light); }
.rich .callout.lines { border-top: 10px solid var(--blue); border-bottom: 10px solid var(--blue); }
.rich .callout.left-line { border-left: 10px solid var(--blue); text-align: left; }
.rich .callout:is(.light, .lines, .left-line) a { color: var(--blue); }
@media (max-width: 699px) {
  .rich .callout { padding-top: var(--box-pad-v); padding-bottom: var(--box-pad-v); }
}

/* Skip link */
.skip {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 5;
  border-radius: 0;
  transform: translateY(-100%);
}
.skip:focus { transform: none; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* Site header: logo, utility bar, main nav with flyouts, mobile drawer. */
.site-header { position: relative; z-index: 3; background: var(--white); color: var(--black); }
.site-header a { color: var(--black); }
.site-header a:hover, .site-header a:focus, .site-header .current > a { color: var(--blue); }
.site-header .bar { display: flex; align-items: center; justify-content: space-between; }

.brand {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}
.brand .logo { display: block; flex: 0 0 auto; max-width: calc(170px + 100 * ((100vw - 320px) / 1600)); }
.brand .logo img { max-height: calc(68px + 72 * ((100vw - 320px) / 1600)); }

.menu-toggle {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 2.2rem;
  color: var(--black);
}
.call-icon {
  display: block;
  padding: 0.922rem;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font-size: 1.3rem;
  line-height: 1;
}
.site-header a.call-icon, .site-header a.call-icon:hover { color: var(--white); }

.nav-col { flex: 1 1 auto; }
.utility, .main-nav-row .cta { display: none; }

/* Drawer (below 1280px) */
.drawer {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
  width: 83%;
  height: 100vh;
  overflow: auto;
  display: flex;
  flex-direction: column;
  padding: 0.811rem 0 4rem;
  background: var(--light);
  box-shadow: 0.1rem 0.1rem 1rem rgba(0, 0, 0, 0.2);
  transform: translateX(-100%);
  visibility: hidden;
  transition: transform var(--ease), visibility 0s linear 0.3s;
}
.drawer.open { transform: none; visibility: visible; transition: transform var(--ease); }
.drawer-close {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.6rem;
  width: 100%;
  padding: 0 2rem;
  margin-bottom: calc(var(--gap-v) * 0.4);
  border: 0;
  background: none;
  font-style: italic;
  cursor: pointer;
}
.drawer-close .icon { font-size: 1rem; }
.site-search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  background: var(--white);
  border-bottom: 1px solid var(--line-dark);
}
.site-search label { font-style: italic; }
.site-search input { flex: 1 1 auto; min-width: 0; border: 0; background: none; padding: 1px 2px; outline: none; }
.site-search button { display: flex; padding: 0; border: 0; background: none; color: var(--blue); cursor: pointer; }
.site-search .icon { font-size: 1rem; }

.mobile-nav { position: relative; flex: 1 1 auto; }
.mobile-nav > ul > li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0 2rem;
  border-bottom: 1px solid var(--line-dark);
}
.mobile-nav a {
  display: block;
  flex: 1 1 auto;
  padding: 1rem 0;
  font-family: var(--font-title);
  font-size: 0.875rem;
  font-weight: 700;
}
.mobile-nav .open-sub {
  display: block;
  margin-left: 1.8rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--blue);
  font-size: 1.2rem;
  cursor: pointer;
}
.mobile-nav .sub {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: auto;
  background: var(--navy-2);
  color: var(--white);
  transform: translateX(-100%);
  visibility: hidden;
  transition: transform var(--ease), visibility 0s linear 0.3s;
}
.mobile-nav .sub.open { transform: none; visibility: visible; transition: transform var(--ease); }
.mobile-nav .sub li { padding: 0 2rem; border-bottom: 1px solid var(--line-light); }
.mobile-nav .sub a { color: var(--white); padding: 0.8rem 0; }
.mobile-nav .sub .back {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  padding: 1rem 0;
  border: 0;
  background: none;
  color: var(--white);
  font-family: var(--font-title);
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
}
.mobile-nav .sub .back .icon { font-size: 1.2rem; color: var(--gold); }
.drawer-buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--grid-gap);
  margin-top: calc(var(--gap-v) * 1.2);
}
.site-header .drawer-buttons a.btn, .site-header .drawer-buttons a.btn:hover { color: var(--white); }
.drawer-social { margin-top: calc(var(--gap-v) * 1.2); text-align: center; }
.drawer-social .label { display: block; margin-bottom: calc(var(--gap-v) * 0.4); color: var(--grey); }
.social { display: flex; flex-wrap: wrap; gap: var(--grid-gap); }
.drawer-social .social { justify-content: center; }
.site-header .social a { color: var(--blue); }
.social .icon { width: 1.4rem; height: 1.4rem; }

.desktop-nav { display: none; }
.to-top { display: none; }

@media (min-width: 1280px) {
  .menu-toggle, .call-icon, .drawer-only { display: none; }
  .brand { width: auto; margin-right: calc(50px - 20 * ((100vw - 1280px) / 640)); }
  .utility {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0;
  }
  .utility::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    width: calc(100% - 9px + 5vw);
    background: var(--light);
  }
  .utility-nav { display: flex; align-items: center; margin-left: 1.8rem; }
  .utility-nav li + li { margin-left: 1.8rem; }
  .utility-nav a, .desktop-nav a { font-family: var(--font-title); font-size: 0.875rem; font-weight: 700; }
  .tagline { display: flex; align-items: center; }
  .tagline .t6 { margin-right: 1rem; color: var(--grey); }
  .main-nav-row { display: flex; align-items: center; justify-content: flex-end; }
  .main-nav-row .cta { display: block; padding: 1rem 0; }
  .site-header .main-nav-row .cta a.btn { color: var(--white); }

  /* The drawer becomes the plain desktop nav */
  .drawer {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    padding: 0;
    background: none;
    box-shadow: none;
    transform: none;
    visibility: visible;
    transition: none;
  }
  .drawer > :not(.desktop-nav) { display: none; }
  .desktop-nav { display: flex; align-items: stretch; }
  .desktop-nav > li {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    padding: 1rem 0;
    margin-right: calc(20px + 30 * ((100vw - 1280px) / 640));
  }
  .desktop-nav > li > a { display: flex; align-items: center; }
  .flyout {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1;
    min-width: 20rem;
    max-height: 30rem;
    overflow: hidden auto;
    padding: 2rem;
    background: var(--light);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--ease), visibility 0s linear 0.3s;
  }
  .desktop-nav > li:hover > .flyout, .desktop-nav > li:focus-within > .flyout {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--ease);
  }
  .flyout > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--line-dark); }
  .flyout a { display: block; flex: 1 1 auto; padding: 0.6rem 0; }
  .flyout .toggle-sub {
    margin-left: 1.8rem;
    padding: 0;
    border: 0;
    background: none;
    font-size: 1.2rem;
    cursor: pointer;
    transition: transform var(--ease);
  }
  .flyout .toggle-sub[aria-expanded="true"] { transform: rotate(180deg); }
  .flyout .grand { display: none; width: 100%; padding: 0.4rem 2rem; border-top: 1px solid var(--line-dark); }
  .flyout .grand.open { display: block; }
  .flyout .grand a { padding: 0.4rem 0; }

  .to-top {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 4;
    display: block;
    padding: 1.222rem;
    background: var(--blue);
    color: var(--white);
    transform: translateX(100%);
    transition: transform var(--ease);
  }
  .site-header a.to-top { color: var(--white); }
  .to-top.show { transform: none; }
}

/* Site footer and copyright bar. */
.site-footer {
  position: relative;
  overflow: hidden;
  padding: 3.5rem 0;
  color: var(--white);
  text-align: center;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.site-footer a { color: var(--white); }
.site-footer a:hover, .site-footer a:focus, .site-footer a.gold { color: var(--gold); }
.site-footer .wrap { z-index: 1; }
.site-footer .heading { display: block; margin-bottom: calc(var(--gap-v) * 0.4); }
.site-footer .logo { display: block; max-width: calc(170px + 100 * ((100vw - 320px) / 1600)); margin: 0 auto; }
.site-footer .contact { margin-top: var(--gap-v); }
.site-footer .contact .t6 { display: block; }
.footer-cols > * + *, .footer-half > * + * { margin-top: var(--gap-v); }
.footer-hours { margin-top: calc(var(--gap-v) * 0.6); }
.footer-hours li span { display: flex; align-items: center; justify-content: center; }
.footer-hours strong { margin-left: 0.4rem; }
.footer-links li + li { margin-top: calc(var(--gap-v) * 0.4); }
.site-footer .social { justify-content: center; margin-top: calc(var(--gap-v) * 0.4); }
.site-footer .social a { color: var(--gold); }

/* Full-bleed background photo behind a section */
.bg-photo { position: absolute; inset: 0; overflow: hidden; }
.bg-photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; }

@media (min-width: 700px) {
  .footer-half { display: flex; justify-content: center; align-items: flex-start; column-gap: 6.7rem; }
  .footer-half > * { flex: 1 1 0; }
  .footer-half > * + * { margin-top: 0; }
}
@media (min-width: 1280px) {
  .site-footer { text-align: left; }
  .site-footer .logo { margin: 0; }
  .footer-cols { display: flex; justify-content: space-between; align-items: flex-start; column-gap: 6.7rem; }
  .footer-cols > * { flex: 1 1 0; }
  .footer-cols > * + * { margin-top: 0; }
  .footer-half { justify-content: space-between; }
  .footer-hours li span { justify-content: flex-start; }
  .site-footer .social { justify-content: flex-start; }
}

.copyright {
  padding: 1.8rem 0;
  background: var(--footer-bar);
  color: var(--footer-bar-text);
  font-size: 0.8333rem;
  text-align: center;
}
.copyright a { color: var(--footer-bar-text); text-decoration: underline; }
.copyright a:hover, .copyright a:focus { color: var(--white); }
.copyright ul { display: flex; align-items: center; justify-content: center; }
.copyright li + li { margin-left: 1.4rem; }
@media (min-width: 700px) {
  .copyright { text-align: left; }
  .copyright ul { justify-content: flex-start; }
}

/* Service-page modules: banner, two-column content with side nav, read-more panel, content band, reviews, image strip. */
.dark { color: var(--white); }
.dark :is(h1, h2, h3, h4, h5, h6, .t1, .t2, .t3, .t4, .t5, .t6),
.site-footer :is(.t6, .heading) { color: var(--white); }
.rich .callout a[href^="tel:"] { color: inherit; }
.dark .rich a, .dark .rich a:hover { color: var(--gold); }

/* Light-background heading colours */
h2, h3, h5, .t2, .t3, .t5 { color: var(--blue); }
h6, .t6 { color: var(--grey); }
h1, h4, .t1, .t4 { color: var(--black); }
.rich > :is(h1, h2, h3, h4, h5, h6):first-child { color: var(--black); }

.flair { fill: currentColor; color: var(--blue); width: calc(75px - 5 * ((100vw - 320px) / 1600)); height: calc(75px - 5 * ((100vw - 320px) / 1600)); margin-bottom: 1rem; }

/* Banner */
.banner {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  text-align: center;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.banner .flair { margin-left: auto; margin-right: auto; color: var(--white); }
.banner .t1 { display: block; }
.banner-btn { margin-top: var(--gap-v); }

/* Two-column layout */
.two-col { position: relative; overflow: hidden; background: var(--white); }
.two-col-main { padding: var(--section-pad) 0; }
.side-nav {
  position: relative;
  padding: var(--section-pad) 0;
  background: var(--light);
  box-shadow: 0 0 0 100vmax var(--light);
  clip-path: inset(0 -100vmax);
}
@media (min-width: 1280px) {
  .two-col { padding: var(--section-pad) 0; }
  .two-col > .wrap { display: flex; justify-content: space-between; column-gap: 6.7rem; }
  .two-col-main { width: calc(62.5% - 3.35rem); padding: 0; }
  .side-nav {
    flex: 0 0 auto;
    align-self: stretch;
    width: calc(37.5% - 3.35rem);
    padding: 0;
    box-shadow: none;
    clip-path: none;
  }
}
@media (min-width: 1280px) { .side-nav nav { padding: var(--box-pad-v) var(--box-pad-h); } }
.side-nav-title { display: block; margin-bottom: calc(var(--gap-v) * 0.8); }
.side-nav-title > * , .side-nav h5.side-nav-title {
  font-family: var(--font-title);
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--black);
}
@media (min-width: 1280px) {
  .side-nav-title > *, .side-nav h5.side-nav-title { font-size: calc(2.5rem * 0.89); }
}
.side-nav ul { display: flex; flex-direction: column; gap: var(--grid-gap); }
.side-nav li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line-dark);
  color: var(--black);
}
.side-nav li a:hover, .side-nav li a:focus, .side-nav li.current a { color: var(--blue); }
.side-nav li .icon { width: 1.9rem; height: 1.9rem; color: var(--blue); opacity: 0; transition: opacity var(--ease); }
.side-nav li.current .icon, .side-nav li a:hover .icon { opacity: 1; }

/* Rich text: the panel behind "Continue Reading" */
.rich > h1 { margin-bottom: 0.5rem; }
.rich > :is(h2, h3, h4, h5, h6):first-child { margin-bottom: 1.5rem; }
.more { display: none; margin-top: calc(var(--gap-v) * 0.4); }
.more.open { display: block; }
.more.rich > :is(h1, h2, h3, h4, h5, h6):first-child { font-size: var(--h2-size); line-height: 1.2; color: var(--blue); }
.read-more {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: var(--gap-v);
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--font-title);
  font-size: 1rem;
  line-height: 1.1;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--black);
  cursor: pointer;
}
.read-more::before, .read-more::after { content: ""; flex: 1 1 0; height: 1px; background: var(--line-dark); }
.read-more::before { margin-right: 1rem; }
.read-more::after { margin-left: 1rem; }
.read-more .icon { width: 0.6rem; height: 0.6rem; margin-left: 0.4rem; color: var(--gold); }
.read-more .minus, .read-more[aria-expanded="true"] .plus { display: none; }
.read-more[aria-expanded="true"] .minus { display: block; }

/* Content band (narrow text section) */
.content-band { padding: 3.5rem 0; background: var(--white); }
.content-band .wrap-text { max-width: min(78rem, var(--wrap)); }

/* Reviews */
.reviews {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.reviews .wrap { z-index: 1; }
.reviews-head { text-align: center; }
.reviews-head .rating { width: 14em; height: 9.48em; margin: 1.26em auto; background: url(/images/google-ratings.webp) center / cover no-repeat; }
.reviews-head header { display: flex; flex-direction: column; margin-bottom: calc(var(--gap-v) * 0.8); }
.reviews-head header p { order: 0; }
.reviews-head header .t1 { order: 1; font-size: var(--h1-size); line-height: 1; }
.reviews-head header .t2 { order: 2; margin-top: 0.5rem; }
.reviews-track {
  display: flex;
  gap: var(--grid-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.reviews-track::-webkit-scrollbar { display: none; }
.reviews-track li {
  display: flex;
  flex: 0 0 100%;
  scroll-snap-align: start;
  border: 1px solid var(--line-light);
  background: var(--light);
  color: var(--black);
}
.reviews-track blockquote {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  padding: var(--box-pad-v) var(--box-pad-h);
}
.reviews .review-title { display: block; color: var(--blue); }
.review-quote { max-height: 10.83rem; overflow: auto; margin-top: calc(var(--gap-v) * 0.4); padding-right: 0.25rem; }
.reviews .review-author { display: block; margin-top: calc(var(--gap-v) * 0.4); color: var(--blue); }
/* Prev/next arrows under a scroll-snap track (reviews, service and staff cards) */
.track-nav { display: flex; justify-content: center; gap: 1.5rem; margin-top: calc(var(--gap-v) * 0.6); }
.track-nav[hidden] { display: none; }
.track-nav button { display: flex; padding: 0.5rem; border: 0; background: none; color: var(--gold); cursor: pointer; transition: opacity 0.2s, transform 0.2s; }
.track-nav svg { width: 2.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.track-nav .track-prev:hover:not(:disabled) { transform: translateX(-0.25rem); }
.track-nav .track-next:hover:not(:disabled) { transform: translateX(0.25rem); }
.track-nav button:disabled { opacity: 0.35; cursor: default; }
.track-nav button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.reviews-btn { margin-top: var(--gap-v); text-align: center; }
@media (min-width: 1280px) {
  .reviews-head, .reviews-track { margin: 0 3rem; }
  .reviews { padding-left: 3rem; padding-right: 3rem; }
  .reviews-track li { flex-basis: calc((100% - 2 * var(--grid-gap)) / 3); }
}

/* Image strip */
.image-strip { overflow: hidden; }
.image-strip picture { display: block; aspect-ratio: 5 / 4; }
.image-strip img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 700px) {
  .image-strip { display: flex; }
  .image-strip picture { flex: 1 1 0; }
}
.more.open + .read-more { margin-top: calc(var(--gap-v) * 0.6); }

/* Two halves side by side from 1280px (photo + text) */
.desktop-only { display: none; }
@media (min-width: 1280px) {
  .desktop-only { display: block; }
  .halves { display: flex; justify-content: space-between; align-items: flex-start; column-gap: 6.7rem; }
  .halves.reverse { flex-direction: row-reverse; }
  .halves > .half { width: calc(50% - 3.35rem); flex: 0 0 auto; }
}
.half img { width: 100%; }
.t-co {
  display: block;
  font-family: var(--font-title);
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
}
@media (min-width: 1280px) { .t-co { font-size: calc(2.5rem * 0.89); } }

/* CTA band with background photo */
.cta-band {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  text-align: center;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.cta-band .halves { align-items: center; }
.cta-band .flair { margin-left: auto; margin-right: auto; color: var(--white); }
.cta-band .big { display: block; }
.cta-band .rich { margin-top: calc(var(--gap-v) * 0.4); }
.cta-band-btn { margin-top: calc(var(--gap-v) * 0.8); }
@media (min-width: 1280px) {
  .cta-band { text-align: left; }
  .cta-band .flair { margin-left: 0; }
}

/* Content split: text half + photo half */
.split { position: relative; overflow: hidden; padding: 3.5rem 0; background: var(--white); }
.split-v1 { padding-top: 0; padding-bottom: 0; }
@media (min-width: 1280px) { .split-v1 { padding-bottom: 3.5rem; } }
.split-v1 .split-text { padding: var(--section-pad) 0; }
.split-pic { aspect-ratio: 1; }
.split-pic img { height: 100%; object-fit: cover; }
.split-v1 .split-pic { max-width: none; margin: 0 calc((100vw - 100%) / -2); }
@media (min-width: 1280px) {
  .split-v1 .split-text { padding: 0; }
  .split-v1 .split-pic { max-width: 100%; margin: 0; }
}

/* Grey call-to-action box under a content split */
.cta-box {
  position: relative;
  margin: 0 calc((100vw - 100%) / -2);
  padding: var(--box-pad-v-half) 0;
  background: var(--light);
}
.cta-box-body { padding: 0 calc((100vw - var(--wrap)) / 2); }
@media (max-width: 699px) {
  .cta-box { padding: var(--section-pad) 0; }
}
.cta-box .rich { margin-top: calc(var(--gap-v) * 0.4); }
.cta-box-btn { margin-top: calc(var(--gap-v) * 0.6); }
@media (min-width: 1280px) {
  .cta-box {
    display: flex;
    align-items: center;
    column-gap: 6.7rem;
    margin: calc(var(--gap-v) * 1.4) 0 0;
    padding: 0 var(--box-pad-h-half) 0 0;
  }
  .cta-box > picture { width: 13.5%; flex: 0 0 auto; }
  .cta-box-body { display: flex; align-items: center; justify-content: space-between; column-gap: 6.7rem; flex: 1 1 auto; padding: 0; }
  .cta-box-btn { margin-top: 0; flex: 0 0 auto; }
}

/* Lead forms (shared partial modules/_form.html) */
.form-grid { display: flex; flex-direction: column; gap: calc(var(--grid-gap) / 2); }
.form-grid > li {
  position: relative;
  min-height: calc(19px + 2.25rem);
  padding: 0.4rem 0.5rem 0.1rem;
  border: 1px solid var(--line-dark);
  background: var(--white);
  text-align: left;
}
@media (min-width: 700px) {
  .form-grid { flex-direction: row; flex-wrap: wrap; }
  .form-grid > li { flex: 1 1 100%; }
  .form-grid > li.half { flex: 1 1 calc(50% - var(--grid-gap) / 4); max-width: calc(50% - var(--grid-gap) / 4); }
}
.lead-form label { display: block; font-size: 14px; line-height: 1.2; }
.lead-form :is(input, select, textarea) {
  display: block;
  width: 100%;
  padding: 1px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1.2;
  outline: none;
}
.lead-form input { height: 1.5rem; }
.lead-form select { margin-top: 0.25rem; padding: 0 1rem 0 0; appearance: none; cursor: pointer; }
.lead-form textarea { min-height: 4.5rem; margin-bottom: 0.55rem; resize: vertical; }
.form-grid > li:has(select)::after {
  content: "";
  position: absolute;
  right: 0.85rem;
  bottom: 1.1rem;
  width: 0.65rem;
  height: 0.65rem;
  border-right: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  transform: rotate(45deg);
  pointer-events: none;
}
.form-grid > li.consent { min-height: 0; padding: 0; border: 0; background: none; text-align: center; }
.consent small { font-size: 0.833rem; }
.consent a { text-decoration: underline; }
.field-error[hidden] { display: none; }
.form-submit { margin-top: calc(var(--gap-v) * 0.8); text-align: center; }
.form-submit .btn { border: 0; cursor: pointer; }

/* Landing + home modules: video hero, Thumbtack badge, values + callout, services/video/staff cards,
   areas we serve, contact section. */

/* Background photos are drawn 2px larger than their box, as on the original */
:is(.hero, .expect-group, .cards-group) .bg-photo img { width: calc(100% + 2px); height: calc(100% + 2px); margin: -1px; }

/* Hero with background video (video + comic overlay from 1280px, photo below) */
.hero { position: relative; overflow: hidden; background: var(--white); }
.hero-video, .hero-overlay { display: none; }
.hero .wrap { z-index: 2; }
.hero-text {
  padding: calc(75px + 175 * ((100vw - 320px) / 1600)) 0 calc(75px + 185 * ((100vw - 320px) / 1600));
  text-align: center;
}
.hero .flair { margin-left: auto; margin-right: auto; }
.hero .big { display: block; }
.hero-tagline { display: block; margin-top: calc(10px + 10 * ((100vw - 320px) / 1600)); font-style: normal; }
.hero-btn { margin-top: calc(30px + 5 * ((100vw - 320px) / 1600)); }
@media (min-width: 1280px) {
  .hero-bg { display: none; }
  .hero-video { display: block; position: absolute; top: 0; right: 0; bottom: 0; width: 50%; }
  .hero-video video { width: 100%; height: 100%; object-fit: cover; }
  .hero-overlay { display: block; z-index: 1; pointer-events: none; }
  .hero-text { width: 50%; text-align: left; }
  .hero .flair { margin-left: 0; }
  .hero-tagline { width: 61%; }
}
.hero-play {
  position: absolute;
  left: var(--box-pad-h-half);
  bottom: 2rem;
  z-index: 3;
  padding: 0.4rem;
  border: 0;
  background: none;
  color: var(--black);
  font-size: 1.75rem;
  line-height: 0;
  cursor: pointer;
}

/* Thumbtack badge (static, no link) */
.tt-badge { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 0.6rem 0; text-align: center; }
.tt-badge strong { font-weight: 400; }
.tt-stars { display: flex; align-items: center; gap: 0.2rem; }
.tt-stars span { margin-left: 0.4rem; }

/* Group sections that share one background picture */
.expect-group, .cards-group { position: relative; overflow: hidden; background: var(--white); }
.expect-group > .bg-photo, .cards-group > .bg-photo { z-index: 0; }
/* The background image has slanted black lines at the top and bottom of its blue band and a cloud above
   the bottom one, so a plain cover crop ran them through headings, arrows and buttons. Draw it twice:
   - the <img>, at full width, pinned so its top line crosses the page centre --line-top down the section
     (between the services heading and the bottom of the cards); it fades out above its own cloud;
   - ::after, with the cloud centred on the staff arrows and button (--squad-mid above the section bottom)
     and at least --cloud-min wide so the cloud holds both; it fades in above that cloud. The bottom line
     falls below the section.
   Between the two, .bg-photo shows the band colour. Figures from the images (natural w x h; y of the top
   line at the centre column, the cloud's top, centre and half height): desktop 1920x2549 768/1538/1734/196,
   tablet 1024x2874 913/1995/2163/168, mobile 500x2492 727/1667/1786/119. */
.cards-group { container-type: inline-size; --line-top: 460px; --squad-mid: calc(var(--section-pad) + 64px); }
.cards-group > .bg-photo { background: linear-gradient(var(--white), var(--white)) top / 100% calc(var(--line-top) - 100px) no-repeat, var(--band); --band: #008fea; }
.cards-group > .bg-photo img {
  position: absolute;
  top: calc(var(--line-top) - 40cqw);
  left: -1px;
  height: auto;
  margin: 0;
  -webkit-mask-image: linear-gradient(#000 calc(60.34% - 100px), transparent calc(60.34% - 20px));
  mask-image: linear-gradient(#000 calc(60.34% - 100px), transparent calc(60.34% - 20px));
}
.cards-group::after {
  --below-mid: 42.448cqw; /* image height below the cloud centre: (h - centre) / w * rendered width */
  --half: 10.208cqw; /* cloud half height, rendered */
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 0;
  pointer-events: none;
  background: url(/images/images/panel-grp-bg-2.webp) center bottom calc(var(--squad-mid) - var(--below-mid)) / 100% auto no-repeat;
  -webkit-mask-image: linear-gradient(transparent calc(100% - var(--squad-mid) - var(--half) - 110px), #000 calc(100% - var(--squad-mid) - var(--half) - 30px));
  mask-image: linear-gradient(transparent calc(100% - var(--squad-mid) - var(--half) - 110px), #000 calc(100% - var(--squad-mid) - var(--half) - 30px));
}
.squad .track-nav button { color: var(--blue); }
@media (max-width: 1279px) {
  .cards-group > .bg-photo { --band: #0097f6; }
  .cards-group > .bg-photo img {
    top: calc(var(--line-top) - 89.16cqw);
    -webkit-mask-image: linear-gradient(#000 calc(69.42% - 100px), transparent calc(69.42% - 20px));
    mask-image: linear-gradient(#000 calc(69.42% - 100px), transparent calc(69.42% - 20px));
  }
  .cards-group::after {
    --below-mid: max(69.434cqw, 486.04px); /* --cloud-min 700px */
    --half: max(16.406cqw, 114.84px);
    background-image: url(/images/images/panel-grp-bg-2-tablet.webp);
    background-size: max(100%, 700px) auto;
  }
}
@media (max-width: 500px) {
  .cards-group > .bg-photo { --band: #018de6; }
  .cards-group > .bg-photo img {
    top: calc(var(--line-top) - 145.4cqw);
    -webkit-mask-image: linear-gradient(#000 calc(66.89% - 100px), transparent calc(66.89% - 20px));
    mask-image: linear-gradient(#000 calc(66.89% - 100px), transparent calc(66.89% - 20px));
  }
  .cards-group::after {
    --below-mid: max(141.2cqw, 564.8px); /* --cloud-min 400px */
    --half: max(23.8cqw, 95.2px);
    background-image: url(/images/images/panel-grp-bg-2-mobile.webp);
    background-size: max(100%, 400px) auto;
  }
}
.expect, .expect-cta, .services, .video-split, .squad { position: relative; z-index: 1; }
.group-head { margin-bottom: calc(var(--gap-v) * 0.8); text-align: center; }
.group-head .t2 { margin-top: 0.5rem; }
.expect .flair, .expect-cta .flair, .services .flair, .squad .flair { margin-left: auto; margin-right: auto; }
.group-btn { margin-top: var(--gap-v); text-align: center; }

/* Values cards */
.expect { padding: 3.5rem 0; }
.expect-cards { display: flex; flex-direction: column; gap: var(--grid-gap); }
.expect-card { height: 100%; padding: var(--box-pad-v) var(--box-pad-h); background: var(--light); text-align: center; }
.expect-icon { width: 4rem; height: 4rem; margin: 0 auto calc(var(--gap-v) * 0.6); color: var(--blue); fill: currentColor; }
.expect-card .t4 { display: block; }
.expect-card .rich { margin-top: calc(var(--gap-v) * 0.2); }
@media (min-width: 700px) {
  .expect-cards { flex-direction: row; flex-wrap: wrap; }
  .expect-cards > li { flex: 1 1 calc(50% - var(--grid-gap)); }
}
@media (min-width: 1280px) { .expect-cards > li { flex: 1 1 0; } }

/* Callout under the values (its framed box is part of the background picture) */
.expect-cta { padding: 0 0 max(3.5rem, 11.1vw); text-align: center; }
.expect-cta .t-co { display: block; }
.expect-cta .t3 { display: block; margin-top: calc(var(--gap-v) * 0.4); font-style: normal; }
.expect-cta p { margin-top: calc(var(--gap-v) * 0.4); font-size: 1.111rem; }
.expect-cta-btn { margin-top: var(--gap-v); }

/* Card sliders: services and staff */
.card-track {
  display: flex;
  gap: var(--grid-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.card-track::-webkit-scrollbar { display: none; }
.card-track > li { display: flex; flex: 0 0 100%; scroll-snap-align: start; }
.card-track a { display: flex; flex-direction: column; flex: 1 1 auto; background: var(--light); color: var(--black); text-align: center; }
@media (min-width: 700px) {
  .card-track > li { flex-basis: calc((100% - 2 * var(--grid-gap)) / 3); }
}

.services { padding: 3.5rem 0; }
.services .group-head { margin-bottom: calc(var(--gap-v) * 1.2); }
.service-cards a { border: 1px solid var(--line-dark); }
.service-pic { display: none; aspect-ratio: 5 / 3; overflow: hidden; }
.service-pic img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--ease); }
.service-text { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; padding: 10% 5%; }
.service-text .t6 { margin-top: calc(var(--gap-v) * 0.2); }
@media (min-width: 700px) { .service-pic { display: block; } }
@media (min-width: 1280px) {
  .services .wrap > * { margin-left: 3rem; margin-right: 3rem; }
  .services .wrap > .flair { margin-left: auto; margin-right: auto; }
}
@media (min-width: 1025px) { .service-cards a:hover img { transform: scale(1.05); } }

.squad { padding: 0 0 var(--section-pad); }
.video-split + .squad { padding-top: var(--section-pad); }
.squad-pic { aspect-ratio: 1; }
.squad-pic img { width: 100%; height: 100%; object-fit: cover; }
.squad-text { display: flex; flex-direction: column; justify-content: center; align-items: center; flex: 1 1 auto; padding: 1rem var(--box-pad-h); }
.squad-text .t2 { color: var(--blue); }
.squad-text em { font-style: normal; }

/* Text + video (home) */
.video-split { padding: 3.5rem 0; }
.video-split .flair { color: var(--white); }
.video-split .rich > :first-child { color: var(--white); }
.video-split .halves { align-items: center; }
.video-split video { width: 100%; margin-top: var(--gap-v); }
.video-btn { margin-top: var(--gap-v); }
@media (min-width: 1280px) { .video-split video { margin-top: 0; } }

/* Areas we serve + content */
.areas { padding: 3.5rem 0; background: var(--white); }
.areas .halves { align-items: center; }
.areas-map img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.areas-card { padding: var(--box-pad-v) var(--box-pad-h); background: var(--light); }
.areas-head { text-align: center; }
.areas-head .flair { margin-left: auto; margin-right: auto; }
.areas-head .t4 { display: block; }
.areas-head p { margin-top: calc(var(--gap-v) * 0.4); }
.areas-list { display: flex; flex-wrap: wrap; justify-content: space-between; padding: var(--box-pad-v) var(--box-pad-h); }
@media (min-width: 700px) { :is(.areas-card, .areas-list) { padding-top: var(--box-pad-v-half); padding-bottom: var(--box-pad-v-half); } }
.areas-list li { position: relative; width: 100%; margin-top: 0.5rem; padding: 0.1rem 0 0.1rem 2.22rem; }
.areas-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9rem;
  width: 1.11rem;
  height: 0.278rem;
  background: var(--blue);
}
@media (min-width: 700px) { .areas-list li { width: 47%; } }
.areas-text { margin-top: calc(var(--gap-v) * 1.8); }
@media (min-width: 1280px) { .areas-text { margin-top: 0; } }
.areas-btn { margin-top: var(--gap-v); }

/* Contact section with the lead form */
.landing-contact { position: relative; overflow: hidden; background: var(--white); }
.landing-contact-art { display: none; }
.landing-contact-art { margin-bottom: -1.2rem; }
.landing-contact-art img { width: 100%; }
.landing-contact-box { padding: 3.5rem 0; text-align: center; }
.landing-contact .flair { margin-left: auto; margin-right: auto; }
.landing-contact header { margin-bottom: calc(var(--gap-v) * 0.8); }
.landing-contact header .t2 { margin-top: 0.5rem; }
.landing-contact header p { margin-top: 1rem; }
@media (min-width: 1280px) {
  .landing-contact { padding-bottom: 3.5rem; }
  .landing-contact-art { display: block; }
  .landing-contact-box { padding: var(--box-pad-v-half) var(--box-pad-h-half); background: var(--light); }
}

/* Blog + staff modules */

/* Blog banners (list pages with breadcrumbs, single posts) */
.blog-banner {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.blog-banner .flair { color: var(--white); }
.blog-banner .t1 { display: block; }
@media (max-width: 1279px) {
  .blog-banner.centered { text-align: center; }
  .blog-banner.centered .flair { margin-left: auto; margin-right: auto; }
}
.crumbs { margin-top: calc(var(--gap-v) * 0.6); }
.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; }
.crumbs li + li::before { content: "/"; margin: 0 1rem; }
.crumbs a { color: inherit; }
.crumbs a:hover, .crumbs a:focus { color: var(--gold); }

/* Post cards (list, categories, related posts) */
.blog-list { padding: var(--section-pad) 0; background: var(--white); }
.blog-list-head {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: calc(var(--gap-v) * 0.6);
}
.post-grid { display: flex; flex-direction: column; gap: var(--grid-gap); }
@media (min-width: 700px) {
  .post-grid { flex-direction: row; flex-wrap: wrap; }
  .post-grid > li { flex: 0 0 auto; width: calc((100% - var(--grid-gap)) / 2); }
}
@media (min-width: 1280px) {
  .post-grid > li { width: calc((100% - 2 * var(--grid-gap)) / 3); }
  /* 4, 10, 16... posts go two per row so the last row is never a single card (as on the original) */
  .post-grid > li:first-child:nth-last-child(6n + 4),
  .post-grid > li:first-child:nth-last-child(6n + 4) ~ li { width: calc((100% - var(--grid-gap)) / 2); }
}
.post-grid > li { display: flex; }
.post-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--navy-2);
  color: var(--white);
  transition: background-color var(--ease);
}
.post-card.no-pic { flex-direction: row; align-items: center; }
.post-card:hover, .post-card:focus { background: var(--blue); }
.post-card picture { aspect-ratio: 400 / 225; flex: 0 0 auto; }
.post-card picture img { width: 100%; height: 100%; object-fit: cover; }
.post-card-text { width: 100%; padding: var(--box-pad-v) var(--box-pad-h); }
.post-card time { display: block; margin-bottom: calc(var(--gap-v) * 0.2); color: var(--white); }
.blog-list-head h2 { color: var(--black); }
.post-card .t2 { display: block; color: var(--white); }

/* Blog menu (categories + archives); a native disclosure, no script */
.blog-menu { position: static; }
.blog-list { --menu-btn: calc(45px + 9 * (100vw - 390px) / 1050); }
.blog-menu > summary {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--menu-btn);
  height: var(--menu-btn);
  background: var(--blue);
  color: var(--white);
  cursor: pointer;
  list-style: none;
}
.blog-menu summary::-webkit-details-marker { display: none; }
.blog-menu > summary .icon { width: 55%; height: 55%; }
.blog-menu-panel {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: 100%;
  max-width: 36rem;
  padding: var(--box-pad-v) var(--box-pad-h);
  padding-top: calc(var(--menu-btn) + var(--gap-v) * 0.4);
  background: var(--light);
}
.blog-menu-group + .blog-menu-group { margin-top: 1rem; }
.blog-menu-panel summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.blog-menu-panel summary .icon { width: 1rem; height: 1rem; transition: transform var(--ease); }
.blog-menu-panel details[open] > summary .icon { transform: rotate(180deg); }
.blog-menu-panel ul { padding: 0 var(--box-pad-h-half); margin-top: calc(var(--gap-v) * 0.4); }
.blog-menu-panel li + li { margin-top: 0.6rem; }
.blog-menu-panel a { color: var(--black); }
.blog-menu-panel a:hover, .blog-menu-panel a:focus { color: var(--blue); }

/* Pager counter (page 1 of N; later pages were loaded by script on the original) */
.pager { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: var(--gap-v); }
.pager .icon { color: var(--blue); }
.pager .icon.off { opacity: 0.7; }

/* Categories overview */
.blog-cat + .blog-cat { margin-top: var(--gap-v); }
.blog-cat-title {
  margin-bottom: calc(var(--gap-v) * 0.6);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line-dark);
}

/* Single post */
.blog-post { padding: min(var(--section-pad), 10vw) 0; background: var(--white); }
.post-pic-mobile { margin-bottom: calc(var(--gap-v) * 0.6); }
/* natural ratio, capped at 20rem and cropped from the left (as the original) */
.post-pic-mobile img { width: 100%; height: auto; max-height: 20rem; object-fit: cover; object-position: left; }
.blog-post .rich li > :is(ul, ol) { margin: 0.25rem 0 0; }
.blog-post .rich li + li { margin-top: 0.3rem; }
.post-meta { margin-bottom: calc(var(--gap-v) * 0.4); }
.post-meta time { display: block; font-weight: 700; letter-spacing: 0.1em; }
.post-meta-sep { display: none; margin: 0 1rem; }
@media (min-width: 700px) {
  .post-meta { display: flex; align-items: center; }
  .post-meta-sep { display: block; }
}
.blog-post .rich :is(h2, h3, h4, h5, h6) { margin: 1.5rem 0; }
.blog-post .rich > h1:first-child { margin-bottom: 0.5rem; }
.blog-post .rich > :is(h2, h3, h4, h5, h6):first-child {
  font-size: var(--h2-size);
  line-height: 1.2;
  color: var(--blue);
  margin-bottom: 1.5rem;
}
.post-cats { display: flex; flex-wrap: wrap; align-items: center; gap: 0 0.3rem; margin-top: calc(var(--gap-v) * 0.6); }
.post-cats ul { display: flex; flex-wrap: wrap; }
.post-cats li span { margin-right: 0.3rem; }
.post-nav { display: flex; justify-content: space-between; margin-top: calc(var(--gap-v) * 0.8); }
.post-side { margin-top: calc(var(--gap-v) * 1.2); }
.related-title { display: block; margin-bottom: calc(var(--gap-v) * 0.4); }
.related-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.related-track::-webkit-scrollbar { display: none; }
.related-track > li { display: flex; flex: 0 0 100%; scroll-snap-align: start; }
.related .post-card.no-pic { flex-direction: column; }
@media (min-width: 1280px) {
  .post-layout { display: flex; flex-direction: row-reverse; justify-content: space-between; column-gap: 6.7rem; }
  .post-main { flex: 1 1 auto; }
  .post-pic-mobile { display: none; }
  .post-side { flex: 0 0 auto; width: calc(37.5% - 3.35rem); margin-top: 0; }
  .post-pic img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
  .post-pic + .related { margin-top: calc(var(--gap-v) * 1.6); }
}

/* Staff cards */
.staff-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--light);
  color: var(--black);
  transition: background-color var(--ease);
}
.staff-photo { aspect-ratio: 1; flex: 0 0 auto; }
.staff-photo img { width: 100%; height: 100%; object-fit: cover; }
.staff-card-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex: 1 1 auto;
  padding: 1rem var(--box-pad-h);
  text-align: center;
}
.staff-card .t2 { display: block; }
.staff-card .t6 { display: block; font-style: normal; }
a.staff-card:hover, a.staff-card:focus { background: var(--blue); }
a.staff-card:hover :is(.t2, .t6), a.staff-card:focus :is(.t2, .t6) { color: var(--white); }

/* Staff profile */
.staff-profile, .staff-list { --top-pad: 5vw; }
@media (min-width: 1280px) { .staff-profile, .staff-list { --top-pad: 4vw; } }
.staff-profile { position: relative; overflow: hidden; padding: var(--top-pad) 0 var(--section-pad); background: var(--white); }
.staff-profile-card .staff-card { background: var(--navy-2); color: var(--white); }
.staff-profile-card .staff-card :is(.t2, .t6) { color: var(--white); }
.staff-bio { margin-top: var(--gap-v); }
.staff-bio > .t3 { display: block; margin-bottom: calc(var(--gap-v) * 0.2); }
@media (min-width: 1280px) {
  .staff-profile > .wrap { display: flex; justify-content: space-between; align-items: flex-start; column-gap: 6.7rem; }
  .staff-profile-card { flex: 0 0 auto; width: calc(33.333% - 3.35rem); }
  .staff-bio { flex: 1 1 auto; margin-top: 0; }
}

/* Staff contact form band (field styles come from 25-forms.css) */
.staff-contact {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.staff-contact .wrap { z-index: 1; }
.staff-contact-head { margin-bottom: calc(var(--gap-v) * 0.8); text-align: center; }
.staff-contact-head .flair { margin-left: auto; margin-right: auto; color: var(--white); }
.staff-contact-head .t1 { display: block; }
.staff-contact-head p { margin-top: 0.5rem; }

/* Staff listing */
.staff-list { position: relative; overflow: hidden; padding: var(--top-pad) 0 var(--section-pad); background: var(--white); }
.staff-list-intro { margin-bottom: var(--gap-v); }
.staff-grid { display: flex; flex-direction: column; gap: var(--grid-gap); }
.staff-grid > li { display: flex; }
@media (min-width: 700px) {
  .staff-grid { flex-direction: row; flex-wrap: wrap; justify-content: center; }
  .staff-grid > li { flex: 0 0 auto; width: calc((100% - var(--grid-gap)) / 2); }
}
@media (min-width: 1280px) {
  .staff-grid > li { width: calc((100% - 3 * var(--grid-gap)) / 4); }
}

/* Staff strip (about, service area, careers) */
.staff-strip { position: relative; overflow: hidden; padding: var(--section-pad) 0; background: var(--white); }
@media (min-width: 700px) { .staff-strip.flush-top { padding-top: 0; } }
.staff-strip-head { margin-bottom: calc(var(--gap-v) * 0.8); text-align: center; }
.staff-strip-head .flair { margin-left: auto; margin-right: auto; }
.staff-strip-head .t1 { display: block; color: var(--black); }
.staff-track {
  display: flex;
  gap: var(--grid-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.staff-track::-webkit-scrollbar { display: none; }
.staff-track > li { display: flex; flex: 0 0 100%; scroll-snap-align: start; border: 1px solid var(--line-dark); }
@media (min-width: 700px) {
  .staff-track > li { flex-basis: calc((100% - var(--grid-gap)) / 2); }
}
@media (min-width: 1280px) {
  .staff-strip .wrap { padding: 0 3rem; }
  .staff-track > li { flex-basis: calc((100% - 2 * var(--grid-gap)) / 3); }
}
.staff-strip-btn { margin-top: var(--gap-v); text-align: center; }

/* ContactS2 sits on a dark band: dark text inside the white fields, gold consent link, light button */
.staff-contact .form-grid > li:not(.consent) { color: var(--black); }
.staff-contact .consent a { color: var(--gold); }
.staff-contact .form-submit .btn { background: var(--white); color: var(--black); }
@media (min-width: 1025px) {
  .staff-contact .form-submit .btn:hover, .staff-contact .form-submit .btn:focus { background: var(--light); color: var(--black); }
}

/* Hub-page modules: module headers, service-link box, reviews + form, value cards, image CTA, intro + panel */

/* Module header: flair, big first title, blue subtitle, intro line */
.hub-head header { margin-bottom: calc(var(--gap-v) * 0.8); }
.hub-head header > :first-child {
  font-size: var(--h1-size);
  line-height: 1;
  color: var(--black);
}
.hub-head header > :first-child + :is(h2, h3, h4, h5, h6) {
  font-size: var(--h2-size);
  line-height: 1.2;
  color: var(--blue);
}
.hub-head header > * + * { margin-top: 0.5rem; }
.hub-head header > :is(h2, h3, h4, h5, h6) + p:not(:nth-child(2)) { margin-top: 1rem; }
.dark .hub-head header > *, .dark .hub-head header > :first-child + :is(h2, h3, h4, h5, h6) { color: var(--white); }
.hub-head.center { text-align: center; }
.hub-head.center .flair { margin-left: auto; margin-right: auto; }
.dark .hub-head .flair { color: var(--white); }
.hub-btn { margin-top: var(--gap-v); text-align: center; }

/* Full-bleed light panel below 1280px, boxed from 1280px */
.svc-box-panel, .intro-panel {
  background: var(--light);
  box-shadow: 0 0 0 100vmax var(--light);
  clip-path: inset(0 -100vmax);
}
.rv-form-box {
  background: var(--navy-2);
  box-shadow: 0 0 0 100vmax var(--navy-2);
  clip-path: inset(0 -100vmax);
}
@media (min-width: 1280px) {
  .svc-box-panel, .intro-panel, .rv-form-box { box-shadow: none; clip-path: none; }
}

/* Service links (ServicesV2, ContentV4) */
.svc-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-dark);
  color: var(--black);
  text-align: left;
}
.svc-list .icon { width: 1.89rem; height: 1.89rem; color: var(--blue); opacity: 0; transition: opacity var(--ease); }
@media (min-width: 1025px) {
  .svc-list a:hover .icon, .svc-list a:focus .icon { opacity: 1; }
}

/* ServicesV2: team photo with the link box overlapping it */
.svc-box { position: relative; overflow: hidden; background: var(--white); }
.svc-box-photo img { width: 100%; object-fit: cover; }
.svc-box-panel { z-index: 1; }
.svc-box-inner { padding: clamp(7.4%, 3.5rem, 16%) 0; }
@media (min-width: 700px) {
  .svc-box .svc-list { display: flex; flex-wrap: wrap; justify-content: space-between; column-gap: 6.7rem; }
  .svc-box .svc-list li { display: flex; width: calc(50% - 3.35rem); }
  .svc-box .svc-list li:nth-child(n+3) { margin-top: var(--grid-gap); }
  .svc-box .svc-list a { width: 100%; }
}
@media (min-width: 1280px) {
  .svc-box { padding-bottom: 3.5rem; }
  .svc-box-photo + .svc-box-panel { margin-top: -4.44rem; }
  .svc-box-inner { padding: var(--box-pad-v) var(--box-pad-h-half); }
}

/* Form_ReviewsV2: review cards beside the lead form */
.rv-form { position: relative; overflow: hidden; background: var(--white); }
.rv-form-reviews { padding: 3.5rem 0; }
.rv-list { display: flex; flex-direction: column; gap: var(--grid-gap); }
.rv-list li { border: 1px solid var(--line-dark); background: var(--light); }
.rv-list blockquote { display: flex; flex-direction: column; justify-content: center; padding: var(--box-pad-v) var(--box-pad-h-half); }
.rv-form .rv-title { display: block; color: var(--blue); }
.rv-quote { max-height: 7.2rem; overflow: auto; margin-top: calc(var(--gap-v) * 0.4); }
.rv-form .rv-author { display: block; margin-top: calc(var(--gap-v) * 0.4); color: var(--blue); }
.rv-form-inner { padding: clamp(7.4%, 3.5rem, 16%) 0; text-align: center; }
.rv-form-box a { color: var(--gold); }
.rv-form-box .btn { background: var(--white); color: var(--black); }
@media (min-width: 1025px) {
  .rv-form-box .btn:hover, .rv-form-box .btn:focus { background: var(--light); color: var(--black); }
}
@media (min-width: 1280px) {
  .rv-form { padding: 3.5rem 0; }
  .rv-form-reviews { padding: 0; }
  .rv-list blockquote { padding: var(--box-pad-v-half) var(--box-pad-h-half); }
  .rv-form-inner { padding: var(--box-pad-v) var(--box-pad-h); }
}

/* ValuesS3: value cards on the blue background */
.values {
  position: relative;
  overflow: hidden;
  padding: var(--section-pad) 0;
  background: linear-gradient(var(--navy-2), var(--navy));
}
.values .wrap { z-index: 1; }
.value-cards { display: flex; flex-direction: column; gap: var(--grid-gap); }
.value-cards li { flex: 1 1 0; background: var(--light); }
.value-cards .value {
  padding: var(--box-pad-v) var(--box-pad-h);
  color: var(--black);
  text-align: center;
}
.value-icon { width: 4rem; height: 4rem; margin: 0 auto calc(var(--gap-v) * 0.6); color: var(--blue); fill: currentColor; }
.value-text .t4 { display: block; }
.dark .value-cards .t4 { color: var(--black); }
.value-text .rich { margin-top: calc(var(--gap-v) * 0.2); }
@media (min-width: 700px) {
  .value-cards { flex-direction: row; flex-wrap: wrap; }
  .value-cards li { flex-basis: calc(50% - var(--grid-gap)); }
}
@media (min-width: 1280px) {
  .value-cards li { flex-basis: 0; }
}

/* ImagesS3: centred header, button, wide picture */
.image-cta { position: relative; overflow: hidden; background: var(--white); }
@media (min-width: 700px) { .image-cta.padded { padding-top: var(--section-pad); } }
.hub-split.flush-top { padding-top: 0; }
.image-cta .hub-head header { margin-bottom: calc(var(--gap-v) * 1.2); }
.image-cta .hub-head + .hub-btn { margin-top: 0; }
.image-cta-pic { margin-top: calc(var(--gap-v) * 0.4); }
.image-cta-pic img { width: 100%; }
@media (max-width: 699px) {
  .image-cta-pic { max-width: none; margin-left: calc((100vw - 100%) / -2); margin-right: calc((100vw - 100%) / -2); }
}

/* ValuesS1 / ContentV4: rich text beside a light panel (values rows or service links) */
.intro-box { position: relative; overflow: hidden; background: var(--white); }
.intro-text { padding: var(--section-pad) 0; }
.intro-panel-inner { padding: clamp(7.4%, 3.5rem, 16%) 0; }
.intro-box .rich .video { width: 100%; margin: 1rem 0; aspect-ratio: 2 / 1; object-fit: cover; }
/* ValuesS1 opens the page (first section under the header) */
.intro-box:not(.intro-links) { padding-top: 5vw; }
.value-rows { display: flex; flex-direction: column; gap: var(--grid-gap); text-align: center; }
.value-rows .value-icon { margin-bottom: 0; }
.value-rows .value-text { margin-top: calc(var(--gap-v) * 0.6); }
.intro-links .hub-head header { margin-bottom: calc(var(--gap-v) * 0.4); }
.intro-links .svc-list { display: flex; flex-direction: column; gap: var(--grid-gap); }
.intro-links .svc-list a { padding-top: 0; }
@media (min-width: 700px) {
  .value-rows .value { display: flex; align-items: center; text-align: left; }
  .value-rows .value-icon { flex: 0 0 auto; margin: 0; }
  .value-rows .value-text { flex: 1 1 auto; margin: 0 0 0 1.8rem; }
}
@media (min-width: 1280px) {
  .intro-box { padding: var(--section-pad) 0; }
  .intro-box:not(.intro-links) { padding-top: 3.5rem; }
  .intro-links { padding: 3.5rem 0; }
  .intro-box .halves { align-items: center; }
  .intro-text { padding: 0; }
  .intro-panel-inner { padding: var(--box-pad-v) var(--box-pad-h); }
}

/* One-off page modules */

/* Long text document in a light box on a dark band (privacy, SMS terms, site map) */
.doc-band { padding: 0; background: linear-gradient(var(--navy-2), var(--navy)); }
.doc-box { position: relative; background: var(--light); color: var(--black); }
.doc-box > .rich { padding: var(--section-pad) calc((100vw - var(--wrap)) / 2); }
.doc-box .rich :is(h2, h3) { margin-top: 1.5rem; }
.doc-box table { border-collapse: separate; border-spacing: 2px; }
.doc-box :is(th, td) { padding: 1px; vertical-align: middle; }
.doc-box th { text-align: center; }
@media (min-width: 700px) {
  .doc-band { padding: var(--section-pad) 0; }
  .doc-box { max-width: min(78rem, var(--wrap)); margin: 0 auto; }
  .doc-box > .rich { padding: var(--box-pad-v) var(--box-pad-h); }
}
.doc-band.light { padding: 5vw 0 0; background: var(--white); }
.doc-box .rich ul ul { margin: 0; }
.doc-box .rich li li, .doc-box.wrapped .rich li + li { margin-top: 0.3em; }
.doc-box .rich h1 + ul { margin-top: calc(var(--gap-v) * 0.6); }
@media (min-width: 700px) {
  .doc-band.light { padding: 3.5rem 0 var(--section-pad); }
}

/* Thank-you page: message + home button, photo on the right from 1280px */
.thank-you { background: var(--white); }
.thank-you-text { padding: var(--section-pad) 0; }
.thank-you-inner { padding: 0 var(--box-pad-h); }
.thank-you h1 { margin: 0; }
.thank-you header p { margin: 0.5rem 0 0; }
.thank-you header { margin-bottom: calc(var(--gap-v) * 0.8); }
.thank-you-btn { padding-top: calc(var(--gap-v) * 0.2); }
@media (min-width: 1280px) {
  .thank-you { display: flex; justify-content: space-between; align-items: stretch; }
  .thank-you-text { width: 50%; padding: calc(var(--section-pad) * 1.5) 0; }
  .thank-you-pic { position: relative; width: 50%; }
  .thank-you-pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
}

/* Financing: two loan offers side by side from 1280px */
.loan-offers { padding: var(--section-pad) 0; background: var(--white); }
.loan-offer { text-align: center; }
.loan-offer + .loan-offer { margin-top: var(--gap-v); }
.loan-offer h3 { margin: 0; }
.loan-offer a { display: inline-block; vertical-align: top; }
.loan-offer img { display: block; }
.loan-offer p { margin: 1rem 0; text-align: left; }
@media (min-width: 1280px) {
  .loan-offers { padding-top: 0; }
  .loan-offers .wrap { display: flex; justify-content: space-between; }
  .loan-offer { width: calc(50% - 3.35rem); }
  .loan-offer + .loan-offer { margin-top: 0; }
}

/* Notice box: dark box with a title and one line (coupons page) */
.notice { padding: var(--section-pad) 0; background: var(--white); }
.notice-box { padding: var(--box-pad-v) var(--box-pad-h); background: var(--navy-2); color: var(--white); text-align: center; }
.notice-box .t3 { display: block; color: var(--white); }
.text-large { margin: 1em 0; font-size: 1.111rem; line-height: 1.78; }

/* Site search page */
.search-page { padding: var(--section-pad) 0; background: var(--white); }
.search-title { margin: 0 0 calc(var(--gap-v) * 0.8); color: var(--black); text-align: center; }
.search-box { padding: var(--box-pad-v) var(--box-pad-h); background: var(--navy-2); text-align: center; }
.search-field { padding: 0.4rem 0.5rem 0.1rem; border: 1px solid rgba(255, 255, 255, 0.3); background: var(--white); color: var(--black); text-align: left; }
.search-field label { display: block; }
.search-field input { display: block; width: 100%; padding: 1px 2px; border: 0; background: none; font: inherit; }
.search-submit { margin-top: calc(var(--gap-v) * 0.6); }
.search-results { margin-top: calc(var(--gap-v) * 1.6); }
.search-empty[hidden] { display: none; }
@media (min-width: 700px) {
  .search-box { display: flex; align-items: center; }
  .search-field { flex: 1 1 auto; }
  .search-submit { flex: 0 0 auto; margin: 0 0 0 1rem; }
}

/* Reviews page: review cards, 3 per row from 1280px */
.review-cards { padding: var(--section-pad) 0; background: var(--white); }
.review-cards ul { display: flex; flex-direction: column; gap: 20.3px; }
.review-cards li { display: flex; background: var(--navy-2); color: var(--white); }
.review-cards blockquote { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; margin: 0; padding: var(--box-pad-v) var(--box-pad-h); }
.review-cards .stars { display: flex; gap: 0.2667em; margin-bottom: calc(var(--gap-v) * 0.6); font-size: 1.5rem; color: #ffd80a; }
.review-cards .stars .icon { width: 1em; height: 1em; fill: currentColor; }
.review-text, .review-name { margin-top: calc(var(--gap-v) * 0.4); }
.review-cards strong { display: block; color: inherit; }
.review-more { padding-top: calc(var(--gap-v) * 1); }
.btn-grey { background: var(--light); color: var(--black); }
@media (min-width: 1280px) {
  .review-cards ul { flex-direction: row; flex-wrap: wrap; gap: 24.9px; }
  .review-cards li { width: calc((100% - 2 * 24.9px) / 3); }
}

/* Video gallery: cards with a play badge, 3 per row from 700px */
.video-list { padding: var(--section-pad) 0; background: var(--white); }
.video-group-head { padding-bottom: 1rem; margin-bottom: calc(var(--gap-v) * 0.6); border-bottom: 1px solid var(--line-dark); }
.video-group-head h3 { margin: 0; color: var(--blue); }
.video-cards { display: flex; flex-direction: column; gap: 20.3px; }
.video-cards a { display: flex; flex-direction: column; height: 100%; background: var(--navy-2); color: var(--white); }
.video-thumb { position: relative; aspect-ratio: 520 / 292; }
.video-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-thumb .play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 1em; border-radius: 50%; background: var(--blue); color: var(--white); font-size: 1.3rem; line-height: 0; }
.video-thumb .play .icon { width: 1em; height: 1em; fill: currentColor; }
.video-card-text { padding: var(--box-pad-v) var(--box-pad-h); }
.video-card-text strong { display: block; color: inherit; }
.video-card-text time { display: block; margin-top: calc(var(--gap-v) * 0.2); color: var(--gold); font-weight: 700; letter-spacing: 0.1em; }
@media (min-width: 700px) {
  .video-card-text { padding-top: var(--box-pad-v-half); padding-bottom: var(--box-pad-v-half); }
  .video-cards { flex-direction: row; flex-wrap: wrap; gap: 24.9px; }
  .video-cards li { width: calc((100% - 2 * 24.9px) / 3); }
}

/* Single video page: our copy of the video + author line */
.video-page { padding: 5vw 0 var(--section-pad); background: var(--white); }
.video-page .video { display: block; width: 100%; aspect-ratio: 1218 / 586; object-fit: cover; }
.video-page address { margin-top: var(--gap-v); color: var(--grey); font-style: normal; }
@media (min-width: 1280px) {
  .video-page { padding-top: 4vw; }
  .video-page .wrap { max-width: calc(var(--wrap) * 2 / 3); }
  .video-page address { margin-top: calc(var(--gap-v) * 0.4); }
}
@media (min-width: 1025px) { .video-thumb .play { padding: 1.5em; } }

/* Contact page: form on the left, address box + photo on the right from 1280px */
.contact-page { background: var(--white); }
.contact-page-form { padding: var(--section-pad) 0; }
.contact-page-form .flair { margin-bottom: 1rem; color: var(--blue); }
.contact-page-form header { margin-bottom: calc(var(--gap-v) * 0.8); }
.contact-page-form .t1 { display: block; }
.contact-page-form header p { margin: 0.5rem 0 0; }
.contact-page-box { margin: 0 calc((100% - 100vw) / 2); padding: 3.5rem calc((100vw - 100%) / 2); background: var(--light); text-align: center; }
.contact-page-box .t4 { display: block; margin-bottom: calc(var(--gap-v) * 0.4); }
.contact-page-box address { font-style: normal; }
.contact-page-call { margin-top: calc(var(--gap-v) * 0.4); }
.contact-page-call .t6 { display: block; color: var(--grey); }
.contact-page-call .phone-big { color: var(--black); }
.contact-page-pic { display: none; }
.contact-page .form-grid > li.consent, .contact-page .form-submit { text-align: left; }
.contact-page-side { margin-top: var(--gap-v); }
@media (min-width: 1280px) {
  .contact-page { padding: 4vw 0; }
  .contact-page .wrap-text { display: flex; justify-content: space-between; align-items: center; column-gap: 6.7rem; }
  .contact-page-form, .contact-page-side { flex: 1 1 0; min-width: 0; }
  .contact-page-form { padding: 0; }
  .contact-page-box { margin: 0; padding: 3.5rem var(--box-pad-h); }
  .contact-page-side { margin-top: 0; background: var(--light); }
  .contact-page-pic { display: block; }
  .contact-page-pic img { display: block; width: 100%; height: auto; }
}

/* Careers: resume upload field (a plain file input, as on the original) */
.lead-form li:has(> input[type="file"]) label { margin-bottom: calc(var(--gap-v) * 0.2); }
.lead-form input[type="file"] { display: inline-block; padding: 0; }
.form-note { margin-top: calc(var(--gap-v) * 0.5); text-align: center; font-weight: 700; }
.form-note.is-error { color: #c0392b; }
