/* ==========================================================================
   Page Sections – Frontend styles for section-based custom pages
   ========================================================================== */

/*
 * Offset all sections from the fixed header.
 * The header is position:fixed with ~80px height on desktop.
 * padding-top on the container creates space above the first section.
 */
.page-sections-container {
  padding-top: 90px;
}

@media (max-width: 991px) {
  .page-sections-container {
    padding-top: 70px;
  }
}

@media (max-width: 575px) {
  .page-sections-container {
    padding-top: 90px;
  }
}

/* Base section layout */
.page-section {
  position: relative;
  overflow: hidden;
  padding-top: 40px;
  padding-bottom: 40px;
}

@media (max-width: 575px) {
  .page-section {
    padding-top: 25px;
    padding-bottom: 25px;
  }
}

/* Responsive video embed (16:9) */
.page-section .video-responsive {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
}

.page-section .video-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ==========================================================================
   Hero Image Section
   ========================================================================== */

.hero-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}

.hero-wrapper--container {
  max-width: 1170px;
  margin: 0 auto;
  background-size: cover;
  background-position: center;
}

.hero-overlay {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: inherit;
  padding: 30px;
  box-sizing: border-box;
}

/* Vertical positioning */
.hero-overlay--top { align-items: flex-start; }
.hero-overlay--center { align-items: center; }
.hero-overlay--bottom { align-items: flex-end; }

/* Horizontal positioning */
.hero-overlay--h-left { justify-content: flex-start; }
.hero-overlay--h-center { justify-content: center; }
.hero-overlay--h-right { justify-content: flex-end; }

.hero-text-box {
  padding: 25px 30px;
  box-sizing: border-box;
}

.hero-text-box p {
  margin-bottom: 10px;
}

.hero-cta-wrapper {
  margin-top: 15px;
}

.hero-cta-wrapper .btn-cta {
  display: inline-block;
  padding: 10px 25px;
  font-size: 15px;
  text-decoration: none;
  transition: opacity .2s;
}

.hero-cta-wrapper .btn-cta:hover {
  opacity: 0.85;
}

@media (max-width: 767px) {
  .hero-overlay {
    padding: 15px;
  }
  .hero-text-box {
    width: 100% !important;
    padding: 15px;
  }
}
