/* Shared navigation and accessibility across the static page family. */
.site-header { color: var(--navy); }
.site-header .nav-cta::before { background:var(--orange); }
.site-header .nav-cta:is(:hover,:focus-visible) { color:var(--navy); }
.desktop-nav a[aria-current="page"]:after { transform: scaleX(1); }
.mobile-menu a[aria-current="page"] { color: var(--orange); }
.nav-dropdown { position: relative; }
.nav-dropdown summary { list-style: none; display:flex; align-items:center; gap:7px; padding:14px 0; cursor:pointer; font-weight:700; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown summary .icon { width:14px; height:14px; transition:transform .2s; }
.nav-dropdown[open] summary .icon { transform:rotate(180deg); }
.nav-dropdown summary[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:10px; text-decoration-thickness:2px; }
.nav-dropdown-menu { position:absolute; top:calc(100% + 10px); left:-24px; width:285px; padding:12px; background:var(--paper); border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 36px #031a3024; }
.nav-dropdown-menu a { display:block; padding:12px 14px; font-size:var(--type-body); border-radius:10px; }
.nav-dropdown-menu a:after { display:none; }
.nav-dropdown-menu a:is(:hover,:focus-visible) { background:var(--navy); color:var(--paper); }
/* One shared service menu, anchored to the header rather than the text label. */
.nav-services{position:static}
.service-mega-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:min(880px,calc(100% - 32px));max-height:calc(100dvh - 120px);overflow:auto;padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:32px;box-shadow:0 24px 45px #031a3026}
.mega-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 8px 20px}
.mega-heading strong{font-size:var(--type-title);letter-spacing:-.035em}
.mega-heading>span{font-size:var(--type-label);font-weight:500}
.mega-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.desktop-nav .mega-service{display:flex;align-items:center;gap:16px;padding:20px 16px;border-radius:20px;background:#eee8e1;transition:background .25s,color .25s}
.desktop-nav .mega-service:after,.desktop-nav .mega-footer a:after{display:none}
.mega-icon{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:16px;background:var(--orange);color:var(--navy);transition:transform .35s var(--spring)}
.mega-service strong,.mega-service small{display:block;font-size:var(--type-body);line-height:1.4}
.mega-service small{font-size:var(--type-label);font-weight:500;margin-top:6px}
.desktop-nav .mega-service:is(:hover,:focus-visible){background:var(--navy);color:var(--paper)}
.mega-service:is(:hover,:focus-visible) .mega-icon{transform:rotate(-8deg)}
.mega-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 8px 0}
.desktop-nav .mega-footer>a{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:var(--type-body)}
.mega-footer .icon{width:20px;height:20px}
.mobile-submenu .icon{width:20px;height:20px;color:var(--orange)}
.mobile-menu .mobile-submenu a{display:flex;gap:12px;align-items:center}
.mobile-menu { max-height:calc(100dvh - 115px); overflow:auto; }
.mobile-menu details { border-bottom:1px solid #ffffff26; }
.mobile-menu summary { display:flex; align-items:center; justify-content:space-between; padding:16px 0; list-style:none; cursor:pointer; font-weight:700; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu summary .icon { width:16px; height:16px; }
.mobile-menu .mobile-submenu { padding-left:14px; }
.mobile-menu .mobile-submenu a { font-size:var(--type-body); color:var(--paper); font-weight:500; }
.mobile-menu .mobile-submenu a:last-child { border:0; color:var(--paper); }
@media (max-width:1100px) {
  .site-header .desktop-nav, .site-header .nav-cta { display:none; }
  .site-header .menu-toggle { display:block; flex:none; }
}
.dc-page:not(.page-index) main { overflow: clip; }
.dc-page:not(.page-index) h1, .dc-page:not(.page-index) h2,
.dc-page:not(.page-index) h3 { text-wrap: balance; }
.dc-page:not(.page-index) :is(h1,h2,h3,p,a,li) { overflow-wrap: break-word; }
.dc-page:not(.page-index) :is(button,input) { font-family: inherit; }
.dc-page:not(.page-index) .footer { position: relative; }
.dc-page:not(.page-index) .button { text-wrap: nowrap; }
/* Keep the keyboard focus indicator visible against orange panels. */
:is(.case-contact, .case-live-link, .svc-option-featured, .svc-card-featured, .bg-cta-panel, .contact-card) :focus-visible,
.service-card-orange:focus-visible { outline-color: var(--navy); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.footer-socials svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.footer-socials a:first-child svg{fill:currentColor;stroke:none}
