/*
Theme Name: Kuressaare Muusikakool
Author: Kuressaare Muusikakool
Description: Hele eestikeelne plokkteema muusikakoolile. Tumesinine, kuldne ja soe valge; kohalikud fondid ja muudetavad plokimustrid.
Version: 1.2.4
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kuressaare-muusikakool
Tags: education, block-patterns, full-site-editing, wide-blocks, custom-colors, custom-logo, editor-style
*/

/* Värvid pärinevad saidiredaktori paletist; sisu on WordPressi plokkides. */
:where(.wp-site-blocks, .editor-styles-wrapper) { overflow-wrap: break-word; }
:where(.wp-site-blocks, .editor-styles-wrapper) *,
:where(.wp-site-blocks, .editor-styles-wrapper) *::before,
:where(.wp-site-blocks, .editor-styles-wrapper) *::after { box-sizing: border-box; }
:where(.wp-site-blocks, .editor-styles-wrapper) :where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 4px;
}
:where(.wp-site-blocks, .editor-styles-wrapper) a {
	text-underline-offset: .22em;
	text-decoration-thickness: .08em;
}
:where(.wp-site-blocks, .editor-styles-wrapper) :where(img, video) { max-width: 100%; height: auto; }
:where(.wp-site-blocks, .editor-styles-wrapper) :where(button, input, select, summary),
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-button__link {
	min-width: 44px;
	min-height: 44px;
}
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-button__link:hover { text-decoration: underline; }
:where(.wp-site-blocks, .editor-styles-wrapper) :where(pre, .wp-block-table) { overflow-x: auto; }
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-search__input { min-width: 0; }
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-post-title a { text-decoration: none; }
:where(.wp-site-blocks, .editor-styles-wrapper) .wp-block-post-title a:hover { text-decoration: underline; }
.km-section, .km-detail, .km-quick-card, .km-panel, [id^="uudis-"], [id^="sundmus-"] { scroll-margin-top: 1.5rem; }
.km-eyebrow { letter-spacing: .13em; text-transform: uppercase; font-weight: 600; }
.km-placeholder { line-height: 1.5; }
.km-gold-rule { border-top: 3px solid var(--wp--preset--color--gold); }
.km-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.km-topbar { font-size: var(--wp--preset--font-size--small); }
.km-topbar-inner { gap: .25rem 1.5rem; min-height: 46px; }
.km-topbar-inner p { margin-block: 0; }
.km-contact-items, .km-topbar-links { gap: .25rem 1.25rem; }
.km-topbar a, .km-footer a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.km-header-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0 2rem;
	margin-block-start: 0;
	padding-block-start: 1.5rem;
}
.km-identity { gap: 1rem; min-width: 0; padding-block-end: 1.5rem; }
.km-brand-copy { min-width: 0; }
.km-school-name { margin: 0; line-height: 1.15; }
.km-school-name a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; text-decoration: none; }
.km-school-name a:hover { text-decoration: underline; }
.km-school-subtitle { margin-block: .15rem 0; letter-spacing: .045em; }
.km-logo { flex: 0 0 76px; width: 76px; margin: 0; }
.km-logo img { display: block; width: 64px; height: 64px; margin-inline: auto; }
.km-logo figcaption { font-size: .6875rem; margin-block: .1rem 0; text-align: center; }
.km-identity:has(.km-official-logo) { min-height: 187px; }
.km-official-logo { flex: 0 0 96px; width: 96px !important; max-width: 100%; margin: 0; padding: 0; background: transparent; }
.km-official-logo a { display: block; }
.km-official-logo img { display: block; width: 100%; height: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 1100px) {
	.km-identity:has(.km-official-logo) { min-height: 130px; }
	.km-official-logo { flex-basis: 80px; width: 80px !important; }
}
@media (max-width: 599px) {
	.km-identity:has(.km-official-logo) { min-height: 107px; }
	.km-official-logo { flex-basis: 56px; width: 56px !important; }
}
.km-anniversary { align-self: center; margin: 0 0 1.5rem; padding: .35rem 1.2rem; border-inline: 1px solid var(--wp--preset--color--gold); text-align: center; }
.km-anniversary p { margin: 0; }
.km-anniversary-years strong { font-size: 2rem; font-weight: 400; }
.km-nav-row { grid-column: 1 / -1; margin: 0; border-top: 1px solid var(--wp--preset--color--line); padding-block: .35rem; }
.km-primary-nav { width: 100%; }
.km-primary-nav .wp-block-navigation__container { gap: .15rem 1.25rem; flex-grow: 1; }
@media (min-width: 901px) {
	.km-primary-nav .wp-block-navigation__responsive-container-content { flex-wrap: nowrap; gap: 1rem; }
}
.km-primary-nav .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; min-width: 44px; padding-block: .5rem; }
.km-primary-nav .wp-block-navigation-item__content:hover { text-decoration: underline; }
.km-primary-nav .wp-block-navigation__responsive-container-open,
.km-primary-nav .wp-block-navigation__responsive-container-close {
	align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
}
.km-menu-search { margin-inline-start: auto; }
.km-menu-search .wp-block-search__button { margin-inline-start: .25rem; padding: .625rem; }
.km-menu-search .wp-block-search__input { width: 11rem; max-width: 100%; }

