/* Performance Paintball Availability Calendar */
.ppCalendarPage {
    background: #080d09;
    color: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    padding: 24px 16px 48px;
}
.ppCalendarWrap {
    max-width: 1120px;
    margin: 0 auto;
}
.ppCalendarPage h1 {
    color: #39ef45;
    font-size: clamp(28px, 4vw, 42px);
    text-align: center;
}
.ppCalendarIntro {
    text-align: center;
    line-height: 1.6;
}
.ppCalendarToolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 25px 0 18px;
}
.ppCalendarToolbar h2 {
    color: #ffd400;
    text-align: center;
    margin: 0;
}
.ppCalendarButton {
    background: #176e28;
    color: white;
    border: 2px solid #39ef45;
    border-radius: 9px;
    padding: 12px 18px;
    font-weight: bold;
    cursor: pointer;
}
.ppCalendarButton:hover {
    background: #229c37;
}
.ppCalendarGrid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}
.ppCalendarWeekday {
    background: #176e28;
    color: white;
    text-align: center;
    padding: 12px 3px;
    font-weight: bold;
}
.ppCalendarDay {
    min-height: 110px;
    padding: 10px;
    background: #111a13;
    border: 1px solid #36523a;
    border-radius: 8px;
    overflow-wrap: anywhere;
}
.ppCalendarDayNumber {
    font-weight: bold;
    color: #ffd400;
    margin-bottom: 10px;
}
.ppCalendarOutside {
    opacity: 0.35;
}
.ppCalendarPublic {
    display: block;
    background: #176e28;
    border-left: 4px solid #39ef45;
    padding: 8px;
    color: white;
    font-size: 13px;
    border-radius: 5px;
    text-decoration: none;
}
.ppCalendarBooked {
    background: #791d1d;
    border-left: 4px solid #ff5252;
    padding: 8px;
    border-radius: 5px;
}
.ppCalendarUnknown {
    color: #c6cfc7;
    font-size: 12px;
}
.ppCalendarNotice {
    background: #171c12;
    border-left: 5px solid #ffd400;
    padding: 15px;
    margin: 20px 0;
    line-height: 1.5;
}
@media (max-width: 650px) {
    .ppCalendarPage { padding: 14px 6px 28px; }
    .ppCalendarGrid { gap: 3px; }
    .ppCalendarDay { min-height: 76px; padding: 5px 3px; }
    .ppCalendarDayNumber { font-size: 13px; }
    .ppCalendarWeekday { font-size: 11px; padding: 9px 1px; }
    .ppCalendarPublic { font-size: 10px; padding: 4px 2px; }
    .ppCalendarToolbar h2 { font-size: 18px; }
    .ppCalendarButton { padding: 9px 7px; font-size: 12px; }
}


/* Mobile-only weekly calendar. Desktop month remains unchanged. */
.ppMobileCalendar { display:none; }
@media (max-width:650px) {
  .ppCalendarToolbar, #calendarGrid { display:none !important; }
  .ppMobileCalendar { display:block; }
  .ppMobileToolbar { display:flex; align-items:center; justify-content:space-between; gap:6px; margin:20px 0 12px; }
  .ppMobileToolbar h2 { color:#ffd400; font-size:15px; text-align:center; margin:0; flex:1; }
  .ppMobileToolbar .ppCalendarButton { padding:10px 6px; font-size:11px; min-height:44px; }
  .ppMobileDays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; }
  .ppMobileDate { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; background:#176e28; border:1px solid #39ef45; border-radius:7px; color:white; padding:10px 1px; font-size:11px; cursor:pointer; min-width:0; min-height:66px; }
  .ppMobileDate strong { color:#fff; font-size:17px; }
  .ppMobileDate.selected { background:#ffd400; color:#111; border-color:#fff; }
  .ppMobileDate.selected strong { color:#111; }
  .ppMobileDate:focus-visible { outline:3px solid #fff; outline-offset:2px; }
  .ppMobileDetails { margin-top:14px; }
  .ppMobileDetails h3 { color:#ffd400; font-size:19px; margin:0 0 10px; }
  .ppMobileDetails .ppCalendarDay { padding:12px; min-height:0; }
  .ppMobileDetails .pbSlot { font-size:15px !important; padding:13px 10px !important; margin-top:8px !important; line-height:1.3 !important; min-height:46px; }
  .ppMobileDetails .pbGlowWord { font-size:inherit; }
}

/* Scoped booking CTAs near top of calendar */
.ppCalendarTopActions { max-width:760px; margin:8px auto 22px; }

/* PPB DESKTOP READABILITY 2026 */
@media screen and (min-width: 901px) {

  .ppCalendarWrap {
    max-width: 1360px;
    width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
  }

  .ppCalendarGrid {
    gap: 7px;
  }

  .ppCalendarWeekday {
    font-size: 16px;
    padding: 13px 5px;
    font-weight: 800;
  }

  .ppCalendarDay {
    min-height: 145px;
    padding: 12px;
  }

  .ppCalendarDayNumber {
    font-size: 20px;
    font-weight: 800;
  }

  .ppCalendarPublic {
    font-size: 14px;
    padding: 8px 5px;
  }

  .ppCalendarToolbar h2 {
    font-size: 26px;
  }

  .ppCalendarButton {
    font-size: 15px;
    padding: 12px 18px;
  }

}
/* PPB CALENDAR VISUAL REFINEMENTS 2026 */

@media screen and (min-width: 901px) {
    .ppCalendarWrap {
        max-width: 1360px;
        width: calc(100% - 40px);
    }

    .ppCalendarGrid {
        gap: 8px;
    }

    .ppCalendarDay {
        min-height: 150px;
        padding: 12px;
    }

    .ppCalendarDayNumber {
        font-size: 21px;
        font-weight: 800;
    }

    .ppCalendarWeekday {
        font-size: 16px;
        padding: 14px 5px;
    }

    .ppCalendarPublic {
        font-size: 15px;
        line-height: 1.4;
    }

    .ppCalendarUnknown {
        font-size: 14px;
    }

    .ppCalendarToolbar h2 {
        font-size: 28px;
    }
}

/* Softer calendar logo glow */
.heroLogoGlow::before {
    opacity: .55;
    filter: blur(34px);
}

.heroLogoGlow img {
    filter:
        drop-shadow(0 0 8px rgba(255,255,255,.10))
        drop-shadow(0 0 22px rgba(57,255,20,.25));
}

