/**
Theme Name: Philhellene
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: philhellene
Template: astra
*/


/* ===================================
   HORIZONTAL SCROLL SETUP
   =================================== */

/* Container for all panels */
body {
  overflow-x: scroll;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
}

/* Hide scrollbar but keep functionality */
body::-webkit-scrollbar {
  display: none;
}

body {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* Horizontal layout */
.elementor-section.horizontal-panel {
  display: inline-block;
  width: 100vw;
  height: 100vh;
  scroll-snap-align: start;
  position: relative;
  vertical-align: top;
  overflow: hidden;
}

/* Container to hold all panels */
/* NEW - 14 panels */
.elementor {
  display: flex;
  flex-direction: row;
  width: calc(100vw * 14); /* 14 panels */
  height: 100vh;
}

/* ===================================
   PARALLAX LAYERS - BASE STYLES
   =================================== */

.parallax-layer-1,
.parallax-layer-2,
.parallax-layer-3,
.slide-in-left,
.slide-in-right,
.slide-in-top,
.slide-in-bottom {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

/* Layer 1 - Background (no animation by default) */
.parallax-layer-1 {
  z-index: 1;
}

/* Layer 2 - Default styling */
.parallax-layer-2 {
  z-index: 2;
}

/* Layer 3 - Default styling */
.parallax-layer-3 {
  z-index: 3;
}

/* ===================================
   SLIDE-IN ANIMATIONS - 4 DIRECTIONS
   =================================== */

/* SLIDE FROM LEFT */
.slide-in-left {
  transform: translateX(-100%);
  opacity: 0;
  transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.3s ease-out;
}

.horizontal-panel.is-active .slide-in-left {
  transform: translateX(0);
  opacity: 1;
}

/* SLIDE FROM RIGHT */
.slide-in-right {
  transform: translateX(100%);
  opacity: 0;
  transition: transform 0.2s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.4s ease-out;
}

.horizontal-panel.is-active .slide-in-right {
  transform: translateX(0);
  opacity: 1;
}

/* SLIDE FROM TOP */
.slide-in-top {
  transform: translateY(-100%);
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.6s ease-out;
}

.horizontal-panel.is-active .slide-in-top {
  transform: translateY(0);
  opacity: 1;
}

/* SLIDE FROM BOTTOM */
.slide-in-bottom {
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.6s ease-out;
}

.horizontal-panel.is-active .slide-in-bottom {
  transform: translateY(0);
  opacity: 1;
}

/* ===================================
   ANIMATION DELAYS (Optional)
   =================================== */

/* Add delays to create sequential animations */
.slide-delay-1 {
  transition-delay: 0.2s;
}

.slide-delay-2 {
  transition-delay: 0.4s;
}

.slide-delay-3 {
  transition-delay: 0.6s;
}

.slide-delay-4 {
  transition-delay: 0.8s;
}

/* ===================================
   ANIMATION SPEED VARIATIONS
   =================================== */

/* Faster animations */
.slide-fast {
  transition-duration: 0.4s !important;
}

/* Slower animations */
.slide-slow {
  transition-duration: 0.5s !important;
}

/* ===================================
   BONUS: ADDITIONAL EFFECTS
   =================================== */

/* Fade only (no movement) */
.fade-in {
  opacity: 0;
  transition: opacity 0.8s ease-out;
}

.horizontal-panel.is-active .fade-in {
  opacity: 1;
}

/* Zoom in */
.zoom-in {
  transform: scale(0.5);
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.6s ease-out;
}

.horizontal-panel.is-active .zoom-in {
  transform: scale(1);
  opacity: 1;
}

/* Zoom out */
.zoom-out {
  transform: scale(1.5);
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.4, 0.0, 0.2, 1), 
              opacity 0.6s ease-out;
}

.horizontal-panel.is-active .zoom-out {
  transform: scale(1);
  opacity: 1;
}

/* ===================================
   ACCESSIBILITY - REDUCED MOTION
   =================================== */

@media (prefers-reduced-motion: reduce) {
  .slide-in-left,
  .slide-in-right,
  .slide-in-top,
  .slide-in-bottom,
  .fade-in,
  .zoom-in,
  .zoom-out {
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
  }
}

/* ===================================
   PROGRESS INDICATOR
   =================================== */

.scroll-progress {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 12px 24px;
  border-radius: 25px;
  z-index: 9999;
  font-size: 16px;
  font-weight: 600;
  pointer-events: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* ===================================
   SKIP NAVIGATION (Accessibility)
   =================================== */

.skip-navigation {
  position: fixed;
  top: 20px;
  left: 20px;
  background: rgba(0, 0, 0, 0.9);
  color: white;
  padding: 12px 20px;
  border-radius: 8px;
  z-index: 10000;
  text-decoration: none;
  font-size: 14px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.skip-navigation:focus {
  opacity: 1;
  pointer-events: all;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

/* ===================================
   NAVIGATION ARROWS
   =================================== */

.nav-arrows {
  position: fixed;
  top: 50%;
  width: 100%;
  z-index: 9998;
  pointer-events: none;
  transform: translateY(-50%);
}

.nav-arrow {
  position: absolute;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 2px solid white;
  cursor: pointer;
  pointer-events: all;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  transition: all 0.3s ease;
}

.nav-arrow:hover {
  background: rgba(0, 0, 0, 0.9);
  transform: scale(1.1);
}

.nav-arrow:focus {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.nav-arrow.prev {
  left: 20px;
}

.nav-arrow.next {
  right: 20px;
}

.nav-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
}

/* ===================================
   PANEL DOTS NAVIGATION
   =================================== */

.panel-dots {
  position: fixed;
  bottom: 70px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.6);
  padding: 10px 20px;
  border-radius: 25px;
}

.panel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
  padding: 0;
}

.panel-dot:hover,
.panel-dot:focus {
  background: rgba(255, 255, 255, 0.7);
  transform: scale(1.3);
}

.panel-dot.active {
  background: white;
  transform: scale(1.2);
}

.panel-dot:focus {
  outline: 2px solid white;
  outline-offset: 3px;
}

/* ===================================
   ACCESSIBILITY - REDUCED MOTION
   =================================== */

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  body {
    scroll-behavior: auto !important;
  }
  
  .parallax-layer-1,
  .parallax-layer-2,
  .parallax-layer-3 {
    transform: none !important;
    transition: none !important;
  }
  
  .nav-arrow,
  .panel-dot {
    transition: none !important;
  }
}

/* ===================================
   MOBILE RESPONSIVE
   =================================== */

@media (max-width: 768px) {
  .scroll-progress {
    bottom: 10px;
    right: 10px;
    padding: 8px 16px;
    font-size: 14px;
  }
  
  .nav-arrow {
    width: 40px;
    height: 40px;
    font-size: 20px;
  }
  
  .nav-arrow.prev {
    left: 10px;
  }
  
  .nav-arrow.next {
    right: 10px;
  }
  
  .panel-dots {
    bottom: 60px;
    padding: 8px 15px;
    gap: 8px;
  }
  
  .panel-dot {
    width: 8px;
    height: 8px;
  }
}

/* ===================================
   FOCUS VISIBLE (Better keyboard navigation)
   =================================== */

*:focus:not(:focus-visible) {
  outline: none;
}

*:focus-visible {
  outline: 3px solid #4A90E2;
  outline-offset: 2px;
}