:root {
  --kbe-bg: #f7f3e9;
  --kbe-surface: #fffdf7;
  --kbe-text: #173d2d;
  --kbe-muted: #607067;
  --kbe-primary: #174d35;
  --kbe-secondary: #d9ee73;
  --kbe-accent: #dd7959;
  --kbe-line: rgba(23, 61, 45, .16);
  --kbe-dark: #112b20;
  --kbe-on-dark: #fff;
  --kbe-on-primary: #fff;
  --kbe-radius: 24px;
  --kbe-shadow: 0 20px 55px rgba(30, 50, 39, .12);
  --kbe-wide: 1180px;
  --kbe-content: 880px;
  --kbe-reading: 720px;
  --kbe-font: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --kbe-display: var(--kbe-font);
}

.kc-theme,
.kc-theme .kbe-block,
.kc-theme .kbe-pattern {
  --kbe-bg: var(--kc-bg);
  --kbe-surface: var(--kc-surface);
  --kbe-text: var(--kc-text);
  --kbe-muted: var(--kc-muted);
  --kbe-primary: var(--kc-primary);
  --kbe-secondary: var(--kc-secondary);
  --kbe-accent: var(--kc-accent);
  --kbe-line: var(--kc-line);
  --kbe-dark: var(--kc-dark);
  --kbe-on-dark: #fff;
  --kbe-on-primary: #fff;
  --kbe-radius: var(--kc-radius);
  --kbe-shadow: var(--kc-shadow);
  --kbe-wide: var(--kc-shell, 1180px);
  --kbe-font: var(--kc-font);
  --kbe-display: var(--kc-display);
}

.ml-six-theme,
.ml-six-theme .kbe-block,
.ml-six-theme .kbe-pattern {
  --kbe-bg: var(--ml-paper);
  --kbe-surface: var(--ml-surface);
  --kbe-text: var(--ml-ink);
  --kbe-muted: var(--ml-muted);
  --kbe-primary: var(--ml-brand);
  --kbe-secondary: var(--ml-brand-2);
  --kbe-accent: var(--ml-accent);
  --kbe-line: var(--ml-line);
  --kbe-dark: var(--ml-ink);
  --kbe-on-dark: var(--ml-surface);
  --kbe-on-primary: #fff;
  --kbe-radius: var(--ml-radius);
  --kbe-shadow: var(--ml-shadow);
  --kbe-wide: var(--ml-content, 1180px);
  --kbe-font: var(--ml-sans);
  --kbe-display: var(--ml-display);
}

.ml-design-night,
.ml-design-night .kbe-block,
.ml-design-night .kbe-pattern {
  --kbe-dark: #07120d;
  --kbe-on-dark: #edf8f1;
  --kbe-on-primary: #07120d;
}

