/* EVENTS PAGE */

.events-page{
  background:#f4f4f4;
  overflow:hidden;
}

/* HERO */

.events-hero{
  position:relative;
  min-height:650px;
  color:#fff;
  overflow:hidden;
  background:#111;
}

.events-hero-bg{
  position:absolute;
  inset:0;
  background-image:url("https://www.malossi.com/wp-content/uploads/2026/05/GRF11593_37-1900x1265.jpg");
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
  transition:background-image .35s ease, transform .6s ease;
  z-index:0;
}

.events-hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.82) 0%,
      rgba(0,0,0,.58) 42%,
      rgba(0,0,0,.34) 100%
    ),
    linear-gradient(
      180deg,
      rgba(0,0,0,.20) 0%,
      rgba(0,0,0,.76) 100%
    );
  z-index:1;
}

.events-hero::after{
  content:"";
  position:absolute;
  left:-4%;
  right:-4%;
  bottom:-115px;
  height:80px;
  background:#f4f4f4;
  transform:rotate(-3deg);
  transform-origin:left bottom;
  z-index:2;
}

.events-hero-content{
  position:relative;
  z-index:3;
  width:min(1180px, calc(100% - 88px));
  margin:0 auto;
  padding-top:92px;
}

.events-hero-content h1{
  max-width:850px;
  margin:0 0 14px;
  color:#fff;
  font-size:64px;
  line-height:.86;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  letter-spacing:-2px;
}

.events-hero-content p{
  margin:0 0 34px;
  color:#fff;
  font-size:24px;
  line-height:1.35;
  font-weight:700;
}

