*{margin:0;padding:0;box-sizing:border-box}

body{
  font-family:'Georgia',serif;
  background:
    radial-gradient(circle at top, #123055 0, #020617 50%, #000 100%);
  color:#fff;
  overflow-x:hidden;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:100vh;
  flex-direction:column;
  position:relative;
}

/* Top-of-page background image */
body::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:520px;
  background-image:
    linear-gradient(to bottom, rgba(2,6,23,0.15), rgba(2,6,23,1)),
    url('graphics/bkgd-scaled.jpg');
  background-position:center top, center top;
  background-repeat:no-repeat, no-repeat;
  background-size:cover, cover;
  opacity:0.85;
  pointer-events:none;
  z-index:0;
}

body > *{
  position:relative;
  z-index:1;
}

.container{
  text-align:center;
  /* Reduce top "headroom" above the logo while keeping side/bottom spacing */
  padding:1rem 2rem 2rem;
  width:100%;
  max-width:800px;
  margin:.5rem auto 0;
}

.logo{
  /* Match the width of the date banner section (constrained by .container max-width) */
  max-width:800px;
  width:100%;
  height:auto;
  margin-bottom:2rem;
}

.tagline{
  margin-top:-1.25rem; /* pull up a bit to sit closer to the logo */
  margin-bottom:1.1rem;
  font-family:'Tangerine', cursive;
  font-weight:700;
  font-size:clamp(40px, 6vw, 72px);
  line-height:1;
  color:#f8fafc;
  text-shadow:0 8px 24px rgba(2,6,23,.65);
}

.message{
  font-size:1.5rem;
  color:#e0f2ff;
  margin-bottom:3rem;
  line-height:1.6;
}

.ticket-link{
  display:inline-block;
  padding:1.5rem 3rem;
  font-size:1.3rem;
  background:#0f766e;
  color:#fff;
  border:2px solid #22c55e;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.2rem;
  transition:all .3s;
  border-radius:999px;
}

.ticket-link:hover{
  background:#22c55e;
  box-shadow:0 0 30px rgba(34,197,94,.7);
  transform:scale(1.05);
}

.ticket-link .url{
  display:block;
  margin-top:1rem;
  color:#a5f3fc;
  font-size:1rem;
  word-break:break-all;
}

/* IMAGE TICKET BUTTON (top link) */
.ticket-link--img{
  background:transparent;
  border:none;
  padding:0;
  letter-spacing:normal;
  text-transform:none;
  border-radius:16px;
  box-shadow:none;
  position:relative;
  /* Center under the date banner using .container{text-align:center} */
  display:inline-block;
  margin-top:1rem;
  line-height:0;
  transform:none;
}

.ticket-link--img:hover{
  background:transparent;
  box-shadow:none;
  transform:scale(1.02);
}

.ticket-link--img:focus-visible{
  outline:3px solid rgba(56,189,248,.9);
  outline-offset:6px;
}

.ticket-link--img .ticket-img{
  display:block;
  /* Was sized for a large CTA; shrink to ~1/3 */
  width:min(140px, 92vw);
  height:auto;
  margin:0 auto;
  user-select:none;
  -webkit-user-drag:none;
}

.ticket-link--img .ticket-img--hover{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .14s ease;
}

.ticket-link--img:hover .ticket-img--hover,
.ticket-link--img:focus-visible .ticket-img--hover,
.ticket-link--img:active .ticket-img--hover{
  opacity:1;
}

.ticket-link--img:hover .ticket-img--default,
.ticket-link--img:focus-visible .ticket-img--default,
.ticket-link--img:active .ticket-img--default{
  opacity:0;
}

/* DATE + POLICY BANNERS (NO GLOW) */
#next-open-banner, #policy-banner{
  text-align:center;
  margin:20px auto;
  padding:15px;
  background:rgba(15,23,42,0.95);
  border:2px solid rgba(148,163,184,.4);
  border-radius:14px;
  max-width:900px;
  box-shadow:none;
}

#next-open-banner h1{
  font-size:clamp(26px,4.5vw,46px);
  color:#e5e7eb;
  margin:10px 0;
  line-height:1.2;
  text-shadow:none !important;
}

