@charset "UTF-8";
:root{--paper:#f4f0e8;--white:#fffefa;--ink:#183c4d;--muted:#526572;--line:#d9d8ce;--heide:#75465f;--wash:#ebe2e8;--sea:#dfebed;--radius:18px;--max:1180px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.65;color-scheme:light}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--heide)}button,input,select,textarea{font:inherit}button,a,input,select,summary,textarea{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{line-height:1.1;letter-spacing:-.035em}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(2.6rem,4.7vw,4.3rem);max-width:950px;margin-bottom:24px}h2{font-size:clamp(2rem,3vw,2.8rem);margin-bottom:24px}h3{font-size:1.15rem;letter-spacing:-.015em}p{margin-bottom:1.2em}small,.small{font-size:.84rem}strong{font-weight:700}ul{padding-left:1.3rem}.container{width:min(calc(100% - 64px),var(--max));margin-inline:auto}.skip{position:absolute;top:-100px;left:16px;padding:12px;background:var(--white);z-index:100}.skip:focus{top:8px}:focus-visible{outline:3px solid var(--heide);outline-offset:4px}section,[id]{scroll-margin-top:36px}.topbar{background:var(--ink);color:white;text-align:center;font-size:.75rem;letter-spacing:.035em;padding:7px 16px}.site-head{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.1;font-size:1.05rem;font-weight:700;letter-spacing:-.025em}.brand span{display:block}.brand small{display:block;text-transform:uppercase;font-weight:400;letter-spacing:.15em;font-size:.63rem;margin-top:5px}.brand img{width:45px;height:45px}.nav{display:flex;gap:24px;align-items:center;font-size:.87rem}.nav a{text-decoration:none;white-space:nowrap}.nav a[aria-current]{border-bottom:2px solid var(--heide);padding-bottom:6px}.nav .nav-plan{background:var(--ink);color:white;padding:9px 16px;border-radius:7px}.nav-toggle{display:none}.eyebrow{font-size:.73rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--heide);margin-bottom:17px}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:62px;padding:52px 0 38px}.hero h1{margin-bottom:20px}.hero h1 em{display:block;color:var(--heide);font-style:normal}.hero .lead{font-size:1.06rem;max-width:530px}.hero-photo{margin:0;position:relative}.hero-photo img{width:100%;height:430px;object-fit:cover;object-position:62% center;border-radius:55% 55% 14px 14px}.hero-photo figcaption{font-size:.66rem;color:var(--muted);padding-top:7px;text-align:right}.photo-label{position:absolute;bottom:36px;left:24px;color:white;background:rgba(24,60,77,.86);padding:9px 14px;border-radius:7px;font-size:.79rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:23px}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;padding:12px 20px;border:1px solid var(--ink);border-radius:8px;text-decoration:none;background:var(--ink);color:white;font-size:.87rem;font-weight:700;line-height:1.4}.button:hover{color:white;background:#294e5f}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{border-color:var(--ink)}.button[disabled]{opacity:.5;cursor:wait}.next-period{margin:24px 0 0;border-left:3px solid var(--heide);padding:3px 0 3px 16px;font-size:.91rem}.next-period strong{display:block;font-size:1.03rem}.meta-line{display:flex;align-items:center;gap:10px;font-size:.73rem;color:var(--muted);margin-top:22px}.meta-line:before{content:'';width:7px;height:7px;background:var(--heide);border-radius:50%}.year-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden;margin:10px 0 62px}.year-strip a{padding:20px 25px;text-decoration:none;border-right:1px solid var(--line);font-size:.8rem;display:flex;justify-content:space-between;align-items:center}.year-strip a:last-child{border:0}.year-strip strong{font-family:Georgia,serif;font-size:1.8rem;font-weight:400}.year-strip a:hover{background:var(--wash)}.section{padding:0 0 64px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.section-head h2{margin-bottom:0}.section-head p{margin:0;color:var(--muted);max-width:390px;font-size:.9rem}table{width:100%;border-collapse:collapse;font-size:.9rem;text-align:left}caption{text-align:left;font-size:.79rem;color:var(--muted);padding:13px 20px;border-bottom:1px solid var(--line)}th{background:#ecece5;font-size:.71rem;letter-spacing:.06em;text-transform:uppercase;padding:13px 20px;white-space:nowrap}td{padding:17px 20px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border:0}tbody tr:hover{background:#f6f3ef}td:first-child{font-weight:700}td small{display:block;font-weight:400;color:var(--muted)}.tag{border-radius:4px;background:var(--wash);color:var(--heide);padding:3px 7px;white-space:nowrap;font-size:.69rem;font-weight:700}.note{color:var(--muted);font-size:.83rem}.notice{padding:17px 22px;border-left:3px solid var(--heide);background:var(--wash);border-radius:0 8px 8px 0;font-size:.9rem;margin:24px 0}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.type-card{border-top:1px solid var(--line);padding:22px 0 10px;display:block;text-decoration:none}.type-card .number{font-size:.74rem;color:var(--heide);display:block;margin-bottom:14px}.type-card h3{display:flex;justify-content:space-between;font-size:1rem}.type-card p{font-size:.86rem;color:var(--muted);max-width:330px}.planner-teaser{display:grid;grid-template-columns:1.15fr 1fr;background:var(--ink);color:white;border-radius:var(--radius);overflow:hidden}.planner-teaser>div{padding:36px 42px}.planner-teaser .eyebrow{color:#dcc3d2}.planner-teaser h2{font-size:2.5rem}.planner-teaser .button{background:var(--paper);color:var(--ink);border:0}.planner-mini{background:#284b5b;display:flex;flex-direction:column;justify-content:center}.planner-mini .big{font-family:Georgia,serif;font-size:3rem;line-height:1.1}.planner-mini .arrow{color:#d7b3ca}.planner-mini small{color:#c6d6dd}.stories{display:grid;grid-template-columns:1fr 1fr;gap:26px}.story img{height:250px;width:100%;object-fit:cover;border-radius:12px}.story figcaption{color:var(--muted);font-size:.66rem;margin:6px 0 20px}.story h3{font-family:Georgia,serif;font-size:1.6rem;font-weight:400}.story p{font-size:.92rem;color:var(--muted)}.story a{font-size:.86rem;font-weight:700}.split{display:grid;grid-template-columns:1fr 1fr;gap:45px}.text-content{max-width:820px}.text-content h2{font-size:2rem;margin-top:39px}.text-content p{font-size:.99rem}.sources{border-top:1px solid var(--line);padding-top:28px;margin-top:40px;font-size:.82rem;color:var(--muted)}.sources h2{font:700 .9rem Arial,sans-serif;letter-spacing:0;margin:0 0 12px}.sources a{overflow-wrap:anywhere}.site-foot{border-top:1px solid var(--line);margin-top:20px;padding:35px 0 26px}.foot-grid{display:flex;justify-content:space-between;gap:30px}.foot-links{display:flex;flex-wrap:wrap;gap:18px;font-size:.8rem}.site-foot p{max-width:730px;font-size:.75rem;color:var(--muted);margin-top:22px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.76rem;color:var(--muted);padding-top:28px;margin-bottom:27px}.page-head{padding:12px 0 27px}.page-head h1{font-size:clamp(2.35rem,4.5vw,3.5rem);max-width:900px}.page-head .lead{font-size:1.08rem;line-height:1.75;max-width:830px}.subnav{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 30px}.subnav a{padding:5px 13px;border:1px solid var(--line);border-radius:30px;font-size:.81rem;text-decoration:none;background:var(--white)}.subnav a[aria-current]{border-color:var(--heide);background:var(--wash)}.download-group{padding:23px;border:1px solid var(--line);border-radius:12px;margin-bottom:17px;background:var(--white)}.download-group h3{margin:0 0 12px}.download-group .actions{margin-top:0}.download-group .button{padding:9px 14px;font-size:.79rem}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.month{border:1px solid var(--line);border-radius:9px;background:var(--white);padding:14px}.month h3{margin:0 0 10px}.month table{font-size:.73rem;table-layout:fixed}.month th{padding:4px 0;background:transparent;text-align:center;font-size:.62rem;letter-spacing:0}.month td{padding:5px 0;text-align:center;border:0;font-weight:400}.month .school{background:var(--wash)}.month .holiday{color:white;background:var(--ink);font-weight:700;outline:2px solid var(--white);outline-offset:-2px}.month .weekend{color:#5f646a}.month .holiday.weekend{color:white}.legend{display:flex;gap:22px;flex-wrap:wrap;font-size:.8rem}.legend span:before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:middle;border:1px solid var(--line)}.legend .school:before{background:var(--wash)}.legend .holiday:before{background:var(--ink)}.form-panel{background:var(--white);padding:28px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:28px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:end}label{font-size:.85rem;display:block;font-weight:700;margin-bottom:7px}input,select,textarea{width:100%;padding:10px 12px;background:white;color:var(--ink);border:1px solid #71858f;border-radius:6px;line-height:1.5}input[type=checkbox]{width:18px;height:18px;accent-color:var(--heide)}.check-label{display:flex;gap:10px;font-weight:400;align-items:flex-start}.form-panel .note{margin:10px 0 0}.results{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.result{padding:25px;background:var(--white);border:1px solid var(--line);border-radius:12px}.result h3{font-family:Georgia,serif;font-weight:400;font-size:1.5rem}.result .result-days{font-size:2rem;font-family:Georgia,serif;color:var(--heide)}.result .button{font-size:.77rem;padding:8px 12px}.result details{font-size:.83rem;margin:14px 0}.error{color:#9c2235;font-size:.85rem;margin-top:5px}.empty{border:1px dashed var(--heide);padding:25px;background:var(--wash);grid-column:1/-1}.contact-form{max-width:750px}.contact-form .field{margin-bottom:20px}.contact-form .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.status{padding:14px 0;font-size:.9rem;min-height:20px}.status:not(:empty){border-top:1px solid var(--line)}.status[tabindex]{outline-offset:6px}.hidden{display:none!important}.local-only{font-size:.79rem;background:var(--wash);padding:14px;border-radius:6px;margin-bottom:20px}.mini-cal-preview{width:100%;max-width:900px;border:1px solid var(--line);border-radius:9px;margin-bottom:23px}.print-only{display:none}
.month a{display:block;text-decoration:none;border-radius:3px;min-height:24px;line-height:24px}.month a:hover{outline:2px solid currentColor;outline-offset:-2px;color:inherit}.month .holiday a{color:white}
@media(min-width:1500px){.container{width:min(calc(100% - 96px),var(--max))}.hero{padding-top:70px}}
@media(max-width:850px){.container{width:calc(100% - 40px)}.nav{gap:14px}.nav .nav-plan{display:none}.hero{gap:28px}.hero-photo img{height:370px}.hero h1{font-size:3rem}.hero .lead{font-size:.96rem}.type-grid{grid-template-columns:repeat(2,1fr)}.planner-teaser>div{padding:28px}.form-grid{grid-template-columns:1fr 1fr}.form-grid>div:last-child{grid-column:1/-1}.foot-grid{display:block}.foot-links{margin-top:22px}}
@media(max-width:600px){.container{width:calc(100% - 36px)}.topbar{font-size:.65rem;padding:5px 12px}.site-head{padding:17px 0;position:relative}.brand{font-size:.95rem;gap:9px}.brand img{width:38px;height:38px}.brand small{font-size:.57rem}.nav-toggle{display:block;border:1px solid var(--line);border-radius:6px;background:var(--white);padding:7px 11px;font-size:.79rem}.nav{display:none;position:absolute;top:78px;right:0;left:0;z-index:10;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:16px;flex-wrap:wrap;gap:20px;box-shadow:0 14px 25px #183c4d12}.nav.open{display:flex}.nav .nav-plan{display:block}.hero{display:flex;flex-direction:column;gap:24px;padding:29px 0 25px;align-items:stretch}.hero h1{font-size:2.7rem;margin-bottom:16px;line-height:1.05}.hero .eyebrow{font-size:.65rem;margin-bottom:13px}.hero .lead{font-size:.93rem;margin-bottom:0}.hero .actions{margin-top:18px;gap:9px}.button{padding:11px 14px;font-size:.8rem}.next-period{margin-top:18px;font-size:.84rem;padding-left:12px}.next-period strong{font-size:.92rem}.meta-line{margin-top:17px;font-size:.68rem}.hero-photo img{height:190px;border-radius:80px 80px 10px 10px;object-position:60% 58%}.photo-label{bottom:30px;left:15px;font-size:.66rem;padding:6px 10px}.hero-photo figcaption{font-size:.6rem}.year-strip{grid-template-columns:1fr 1fr;margin:0 0 38px}.year-strip a{padding:12px 17px;font-size:.73rem}.year-strip a:nth-child(2){border-right:0}.year-strip a:nth-child(-n+2){border-bottom:1px solid var(--line)}.year-strip strong{font-size:1.5rem}.section{padding-bottom:40px}h2{font-size:1.95rem}.section-head{display:block;margin-bottom:19px}.section-head p{font-size:.85rem;margin-top:12px}.note{font-size:.78rem}.type-grid{gap:10px}.type-card{padding:16px 0 5px}.type-card h3{font-size:.89rem;gap:5px}.type-card .number{margin-bottom:9px;font-size:.67rem}.type-card p{font-size:.78rem}.planner-teaser{grid-template-columns:1fr}.planner-teaser>div{padding:26px}.planner-teaser h2{font-size:2.05rem}.planner-teaser p{font-size:.87rem}.planner-mini .big{font-size:2.2rem}.stories,.split,.results{grid-template-columns:1fr;gap:25px}.story img{height:205px}.story h3{font-size:1.4rem}.story figcaption{margin-bottom:13px}.page-head{padding:2px 0 22px}.page-head h1{font-size:2.3rem;margin-bottom:18px}.page-head .lead{font-size:.96rem}.breadcrumbs{font-size:.68rem;padding-top:20px;margin-bottom:24px}.calendar-grid{gap:13px}.month{padding:18px}.month td{padding:8px 0;font-size:.8rem}.month th{font-size:.68rem}.form-grid{grid-template-columns:1fr;gap:17px}.form-panel{padding:21px}.foot-links{gap:15px;font-size:.73rem}.site-foot{padding-top:25px}.text-content h2{font-size:1.8rem}.text-content p{font-size:.93rem}.contact-form .form-grid>div:last-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.site-head,.topbar,.site-foot,.actions,.nav,.form-panel,.no-print{display:none!important}body{background:white;color:black}.container{width:100%}.page-head h1{font-size:27pt}.calendar-grid{grid-template-columns:repeat(3,1fr);gap:10px}.month{break-inside:avoid}.month td{padding:3px}.print-only{display:block}a{text-decoration:none}.result{break-inside:avoid}.section{padding-bottom:20px}}

.next-period small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}

/* The feedback form is available after its secure submit handler is installed. */
#contact-form:not(.contact-enhanced){display:none}


/* 1.0.2: direct planning tasks and progressive controls. */
h1,h2,h3{text-wrap:balance}td,.result-days,.quick-links{font-variant-numeric:tabular-nums}input,select,textarea{background:var(--white);color:var(--ink)}.js-only{display:none}.js .js-only{display:block}.js button.js-only{display:inline-flex}.nav-toggle{display:none}
.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 0}.quick-links a{text-decoration:none;min-width:0;overflow-wrap:anywhere}.quick-card{padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:var(--white);font-size:.79rem;line-height:1.45}.quick-card span,.quick-card strong,.quick-card small{display:block}.quick-card strong{font-size:.91rem;margin:3px 0}.quick-card small{font-size:.73rem;color:var(--muted)}.quick-card:hover{border-color:var(--heide)}.quick-school{grid-column:1/-1;margin:0;background:var(--wash);padding:11px 15px;border-radius:0 9px 9px 0;line-height:1.45}.quick-school strong{font-size:.95rem;margin:3px 0}.quick-school small{margin-top:3px}.hero h1 em{font-size:.7em;margin-top:9px}.hero-photo .photo-label{bottom:18px}.hero .meta-line{margin-top:16px}.table-search{margin:24px 0 14px}.table-search label{display:block;font-weight:700;font-size:.9rem;margin-bottom:7px}.search-row{display:flex;gap:10px;align-items:center}.search-row input{min-width:0;flex:1}.search-row .button{flex-shrink:0}.table-search .note{margin:8px 0}
.calendar-tools{margin:20px 0}.calendar-filters{border:1px solid var(--line);border-radius:9px;padding:12px 16px;margin:0 0 14px}.calendar-filters legend{font-size:.85rem;font-weight:700;padding:0 6px}.calendar-filters label{display:inline-flex;align-items:center;gap:8px;padding:8px 10px 8px 0;min-height:44px;font-size:.87rem}.calendar-filters input{width:20px;height:20px;accent-color:var(--heide)}#calendar-view-status{display:block}.month-jumps{display:flex;flex-wrap:wrap;gap:6px}.month-jumps a{font-size:.8rem;text-decoration:none;padding:9px 12px;min-height:44px;border:1px solid var(--line);border-radius:7px}.month-jumps a:hover{background:var(--wash);border-color:var(--heide)}#year-calendar{margin-bottom:42px}.calendar-followup{margin-top:45px}.calendar-preview{padding:15px 0}.calendar-preview summary,.result summary{cursor:pointer;min-height:44px;padding-block:8px}.utility-nav{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.utility-nav a{padding:10px 15px;background:var(--white);border:1px solid var(--line);border-radius:7px;text-decoration:none;font-weight:700;font-size:.85rem}.workday-answer{padding:18px 22px;border-left:3px solid var(--heide);background:var(--wash);font-size:1.1rem;font-weight:700;margin:22px 0}#arbeitstage{padding-top:26px}.form-panel input[type=date]{width:100%;min-width:0}.table-wrap tr[hidden]{display:none!important}.breadcrumbs{overflow-wrap:anywhere}
@media(max-width:1100px){.site-head{position:relative;flex-wrap:wrap}.js .nav-toggle{display:block;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--white);font-size:.85rem}.nav{display:none;position:absolute;top:calc(100% + 5px);right:0;left:0;z-index:10;background:var(--white);border:1px solid var(--line);border-radius:9px;padding:12px;flex-wrap:wrap;gap:8px;box-shadow:0 14px 25px #183c4d12}.nav.open{display:flex}.nav a{min-height:44px;display:inline-flex;align-items:center;padding:9px 12px}.nav .nav-plan{display:inline-flex}.site-head>noscript{flex-basis:100%}.noscript-nav{display:flex;flex-wrap:wrap;gap:8px}.noscript-nav a{padding:8px}.hero{gap:28px}}
@media(max-width:600px){.hero h1{font-size:2.5rem}.hero h1 em{font-size:1.65rem;letter-spacing:-.04em}.hero .lead{font-size:.91rem}.quick-links{margin-top:16px;gap:8px}.quick-card{padding:11px;font-size:.73rem}.quick-card strong{font-size:.82rem}.quick-card small{font-size:.69rem}.quick-school{padding:10px 12px;font-size:.78rem}.quick-school strong{font-size:.86rem}.quick-school small{font-size:.72rem}.hero .meta-line{font-size:.65rem}.photo-label{bottom:15px}.hero .actions{margin-top:14px}.tag{white-space:normal}.search-row{flex-wrap:wrap}.search-row input{flex-basis:100%}.calendar-grid{gap:15px}.month td{padding:3px 0}.month a{min-height:38px;line-height:38px}.form-panel input,.form-panel select,.form-panel textarea{font-size:16px}.button{min-height:44px}.workday-answer{font-size:1rem;padding:16px}.month-jumps a{flex:1 0 28%;text-align:center}}
@page calendar-sheet{size:A4 landscape;margin:10mm}
@media print{body[data-page^="calendar-"]{page:calendar-sheet}body[data-page^="calendar-"] .sources,body[data-page^="calendar-"] .breadcrumbs,body[data-page^="calendar-"] .page-head .lead,body[data-page^="calendar-"] .subnav{display:none!important}body[data-page^="calendar-"] .page-head{padding:0}body[data-page^="calendar-"] .page-head h1{margin:0 0 10px;font-size:20pt}body[data-page^="calendar-"] main>h2{display:none}#year-calendar{margin:0}.calendar-grid{gap:8px}.month{padding:8px;border-radius:0;break-inside:avoid;print-color-adjust:exact}.month h3{font-size:11pt;margin-bottom:7px}.month td{font-size:9pt;padding:1px 0}.month th{font-size:8pt;padding:2px 0}.month a{line-height:18px;min-height:18px}.month tr{border:0}.legend{font-size:8pt;margin-bottom:8px}.js-only,.calendar-followup,.calendar-tools,.table-search,.utility-nav{display:none!important}}

.month-picker summary{cursor:pointer;min-height:44px;padding:9px 0;font-size:.87rem;font-weight:700}.month-picker[open] summary{margin-bottom:8px}

.calendar-filters #calendar-view-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){body[data-page^="calendar-"] .page-head h1{font-size:2.05rem}body[data-page^="calendar-"] .page-head .eyebrow{display:none}body[data-page^="calendar-"] .page-head{padding-bottom:12px}body[data-page^="calendar-"] .page-head .lead{margin-bottom:0}body[data-page^="calendar-"] .breadcrumbs{padding-top:12px;margin-bottom:14px}.calendar-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.calendar-tools{margin:12px 0}.calendar-filters{padding:6px 12px;margin-bottom:4px}.calendar-filters label{padding-right:12px}}
@media print{.calendar-heading,body[data-page^="calendar-"] .page-head .eyebrow{display:none!important}}

.brand img {
 border-radius: 24%;
 flex: none;
}

.page-visual {
 margin: 0;
 min-width: 0;
}
.page-visual img {
 width: 100%;
 height: auto;
 aspect-ratio: 16 / 9;
 object-fit: cover;
 border-radius: 22px 22px 10px 10px;
}
.page-visual figcaption {
 margin-top: 5px;
 color: var(--muted);
 font-size: .76rem;
 line-height: 1.4;
}

.table-wrap {
 container: date-table / inline-size;
 margin-bottom: 18px;
 border: 1px solid var(--line);
 border-radius: 12px;
 background: var(--white);
}
.table-wrap table {
 table-layout: fixed;
}
.table-wrap th,
.table-wrap td {
 white-space: normal;
 overflow-wrap: anywhere;
}
.table-wrap .tag {
 display: inline-block;
 max-width: 100%;
 white-space: normal;
}
.table-wrap tbody tr:last-child td {
 border-bottom: 0;
}
.table-field {
 display: none;
}

@media screen {
 .calendar-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
 }
 .month {
  min-width: 0;
 }

 @container date-table (max-width: 45rem) {
  .table-wrap table,
  .table-wrap caption {
   display: block;
  }
  .table-wrap caption {
   padding: 12px 14px;
  }
  .table-wrap thead {
   position: absolute;
   width: 1px;
   height: 1px;
   overflow: hidden;
   clip-path: inset(50%);
  }
  .table-wrap tbody {
   display: grid;
   gap: 10px;
   padding: 8px;
   border-radius: 0 0 11px 11px;
   background: var(--paper);
  }
  .table-wrap tbody tr {
   display: grid;
   align-content: start;
   min-width: 0;
   padding: 3px 12px;
   border: 1px solid var(--line);
   border-radius: 8px;
   background: var(--white);
  }
  .table-wrap td {
   display: grid;
   grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
   align-items: baseline;
   gap: 10px;
   min-width: 0;
   padding: 8px 0;
   border: 0;
   line-height: 1.4;
  }
  .table-wrap td + td {
   border-top: 1px solid var(--line);
  }
  .table-field {
   display: block;
   color: var(--muted);
   font-size: .75rem;
   font-weight: 400;
  }
  .table-wrap td:first-child .table-field {
   color: var(--heide);
   font-weight: 700;
  }
 }
 @container date-table (min-width: 36rem) and (max-width: 45rem) {
  .table-wrap tbody {
   grid-template-columns: repeat(2, minmax(0, 1fr));
  }
 }
}

@media screen and (min-width: 601px) {
 .page-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 32%);
  grid-template-rows: auto auto 1fr;
  align-items: start;
  column-gap: clamp(20px, 4vw, 56px);
 }
 .page-head > :not(.page-visual) {
  grid-column: 1;
 }
 .page-head .lead {
  margin-bottom: 0;
 }
 .page-visual {
  grid-column: 2;
  grid-row: 1 / 4;
  align-self: center;
 }
}