.ml-design-poster { --kbe-on-primary: #111; }
.kc-design-soil { --kbe-on-primary: #18231b; }

.kbe-block,
.kbe-block *,
.kbe-pattern,
.kbe-pattern * { box-sizing: border-box; }

.kbe-block {
  min-width: 0;
  color: var(--kbe-text);
  font-family: var(--kbe-font);
}

.kbe-space {
  padding-top: var(--kbe-pt-d, 0);
  padding-right: var(--kbe-pr-d, 0);
  padding-bottom: var(--kbe-pb-d, 0);
  padding-left: var(--kbe-pl-d, 0);
  margin-top: var(--kbe-mt-d, 0);
  margin-bottom: var(--kbe-mb-d, 0);
}

.kbe-width-full,
.kbe-width-wide,
.kbe-width-content,
.kbe-width-reading {
  position: relative;
  left: 50%;
  max-width: none !important;
  transform: translateX(-50%);
}

.kbe-width-full { width: 100vw; }
.kbe-width-wide { width: min(calc(100vw - 40px), var(--kbe-wide)); }
.kbe-width-content { width: min(calc(100vw - 40px), var(--kbe-content)); }
.kbe-width-reading { width: min(calc(100vw - 40px), var(--kbe-reading)); }

.kbe-section__inner {
  width: 100%;
  max-width: var(--kbe-wide);
  margin-inline: auto;
}

.kbe-width-full.kbe-section > .kbe-section__inner {
  width: min(calc(100% - 40px), var(--kbe-wide));
}

.kbe-surface-transparent { background: transparent; }
.kbe-surface-surface { background: var(--kbe-surface); }
.kbe-surface-soft { background: color-mix(in srgb, var(--kbe-secondary) 22%, var(--kbe-bg)); }
.kbe-surface-dark { background: var(--kbe-dark); color: var(--kbe-on-dark); }
.kbe-surface-dark h1,
.kbe-surface-dark h2,
.kbe-surface-dark h3,
.kbe-surface-dark h4,
.kbe-surface-dark p,
.kbe-surface-dark li { color: inherit; }

.kbe-panel {
  overflow: hidden;
  border: 1px solid transparent;
  background: var(--kbe-surface);
}

.kbe-panel-surface { border-color: var(--kbe-line); box-shadow: var(--kbe-shadow); }
.kbe-panel-soft { background: color-mix(in srgb, var(--kbe-secondary) 20%, var(--kbe-surface)); }
.kbe-panel-brand { background: var(--kbe-primary); color: var(--kbe-on-primary); }
.kbe-panel-dark { background: var(--kbe-dark); color: var(--kbe-on-dark); }
.kbe-panel-outline { border-color: var(--kbe-line); background: transparent; }
.kbe-panel-brand h1, .kbe-panel-brand h2, .kbe-panel-brand h3, .kbe-panel-brand h4,
.kbe-panel-brand p, .kbe-panel-brand li,
.kbe-panel-dark h1, .kbe-panel-dark h2, .kbe-panel-dark h3, .kbe-panel-dark h4,
.kbe-panel-dark p, .kbe-panel-dark li { color: inherit; }
.kbe-panel-brand .kbe-button-primary,
.kbe-panel-dark .kbe-button-primary { background: var(--kbe-secondary); color: var(--kbe-dark); }
.kbe-radius-theme { border-radius: var(--kbe-radius); }
.kbe-radius-small { border-radius: 10px; }
.kbe-radius-large { border-radius: 42px; }
.kbe-radius-none { border-radius: 0; }

.kbe-text > :first-child { margin-top: 0; }
.kbe-text > :last-child { margin-bottom: 0; }
.kbe-text p,
.kbe-text li { line-height: 1.7; }
.kbe-density-compact p, .kbe-density-compact li { line-height: 1.48; }
.kbe-density-relaxed p, .kbe-density-relaxed li { line-height: 1.88; }
.kbe-align-d-left { text-align: left; }
.kbe-align-d-center { text-align: center; }
.kbe-align-d-right { text-align: right; }
.kbe-align-d-justify { text-align: justify; text-justify: inter-word; }
.kbe-hyphenate,
.kbe-hyphenate p,
.kbe-hyphenate li { overflow-wrap: break-word; hyphens: auto; }

.kbe-columns {
  display: grid;
  grid-template-columns: repeat(var(--kbe-cols-d, 2), minmax(0, 1fr));
  gap: var(--kbe-gap-d, 24px);
  align-items: var(--kbe-valign, stretch);
}
.kbe-columns > * { min-width: 0; margin-block: 0; }

.kbe-image { position: relative; }
.kbe-image__link { display: block; }
.kbe-image__media,
.kbe-image > img,
.kbe-image__link > img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--kbe-radius);
  background: color-mix(in srgb, var(--kbe-secondary) 10%, var(--kbe-surface));
}
.kbe-ratio-landscape .kbe-image__media,
.kbe-ratio-landscape > img { aspect-ratio: 4 / 3; }
.kbe-ratio-cinema .kbe-image__media,
.kbe-ratio-cinema > img { aspect-ratio: 16 / 9; }
.kbe-ratio-square .kbe-image__media,
.kbe-ratio-square > img { aspect-ratio: 1; }
.kbe-ratio-portrait .kbe-image__media,
.kbe-ratio-portrait > img { aspect-ratio: 4 / 5; }
.kbe-image figcaption {
  margin-top: 10px;
  color: var(--kbe-muted);
  font-size: .8rem;
  line-height: 1.5;
  text-align: center;
}

.kbe-gallery {
  display: grid;
  grid-template-columns: repeat(var(--kbe-gallery-d, 3), minmax(0, 1fr));
  gap: var(--kbe-gallery-gap, 16px);
}
.kbe-gallery figure { min-width: 0; margin: 0; }
.kbe-gallery a { display: block; overflow: hidden; border-radius: var(--kbe-radius); }
.kbe-gallery img {
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: var(--kbe-radius);
  transition: transform .35s ease;
}
.kbe-gallery a:hover img { transform: scale(1.025); }
.kbe-gallery-ratio-landscape img { aspect-ratio: 4 / 3; }
.kbe-gallery-ratio-square img { aspect-ratio: 1; }
.kbe-gallery-ratio-portrait img { aspect-ratio: 4 / 5; }
.kbe-gallery figcaption { margin-top: 8px; color: var(--kbe-muted); font-size: .78rem; line-height: 1.45; }

