/* ==========================================================================
   Swiper Core Styles (custom build, compatible with Swiper v8+ API)
   File: /Content/swiper-bundle.min.css?V5
   Note: Pure CSS, no external assets. Uses CSS variables with sensible
         fallbacks; safe to load after base + responsive CSS.
   ========================================================================== */

   :root {
    --swiper-theme-color: #0a58ca;
    --swiper-navigation-size: 44px;
    --swiper-navigation-color: var(--swiper-theme-color);
    --swiper-pagination-color: var(--swiper-theme-color);
    --swiper-pagination-bullet-size: 8px;
    --swiper-pagination-bullet-inactive-color: #cbd5e1;
    --swiper-pagination-bullet-inactive-opacity: .7;
    --swiper-pagination-bullet-opacity: 1;
    --swiper-scrollbar-bg: rgba(15,23,42,.12);
    --swiper-scrollbar-drag-bg: rgba(15,23,42,.38);
    --swiper-preloader-color: var(--swiper-theme-color);
  }
  
  /* Optional dark appearance tweak (honors your existing appearance toggles) */
  body[data-appearance="dark"],
  @media (prefers-color-scheme: dark) {
    :root {
      --swiper-pagination-bullet-inactive-color: #64748b;
      --swiper-scrollbar-bg: rgba(255,255,255,.16);
      --swiper-scrollbar-drag-bg: rgba(255,255,255,.45);
    }
  }
  
  /* Core layout */
  .swiper {
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
    z-index: 1;
  }
  .swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box;
  }
  .swiper-vertical > .swiper-wrapper { flex-direction: column; }
  .swiper-autoheight .swiper-wrapper { align-items: flex-start; }
  .swiper-backface-hidden .swiper-slide { transform: translateZ(0); backface-visibility: hidden; }
  
  .swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
  }
  
  /* Grab cursor helpers */
  .swiper,
  .swiper * { cursor: auto; }
  .swiper-grab-cursor .swiper-wrapper { cursor: grab; }
  .swiper-grab-cursor.swiper-android .swiper-wrapper { cursor: -webkit-grab; cursor: grab; }
  .swiper-grabbing .swiper-wrapper { cursor: grabbing; cursor: -webkit-grabbing; }
  
  /* A11y live region */
  .swiper-notification {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1000;
  }
  
  /* =========================
     Navigation (Next/Prev)
     ========================= */
  .swiper-button-prev,
  .swiper-button-next {
    position: absolute;
    top: 50%;
    width: var(--swiper-navigation-size);
    height: var(--swiper-navigation-size);
    margin-top: calc(var(--swiper-navigation-size) / -2);
    z-index: 10;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.9);
    border: 1px solid #e2e8f0;
    box-shadow: 0 8px 16px rgba(2,6,23,.12);
    color: var(--swiper-navigation-color);
    transition: transform .15s ease, filter .15s ease, background .15s ease;
  }
  .swiper-button-prev:hover,
  .swiper-button-next:hover { filter: brightness(1.02); transform: translateY(-1px); }
  .swiper-button-prev:active,
  .swiper-button-next:active { transform: translateY(0); }
  
  /* Placeholders use CSS masks for crisp vector arrows */
  .swiper-button-prev::after,
  .swiper-button-next::after {
    content: "";
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: 18px 18px;
    mask-size: 18px 18px;
  }
  .swiper-button-prev::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3C/svg%3E");
  }
  .swiper-button-next::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='m8.59 16.59 1.41 1.41 6-6-6-6-1.41 1.41L13.17 12z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='m8.59 16.59 1.41 1.41 6-6-6-6-1.41 1.41L13.17 12z'/%3E%3C/svg%3E");
  }
  
  .swiper-button-prev { left: 8px; }
  .swiper-button-next { right: 8px; }
  
  .swiper-button-lock { display: none !important; }
  .swiper-button-disabled {
    opacity: .35;
    pointer-events: none;
  }
  
  /* Compact buttons for small screens */
  @media (max-width: 599.98px) {
    .swiper-button-prev,
    .swiper-button-next {
      width: 38px;
      height: 38px;
      margin-top: -19px;
      background: rgba(255,255,255,.92);
    }
  }
  
  /* =========================
     Pagination
     ========================= */
  .swiper-pagination {
    position: absolute;
    left: 0; right: 0;
    z-index: 10;
    text-align: center;
  }
  
  /* Bullets */
  .swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: 10px;
  }
  .swiper-pagination-bullets.swiper-pagination-vertical {
    right: 8px; top: 50%; transform: translateY(-50%);
  }
  .swiper-pagination-bullet {
    width: var(--swiper-pagination-bullet-size);
    height: var(--swiper-pagination-bullet-size);
    display: inline-block;
    border-radius: 999px;
    background: var(--swiper-pagination-bullet-inactive-color);
    opacity: var(--swiper-pagination-bullet-inactive-opacity);
    transition: transform .18s ease, opacity .18s ease, background .18s ease;
    margin: 0 5px;
  }
  .swiper-pagination-bullet:focus-visible { outline: 2px solid #94c0ff; outline-offset: 2px; }
  .swiper-pagination-bullet-active {
    background: var(--swiper-pagination-color);
    opacity: var(--swiper-pagination-bullet-opacity);
    transform: scale(1.15);
  }
  .swiper-pagination-lock { display: none !important; }
  
  /* Fraction */
  .swiper-pagination-fraction {
    bottom: 10px;
    font-size: 14px;
    color: #0f172a;
    text-shadow: 0 1px 2px rgba(255,255,255,.9);
  }
  
  /* Progressbar */
  .swiper-pagination-progressbar {
    top: auto; bottom: 0; left: 0; right: 0;
    height: 3px;
    background: rgba(15,23,42,.12);
  }
  .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color);
    width: 0; height: 100%;
    transform-origin: left top;
  }
  
  /* =========================
     Scrollbar
     ========================= */
  .swiper-scrollbar {
    position: absolute;
    left: 1.5%;
    bottom: 6px;
    width: 97%;
    height: 4px;
    z-index: 10;
    background: var(--swiper-scrollbar-bg);
    border-radius: 999px;
  }
  .swiper-scrollbar.swiper-scrollbar-vertical {
    left: auto; right: 6px;
    top: 1.5%;
    bottom: 1.5%;
    width: 4px; height: auto;
  }
  .swiper-scrollbar-drag {
    background: var(--swiper-scrollbar-drag-bg);
    height: 100%;
    border-radius: inherit;
  }
  .swiper-scrollbar-lock { display: none !important; }
  
  /* =========================
     Lazy Loading
     ========================= */
  .swiper-lazy { opacity: 0; transition: opacity .2s ease; }
  .swiper-lazy-loaded { opacity: 1; }
  .swiper-lazy-loading { opacity: 0; }
  .swiper-lazy-preloader {
    position: absolute;
    left: 50%; top: 50%;
    width: 22px; height: 22px;
    margin-left: -11px; margin-top: -11px;
    border-radius: 50%;
    border: 2px solid var(--swiper-preloader-color);
    border-top-color: transparent;
    animation: swiper-spin 1s linear infinite;
  }
  @keyframes swiper-spin {
    to { transform: rotate(360deg); }
  }
  
  /* =========================
     Zoom
     ========================= */
  .swiper-zoom-container {
    width: 100%; height: 100%;
    display: flex; justify-content: center; align-items: center;
    overflow: hidden;
  }
  .swiper-zoom-container > img,
  .swiper-zoom-container > svg,
  .swiper-zoom-container > canvas {
    max-width: none !important;
  }
  
  /* =========================
     Effects – Fade / Cube / Flip (lightweight)
     ========================= */
  /* Fade */
  .swiper-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity;
  }
  .swiper-fade .swiper-slide-active,
  .swiper-fade .swiper-slide-active .swiper-zoom-container,
  .swiper-fade .swiper-slide-duplicate-active {
    pointer-events: auto;
  }
  
  /* Basic 3D context for cube/flip */
  .swiper-3d { perspective: 1200px; }
  .swiper-3d .swiper-wrapper { transform-style: preserve-3d; }
  
  /* =========================
     Free Mode & No-swiping
     ========================= */
  .swiper-free-mode > .swiper-wrapper {
    transition-timing-function: linear;
  }
  .swiper-no-swiping { touch-action: pan-y !important; }
  .swiper-no-swiping .swiper-slide { pointer-events: none; }
  
  /* =========================
     Direction: RTL
     ========================= */
  .swiper-rtl .swiper-button-prev { right: 8px; left: auto; }
  .swiper-rtl .swiper-button-next { left: 8px; right: auto; }
  .swiper-rtl .swiper-pagination-bullets { direction: rtl; }
  
  /* =========================
     Size helpers (auto height)
     ========================= */
  .swiper-autoheight,
  .swiper-autoheight .swiper-slide {
    height: auto;
  }
  .swiper-autoheight .swiper-wrapper {
    align-items: stretch;
  }
  
  /* =========================
     Utility: fill parent
     ========================= */
  .swiper-fill,
  .swiper-fill .swiper-slide { width: 100%; height: 100%; }
  
  /* =========================
     Responsive niceties
     ========================= */
  @media (max-width: 768px) {
    .swiper-pagination-bullet { margin: 0 4px; }
    .swiper-pagination-fraction { font-size: 13px; }
  }
  @media (max-width: 480px) {
    .swiper-pagination-bullet { width: 7px; height: 7px; }
    .swiper-scrollbar { bottom: 4px; }
  }
  
  /* =========================
     Integration with site blocks
     (keeps bullets visible over images/video)
     ========================= */
  .video-player .swiper-pagination,
  .related-content .swiper-pagination,
  .web-promo .swiper-pagination {
    pointer-events: none;
  }
  .video-player .swiper-pagination > * { pointer-events: auto; }
  
  /* Ensure absolute children sit above content when needed */
  .swiper [class*="swiper-button"],
  .swiper .swiper-pagination,
  .swiper .swiper-scrollbar {
    will-change: transform;
  }
  
  /* End of /Content/swiper-bundle.min.css?V5 */
  