/* ==========================================================================
   Local Web Fonts (Cabinet Grotesk & General Sans)
   ========================================================================== */

/* Cabinet Grotesk */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Thin.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Thin.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Thin.ttf') format('truetype');
  font-weight: 100;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extralight.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extralight.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extralight.ttf') format('truetype');
  font-weight: 200;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Light.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Light.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Light.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Regular.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Regular.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Medium.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Medium.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Medium.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Bold.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Bold.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.ttf') format('truetype');
  font-weight: 800;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Black.woff2') format('woff2'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Black.woff') format('woff'),
       url('assets/CabinetGrotesk/Fonts/WEB/fonts/CabinetGrotesk-Black.ttf') format('truetype');
  font-weight: 900;
  font-display: swap;
  font-style: normal;
}

/* General Sans */
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Extralight.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Extralight.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Extralight.ttf') format('truetype');
  font-weight: 200;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Light.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Light.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Light.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Regular.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Regular.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Medium.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Medium.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Medium.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Semibold.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Semibold.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Semibold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Bold.woff2') format('woff2'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Bold.woff') format('woff'),
       url('assets/GeneralSans/Fonts/WEB/fonts/GeneralSans-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}

/* ==========================================================================
   Hamburger Menu Global Styles
   ========================================================================== */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  height: 20px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 101;
  outline: none;
}

.hamburger span {
  width: 100%;
  height: 3px;
  background-color: #1a789e;
  border-radius: 3px;
  transition: all 0.3s ease-in-out;
}

/* Open Animation */
.hamburger.open span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.hamburger.open span:nth-child(2) {
  opacity: 0;
}

.hamburger.open span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 1100px) {
  .hamburger {
    display: flex;
  }

  .main-nav {
    display: none !important;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 260px;
    background: #ffffff;
    border: 1px solid rgba(26, 120, 158, 0.2);
    border-radius: 16px;
    padding: 16px;
    flex-direction: column;
    align-items: stretch !important;
    gap: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    z-index: 999;
  }

  .main-nav.open {
    display: flex !important;
  }

  .main-nav.open a {
    display: block !important;
    padding: 12px 16px !important;
    color: #1a789e !important;
    font-size: 16px !important;
    text-align: center !important;
    border-radius: 8px !important;
    background: transparent !important;
    transition: background 0.2s !important;
  }

  .main-nav.open a:hover {
    background: rgba(26, 120, 158, 0.08) !important;
  }
  
  .main-nav.open .nav-ticket {
    background: #1a789e !important;
    color: #ffffff !important;
    margin-top: 4px !important;
  }
}

/* ==========================================================================
   Scroll Reveal & Fade-in Animations
   ========================================================================== */
.reveal {
  opacity: 0 !important;
  transform: translateY(40px) !important;
  transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.reveal.revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

