/*
Theme Name: KKS Astra Child
Theme URI: https://kirschkernspucker-heiningen.de/
Description: Schlankes, barrierearmes Vereinstheme auf Basis von Astra.
Author: Narrenzunft Kirschkern-Spucker Heiningen e.V.
Template: astra
Version: 1.0.0
Text Domain: kks
*/

:root {
  --kks-orange: #c94700;
  --kks-orange-dark: #963500;
  --kks-ink: #171717;
  --kks-muted: #5b5b57;
  --kks-paper: #f7f2e9;
  --kks-white: #ffffff;
  --kks-line: #d9d2c7;
  --kks-focus: #0067c5;
  --kks-max: 1200px;
  --kks-prose: 760px;
  --kks-space-1: .5rem;
  --kks-space-2: 1rem;
  --kks-space-3: 1.5rem;
  --kks-space-4: 2rem;
  --kks-space-6: 3rem;
  --kks-space-8: 4rem;
  --kks-space-12: 6rem;
}

html { scroll-behavior: smooth; }
body, body .site-content, body .entry-content {
  color: var(--kks-ink);
  background: var(--kks-paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 1.0625rem;
  line-height: 1.65;
  overflow-x: hidden;
}

body button, body input, body select, body textarea { font-family: inherit !important; }
a { color: var(--kks-orange-dark); text-underline-offset: .18em; }
a:hover { color: var(--kks-orange); }
img { display: block; max-width: 100%; height: auto; }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--kks-focus) !important;
  outline-offset: 3px;
}

