:root { --fac-blue: #0878c9; --fac-cta-yellow: #ffd54a; --fac-cta-yellow-hover: #f4c633; --fac-cta-ink: #24313d; }
html, body { overflow-x: hidden; }
.bg-brand { background-color: var(--fac-blue); }
.text-brand { color: var(--fac-blue); }
.btn-primary, .btn-outline-primary, .btn-cta, .footer-cta .btn {
    --bs-btn-color: var(--fac-cta-ink);
    --bs-btn-bg: var(--fac-cta-yellow);
    --bs-btn-border-color: var(--fac-cta-yellow);
    --bs-btn-hover-color: var(--fac-cta-ink);
    --bs-btn-hover-bg: var(--fac-cta-yellow-hover);
    --bs-btn-hover-border-color: var(--fac-cta-yellow-hover);
    --bs-btn-focus-shadow-rgb: 255, 213, 74;
    --bs-btn-active-color: var(--fac-cta-ink);
    --bs-btn-active-bg: var(--fac-cta-yellow-hover);
    --bs-btn-active-border-color: var(--fac-cta-yellow-hover);
    --bs-btn-disabled-color: var(--fac-cta-ink);
    --bs-btn-disabled-bg: var(--fac-cta-yellow);
    --bs-btn-disabled-border-color: var(--fac-cta-yellow);
}
.footer-cta { background-color: var(--fac-blue); color: #fff; }
.site-footer { overflow-wrap: anywhere; }
.footer-credential { max-width: 260px; border-left: 3px solid var(--fac-cta-yellow); background: rgba(255,255,255,.07); }
.footer-links a { color: rgba(255,255,255,.75); text-decoration: none; }
.footer-links a:hover, .footer-links a:focus-visible { color: #fff; text-decoration: underline; }
.footer-promises { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem .85rem; margin-top: 3rem; color: rgba(255,255,255,.42); font-size: clamp(1rem, 1.65vw, 1.25rem); line-height: 1.4; text-align: center; }
.footer-promises strong { font-weight: 700; }
.footer-promises span { color: rgba(255,255,255,.22); }
.logo { width: 350px; max-width: 72vw; height: auto; }
.navbar .btn-cta { white-space: nowrap; }
.nav-call-compact { flex: none; }
.hero-section { padding: 3rem 0; }
.hero-section .lead { color: #495057 !important; }
.hero-inner { padding-block: 1rem; }
.hero-eyebrow { font-size: .75rem; line-height: 1.2; letter-spacing: .01em; background-color: #292929 !important; color: #fff !important; }
.hero-headline { font-size: clamp(2.25rem, 4.2vw, 3.125rem); }
.quote-card { border: 0; border-radius: 1rem; }
.quote-card .form-control, .quote-card .form-select { min-height: 46px; }
.about-video { display: block; width: 100%; max-width: 320px; aspect-ratio: 9 / 16; object-fit: contain; background: #111; border-radius: 1rem; }
.service-card img { height: 220px; object-fit: cover; }
.service-card { transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.pricing-card-featured { border-color: var(--fac-blue); border-width: 2px; }
.google-g { width: 38px; height: 38px; flex: none; }
.review-stars { color: #d99a00; font-size: 1.25rem; line-height: 1; letter-spacing: .12em; white-space: nowrap; }
.review-stars-large { font-size: 1.75rem; }
.review-avatars { display: flex; padding-left: .45rem; }
.review-avatar { width: 34px; height: 34px; margin-left: -.45rem; object-fit: cover; border: 2px solid #fff; border-radius: 50%; background: #d9e7f2; }
.review-logo { width: 96px; height: 96px; object-fit: contain; }
.credential-stat { border-left: 4px solid var(--fac-blue); }
.case-study-card { border: 0; box-shadow: 0 .35rem 1rem rgba(0,0,0,.08); }
.case-study-card .badge { white-space: normal; text-align: left; }
.case-study-image { width: 100%; height: 280px; object-fit: cover; }
.access-photo { width: 100%; height: 190px; object-fit: cover; }
.photo-caption { font-size: .875rem; color: #6c757d; }
.project-video { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #111; }
.field-photo { width: 100%; height: 240px; object-fit: cover; }
.service-photo { width: 100%; height: 360px; object-fit: cover; }
.simon-photo { display: block; width: 100%; max-width: 320px; height: 400px; object-fit: cover; border-radius: 1rem; }
.brand-logos { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); align-items: center; justify-items: center; gap: .75rem; margin-top: 2.5rem; }
.brand-logo { display: block; width: 100%; max-width: 160px; height: 56px; object-fit: contain; }
.price-card { border-radius: .75rem; }
.price-featured { border: 2px solid var(--fac-blue); }
.step-number { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #e7f3fc; color: #075f9f; font-weight: 700; }
.check-list { list-style: none; padding-left: 0; }
.check-list li { display: flex; align-items: flex-start; gap: .7rem; }
.check-list li::before { content: ""; flex: 0 0 1.25rem; width: 1.25rem; height: 1.25rem; margin-top: .1rem; border-radius: 50%; background: var(--fac-blue) url("/assets/images/fa-check-white.svg") center / 58% auto no-repeat; }
.check-list:not(.list-group) li { margin-bottom: .75rem; }
.check-list:not(.list-group) li:last-child { margin-bottom: 0; }
.field-error { display: block; color: #b02a37; font-size: .875rem; margin-top: .25rem; }
@media (min-width: 992px) and (max-width: 1199.98px) {
    .logo { width: 280px; }
}
@media (max-width: 991.98px) {
    .logo { width: 280px; max-width: 65vw; }
    .brand-logos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .brand-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-promises { flex-direction: column; gap: .45rem; }
    .footer-promises span { display: none; }
    .logo { width: 210px; max-width: 50vw; }
    .navbar-brand { margin-right: 0; }
    .service-photo { height: 260px; }
    .hero-section { padding: 2rem 0; }
    .hero-inner { padding-block: .5rem; }
}
@media (max-width: 379.98px) {
    .brand-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