@media screen and (max-width: 600px) {
 .page-visual img {
  height: clamp(108px, 28vw, 168px);
  border-radius: 16px 16px 8px 8px;
 }
 .page-head-calendar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 31%);
  align-items: start;
  column-gap: 12px;
 }
 .page-head-calendar h1 {
  grid-column: 1 / -1;
 }
 .page-head-calendar .page-visual img {
  height: auto;
  aspect-ratio: 1;
  border-radius: 12px 12px 6px 6px;
 }
 .page-head-calendar .page-visual figcaption {
  overflow-wrap: anywhere;
 }
}

/* Keep hints from moving adjacent controls; four planner fields form two rows. */
#planner-form .form-grid,
#workday-form .form-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 align-items: start;
}
#planner-form .form-grid > div,
#workday-form .form-grid > div {
 grid-column: auto;
 min-width: 0;
}
#planner-form .form-grid input,
#planner-form .form-grid select,
#workday-form .form-grid input {
 min-width: 0;
 height: 48px;
}
@media screen and (max-width: 600px) {
 #planner-form .form-grid,
 #workday-form .form-grid {
  grid-template-columns: minmax(0, 1fr);
 }
}

/* Keep the school-holiday layer visible when a public holiday overlaps it. */
.month .school {
 box-shadow: inset 0 -2px 0 #ad789a;
}
.month .school.holiday {
 box-shadow: inset 0 -3px 0 #e0b8d2;
}
.legend .school::before {
 border-color: var(--heide);
 box-shadow: inset 0 -2px 0 #ad789a;
}

.faq-section { margin-top: 40px; }
.faq-item { margin: 0 0 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--white); }
.faq-item summary { min-height: 48px; padding: 14px 18px; cursor: pointer; font-weight: 700; line-height: 1.45; }
.faq-item summary:focus-visible { outline: 3px solid var(--heide); outline-offset: 3px; }
.faq-answer { padding: 0 18px 16px; }
.faq-answer p { margin: 0; }
@media print { .faq-item { break-inside: avoid; } .faq-item summary { padding: 6px; } .faq-item:not([open]) .faq-answer { display: block; } }