.kks-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(255,255,255,.18);
  background: rgba(23,23,23,.99);
}
.kks-site-header__inner {
  width: min(calc(100% - 3rem), var(--kks-max));
  min-height: 84px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.kks-site-logo { display: block; flex: 0 0 auto; }
.kks-site-logo img { width: auto; max-width: 205px; max-height: 68px; }
.kks-primary-nav { margin-left: auto; }
.kks-primary-nav__list { display: flex; align-items: center; gap: clamp(.7rem, 1.6vw, 1.5rem); margin: 0; padding: 0; list-style: none; }
.kks-primary-nav__list .menu-item { margin: 0; }
.kks-primary-nav__list .menu-item > a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #fff;
  font-size: .91rem;
  font-weight: 750;
  text-decoration: none;
}
.kks-primary-nav__list .menu-item > a:hover,
.kks-primary-nav__list .current-menu-item > a { color: #ff8a3d; }
.kks-primary-nav__list .menu-item:last-child > a { min-height: 46px; padding-inline: 1rem; background: var(--kks-orange); color: #fff; }
.kks-primary-nav__list .menu-item:last-child > a:hover { background: var(--kks-orange-dark); }
.kks-menu-toggle { display: none; min-width: 52px; min-height: 46px; align-items: center; justify-content: center; gap: .6rem; padding: .6rem .75rem; border: 2px solid #fff; border-radius: 2px; background: transparent; color: #fff; font-weight: 800; }
.kks-menu-toggle__icon, .kks-menu-toggle__icon::before, .kks-menu-toggle__icon::after { display: block; width: 20px; height: 2px; background: currentColor; }
.kks-menu-toggle__icon { position: relative; }
.kks-menu-toggle__icon::before, .kks-menu-toggle__icon::after { content: ""; position: absolute; left: 0; }
.kks-menu-toggle__icon::before { top: -6px; }
.kks-menu-toggle__icon::after { top: 6px; }

body .site-content, body .site-content > .ast-container { margin: 0 !important; padding: 0 !important; }
body .site-content > .ast-container { max-width: none !important; }
body #primary { margin-top: 0 !important; margin-bottom: 0 !important; }
.page .entry-header { display: none; }
.page .entry-content, .page .site-main, .blog .site-main { margin: 0; }
.entry-content > *:not(.kks-full), .kks-shell {
  width: min(calc(100% - 3rem), var(--kks-max));
  margin-inline: auto;
}
.entry-content > .kks-prose, .kks-prose { max-width: var(--kks-prose); }
.entry-content p { margin-bottom: 1.25rem; }

body h1, body h2, body h3, body h4 {
  color: var(--kks-ink) !important;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", "Segoe UI", sans-serif !important;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.02em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.65rem, 6vw, 5.4rem); }
h2 { font-size: clamp(2rem, 4vw, 3.6rem); margin: 0 0 1.25rem; }
h3 { font-size: clamp(1.35rem, 2.4vw, 2rem); margin: 0 0 .75rem; }

.kks-eyebrow {
  display: block;
  margin-bottom: .75rem;
  color: var(--kks-orange-dark);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.kks-lead { max-width: 760px; color: var(--kks-muted); font-size: clamp(1.15rem, 2vw, 1.4rem); }
.kks-section { padding-block: var(--kks-space-12); }
.kks-section--white { background: var(--kks-white); }
.kks-section--ink { background: var(--kks-ink); color: #fff; }
body .kks-section--ink h2, body .kks-section--ink h3, .kks-section--ink a { color: #fff !important; }
.kks-section--ink .kks-eyebrow { color: #ff8a3d; }

.kks-hero {
  min-height: min(760px, calc(100vh - 80px));
  display: grid;
  align-items: end;
  position: relative;
  background: #111;
  isolation: isolate;
  overflow: hidden;
}
.kks-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.15) 100%),
              linear-gradient(0deg, rgba(0,0,0,.75), transparent 55%);
}
.kks-hero__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.kks-hero__content { width: min(calc(100% - 3rem), var(--kks-max)); margin-inline: auto; padding: 7rem 0 5.5rem; }
body .kks-hero h1 { max-width: 900px; margin: 0 0 1.25rem; color: #fff !important; }
.kks-hero .kks-eyebrow { color: #ff8a3d; }
.kks-hero p { max-width: 660px; margin: 0 0 2rem; color: #fff; font-size: clamp(1.1rem, 2vw, 1.35rem); }
.kks-actions { display: flex; flex-wrap: wrap; gap: .85rem; }
.kks-button, .entry-content .kks-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.25rem;
  border: 2px solid var(--kks-orange);
  border-radius: 2px;
  background: var(--kks-orange);
  color: #fff;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}
.kks-button:hover { border-color: var(--kks-orange-dark); background: var(--kks-orange-dark); color: #fff; }
.kks-button--ghost, .entry-content .kks-button--ghost { border-color: currentColor; background: transparent; color: #fff; }
.kks-button--ghost:hover { border-color: #fff; background: #fff; color: var(--kks-ink); }

.kks-page-hero { padding: 5.5rem 0 4rem; border-bottom: 1px solid var(--kks-line); background: var(--kks-white); }
.kks-page-hero h1 { max-width: 950px; margin: 0 0 1rem; }
.kks-page-hero p { max-width: 760px; margin: 0; color: var(--kks-muted); font-size: 1.2rem; }

.kks-grid { display: grid; gap: var(--kks-space-3); }
.kks-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kks-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kks-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kks-card { border-top: 4px solid var(--kks-orange); background: var(--kks-white); padding: var(--kks-space-4); }
.kks-card p:last-child { margin-bottom: 0; }
.kks-card a[href^="mailto:"] { overflow-wrap: anywhere; }

/* Complianz consent layer: brand-aligned, keyboard-visible and mobile-safe. */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
  width: min(760px, calc(100% - 2rem)) !important;
  max-width: 760px !important;
  max-height: calc(100dvh - 2rem) !important;
  left: 50% !important;
  right: auto !important;
  bottom: 1rem !important;
  transform: translateX(-50%) !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-rows: auto !important;
  padding: 1.5rem !important;
  border: 1px solid var(--kks-ink) !important;
  border-top: 4px solid var(--kks-orange) !important;
  border-radius: 2px !important;
  background: var(--kks-paper) !important;
  color: var(--kks-ink) !important;
  box-shadow: 0 -10px 36px rgba(23, 23, 23, .2) !important;
  font-family: inherit !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show {
  opacity: 1 !important;
}

#cmplz-cookiebanner-container .cmplz-header,
#cmplz-cookiebanner-container .cmplz-title,
#cmplz-cookiebanner-container .cmplz-divider,
#cmplz-cookiebanner-container .cmplz-body,
#cmplz-cookiebanner-container .cmplz-buttons,
#cmplz-cookiebanner-container .cmplz-documents,
#cmplz-cookiebanner-container .cmplz-information {
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  width: 100% !important;
  min-width: 0 !important;
}

#cmplz-cookiebanner-container .cmplz-header,
#cmplz-cookiebanner-container .cmplz-title {
  display: block !important;
}

#cmplz-cookiebanner-container .cmplz-body {
  display: block !important;
  overflow: visible !important;
}

#cmplz-cookiebanner-container .cmplz-title {
  color: var(--kks-ink) !important;
  font-size: clamp(1.25rem, 4vw, 1.65rem) !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
  text-wrap: balance;
}

#cmplz-cookiebanner-container .cmplz-message {
  max-width: 68ch;
  color: var(--kks-ink) !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
}

#cmplz-cookiebanner-container .cmplz-message a {
  color: var(--kks-orange-dark) !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
}

#cmplz-cookiebanner-container .cmplz-buttons {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .75rem !important;
}

#cmplz-cookiebanner-container .cmplz-btn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  padding: .75rem 1rem !important;
  border-width: 2px !important;
  border-radius: 2px !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  transition: transform .2s ease, background-color .2s ease, color .2s ease !important;
}

#cmplz-cookiebanner-container .cmplz-accept {
  border-color: var(--kks-orange-dark) !important;
  background: var(--kks-orange-dark) !important;
  color: var(--kks-white) !important;
}

#cmplz-cookiebanner-container .cmplz-deny {
  border-color: var(--kks-ink) !important;
  background: var(--kks-white) !important;
  color: var(--kks-ink) !important;
}

#cmplz-cookiebanner-container .cmplz-view-preferences,
#cmplz-cookiebanner-container .cmplz-save-preferences {
  border-color: var(--kks-ink) !important;
  background: transparent !important;
  color: var(--kks-ink) !important;
}

