/* Full-viewport cards */
.flip-root, .flip-row, .flip-card, .vertical-swiper, .horizontal-swiper {
  width: 100vw;
  height: 100svh; /* better for mobile browser UI */
}
.flip-card { display: flex; align-items: stretch; justify-content: stretch; }
.flip-card .flip-card-inner { display:flex; width:100%; height:100%; }
.flip-card-content { width:100%; height:100%; overflow:auto; -webkit-overflow-scrolling: touch; padding: 16px; }

/* Thumb-Bar */
.flip-thumb-bar {
  position: fixed;
  right: env(safe-area-inset-right, 12px);
  bottom: 18vh;
  z-index: 9999;
  display: grid;
  gap: 12px;
}
.flip-thumb-btn {
  width: 56px; height: 56px;
  display: grid; place-items:center;
  background: rgba(255,255,255,.85);
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  text-decoration: none;
}
.flip-thumb-btn .dashicons { font-size: 26px; line-height: 1; }
.flip-thumb-btn .label { position: absolute; left: -9999px; }

/* Reduced motion fallback */
@media (prefers-reduced-motion: reduce) {
  .swiper { scroll-snap-type: both mandatory; }
  .swiper-slide { scroll-snap-align: start; }
}

/* Accessibility utility */
.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}


/* Make Elementor sections fill the card and show background images */
.flip-card-content { padding: 0; }
.flip-card-content .elementor, 
.flip-card-content .elementor-section-wrap,
.flip-card-content .elementor-top-section {
  min-height: 100%;
}


/* Prevent stacking bleed-through between slides */
.horizontal-swiper, .vertical-swiper { overflow: hidden; }
.swiper-slide.flip-card { background: transparent; } /* provide a base bg so previous slide isn't visible */


/* --- Minimal Swiper core CSS fallback (in case CDN CSS is blocked) --- */
.swiper { position: relative; overflow: hidden; }
.swiper-wrapper { position: relative; width:100%; height:100%; display:flex; transition: transform 0.4s ease; }
.swiper-slide { flex-shrink: 0; width:100%; height:100%; position: relative; }

.flip-card-content { background: transparent !important; }


/* Force Flip Grid to fill viewport without extra Elementor spacing */
.elementor-widget-container > .flip-root {
  margin: 0 !important;
  padding: 0 !important;
  height: 100svh !important;
}
.flip-root .swiper,
.flip-root .swiper-wrapper,
.flip-root .swiper-slide {
  height: 100% !important;
}


/* Strip Elementor widget wrapper spacing for Flip Grid */
.elementor-widget-flip_grid,
.elementor-widget-flip_grid > .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
/* Ensure the outermost container doesn't add spacing around the widget */
.elementor .elementor-section .elementor-container .elementor-column .elementor-widget-flip_grid {
  margin: 0 !important;
  padding: 0 !important;
}


/* Force each slide to fill the viewport */
.flip-root .horizontal-swiper .swiper-slide.flip-card {
  height: 100svh !important;
  display: flex;
  overflow: hidden;
}

/* Make the inner wrappers stretch */
.flip-card-inner { display:flex; flex: 1 1 auto; }
.flip-card-content { flex: 1 1 auto; display:flex; flex-direction:column; padding:0; }
.flip-card-content > .elementor { flex: 1 1 auto; min-height: 100%; height: 100%; }
.flip-card-content > .elementor > .elementor-section-wrap,
.flip-card-content > .elementor > .e-con,
.flip-card-content > .elementor > .elementor-top-section { min-height: 100%; height: 100%; }


/* Stronger full-height rules with high specificity */
.vertical-swiper,
.vertical-swiper > .swiper-wrapper > .flip-row,
.vertical-swiper .horizontal-swiper,
.vertical-swiper .horizontal-swiper > .swiper-wrapper,
.vertical-swiper .horizontal-swiper .swiper-slide.flip-card {
  height: 100svh !important;
}

/* Remove any default margins from headings inside cards that can create phantom spacing impressions */
.flip-card-content h1,
.flip-card-content h2,
.flip-card-content h3 { margin-top: 0.25rem; }
