/* Shared by the React application and the pre-rendered HTML pages. */
:root { --bs-ink:hsl(24 15% 15%); --bs-green:hsl(143 71% 21%); --bs-bg:hsl(38 34% 96%); --bs-card:hsl(38 28% 98%); --bs-muted:hsl(24 8% 42%); --bs-border:hsl(35 20% 80%); --bs-header-height:80px; }
html { scroll-padding-top:calc(var(--bs-header-height) + 16px); }
.bs-header, .bs-footer, .bs-skip { font-family:'DM Sans','Inter',system-ui,sans-serif; font-size:16px; line-height:1.5; font-weight:400; letter-spacing:normal; color:var(--bs-ink); -webkit-font-smoothing:antialiased; }
.bs-header *, .bs-footer *, .bs-skip { box-sizing:border-box; }
.bs-header a, .bs-footer a { text-decoration:none; }
.bs-header a:focus-visible, .bs-header summary:focus-visible, .bs-footer a:focus-visible, .bs-skip:focus-visible { outline:2px solid var(--bs-green); outline-offset:4px; }
.bs-shell-container { width:100%; max-width:1280px; margin-inline:auto; padding-inline:32px; }
header.bs-header { position:fixed; inset:0 0 auto; height:var(--bs-header-height); z-index:60; display:block; margin:0; padding:0; border:0; border-bottom:1px solid var(--bs-border); background:var(--bs-card); box-shadow:0 1px 3px #00000008; backdrop-filter:none; }
.bs-header .bs-header-inner { height:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.bs-header .bs-brand, .bs-footer .bs-brand { display:inline-flex; align-items:center; gap:8px; color:var(--bs-ink); font-size:20px; line-height:1.2; font-weight:600; white-space:nowrap; }
.bs-header .bs-brand img, .bs-footer .bs-brand img { display:block; height:48px; width:48px; object-fit:contain; flex-shrink:0; }
.bs-header .bs-desktop-nav { display:flex; align-items:center; gap:4px; }
.bs-header .bs-nav-item { display:flex; align-items:center; }
.bs-header .bs-nav-link, .bs-header .bs-nav-toggle { display:block; padding:8px 10px; font-size:14px; line-height:20px; font-weight:500; color:var(--bs-ink); border-radius:6px; cursor:pointer; }
.bs-header .bs-nav-link:hover, .bs-header .bs-nav-toggle:hover, .bs-header .bs-nav-link[aria-current], .bs-header .bs-nav-toggle[aria-current] { background:hsl(36 35% 88% / .6); color:var(--bs-green); }
.bs-header .bs-dropdown { position:relative; margin:0; padding:0; border:0; }
.bs-header summary { list-style:none; }
.bs-header summary::-webkit-details-marker { display:none; }
.bs-header .bs-nav-toggle { display:flex; align-items:center; gap:8px; }
.bs-header .bs-chevron { display:block; width:16px; height:16px; flex-shrink:0; transition:transform .15s ease; }
.bs-header .bs-dropdown[open] .bs-chevron { transform:rotate(180deg); }
.bs-header .bs-dropdown-panel::before { content:""; position:absolute; top:-9px; left:-1px; right:-1px; height:9px; }
.bs-header .bs-dropdown-panel { position:absolute; top:100%; right:0; width:256px; padding:8px; border:1px solid var(--bs-border); border-radius:6px; background:var(--bs-card); box-shadow:0 8px 20px #00000018; }
.bs-header .bs-dropdown-panel a { display:block; padding:10px 12px; font-size:14px; line-height:20px; color:var(--bs-ink); border-radius:4px; }
.bs-header .bs-dropdown-panel a:hover { background:hsl(36 35% 88%); }
.bs-header .bs-header-cta, .bs-header .bs-mobile-cta { display:inline-flex; justify-content:center; align-items:center; background:var(--bs-green); color:hsl(42 70% 92%); border:1px solid transparent; border-radius:6px; padding:8px 16px; font-size:14px; line-height:20px; font-weight:500; }
.bs-header .bs-header-cta:hover, .bs-header .bs-mobile-cta:hover { background:hsl(143 71% 17%); }
.bs-header .bs-mobile-menu { display:none; position:relative; margin:0; padding:0; border:0; }
.bs-header .bs-mobile-menu > summary { display:flex; padding:10px; color:var(--bs-ink); cursor:pointer; }
.bs-header .bs-mobile-panel { position:absolute; top:100%; right:0; width:min(320px,calc(100vw - 32px)); max-height:calc(100dvh - var(--bs-header-height) - 20px); overflow-y:auto; overscroll-behavior:contain; background:var(--bs-card); border:1px solid var(--bs-border); border-radius:6px; box-shadow:0 8px 20px #00000018; padding:16px; }
.bs-header .bs-mobile-group { margin-bottom:12px; }
.bs-header .bs-mobile-panel a:not(.bs-mobile-cta) { display:block; color:var(--bs-ink); padding:8px; font-size:14px; line-height:20px; border-radius:4px; }
.bs-header .bs-mobile-panel a:hover { background:hsl(36 35% 88%); }
.bs-header .bs-mobile-panel .bs-mobile-top { font-weight:600; font-size:16px; }
.bs-header .bs-mobile-children { padding-left:12px; }
.bs-skip { position:fixed; top:8px; left:16px; z-index:100; padding:12px 20px; border-radius:6px; background:var(--bs-card); transform:translateY(-150%); }
.bs-skip:focus { transform:translateY(0); }
footer.bs-footer { display:block; margin:0; padding:0; background:var(--bs-card); border:0; border-top:1px solid var(--bs-border); text-align:left; }
.bs-footer .bs-footer-inner { padding-block:64px; }
.bs-footer .bs-footer-grid { display:grid; grid-template-columns:1.5fr repeat(4,1fr); gap:32px; }
.bs-footer .bs-footer-brand > p { color:var(--bs-muted); font-size:14px; line-height:1.625; margin:16px 0 24px; max-width:320px; }
.bs-footer address { color:var(--bs-muted); font-size:14px; line-height:1.8; font-style:normal; }
.bs-footer a { color:var(--bs-muted); font-weight:400; }
.bs-footer a:hover { color:var(--bs-green); text-decoration:underline; }
.bs-footer .bs-brand:hover { text-decoration:none; }
.bs-footer .bs-footer-group h3 { margin:0 0 16px; padding:0; color:var(--bs-ink); font-size:16px; font-weight:600; line-height:24px; }
.bs-footer ul { list-style:none; padding:0; margin:0; }
.bs-footer li { padding:0; margin:0 0 8px; }
.bs-footer li a { font-size:14px; line-height:20px; }
.bs-footer .bs-footer-bottom { margin-top:32px; padding-top:32px; border-top:1px solid var(--bs-border); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.bs-footer .bs-footer-bottom p { color:var(--bs-muted); font-size:14px; line-height:20px; margin:0; }
/* Match the application typography, colour, gutters and controls on HTML pages. */
body.bs-static { --green:var(--bs-green); --green-d:hsl(143 71% 17%); --ink:var(--bs-ink); --muted:var(--bs-muted); --cream:var(--bs-bg); --cream2:var(--bs-card); --border:var(--bs-border); background:var(--bs-bg); color:var(--bs-ink); font-family:'DM Sans','Inter',system-ui,sans-serif; font-size:16px; line-height:1.5; }
.bs-static main { min-width:0; }
.bs-static main > .hero { min-height:max(400px,50vh); height:auto; padding:128px 32px 64px!important; display:flex; align-items:center; }
.bs-static main > .hero { background-image:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.4)),url("/site-assets/site-hero.webp"); }
.bs-static .hero .hero-inner { width:100%; max-width:1216px; }
.bs-static .hero h1 { font-size:48px; line-height:1; font-weight:600; letter-spacing:normal; max-width:768px; margin-bottom:24px; }
.bs-static .hero p.sub { font-size:20px; line-height:1.625; max-width:672px; margin-bottom:32px; }
.bs-static main > section { max-width:1280px; padding:80px 32px; }
.bs-static main section h2 { font-size:30px; font-weight:600; line-height:1.2; }
.bs-static main section p { font-size:16px; line-height:1.625; }
.bs-static .card, .bs-static .step, .bs-static .faq details, .bs-static .cities a { border-radius:6px; }
.bs-static .cta-row a { border-radius:6px; font-size:14px; line-height:20px; font-weight:500; padding:12px 20px; }
.bs-static .trust { font-size:14px; }
@media (max-width:1279px) { .bs-header .bs-header-cta { display:none; } }
@media (max-width:1023px) {
  .bs-header .bs-desktop-nav { display:none; }
  .bs-header .bs-mobile-menu { display:block; }
  .bs-footer .bs-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bs-footer .bs-footer-brand { grid-column:1 / -1; }
}
@media (max-width:767px) {
  :root { --bs-header-height:64px; }
  .bs-shell-container { padding-inline:24px; }
  .bs-footer .bs-footer-inner { padding-block:48px; }
  .bs-footer .bs-footer-bottom { flex-direction:column; text-align:center; }
  .bs-static main > .hero { height:auto; min-height:400px; padding:104px 24px 48px!important; }
  .bs-static .hero h1 { font-size:36px; line-height:1.12; }
  .bs-static .hero p.sub { font-size:18px; }
  .bs-static main > section { padding:64px 24px; }
}
@media (max-width:639px) {
  .bs-shell-container { padding-inline:16px; }
  .bs-static main > .hero { padding-inline:16px!important; }
  .bs-static main > section { padding-inline:16px; }
  .bs-static .cards, .bs-static .cities { grid-template-columns:minmax(0,1fr); }
  .bs-footer .bs-footer-grid { grid-template-columns:minmax(0,1fr); }
  .bs-footer .bs-footer-brand { grid-column:auto; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
