/* Korbach only. Brand, typography and surface tokens come from global.css. */
.kb-page { color: var(--c-text); background: var(--c-bg); font-family: var(--font-body); line-height: 1.7; }
.kb-page .kb-wrap { width: min(var(--container), calc(100% - 3rem)); margin-inline: auto; }
.kb-page h1, .kb-page h2, .kb-page h3 { font-family: var(--font-display); font-weight: 700; line-height: 1.16; color: inherit; }
.kb-page h1 { font-size: clamp(2.25rem, 4.3vw, 4rem) !important; margin: 0 0 1rem; }
.kb-page h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); margin: 0 0 1.3rem; }
.kb-page h3 { font-size: 1.35rem; margin: 0 0 1rem; }
.kb-page p { margin: 0 0 1rem; }
.kb-page a { color: inherit; }
.kb-page a:focus-visible, .kb-page summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 5px; border-radius: var(--radius); }
.kb-page section[id] { scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.kb-page .kb-crumbs { display: flex; flex-wrap: wrap; gap: .65rem; padding: 1.4rem 0; font-size: .9rem; color: var(--c-text-soft); }
.kb-page .kb-crumbs a { text-decoration: underline; text-underline-offset: .2em; }
.kb-page .kb-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; font-weight: 700; margin-bottom: 1.25rem; }
.kb-page .kb-hero { padding: 3.5rem 0; color: var(--c-bg); background: var(--c-bg-dark); border-top: 5px solid var(--primary); }
.kb-page .kb-hero-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 4rem; align-items: center; }
.kb-page .kb-tagline { font-size: clamp(1.55rem, 2.6vw, 2.3rem); line-height: 1.3; margin-bottom: 1.5rem; }
.kb-page .kb-lead { font-size: 1.13rem; }
.kb-page .kb-hero .kb-lead { max-width: 42rem; margin-bottom: 1.8rem; }
.kb-page .kb-hero-note { padding-left: 2.5rem; border-left: 1px solid var(--c-muted); }
.kb-page .kb-hours { font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 700; line-height: 1; display: block; margin-bottom: 1rem; }
.kb-page .kb-note-rule { border-top: 1px solid var(--c-muted); padding-top: 1.1rem; margin-top: 1.5rem; }
.kb-page .kb-note-rule strong { display: block; margin-bottom: .5rem; }
.kb-page .kb-button { display: inline-flex; justify-content: center; align-items: center; text-align: center; min-height: 3.2rem; padding: .9rem 1.4rem; border-radius: var(--radius-pill); background: var(--primary-hover); color: var(--c-bg); text-decoration: none; font-weight: 700; line-height: 1.4; transition: box-shadow var(--transition); }
.kb-page .kb-button:hover { box-shadow: var(--shadow-glow); color: var(--c-bg); text-decoration: underline; text-underline-offset: .2em; }
.kb-page .kb-link { font-weight: 700; text-decoration: underline; text-underline-offset: .24em; }
.kb-page .kb-link:hover { text-decoration-thickness: .15em; }
.kb-page .kb-contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--c-border); padding: 1.75rem 0; }
.kb-page .kb-contact-strip p { margin: 0; }
.kb-page .kb-contact-strip .kb-link { color: var(--primary-hover); }
.kb-page .kb-section { padding: 5rem 0; }
.kb-page .kb-heading { max-width: 44rem; margin-bottom: 2.5rem; }
.kb-page .kb-heading > p:last-child { color: var(--c-text-soft); }
.kb-page .kb-case-columns { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
.kb-page .kb-group-label { border-bottom: 3px solid var(--primary); padding-bottom: .85rem; text-transform: uppercase; letter-spacing: .07em; font-size: .8rem; font-weight: 700; }
.kb-page .kb-case { padding: 1.5rem 0; border-bottom: 1px solid var(--c-border); }
.kb-page .kb-case p, .kb-page .kb-tech-card p { color: var(--c-text-soft); }
.kb-page .kb-case p:last-child, .kb-page .kb-tech-card p:last-child { margin-bottom: 0; }
.kb-page .kb-case .kb-link { color: var(--primary-hover); }
.kb-page .kb-tech-card { padding: 2rem; border-radius: var(--radius-lg); background: var(--c-bg-alt); border: 1px solid var(--c-border); margin: 1.5rem 0; }
.kb-page .kb-help-note { border-left: 3px solid var(--primary); padding-left: 1.2rem; font-size: .95rem; }
.kb-page .kb-opening { background: var(--primary-l); }
.kb-page .kb-opening-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 4rem; }
.kb-page .kb-opening .kb-link { color: var(--primary-hover); }
.kb-page .kb-call-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; margin-bottom: 2rem; }
.kb-page .kb-call-heading > p { max-width: 33rem; color: var(--c-text-soft); }
.kb-page .kb-call-checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding: 0; margin: 0; list-style: none; }
.kb-page .kb-call-checks li { padding-top: 1.4rem; border-top: 1px solid var(--c-border); }
.kb-page .kb-call-checks span { display: block; font-size: 2.5rem; line-height: 1; font-weight: 700; color: var(--primary-hover); margin-bottom: 1.5rem; }
.kb-page .kb-call-checks p { color: var(--c-text-soft); }
.kb-page .kb-after { display: flex; gap: 1.5rem; align-items: baseline; background: var(--c-bg-alt); padding: 1.5rem 2rem; border-radius: var(--radius); margin-top: 2rem; }
.kb-page .kb-after strong { flex: 0 0 auto; }
.kb-page .kb-after p { margin: 0; }
.kb-page .kb-local { border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); padding: 4rem 0; }
.kb-page .kb-local-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 4rem; }
.kb-page .kb-local-grid > div:first-child { padding: 2rem; align-self: start; background: var(--c-bg-dark); border-radius: var(--radius-lg); color: var(--c-bg); }
.kb-page .kb-local-grid > div:last-child { align-self: center; }
.kb-page .kb-faq-heading { max-width: 45rem; }
.kb-page .kb-faq-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; align-items: start; margin-top: 2rem; }
.kb-page details { border-top: 1px solid var(--c-border); }
.kb-page summary { padding: 1.4rem .25rem; font-weight: 700; cursor: pointer; }
.kb-page summary::marker { color: var(--primary-hover); }
.kb-page details[open] summary { color: var(--primary-hover); }
.kb-page details > p { padding: 0 .25rem 1rem; color: var(--c-text-soft); }
.kb-page .kb-final { border: 1px solid var(--c-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 2.5rem; margin-top: 4rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; }
.kb-page .kb-final h2 { font-size: 1.65rem; }
.kb-page .kb-final p { margin: 0; }
.kb-page .kb-final-actions { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
@media (max-width: 1000px) {
  .kb-page .kb-hero-grid, .kb-page .kb-opening-grid, .kb-page .kb-local-grid { gap: 2rem; }
  .kb-page .kb-hero-note { padding-left: 1.5rem; }
  .kb-page .kb-case-columns { gap: 2rem; }
  .kb-page .kb-call-checks { gap: 1.25rem; }
  .kb-page .kb-tech-card { padding: 1.5rem; }
  .kb-page .kb-final { grid-template-columns: 1fr; }
  .kb-page .kb-final-actions { align-items: flex-start; }
}
@media (max-width: 720px) {
  .kb-page .kb-wrap { width: calc(100% - 2rem); }
  .kb-page .kb-hero { padding: 2.5rem 0; }
  .kb-page .kb-hero-grid, .kb-page .kb-case-columns, .kb-page .kb-opening-grid, .kb-page .kb-call-heading, .kb-page .kb-call-checks, .kb-page .kb-local-grid, .kb-page .kb-faq-list { grid-template-columns: 1fr; }
  .kb-page .kb-hero-note { border-left: 0; border-top: 1px solid var(--c-muted); padding: 1.5rem 0 0; }
  .kb-page .kb-hours { font-size: 3rem; }
  .kb-page .kb-contact-strip, .kb-page .kb-after { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .kb-page .kb-section { padding: 3rem 0; }
  .kb-page .kb-local { padding: 3rem 0; }
  .kb-page .kb-call-heading { gap: .5rem; }
  .kb-page .kb-local-grid > div:first-child, .kb-page .kb-final { padding: 1.5rem; }
  .kb-page .kb-local h2 { font-size: clamp(1.5rem, 6vw, 2rem); }
  .kb-page .kb-final { margin-top: 2rem; }
  .kb-page .kb-button { width: 100%; }
  .kb-page .kb-final-actions { align-items: stretch; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .kb-page .kb-button { transition: none; }
}
