:root{--cal-ink:#152437;--cal-muted:#68717b;--cal-line:rgba(21,36,55,.18);--cal-paper:#eef0ec;--cal-accent:#d95f38}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
.schedule-body{margin:0;background:var(--cal-paper);color:var(--cal-ink)}
.schedule-body .header{background:rgba(238,240,236,.96);border-bottom:1px solid var(--cal-line)}
.schedule-body .collapsible-menu a.active{color:var(--cal-accent)}
.schedule-page{min-height:calc(100vh - 80px);padding:clamp(64px,7vw,112px) clamp(24px,6vw,96px) clamp(96px,10vw,160px);background:var(--cal-paper)}
.calendar-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:48px;max-width:1380px;margin:0 auto clamp(62px,8vw,118px)}
.calendar-kicker{margin:0 0 18px;font:700 12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em;color:var(--cal-accent)}
.calendar-hero h1{margin:0;font-size:clamp(68px,10.5vw,164px);font-weight:760;line-height:.82;letter-spacing:-.075em;color:var(--cal-ink)}
.calendar-hero>p{max-width:420px;margin:0 0 4px;font-size:clamp(18px,1.55vw,23px);line-height:1.55;letter-spacing:-.025em;color:var(--cal-muted)}
.calendar-controls{display:grid;grid-template-columns:auto 130px 110px minmax(190px,250px) minmax(220px,1fr);gap:12px;align-items:end;max-width:1380px;margin:0 auto 26px}.calendar-controls label{display:grid;gap:7px;font-size:11px;font-weight:800;color:var(--cal-muted)}.calendar-controls select,.calendar-controls input,.month-move button{min-height:46px;border:1px solid var(--cal-line);border-radius:10px;background:transparent;color:var(--cal-ink);font:700 14px/1 sans-serif}.calendar-controls select{width:100%;padding:0 38px 0 13px}.calendar-controls input{width:100%;padding:0 13px}.calendar-controls input::placeholder{color:#89919a;font-weight:600}.kindergarten-filter,.kindergarten-search{width:100%}.month-move{display:flex;gap:7px}.month-move button{width:48px;font-size:20px}.month-move button:hover,.calendar-controls select:focus,.calendar-controls input:focus{border-color:var(--cal-accent);outline:0}
.month-overview{display:grid;grid-template-columns:minmax(190px,24%) minmax(0,1fr);max-width:1380px;margin:0 auto;border-top:1px solid var(--cal-ink);border-bottom:1px solid var(--cal-ink)}
.month-heading{display:flex;align-items:flex-start;gap:22px;padding:32px 32px 32px 0;border-right:1px solid var(--cal-line)}
.month-heading>span{font-size:clamp(82px,9vw,138px);font-weight:800;line-height:.78;letter-spacing:-.08em;color:var(--cal-accent)}
.month-heading div{padding-top:3px}
.month-heading p,.month-heading h2,.month-heading small{margin:0}
.month-heading p,.month-heading small{font:700 11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;color:var(--cal-muted)}
.month-heading h2{margin:5px 0;font-size:30px;line-height:1.1;letter-spacing:-.04em}
.calendar{padding:28px 0 0 36px}
.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0}
.weekdays span{padding:0 10px 14px;font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--cal-muted)}
.days{list-style:none;border-top:1px solid var(--cal-line)}
.days li{min-height:74px;padding:11px 10px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);font:600 14px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#53606d}
.days li:nth-child(7n){border-right:0}
.days li:nth-last-child(-n+2){border-bottom:0}
.days .empty{color:transparent}
.days .class-day{padding:0;background:var(--cal-ink)}
.class-day a{display:flex;min-height:74px;padding:10px;flex-direction:column;justify-content:space-between;color:#fff;text-decoration:none;transition:background-color .2s ease}
.class-day a:hover{background:var(--cal-accent)}
.class-day b{font-size:15px}
.class-day span{font:700 11px/1.2 sans-serif;letter-spacing:-.02em}
.class-entry{display:grid;grid-template-columns:minmax(220px,24%) minmax(0,1fr);max-width:1380px;margin:clamp(72px,9vw,132px) auto 0;border-top:1px solid var(--cal-ink)}
.entry-date{display:flex;flex-direction:column;padding:30px 32px 30px 0;border-right:1px solid var(--cal-line)}
.entry-date span,.entry-date small{font:700 11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em;color:var(--cal-muted)}
.entry-date strong{margin:16px 0 20px;font-size:clamp(48px,6vw,86px);line-height:.88;letter-spacing:-.07em;color:var(--cal-accent)}
.entry-content{padding:30px 0 0 36px}
.entry-status{margin:0 0 18px;font-size:14px;font-weight:750;color:var(--cal-accent)}
.entry-content h2{margin:0;font-size:clamp(40px,5.3vw,76px);line-height:1;letter-spacing:-.06em;color:var(--cal-ink)}
.entry-lead{max-width:650px;margin:22px 0 46px;font-size:clamp(17px,1.5vw,21px);line-height:1.7;color:var(--cal-muted)}
.entry-details{display:grid;grid-template-columns:1fr 1fr 1.5fr;margin:0;border-top:1px solid var(--cal-line)}
.entry-details div{padding:22px 24px 26px 0}
.entry-details div+div{padding-left:24px;border-left:1px solid var(--cal-line)}
.entry-details dt{margin-bottom:10px;font-size:12px;font-weight:700;color:var(--cal-muted)}
.entry-details dd{margin:0;font-size:17px;font-weight:700;line-height:1.55;letter-spacing:-.025em;color:var(--cal-ink)}
.schedule-results{max-width:1380px;margin:0 auto}.schedule-results .class-entry{margin-left:0;margin-right:0}.schedule-empty{display:grid;place-items:center;gap:8px;max-width:1380px;margin:72px auto 0;padding:54px 24px;border:1px dashed var(--cal-line);border-radius:18px;text-align:center;color:var(--cal-muted)}.schedule-empty strong{color:var(--cal-ink);font-size:19px}.schedule-empty span{font-size:14px}
@media(max-width:900px){.schedule-page{width:100%;padding:22px 16px 88px;overflow:hidden}.calendar-hero{display:none}.calendar-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;width:100%;margin-bottom:24px}.calendar-controls>*{min-width:0}.month-move{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr}.month-move button{width:100%}.calendar-controls label{min-width:0}.calendar-controls select,.calendar-controls input{display:block;max-width:100%;min-width:0}.kindergarten-filter,.kindergarten-search{grid-column:auto}.month-overview{display:block;width:100%}.month-heading{padding:25px 0 28px;border-right:0;border-bottom:1px solid var(--cal-line)}.month-heading>span{font-size:92px}.calendar{width:100%;padding:22px 0 0;overflow:hidden}.weekdays span{padding:0 2px 12px;text-align:center}.days li{min-width:0;min-height:52px;padding:8px 5px;overflow:hidden}.class-day a{min-height:52px;padding:6px 4px}.class-day span{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.class-entry{display:block;margin-top:68px}.entry-date{padding:24px 0 30px;border-right:0;border-bottom:1px solid var(--cal-line)}.entry-date strong{font-size:64px}.entry-content{padding:28px 0 0}.entry-content h2{font-size:46px}.entry-lead{margin-bottom:34px}.entry-details{display:block}.entry-details div{padding:18px 0}.entry-details div+div{padding-left:0;border-left:0;border-top:1px solid var(--cal-line)}}
@media(max-width:480px){.calendar-controls{grid-template-columns:44px minmax(0,1fr) minmax(0,.72fr) 44px;gap:0;border-top:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line)}.month-move{display:contents}.month-move button{min-height:54px;border:0;border-radius:0;background:transparent}.month-move button:first-child{grid-column:1;grid-row:1}.month-move button:last-child{grid-column:4;grid-row:1}.calendar-controls>label:nth-of-type(1){grid-column:2;grid-row:1;font-size:0}.calendar-controls>label:nth-of-type(2){grid-column:3;grid-row:1;font-size:0}.calendar-controls>label:nth-of-type(1) select,.calendar-controls>label:nth-of-type(2) select{min-height:54px;padding:0 26px 0 8px;border:0;border-radius:0;background-color:transparent;text-align:center;font-size:16px}.kindergarten-filter{grid-column:1 / -1!important;grid-row:2;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:0;min-height:54px;border-top:1px solid var(--cal-line);font-size:11px}.kindergarten-filter select{min-height:54px;padding-left:0;border:0;border-radius:0;background-color:transparent;font-size:15px}.kindergarten-search{display:none!important}.month-heading{gap:16px}.month-heading>span{font-size:74px}.month-heading h2{font-size:27px}.days li{min-height:48px;padding:7px 4px;font-size:12px}.class-day a{min-height:48px}.entry-content h2{font-size:38px}.entry-lead{font-size:16px}.schedule-empty{margin-top:48px;padding:40px 18px}}
@media(max-width:359px){.schedule-page{padding-right:12px;padding-left:12px}.days li{min-height:44px;padding-right:3px;padding-left:3px}.class-day a{min-height:44px}.class-day span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.class-day a{transition:none}}
