/* Shared repair layer: one navigation layout and predictable asset paths. */
:root { --header-height: 108px; }
html { scroll-padding-top: calc(var(--header-height) + 20px); }
body { overflow-wrap: break-word; }
img { max-width: 100%; }
main, section, .container, .brief-hero-copy, .page-copy { min-width: 0; }
.page-proof-item { min-width: 0; overflow-wrap: anywhere; }
.page-step, .page-card, .page-panel { min-width: 0; overflow-wrap: anywhere; }
[id] { scroll-margin-top: calc(var(--header-height) + 20px); }
.site-header#top { scroll-margin-top: 0; }
body .has-js, .has-js [data-reveal] { opacity: 1; transform: none; }
.site-header { position: sticky; top: 0; z-index: 100; backdrop-filter: none; }
.site-header .nav-wrap { position: static; width: min(1380px,calc(100% - 64px)); min-height: 108px; gap: 24px; }
.brand-image { flex: 0 0 auto; line-height: 1; }
.brand-logo-frame { position: relative; display: block; width: 170px; height: 102px; overflow: hidden; background: #000; }
.brand-logo { display: block; width: 194px; max-width: none; height: auto; transform: translate(-12px,-14px); }
.site-header .primary-nav { position: static; display: flex; flex-direction: row; align-items: center; gap: clamp(10px,1.15vw,18px); padding: 0; margin: 0; overflow: visible; max-height: none; border: 0; box-shadow: none; }
.site-header .primary-nav > a:not(.nav-cta), .site-header .primary-nav > .nav-dropdown > summary { min-height: 44px; padding-block: 11px; line-height: 1.5; white-space: nowrap; }
.site-header .menu-toggle { display: none; flex: 0 0 44px; width: 44px; height: 44px; }
.site-header .nav-dropdown { position: static; width: auto; }
.site-header .nav-compact-panel, .site-header .nav-mega-panel { position: absolute; top: 100%; left: 50%; right: auto; width: min(1180px,calc(100vw - 48px)); min-width: 0; max-height: calc(100vh - var(--header-height) - 20px); max-height: calc(100dvh - var(--header-height) - 20px); overflow-y: auto; overscroll-behavior: contain; transform: translateX(-50%); translate: none; padding: 22px; margin: 0; border-radius: 0 0 12px 12px; }
.site-header .nav-compact-panel { width: min(440px,calc(100vw - 48px)); padding: 12px; }
.site-header .nav-mega-panel { grid-template-columns: repeat(5,minmax(0,1fr)); }
.site-header .nav-full-industries { grid-template-columns: repeat(3,minmax(0,1fr)); }
.site-header .nav-mega-group { min-width: 0; padding: 0 13px; }
.site-header .nav-mega-title { font-size: 11px !important; }
.site-header .nav-mega-group a, .site-header .nav-compact-panel a { display: block; min-height: 40px; padding: 10px 8px; overflow-wrap: anywhere; }
.site-header .primary-nav .nav-cta { flex-shrink: 0; min-height: 44px; padding: 11px 15px !important; margin: 0; align-self: center; }
.site-header .primary-nav .nav-cta, .site-header .primary-nav .nav-cta * { color: #090909 !important; }
.site-header .primary-nav a[aria-current="page"], .site-header .nav-dropdown.is-current > summary { color: #ffcb28 !important; }
.site-header .primary-nav > a[aria-current="page"], .site-header .nav-dropdown.is-current > summary { text-decoration: underline; text-underline-offset: 7px; text-decoration-color: #e02626; }
.site-header .primary-nav .nav-cta[aria-current="page"] { color: #000 !important; }
.primary-nav summary:focus-visible, .primary-nav a:focus-visible { position: relative; z-index: 1; }
.site-footer.full-site-footer { padding-bottom: 65px; border-top: 1px solid #461010; }
.site-footer.full-site-footer .footer-main { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 38px 30px; align-items: start; padding: 48px 0 36px; }
.site-footer.full-site-footer .footer-combo { grid-column: span 2; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.8fr); gap: 30px; }
.site-footer .footer-brand-column { grid-column: auto; min-width: 0; }
.site-footer .brand-logo-frame { width: 250px; height: 150px; }
.site-footer .brand-logo { width: 286px; transform: translate(-18px,-21px); }
.site-footer .footer-address { max-width: 355px; margin: 12px 0 18px; color: #fff; font-size: 13px; font-style: normal; line-height: 1.85; }
.footer-contact-details { display: grid; gap: 12px; margin-bottom: 14px; }
.footer-contact-details a { display: grid; gap: 3px; min-height: 38px; overflow-wrap: anywhere; }
.footer-contact-details a > span { color: #e7b300 !important; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.footer-contact-details a > strong { font-size: 13px; font-weight: 500; }
.footer-contact-details a:hover strong, .footer-directions:hover { color: #ffcb28 !important; }
.site-footer .footer-directions { display: inline-flex; min-height: 38px; align-items: center; font-size: 12px; text-decoration: underline; text-underline-offset: 5px; }
.site-footer .footer-links { min-width: 0; gap: 3px; }
.site-footer .footer-links > a { min-height: 34px; padding-block: 6px; overflow-wrap: anywhere; }
.site-footer .footer-heading { margin-bottom: 11px; }
.site-footer .footer-bottom { min-height: 65px; display: flex; flex-wrap: wrap; gap: 12px 25px; justify-content: space-between; font-size: 11px; }
.site-footer .footer-bottom > a { overflow-wrap: anywhere; }
.site-footer .footer-bottom span:nth-child(2) { margin-left: 0; }
.floating-call { z-index: 80; }
body .floating-call, body .floating-call span { color: #090909 !important; }
.comparison-table-wrap, .table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.button { max-width: 100%; text-align: center; }
.button:disabled { opacity: .55; cursor: not-allowed; }
html.effects-disabled { scroll-behavior: auto; }
@media (max-width: 1279px) {
  html:not(.has-js) .site-header { position: relative; }
  :root { --header-height: 94px; }
  .site-header .nav-wrap { position: static; flex-wrap: wrap; min-height: 94px; width: min(1380px,calc(100% - 48px)); }
  .site-header .brand-logo-frame { width: 150px; height: 90px; }
  .site-header .brand-logo { width: 172px; transform: translate(-11px,-13px); }
  .has-js .site-header .menu-toggle { display: grid; place-items: center; cursor: pointer; }
  .site-header .primary-nav, .brief-page .site-header .primary-nav { position: static; width: 100%; flex: 1 1 100%; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 10px 24px 24px; border-bottom: 1px solid #851515; background: #080808 !important; }
  .has-js .site-header .primary-nav { position: absolute; top: 100%; left: 0; right: 0; display: none !important; max-height: calc(100vh - var(--header-height)); max-height: calc(100dvh - var(--header-height)); overflow-y: auto !important; overscroll-behavior: contain; box-shadow: 0 20px 40px #000b; }
  .has-js .site-header .primary-nav.is-open { display: flex !important; }
  .site-header .primary-nav > a:not(.nav-cta), .site-header .primary-nav > .nav-dropdown > summary { min-height: 48px; padding: 13px 0; border-bottom: 1px solid #302020; font-size: 14px !important; }
  .site-header .nav-dropdown { width: 100%; }
  .site-header .nav-compact-panel, .site-header .nav-mega-panel, .brief-page .site-header .nav-compact-panel, .brief-page .site-header .nav-mega-panel { position: static; inset: auto; display: grid; width: 100%; min-width: 0; max-height: none; overflow: visible; transform: none; translate: none; animation: none; padding: 10px; margin: 5px 0 10px; border: 1px solid #391414; border-radius: 9px; box-shadow: none !important; }
  .site-header .nav-mega-panel, .site-header .nav-full-industries { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
  .site-header .nav-mega-group { min-width: 0; border: 0; padding: 0; }
  .site-header .nav-mega-title { min-height: 0; margin: 5px 0; }
  .site-header .nav-mega-group a, .site-header .nav-compact-panel a { min-height: 44px; padding: 11px 10px; font-size: 13px !important; }
  .site-header .primary-nav .nav-cta { align-self: flex-start; margin-top: 15px; }
  .site-footer.full-site-footer .footer-main { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  :root { --header-height: 82px; --gutter: 22px; }
  .site-header .nav-wrap { min-height: 82px; width: calc(100% - 36px); }
  .site-header .brand-logo-frame { width: 130px; height: 78px; }
  .site-header .brand-logo { width: 148px; transform: translate(-9px,-11px); }
  .site-header .nav-mega-panel, .site-header .nav-full-industries, .brief-page .site-header .nav-mega-panel { grid-template-columns: 1fr; gap: 9px; }
  .site-header .nav-mega-group + .nav-mega-group { padding-top: 9px; border-top: 1px solid #3a2323; }
  .brief-hero-grid { grid-template-columns: minmax(0,1fr); }
  .brief-hero-art { order: 1; min-height: 220px; }
  .brief-hero-art .page-illustration { width: min(100%,300px); }
  .page-hero h1, .brief-page h1 { overflow-wrap: anywhere; }
  .page-hero-grid, .page-content-grid { grid-template-columns: minmax(0,1fr); }
  .page-columns { grid-template-columns: minmax(0,1fr); }
  .site-footer.full-site-footer .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 22px; }
  .site-footer.full-site-footer .footer-combo { grid-column: 1/-1; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 22px; }
  .site-footer .brand-logo-frame { width: 220px; max-width: 100%; height: 132px; }
  .site-footer .brand-logo { width: 252px; transform: translate(-16px,-19px); }
  .site-footer .footer-bottom { font-size: 10px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .page-hero-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .page-hero h1 { max-width: 760px; font-size: clamp(38px,6vw,54px) !important; }
  .page-art { min-height: 280px; }
  .page-art .page-illustration { width: min(100%,340px); }
  .page-proof-inner { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .page-proof-item:nth-child(odd) { padding-left: 0; border-left: 0; }
  .page-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
  .site-footer.full-site-footer .footer-combo { grid-template-columns: minmax(0,1fr); gap: 27px; }
  .site-footer .footer-address { max-width: 360px; }
  .page-card-grid, .page-steps, .service-grid { grid-template-columns: minmax(0,1fr); }
  .brief-page .brief-actions .button { width: 100%; }
  .page-hero-actions .button { width: 100%; }
  .page-hero-actions { gap: 15px; }
  .page-proof-inner { gap: 10px; }
  .page-proof-item { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .has-js [data-reveal] { transition: none; opacity: 1; transform: none; }
}
