.calendar-page-hero{position:relative;min-height:70svh;display:flex;align-items:flex-end;overflow:hidden;padding:190px 0 105px;background:radial-gradient(circle at 78% 70%,rgba(201,162,75,.2),transparent 35%),linear-gradient(145deg,var(--green-950),var(--green-800));color:var(--cream)}
.calendar-page-hero:before{content:"";position:absolute;right:-130px;bottom:-210px;width:540px;height:540px;border:1px solid rgba(201,162,75,.17);border-radius:50%}
.calendar-page-hero .container{position:relative;z-index:2}
.calendar-page-hero .hero-eyebrow{margin-bottom:28px}
.calendar-page-hero .hero-eyebrow a{color:inherit}
.calendar-page-hero>div>span{display:block;margin-bottom:20px;color:var(--gold-light);font-size:9px;letter-spacing:.28em;text-transform:uppercase}
.calendar-page-hero h1{font-family:var(--serif);font-size:clamp(48px,7vw,88px);font-weight:500;line-height:.98}
.calendar-page-hero h1 em{color:var(--gold-light);font-style:italic}
.calendar-page-hero p{max-width:510px;margin-top:28px;color:rgba(244,241,233,.66);font-size:15px;font-weight:300;line-height:1.8}
.school-calendar{position:relative;overflow:hidden;background:var(--cream)}
.school-calendar:before{content:"";position:absolute;right:-180px;top:-190px;width:480px;height:480px;border:1px solid rgba(201,162,75,.16);border-radius:50%}
.calendar-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end;margin-bottom:54px}
.calendar-heading .title{margin:0}
.calendar-heading .title em{color:var(--green-700)}
.calendar-intro{padding-bottom:7px}
.calendar-intro p{max-width:430px;color:var(--muted);font-size:15px;font-weight:300;line-height:1.85}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:24px}
.calendar-legend span{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.calendar-legend i{width:8px;height:8px;border-radius:50%}
.legend-academic{background:#d78d18}.legend-sports{background:#2456a4}.legend-exams{background:#c72d76}.legend-holiday{background:#c4463a}
.calendar-shell{position:relative;padding:27px 29px 30px;border:1px solid rgba(20,57,38,.1);border-radius:22px;background:#fffdf8;box-shadow:0 28px 75px rgba(25,49,34,.1)}
.calendar-shell:before{content:"";position:absolute;top:0;left:44px;right:44px;height:2px;background:linear-gradient(to right,transparent,var(--gold),transparent)}
.school-calendar .fc{font-family:var(--sans);color:var(--ink)}
.school-calendar .fc .fc-toolbar{gap:18px;margin-bottom:24px}
.school-calendar .fc .fc-toolbar-title{font-family:var(--serif);font-size:30px;font-weight:600;line-height:1;color:var(--green-900)}
.school-calendar .fc .fc-button{padding:9px 15px;border:1px solid rgba(20,57,38,.14);border-radius:9px;background:var(--green-900);box-shadow:none;color:var(--cream);font-size:11px;font-weight:600;text-transform:capitalize;transition:background .25s,border-color .25s}
.school-calendar .fc .fc-button:hover,.school-calendar .fc .fc-button:focus{border-color:var(--gold);background:var(--green-700);box-shadow:none}
.school-calendar .fc .fc-button:disabled{background:#8b958f;opacity:.68}
.school-calendar .fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--gold);color:var(--green-950)}
.school-calendar .fc-theme-standard th,.school-calendar .fc-theme-standard td,.school-calendar .fc-theme-standard .fc-scrollgrid{border-color:rgba(20,57,38,.11)}
.school-calendar .fc .fc-col-header-cell-cushion{padding:12px 6px;color:var(--green-900);font-family:var(--serif);font-size:15px;font-weight:600}
.school-calendar .fc .fc-daygrid-day-number{padding:8px;color:var(--green-900);font-size:11px;font-weight:600}
.school-calendar .fc .fc-day-today{background:rgba(201,162,75,.12)!important}
.school-calendar .fc .fc-daygrid-event{margin:2px 3px;padding:3px 5px;border-radius:5px;color:#fff;font-size:10px;line-height:1.25;cursor:pointer}
.school-calendar .fc .fc-daygrid-event:hover{filter:brightness(.92)}
.school-calendar .fc .fc-daygrid-more-link{color:var(--green-700);font-size:9px;font-weight:700}
.calendar-dialog{width:min(calc(100% - 36px),470px);padding:33px;border:1px solid rgba(201,162,75,.28);border-radius:20px;background:var(--cream);box-shadow:0 28px 85px rgba(3,20,12,.4);color:var(--ink)}
.calendar-dialog::backdrop{background:rgba(4,24,15,.72);backdrop-filter:blur(5px)}
.calendar-dialog-close{position:absolute;top:15px;right:15px;width:34px;height:34px;border:1px solid rgba(20,57,38,.14);border-radius:50%;background:transparent;color:var(--green-900);font-size:21px;line-height:1;cursor:pointer}
.calendar-dialog-type{display:block;padding-right:44px;color:var(--gold);font-size:8px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.calendar-dialog h3{margin-top:13px;font-family:var(--serif);font-size:28px;line-height:1.15}
.calendar-dialog time{display:block;margin-top:11px;color:var(--green-700);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.calendar-dialog p{margin-top:18px;color:var(--muted);font-size:13px;line-height:1.75}

@media(max-width:900px){
  .calendar-heading{grid-template-columns:1fr;gap:22px;margin-bottom:36px}
  .calendar-intro{padding-bottom:0}
}

@media(max-width:640px){
  .calendar-page-hero{min-height:620px;padding:145px 0 75px;align-items:center}
  .calendar-page-hero .hero-eyebrow{margin-bottom:22px}
  .calendar-page-hero>div>span{margin-bottom:15px;font-size:7px;letter-spacing:.2em}
  .calendar-page-hero h1{font-size:45px}
  .calendar-page-hero p{margin-top:20px;font-size:13px;line-height:1.7}
  .school-calendar{padding:66px 0}
  .calendar-heading{gap:17px;margin-bottom:27px}
  .calendar-intro p{font-size:13px;line-height:1.7}
  .calendar-legend{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin-top:18px}
  .calendar-legend span{font-size:7px}
  .calendar-shell{padding:18px 14px 16px;border-radius:17px}
  .calendar-shell:before{left:24px;right:24px}
  .school-calendar .fc .fc-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:18px}
  .school-calendar .fc .fc-toolbar-chunk:nth-child(2){grid-column:1/-1;grid-row:1;text-align:left}
  .school-calendar .fc .fc-toolbar-chunk:first-child{grid-column:1;grid-row:2}
  .school-calendar .fc .fc-toolbar-chunk:last-child{grid-column:2;grid-row:2}
  .school-calendar .fc .fc-toolbar-title{font-size:25px}
  .school-calendar .fc .fc-button{min-height:38px;padding:8px 12px;font-size:9px}
  .school-calendar .fc-theme-standard .fc-list{border:0}
  .school-calendar .fc .fc-list-day-cushion{padding:10px 8px;background:rgba(20,57,38,.06)}
  .school-calendar .fc .fc-list-day-text,.school-calendar .fc .fc-list-day-side-text{color:var(--green-900);font-family:var(--serif);font-size:13px}
  .school-calendar .fc .fc-list-event td{padding:11px 7px;border-color:rgba(20,57,38,.08);font-size:11px}
  .school-calendar .fc .fc-list-event-time{display:none}
  .school-calendar .fc .fc-list-event-title a{color:var(--ink);font-weight:500}
  .calendar-dialog{padding:29px 23px}
  .calendar-dialog h3{font-size:24px}
}
