/* Felsberg service guide. Existing global.css owns every brand token and font. */
.fb-page { color: var(--c-text); background: var(--c-bg); font-family: var(--font-body); font-size: 1rem; line-height: 1.75; }
.fb-page .fb-wrap { max-width: var(--container); margin-inline: auto; padding-inline: 24px; }
.fb-page h1, .fb-page h2, .fb-page h3 { color: var(--c-text); font-family: var(--font-display); line-height: 1.16; letter-spacing: -.025em; }
.fb-page h1 { margin: 0 0 1.5rem; font-size: clamp(2.4rem, 5.6vw, 4.8rem) !important; font-weight: 900; overflow-wrap: anywhere; }
.fb-page h1 span { color: var(--primary-hover); }
.fb-page h2 { margin: 0 0 1.25rem; font-size: clamp(1.65rem, 2.5vw, 2.2rem); }
.fb-page h3 { margin: 0 0 .8rem; font-size: 1.3rem; }
.fb-page p { margin: 0 0 1.2rem; font-family: var(--font-body); }
.fb-page a { color: var(--primary-hover); text-underline-offset: .25em; }
.fb-page a:hover { text-decoration-thickness: 2px; }
.fb-page :focus-visible { outline: 3px solid var(--primary-hover); outline-offset: 5px; }
.fb-page .fb-kicker { color: var(--primary-hover); font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 1rem; }
.fb-page .fb-intro { background: var(--c-bg-alt); border-bottom: 1px solid var(--c-border); }
.fb-page .fb-breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; padding-block: 1.4rem; font-size: .875rem; color: var(--c-text-soft); }
.fb-page .fb-intro-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: end; gap: 4rem; padding-block: 2rem 3rem; }
.fb-page .fb-tagline { font-size: clamp(1.4rem, 2.3vw, 1.9rem); line-height: 1.35; margin: 0; }
.fb-page .fb-lead { font-size: 1.125rem; color: var(--c-text-soft); }
.fb-page .fb-small { font-size: .875rem; }
.fb-page .fb-intro-copy .fb-small { color: var(--c-text-soft); margin: 1.1rem 0 0; }
.fb-page .fb-button { display: inline-flex; justify-content: center; align-items: center; gap: 1rem; min-height: 52px; border: 2px solid var(--primary); border-radius: var(--radius); padding: .9rem 1.2rem; font: inherit; font-weight: 700; text-decoration: none; transition: background var(--transition), color var(--transition), border-color var(--transition); }
.fb-page .fb-button-primary { background: var(--primary); color: var(--c-dark); }
.fb-page .fb-button-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: var(--c-bg); }
.fb-page .fb-button-light { background: var(--c-bg); border-color: var(--c-bg); color: var(--c-dark); }
.fb-page .fb-button-light:hover { background: var(--primary-l); border-color: var(--primary-l); }
.fb-page .fb-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 1.5rem 0; border-top: 2px solid var(--c-border); gap: 2rem; }
.fb-page .fb-principles li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; }
.fb-page .fb-principles li > span:first-child { grid-row: 1 / 3; font-weight: 700; color: var(--primary-hover); }
.fb-page .fb-principles li > span:last-child { font-size: .875rem; color: var(--c-text-soft); }
.fb-page .fb-guide { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: 4.5rem; padding-block: 4.5rem; }
.fb-page .fb-contact { position: sticky; top: calc(var(--header-h) + 24px); padding: 1.6rem; background: var(--c-dark); color: var(--c-bg); border-radius: var(--radius-lg); border-top: 5px solid var(--primary); }
.fb-page .fb-contact h2, .fb-page .fb-contact .fb-kicker { color: var(--c-bg); }
.fb-page .fb-contact h2 { font-size: 1.8rem; }
.fb-page .fb-contact :focus-visible { outline-color: var(--c-bg); }
.fb-page .fb-phone { display: block; color: var(--c-bg); font-size: 1.45rem; font-weight: 700; margin-bottom: .5rem; text-decoration: none; }
.fb-page .fb-contact .fb-button { width: 100%; }
.fb-page .fb-contact-link { display: block; color: var(--c-bg); font-size: .9375rem; margin-top: 1rem; }
.fb-page .fb-contact-note { border-top: 1px solid var(--c-text-soft); margin-top: 1.5rem; padding-top: 1.2rem; }
.fb-page .fb-contact-note p { font-size: .9375rem; margin-top: .5rem; }
.fb-page .fb-contact > p:last-child { margin: 0; }
.fb-page .fb-chapter { scroll-margin-top: calc(var(--header-h) + 24px); }
.fb-page .fb-chapter + .fb-chapter { border-top: 1px solid var(--c-border); margin-top: 3.5rem; padding-top: 3.5rem; }
.fb-page .fb-chapter-heading { display: flex; align-items: start; gap: 1rem; margin-bottom: 1.2rem; }
.fb-page .fb-chapter-heading h2 { margin: 0; }
.fb-page .fb-chapter-heading .fb-kicker { margin-bottom: .6rem; }
.fb-page .fb-chapter-number { flex-shrink: 0; display: grid; place-items: center; min-width: 44px; min-height: 44px; background: var(--primary-l); color: var(--primary-hover); font-weight: 700; border-radius: var(--radius); }
.fb-page .fb-local-note { border-left: 3px solid var(--primary); padding: 1.3rem 1.5rem; background: var(--c-bg-alt); margin-top: 1.5rem; }
.fb-page .fb-local-note p { margin: .5rem 0 0; color: var(--c-text-soft); }
.fb-page .fb-service { padding-block: 1.1rem; }
.fb-page .fb-service + .fb-service { border-top: 1px solid var(--c-border); }
.fb-page .fb-service p { color: var(--c-text-soft); margin: 0; }
.fb-page .fb-emphasis { color: var(--primary-hover); font-weight: 700; border-bottom: 3px solid var(--primary); padding-block: 1rem; }
.fb-page .fb-cost-table { width: 100%; table-layout: fixed; border-collapse: collapse; margin: 1.5rem 0; font: inherit; }
.fb-page .fb-cost-table caption { caption-side: top; color: var(--c-text); text-align: left; font-weight: 700; padding-bottom: .8rem; }
.fb-page .fb-cost-table th, .fb-page .fb-cost-table td { text-align: left; vertical-align: top; padding: 1rem; border-bottom: 1px solid var(--c-border); overflow-wrap: break-word; }
.fb-page .fb-cost-table thead { color: var(--c-bg); background: var(--c-bg-dark); }
.fb-page .fb-cost-table th:first-child { width: 35%; }
.fb-page .fb-cost-table tbody th { font-weight: 700; background: var(--c-bg-alt); }
.fb-page .fb-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-block: 1.8rem; }
.fb-page .fb-checks article { padding: 1.4rem; border: 1px solid var(--c-border); border-radius: var(--radius); }
.fb-page .fb-label { display: block; font-size: .875rem; font-weight: 700; color: var(--primary-hover); margin-bottom: .8rem; }
.fb-page .fb-checks p { color: var(--c-text-soft); margin: 0; }
.fb-page .fb-link { font-weight: 700; }
.fb-page .fb-faq details { border-bottom: 1px solid var(--c-border); }
.fb-page .fb-faq summary { padding: 1.1rem .35rem; font-size: 1.0625rem; font-weight: 700; cursor: pointer; }
.fb-page .fb-faq summary::marker { color: var(--primary-hover); }
.fb-page .fb-faq details[open] summary { color: var(--primary-hover); }
.fb-page .fb-faq details p { padding-inline: .35rem; color: var(--c-text-soft); }
.fb-page .fb-close { padding-block: 3.5rem; background: var(--primary-l); }
.fb-page .fb-close-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 3rem; }
.fb-page .fb-close p:last-child { margin: 0; }
.fb-page .fb-close-actions { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
@media (max-width: 1000px) {
  .fb-page .fb-guide { grid-template-columns: 250px minmax(0, 1fr); gap: 2.5rem; }
  .fb-page .fb-intro-grid { gap: 2rem; }
  .fb-page .fb-contact { padding: 1.25rem; }
  .fb-page .fb-checks { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .fb-page .fb-wrap { padding-inline: 20px; }
  .fb-page .fb-intro-grid, .fb-page .fb-guide, .fb-page .fb-close-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .fb-page .fb-intro-grid { padding-block: 1.5rem 2rem; }
  .fb-page .fb-principles { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .fb-page .fb-guide { padding-block: 3rem; }
  .fb-page .fb-contact { position: static; }
  .fb-page .fb-contact .fb-button { width: auto; }
  .fb-page .fb-chapter + .fb-chapter { margin-top: 2.5rem; padding-top: 2.5rem; }
  .fb-page .fb-cost-table th, .fb-page .fb-cost-table td { padding: .8rem .5rem; }
  .fb-page .fb-cost-table th:first-child { width: 40%; }
  .fb-page .fb-close-actions { align-items: stretch; }
  .fb-page .fb-button { overflow-wrap: anywhere; }
}
@media (max-height: 760px) {
  .fb-page .fb-contact { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  .fb-page .fb-button { transition: none; }
}
