/* ===========================================================
   VIVERE VITAL – Swiper Fullwidth Fix (final, universal)
   Accent: #FF7E00
   Buttons: white bg + orange arrow, hover inverted
   Click: subtle pulse ripple (no glow)
   =========================================================== */

/* SLIDER CONTAINER FIXED HEIGHT */
.vv-fullwidth-gallery-slider {
  width: 100%;
  height: 60vh;
  max-height: 650px;
  overflow: hidden;
  border-radius: 16px;
  position: relative;
}

/* Mobile lower */
@media (max-width: 768px) {
  .vv-fullwidth-gallery-slider {
    height: 45vh;
  }
}

/* FORCE SWIPER STRUCTURE TO RESPECT FIXED HEIGHT */
.vv-fullwidth-gallery-slider .swiper-wrapper,
.vv-fullwidth-gallery-slider .swiper-slide {
  height: 100% !important;
  width: 100%;
}

/* IMAGES: ALWAYS FILL THE CONTAINER */
.vv-fullwidth-gallery-slider .swiper-slide img {
  width: 100%;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

/* ===========================================================
   NAV BUTTONS – Clean VV Style
   - White background
   - Orange arrow
   - Hover: inverted (orange bg, white arrow)
   - Click: subtle pulse ripple (no glow)
   =========================================================== */

/* Buttons as perfect circles + centered content */
.vv-fullwidth-gallery-slider .swiper-button-prev,
.vv-fullwidth-gallery-slider .swiper-button-next {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.10);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
  z-index: 5;

  /* ripple setup */
  position: absolute;
  overflow: hidden;
}

/* Positioning */
.vv-fullwidth-gallery-slider .swiper-button-prev { left: 14px; }
.vv-fullwidth-gallery-slider .swiper-button-next { right: 14px; }

/* Stable vertical centering */
.vv-fullwidth-gallery-slider .swiper-button-prev,
.vv-fullwidth-gallery-slider .swiper-button-next {
  top: 50%;
  margin-top: 0;
  transform: translateY(-50%);
}

/* SVG icon styling */
.vv-fullwidth-gallery-slider .swiper-button-prev svg,
.vv-fullwidth-gallery-slider .swiper-button-next svg {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px;
  max-height: 16px;
  display: block;
  fill: currentColor !important;
  color: #FF7E00;
}

/* If theme forces 100% sizing on svg, override hard */
.vv-fullwidth-gallery-slider .swiper-button-prev svg.swiper-navigation-icon,
.vv-fullwidth-gallery-slider .swiper-button-next svg.swiper-navigation-icon {
  width: 16px !important;
  height: 16px !important;
}

/* Hover: invert (NO glow) */
@media (hover: hover) {
  .vv-fullwidth-gallery-slider .swiper-button-prev:hover,
  .vv-fullwidth-gallery-slider .swiper-button-next:hover {
    background: #FF7E00;
    border-color: rgba(255, 126, 0, 0.95);
    transform: translateY(-50%) scale(1.04);
  }

  .vv-fullwidth-gallery-slider .swiper-button-prev:hover svg,
  .vv-fullwidth-gallery-slider .swiper-button-next:hover svg {
    color: #fff;
  }
}

/* Keyboard focus */
.vv-fullwidth-gallery-slider .swiper-button-prev:focus-visible,
.vv-fullwidth-gallery-slider .swiper-button-next:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 126, 0, 0.35);
}

/* Disabled */
.vv-fullwidth-gallery-slider .swiper-button-disabled {
  opacity: 0.35 !important;
  cursor: not-allowed;
  box-shadow: none;
}

/* Mobile: slightly smaller + closer in */
@media (max-width: 768px) {
  .vv-fullwidth-gallery-slider .swiper-button-prev,
  .vv-fullwidth-gallery-slider .swiper-button-next {
    width: 42px;
    height: 42px;
  }

  .vv-fullwidth-gallery-slider .swiper-button-prev { left: 10px; }
  .vv-fullwidth-gallery-slider .swiper-button-next { right: 10px; }

  .vv-fullwidth-gallery-slider .swiper-button-prev svg,
  .vv-fullwidth-gallery-slider .swiper-button-next svg {
    width: 15px !important;
    height: 15px !important;
    max-width: 15px;
    max-height: 15px;
  }
}

/* ===========================================================
   CLICK PULSE (pure CSS)
   - subtle ripple expanding from button center
   - uses accent color with low opacity
   =========================================================== */

.vv-fullwidth-gallery-slider .swiper-button-prev::before,
.vv-fullwidth-gallery-slider .swiper-button-next::before {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255, 126, 0, 0.28);
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  pointer-events: none;
}

/* Trigger pulse on press/click */
.vv-fullwidth-gallery-slider .swiper-button-prev:active::before,
.vv-fullwidth-gallery-slider .swiper-button-next:active::before {
  animation: vvPulse 420ms ease-out;
}

/* Also a tiny “press” feedback */
.vv-fullwidth-gallery-slider .swiper-button-prev:active,
.vv-fullwidth-gallery-slider .swiper-button-next:active {
  transform: translateY(-50%) scale(0.98);
}

/* Pulse keyframes */
@keyframes vvPulse {
  0%   { transform: translate(-50%, -50%) scale(0.2); opacity: 0.0; }
  20%  { opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(4.2); opacity: 0; }
}