#next-open-banner h2{
  font-size:clamp(18px,3vw,26px);
  margin:8px 0;
  line-height:1.3;
  letter-spacing:1px;
  color:#cbd5e1;
  text-shadow:none !important;
}

#next-open-banner h2:first-of-type{
  color:#bef264;
  text-transform:uppercase;
  text-shadow:none !important;
}

#next-open-banner h2:last-of-type{
  color:#cbd5e1;
  font-size:clamp(16px,2.5vw,22px);
  text-shadow:none !important;
}

#policy-banner h3{
  font-size:clamp(16px,2.5vw,22px);
  color:#e5e7eb;
  text-shadow:none !important;
}

/* GENERIC SECTION LAYOUT */
main{
  width:100%;
  margin-top:1rem;
  padding-bottom:4rem;
}

.section{
  width:100%;
  padding:3rem 1.5rem;
}

.section--alt{
  background:rgba(15,23,42,0.85);
}

/* Event Calendar: tiled present background */
#calendar.section--alt{
  background-color:rgba(15,23,42,0.85);
  background-image:url('graphics/presentbg.png');
  background-repeat:repeat;
  background-size:140px 140px;
  background-position:top left;
}

.section--feature{
  background:radial-gradient(circle at top, rgba(56,189,248,0.18), rgba(15,23,42,0.98));
}

.content{
  max-width:1200px;
  margin:0 auto;
}

.content--narrow{
  max-width:900px;
}

.section-title{
  font-size:2.5rem;
  text-align:center;
  margin-bottom:1rem;
  color:#f9fafb;
  text-shadow:2px 2px 4px rgba(15,23,42,0.9);
  position:relative;
}

.section-title::after{
  content:'';
  position:absolute;
  bottom:-10px;
  left:50%;
  transform:translateX(-50%);
  width:120px;
  height:3px;
  background:linear-gradient(45deg,#22c55e,#0ea5e9);
}

.section-subtitle{
  text-align:center;
  color:#e0f2fe;
  margin-top:1.2rem;
  margin-bottom:2rem;
  font-size:1.2rem;
}

.lead{
  font-size:1.2rem;
  color:#e5e7eb;
  margin-bottom:1rem;
  text-align:center;
}

/* ABOUT (TEXT + LOCAL VIDEO) */
.about-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:2rem;
  align-items:center;
  margin-top:1.5rem;
}
.about-copy{
  text-align:center;
  font-family:'Kiwi Maru', Georgia, serif;
  font-size:3.05rem;
  line-height:1.75;
}
.about-copy .lead{
  text-align:center;
  font-weight:600;
  letter-spacing:-0.01em;
  font-size:1.35rem;
  line-height:1.5;
}

.about-below{
  /* Framed callout box under the About row */
  margin:1.25rem auto 0;
  max-width:900px;
  text-align:center;
  font-family:'Kiwi Maru', Georgia, serif;
  font-size:1.25rem;
  line-height:1.8;
  color:#e5e7eb;
  padding:1.25rem 1.5rem;
  background:rgba(15,23,42,0.75);
  border:1px solid rgba(148,163,184,0.55);
  border-radius:18px;
  box-shadow:0 18px 32px rgba(15,23,42,0.65);
}
.about-media{
  display:flex;
  justify-content:center;
}
.about-video{
  width:100%;
  max-width:420px;
  height:auto;
  border-radius:18px;
  border:1px solid rgba(148,163,184,0.5);
  box-shadow:0 18px 32px rgba(15,23,42,0.9);
  background:rgba(2,6,23,0.9);
}

.center{
  text-align:center;
}

p{
  margin-bottom:1rem;
  line-height:1.6;
  color:#e5e7eb;
}

a{
  color:#38bdf8;
}

/* CARD GRID FOR ACTIVITIES */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.8rem;
  margin-top:2rem;
}

.card{
  background:rgba(15,23,42,0.95);
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,0.4);
  box-shadow:0 18px 32px rgba(15,23,42,0.7);
  display:flex;
  flex-direction:column;
  height:100%;
}

.card__image{
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
}

.card__title{
  font-size:1.3rem;
  margin:1.2rem 1.2rem 0.5rem;
  color:#fef9c3;
}

.card__body{
  margin:0 1.2rem 1.2rem;
  font-size:0.98rem;
  color:#e5e7eb;
}