/* Vaoshoitud noodijooned on dekoratsioon, ilma pildi või välise ressursita. */
.km-hero { position: relative; isolation: isolate; margin-block-start: 0; padding-block: clamp(2rem, 4vw, 4rem); border-bottom: 1px solid var(--wp--preset--color--line); }
.km-hero::before {
	content: "";
	position: absolute;
	inset: 18% 0 auto;
	height: 90px;
	z-index: -1;
	pointer-events: none;
	opacity: .13;
	background: repeating-linear-gradient(to bottom, transparent 0 17px, var(--wp--preset--color--gold) 17px 18px);
	transform: skewY(-5deg);
}
.km-hero-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: clamp(2rem, 5vw, 4.5rem); }
.km-hero-grid > * { min-width: 0; margin-block: 0; }
.km-hero-copy > * { margin-block-start: 1.25rem; margin-block-end: 0; }
.km-hero-copy > :first-child { margin-block-start: 0; }
.km-hero-heading { max-width: 9ch; text-wrap: balance; letter-spacing: -.035em; }
.km-hero-motto { line-height: 1.35; }
.km-hero-intro { max-width: 35ch; }
.km-hero-copy .wp-block-buttons { margin-block-start: 1.75rem; gap: .75rem; }
.km-hero-image img { display: block; width: 100%; aspect-ratio: 1120 / 740; object-fit: cover; border-radius: 3px; }
.km-hero-image figcaption { margin-block: .75rem 0; }

