@import url('https://fonts.googleapis.com/css2?family=Poiret+One&display=swap');

:root {
    --brand-gold: #ffffff;
    --brand-gold-hover: #ffffff;
  }
  
  /* Reset & Base */
  * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    html, body {
      height: 100%;
      scroll-behavior: smooth;
    }
    body {
      font-family: 'Futura PT', sans-serif;
      background: black;
      color: #e0e0e0;
      overflow-x: hidden;
    }
    
    /* Scroll‐snap & Fade‐in
    main {
      scroll-snap-type: y mandatory;
    }
    section {
      scroll-snap-align: start;
      opacity: 0;
      transform: translateY(50px) scale(0.98);
      transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    }
    section.visible {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
    */

/* -------- hero layout -------- */
#hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

/* --------------- logo block --------------- */
#hero .logo{
  position:relative;      /* was absolute */
  top:auto; left:auto;    /* remove offsets */
  transform:none;         /* no translateX */
  z-index:2;              /* still above overlay */
  margin-bottom:2rem;     /* gap before the headline */
}

/* --------------- headline --------------- */
#hero h1{
  margin:0;               /* remove the huge fixed offset */
}

    /* Header */
    .site-header {
      display: none !important;
    }
    .logo {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      margin: 0 auto 0.5rem auto;
      position: static;
    }
    .nav-logo {
      display: block;
      margin: 0 auto;
      max-width: 120px;
      height: auto;
    }
    .header-btn {
      border: 2px solid #ffffff;
      background: transparent;
      color: #e0e0e0;
      padding: .5rem 1rem;
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: .05em;
    }
    .header-btn:hover {
      background: #ffffff;
      color: black;
    }
    
    /* Hero */
    #hero {
      position: relative;
      height: 100vh;
      overflow: hidden;
      background: #000;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin-top: 0 !important;
      padding-top: 0 !important;
    }
    .hero-video {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      object-fit: cover;
      z-index: 0;
    }
    .hero-overlay {
      position: absolute;
      top: -1px;
      left: -1px;
      right: -1px;
      bottom: -1px;
      background: linear-gradient(135deg, rgba(202,172,129,0.08) 0%, rgba(0,0,0,0.85) 100%), rgba(0,0,0,0.85);
      z-index: 1;
    }
    @media (max-width: 600px) {
      .hero-overlay {
        background: linear-gradient(135deg, rgba(202,172,129,0.10) 0%, rgba(0,0,0,0.4) 100%), rgba(0,0,0,0.4);
      }
    }
    #hero h1,
    #hero h2,
    #hero button,
    .hero-pre-headline {
      position: relative;
      z-index: 2;
      text-align: center;
      color: #fff;
    }
    #hero h1 {
      font-size: 3rem;
      margin-bottom: .5rem;
      margin-top: 100px;
    }
    #hero h2.subtitle {
      font-size: 1.25rem;
      font-weight: 100;
      max-width: 40ch;
      margin: 0 auto 1.5rem;
    }
    .hero-btn {
      border: 2px solid #ffffff;
      background: transparent;
      color: #e0e0e0;
      padding: .75rem 1.5rem;
      cursor: pointer;
      text-transform: uppercase;
      margin-bottom: 1rem;
    }
    .hero-btn:hover {
      background: #ffffff;
      color: black;
    }
    .scroll-indicator {
      position: absolute;
      left: 0;
      right: 0;
      bottom: calc(10vh + 2rem);
      text-align: center;
      font-size: 1rem;
      animation: bounce 1.5s infinite;
      z-index: 2;
      color: #fff;
    }
    
    /* Center logo over video in hero */
    #hero .logo {
      position: absolute;
      top: 1.5rem;
      left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      width: auto;
      margin: 0;
    }
    #hero .nav-logo {
      max-width: 150px;
      height: auto;
      display: block;
    }
    
    /* Shared widget style */
    .widget {
      width: 90%;
      max-width: 800px;
      margin: 2rem auto 0;
      background: #fff;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    }
    .widget__inner {
      padding: 1.5rem;
    }
    .widget__title {
      font-size: 2.5rem;
      margin-bottom: 1rem;
      color: white;
      font-weight: 100;
    }
    .gold,
    #contact .widget__title,
    #tickets .widget__title {
      color: #ffffff !important;
    }
    
    /* Dark‐background widgets */
    .dark-widget {
      background: #000 !important;
    }
    .dark-widget .widget__inner {
      color: #e0e0e0;
    }
    /* Keep gold title in dark widgets */
    .dark-widget .widget__title.gold {
      color: #ffffff !important;
    }
    
    /* Make event info details white in dark widget */
    .dark-widget .widget__details {
      color: #e0e0e0 !important;
    }
    
    /* Description widget */
    #description .widget__title {
      color: #000 !important;
      border-bottom: none;
      display: inline-block;
      padding-bottom: 0;
      margin-bottom: 1em;
      font-family: 'Futura PT', sans-serif;
      font-size: 2rem;
    }
    .calendar-btn {
      display: inline-block;
      margin-top: 1rem;
      border: 2px solid #ffffff;
      background: transparent;
      color: #e0e0e0;
      padding: .75rem 1.5rem;
      border-radius: 6px;
      cursor: pointer;
      text-transform: uppercase;
      font-size: 1rem;
      transition: background 0.2s, color 0.2s;
    }
    .calendar-btn:hover {
      background: #ffffff;
      color: black;
    }
    
    /* Event Info details */
    .widget__details {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      font-size: .95rem;
      color: #444;
    }
    
    /* Tickets */
    .ticket {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 1rem 0;
      border-top: none;
    }
    .ticket:first-child {
      border-top: none;
    }
    .ticket__info {
      flex: 1;
    }
    .ticket__name {
      font-size: 1rem;
      font-weight: normal;
      margin-bottom: .25rem;
    }
    .ticket__price {
      font-size: 1rem;
      margin-bottom: .5rem;
    }
    .ticket__desc {
      font-size: .9rem;
      color: #7A7A7A;
      line-height: 1.4;
    }
    .ticket__qty {
      display: flex;
      align-items: center;
      gap: .5rem;
    }
    .qty__btn {
      width: 32px;
      height: 32px;
      border: none;
      background: transparent;
      color: #ffffff;
      font-size: 1.2rem;
      cursor: pointer;
    }
    .qty__btn:disabled {
      opacity: .4;
      cursor: default;
    }
    .qty__minus:hover:not(:disabled),
    .qty__plus:hover:not(:disabled) {
      border-color: #ffffff;
      color: #ffffff;
    }
    .qty__count {
      min-width: 1.2rem;
      text-align: center;
      color: #ffffff;
    }
    .checkout__btn {
      display: block;
      width: 100%;
      margin-top: 1rem;
      padding: .75rem;
      background: #ffffff;
      color: black;
      border: none;
      border-radius: 6px;
      font-size: 1rem;
      cursor: pointer;
      text-transform: uppercase;
      margin-left: auto;
      margin-right: 0;
    }
    
    /* Reserve widget — now white and centered */
    #experience.widget {
      background: #fff;
    }
    .reserve-centered {
      text-align: center;
    }
    .reserve-centered .widget__title,
    .reserve-centered .widget__subtitle,
    .reserve-centered .widget__desc,
    .reserve-centered .reserve__btn {
      margin-left: auto;
      margin-right: auto;
    }
    
    /* Reserve specifics */
    .widget__subtitle {
      font-size: 1.25rem;
      margin-bottom: 1rem;
      color: #000;
    }
    .widget__desc {
      font-size: 1rem;
      color: #444;
      line-height: 1.5;
      margin-bottom: 0.5rem;
    }
    .reserve__btn {
      border: 2px solid #ffffff;
      background: transparent;
      color: #e0e0e0;
      padding: .75rem 1.5rem;
      cursor: pointer;
      text-transform: uppercase;
      margin-top: 1.5rem;
    }
    .reserve__btn:hover {
      background: #ffffff;
      color: black;
    }
    
    /* Map */
    .map-iframe {
      width: 100%;
      height: 280px;
      border: 0;
      border-radius: 4px;
    }
    .map__btn {
      display: block;
      width: 170px;
      margin-left: auto;
      margin-right: auto;
      padding: .75rem 0.5rem;
      border: 2px solid #ffffff;
      background: transparent;
      color: #e0e0e0;
      cursor: pointer;
      text-transform: uppercase;
      text-align: center;
      border-radius: 6px;
      font-size: 0.8rem;
      transition: background 0.2s, color 0.2s;
      text-decoration: none;
      margin-top: 2rem;
    }
    .map__btn:hover {
      background: #ffffff;
      color: black;
      text-decoration: none;
    }
    
    /* Contact */
    #contact-form {
      background: black;
      padding: 1rem;
      border-radius: 0px;
      margin-left: 0;
      margin-right: 0;
      padding-left: 0;
      padding-right: 0;
    }
    #contact-form input,
    #contact-form textarea {
      background: black;
      border: 0.25px solid gray;
      color: #e0e0e0;
      border-width: 0.3px;
      width: 100%;
      padding: .75rem;
      margin-bottom: 1rem;
      border-radius: 3px;
      font-size: 1rem;
      &::placeholder {
        font-size: 1rem;
      }
      &:focus {
        border-color: white;
        outline: none;
      }
    }
    .contact-btn {
      display: block;
      width: 100%;
      padding: .75rem 0.5rem;
      background: transparent;
      color: #e0e0e0;
      border: 2px solid #ffffff;
      cursor: pointer;
      text-transform: uppercase;
      text-align: center;
      border-radius: 6px;
      font-size: 0.75rem;
      transition: background 0.2s, color 0.2s;
      text-decoration: none;
      margin-left: auto;
      margin-right: 0;
    }
    .contact-btn:hover {
      background: #ffffff;
      color: black;
      text-decoration: none;
    }
    .contact-footer {
      text-align: center;
      margin-top: 1rem;
      color: #e0e0e0;
    }
    .contact-footer a {
      color: inherit;
      text-decoration: none;
    }
    
    /* Footer */
    footer {
      text-align: center;
      padding: 2rem 1rem;
      color: #666;
      font-size: .9rem;
      margin-top: 2rem;
    }
    footer a {
      color: #ffffff;
      text-decoration: none;
    }
    
    footer > div {
      margin-top: 0.75em;
      margin-bottom: 0.75em;
    }
    .footer-links {
      margin-top: 1.25em;
      margin-bottom: 0.5em;
    }
    
    /* Animations */
    @keyframes bounce {
      0%,100% { transform: translateY(0); }
      50% { transform: translateY(-10px); }
    }
    
    /* Responsive */
    @media (max-width: 600px) {
      .header-btn { display: none; }
      .nav-logo { max-width: 90px; }
      #hero h1 {
        font-size: 2.5rem;
        margin-left: 1.5rem;
        margin-right: 1.5rem;
        margin-top: 100px;
      }
      #hero h2.subtitle { font-size: 1rem; max-width: 80%; }
      .widget { width: calc(100% - 3rem); }
      .ticket { flex-direction: column; align-items: flex-start; }
      .ticket__qty { margin-top: .5rem; }
      .map-iframe { height: 200px; }
      .scroll-indicator {
        bottom: calc(15vh + 2rem);
      }
      #experience, #description, #map, #contact {
        margin: 2rem auto 1rem;
      }
      .payment-methods{
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 1rem;
        margin-top: 1rem;
      }
    }
    
    /* Center all content in the reserve section and make description white */
    #experience .widget__inner {
      text-align: center;
    }
    #experience .widget__title,
    #experience .widget__subtitle,
    #experience .widget__desc,
    #experience .reserve__btn {
      margin-left: auto;
      margin-right: auto;
    }
    #experience .widget__desc {
      color: #7A7A7A;
      font-family: 'Futura PT', sans-serif;
      font-size: 0.9rem;
    }
    
    /* Make Contact Us heading gold */
    #contact .widget__title {
      color: #ffffff !important;
    }
    
    /* Make Tickets heading black and underline gold */
    #tickets .widget__title {
      color: #ffffff !important;
      border-bottom: none;
      display: inline-block;
      padding-bottom: 0;
      margin-bottom: 1em;
      font-weight: normal;
    }
    
    .event-icon {
      display: inline-block;
      vertical-align: middle;
      margin-right: 0.5em;
    }
    
    /* Make event info icons gold */
    .event-icon svg {
      color: #ffffff;
      fill: none;
    }
    .event-icon svg * {
      stroke: #ffffff !important;
      fill: none !important;
    }
    .event-icon svg rect[fill],
    .event-icon svg circle[fill] {
      fill: #ffffff !important;
    }
    
    #contact .widget__inner {
      text-align: left;
    }
    #contact-form {
      text-align: left;
      width: 100%;
      max-width: none;
    }
    
    .hero-btn,
    .header-btn,
    .checkout__btn,
    .reserve__btn,
    .calendar-btn,
    .contact-btn,
    .map__btn,
    .qty__btn {
      border-radius: 0 !important;
    }
    
    /* Checkout Section */
    .checkout-section {
      display: none;
      width: 90%;
      max-width: 800px;
      margin: 2rem auto 0;
      background: #fff;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(0,0,0,0.06);
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.3s ease-out, transform 0.3s ease-out;
    }
    
    .checkout-section.active {
      display: block;
      opacity: 1;
      transform: translateY(0);
    }
    
    #tickets {
      opacity: 1;
      transform: translateY(0);
      transition: opacity 0.3s ease-out, transform 0.3s ease-out;
    }
    
    #tickets.hidden {
      display: none;
      opacity: 0;
      transform: translateY(-20px);
    }
    
    .checkout-form {
      width: 100%;
      padding: 0;
    }
    
    #checkout .widget__title {
      font-size: 2rem;
    }
    
    #checkout label {
      color: #fff;
    }
    
    .form-group {
      margin-bottom: 1.5rem;
      padding: 0;
    }
    
    .form-group label {
      display: block;
      margin-bottom: 0.5rem;
      color: #333;
      font-weight: 500;
      text-align: left;
    }
    
    .form-group input {
      width: 100%;
      padding: 0.75rem;
      border: 1px solid #ddd;
      border-radius: 4px;
      font-size: 1rem;
    }
    
    .stripe-element {
      width: 100%;
      padding: 0.75rem;
      border: 1px solid #ddd;
      border-radius: 4px;
      background-color: #fff;
    }
    
    .form-row {
      display: flex;
      gap: 1rem;
      padding: 0;
    }
    
    .form-row .form-group {
      flex: 1;
      padding: 0;
    }
    
    .order-summary {
      margin: 2rem 0;
      padding: 1.5rem;
      background: #f9f9f9;
      border-radius: 4px;
      text-align: left;
    }
    
    .order-summary h3 {
      margin-bottom: 1rem;
      color: #333;
      font-size: 1.1rem;
      font-weight: 600;
    }
    
    .order-item {
      display: flex;
      justify-content: space-between;
      margin-bottom: 0.5rem;
      padding-bottom: 0.5rem;
      border-bottom: 1px solid #eee;
    }
    
    .order-item:last-child {
      border-bottom: none;
    }
    
    .order-total {
      display: flex;
      justify-content: space-between;
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid #ddd;
      font-weight: 600;
    }
    
    .payment-btn,
    .back-btn {
      width: 100%;
      margin: 0;
      padding: 0.75rem 1.5rem;
      font-size: 1rem;
    }
    
    .payment-btn {
      width: 100%;
      padding: 1rem;
      background: #ffffff;
      color: black;
      border: none;
      border-radius: 4px;
      cursor: pointer;
      text-transform: uppercase;
      margin-bottom: 1rem;
      transition: background-color 0.2s ease;
    }
    
    .back-btn {
      width: 100%;
      padding: 1rem;
      background: transparent;
      color: #ffffff;
      border: 1px solid #ffffff;
      border-radius: 4px;
      cursor: pointer;
      text-transform: uppercase;
      transition: all 0.2s ease;
    }
    
    .payment-btn:hover {
      background: #ffffff;
    }
    
    .back-btn:hover {
      background: #ffffff;
      color: black;
    }
    /* full-screen semi-transparent overlay */