.purchase-note{
  font-size:.85em;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#fde68a;
  font-style:italic;
  opacity:0.5;
  white-space:nowrap;
}

/* FEATURE IMAGES (HAYRIDE) */
.feature-image{
  width:100%;
  max-width:900px;
  display:block;
  margin:2rem auto;
  border-radius:18px;
  border:1px solid rgba(148,163,184,0.5);
  box-shadow:0 22px 40px rgba(15,23,42,0.9);
  object-fit:cover;
}

.feature-image--bottom{
  margin-top:2rem;
}

/* 3-up photo rows (e.g., Hayride section) */
.photo-row{
  display:grid;
  grid-template-columns:repeat(3, 200px);
  justify-content:center;
  gap:1.25rem;
  margin:2rem auto 0;
}

.photo-row__img{
  width:200px;
  aspect-ratio:5 / 7;
  height:auto;
  object-fit:cover;
  display:block;
  border-radius:18px;
  border:1px solid rgba(148,163,184,0.5);
  box-shadow:0 18px 32px rgba(15,23,42,0.9);
}

/* BUTTONS */
.btn{
  display:inline-block;
  padding:1rem 2.5rem;
  border-radius:999px;
  font-size:1.05rem;
  font-weight:bold;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:0.08em;
  transition:all .25s ease;
  border:2px solid transparent;
}

.btn--primary{
  background:linear-gradient(45deg,#22c55e,#0ea5e9);
  color:#fff;
  border-color:rgba(34,197,94,0.6);
  box-shadow:0 10px 25px rgba(15,23,42,0.8);
}

.btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(15,23,42,0.95);
  background:linear-gradient(45deg,#4ade80,#38bdf8);
}

/* FAQ */
.faq{
  margin-top:2.5rem;
}

.faq-item{
  margin-bottom:1.5rem;
  padding-bottom:1.2rem;
  border-bottom:1px solid rgba(148,163,184,0.4);
}

.faq-item:last-child{
  border-bottom:none;
  padding-bottom:0;
}

.faq-item h3{
  font-size:1.1rem;
  color:#fef9c3;
  margin-bottom:.35rem;
}

.faq-item p{
  font-size:.98rem;
  color:#e5e7eb;
  margin-bottom:0;
}

/* CALENDAR IMAGE */
.calendar-image{
  width:100%;
  max-width:1000px;
  height:auto;
  display:block;
  margin:2rem auto 0;
  border-radius:18px;
  border:1px solid rgba(148,163,184,0.5);
  box-shadow:0 18px 32px rgba(15,23,42,0.9);
}

@media (max-width:768px){
  .container{padding:.75rem 1.25rem 1.5rem;margin-top:.25rem;}
  .logo{max-width:800px;}
  .tagline{margin-top:-.9rem;margin-bottom:.9rem;}
  .message{font-size:1.2rem;}
  .ticket-link:not(.ticket-link--img){padding:1rem 2rem;font-size:1rem;}
  .about-grid{grid-template-columns:1fr;gap:1.25rem;}
  .about-media{order:2;}
  .about-copy{order:1;}
  .about-below{padding:1rem 1.1rem;font-size:1.1rem;}
  .photo-row{grid-template-columns:1fr;gap:1rem;}
  .photo-row__img{width:min(200px, 100%);height:auto;}
  .section{padding:2.5rem 1.25rem;}
  .section-title{font-size:2rem;}
  .lead{font-size:1.05rem;}
}

/* TICKETS SECTION EXTRA STYLES (card vibe) */
#tickets { width:100%; display:block; }
#tickets .pricing-sections{max-width:1400px;margin:0 auto;padding:2rem}
#tickets .tickets-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:2rem;
  margin-bottom:3rem;
}

#tickets .ticket-card{
  background:linear-gradient(145deg,rgba(15,23,42,0.96),rgba(30,64,175,0.96));
  border:2px solid transparent;
  border-radius:20px;
  padding:2.5rem;
  text-align:center;
  position:relative;
  transition:all .4s cubic-bezier(0.175,0.885,0.32,1.275);
  backdrop-filter:blur(10px);
  overflow:hidden;
}

#tickets .ticket-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(45deg,transparent,rgba(56,189,248,0.12),transparent);
  opacity:0;
  transition:opacity .3s ease;
}

