/* CAA V40 — final layout hygiene, logo isolation, mega-menu composition and overflow control. */
html, body { max-width:100%; overflow-x:hidden !important; }
html { scrollbar-gutter:stable; }
body.caa-v40-inner-body { margin:0 !important; overflow-x:hidden !important; }
body.caa-v40-inner-body #page,
body.caa-v40-inner-body .site,
body.caa-v40-inner-body main,
body.caa-v40-inner-body .site-header,
body.caa-v40-inner-body .site-footer { max-width:100% !important; min-width:0 !important; }
/* Hide the accessibility skip link until focused; it must never occupy page flow. */
.caa-v37-skip { position:fixed !important; left:12px !important; top:12px !important; transform:translateY(-160%) !important; }
.caa-v37-skip:focus { transform:none !important; }
/* Main navigation: logo only, no site title/tagline, no artificial PNG frame. */
.caa-v40-logo-only { min-width:68px !important; width:68px !important; max-width:68px !important; flex:0 0 68px !important; gap:0 !important; }
.caa-v40-logo-only .caa-v37-brand__text,
.caa-v40-logo-only .caa-v20-brand__words { display:none !important; }
.caa-v37-brand__mark,
.caa-v20-brand__mark { width:62px !important; height:62px !important; min-width:62px !important; border:0 !important; outline:0 !important; box-shadow:none !important; background:transparent !important; border-radius:0 !important; overflow:visible !important; padding:0 !important; }
.caa-v37-brand__image,
.caa-v20-brand__image { display:block !important; width:100% !important; height:100% !important; max-width:none !important; max-height:none !important; object-fit:contain !important; border:0 !important; outline:0 !important; border-radius:0 !important; box-shadow:none !important; background:transparent !important; }
.caa-v37-brand__mark > span,
.caa-v20-brand__fallback { border:0 !important; box-shadow:none !important; background:transparent !important; }
.caa-v37-nav__inner { gap:22px !important; }
.caa-v37-primary { min-width:0 !important; }
.caa-v37-menu { min-width:0 !important; }
.caa-v20-brand { min-width:68px !important; width:68px !important; max-width:68px !important; }
.caa-v20-brand__mark { flex:none !important; }
.caa-v20-brand__words { display:none !important; }
.caa-v20-nav-wrap { min-width:0 !important; }
.caa-v20-primary-nav { min-width:0 !important; max-width:100% !important; overflow:visible !important; }
.caa-v20-menu { min-width:0 !important; max-width:100% !important; }
/* Never let the menu create document width. */
.caa-v20-menu > li > a { max-width:100%; }
.caa-v20-header .container { max-width:1500px !important; }
/* Homepage footer uses the same centered content width as the rest of the site. */
.caa-v37-footer .caa-v37-container { width:min(1280px,calc(100% - 72px)) !important; max-width:1280px !important; margin-inline:auto !important; padding-inline:0 !important; }
.caa-v37-footer__main { width:min(1280px,calc(100% - 72px)) !important; max-width:1280px !important; margin-inline:auto !important; }
.caa-v37-footer__bottom > .caa-v37-container { width:min(1280px,calc(100% - 72px)) !important; }
.caa-v37-footer a { text-decoration:none !important; }
.caa-v37-footer a:hover,.caa-v37-footer a:focus { text-decoration:none !important; }
/* Mega-menu composition: 2-column menus get two editorial columns + a wide feature; 3-column menus get three + feature. */
.caa-v20-menu .mega-menu__body,
.caa-v37-primary .mega-menu__body { grid-template-columns:repeat(3,minmax(0,1fr)) minmax(330px,1.45fr) !important; align-items:stretch !important; }
.caa-v20-menu .mega-menu__feature--wide,
.caa-v37-primary .mega-menu__feature--wide { grid-column:3 / 5 !important; }
.caa-v20-menu .mega-menu__feature,
.caa-v37-primary .mega-menu__feature { width:auto !important; min-width:0 !important; margin:18px !important; overflow:hidden !important; }
.caa-v20-menu .mega-menu__feature-media,
.caa-v37-primary .mega-menu__feature-media { min-width:0 !important; overflow:hidden !important; }
.caa-v20-menu .mega-menu__feature-media img,
.caa-v37-primary .mega-menu__feature-media img { width:100% !important; height:100% !important; min-width:0 !important; object-fit:cover !important; }
.caa-v20-menu .mega-menu__feature-copy,
.caa-v37-primary .mega-menu__feature-copy { min-width:0 !important; overflow:hidden !important; }
.caa-v20-menu .mega-menu__feature-copy h3,
.caa-v37-primary .mega-menu__feature-copy h3 { overflow-wrap:anywhere; }
/* Keep mega menus inside the viewport. */
.caa-v20-menu .mega-menu,
.caa-v37-primary .mega-menu { max-width:calc(100vw - 40px) !important; max-height:calc(100vh - 110px) !important; overflow-y:auto !important; overflow-x:hidden !important; }
@media (max-width:1200px){
  .caa-v20-menu .mega-menu__body,.caa-v37-primary .mega-menu__body { grid-template-columns:repeat(2,minmax(0,1fr)) minmax(300px,1.15fr) !important; }
  .caa-v20-menu .mega-menu__feature--wide,.caa-v37-primary .mega-menu__feature--wide { grid-column:3 / 4 !important; }
}
@media (max-width:1050px){
  .caa-v20-brand,.caa-v40-logo-only { width:62px !important; min-width:62px !important; max-width:62px !important; flex-basis:62px !important; }
  .caa-v20-brand__mark,.caa-v37-brand__mark { width:58px !important; height:58px !important; min-width:58px !important; }
  .caa-v20-menu .mega-menu__body,.caa-v37-primary .mega-menu__body { grid-template-columns:1fr !important; }
  .caa-v20-menu .mega-menu__feature--wide,.caa-v37-primary .mega-menu__feature--wide { grid-column:auto !important; }
}
@media (max-width:900px){
  .caa-v37-footer .caa-v37-container,.caa-v37-footer__main,.caa-v37-footer__bottom > .caa-v37-container { width:calc(100% - 36px) !important; }
  .caa-v20-header .container { width:calc(100% - 30px) !important; }
  .caa-v20-menu .mega-menu,.caa-v37-primary .mega-menu { max-width:none !important; max-height:none !important; }
}
@media (max-width:600px){
  .caa-v37-footer .caa-v37-container,.caa-v37-footer__main,.caa-v37-footer__bottom > .caa-v37-container { width:calc(100% - 34px) !important; }
  .caa-v37-brand__mark,.caa-v20-brand__mark { width:50px !important; height:50px !important; min-width:50px !important; }
}
