/* Additions on top of the live site's own CSS: our buttons, accessibility panel and script-free fallbacks. */
.skip { position: absolute; top: 8px; right: 16px; z-index: 10000; background: #fff; color: #000; padding: 10px 16px; font-weight: 700; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.skip:focus { clip-path: none; width: auto; height: auto; }
.hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
form[data-lead] .status { width: 100%; margin: 8px 0 0; font-weight: 600; text-align: center; }
form[data-lead] .status:empty { display: none; }
form[data-lead] .status.err { color: #b3261e; background: #fff; border-radius: 4px; padding: 4px 8px; }

.snapfab { position: fixed; z-index: 9990; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; border: 0; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.snapfab svg { width: 26px; height: 26px; fill: #fff; }
.fab-call { right: 18px; bottom: 18px; background: #13487f; }
.fab-wa { right: 18px; bottom: 80px; background: #25d366; }
.fab-a11y { left: 18px; bottom: 18px; background: #1d4f91; }
.a11y-panel { position: fixed; left: 18px; bottom: 80px; z-index: 9995; width: min(300px, calc(100vw - 36px)); background: #fff; color: #111; border-radius: 10px; box-shadow: 0 12px 40px rgba(0,0,0,.4); padding: 16px; font-family: Arial, sans-serif; direction: rtl; text-align: right; }
.a11y-panel[hidden] { display: none; }
.a11y-panel h2 { font-size: 17px; margin: 0 0 10px; color: #111; font-family: Arial, sans-serif; }
.a11y-panel .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-panel button { font: 500 14px/1.3 Arial, sans-serif; padding: 10px 8px; border: 1px solid #c9c9c9; border-radius: 6px; background: #f6f6f6; color: #111; cursor: pointer; }
.a11y-panel button[aria-pressed="true"] { background: #1d4f91; color: #fff; }
.a11y-panel .row { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: 14px; }
.a11y-panel a { color: #1d4f91; }
html.a11y-contrast body, html.a11y-contrast body *:not(.snapfab):not(.snapfab *):not(.a11y-panel *) { background-color: #000 !important; background-image: none !important; color: #fff !important; }
html.a11y-contrast a, html.a11y-contrast a * { color: #0ff !important; }
html.a11y-contrast h1, html.a11y-contrast h2, html.a11y-contrast h3 { color: #ff0 !important; }
html.a11y-gray body { filter: grayscale(1); }
html.a11y-links a { text-decoration: underline !important; outline: 2px dashed currentColor; outline-offset: 2px; }
html.a11y-font body *:not(i):not([class*="eicon"]):not([class*="fa-"]) { font-family: Arial, Helvetica, sans-serif !important; }
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
:focus-visible { outline: 3px solid #1d4f91; outline-offset: 2px; }

/* Video widget: the iframe the Elementor script would have added. */
.elementor-widget-video .elementor-wrapper { position: relative; aspect-ratio: 16 / 9; }
.elementor-widget-video .elementor-video-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.elementor-widget-video .elementor-video { height: 100%; }

/* Mobile dropdown submenus (no SmartMenus). */
.elementor-nav-menu--dropdown .menu-item-has-children { position: relative; }
.elementor-nav-menu--dropdown .sub-menu { display: none; }
.snap-sub { position: absolute; left: 8px; top: 6px; background: transparent; border: 0; color: inherit; font-size: 18px; cursor: pointer; padding: 6px 10px; }

/* Carousels without Swiper: a scrollable row. */
.snap-row { overflow: hidden; }
.snap-row .swiper-wrapper { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; transform: none !important; scrollbar-width: thin; }
.snap-row .swiper-slide { flex: 0 0 calc((100% - 40px) / 3); width: auto !important; scroll-snap-align: start; margin: 0 !important; }
@media (max-width: 1024px) { .snap-row .swiper-slide { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .snap-row .swiper-slide { flex-basis: 85%; } }
.snap-row ~ .swiper-pagination, .snap-row .swiper-pagination { display: none; }

/* Pages that have no live counterpart (404, thank-you fallback). */
.snap-plain { max-width: 760px; margin: 60px auto; padding: 0 16px; text-align: center; }
.snap-plain h1 { font-size: 36px; margin-bottom: 16px; }
.snap-btn { display: inline-block; padding: 12px 28px; background: #13487f; color: #fff !important; border-radius: 6px; font-weight: 700; text-decoration: none; }

/* Background video */
.elementor-background-video-container { pointer-events: none; overflow: hidden; }
.snap-bgvideo { position: absolute; top: 50%; left: 50%; border: 0; transform: translate(-50%, -50%); }
html.a11y-still .snap-bgvideo { display: none; }

/* Gallery grid (no e-gallery script) */
.elementor-gallery__container[style*="--snap-cols"] { display: grid; grid-template-columns: repeat(var(--snap-cols), 1fr); gap: var(--snap-gap); }
@media (max-width: 1024px) { .elementor-gallery__container[style*="--snap-cols"] { grid-template-columns: repeat(var(--snap-cols-t), 1fr); } }
@media (max-width: 767px) { .elementor-gallery__container[style*="--snap-cols"] { grid-template-columns: repeat(var(--snap-cols-m), 1fr); } }
.elementor-gallery__container[style*="--snap-cols"] .e-gallery-item { display: block; position: relative; overflow: hidden; }
.elementor-gallery__container[style*="--snap-cols"] .e-gallery-image { aspect-ratio: var(--snap-ar); background-size: cover; background-position: center top; }

.snap-doc { max-width: 900px; text-align: right; line-height: 1.7; font-size: 17px; }
.snap-doc h1 { text-align: center; }
.snap-doc h2 { font-size: 24px; margin: 28px 0 10px; }
.snap-doc h3 { font-size: 19px; margin: 20px 0 8px; }
.snap-doc ul { padding-right: 22px; }
.snap-doc a { text-decoration: underline; }

.snap-doc .page-hero h1, .snap-doc > h1 { font-size: 34px; margin: 10px 0 20px; }
.snap-doc .elementor-widget-form { margin: 24px 0; text-align: right; }
.snap-doc iframe { width: 100%; min-height: 320px; border: 0; margin-top: 16px; }
.snap-doc img { max-width: 100%; height: auto; }
/* A form taken from a dark hero, shown on a white page. */
.snap-doc .elementor-widget-form label, .snap-doc .elementor-widget-form .elementor-field-option label { color: #333 !important; }
.snap-doc .elementor-widget-form .elementor-field-textual { color: #222 !important; background: #fff !important; border: 1px solid #9aa4b2 !important; }
.snap-doc .elementor-widget-form ::placeholder { color: #777 !important; }

/* Sticky header (Elementor sticky without its script) */
.snap-fixed { position: fixed !important; top: 0; left: 0; right: 0; width: 100% !important; z-index: 99; }
.elementor-motion-effects-container { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.elementor-motion-effects-layer { position: absolute; inset: 0; transition: opacity .3s; }
.pp-content-reveal-button-inner { cursor: pointer; }

/* anp-law.com: the 8 menu items fit on one line (the live site wraps them to two). */
@media (min-width: 1025px) {
  .elementor-4481 .elementor-element-244608a .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; }
  .elementor-4481 .elementor-element-244608a .elementor-nav-menu--main .elementor-item { padding-left: clamp(5px, 0.8vw, 16px) !important; padding-right: clamp(5px, 0.8vw, 16px) !important; font-size: clamp(13px, 1.35vw, 19px) !important; white-space: nowrap; }
}
/* mugbalim: the sticky header was 85% white, so page text showed through it while scrolling. */
.elementor-37 .elementor-element.elementor-element-7311c7b1:not(.elementor-motion-effects-element-type-background) { background-color: rgba(255,255,255,.97) !important; }

/* Background-video sections: still frame behind the video (and instead of it on phones). */
.snap-bgposter { background-image: var(--snap-poster) !important; background-size: cover !important; background-position: center !important; }

/* Elementor form rows (-5px margins) and review cards could push the page a few px sideways. */
html, body { overflow-x: clip; }