#processing-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.2);      /* 20% gray */
  display: none;                     /* hidden by default */
  align-items: center;               /* center loader */
  justify-content: center;
  z-index: 10000;                    /* on top of everything */
  pointer-events: all;               /* capture all clicks */
}

/* simple CSS spinner */
.loader {
  border: 8px solid #f3f3f3;
  border-top: 8px solid var(--brand-gold);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

#tickets, #description, #map, #contact {
  background: black;
  color: white;
}

#tickets .widget__title, #description .widget__title, #map .widget__title, #contact .widget__title {
  color: white !important;
}

#tickets .widget__inner, #description .widget__inner, #map .widget__inner, #contact .widget__inner {
  color: white;
}

.reserve-footer a {
  color: inherit;
  text-decoration: none;
}

#description p {
  font-size: 0.9rem;
  font-family: 'Futura PT', sans-serif;
  color: #7A7A7A;
}

#experience .widget__title {
  font-family: 'Futura PT', sans-serif;
  font-size: 2.5rem;
  font-weight: 100;
}

#experience {
  margin: 7rem auto 5rem;
}

#contact-form input,
#contact-form textarea {
  &::placeholder {
    font-size: 12px;
  }
}

#contact .widget__title, #tickets .widget__title {
  font-family: 'Futura PT', sans-serif;
  font-size: 2rem;
}