.events-hero-btn{
  min-width:155px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 22px;
  border-radius:4px;
  background:var(--red);
  color:#fff;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}

.events-hero-btn span{
  font-size:20px;
  line-height:1;
}

.events-hero-pagination{
  position:absolute;
  left:50%;
  bottom:220px;
  z-index:4;
  width:min(1180px, calc(100% - 88px));
  transform:translateX(-50%);
  display:flex;
  align-items:flex-start;
  gap:34px;
}

.events-hero-bullet{
  width:190px;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  text-align:left;
  cursor:pointer;
}

.events-hero-bullet span{
  display:block;
  width:100%;
  height:4px;
  margin-bottom:12px;
  background:rgba(255,255,255,.85);
  border-radius:999px;
}

.events-hero-bullet.active span{
  background:var(--yellow);
}

.events-hero-bullet strong{
  display:block;
  color:#fff;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
  text-transform:uppercase;
}

/* TABLET */

@media(max-width:1200px){
  .events-hero{
    min-height:600px;
  }

  .events-hero-content{
    width:calc(100% - 64px);
    padding-top:78px;
  }

  .events-hero-content h1{
    max-width:760px;
    font-size:54px;
  }

  .events-hero-content p{
    font-size:22px;
  }

  .events-hero-pagination{
    width:calc(100% - 64px);
    bottom:200px;
  }
}

/* MOBILE */

@media(max-width:700px){
  .events-hero{
    min-height:560px;
  }

  .events-hero-bg{
    background-position:center;
  }

  .events-hero-overlay{
    background:
      linear-gradient(
        90deg,
        rgba(0,0,0,.86) 0%,
        rgba(0,0,0,.58) 100%
      ),
      linear-gradient(
        180deg,
        rgba(0,0,0,.12) 0%,
        rgba(0,0,0,.82) 100%
      );
  }

  .events-hero::after{
  bottom:-36px;
  height:76px;
  transform:rotate(-4deg);
}

  .events-hero-content{
    width:calc(100% - 32px);
    padding-top:62px;
  }

  .events-hero-content h1{
    max-width:100%;
    font-size:39px;
    line-height:.9;
    letter-spacing:-1.2px;
  }

  .events-hero-content p{
    max-width:290px;
    margin-bottom:26px;
    font-size:19px;
  }

  .events-hero-btn{
    min-width:145px;
    min-height:42px;
    padding:0 18px;
  }

  .events-hero-pagination{
    width:calc(100% - 32px);
    bottom:110px;
    gap:18px;
  }

  .events-hero-bullet{
    width:50%;
  }

  .events-hero-bullet strong{
    font-size:10px;
  }
}

/* PLANNED EVENTS */

.events-container{
  width:min(1180px, calc(100% - 88px));
  margin:0 auto;
}

.planned-events-section{
  position:relative;
  z-index:3;
  padding:72px 0 78px;
  background:#f4f4f4;
}

.events-section-title{
  margin-bottom:34px;
}

.events-section-title span{
  display:inline-flex;
  align-items:center;
  min-height:52px;
  padding:0 28px;
  background:#353b47;
  color:#fff;
  border-radius:4px;
  clip-path:polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  font-size:22px;
  line-height:1;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.planned-events-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px;
}

.planned-event-card{
  min-height:265px;
  display:flex;
  flex-direction:column;
  padding:28px 26px 20px;
  border-radius:8px;
  background:linear-gradient(145deg, #edff00 0%, #dfff00 52%, #b8c80f 100%);
  color:#101827;
  overflow:hidden;
}

.planned-event-series{
  margin:0 0 8px;
  font-size:14px;
  line-height:1.2;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.planned-event-card h2{
  margin:0;
  max-width:96%;
  color:#101827;
  font-size:28px;
  line-height:.92;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  letter-spacing:-1.2px;
}

.planned-event-location{
  margin:18px 0 0;
  max-width:94%;
  color:#101827;
  font-size:13px;
  line-height:1.45;
}

.planned-event-bottom{
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}

.planned-event-date{
  margin:0;
  color:#101827;
  font-size:22px;
  line-height:1;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.planned-event-arrow{
  flex:0 0 auto;
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.48);
  color:#101827;
  transition:transform .2s ease, background .2s ease;
}

.planned-event-arrow svg{
  width:28px;
  height:28px;
  display:block;
  color:#101827;
}

.planned-event-card:hover .planned-event-arrow{
  transform:translateX(5px);
  background:#fff;
}

/* PLANNED EVENTS TABLET */

@media(max-width:1200px){
  .events-container{
    width:calc(100% - 64px);
  }

  .planned-events-grid{
    gap:22px;
  }

  .planned-event-card{
    min-height:250px;
    padding:26px 22px 20px;
  }

  .planned-event-card h2{
    font-size:24px;
  }
}

/* PLANNED EVENTS MOBILE */

@media(max-width:700px){
  .events-container{
    width:calc(100% - 32px);
  }

  .planned-events-section{
    padding:54px 0 62px;
  }

  .events-section-title{
    margin-bottom:24px;
  }

  .events-section-title span{
    min-height:46px;
    padding:0 22px;
    font-size:18px;
  }

  .planned-events-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .planned-event-card{
    min-height:235px;
    padding:24px 22px 20px;
  }

  .planned-event-card h2{
    font-size:21px;
    letter-spacing:-.9px;
  }

  .planned-event-location{
    margin-top:16px;
    font-size:13px;
  }

  .planned-event-date{
    font-size:20px;
  }

  .planned-event-arrow{
    width:50px;
    height:50px;
  }
}

/* EVENT NEWS */

.event-news-section{
  padding:10px 0 96px;
  background:#f4f4f4;
}

.event-news-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:32px;
}

.event-news-head .events-section-title{
  margin-bottom:0;
}

.event-news-all-btn{
  min-width:145px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border:1px solid var(--red);
  border-radius:4px;
  color:var(--red);
  background:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  transition:background .2s ease, color .2s ease;
}

.event-news-all-btn:hover{
  background:var(--red);
  color:#fff;
}

/* featured news */

.event-news-featured-grid{
  display:grid;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(280px, 1fr)
    );
  gap:32px;
  margin-bottom:34px;
}

.event-news-featured-card{
  min-width:0;
}

.event-news-featured-img{
  display:block;
  height:205px;
  border-radius:6px;
  overflow:hidden;
  background:#111;
}

.event-news-featured-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.event-news-image-empty{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:18px;
  background:
    linear-gradient(
      135deg,
      #101827,
      #2d3542
    );
  color:rgba(255,255,255,.72);
  font-size:13px;
  line-height:1;
  font-weight:900;
  font-style:italic;
  letter-spacing:.8px;
}

.event-news-empty{
  padding:44px 28px;
  border:1px dashed #c9cdd4;
  border-radius:7px;
  background:#fff;
  text-align:center;
}

.event-news-empty h3{
  margin:0 0 10px;
  color:#101827;
  font-size:22px;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.event-news-empty p{
  margin:0;
  color:#69707c;
  font-size:14px;
}

.event-news-featured-card:hover .event-news-featured-img img{
  transform:scale(1.06);
}

.event-news-featured-body{
  padding-top:18px;
}

.event-news-category{
  margin:0 0 10px;
  color:var(--red);
  font-size:10px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
}

.event-news-featured-body h3{
  margin:0 0 14px;
  color:#101827;
  font-size:20px;
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.3px;
}

.event-news-date{
  margin:0;
  color:#101827;
  font-size:12px;
  line-height:1;
}

/* compact news */

.event-news-compact-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px 34px;
}

.event-news-compact-card{
  min-width:0;
  display:grid;
  grid-template-columns:160px minmax(0, 1fr);
  gap:16px;
  align-items:start;
}

.event-news-compact-img{
  display:block;
  height:98px;
  border-radius:5px;
  overflow:hidden;
  background:#111;
}

.event-news-compact-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.event-news-compact-card:hover .event-news-compact-img img{
  transform:scale(1.06);
}

.event-news-compact-body{
  min-width:0;
}

.event-news-compact-body h3{
  margin:0 0 12px;
  color:#101827;
  font-size:15px;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.3px;
}

.event-news-featured-body h3 a:hover,
.event-news-compact-body h3 a:hover{
  color:var(--red);
}

/* EVENT NEWS TABLET */

@media(max-width:1200px){
  .event-news-featured-grid{
    gap:24px;
  }

  .event-news-featured-img{
    height:185px;
  }

  .event-news-compact-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:28px 30px;
  }

  .event-news-compact-card{
    grid-template-columns:145px minmax(0, 1fr);
  }
}

