/* New Ad Media replica — small behaviour/skin on top of Elementor bundle (nam- prefix) */
.nam-sticky, .nam.nam-sticky { position: sticky; top: 0; z-index: 100; }
.site-header.nam-location-header, header.nam-location-header { z-index: 100; }
/* Ensure media images don't blow layout */
img { max-width: 100%; height: auto; }
/* Demo form endpoint notice stays invisible; honeypot if any */
.hp { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; overflow: hidden; }

/* Source header is Elementor sticky (sticky:top, desktop+tablet+mobile). Elementor's JS fixes the
   inner section; without that runtime, position:sticky on the inner section is trapped inside its
   own header box. Make the header itself sticky (body uses overflow-x:clip, so sticky works).
   Demo bar is position:absolute and scrolls away, so top:0 matches source. */
header.nam-location-header { position: sticky; top: 0; z-index: 100; }
.nam-location-header .nam-sticky { position: relative; }
/* SmartMenus parity (no Elementor runtime): desktop hover/focus opens sub-menus; mobile dropdown opens on first tap */
/* desktop main nav: sub-menu opens via Enter/click on the parent (SmartMenus parity, see site.js); no hover/focus opening (source browser QC) */
.nam-nav-menu--main li.nam-sub-open > ul { display: block; }
.nam-nav-menu--dropdown li.nam-sub-open > ul { display: block; }
/* t3153 mobile only: centre footer "Follow us" social icon row under its heading (desktop unchanged) */
@media (max-width: 767px) {
  .nam-element.nam-element-659052e { width: 100%; max-width: 100%; text-align: center; }
  .nam-element.nam-element-659052e .nam-social-icons-wrapper,
  .nam-element.nam-element-659052e .nam-grid { justify-content: center; text-align: center; }
}
/* t3154 user design change (mobile <=767 only; supersedes source for the mobile menu): full-width dropdown below the header,
   top-level and Outdoor Media sub-items centred. Left/width/top are set by site.js from the header/screen edges. */
@media (max-width: 767px) {
  .nam-7016 .nam-element.nam-element-560821a5 .nam-nav-menu__container.nam-nav-menu--dropdown { margin-top: 0 !important; right: auto; box-sizing: border-box; }
  .nam-element-560821a5 .nam-nav-menu--dropdown .nam-nav-menu li { text-align: center; }
  .nam-element-560821a5 .nam-nav-menu--dropdown a,
  .nam-element-560821a5 .nam-nav-menu--dropdown a.nam-sub-item { justify-content: center; text-align: center; white-space: normal; padding-left: 16px; padding-right: 16px; border-left: 0 !important; }
}
/* t3156 desktop main-nav sub-menu: 12em panel was narrower than "Mobile Billboard Trailers" (label spilled onto hero).
   Size the white panel to its longest label (one line), keep 12em minimum, cap at viewport. Mobile dropdown untouched. */
.nam-nav-menu--main .nam-nav-menu ul.sub-menu { width: max-content; min-width: 12em; max-width: calc(100vw - 32px); background-color: #fff; }
.nam-nav-menu--main .nam-nav-menu ul.sub-menu a { white-space: nowrap; padding-left: 20px; padding-right: 20px; }
/* t3161 media-carousel swiper core parity (scoped; heights from bundle: 400 region incl. 30px outside-pagination padding => 370 slides) */
.nam-widget-media-carousel .nam-swiper{position:relative}
.nam-widget-media-carousel .swiper{position:relative;overflow:hidden;box-sizing:border-box}
.nam-widget-media-carousel .swiper-wrapper{display:flex;height:100%;box-sizing:content-box}
.nam-widget-media-carousel .swiper-slide{flex-shrink:0;height:100%;position:relative}
.nam-widget-media-carousel .nam-swiper-button{position:absolute;z-index:1;cursor:pointer;display:inline-flex}
.nam-widget-media-carousel .nam-swiper-button-prev{left:10px}.nam-widget-media-carousel .nam-swiper-button-next{right:10px}
.nam-widget-media-carousel .swiper-pagination{position:absolute;text-align:center;z-index:10}
/* t3161 entrance parity: hidden only when site.js opts in (IO + motion allowed) */
.nam-invisible{visibility:hidden}

/* go-live SEO 2026-11-09: promoted page heading (h2 -> h1) keeps the exact h2 look */
:where(h1.nam-h1){font-size:2rem}