#map .widget__title {
  font-size: 2.5rem;
  text-align: center;
  font-family: 'Futura PT', sans-serif;
  margin-bottom: 30px;
}

#description {
  margin: 7rem auto 5rem;
}

#map {
  margin: 7rem auto 5rem;
}

@media (min-width: 601px) {
  .contact-btn {
    width: 200px;
    margin-left: 0;
  }
  .checkout__btn {
    width: 200px;
    margin-left: auto;
    margin-right: 0;
    border: 2px solid #ffffff;
    background: transparent;
    color: #e0e0e0;
    padding: .75rem 0.5rem;
    cursor: pointer;
    text-transform: uppercase;
    text-align: center;
    border-radius: 6px;
    font-size: 0.75rem;
    transition: background 0.2s, color 0.2s;
    text-decoration: none;
  }
  .checkout__btn:hover {
    background: #ffffff;
    color: black;
    text-decoration: none;
  }
}

#checkout {
  background: #000 !important;
}

#checkout .widget__inner, #checkout label, #checkout input, #checkout textarea {
  font-family: 'Futura PT', sans-serif;
}

#checkout .widget__title {
  font-family: 'Futura PT', sans-serif;
}

#checkout input, #checkout textarea {
  background: #333;
  color: #e0e0e0;
  border: 1px solid #555;
  padding: 0.5rem;
  border-radius: 4px;
}

#checkout input::placeholder, #checkout textarea::placeholder {
  color: #aaa;
}

#checkout .widget__title, #checkout .widget__inner, #checkout .order-summary, #checkout .order-summary h3, #checkout .order-total {
  color: #fff;
}

#checkout .order-summary {
  background: #000;
  padding: 1rem;
  border-radius: 4px;
}

#checkout .order-item {
  border-bottom: none;
}

#checkout input[type="email"], #checkout input[type="text"] {
  background: #fff;
  color: #555;
  height: 2.5rem;
  border: 1px solid #ccc;
  padding: 10px;
  border-radius: 4px;
}

/* General styling */
.payment-methods {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 1rem;
  margin-top: 1rem;
}

/* Media query for screens below 600px */
@media (max-width: 600px) {
  .payment-methods {
    justify-content: center;
  }
}

@media (max-height: 800px) {
  #hero h1 {
    margin-top: 300px !important;
  }
}