/* EVENT NEWS MOBILE */

@media(max-width:700px){
  .event-news-section{
    padding:0 0 72px;
  }

  .event-news-head{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
    margin-bottom:26px;
  }

  .event-news-all-btn{
    min-width:138px;
    min-height:44px;
  }

  .event-news-featured-grid{
    grid-template-columns:1fr;
    gap:28px;
    margin-bottom:34px;
  }

  .event-news-featured-img{
    height:205px;
  }

  .event-news-featured-body{
    padding-top:15px;
  }

  .event-news-featured-body h3{
    font-size:20px;
  }

  .event-news-compact-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .event-news-compact-card{
    grid-template-columns:118px minmax(0, 1fr);
    gap:14px;
  }

  .event-news-compact-img{
    height:88px;
  }

  .event-news-compact-body h3{
    font-size:16px;
    line-height:1.1;
  }
}

/* HERO OVERLAP VIDEO */

.events-hero{
  overflow:visible;
}

.events-hero-video-row{
  position:absolute;
  left:max(44px, calc((100vw - 1180px) / 2));
  bottom:-105px;
  z-index:6;
  width:min(1080px, calc(100% - 88px));
  display:grid;
  grid-template-columns:minmax(430px, 520px) minmax(0, 1fr);
  align-items:start;
  gap:36px;
}

.events-video-thumb{
  position:relative;
  width:100%;
  height:100%;
  display:block;
  padding:0;
  border:0;
  background:#111;
  cursor:pointer;
  overflow:hidden;
}

.events-video-thumb img{
  width:100%;
  height:100%;
  display:block;
}

.events-hero-video-card{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  min-width:0;
  min-height:0;
  border-radius:8px;
  overflow:hidden;
  background:#000;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
}

.events-hero-video-card iframe,
.events-hero-video-card video{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  display:block;
  border:0;
  background:#000;
  pointer-events:auto;
}

.events-hero-video-card video{
  object-fit:contain;
}

.events-video-thumb img{
  object-fit:cover;
  transition:transform .35s ease;
}

.events-video-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.22);
  z-index:1;
}

.events-video-thumb:hover img{
  transform:scale(1.06);
}

.events-video-play-icon{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  width:68px;
  height:68px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--red);
  color:#fff;
  transform:translate(-50%, -50%);
  box-shadow:0 14px 30px rgba(0,0,0,.25);
}

.events-video-play-icon svg{
  width:34px;
  height:34px;
  display:block;
  fill:currentColor;
  transform:translateX(2px);
}

.events-hero-video-copy{
  padding-top:8px;
  color:#fff;
}