#cmplz-cookiebanner-container .cmplz-btn:hover {
  transform: translateY(-1px);
}

#cmplz-cookiebanner-container .cmplz-btn:active {
  transform: translateY(1px);
}

#cmplz-cookiebanner-container .cmplz-btn:focus-visible,
#cmplz-cookiebanner-container .cmplz-category-toggle:focus-visible,
#cmplz-manage-consent .cmplz-manage-consent:focus-visible {
  outline: 3px solid var(--kks-focus) !important;
  outline-offset: 3px !important;
}

#cmplz-cookiebanner-container .cmplz-category {
  border-color: var(--kks-line) !important;
  background: var(--kks-white) !important;
}

#cmplz-cookiebanner-container .cmplz-category-title {
  color: var(--kks-ink) !important;
  font-weight: 800 !important;
}

#cmplz-manage-consent .cmplz-manage-consent {
  min-height: 44px !important;
  padding: .65rem .9rem !important;
  border: 2px solid var(--kks-orange) !important;
  border-radius: 2px 2px 0 0 !important;
  background: var(--kks-ink) !important;
  color: var(--kks-white) !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}

@media (max-width: 720px) {
  #cmplz-cookiebanner-container .cmplz-cookiebanner {
    width: calc(100% - 1.5rem) !important;
    max-height: calc(100dvh - 1.5rem) !important;
    bottom: .75rem !important;
    padding: 1.25rem !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  #cmplz-cookiebanner-container .cmplz-buttons {
    grid-template-columns: 1fr !important;
  }
}
.kks-card--dark { background: #232323; color: #fff; }
.kks-card--dark h3 { color: #fff; }
.kks-card__image { width: 100%; aspect-ratio: 4 / 3; margin-bottom: 1.4rem; object-fit: cover; }
.kks-event-list { display: grid; gap: var(--kks-space-3); }
.kks-event-card h3, .kks-album-card h3 { margin-bottom: .75rem; }
.kks-gallery-albums { margin-top: var(--kks-space-8); }
.kks-detail-image { width: 100%; max-height: 720px; margin-bottom: var(--kks-space-4); object-fit: contain; background: var(--kks-white); }
.kks-prose .wp-block-gallery { max-width: none; }

.kks-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.kks-split__media { width: 100%; max-height: 650px; object-fit: cover; }
.kks-figure { display: grid; grid-template-columns: minmax(180px,.72fr) 1fr; gap: 1.5rem; align-items: center; min-height: 460px; padding: 2rem; background: #fff; }
.kks-figure img { width: 100%; max-height: 440px; object-fit: contain; }

.kks-figures {
  position: relative;
  overflow: hidden;
  background: #e8dfd1;
}
.kks-figures::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image: repeating-linear-gradient(115deg, transparent 0 54px, rgba(23,23,23,.045) 54px 55px);
}
.kks-figures .kks-shell { position: relative; }
.kks-figures__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .68fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}
.kks-figures__intro h2 { margin-bottom: 0; }
.kks-figures__intro > p {
  max-width: 570px;
  margin: 0 0 .35rem;
  color: #49433b;
  font-size: clamp(1.05rem, 1.7vw, 1.25rem);
}
.kks-figures__stories { display: grid; gap: 1.5rem; }
.kks-figure-story {
  display: grid;
  grid-template-columns: minmax(300px, .88fr) minmax(0, 1.12fr);
  min-height: 470px;
  overflow: hidden;
  background: var(--kks-ink);
  color: #e9e4db;
}
.kks-figure-story--reverse { grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); }
.kks-figure-story--reverse .kks-figure-story__visual { order: 2; }
.kks-figure-story__visual {
  position: relative;
  display: grid;
  min-height: 470px;
  place-items: end center;
  overflow: hidden;
  isolation: isolate;
  background: #d6cbbb;
}
.kks-figure-story__visual::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(78%, 390px);
  aspect-ratio: 1;
  border: 1px solid rgba(150,53,0,.35);
  border-radius: 50%;
  background: rgba(201,71,0,.09);
}
.kks-figure-story__visual > span {
  position: absolute;
  top: 1.2rem;
  left: 1.5rem;
  color: rgba(23,23,23,.28);
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size: clamp(3.5rem, 7vw, 6rem);
  font-weight: 800;
  line-height: 1;
}
.kks-figure-story__visual img {
  width: 100%;
  height: 440px;
  padding: 1.6rem 2rem 0;
  object-fit: contain;
  object-position: center bottom;
  mix-blend-mode: multiply;
}
.kks-figure-story__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 5vw, 5rem);
}
body .kks-figure-story__copy h3 {
  max-width: 620px;
  margin-bottom: 1.35rem;
  color: #fff !important;
  font-size: clamp(2.4rem, 5vw, 4.8rem);
}
.kks-figure-story__copy > p:not(.kks-figure-story__role):not(.kks-figure-story__details) {
  max-width: 590px;
  color: #d5d0c8;
  font-size: clamp(1.05rem, 1.6vw, 1.22rem);
}
.kks-figure-story__role {
  margin-bottom: .85rem;
  color: #ff9a58;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.kks-figure-story__details {
  margin: .75rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid #4b4b48;
  color: #fff;
  font-size: .86rem;
  font-weight: 750;
  letter-spacing: .04em;
}
.kks-figures__link { margin: 2rem 0 0; text-align: right; }
.kks-figures__link a { color: var(--kks-orange-dark); font-weight: 800; }
.kks-figures__link a:hover { color: var(--kks-orange); }