/* Üks sisukomplekt. Väike kohalik skript ühtlustab ka fookusjärjestuse. */
.km-home-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-areas: "quick quick quick" "events news gallery";
	gap: 2rem;
	margin-block-start: 2rem;
	margin-block-end: clamp(3rem, 5vw, 5rem);
}
.km-home-grid > .wp-block-group { min-width: 0; margin-block: 0; }
.km-quick-links { grid-area: quick; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.km-quick-links > .km-quick-card { padding: 1.35rem clamp(1rem, 2vw, 1.75rem); margin: 0; min-width: 0; }
.km-quick-card > * { margin-block: 0; }
.km-quick-card h2 { margin-block: .4rem .75rem; }
.km-link-list { list-style: none; padding: 0; }
.km-link-list li { margin: 0; }
.km-link-list a { display: flex; align-items: center; min-height: 44px; min-width: 44px; padding-block: .35rem; font-size: var(--wp--preset--font-size--small); text-decoration: none; }
.km-link-list a:hover { text-decoration: underline; }
.km-events { grid-area: events; }
.km-news { grid-area: news; }
.km-gallery { grid-area: gallery; }
.km-panel { padding: clamp(1.25rem, 2vw, 1.75rem); border: 1px solid var(--wp--preset--color--line); }
.km-panel > h2 { margin-block: 0 .6rem; font-size: var(--wp--preset--font-size--panel-title); }
.km-panel > .km-placeholder { margin-block: 0 1.25rem; }
.km-panel-link { margin-block: 1rem 0; }
.km-panel-link a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-weight: 600; }
.km-event { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 1rem; margin: 0; padding-block: 1rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.km-date-tile { align-self: start; text-align: center; border: 1px solid var(--wp--preset--color--line); border-top: 2px solid var(--wp--preset--color--gold); padding-block: .35rem; }
.km-date-tile p { margin: 0; line-height: 1.2; }
.km-date-month { letter-spacing: .06em; }
.km-event-copy, .km-news-copy { margin: 0; min-width: 0; }
.km-event-copy h3, .km-news-copy h3 { margin: 0; line-height: 1.35; }
.km-event-copy h3 a, .km-news-copy h3 a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; text-decoration: none; }
.km-event-copy h3 a:hover, .km-news-copy h3 a:hover { text-decoration: underline; }
.km-event-copy p { margin-block: .25rem 0; }
.km-news-item { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 1rem; margin: 0; padding-block: 1rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.km-news-thumb { margin: 0; }
.km-news-thumb img { display: block; width: 100%; height: 80px; object-fit: cover; }
.km-news-copy p { margin-block: 0 .25rem; }
.km-collage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.km-collage figure { margin: 0; }
.km-collage img { display: block; width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.km-collage-main { grid-column: 1 / -1; }
.km-collage-main img { aspect-ratio: 1.9; }
.km-gallery > .wp-block-buttons { margin-block-start: 1.5rem; }
.km-information-section { padding-block: 2.5rem; border-top: 1px solid var(--wp--preset--color--line); }
.km-information-section > h2 { max-width: 32ch; margin-block-start: 0; }
.km-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem 2rem; }
.km-detail { min-width: 0; margin-block: 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.km-detail summary { padding: .85rem .5rem; cursor: pointer; font-weight: 600; }
.km-detail[open] { padding-bottom: 1rem; }
.km-detail[open] > :not(summary) { margin-inline: .5rem; }
.km-detail:target { outline: 2px solid var(--wp--preset--color--gold-ink); outline-offset: 4px; }
.km-more-list { display: grid; gap: .5rem; }
.km-gallery-expanded { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.km-gallery-expanded figure { margin: 0; }
.km-gallery-expanded img { display: block; width: 100%; aspect-ratio: 1.5; object-fit: cover; }
/* Approved school photos: retain the full frame inside existing image areas. */
.km-collage .km-approved-photo img,
.km-gallery-expanded .km-approved-photo img,
.km-news-thumb img,
.km-news-archive .wp-block-post-featured-image img { object-fit: contain !important; object-position: center; }
.km-footer { margin-block-start: 0; padding-block: clamp(2.5rem, 5vw, 4rem); }
.km-footer-grid { display: grid; grid-template-columns: 1.15fr 1fr .65fr; gap: 2rem; }
.km-footer-grid > * { min-width: 0; margin: 0; }
.km-footer-grid h2 { margin-block: 0 1rem; }
.km-footer-grid p { margin-block: .15rem; }
.km-footer-note { border-top: 1px solid currentColor; padding-block-start: 1.5rem; margin-block-start: 2rem; gap: .5rem 2rem; }
.km-footer-note p { margin: 0; }
.km-card { height: 100%; border: 1px solid var(--wp--preset--color--line); }

/* WordPressi lehtede, postituste ja sündmuste pärissisu. */
.km-content-page { padding-block: var(--wp--preset--spacing--60); }
.km-notice { padding: 1rem 1.25rem; border-inline-start: 3px solid var(--wp--preset--color--gold); }
.km-notice p { margin: 0; }
.km-source-note { margin-block: 2rem; border-top: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--small); }
.km-source-note summary { cursor: pointer; min-height: 44px; padding-block: .75rem; }
.km-source-note a, .km-content-page a { overflow-wrap: anywhere; }
.km-events-list .km-date-tile { background: var(--wp--preset--color--base); }
.km-events-list .km-date-month { color: var(--wp--preset--color--gold-ink); }
.km-event-details { padding: 1.25rem; background: var(--wp--preset--color--tint); }
.km-event-details dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .5rem 1.5rem; margin: 0; }
.km-event-details dt { font-weight: 600; }
.km-event-details dd { margin: 0; }
.km-status-note { font-weight: 600; }
.km-news-query .wp-block-post-template { margin: 0; padding: 0; }
.km-news-query .wp-block-post { margin: 0; }
.km-news-query .wp-block-post-title a { display: flex; align-items: center; min-height: 44px; }
.km-news-query .wp-block-post-date { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--small); }
.km-news-query .km-news-thumb { margin: 0; }
.km-news-archive .km-card { padding: 1.25rem; background: var(--wp--preset--color--surface); }
.km-news-archive .wp-block-post-featured-image { margin: 0 0 1.25rem; }
.km-news-archive .wp-block-post-featured-image img { aspect-ratio: 1.6; width: 100%; height: auto; object-fit: cover; }
.wp-block-table td, .wp-block-table th { padding: .75rem; vertical-align: top; overflow-wrap: anywhere; }
@media (max-width: 899px) {
	.km-news-archive .wp-block-post-template { grid-template-columns: 1fr; }
	.wp-block-post-content :where(li, td) > a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
}