#tickets .ticket-card:hover::before{opacity:1;}

#tickets .ticket-card:hover{
  transform:translateY(-10px) scale(1.02);
  border-color:#22c55e;
  box-shadow:
    0 20px 40px rgba(15,23,42,0.7),
    0 0 30px rgba(34,197,94,0.35),
    inset 0 1px 0 rgba(255,255,255,0.12);
}

#tickets .best-value{
  border-color:#22c55e;
  transform:scale(1.03);
  box-shadow:0 15px 35px rgba(34,197,94,0.45);
}

#tickets .best-value::after{
  content:'MOST POPULAR';
  position:absolute;
  top:-5px;
  left:50%;
  transform:translateX(-50%);
  background:linear-gradient(45deg,#22c55e,#16a34a);
  color:#fff;
  padding:.5rem 1.5rem;
  border-radius:20px;
  font-size:.8rem;
  font-weight:bold;
  letter-spacing:1px;
}

#tickets .limited-quantity{
  border-color:#f97316;
  transform:scale(1.03);
  box-shadow:0 15px 35px rgba(249,115,22,0.45);
}

#tickets .limited-quantity::after{
  content:'LIMITED AVAILABILITY';
  position:absolute;
  top:-10px;
  left:50%;
  transform:translateX(-50%);
  background:linear-gradient(45deg,#fb923c,#f97316);
  color:#fff;
  padding:.5rem 1.5rem;
  border-radius:20px;
  font-size:.8rem;
  font-weight:bold;
  letter-spacing:1px;
}

#tickets .savings-badge{
  position:absolute;
  top:-5px;
  right:20px;
  background:linear-gradient(45deg,#22c55e,#0ea5e9);
  color:#fff;
  padding:.4rem 1rem;
  border-radius:15px;
  font-size:.8rem;
  font-weight:bold;
}

#tickets .ticket-type{
  font-size:1.8rem;
  font-weight:bold;
  margin-bottom:1rem;
  color:#fee2b3;
}

#tickets .ticket-price{
  font-size:3rem;
  font-weight:bold;
  margin-bottom:1rem;
  position:relative;
}

#tickets .price-currency{font-size:2rem;vertical-align:top;}

#tickets .fast-pass{
  font-size:1rem;
  color:#a5f3fc;
  margin-bottom:1.5rem;
  font-weight:bold;
}

#tickets .ticket-description{
  font-size:1rem;
  line-height:1.6;
  margin-bottom:2rem;
  opacity:.9;
}

#tickets .features-list{
  text-align:left;
  margin-bottom:2rem;
}

#tickets .feature-item{
  display:flex;
  align-items:flex-start;
  margin-bottom:.8rem;
  font-size:.95rem;
  line-height:1.4;
}

#tickets .feature-item::before{
  content:'❄️';
  margin-right:.8rem;
  font-size:1rem;
  flex-shrink:0;
  margin-top:.1rem;
}

#tickets .cta-button{
  background:linear-gradient(45deg,#22c55e,#0ea5e9);
  color:#fff;
  border:none;
  padding:1rem 2.5rem;
  border-radius:50px;
  font-size:1.1rem;
  font-weight:bold;
  cursor:pointer;
  transition:all .3s ease;
  text-transform:uppercase;
  letter-spacing:1px;
  position:relative;
  overflow:hidden;
  width:100%;
  display:inline-block;
  text-decoration:none;
  text-align:center;
}

#tickets .cta-button::before{
  content:'';
  position:absolute;
  top:0;
  left:-100%;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent);
  transition:left .5s ease;
}

#tickets .cta-button:hover::before{left:100%;}
#tickets .cta-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(15,23,42,0.8);
  background:linear-gradient(45deg,#4ade80,#38bdf8);
}

#tickets .pulse{animation:pulse 2s infinite;}
@keyframes pulse{
  0%{transform:scale(1);}
  50%{transform:scale(1.02);}
  100%{transform:scale(1);}
}

@media (max-width:768px){
  #tickets .pricing-sections{padding:1rem;}
  #tickets .tickets-grid{grid-template-columns:1fr;}
  #tickets .best-value, #tickets .limited-quantity{transform:none;}
  #tickets .ticket-card:hover{transform:translateY(-5px);}
}

