/* Shared content proportions. Header, footer and the interactive hero are excluded. */
/* Photo-only rounding by display role; logos, illustrations and archive documents stay unchanged. */
.km-news-thumb img:not([src$=".svg"]):is(:not([src*="-logo"]), [src*="/poiste-keelpillifestival-"]),
.km-collage .km-approved-photo img { border-radius: 8px; }
.km-aavik-portrait img,
.km-news-archive .wp-block-post-featured-image img:not([src$=".svg"]):is(:not([src*="-logo"]), [src*="/poiste-keelpillifestival-"]) { border-radius: 10px; }
.km-alumni-card > .km-alumni-photo { border-radius: 10px; overflow: hidden; }
.km-alumni-photo img { border-radius: 10px; }
.km-flight-archive .wp-block-image img,
.km-aavik-archive-photo img,
.km-gallery-expanded .km-approved-photo img,
.km-hero-image img:not([src$=".svg"]),
.km-schoolhouse-photo:not(.km-schoolhouse-crest):not(.km-schoolhouse-document):not(.km-schoolhouse-clipping) img:not([src*="koolimaja-mm1927"]),
main:not(.km-front-main) > .wp-block-post-featured-image img:not([src$=".svg"]):is(:not([src*="-logo"]), [src*="/poiste-keelpillifestival-"]) { border-radius: 12px; }

