.calendar-school{
  --navy: #073e56;
  --blue: #176c8d;
  --green: #21866e;
  --yellow: #ffc83d;
  --coral: #ff7954;
  --ink: #073d59;
  --text: #36556a;
  --muted: #667f8f;
  --line: #d4e4eb;
  --soft: #f3f8fa;
  --mint: #eaf6f1;
  --cream: #fff5d2;
  --white: #fff;
  --shadow: 0 14px 34px rgba(7, 62, 86, 0.11);
}.calendar-school *{
  box-sizing: border-box;
}.calendar-school{
  scroll-behavior: smooth;
}.calendar-school{
  margin: 0;
  color: var(--text);
  font-family: "Trebuchet MS", Arial, sans-serif;
  line-height: 1.6;
  background: #fff;
}.calendar-school a{
  color: var(--blue);
}.calendar-school .site-head{
  background: linear-gradient(100deg, #173f4b, #087a9a);
  border-bottom: 3px solid var(--yellow);
  color: #fff;
}.calendar-school .nav{
  max-width: 1180px;
  margin: auto;
  min-height: 74px;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}.calendar-school .logo{
  font-size: 28px;
  font-weight: 900;
}.calendar-school .menu{
  display: flex;
  gap: 30px;
  font-weight: 800;
}.calendar-school .breadcrumb{
  background: #fff;
  box-shadow: 0 4px 16px #073e5614;
}.calendar-school .breadcrumb div{
  max-width: 1180px;
  margin: auto;
  padding: 18px 28px;
  font-size: 14px;
  font-weight: 700;
}.calendar-school .hero{
  background: linear-gradient(118deg, #147698, #0b4d69 66%, #365f58);
  color: #fff;
}.calendar-school .hero-inner{
  max-width: 1180px;
  margin: auto;
  padding: 68px 28px;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 64px;
  align-items: center;
}.calendar-school .eyebrow{
  display: inline-flex;
  padding: 7px 13px;
  border: 1px solid #ffd054;
  border-radius: 999px;
  color: #ffe27c;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}.calendar-school .hero h1{
  max-width: 760px;
  margin: 20px 0 20px;
  font-size: clamp(43px, 5vw, 64px);
  line-height: 1.04;
  color: #fff;
}.calendar-school .hero p{
  font-size: 21px;
  max-width: 700px;
  margin: 0 0 26px;
}.calendar-school .button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  background: var(--yellow);
  color: var(--ink);
  border-radius: 10px;
  text-decoration: none;
  font-weight: 900;
}.calendar-school .button.secondary{
  background: transparent;
  color: #fff;
  border: 1px solid #ffffff99;
  margin-left: 8px;
}.calendar-school .calendar-art{
  background: #fff;
  color: var(--ink);
  border-radius: 22px;
  padding: 22px;
  box-shadow: var(--shadow);
  transform: rotate(1deg);
}.calendar-school .cal-top{
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 3px solid var(--yellow);
  padding-bottom: 12px;
  font-weight: 900;
}.calendar-school .cal-grid{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-top: 18px;
}.calendar-school .cal-grid span{
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border-radius: 8px;
  background: #f0f6f8;
  font-size: 13px;
}.calendar-school .cal-grid .mark{
  background: #a9e5d2;
  font-weight: 900;
}.calendar-school .cal-grid .holiday{
  background: #ffe3ac;
}.calendar-school .cal-note{
  margin-top: 15px;
  font-size: 13px;
  color: var(--muted);
}.calendar-school main > section{
  padding: 64px 28px;
}.calendar-school .container{
  max-width: 1124px;
  margin: auto;
}.calendar-school .section-title{
  font-size: 36px;
  line-height: 1.16;
  color: var(--ink);
  margin: 0 0 16px;
}.calendar-school .lead{
  font-size: 18px;
  max-width: 860px;
  margin: 0 0 28px;
}.calendar-school .facts,.calendar-school .region-grid,.calendar-school .date-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}.calendar-school .fact,.calendar-school .region-card,.calendar-school .date-card,.calendar-school .source-card,.calendar-school .notice{
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}.calendar-school .fact,.calendar-school .date-card{
  padding: 22px;
}.calendar-school .fact b,.calendar-school .date-card b{
  display: block;
  color: var(--ink);
  font-size: 19px;
}.calendar-school .fact strong,.calendar-school .date-card strong{
  display: block;
  color: var(--green);
  font-size: 30px;
  margin-top: 6px;
}.calendar-school .soft{
  background: var(--soft);
}.calendar-school .region-card{
  position: relative;
  padding: 24px;
  min-height: 210px;
  display: flex;
  flex-direction: column;
  border-top: 5px solid var(--green);
}.calendar-school .region-card.pending{
  border-top-color: #e4af28;
}.calendar-school .region-card h3{
  font-size: 23px;
  color: var(--ink);
  margin: 4px 0;
}.calendar-school .region-card p{
  margin: 0 0 17px;
}.calendar-school .region-card a{
  margin-top: auto;
  font-weight: 900;
  text-decoration: none;
}.calendar-school .region-card-clickable{
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}.calendar-school .region-card-clickable .card-cta{
  margin-top: auto;
  color: var(--blue);
  font-weight: 900;
}.calendar-school .region-card-clickable .card-cta::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}.calendar-school .region-card-clickable:hover{
  transform: translateY(-5px);
  border-color: #9fcfc0;
  border-top-color: var(--yellow);
  box-shadow: 0 16px 34px rgba(7, 62, 86, 0.16);
}.calendar-school .region-card-clickable:focus-within{
  outline: 3px solid var(--yellow);
  outline-offset: 4px;
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(7, 62, 86, 0.15);
}.calendar-school .status{
  display: inline-flex;
  align-self: flex-start;
  border-radius: 999px;
  padding: 5px 10px;
  background: #dff5eb;
  color: #126b55;
  font-size: 12px;
  font-weight: 900;
}.calendar-school .status.pending{
  background: #fff0be;
  color: #835d00;
}.calendar-school .notice{
  padding: 22px;
  background: var(--cream);
  border-color: #ebd374;
}.calendar-school .source-card{
  padding: 24px;
  background: #eaf3fa;
}.calendar-school .source-card h2{
  margin-top: 0;
  color: var(--ink);
}.calendar-school .source-card ul{
  margin-bottom: 0;
}.calendar-school .faq details{
  border: 1px solid var(--line);
  border-radius: 12px;
  margin: 10px 0;
  background: #fff;
}.calendar-school .faq summary{
  cursor: pointer;
  padding: 18px;
  font-weight: 900;
  color: var(--ink);
}.calendar-school .faq details p{
  padding: 0 18px 18px;
  margin: 0;
}.calendar-school .ad{
  max-width: 970px;
  margin: 0 auto;
  padding: 18px;
  border: 1px dashed #9eb5c0;
  background: #fff;
  text-align: center;
  color: #708995;
  font-size: 12px;
}.calendar-school .footer{
  background: var(--navy);
  color: #d9ebf0;
  padding: 32px 28px;
}.calendar-school .footer div{
  max-width: 1124px;
  margin: auto;
}.calendar-school .audit-tag{
  display: inline-block;
  padding: 5px 9px;
  border-radius: 6px;
  background: #fff1cb;
  color: #754f00;
  font-size: 12px;
  font-weight: 800;
}.calendar-school .update{
  font-size: 14px;
  color: var(--muted);
}.calendar-school .full-calendar{ background: #fff; }.calendar-school .calendar-legend{ display: flex; gap: 12px; flex-wrap: wrap; margin: 0 0 24px; }.calendar-school .calendar-legend span{ display: flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; font-weight: 800; }.calendar-school .calendar-legend i{ width: 15px; height: 15px; border-radius: 4px; background: #eef3f5; }.calendar-school .calendar-legend i.start,.calendar-school .day.start{ background: #ffe780; }.calendar-school .calendar-legend i.start-window,.calendar-school .day.start-window{ background: #ffe780; box-shadow: inset 0 0 0 2px #d4a900; }.calendar-school .calendar-legend i.vacation,.calendar-school .day.vacation,.calendar-school .day.vacation-start,.calendar-school .day.vacation-end{ background: #bde99f; }.calendar-school .calendar-legend i.holiday,.calendar-school .day.holiday{ background: #76d7a5; }.calendar-school .calendar-legend i.nonlective,.calendar-school .day.nonlective{ background: #ffab78; }.calendar-school .calendar-legend i.end,.calendar-school .day.end{ background: #d6bee9; }.calendar-school .calendar-legend i.end-window,.calendar-school .day.end-window{ background: #d6bee9; box-shadow: inset 0 0 0 2px #8b63aa; }.calendar-school .months-track{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.calendar-school .month{ border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }.calendar-school .month h3{ margin: 0; padding: 11px 14px; background: var(--navy); color: #fff; font-size: 17px; text-align: center; }.calendar-school .month h3 small{ font-size: 12px; }.calendar-school .week,.calendar-school .days{ display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; padding: 8px; }.calendar-school .week{ padding-bottom: 0; }.calendar-school .week b,.calendar-school .day{ display: grid; place-items: center; min-height: 32px; border-radius: 6px; font-size: 12px; }.calendar-school .week b{ color: var(--muted); }.calendar-school .day{ border: 1px solid #edf2f4; }.calendar-school .day.weekend{ background: #edf3f5; color: #657985; }.calendar-school .day.blank{ border-color: transparent; background: transparent; }.calendar-school .day.start,.calendar-school .day.end,.calendar-school .day.start-window,.calendar-school .day.end-window,.calendar-school .day.holiday,.calendar-school .day.nonlective,.calendar-school .day.vacation,.calendar-school .day.vacation-start,.calendar-school .day.vacation-end{ color: var(--ink); font-weight: 900; border-color: #fff; }.calendar-school .calendar-caveat{ margin: 24px 0 0; padding: 18px; border-radius: 12px; background: var(--cream); border: 1px solid #ebd374; }.calendar-school .stage-table-wrap{ overflow-x: auto; margin: 0 0 28px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.calendar-school .stage-table{ width: 100%; min-width: 660px; border-collapse: collapse; }.calendar-school .stage-table th,.calendar-school .stage-table td{ padding: 16px 18px; border-bottom: 1px solid var(--line); text-align: left; }.calendar-school .stage-table thead th{ background: var(--navy); color: #fff; }.calendar-school .stage-table tbody th{ color: var(--ink); }.calendar-school .stage-table tbody tr:last-child th,.calendar-school .stage-table tbody tr:last-child td{ border-bottom: 0; }.calendar-school .stage-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 24px; }.calendar-school .stage-grid article{ padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.calendar-school .stage-grid h3{ margin: 0 0 10px; color: var(--ink); font-size: 22px; }.calendar-school .stage-grid p{ margin: 0; }.calendar-school .stage-selector{ display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }.calendar-school .stage-selector button{ appearance: none; border: 1px solid var(--line); border-radius: 999px; padding: 10px 16px; background: #fff; color: var(--ink); font: inherit; font-weight: 900; cursor: pointer; }.calendar-school .stage-selector button.active{ border-color: var(--green); background: var(--green); color: #fff; }.calendar-school .month[data-month="7"]{ display: none; }.calendar-school .month[data-month="7"].stage-visible{ display: block; }@media (max-width: 850px){.calendar-school .menu{
    display: none;
  }.calendar-school .hero-inner{
    grid-template-columns: 1fr;
    gap: 38px;
  }.calendar-school .calendar-art{
    max-width: 430px;
  }.calendar-school .facts,.calendar-school .region-grid,.calendar-school .date-grid{
    grid-template-columns: 1fr 1fr;
  }.calendar-school .months-track{ display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 1px 12px; }.calendar-school .month{ min-width: 310px; scroll-snap-align: start; }
}@media (max-width: 580px){.calendar-school .nav,.calendar-school .breadcrumb div,.calendar-school .hero-inner,.calendar-school main > section{
    padding-left: 18px;
    padding-right: 18px;
  }.calendar-school .hero-inner{
    padding-top: 42px;
    padding-bottom: 44px;
  }.calendar-school .hero h1{
    font-size: 37px;
  }.calendar-school .hero p{
    font-size: 18px;
  }.calendar-school .button{
    width: 100%;
    margin: 5px 0 !important;
  }.calendar-school .facts,.calendar-school .region-grid,.calendar-school .date-grid{
    grid-template-columns: 1fr;
  }.calendar-school .stage-grid{
    grid-template-columns: 1fr;
  }.calendar-school main > section{
    padding-top: 46px;
    padding-bottom: 46px;
  }.calendar-school .section-title{
    font-size: 30px;
  }.calendar-school .calendar-art{
    transform: none;
  }.calendar-school .menu{
    display: none;
  }
}