.kbe-list {
  margin-top: var(--kbe-mt-d, 0);
  margin-bottom: var(--kbe-mb-d, 0);
}
.kbe-list > ul,
.kbe-list > ol {
  display: grid;
  grid-template-columns: repeat(var(--kbe-list-d, 1), minmax(0, 1fr));
  gap: 10px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kbe-list li {
  position: relative;
  min-width: 0;
  margin: 0;
  border-top: 1px solid var(--kbe-line);
  padding: 12px 4px 12px 30px;
  line-height: 1.55;
}
.kbe-list li::before { position: absolute; left: 4px; color: var(--kbe-primary); font-weight: 900; }
.kbe-list-check li::before { content: "✓"; }
.kbe-list-dot li::before { content: "•"; font-size: 1.35em; line-height: 1; }
.kbe-list-arrow li::before { content: "→"; }
.kbe-list-number > ol,
.kbe-list-number > ul { counter-reset: kbe-list; }
.kbe-list-number li { counter-increment: kbe-list; }
.kbe-list-number li::before { content: counter(kbe-list, decimal-leading-zero); font-size: .72rem; }

.kbe-button-wrap { display: flex; }
.kbe-button-wrap.kbe-align-d-left { justify-content: flex-start; }
.kbe-button-wrap.kbe-align-d-center { justify-content: center; }
.kbe-button-wrap.kbe-align-d-right { justify-content: flex-end; }
.kbe-button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 13px 22px;
  font-family: var(--kbe-font);
  font-size: .88rem;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.kbe-button:hover { transform: translateY(-2px); }
.kbe-button-primary { background: var(--kbe-primary); color: var(--kbe-on-primary); box-shadow: var(--kbe-shadow); }
.kbe-button-secondary { background: var(--kbe-secondary); color: var(--kbe-dark); }
.kbe-button-outline { border-color: var(--kbe-primary); background: transparent; color: var(--kbe-primary); }
.kbe-button-text { min-height: 0; border-radius: 0; padding: 6px 0; border-bottom-color: currentColor; color: var(--kbe-primary); }
.kbe-button-large { min-height: 56px; padding: 16px 28px; font-size: 1rem; }

.kbe-accordion {
  overflow: hidden;
  border-top: 1px solid var(--kbe-line);
}
.kbe-accordion-line:last-of-type { border-bottom: 1px solid var(--kbe-line); }
.kbe-accordion-panel { border: 1px solid var(--kbe-line); border-radius: var(--kbe-radius); background: var(--kbe-surface); box-shadow: 0 12px 35px color-mix(in srgb, var(--kbe-dark) 7%, transparent); }
.kbe-accordion__summary {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 4px;
  color: var(--kbe-text);
  font-family: var(--kbe-display);
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 800;
  line-height: 1.3;
  list-style: none;
  cursor: pointer;
}
.kbe-accordion-panel .kbe-accordion__summary { padding-inline: 22px; }
.kbe-accordion__summary::-webkit-details-marker { display: none; }
.kbe-accordion__icon { flex: 0 0 auto; font-family: var(--kbe-font); font-size: 1.6rem; font-weight: 400; transition: transform .2s ease; }
.kbe-accordion[open] .kbe-accordion__icon { transform: rotate(45deg); }
.kbe-accordion__content { padding: 0 4px 22px; color: var(--kbe-muted); }
.kbe-accordion-panel .kbe-accordion__content { padding-inline: 22px; }
.kbe-accordion__content > :last-child { margin-bottom: 0; }

/* Matching styles for familiar core blocks. */
.wp-block-button.is-style-kroli-primary .wp-block-button__link,
.wp-block-button.is-style-kroli-secondary .wp-block-button__link,
.wp-block-button.is-style-kroli-outline .wp-block-button__link {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 13px 22px;
  font-weight: 850;
  text-decoration: none;
}
.wp-block-button.is-style-kroli-primary .wp-block-button__link { background: var(--kbe-primary); color: var(--kbe-on-primary); box-shadow: var(--kbe-shadow); }
.wp-block-button.is-style-kroli-secondary .wp-block-button__link { background: var(--kbe-secondary); color: var(--kbe-dark); }
.wp-block-button.is-style-kroli-outline .wp-block-button__link { border-color: var(--kbe-primary); background: transparent; color: var(--kbe-primary); }
.wp-block-image.is-style-kroli-rounded img { border-radius: var(--kbe-radius); }
.wp-block-image.is-style-kroli-shadow img { border-radius: var(--kbe-radius); box-shadow: var(--kbe-shadow); }
.wp-block-group.is-style-kroli-panel { border: 1px solid var(--kbe-line); border-radius: var(--kbe-radius); padding: clamp(22px, 4vw, 40px); background: var(--kbe-surface); box-shadow: var(--kbe-shadow); }

/* Insertable layout patterns. */
.kbe-pattern { color: var(--kbe-text); }
.kbe-pattern-intro { padding-block: clamp(46px, 8vw, 92px); }
.kbe-pattern-intro h2 { max-width: 18ch; font-family: var(--kbe-display); font-size: clamp(2.3rem, 5vw, 5rem); line-height: 1; }
.kbe-pattern-intro > p:not(.kbe-pattern-eyebrow) { max-width: 680px; color: var(--kbe-muted); }
.kbe-pattern-eyebrow { color: var(--kbe-primary); font-size: .75rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.kbe-pattern-media { gap: clamp(28px, 5vw, 72px); }
.kbe-pattern-media .wp-block-media-text__media img { border-radius: var(--kbe-radius); }
.kbe-pattern-cards { gap: 18px; }
.kbe-pattern-cards > .wp-block-column { border: 1px solid var(--kbe-line); border-radius: var(--kbe-radius); padding: clamp(20px, 3vw, 30px); background: var(--kbe-surface); }
.kbe-pattern-cta { border-radius: var(--kbe-radius); padding: clamp(28px, 6vw, 72px); background: var(--kbe-primary); color: var(--kbe-on-primary); }
.kbe-pattern-cta h2, .kbe-pattern-cta p { color: inherit; }

/* Progressive, reduced-motion-safe entrance animations. */
.kbe-motion-ready [data-kbe-animation]:not([data-kbe-animation="none"]) {
  opacity: 0;
  transition-property: opacity, translate, scale;
  transition-duration: var(--kbe-duration, 650ms);
  transition-delay: var(--kbe-delay, 0ms);
  transition-timing-function: cubic-bezier(.2, .72, .25, 1);
}
.kbe-motion-ready [data-kbe-animation="fade-up"] { translate: 0 28px; }
.kbe-motion-ready [data-kbe-animation="slide-left"] { translate: -34px 0; }
.kbe-motion-ready [data-kbe-animation="slide-right"] { translate: 34px 0; }
.kbe-motion-ready [data-kbe-animation="zoom"] { scale: .965; }
.kbe-motion-ready [data-kbe-animation].kbe-in-view { opacity: 1; translate: 0 0; scale: 1; }

@media (max-width: 1024px) {
  .kbe-columns { grid-template-columns: repeat(var(--kbe-cols-t, 2), minmax(0, 1fr)); }
}

@media (max-width: 740px) {
  .kbe-space {
    padding-top: var(--kbe-pt-m, 0);
    padding-right: var(--kbe-pr-m, 0);
    padding-bottom: var(--kbe-pb-m, 0);
    padding-left: var(--kbe-pl-m, 0);
    margin-top: var(--kbe-mt-m, 0);
    margin-bottom: var(--kbe-mb-m, 0);
  }
  .kbe-width-wide,
  .kbe-width-content,
  .kbe-width-reading { width: min(calc(100vw - 28px), 100%); }
  .kbe-width-full.kbe-section > .kbe-section__inner { width: min(calc(100% - 28px), var(--kbe-wide)); }
  .kbe-columns { grid-template-columns: repeat(var(--kbe-cols-m, 1), minmax(0, 1fr)); gap: var(--kbe-gap-m, 16px); }
  .kbe-gallery { grid-template-columns: repeat(var(--kbe-gallery-m, 1), minmax(0, 1fr)); }
  .kbe-list > ul,
  .kbe-list > ol { grid-template-columns: repeat(var(--kbe-list-m, 1), minmax(0, 1fr)); }
  .kbe-align-m-left { text-align: left; }
  .kbe-align-m-center { text-align: center; }
  .kbe-align-m-right { text-align: right; }
  .kbe-align-m-justify { text-align: justify; text-justify: inter-word; }
  .kbe-button-wrap.kbe-align-m-left { justify-content: flex-start; }
  .kbe-button-wrap.kbe-align-m-center { justify-content: center; }
  .kbe-button-wrap.kbe-align-m-right { justify-content: flex-end; }
  .kbe-button-wrap.kbe-align-m-full { display: block; }
  .kbe-button-wrap.kbe-align-m-full .kbe-button { width: 100%; }
  .kbe-hide-mobile { display: none !important; }
}

@media (min-width: 741px) {
  .kbe-hide-desktop { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .kbe-motion-ready [data-kbe-animation] { opacity: 1 !important; translate: none !important; scale: 1 !important; transition: none !important; }
}