/* Hamburgermenüü enne, kui pikk eestikeelne menüü kitsaks jääb. */
@media (max-width: 1100px) {
	.km-header-inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-block: .8rem; }
	.km-identity { padding-block: 0; }
	.km-anniversary { display: none; }
	.km-nav-row { grid-column: 2; grid-row: 1; border: 0; padding: 0; }
	.km-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.km-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.km-primary-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
	.km-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-block-start: 3rem; align-items: stretch; }
	.km-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch; width: 100%; gap: .25rem; }
	.km-menu-search { margin-inline: 0; }
}
@media (max-width: 899px) {
	.km-topbar { display: none; } /* Samad kontaktid jäävad jalusesse. */
	.km-hero-grid { grid-template-columns: 1fr; gap: 1.75rem; }
	.km-hero-copy { max-width: 42rem; }
	.km-hero-heading { max-width: 13ch; }
	.km-hero-image { display: none; } /* Mobiilis järgnevad tekstile ja nuppudele kohe sündmused. */
	.km-home-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "events" "quick" "news" "gallery"; gap: 1.5rem; }
	.km-quick-links { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.km-quick-card { padding: 1.25rem 1.5rem; }
	.km-panel { padding: 1.5rem; }
	.km-footer-grid { grid-template-columns: 1fr 1fr; }
	.km-footer-brand { grid-column: 1 / -1; }
	.km-card { height: auto; }
}
@media (max-width: 599px) {
	.km-identity { gap: .5rem; }
	.km-logo { flex-basis: 48px; width: 48px; }
	.km-logo img { width: 44px; height: 44px; }
	.km-logo figcaption { font-size: .6rem; }
	.km-school-subtitle { font-size: .75rem; letter-spacing: 0; }
	.km-header-inner { gap: .5rem; }
	.km-hero { padding-block: 2rem; }
	.km-hero-copy .wp-block-buttons { align-items: stretch; }
	.km-hero-copy .wp-block-button, .km-hero-copy .wp-block-button__link { width: 100%; }
	.km-detail-grid, .km-gallery-expanded, .km-footer-grid { grid-template-columns: minmax(0, 1fr); }
	.km-footer-brand { grid-column: auto; }
	.km-panel { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	:where(.wp-site-blocks, .editor-styles-wrapper) { scroll-behavior: auto; }
}
@media print {
	.km-topbar, .km-nav-row { display: none; }
	.km-home-grid { display: block; }
	.km-panel, .km-quick-links { margin-block: 1rem; break-inside: avoid; }
}
