@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Poppins:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap");

:root{
  --dark:#191f1d;
  --light:#ece0c8;
  --mid:#949993;
  --accent:#cb5a31;
    --font-head:"Caveat",cursive;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  font-family:"Mulish",sans-serif;
  background:var(--dark);
  color:var(--light);
}

/* =========================
   SEASON HIGHLIGHT
========================= */
.season-highlight{
  position:relative;
  padding:80px 20px;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:hidden;
  color:#fff;
  min-height:100vh;
}

.season-highlight::after{
  content:"";
  position:absolute;
  inset:0;
  /* slight premium glow (readability) */
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.45),
    rgba(0,0,0,.35)
  );
  z-index:1;
}

/* Background video */
.bg-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1s ease-in-out;
  z-index:0;
}
.bg-video.active{ opacity:1; }

/* Mobile fallback image layer */
.bg-image{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:1;
  transition:opacity 0.6s ease;
  z-index:0;
}

@media (max-width:768px){
  .bg-video{ display:none; }
  .bg-image{ opacity:1; }
}

/* main season card */
.season-box{
  width: min(1400px, 95vw);
  display:grid;
  grid-template-columns: minmax(420px, 560px) 1fr;
  gap:48px;
  align-items:center;
  z-index:2;
}

.season-image{
  display:flex;
  justify-content:flex-start;
}

.season-image img{
  width:100%;
  max-width:560px;
  height:auto;
  display:block;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,0.5));
}

/* time label */
#seasonTime{
  display:block;
  font-size:14px;
  letter-spacing:3px;
  text-transform:uppercase;
  font-weight:700;
  color:var(--accent);
  opacity:.9;
}

/* title */
.season-text h1{
  font-family:"DM Serif Display";
  font-size:48px;
  margin:15px 0;
  line-height:1.1;
}

/* if you use hero-title-gradient on season title */
.season-text .hero-title-gradient{
  filter:
    drop-shadow(0 6px 18px rgba(0,0,0,.55))
    drop-shadow(0 2px 6px rgba(0,0,0,.6));
      font-family: var(--font-head);
}

/* stats */
.season-stats{
  display:flex;
  gap:64px;
  margin:30px 0;
  align-items:flex-start;
}

.season-stats .stat{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:auto;
}

.stat-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
  opacity:.75;
}

.stat-value{
  font-size:22px;
  font-weight:800;
}

/* hide "Highlights" label (you wanted this earlier) */
.season-stats .stat:nth-child(2) .stat-label{ display:none; }

#seasonPlace{
  font-size:20px;
  font-weight:800;
  color:#fff;
  text-shadow:0 4px 14px rgba(0,0,0,.6);
}

#seasonNote{
  max-width:700px;
  white-space:pre-line; /* desktop keeps line breaks from JS */
  line-height:1.7;
}

/* navigation buttons */
.season-nav button{
  background:none;
  border:1px solid var(--mid);
  color:var(--light);
  font-size:20px;
  cursor:pointer;
  margin-right:10px;
  transition:all 0.3s ease;
  border-radius:50%;
  width:50px;
  height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.season-nav button:hover{
  background:var(--accent);
  border-color:var(--accent);
  transform:scale(1.1);
}

/* CTA */
.season-cta{
  display:inline-flex;
  margin:10px 0 0;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(20,25,23,.45);
  color:var(--light);
  text-decoration:none;
  font-weight:700;
  width:fit-content;
  transition:transform .3s ease, border-color .3s ease;
}
.season-cta:hover{
  transform:translateY(-2px);
  border-color:var(--accent);
}

/* =========================
   CONTENT SECTIONS
========================= */
.content-section{
  max-width:1100px;
  margin:80px auto;
  padding:0 20px;
}

.content-section h2{
  /* font-family:"DM Serif Display"; */
  margin-bottom:30px;
}

.line-after{
  display:flex;
  align-items:center;
  
}
.line-after::after{
  content:"";
  flex:1;
  height:2px;
  background: linear-gradient(90deg, var(--accent), rgba(255,255,255,0));
  margin-left:15px;
  border-radius:999px;
  opacity:.9;
}

/* =========================
   CARD GRID
========================= */
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px;
}

.card{
  text-decoration:none;
  color:inherit;
  display:block;
  border:1px solid #333;
  background:#141917;
  overflow:hidden;
  cursor:pointer;
  position:relative;

  transition:transform 0.4s cubic-bezier(0.25,1,0.5,1),
             box-shadow 0.4s ease,
             border-color 0.4s ease;

  opacity:0;
  transform:translateY(30px);
}

.card-img{
  height:200px;
  background-size:cover;
  background-position:center;
  transition:transform 0.6s cubic-bezier(0.25,1,0.5,1);
}

.card h4{
  margin:15px;
  transition:color 0.3s ease;
}

.card:hover{
  transform:translateY(-10px);
  border-color:var(--accent);
  box-shadow:0 0 20px rgba(203,90,49,0.2), 0 15px 35px rgba(0,0,0,0.5);
}
.card:hover .card-img{ transform:scale(1.1); }
.card:hover h4{ color:var(--accent); }

