.swim-page { max-width: 1440px; margin: auto; padding: 55px 4%; }
.swim-page > h1 { font-size: clamp(2rem,3vw,2.8rem); color: #173d5c; margin: 0 0 18px; }
.swim-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin: 35px 0; }
.swim-metric { padding: 25px; border: 1px solid #d6e6f0; border-radius: 10px; text-align: center; background: #f4f9fc; }
.swim-metric strong { font-family: "Montserrat",sans-serif; display: block; font-size: 36px; color: #1597cb; }
.swim-metric span { color: #365366; }
.swim-tabs { display: flex; gap: 12px; border-bottom: 1px solid #cadde8; margin-bottom: 25px; }
.swim-tabs button { padding: 12px 24px; background: transparent; border: 0; border-bottom: 3px solid transparent; font-weight: 600; color: #31566c; }
.swim-tabs button[aria-selected="true"] { border-bottom-color: #1597cb; color: #1597cb; }
.swim-toolbar { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; }
.swim-toolbar label { display: flex; flex-direction: column; gap: 5px; font-size: 14px; flex: 1; }
.swim-toolbar input, .swim-toolbar select, .swim-filters input { width: 100%; border: 1px solid #bdd3e0; border-radius: 5px; padding: 10px; background: white; }
.swim-toolbar button, .swim-pagination button, .map-load { border: 0; padding: 11px 20px; border-radius: 5px; background: #1597cb; color: white; }
.swim-toolbar button[disabled], .swim-pagination button[disabled] { opacity: .45; cursor: default; }
.swim-filters { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; padding: 20px; margin: 20px 0; background: #f4f8fb; border: 1px solid #dbe7ed; border-radius: 6px; }
.swim-filters label { font-size: 13px; }
.swim-filters .range-inputs { display: flex; gap: 8px; margin-top: 5px; }
.swim-results-label { padding: 16px 0; color: #506975; font-size: 14px; }
.swim-fire-list { display: grid; gap: 24px; }
.fire-card { border: 1px solid #cddfe9; border-radius: 8px; overflow: hidden; }
.fire-card-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 22px; background: #e8f4fa; }
.fire-card-heading h3 { margin: 0; color: #173d5c; }
.fire-card-heading span { color: #536775; font-size: 13px; }
.fire-card-body { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; padding: 22px; }
.fire-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; gap: 8px 15px; font-size: 14px; }
.fire-card dt { color: #5c6e79; }.fire-card dd { margin: 0; font-weight: 600; }
.fire-map { background: #f3f7fa; min-height: 250px; display: grid; place-items: center; border-radius: 5px; }
.fire-map iframe { width: 100%; min-height: 350px; border: 0; }
.map-placeholder { text-align: center; padding: 25px; }
.map-placeholder a { display: block; margin-top: 12px; color: #1597cb; }
.swim-pagination { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 25px; }
.swim-error { padding: 20px; background: #fff1eb; border: 1px solid #e9c9b8; border-radius: 6px; }
.ats-swim-loading-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ats-swim-explorer .eael-tabs-nav li.eael-tab-nav-item { padding: 0 !important; }
.ats-swim-explorer .ats-tab-button { display: block; width: 100%; padding: 11px 0; border: 0; border-radius: inherit; background: transparent; color: inherit; font: inherit; }
.fire_filters .toggle-filters { border: 0; color: #333; }
.fire_filters .toggle-filters:hover,.fire_filters .toggle-filters:focus { background-color: #f1f1f1; color: #333; }
/* The filter icon participates in layout so the imported fixed-width form
 * button rule cannot position it over the label. Keep the authored pill/icon. */
.ats-swim-explorer .eael-tab-content-item .fire_filters .toggle-filters { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: max-content; min-width: 190px; flex: 0 0 auto; padding: 10px 19px; font: 600 18px/1.5 "Montserrat",sans-serif; text-transform: none; white-space: nowrap; }
.ats-swim-explorer .eael-tab-content-item .fire_filters .toggle-filters::before { position: static; inset: auto; order: 1; flex: 0 0 20px; margin: 0; }
.ats-swim-explorer .ats-filter-label { flex: 0 0 auto; }
.layout-toggle .layout-tab-content[hidden],.layout-accordion .layout-tab-content[hidden] { display: none !important; }
.layout-toggle .layout-tab-content:not([hidden]),.layout-accordion .layout-tab-content:not([hidden]) { display: block; }
/* Before the deferred carousel initializes, retain the original horizontal
   track and tallest-quote height. Sliding quotes never share a grid cell. */
.native-testimonials:not([data-carousel-ready]) .swiper-wrapper { display:flex; }
.native-testimonials:not([data-carousel-ready]) .swiper-slide { flex:0 0 100%; width:100%; margin-right:15px; }
@media(min-width:768px) and (max-width:1023px) {
  .native-testimonials:not([data-carousel-ready]) .swiper-slide { flex-basis:calc((100% - 10px)/2); width:calc((100% - 10px)/2); margin-right:10px; }
}
[data-entrance].is-awaiting-entrance { visibility:hidden; }
[data-entrance].is-entering { animation:var(--entrance-animation) 1.25s ease both; }
[data-entrance].animated-fast.is-entering { animation-duration:.75s; }
[data-entrance].animated-slow.is-entering { animation-duration:2s; }
@keyframes ats-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes ats-fade-in-up { from { opacity:0; transform:translate3d(0,100%,0); } to { opacity:1; transform:none; } }
@keyframes ats-fade-in-left { from { opacity:0; transform:translate3d(-100%,0,0); } to { opacity:1; transform:none; } }
@keyframes ats-fade-in-right { from { opacity:0; transform:translate3d(100%,0,0); } to { opacity:1; transform:none; } }

@media(max-width:1100px) {
  .header-inner { gap: 1rem; padding-inline: 3%; }.nav-list { gap: 16px; }.nav-item { font-size: 13px; }.nav-item > .nav-contact { padding-inline: 16px; }
}
@media(max-width:1024px) {
  /* The authored tablet/phone logo container is 134px: 92% at the top,
     61% after the 20px scroll trigger. The toggle has no layout height in
     WordPress, so the logo plus 10px insets determines the header height. */
  .header-inner { position: relative; min-height: 0; padding: 10px; }
  .brand { width: 123.28px; }
  .brand img { max-height: none; }
  .site-header.is-compact .header-inner { min-height: 0; padding: 10px; }
  .site-header.is-compact .brand { width: 81.74px; }
  .mobile-menu-toggle { position: absolute; top: calc(50% - 4.3125px); right: 10px; transform: translateY(-50%); display: flex; flex-direction: column; gap: 5px; width: 50.375px; height: 39.375px; padding: 12.6875px 7.6875px 4.6875px 12.6875px; }
  .mobile-menu-toggle span { width: 30px; height: 4px; flex: 0 0 4px; margin: 0; background: #1b4d80; }
  body:not(.home) .mobile-menu-toggle span { display: none; }
  body:not(.home) .mobile-menu-toggle::before { content: ''; position: absolute; left: 12.6875px; top: 12.6875px; width: 30px; height: 22px; background: var(--ats-menu-icon) no-repeat; background-size: 100%; }
  #main-navigation { display: none; position: absolute; top: 100%; inset-inline: 0; background: white; max-height: calc(100dvh - 74px); overflow-y: auto; border-top: 1px solid #e5eef4; box-shadow: 0 15px 25px #0002; }
  .site-header.is-compact #main-navigation { max-height: calc(100dvh - 56px); }
  #main-navigation.is-open { display: block; }.nav-list { display: block; padding: 14px 22px; }.nav-item { font-size: 15px; }.nav-submenu { position: static; width: 100%; max-width: none; box-shadow: none; border: 0; padding: 0 0 0 16px; }.nav-disclosure > summary { justify-content: space-between; }.nav-item > .nav-contact { display: inline-block; margin-block: 12px; }
  .nav-list > li > details > .nav-submenu,.nav-submenu .nav-submenu { position: static; width: 100%; }
  .application-embed { height: calc(100dvh - 85px); }
  .swim-filters { grid-template-columns: repeat(2,1fr); }
}
@media(min-width:768px) and (max-width:1024px) {
  body:not(.home) .mobile-menu-toggle { top: calc(50% - 6.8125px); width: 60.375px; height: 54.375px; }
  body:not(.home) .mobile-menu-toggle::before { top: 20.6875px; width: 40px; height: 37px; }
}
@media(max-width:767px) {
  html { scroll-padding-top: 85px; }
  @layer migration-defaults { .section-inner { flex-wrap: wrap; }.content-column { width: 100%; } }
  .footer-inner,.cta-inner { flex-direction: column; align-items: flex-start; gap: 28px; }.site-cta { padding: 35px 6%; }.site-footer { padding: 35px 6% 20px; }.copyright span { float: none; display: block; margin-top: 8px; }
  .swim-metrics { grid-template-columns: 1fr; gap: 12px; }.swim-metric { padding: 18px; }.swim-metric strong { font-size: 30px; }.swim-toolbar label { flex-basis: 100%; }.swim-filters { grid-template-columns: 1fr; }.fire-card-body { grid-template-columns: 1fr; }.fire-card-heading { align-items: flex-start; flex-direction: column; gap: 6px; }.swim-tabs button { padding: 12px 16px; }.swim-pagination { gap: 12px; font-size: 13px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation: none !important; transition: none !important; } }

/* Reserve the authored map frame while its shared renderer prepares tiles. */
.ats-swim-explorer .ats-map-shell { position: relative; min-height: 400px; }
.ats-swim-explorer .ats-map-stage { position: absolute; inset: 0; opacity: 0; pointer-events: none; font-family: Arial,sans-serif; }
.ats-swim-explorer .ats-map-shell[data-map-state="ready"] .ats-map-stage { opacity: 1; pointer-events: auto; }
.ats-swim-explorer .ats-map-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; margin: 0; opacity: 1; transition: opacity .18s ease; pointer-events: none; }
.ats-swim-explorer .ats-map-shell[data-map-state="ready"] .ats-map-preview { opacity: 0; }
.ats-swim-explorer .ats-preview-attribution { position: absolute; bottom: 10px; right: 10px; z-index: 1; border-radius: 12px; background: rgba(255,255,255,.8); font: 12px/24px Arial,sans-serif; }
.ats-swim-explorer .ats-preview-attribution summary { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; float: right; list-style: none; cursor: pointer; }
.ats-swim-explorer .ats-preview-attribution summary::-webkit-details-marker { display: none; }
.ats-swim-explorer .ats-preview-attribution summary span { color: white; background: black; width: 14px; height: 14px; border-radius: 50%; font: bold 12px/14px Arial,sans-serif; text-align: center; }
.ats-swim-explorer .ats-preview-attribution[open] > span { padding: 0 6px; }
.ats-swim-explorer .ats-map-shell .ats-map-retry { inset: auto 8px 8px; padding: 8px; border-radius: 8px; background: rgba(242,247,250,.95); font-size: 12px; }
.ats-swim-explorer .ats-map-retry p { margin: 0 0 4px; }
.ats-swim-explorer .ats-map-shell .ats-map-status { z-index: 1; transition: opacity .25s ease; }
.ats-swim-explorer .ats-map-shell[data-map-state="ready"] .ats-map-status { opacity: 0; pointer-events: none; }
.ats-map-stage .maplibregl-ctrl-attrib { font: 12px/20px Arial,sans-serif; }
.ats-map-stage .maplibregl-ctrl-attrib-button { padding: 0; border: 0; background-color: transparent; width: 24px; height: 24px; }
.ats-map-stage .ats-ignition-popup .maplibregl-popup-content { padding: 6px 8px; border: 1px solid white; border-radius: 0; background: rgba(139,0,0,.9); color: white; white-space: pre-line; font: 12px/1.4 Arial,sans-serif; }
.ats-map-stage .ats-ignition-popup:is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right) .maplibregl-popup-tip { border-bottom-color: rgba(139,0,0,.9); }
.ats-map-stage .ats-ignition-popup:is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right) .maplibregl-popup-tip { border-top-color: rgba(139,0,0,.9); }
.ats-map-stage .ats-ignition-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: rgba(139,0,0,.9); }
.ats-map-stage .ats-ignition-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: rgba(139,0,0,.9); }
.ats-swim-explorer .ats-map-status { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0; border-radius: 16px; background: #f2f7fa; color: #44697f; font-size: 14px; }
.ats-swim-explorer .ats-map-status button { border: 0; border-radius: 24px; padding: 8px 20px; color: white; background: #1597cb; }

.ats-swim-explorer #fire-results { scroll-margin-top: 110px; }
.ats-swim-explorer #fire-results:focus { outline: none; }
.ats-swim-explorer .ats-swim-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; margin: 20px 0 28px; border: 1px solid #dce8ef; border-radius: 16px; background: #fff; color: #365366; font-size: 14px; }
.ats-swim-explorer .ats-page-summary { margin: 0; line-height: 1.5; }
.ats-swim-explorer .ats-page-controls,.ats-swim-explorer .ats-page-numbers { display: flex; align-items: center; gap: 6px; }
.ats-swim-explorer .ats-page-link,.ats-swim-explorer .ats-page-button,.ats-swim-explorer .ats-page-jump button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 44px; min-height: 44px; padding: 10px 13px; border: 1px solid #d1e2ed; border-radius: 10px; background: #fff; color: #365366; font: 600 14px/1.2 "Montserrat",sans-serif; text-transform: none; text-decoration: none; letter-spacing: normal; transition: background-color .15s ease,color .15s ease,border-color .15s ease; }
.ats-swim-explorer .ats-page-link:hover,.ats-swim-explorer .ats-page-jump button:hover { border-color: #1597cb; background: #eaf6fb; color: #176286; }
.ats-swim-explorer .ats-page-link[aria-current="page"] { border-color: #1597cb; background: #1597cb; color: #fff; }
.ats-swim-explorer .ats-page-button:disabled { border-color: #e3ebf0; background: #f5f8fa; color: #8097a3; cursor: default; opacity: 1; }
.ats-swim-explorer .ats-page-link:focus-visible,.ats-swim-explorer .ats-page-jump input:focus-visible,.ats-swim-explorer .ats-page-jump button:focus-visible { outline: 2px solid #008fbb; outline-offset: 3px; }
.ats-swim-explorer .ats-page-direction span { font-size: 20px; line-height: 1; }
.ats-swim-explorer .ats-page-gap { padding: 0 5px; }
.ats-swim-explorer .ats-page-position { display: none; white-space: nowrap; }
.ats-swim-explorer .ats-page-jump { display: flex; align-items: center; gap: 8px; margin: 0; white-space: nowrap; }
.ats-swim-explorer .ats-page-jump label { margin: 0; }
.ats-swim-explorer .ats-page-jump input { width: 66px; min-height: 44px; padding: 8px; border: 1px solid #d1e2ed; border-radius: 10px; background: #fff; color: #365366; font: inherit; }
/* Use the incident's authored layout while the collection is in flight.
   Only shapes stand in for unknown values; none are interactive or announced. */
.ats-swim-explorer .ats-skeleton-bar,.ats-swim-explorer .ats-skeleton-map { position: relative; overflow: hidden; background: #e5edf2; }
.ats-swim-explorer .ats-skeleton-bar { display: inline-block; height: .85em; border-radius: 5px; vertical-align: middle; }
.ats-swim-explorer .ats-skeleton-bar::after,.ats-swim-explorer .ats-skeleton-map::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg,transparent 25%,#ffffff80 50%,transparent 75%); transform: translateX(-100%); animation: ats-skeleton-shimmer 1.8s ease-in-out infinite; }
.ats-swim-explorer .ats-skeleton-map { min-height: 400px; border-radius: 16px; }
.ats-swim-explorer .ats-skeleton-title { width: 45%; height: .8em; }
.ats-swim-explorer .ats-swim-skeleton .fire-row { gap: 12px; }
.ats-swim-explorer .ats-swim-skeleton .fire-row .value { flex: 0 0 35%; text-align: right; }
.ats-swim-explorer .ats-skeleton-value { width: 85%; }
.ats-swim-explorer .ats-skeleton-coordinate { width: 100%; }
.ats-swim-explorer .ats-skeleton-summary { width: 240px; max-width: 100%; }
.ats-swim-explorer .ats-skeleton-direction { width: 88px; height: 44px; border-radius: 10px; }
.ats-swim-explorer .ats-skeleton-page { width: 44px; height: 44px; border-radius: 10px; }
.ats-swim-explorer .ats-skeleton-position { width: 72px; }
.ats-swim-explorer .ats-skeleton-jump { width: 220px; height: 44px; border-radius: 10px; }
@keyframes ats-skeleton-shimmer { to { transform: translateX(100%); } }
@media(max-width:767px) {
  .ats-swim-explorer .ats-swim-pagination { padding: 14px 12px; gap: 12px; }
  .ats-swim-explorer .ats-page-summary { width: 100%; text-align: center; font-size: 13px; }
  .ats-swim-explorer .ats-page-controls { width: 100%; justify-content: space-between; }
  .ats-swim-explorer .ats-page-numbers { display: none; }
  .ats-swim-explorer .ats-page-position { display: inline; font-size: 12px; }
  .ats-swim-explorer .ats-page-direction { padding: 10px; font-size: 12px; }
  .ats-swim-explorer .ats-page-jump { width: 100%; justify-content: center; font-size: 13px; }
}