body.page-id-16 main#sisu { --wp--style--global--content-size: 1100px; }
body.page-id-16 .km-contact-illustration { width: min(400px, 100%); margin: 1.5rem auto; }
body.page-id-16 .km-contact-illustration img { display: block; width: 100%; height: auto; border-radius: 12px; }
body.page-id-16 .km-contact-info .wp-block-table table { table-layout: auto; width: 100%; }
body.page-id-16 .km-contact-info .wp-block-buttons { gap: .75rem; }
body.page-id-16 .km-management { width: var(--km-contact-detail-width, 100%); max-width: none; }
body.page-id-16 .km-management-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .75rem 1.5rem; padding-block: 1rem; margin: 0; }
body.page-id-16 .km-management-row + .km-management-row { border-top: 1px solid var(--wp--preset--color--line, #dfded7); }
body.page-id-16 .km-management-row p { margin: 0; line-height: 1.5; }
body.page-id-16 .km-management-person strong { color: var(--wp--preset--color--primary); font-weight: 600; }
body.page-id-16 .km-management-contact a { overflow-wrap: anywhere; }
@media (max-width: 599px) { body.page-id-16 .km-management-row { grid-template-columns: minmax(0, 1fr); gap: .5rem; } }
@media (min-width: 1000px) {
 body.page-id-16 main#sisu { position: relative; display: grid; grid-template-columns: minmax(600px, 65fr) minmax(0, 35fr); column-gap: 2rem; max-width: 1100px; margin-inline: auto; }
 body.page-id-16 main#sisu > .wp-block-post-content { display: contents; }
 body.page-id-16 main#sisu > .wp-block-post-title { grid-column: 1; grid-row: 1; width: 100%; }
 body.page-id-16 .km-contact-info { grid-column: 1; grid-row: 2; margin: 0; min-width: 0; width: 100%; box-sizing: border-box; }
 body.page-id-16 .km-contact-info > :first-child { margin-top: 0; }
 body.page-id-16 .km-contact-info td a { white-space: nowrap; }
 body.page-id-16 .km-contact-illustration { grid-column: 2; grid-row: 2; align-self: start; justify-self: end; width: min(380px, 100%); max-width: 100%; margin: 0; }
 body.page-id-16 .km-contact-info > .wp-block-table { width: var(--km-contact-detail-width, 100%); max-width: none; }
 body.page-id-16 .km-contact-info .wp-block-buttons { display: grid; grid-template-columns: 1.5fr 1fr 1.25fr; width: var(--km-contact-detail-width, 100%); max-width: none; gap: .5rem; }
 body.page-id-16 .km-contact-info .wp-block-button { flex: 0 1 auto; }
 body.page-id-16 .km-contact-info .wp-block-button__link { width: 100%; height: 100%; box-sizing: border-box; padding-inline: .75rem; white-space: nowrap; }
 body.page-id-16 .km-contact-directions { grid-column: 1 / -1; width: 100%; margin-top: 1.5rem; }
}
body.page-id-17 main#sisu { --wp--style--global--content-size: 1100px; }
body.page-id-17 .km-history-portrait { width: min(240px, 100%); margin: 1.5rem auto; }
body.page-id-17 .km-history-portrait img { display: block; width: 100%; height: auto; border-radius: 10px; }
body.page-id-17 .km-history-portrait figcaption { margin-top: .6rem; font-size: .8125rem; line-height: 1.5; color: var(--wp--preset--color--muted); }
body.page-id-17 .km-history-body .km-history-teachers-photo { width: min(525px, 100%); margin: 1.5rem 0; }
body.page-id-17 .km-history-body .km-history-teachers-photo img { display: block; width: 100%; height: auto; border-radius: 12px; }
body.page-id-17 .km-history-body .km-history-teachers-photo figcaption { margin-top: .6rem; font-size: .8125rem; line-height: 1.5; color: var(--wp--preset--color--muted); }
body.page-id-17 .wp-lightbox-overlay .lightbox-image-container:has(.km-history-teachers-photo) { width: 92vw; height: 90vh; overflow: visible; animation: none !important; }
body.page-id-17 .wp-lightbox-overlay .km-history-teachers-photo { width: 100% !important; height: 100% !important; margin: 0; transform: none !important; }
body.page-id-17 .wp-lightbox-overlay .km-history-teachers-photo img { width: auto !important; height: auto !important; min-width: 0; min-height: 0; max-width: min(960px, 92vw); max-height: min(664px, 90vh); object-fit: contain !important; transform: none !important; }
body.page-id-17 .wp-lightbox-overlay .scrim { background-color: #111 !important; }
body.page-id-17 .wp-lightbox-overlay .wp-lightbox-close-button { fill: #fff !important; }
body.page-id-17 .km-history-body > p { max-width: 88ch; line-height: 1.8; }
body.page-id-17 .km-history-subnav { gap: .1rem 1rem; }
@media (min-width: 900px) {
 body.page-id-17 main#sisu { display: grid; grid-template-columns: minmax(0, 68fr) minmax(0, 32fr); column-gap: 2rem; max-width: 1100px; margin-inline: auto; }
 body.page-id-17 main#sisu > .wp-block-post-content { display: contents; }
 body.page-id-17 main#sisu > .wp-block-post-title { grid-column: 1; grid-row: 1; width: 100%; }
 body.page-id-17 .km-history-intro { grid-column: 1; grid-row: 2; margin: 0; min-width: 0; }
 body.page-id-17 .km-history-intro > p { margin-top: 0; }
 body.page-id-17 .km-history-topics { grid-column: 1; grid-row: 3; width: 100%; box-sizing: border-box; align-self: start; }
 body.page-id-17 .km-history-portrait { grid-column: 2; grid-row: 1 / span 3; align-self: start; margin-block: 0; }
 body.page-id-17 .km-history-body { grid-column: 1 / -1; width: 100%; margin-top: 1.5rem; }
}
body.page-id-13 main#sisu { --wp--style--global--content-size: 1100px; }
body.page-id-13 .km-school-photo { margin: 1.5rem auto; }
body.page-id-13 .km-school-photo img { display: block; width: 100%; height: auto; border-radius: 10px; }
body.page-id-13 .km-school-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding: 0; list-style: none; }
body.page-id-13 .km-school-timeline li { border-top: 1px solid var(--wp--preset--color--gold); padding-top: .75rem; line-height: 1.65; }
body.page-id-13 .km-school-timeline strong { font-family: var(--wp--preset--font-family--serif); color: var(--wp--preset--color--primary); font-size: 1.4rem; }
body.page-id-13 .km-school-history > .wp-block-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
body.page-id-13 .km-school-history .wp-block-button__link { display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 100%; height: 100%; }
@media (min-width: 900px) {
 body.page-id-13 main#sisu { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); column-gap: 2rem; max-width: 1100px; margin-inline: auto; }
 body.page-id-13 main#sisu > .wp-block-post-content { display: contents; }
 body.page-id-13 main#sisu > .wp-block-post-title { grid-column: 1 / -1; grid-row: 1; width: 100%; }
 body.page-id-13 .km-school-navigation { grid-column: 1 / -1; grid-row: 2; width: 100%; box-sizing: border-box; }
 body.page-id-13 .km-school-intro { grid-column: 1; grid-row: 3; margin: 0; min-width: 0; }
 body.page-id-13 .km-school-intro > :first-child { margin-top: 0; }
 body.page-id-13 .km-school-photo { grid-column: 2; grid-row: 3; align-self: center; width: 100%; margin: 0; }
 body.page-id-13 .km-school-history { grid-column: 1 / -1; width: 100%; margin-top: 1.5rem; }
}
@media (max-width: 599px) {
 body.page-id-13 .km-school-timeline { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
 body.page-id-13 .km-school-timeline li { border-top: 0; border-left: 1px solid var(--wp--preset--color--gold); padding: .25rem 0 .25rem 1rem; }
 body.page-id-13 .km-school-history > .wp-block-buttons { grid-template-columns: minmax(0, 1fr); }
}
body.page-id-8 main#sisu { --wp--style--global--content-size: 1100px; }
.km-study-form { display: grid; grid-template-columns: minmax(0, 27fr) minmax(0, 73fr); gap: 1.5rem; padding-block: 1.25rem; }
.km-study-form + .km-study-form { border-top: 1px solid var(--wp--preset--color--line); }
.km-study-form > dt { font-weight: 600; }
.km-study-form > dd { margin: 0; }
@media (max-width: 599px) {
 .km-study-form { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
}
body.page-id-8 .km-learning-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
body.page-id-8 .km-learning-top > * { min-width: 0; margin: 0; }
body.page-id-8 .km-learning-intro > :first-child { margin-top: 0; }
body.page-id-8 .km-learning-photo { margin: 0 0 1.25rem; }
body.page-id-8 .km-learning-photo img { display: block; width: 100%; height: auto; border-radius: 10px; }
@media (max-width: 899px) {
 body.page-id-8 .km-learning-top { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
 body.page-id-8 .km-learning-photo { max-width: 600px; margin-inline: auto; }
}
/* Festival announcement only: keep the shared news template unchanged. */
body.postid-49 main#sisu > .wp-block-post-featured-image { max-width: 340px; margin-inline: auto; }
body.postid-49 main#sisu > .wp-block-post-featured-image img { width: 100%; height: auto; max-height: none; object-fit: contain; }
@media (min-width: 1025px) {
 body.postid-49 main#sisu { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); column-gap: 2rem; max-width: 1100px; margin-inline: auto; }
 body.postid-49 main#sisu > * { min-width: 0; width: 100%; max-width: none; box-sizing: border-box; }
 body.postid-49 main#sisu > .wp-block-post-title,
 body.postid-49 main#sisu > .wp-block-post-date,
 body.postid-49 main#sisu > .wp-block-group { grid-column: 1 / -1; }
 body.postid-49 main#sisu > .wp-block-post-featured-image { grid-column: 2; grid-row: 3; max-width: none; margin: 1rem 0 0; align-self: start; }
 body.postid-49 main#sisu > .wp-block-post-content { grid-column: 1; grid-row: 3; margin: 1rem 0 0; }
}
/* Schoolhouse overview and archive only. */
.km-schoolhouse-archive .km-building-details { margin-block: 1rem 1.75rem; border-block: 1px solid var(--wp--preset--color--line); }
.km-schoolhouse-archive .km-building-details > summary { padding: .9rem .5rem; cursor: pointer; color: var(--wp--preset--color--primary); font-weight: 600; }
.km-schoolhouse-archive .km-building-details > summary:hover { background: var(--wp--preset--color--tint); }
.km-schoolhouse-archive .km-building-details > summary:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.km-schoolhouse-archive .km-building-details-body { padding: .25rem .5rem 1rem; }
.km-schoolhouse-archive .km-building-details-body li { padding-left: .25rem; margin-block: .9rem; }
.km-schoolhouse-archive .km-building-details-body li > p { margin: 0; }
.km-schoolhouse-archive .km-building-date { color: var(--wp--preset--color--primary); font-weight: 700; font-variant-numeric: tabular-nums; }
.km-schoolhouse.km-schoolhouse-archive .km-schoolhouse-document { width: 460px; max-width: 100%; }
.km-schoolhouse.km-schoolhouse-archive .km-schoolhouse-document img { width: 100%; height: auto; max-height: none; }
.km-schoolhouse.km-schoolhouse-archive .km-schoolhouse-clipping { width: 600px; max-width: 100%; margin-block: 1.75rem 2.5rem; }
.km-schoolhouse.km-schoolhouse-archive .km-schoolhouse-clipping img { width: 100%; height: auto; max-height: none; }
main:has(.km-schoolhouse) { --wp--style--global--content-size: 960px; }
main:has(.km-schoolhouse) > .wp-block-post-title { font-size: clamp(2rem, 3vw, 2.5rem); }
.km-schoolhouse { max-width: 960px; margin-inline: auto; }
.km-schoolhouse p, .km-schoolhouse li { max-width: 78ch; line-height: 1.75; }
main:not(.km-front-main) .km-schoolhouse h2.wp-block-heading { font-size: clamp(1.4rem, 2vw, 1.75rem); margin-block: 2rem .8rem; }
.km-schoolhouse-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2rem); align-items: start; }
.km-schoolhouse-columns > * { min-width: 0; }
.km-schoolhouse-columns > div > :first-child { margin-top: 0; }
.km-schoolhouse .km-schoolhouse-photo { width: fit-content; max-width: 100%; margin: 1.5rem auto; }
.km-schoolhouse-photo a { display: block; cursor: zoom-in; }
.km-schoolhouse-photo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 420px; object-fit: contain; }
.km-schoolhouse-photo figcaption { max-width: 65ch; margin-top: .5rem; color: var(--wp--preset--color--muted); font-size: .8125rem; line-height: 1.5; }
.km-schoolhouse .km-schoolhouse-street { max-width: 650px; }
.km-schoolhouse .km-schoolhouse-clipping { max-width: 600px; }
.km-schoolhouse .km-schoolhouse-crest { max-width: 115px; margin: 1rem 0; }
.km-schoolhouse .km-schoolhouse-document { max-width: 360px; }
.km-schoolhouse-archive .km-schoolhouse-document { max-width: 480px; }
.km-schoolhouse-archive .km-schoolhouse-document img { max-height: 620px; }
.km-schoolhouse-columns > .km-schoolhouse-photo { margin-top: 0; }
.km-schoolhouse-story, .km-schoolhouse-more { margin-block: 2rem; padding-block: .25rem 1rem; border-block: 1px solid var(--wp--preset--color--line); }
main:not(.km-front-main) .km-schoolhouse-story > h2, main:not(.km-front-main) .km-schoolhouse-more > h2 { margin-top: 1rem; }
.km-schoolhouse-year { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; margin-block: 1.5rem 2rem; padding-block: 1rem; border-block: 1px solid var(--wp--preset--color--line); }
.km-schoolhouse-year > strong { color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--serif); font-size: clamp(2.25rem, 4vw, 3rem); line-height: 1.2; }
.km-schoolhouse-year > p { flex: 1 1 240px; margin: 0; }
.km-schoolhouse a { overflow-wrap: anywhere; text-underline-offset: .2em; }
.km-schoolhouse a:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
@media (max-width: 700px) {
 .km-schoolhouse-columns { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
 .km-schoolhouse .km-schoolhouse-photo { max-width: 100%; }
 .km-schoolhouse .km-schoolhouse-crest { max-width: 100px; }
 .km-schoolhouse-photo img { max-height: 400px; }
}
/* Balance the overview independently of the archive. */
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-street { max-width: min(708px, 100%); }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-street img { max-height: none; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-columns > .km-schoolhouse-photo { margin-bottom: 0; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-conversion .km-schoolhouse-document { max-width: min(200px, 100%); }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-year { padding: .85rem 1.25rem; background: var(--wp--preset--color--tint); border: 1px solid var(--wp--preset--color--line); border-radius: 3px; }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-year > p { font-weight: 600; }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-more > p > a { display: inline-block; box-sizing: border-box; max-width: 100%; padding: .65rem 1rem; border: 1px solid var(--wp--preset--color--line); border-radius: 3px; color: var(--wp--preset--color--primary); background: var(--wp--preset--color--surface); font-weight: 600; text-decoration: none; }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-more > p > a:hover { background: var(--wp--preset--color--tint); border-color: var(--wp--preset--color--primary); }
.km-schoolhouse:not(.km-schoolhouse-archive) > .km-schoolhouse-columns > .km-schoolhouse-photo { max-width: 320px; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-crest { display: flex; align-items: center; gap: .75rem; max-width: 100%; margin-block: .75rem 0; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-crest > a { flex: 0 0 64px; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-crest figcaption { margin: 0; }
.km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-story { padding-bottom: 1.25rem; }
@media (min-width: 701px) {
 .km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-columns { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
 .km-schoolhouse:not(.km-schoolhouse-archive) .km-schoolhouse-conversion { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
}
.km-history-topics { margin-block: 1.25rem 1.75rem; padding-block: .75rem; border-block: 1px solid var(--wp--preset--color--line); }
main:not(.km-front-main) .km-history-topics > h2.wp-block-heading { margin: 0 0 .25rem; font-family: var(--wp--preset--font-family--sans); font-size: 1rem; font-weight: 600; }
.km-history-topics .km-history-subnav { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem 1.25rem; margin: 0; }
.km-history-subnav > p { min-width: 0; max-width: 100%; margin: 0; font-size: .875rem; line-height: 1.5; }
.km-history-subnav a, .km-history-subnav .km-history-pending { display: inline-flex; align-items: center; min-height: 44px; padding-block: .4rem; }
.km-history-subnav a { color: var(--wp--preset--color--primary); text-decoration: none; overflow-wrap: anywhere; }
.km-history-subnav a:hover { text-decoration: underline; text-underline-offset: .22em; }
.km-history-subnav a:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.km-history-subnav .km-history-pending { color: var(--wp--preset--color--muted); }
.km-history-topics > p.has-small-font-size { margin: .25rem 0 0; color: var(--wp--preset--color--muted); font-size: .8125rem; }
/* Aavik exhibition: full-width, uncropped panels in a single vertical sequence. */
main:has(.km-aavik-exhibition) { --wp--style--global--content-size: 100%; padding: 1.5rem clamp(12px, 2.5vw, 48px) 2rem !important; }
main:has(.km-aavik-exhibition) > .wp-block-post-title { font-size: clamp(1.8rem, 3vw, 2.4rem) !important; }
main:has(.km-aavik-exhibition) > .wp-block-post-content,
.km-aavik-exhibition { width: 100%; max-width: none; }
.km-aavik-exhibition .km-aavik-exhibit-panel { width: 100%; max-width: none; margin: 1.5rem 0; }
.km-aavik-exhibit-panel > a { display: block; cursor: zoom-in; }
.km-aavik-exhibit-panel img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; border: 0; border-radius: 0; box-shadow: none; }
.km-aavik .km-aavik-exhibition-link { margin-block: 2rem; padding-block: 1rem; border-block: 1px solid var(--wp--preset--color--line); }
main .km-aavik .km-aavik-exhibition-link > h3.wp-block-heading { margin: 0 0 .5rem; font-size: 1.4rem; }
.km-aavik .km-aavik-exhibition-link > p { margin-block: .4rem 0; }
.km-peeter-exhibition-link { margin-block: 2rem; padding-block: 1rem; border-block: 1px solid var(--wp--preset--color--line); }
main .km-peeter-exhibition-link > h2.wp-block-heading { margin: 0 0 .5rem; font-size: 1.4rem; }
.km-peeter-exhibition-link > p { margin-block: .4rem 0; }
/* Joosep Aavik: compact article opening and locally scoped archival photos. */
main:has(.km-aavik) { --wp--style--global--content-size: 900px; padding-top: 1.5rem !important; }
main:has(.km-aavik) > .wp-block-post-title { font-size: clamp(2rem, 3vw, 2.4rem) !important; margin-bottom: 1.25rem; }
.km-aavik { max-width: 900px; margin-inline: auto; }
.km-aavik > p { max-width: 80ch; line-height: 1.8; }
main .km-aavik > h2.wp-block-heading { margin-block: 3rem 1rem; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); font-size: clamp(1.6rem, 2vw, 1.85rem); }
main .km-aavik > h3.wp-block-heading { margin-block: 2rem .75rem; font-size: clamp(1.2rem, 1.5vw, 1.4rem); }
.km-aavik .km-aavik-intro { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 2rem; align-items: center; padding-bottom: 1rem; }
.km-aavik .km-aavik-intro > * { min-width: 0; margin: 0; }
.km-aavik .km-aavik-intro-copy > :first-child { margin-top: 0; }
.km-aavik .km-aavik-intro-copy > :last-child { margin-bottom: 0; }
.km-aavik .km-aavik-intro-copy { line-height: 1.75; }
.km-aavik .km-aavik-intro-copy > :first-child { font-weight: 600; }
.km-aavik .km-aavik-portrait img { display: block; width: 230px; height: auto; }
.km-aavik > p:has(a[href*="youtube.com/watch"], a[href*="arhiiv.err.ee"]) { border-left: 2px solid var(--wp--preset--color--line); padding: .65rem 1rem; margin-block: .5rem; }
.km-aavik > p:last-child { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1rem; font-size: .875rem; }
.km-aavik .km-aavik-archive-photo { max-width: 400px; margin: 1.75rem auto; }
.km-aavik .km-aavik-archive-photo img { display: block; width: 100%; height: auto; }
.km-aavik > .km-aavik-article { margin-block: 1.25rem; padding: 0 1.25rem; border: 1px solid var(--wp--preset--color--line); border-radius: 3px; background: var(--wp--preset--color--base); }
.km-aavik .km-aavik-article > summary { position: relative; padding: 1rem 2rem 1rem 0; cursor: pointer; list-style: none; font-family: var(--wp--preset--font-family--serif); font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.4; color: var(--wp--preset--color--primary); }
.km-aavik .km-aavik-article > summary::-webkit-details-marker { display: none; }
.km-aavik .km-aavik-summary-author { display: inline-block; font-family: var(--wp--preset--font-family--sans); font-size: .9375rem; color: var(--wp--preset--color--muted); }
.km-aavik .km-aavik-article > summary::after { content: "+"; position: absolute; right: 0; top: 1rem; font-family: var(--wp--preset--font-family--sans); font-size: 1.25rem; }
.km-aavik .km-aavik-article[open] > summary::after { content: "−"; }
.km-aavik .km-aavik-article > summary:hover { text-decoration: underline; text-underline-offset: .2em; }
.km-aavik .km-aavik-article > summary:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.km-aavik .km-aavik-article[open] { padding-bottom: 1rem; }
.km-aavik .km-aavik-article[open] > summary { border-bottom: 1px solid var(--wp--preset--color--line); margin-bottom: 1rem; }
.km-aavik .km-aavik-article > p { max-width: 80ch; line-height: 1.8; }
main .km-aavik .km-aavik-article > h3.wp-block-heading { margin-block: 2rem .75rem; font-size: clamp(1.2rem, 1.5vw, 1.4rem); }
@media (max-width: 599px) {
 .km-aavik .km-aavik-intro { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
 .km-aavik .km-aavik-portrait img { width: 180px; }
 main .km-aavik > h2.wp-block-heading { margin-top: 2.25rem; }
}
main:not(.km-front-main) {
 --km-content-h1: clamp(2.25rem, 1.95rem + 1vw, 2.75rem);
 --km-content-h2: clamp(1.625rem, 1.4rem + .75vw, 2rem);
 --km-content-h3: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
 /* Existing native template spacing tokens stay editable in the site editor. */
 --wp--preset--spacing--70: clamp(2rem, 3vw, 2.75rem);
 --wp--preset--spacing--60: clamp(1.5rem, 2.5vw, 2.25rem);
}
main:not(.km-front-main) :is(h1.wp-block-post-title, h1.wp-block-query-title, h1.wp-block-heading) {
 font-size: var(--km-content-h1);
 line-height: 1.18;
 text-wrap: balance;
 margin-block-end: 1rem;
}
main:not(.km-front-main) h2.wp-block-heading {
 font-size: var(--km-content-h2);
 line-height: 1.25;
 margin-block: 1.75rem .75rem;
 text-wrap: balance;
}
main:not(.km-front-main) h3.wp-block-heading {
 font-size: var(--km-content-h3);
 line-height: 1.3;
 margin-block: 1.25rem .5rem;
}
main:not(.km-front-main) > .wp-block-post-content { margin-block-start: 1rem; }
main:not(.km-front-main) .wp-block-post-content > :first-child { margin-block-start: 0; }
main:not(.km-front-main) .km-source-note { margin-block: 1.5rem 0; }
main:not(.km-front-main) > .wp-block-post-date { margin-block: .5rem 1rem; }

/* Article/teacher lead photos: natural ratio, full frame, aligned with the text. */
main:not(.km-front-main) > .wp-block-post-featured-image {
 max-width: var(--wp--style--global--content-size);
 margin-block: 1rem 1.25rem;
}
main:not(.km-front-main) > .wp-block-post-featured-image img {
 display: block;
 width: auto;
 height: auto;
 max-width: 100%;
 max-height: 360px;
 object-fit: contain;
 object-position: left center;
}

/* News collections need wider cards, rather than three narrow text columns. */
main:not(.km-front-main) .wp-block-post-content:has(> .km-news-archive) { max-width: 1120px; }
main:not(.km-front-main) .wp-block-post-content:has(> .km-news-archive) > :not(.km-news-archive) {
 max-width: var(--wp--style--global--content-size);
 margin-inline: auto;
}
main:not(.km-front-main) .km-news-archive,
main:not(.km-front-main) > .wp-block-query { max-width: 1120px; }
main:not(.km-front-main) .wp-block-post-template.is-layout-grid {
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
 gap: 1.25rem;
}
main:not(.km-front-main) .km-card { padding: 1.25rem; }
main:not(.km-front-main) .km-card .wp-block-post-title {
 font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem) !important;
 line-height: 1.3;
 margin-block: .5rem .75rem;
}
main:not(.km-front-main) .km-card .wp-block-post-featured-image { margin: 0 0 .75rem; }
main:not(.km-front-main) .km-card .wp-block-post-featured-image img {
 width: 100%;
 height: auto;
 aspect-ratio: 3 / 2;
 max-height: 220px;
 object-fit: contain !important;
}
main:not(.km-front-main) .km-card .wp-block-post-excerpt { margin-block-start: .75rem; }
main:not(.km-front-main) .km-card .wp-block-post-excerpt p { margin-block: .5rem; }

/* Keep the established portrait grid; tighten only its introductory spacing. */
main:not(.km-front-main) .km-teachers { margin-block: 1.5rem; }
main:not(.km-front-main) .km-teacher-filter { padding-block: .75rem; margin-bottom: 1.25rem; }
@media (max-width: 599px) {
 main:not(.km-front-main) > .wp-block-post-featured-image img { max-height: 280px; }
 main:not(.km-front-main) .km-gallery-expanded img { max-height: 260px; object-fit: contain; }
 /* Give the longer column the space it needs, keeping native table content. */
 .wp-block-table .km-table-study th:first-child { width: 30%; }
 .wp-block-table .km-table-study th:last-child { width: 70%; }
 .wp-block-table .km-table-fees th:first-child { width: 70%; }
 .wp-block-table .km-table-fees th:last-child { width: 30%; }
 .wp-block-table :is(.km-table-study, .km-table-fees) :is(th, td) { padding: .65rem .5rem; }
 .wp-block-table .km-table-contacts { display: block; }
 .wp-block-table .km-table-contacts thead {
  position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
 }
 .wp-block-table .km-table-contacts tbody { display: block; }
 .wp-block-table .km-table-contacts tr { display: block; border: 1px solid var(--wp--preset--color--line); padding: .75rem; }
 .wp-block-table .km-table-contacts tr + tr { border-top: 0; }
 .wp-block-table .km-table-contacts td { display: block; width: 100%; border: 0; padding: 0; }
 .wp-block-table .km-table-contacts td:first-child { font-weight: 600; margin-bottom: .25rem; }
 .wp-block-table .km-table-contacts a { max-width: 100%; overflow-wrap: anywhere; }
}

/* Global footer proportions; override WordPress block font-size presets only here. */
.km-footer { padding-block: clamp(2rem, 3.75vw, 3rem); line-height: 1.5; }
.km-footer-grid h2 { font-size: 24px !important; line-height: 1.2; margin-block: 0 .65rem; }
.km-footer-grid p { font-size: 16px !important; line-height: 1.5; margin-block: .1rem; }
.km-footer-note { padding-block-start: 1rem; margin-block-start: 1.5rem; align-items: baseline; }
.km-footer-note p { font-size: 14px !important; line-height: 1.5; margin: 0; }
@media (min-width: 1024px) {
 .km-footer a { min-height: 36px; }
}
/* Shared compact mobile footer: keep every link and its existing touch target. */
@media (max-width: 599px) {
 .km-footer { padding-block: 1.5rem; }
 .km-footer-grid { gap: 1rem; }
 .km-footer-grid h2 { margin-block-end: .35rem; }
 .km-footer-note { padding-block-start: .75rem; margin-block-start: 1rem; gap: .25rem; }
}

/* Student page: native editable blocks, scoped without changing other pages. */
body:is(.page-id-10, .page-id-11) main#sisu > .wp-block-post-content { margin-block-start: 1.25rem; }
body:is(.page-id-10, .page-id-11) .km-audience-intro { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.5rem; align-items: start; margin-block: 0 1.5rem; }
body:is(.page-id-10, .page-id-11) .km-audience-intro > * { margin: 0; min-width: 0; }
body:is(.page-id-10, .page-id-11) .km-audience-photo img { display: block; width: 100%; height: auto; border-radius: 12px; }
@media(max-width:700px) {
 body:is(.page-id-10, .page-id-11) .km-audience-intro { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
.km-student-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-block:1.25rem 1.5rem; }
.km-student-links .km-student-card { margin:0; }
.km-student-card a { display:flex; align-items:center; min-height:64px; height:100%; box-sizing:border-box; padding:.75rem 1rem; border:1px solid var(--wp--preset--color--gold); border-radius:4px; background:var(--wp--preset--color--surface); color:var(--wp--preset--color--primary); font-weight:600; text-decoration:none; line-height:1.35; }
.km-student-card a:hover { text-decoration:underline; }
.km-student-card a:focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:3px; }
.km-student-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.75rem; align-items:start; }
.km-student-sections .km-student-section { margin:0; padding-block:1rem; border-top:1px solid var(--wp--preset--color--gold); }
main .km-student-section h2.wp-block-heading { font-size:clamp(1.375rem,1.25rem + .4vw,1.625rem); margin:0 0 .65rem; scroll-margin-top:1rem; }
.km-student-section p, .km-student-section ul { margin-block:.6rem; }
.km-student-section a { display:inline-block; min-height:44px; box-sizing:border-box; padding-block:.5rem; }
body.page-id-10 .km-student-section h2 > a { display:inline; min-height:0; padding:0; color:inherit; text-decoration:none; }
body.page-id-10 .km-student-section h2 > a:hover { text-decoration:underline; text-underline-offset:.2em; }
.km-student-section ul { padding-left:1.25rem; }
@media(max-width:900px) { .km-student-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .km-student-sections { grid-template-columns:1fr; gap:0; } .km-student-card a { padding:.65rem; font-size:.95rem; } }