.events-hero-video-copy h2{
  margin:0 0 16px;
  color:#fff;
  font-size:38px;
  line-height:.9;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.events-hero-video-copy p{
  max-width:470px;
  margin:0;
  color:#fff;
  font-size:17px;
  line-height:1.55;
  font-weight:500;
}

.planned-events-section{
  padding-top:190px;
}

/* HERO VIDEO TABLET */

@media(max-width:1200px){
  .events-hero-video-row{
    left:32px;
    bottom:-95px;
    width:calc(100% - 64px);
    grid-template-columns:minmax(390px, 470px) minmax(0, 1fr);
    gap:28px;
  }

  .events-hero-video-copy h2{
    font-size:34px;
  }

  .events-hero-video-copy p{
    font-size:16px;
  }

  .planned-events-section{
    padding-top:180px;
  }
}

/* HERO VIDEO MOBILE */

@media(max-width:700px){
  .events-hero{
    min-height:610px;
  }

  .events-hero-video-row{
    position:absolute;
    left:16px;
    right:16px;
    bottom:-250px;
    width:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
  }

  .events-hero-video-card{
    border-radius:8px;
  }

  .events-hero-video-copy{
    padding-top:0;
    color:#101827;
  }

  .events-hero-video-copy h2{
    margin-bottom:12px;
    color:#101827;
    font-size:34px;
    line-height:.92;
  }

  .events-hero-video-copy p{
    max-width:100%;
    color:#353b47;
    font-size:17px;
    line-height:1.55;
  }

  .planned-events-section{
    padding-top:315px;
  }

  .events-video-play-icon{
    width:58px;
    height:58px;
  }

  .events-video-play-icon svg{
    width:30px;
    height:30px;
  }
}

/* DYNAMIC EVENT CALENDAR */

.events-calendar-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:32px;
}

.events-calendar-toolbar .events-section-title{
  margin-bottom:0;
}

.events-calendar-pdf-btn{
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  border:1px solid var(--red);
  border-radius:4px;
  background:#fff;
  color:var(--red);
  font-size:12px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  transition:
    background .2s ease,
    color .2s ease;
}

.events-calendar-pdf-btn:hover{
  background:var(--red);
  color:#fff;
}

.events-legend-panel{
  margin-bottom:52px;
  padding:28px;
  border-radius:8px;
  background:#fff;
}

.events-legend-panel > h2{
  margin:0 0 22px;
  color:#101827;
  font-size:21px;
  line-height:1;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.events-legend-grid{
  display:grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap:18px;
}

.events-legend-item{
  min-height:76px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:14px 18px;
  border-left:
    7px solid
    var(--event-color, #e60012);
  border-radius:5px;
  background:#f4f4f4;
}

.events-legend-item strong{
  color:#101827;
  font-size:15px;
  line-height:1.2;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.events-legend-item span{
  margin-top:5px;
  color:#555d69;
  font-size:12px;
  line-height:1.35;
  font-weight:700;
  text-transform:uppercase;
}

.events-month-list{
  display:grid;
  gap:54px;
}

.events-month-title{
  margin:0 0 22px;
  color:#101827;
  font-size:30px;
  line-height:1;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.planned-events-grid{
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
}

.planned-events-grid.is-single{
  grid-template-columns:1fr;
}

.planned-event-card{
  border-left:
    8px solid
    var(--event-color, #e60012);
  background:#fff;
  box-shadow:
    0 15px 35px rgba(16, 24, 39, .08);
}

.planned-event-series-caption{
  margin:-3px 0 12px;
  color:#555d69;
  font-size:11px;
  line-height:1.3;
  font-weight:800;
  text-transform:uppercase;
}

.planned-event-link{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 18px;
  border-radius:999px;
  background:#101827;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  transition:
    transform .2s ease,
    background .2s ease;
}

.planned-event-link svg{
  width:19px;
  height:19px;
  flex:0 0 auto;
}

.planned-event-link:hover{
  background:var(--red);
  color:#fff;
  transform:translateX(4px);
}

.events-calendar-empty{
  padding:52px 28px;
  border-radius:8px;
  background:#fff;
  text-align:center;
}

.events-calendar-empty h2{
  margin:0 0 10px;
  color:#101827;
  font-size:28px;
  font-weight:900;
  font-style:italic;
  text-transform:uppercase;
}

.events-calendar-empty p{
  margin:0;
  color:#555d69;
  line-height:1.6;
}

@media(max-width:900px){
  .events-legend-grid{
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media(max-width:700px){
  .events-calendar-toolbar{
    align-items:stretch;
    flex-direction:column;
  }

  .events-calendar-pdf-btn{
    width:100%;
  }

  .events-legend-panel{
    margin-bottom:38px;
    padding:22px 18px;
  }

  .events-legend-grid{
    grid-template-columns:1fr;
  }

  .events-month-list{
    gap:42px;
  }

  .events-month-title{
    margin-bottom:18px;
    font-size:25px;
  }

  .planned-events-grid,
  .planned-events-grid.is-single{
    grid-template-columns:1fr;
  }

  .planned-event-link{
    min-height:44px;
    padding:0 15px;
  }
}