.kks-notice { border-left: 6px solid var(--kks-orange); background: #fff; padding: clamp(1.5rem, 4vw, 3rem); }
.kks-notice > :last-child { margin-bottom: 0; }
.kks-meta { color: var(--kks-muted); font-size: .93rem; font-weight: 700; }

.kks-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.kks-gallery figure { margin: 0; background: #fff; }
.kks-gallery a { display: block; }
.kks-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kks-gallery figcaption { padding: .8rem 1rem 1rem; color: var(--kks-muted); font-size: .93rem; }

.kks-sponsors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.kks-sponsor { display: grid; min-height: 190px; place-items: center; padding: 1.25rem; border: 1px solid var(--kks-line); background: #fff; }
.kks-sponsor img { max-width: 100%; max-height: 120px; object-fit: contain; }

.kks-downloads { display: grid; gap: 1rem; }
.kks-download { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1.5rem; border: 1px solid var(--kks-line); background: #fff; }
.kks-download h3, .kks-download p { margin: 0; }

.wpcf7 { max-width: 760px; }
.wpcf7 label { display: block; color: var(--kks-ink); font-weight: 700; }
.wpcf7 input:not([type="submit"]), .wpcf7 textarea, .wpcf7 select {
  width: 100%; min-height: 48px; margin-top: .4rem; padding: .75rem .85rem; border: 2px solid #777; border-radius: 2px; background: #fff; color: var(--kks-ink);
}
.wpcf7 textarea { min-height: 180px; }
.wpcf7 input[type="submit"] { min-height: 48px; padding: .8rem 1.35rem; border: 2px solid var(--kks-orange); border-radius: 2px; background: var(--kks-orange); color: #fff; font-weight: 800; }
.wpcf7 input[type="submit"]:hover { border-color: var(--kks-orange-dark); background: var(--kks-orange-dark); }

.kks-news { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.5rem; }
.kks-news article { display: flex; flex-direction: column; border-top: 4px solid var(--kks-orange); background: #fff; }
.kks-news article > a img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.kks-news__body { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.kks-news h2 { margin: .5rem 0 .8rem; font-size: 1.7rem; }
.kks-news .kks-button { margin-top: auto; align-self: flex-start; }

.kks-site-footer { background: #0d0d0d; color: #d7d7d2; }
.kks-site-footer__grid { width: min(calc(100% - 3rem), var(--kks-max)); margin-inline: auto; padding: 4.5rem 0 3rem; display: grid; grid-template-columns: 1.35fr 1fr .7fr; gap: 3rem; }
body .kks-site-footer h2, body .kks-site-footer h3 { color: #fff !important; }
.kks-site-footer h2 { max-width: 520px; font-size: clamp(1.55rem, 2.5vw, 2.3rem); }
.kks-site-footer h3 { font-size: 1.25rem; }
.kks-site-footer p { margin-bottom: 0; }
.kks-site-footer a { color: #fff; }
.kks-site-footer a:hover { color: #ff8a3d; }
.kks-footer-menu { margin: 0; padding: 0; list-style: none; }
.kks-footer-menu li { margin-bottom: .55rem; }
.kks-site-footer__bottom { border-top: 1px solid #363636; }
.kks-site-footer__bottom p { width: min(calc(100% - 3rem), var(--kks-max)); margin: 0 auto; padding: 1.15rem 0; color: #aaa; font-size: .9rem; }

@media (max-width: 960px) {
  .kks-site-header__inner { min-height: 76px; }
  .kks-site-logo img { max-width: 180px; max-height: 58px; }
  .kks-menu-toggle { display: inline-flex; }
  .kks-primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - 76px); overflow-y: auto; border-top: 1px solid #444; background: #171717; }
  .kks-primary-nav[data-open="true"] { display: block; }
  .kks-primary-nav__list { width: min(calc(100% - 2rem), var(--kks-max)); margin-inline: auto; padding-block: .75rem 1rem; flex-direction: column; align-items: stretch; gap: 0; }
  .kks-primary-nav__list .menu-item > a { width: 100%; padding: .7rem .25rem; border-bottom: 1px solid #363636; }
  .kks-primary-nav__list .menu-item:last-child > a { margin-top: .75rem; justify-content: center; border: 0; }
  .kks-grid--3, .kks-grid--4, .kks-sponsors, .kks-news { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kks-split { grid-template-columns: 1fr; }
  .kks-figure { grid-template-columns: 1fr; }
  .kks-figure img { height: 340px; }
  .kks-figures__intro { grid-template-columns: 1fr; gap: 1.25rem; }
  .kks-figure-story, .kks-figure-story--reverse { grid-template-columns: minmax(250px, .85fr) minmax(0, 1.15fr); }
  .kks-figure-story--reverse .kks-figure-story__visual { order: 0; }
  .kks-figure-story__copy { padding: clamp(2rem, 4vw, 3rem); }
  .kks-gallery { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .kks-site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  :root { --kks-space-12: 4.5rem; }
  body { font-size: 1rem; }
  .entry-content > *:not(.kks-full), .kks-shell, .kks-hero__content { width: min(calc(100% - 2rem), var(--kks-max)); }
  .kks-hero { min-height: 650px; }
  .kks-hero__content { padding: 6rem 0 3.5rem; }
  .kks-grid--2, .kks-grid--3, .kks-grid--4, .kks-gallery, .kks-sponsors, .kks-news { grid-template-columns: 1fr; }
  .kks-figure-story, .kks-figure-story--reverse { grid-template-columns: 1fr; min-height: 0; }
  .kks-figure-story__visual { min-height: 390px; }
  .kks-figure-story__visual img { height: 370px; padding: 1.25rem 1.25rem 0; }
  .kks-figure-story__copy { padding: 2rem 1.5rem 2.4rem; }
  .kks-figures__link { text-align: left; }
  .kks-download { grid-template-columns: 1fr; }
  .kks-card { padding: 1.5rem; }
  .kks-page-hero { padding: 4rem 0 3rem; }
  .kks-site-header__inner { width: min(calc(100% - 2rem), var(--kks-max)); gap: .75rem; }
  .kks-site-logo img { max-width: 160px; max-height: 54px; }
  .kks-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .kks-site-footer__grid { width: min(calc(100% - 2rem), var(--kks-max)); grid-template-columns: 1fr; gap: 2rem; padding: 3.5rem 0 2.5rem; }
  .kks-site-footer__bottom p { width: min(calc(100% - 2rem), var(--kks-max)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
