/* ============================================================
   Atheria Rooms — Gooey WebGL Gallery styles
   ============================================================ */

/* ============================================================
   BASE LAYOUT (GLOBAL)
   ============================================================ */
.ath-scroll-section, .elementor-element.ath-scroll-section {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background: #243C4C !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
}
.ath-scroll-section > .e-con-inner { position: relative !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; display: block !important; height: auto !important; }

/* Sticky Wrapper */
.ath-scroll-sticky { position: sticky !important; top: 0 !important; width: 100% !important; height: 100dvh !important; overflow: hidden !important; display: flex !important; align-items: center !important; background: #243C4C !important; touch-action: pan-y !important; }

/* ===== BACKGROUND TITLE ===== */
.ath-background-title, .elementor-element.ath-background-title { 
    position: absolute !important; top: 18% !important; left: 0 !important; 
    width: max-content !important; z-index: 0 !important; pointer-events: none !important; user-select: none !important; 
    padding-left: 10vw !important; padding-right: 0 !important; margin: 0 !important; 
    white-space: nowrap !important; will-change: transform; opacity: 0.4 !important; 
}
.ath-background-title .elementor-heading-title { color: #FFFFFF; margin: 0 !important; line-height: 1 !important; white-space: nowrap !important; font-size: clamp(2.5rem, 5.5vw, 6rem); }
.ath-background-title .ath-bg-title-break { display: none; } /* ignored on desktop — single-line watermark look stays intact */

/* ===== TRACK & CARDS ===== */
.ath-scroll-track, .elementor-element.ath-scroll-track { position: relative !important; display: flex !important; flex-direction: row !important; align-items: center !important; gap: clamp(6rem, 11vw, 13rem) !important; padding: 0 10vw !important; width: max-content !important; z-index: 2 !important; will-change: transform; margin: 0 !important; }
.ath-scroll-track > .e-con-inner { display: flex !important; flex-direction: row !important; align-items: center !important; gap: clamp(6rem, 11vw, 13rem) !important; width: max-content !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }

.ath-scroll-card, .elementor-element.ath-scroll-card { position: relative !important; width: clamp(190px, 15.5vw, 240px) !important; height: auto !important; margin: 0 !important; padding: 0 !important; cursor: pointer; pointer-events: auto !important; z-index: 5 !important; }
.ath-scroll-card > .e-con-inner { padding: 0 !important; margin: 0 !important; display: block !important; }

/* STAGGER EFFECT (Desktop Default) */
.ath-scroll-card:nth-child(odd)  { transform: translateY(5vh) !important; }
.ath-scroll-card:nth-child(even) { transform: translateY(-6vh) !important; }

/* HIDE SOURCE IMAGES & DETAILS IN GRID */
.ath-img-1, .ath-img-2 { display: none !important; }
.ath-scroll-card .elementor-widget.ath-details-text { display: none !important; }

/* GOOEY WRAPPER */
.ath-gooey-wrapper { position: relative; width: 100%; height: 0; padding-bottom: 136.36%; overflow: hidden; border-radius: 4px; z-index: 1; background: #1a2a36; pointer-events: auto !important; }
@supports (aspect-ratio: 297/405) { .ath-gooey-wrapper { height: auto; padding-bottom: 0; aspect-ratio: 297 / 405; } }
.ath-gooey-wrapper canvas { width: 100% !important; height: 100% !important; display: block; outline: none; pointer-events: none !important; }
.ath-gooey-wrapper.ath-gooey-static { background-size: cover; background-position: center; background-repeat: no-repeat; }

/* ===== CARD CONTENT (GRID TITLES - Desktop Default) ===== */
.ath-card-content, .elementor-element.ath-card-content { 
    position: absolute !important; top: auto !important; bottom: 12% !important; left: -45% !important; 
    width: 200% !important; z-index: 10 !important; pointer-events: none !important; 
    padding: 0 !important; margin: 0 !important; transform: none !important;
    display: flex !important; flex-direction: column !important; justify-content: flex-end !important; gap: 0.6rem !important; 
}
.ath-card-content > .e-con-inner { padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 0.6rem !important; align-items: flex-start !important; height: auto !important; }
.ath-card-content .elementor-heading-title { color: #FFFFFF; font-size: clamp(2rem, 2.9vw, 2.85rem) !important; line-height: 1 !important; margin: 0 !important; padding: 0 !important; pointer-events: auto !important; }
.ath-card-content .ath-line2 { display: inline-block; padding-left: 1.4em; }
.ath-card-content .elementor-widget-text-editor { pointer-events: auto !important; margin: 0 !important; padding: 0 !important; }
.ath-card-content .elementor-widget-text-editor p, .ath-card-content .elementor-widget-text-editor { color: #F4FCFB; font-size: 0.85rem !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; margin: 0 !important; padding: 0 !important; display: inline-block !important; position: relative; width: auto !important; }
.ath-card-content .elementor-widget-text-editor p::before { display: none !important; }
.ath-card-content .elementor-widget-text-editor p::after { content: ""; position: absolute; left: 0; bottom: -5px; width: 100%; height: 1px; background: currentColor; }

/* Progress Bar */
.ath-progress-container { position: absolute !important; bottom: 40px !important; left: 50% !important; transform: translateX(-50%) !important; width: 150px !important; height: 2px !important; background: rgba(244, 252, 251, 0.2) !important; z-index: 10 !important; margin: 0 !important; }
.ath-progress-bar { width: 100% !important; height: 100% !important; background: #F4FCFB !important; transform-origin: left center !important; transform: scaleX(0); }

/* ============================================================
   GLOBAL EXPAND MODAL
   ============================================================ */
.ath-global-modal { position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; z-index: 2147483647 !important; display: flex; pointer-events: none; visibility: hidden; }
.ath-global-modal.is-active { pointer-events: auto; visibility: visible; }
.ath-global-modal-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #243C4C; opacity: 0; }
.ath-global-modal-image { position: absolute; background-size: cover; background-position: center; z-index: 2; border-radius: 4px; box-shadow: 0 20px 50px rgba(0,0,0,0.3); }

.ath-global-modal-content { position: absolute; z-index: 3; display: flex; flex-direction: column; }
@media (min-width: 1025px) { .ath-global-modal-content { left: 0; top: 0; width: 50vw; height: 100vh; padding: 8vw 6vw; justify-content: center; } }

/* PREV Button */
.ath-modal-close-btn { 
    position: fixed !important; top: 2rem !important; left: 1.5rem !important; 
    background: transparent; border: none; color: #F4FCFB; 
    font-family: inherit; font-size: 0.9rem; letter-spacing: 0.2em; 
    display: flex; align-items: center; gap: 10px; cursor: pointer; 
    text-transform: uppercase; padding: 0; margin: 0; z-index: 999999 !important;
}
.ath-modal-close-btn svg { width: 20px; height: 20px; }

/* Modal Text Styles */
.ath-global-modal-inner-text .elementor-widget-heading .elementor-heading-title { color: #FFFFFF; font-size: clamp(3rem, 6vw, 6rem) !important; margin-bottom: 1.5rem !important; line-height: 1.1 !important; text-shadow: none !important; white-space: normal !important; }
.ath-global-modal-inner-text .elementor-widget-heading .ath-line2 { padding-left: 0 !important; display: block !important; }
.ath-global-modal-inner-text .ath-details-text { display: block !important; margin-bottom: 1rem; color: #F4FCFB; }
.ath-global-modal-inner-text .ath-details-text .elementor-widget-container { color: #F4FCFB; font-size: 1.15rem !important; line-height: 1.7 !important; max-width: 550px !important; }

/* THE REVEAL CLASSES */
.ath-reveal-item { will-change: transform, opacity; display: block; }

/* ============================================================
   RESPONSIVE OVERRIDES
   ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {
  .ath-background-title { top: 11% !important; padding-left: 5vw !important; }
  .ath-scroll-track, .elementor-element.ath-scroll-track { padding: 0 22vw !important; gap: 8vw !important; }
  .ath-scroll-card, .elementor-element.ath-scroll-card { width: 260px !important; flex: 0 0 260px !important; max-width: 260px !important; aspect-ratio: 297 / 405 !important; }
  .ath-scroll-card:nth-child(odd),
  .ath-scroll-card:nth-child(even) { transform: none !important; }
  .ath-scroll-card > .e-con-inner { position: relative !important; height: 100% !important; display: block !important; padding: 0 !important; }
  .ath-scroll-card .elementor-widget-html { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; }
  .ath-scroll-card .elementor-widget-html .elementor-widget-container { height: 100% !important; }
  .ath-gooey-wrapper { height: 100% !important; padding-bottom: 0 !important; aspect-ratio: auto !important; }
  .ath-card-content, .elementor-element.ath-card-content { position: absolute !important; z-index: 10 !important; top: auto !important; left: 7% !important; width: 86% !important; bottom: 8% !important; transform: none !important; }
  .ath-card-content .elementor-heading-title { font-size: 1.6rem !important; text-shadow: 0 2px 15px rgba(0,0,0,0.6) !important; }
  .ath-card-content .ath-line2 { padding-left: 1em; }
  .ath-progress-container { bottom: 25px !important; }
  .ath-global-modal-content { left: 0; top: 45vh; width: 100vw; height: 55vh; padding: 3rem 6vw; justify-content: flex-start; overflow-y: auto; }
}

@media (max-width: 767px) {
  .ath-background-title { top: 12% !important; padding-left: 5vw !important; }
  .ath-background-title .ath-bg-title-break { display: block; }

  .ath-scroll-track, .elementor-element.ath-scroll-track {
      padding: 14vh 17vw 0 17vw !important;
      gap: 5vw !important;
  }
  .ath-scroll-card, .elementor-element.ath-scroll-card {
      width: 66vw !important;
      flex: 0 0 66vw !important;
      max-width: 66vw !important;
      aspect-ratio: 297 / 405 !important;
  }
  .ath-scroll-card > .e-con-inner { position: relative !important; height: 100% !important; display: block !important; padding: 0 !important; }
  .ath-scroll-card .elementor-widget-html { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; }
  .ath-scroll-card .elementor-widget-html .elementor-widget-container { height: 100% !important; }
  .ath-gooey-wrapper { height: 100% !important; padding-bottom: 0 !important; aspect-ratio: auto !important; }

  .ath-scroll-card:nth-child(odd)  { transform: none !important; }
  .ath-scroll-card:nth-child(even) { transform: none !important; }

  .ath-card-content, .elementor-element.ath-card-content {
      position: absolute !important;
      z-index: 10 !important;
      top: auto !important;
      left: 7% !important;
      width: 86% !important;
      bottom: 8% !important;
      margin: 0 !important;
      transform: none !important;
  }
  .ath-card-content .elementor-heading-title { font-size: 2rem !important; text-shadow: 0 2px 15px rgba(0,0,0,0.6) !important; }
  .ath-card-content .ath-line2 { padding-left: 1em; }

  .ath-progress-container { bottom: 25px !important; }

  .ath-global-modal-content { left: 0; top: 45vh; width: 100vw; height: 55vh; padding: 2.5rem 1.5rem; justify-content: flex-start; overflow-y: auto; }
  .ath-global-modal-inner-text .elementor-widget-heading .elementor-heading-title { font-size: 2.2rem !important; }
}

/* ===== EDITOR SAFETY ===== */
body.elementor-editor-active .ath-scroll-section { height: auto !important; }
body.elementor-editor-active .ath-scroll-sticky { position: relative !important; height: auto !important; display: block !important; }
body.elementor-editor-active .ath-scroll-track { flex-wrap: wrap !important; width: 100% !important; padding: 1rem !important; overflow: visible !important; }
body.elementor-editor-active .ath-scroll-track > .e-con-inner { flex-wrap: wrap !important; }
body.elementor-editor-active .ath-scroll-card { width: 180px !important; transform: none !important; display: block !important;}
body.elementor-editor-active .ath-scroll-card:nth-child(odd), body.elementor-editor-active .ath-scroll-card:nth-child(even) { transform: none !important; }
body.elementor-editor-active .ath-card-content { position: relative !important; left: 0 !important; width: 100% !important; bottom: auto !important; margin-top: 0.5rem !important; top: auto !important; }
body.elementor-editor-active .ath-img-1, body.elementor-editor-active .ath-img-2 { display: block !important; opacity: 0.5; max-width: 100px; margin-bottom: 10px; }
body.elementor-editor-active .ath-details-text { display: block !important; background: rgba(0,0,0,0.5); padding: 10px; margin-top: 10px; }

/* ── Mobile + Tablet: enable horizontal free scroll (no JS pin) ─────────────
   Only the scroll mechanism changes. Card sizes/styles are handled separately
   per breakpoint in the blocks above.                                        */
@media (max-width: 1024px) {
  .ath-scroll-section,
  .elementor-element.ath-scroll-section {
    height: auto !important;
  }
  .ath-scroll-sticky {
    position: relative !important;
    top: auto !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
  .ath-scroll-track,
  .elementor-element.ath-scroll-track {
    transform: none !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    will-change: auto !important;
  }
  .ath-scroll-track::-webkit-scrollbar { display: none; }
  .ath-scroll-track > .e-con-inner { padding: 0 !important; }
  .ath-scroll-card,
  .elementor-element.ath-scroll-card {
    scroll-snap-align: start;
    flex-shrink: 0 !important;
  }
}

/* ── Mobile only (≤767px): bg title + progress bar tweaks only ───────────── */
@media (max-width: 767px) {
  .ath-scroll-sticky { height: 100dvh !important; }
  .ath-background-title { top: 8% !important; }
  .ath-progress-container { bottom: 20px !important; }
  .ath-scroll-track,
  .elementor-element.ath-scroll-track {
    padding: 14vh 17vw 0 17vw !important;
    gap: 5vw !important;
  }
}