.card.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* clean linebreaks from Django linebreaks */
.card-desc{
  margin: 0 15px 20px;
  color: var(--mid);
  font-size: 14px;
  line-height: 1.5;
}
.card-desc p{ margin:0 0 10px; }
.card-desc p:last-child{ margin-bottom:0; }

/* event short desc */
.event-short p{ margin:0 0 10px; line-height:1.6; }
.event-short p:last-child{ margin-bottom:0; }

/* =========================
   SEASON TEXT ANIMATION
========================= */
@keyframes slideUp{
  from{ opacity:0; transform:translateY(40px); }
  to{ opacity:1; transform:translateY(0); }
}

.season-text span,
.season-text h1,
.season-stats > div,
.season-image img{
  opacity:0;
}

.animate-in .season-text span{ animation:slideUp 0.6s forwards 0.1s; }
.animate-in .season-text h1{ animation:slideUp 0.6s forwards 0.2s; }
.animate-in .season-stats div:nth-child(1){ animation:slideUp 0.6s forwards 0.3s; }
.animate-in .season-stats div:nth-child(2){ animation:slideUp 0.6s forwards 0.4s; }
.animate-in .season-image img{ animation:slideUp 0.8s forwards 0.1s; }

/* =========================
   RESPONSIVE
========================= */
@media (max-width:900px){
  .season-box{
    grid-template-columns:1fr;
    text-align:center;
  }
  .season-image{ justify-content:center; }
  .season-stats{ justify-content:center; }
  .card-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:600px){
  .card-grid{ grid-template-columns:1fr; }
  .season-text h1{ font-size:38px; }
}

/* =========================
   MOBILE FIX: SEASON TEXT LAYOUT (small screens)
========================= */
@media (max-width:768px){
  .season-box{
    grid-template-columns:1fr !important;
    gap:18px !important;
    text-align:left !important;
    align-items:start !important;
  }

  .season-image{ justify-content:center; }
  .season-image img{
    max-width:88vw !important;
    border-radius:16px;
  }

  #seasonTime{ margin-bottom:10px; }

  .season-text h1,
  #seasonTitle{
    font-size: clamp(30px, 8vw, 44px) !important;
    line-height:1.08 !important;
    margin:8px 0 14px !important;
  }

  .season-stats{
    flex-direction:column !important;
    gap:14px !important;
    margin:18px 0 !important;
    align-items:flex-start !important;
  }

  .season-stats .stat{
    width:100% !important;
    min-width:0 !important;
    padding:12px 14px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:rgba(20,25,23,.35);
    backdrop-filter: blur(6px);
  }

  #seasonNote{
    font-size:15px !important;
    line-height:1.65 !important;
    max-width:100% !important;
    white-space:normal !important; /* mobile uses paragraph from JS */
    word-break:break-word;
  }

  .season-cta{ margin-top:8px !important; }

  .season-nav button{
    width:46px !important;
    height:46px !important;
  }
}

/* =========================
   LIGHTBOX (detail page)
========================= */
.lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.78);

  z-index:999999;      /* above nav/menu */
  pointer-events:auto; /* capture clicks */
}
.lightbox.open{ display:flex; }

.lightbox-inner{
  position:relative;
  z-index:1;
  max-width:min(1100px, 92vw);
  max-height:85vh;
  pointer-events:auto;
}

.lightbox-img{
  width:100%;
  height:auto;
  max-height:85vh;
  object-fit:contain;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 25px 80px rgba(0,0,0,.65);
  background:#0b0f0e;
}

.lightbox-caption{
  margin-top:12px;
  text-align:center;
  color:rgba(255,255,255,.75);
  font-size:14px;
  line-height:1.5;
}

.lightbox-close,
.lightbox-prev,
.lightbox-next{
  position:absolute;
  top:18px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(20,25,23,.55);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .15s ease, border-color .2s ease;
  user-select:none;
  z-index:2;
  pointer-events:auto;
}

.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover{
  transform:scale(1.06);
  border-color:var(--accent);
}

.lightbox-close{ right:18px; }

.lightbox-prev,
.lightbox-next{
  top:50%;
  transform:translateY(-50%);
}
.lightbox-prev{ left:18px; }
.lightbox-next{ right:18px; }

@media (max-width:700px){
  .lightbox-prev,.lightbox-next{ display:none; }
}

/* OPTIONAL: disable clicking page behind lightbox */
body.lb-open *{ pointer-events:none; }
body.lb-open .lightbox,
body.lb-open .lightbox *{ pointer-events:auto; }
/* View More Button */
.view-more-wrap{
  text-align:center;
  margin-top:30px;
}

.view-more-btn{
  padding:10px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(20,25,23,.45);
  color:var(--light);
  font-weight:700;
  cursor:pointer;
  transition:all .3s ease;
}

.view-more-btn:hover{
  border-color:var(--accent);
  transform:translateY(-2px);
}
