/* Scoped Heckershausen layout; existing global.css supplies every design token. */
.hh-page { background: var(--c-bg); color: var(--c-text); font-family: var(--font-body); line-height: 1.7; }
.hh-page *, .hh-page *::before, .hh-page *::after { box-sizing: border-box; }
.hh-page .hh-wrap { max-width: var(--container); padding-inline: 1.5rem; margin-inline: auto; }
.hh-page h1, .hh-page h2, .hh-page h3 { font-family: var(--font-display); color: var(--c-text); line-height: 1.18; margin: 0; }
.hh-page h1 { font-size: clamp(2.15rem, 4.8vw, 3.8rem) !important; letter-spacing: -.04em; overflow-wrap: anywhere; }
.hh-page h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); letter-spacing: -.025em; }
.hh-page h3 { font-size: 1.25rem; line-height: 1.35; }
.hh-page p { font-family: var(--font-body); color: var(--c-text-soft); margin: 1rem 0 0; }
.hh-page a { text-underline-offset: .25em; }
.hh-page a:focus-visible, .hh-page summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 5px; }
.hh-page section[id] { scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.hh-page .hh-section { padding-block: 5rem; }
.hh-page .hh-kicker { margin: 0 0 1rem; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--primary-hover); }
.hh-page .hh-hero-surface { background: var(--c-bg-alt); }
.hh-page .hh-crumbs { display: flex; flex-wrap: wrap; gap: .6rem; padding-block: 1.5rem; color: var(--c-text-soft); font-size: .82rem; }
.hh-page .hh-crumbs a { color: var(--c-text-soft); }
.hh-page .hh-hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: 4rem; padding-block: 2rem 4rem; align-items: center; }
.hh-page .hh-hero > *, .hh-page .hh-door-pair > *, .hh-page .hh-fault-grid > *, .hh-page .hh-local-grid > *, .hh-page .hh-agreement > *, .hh-page .hh-faq-grid > * { min-width: 0; }
.hh-page .hh-tagline { font-size: clamp(1.35rem, 2.2vw, 1.8rem); color: var(--c-text); line-height: 1.4; margin-top: 1.5rem; }
.hh-page .hh-lead { font-size: 1.08rem; max-width: 38rem; }
.hh-page .hh-small { font-size: .8rem; }
.hh-page .hh-button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 3.25rem; padding: .9rem 1.35rem; margin-top: 1.5rem; text-align: center; background: var(--primary-hover); border: 2px solid var(--primary-hover); color: var(--c-bg); border-radius: var(--radius); font-weight: 700; text-decoration: none; transition: background var(--transition), border-color var(--transition); }
.hh-page .hh-button:hover { background: var(--c-text); border-color: var(--c-text); color: var(--c-bg); }
.hh-page .hh-start { background: var(--c-bg); padding: 2rem; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); border-top: 4px solid var(--primary); }
.hh-page .hh-start h2 { font-size: 1.8rem; margin-bottom: 1.5rem; }
.hh-page .hh-start p:last-child { font-size: .9rem; }
.hh-page .hh-start-link { display: flex; align-items: center; gap: .8rem; color: var(--c-text); padding-block: 1.25rem; border-top: 1px solid var(--c-border); text-decoration: none; }
.hh-page .hh-start-link:hover strong { text-decoration: underline; }
.hh-page .hh-start-link > span:nth-child(2) { flex: 1; }
.hh-page .hh-start-link strong, .hh-page .hh-start-link small { display: block; }
.hh-page .hh-start-link small { font-size: .8rem; color: var(--c-text-soft); margin-top: .2rem; }
.hh-page .hh-index { font-size: .8rem; font-weight: 700; color: var(--primary-hover); }
.hh-page .hh-night { padding-block: 2.5rem; background: var(--c-bg-dark); }
.hh-page .hh-night-inner { display: grid; grid-template-columns: 1.7fr 1fr; align-items: center; gap: 3rem; }
.hh-page .hh-night h2 { color: var(--c-bg); font-size: 1.5rem; }
.hh-page .hh-night p { color: var(--c-bg-alt); font-size: .95rem; }
.hh-page .hh-night .hh-kicker { color: var(--primary-l); }
.hh-page .hh-night-contact { border-left: 1px solid var(--c-muted); padding-left: 2rem; }
.hh-page .hh-night-contact a { display: block; color: var(--c-bg); font-size: .87rem; }
.hh-page .hh-night-contact .hh-night-phone { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 700; text-decoration: none; margin-bottom: .5rem; }
.hh-page .hh-section-heading { display: grid; grid-template-columns: 4.5rem minmax(0, 46rem); gap: 1.5rem; margin-bottom: 2rem; }
.hh-page .hh-section-number { color: var(--primary-hover); font-family: var(--font-display); font-size: 3.5rem; font-weight: 700; line-height: 1; }
.hh-page .hh-door-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.hh-page .hh-door-card { padding: 2rem; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-bg); }
.hh-page .hh-door-card-alt { background: var(--primary-l); border-color: var(--primary-l); }
.hh-page .hh-card-label { margin: 0 0 1.25rem; color: var(--primary-hover); font-size: .78rem; font-weight: 700; }
.hh-page .hh-text-link { display: inline-block; color: var(--primary-hover); font-weight: 700; margin-top: 1.25rem; }
.hh-page .hh-text-link:hover { color: var(--c-text); }
.hh-page .hh-fault-section { background: var(--c-bg-alt); }
.hh-page .hh-fault-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.hh-page .hh-fault-grid article { padding: 1.75rem; background: var(--c-bg); border-radius: var(--radius); border: 1px solid var(--c-border); box-shadow: var(--shadow-sm); }
.hh-page .hh-fault-grid p { font-size: .95rem; }
.hh-page .hh-fault-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--c-border); }
.hh-page .hh-fault-footer p { max-width: 45rem; margin: 0; }
.hh-page .hh-fault-footer a { margin: 0; flex-shrink: 0; }
.hh-page .hh-care { border-left: 4px solid var(--primary); }
.hh-page .hh-care h2 { max-width: 50rem; }
.hh-page .hh-care-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; margin-top: 1rem; }
.hh-page .hh-local { background: var(--primary-l); }
.hh-page .hh-local-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 4rem; align-items: start; }
.hh-page .hh-local-note { padding-top: 1.25rem; border-top: 1px solid var(--primary-hover); font-size: .9rem; }
.hh-page .hh-preparation { padding: 2rem; background: var(--c-bg); border-radius: var(--radius-lg); }
.hh-page .hh-preparation ul { padding-left: 1.2rem; margin-block: 1rem; }
.hh-page .hh-preparation li { padding-left: .25rem; margin-bottom: .7rem; color: var(--c-text-soft); }
.hh-page .hh-preparation li::marker { color: var(--primary-hover); }
.hh-page .hh-preparation p { font-size: .9rem; }
.hh-page .hh-agreement { display: grid; grid-template-columns: 1fr 1.25fr; gap: 4rem; }
.hh-page .hh-terms { margin: 0; }
.hh-page .hh-terms > div { border-top: 1px solid var(--c-border); padding-block: 1.5rem; }
.hh-page .hh-terms > div:first-child { border-top: 2px solid var(--primary); }
.hh-page .hh-terms dt { font-size: 1.15rem; font-weight: 700; }
.hh-page .hh-terms dd { margin: .65rem 0 0; color: var(--c-text-soft); }
.hh-page .hh-faq { background: var(--c-bg-alt); }
.hh-page .hh-faq-heading { max-width: 43rem; margin-bottom: 2rem; }
.hh-page .hh-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.hh-page .hh-faq details { border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-bg); }
.hh-page .hh-faq summary { padding: 1.5rem; font-weight: 700; line-height: 1.5; cursor: pointer; }
.hh-page .hh-faq summary::marker { color: var(--primary-hover); }
.hh-page .hh-faq details[open] summary { color: var(--primary-hover); }
.hh-page .hh-faq details p { margin: 0; padding: 0 1.5rem 1.5rem; }
.hh-page .hh-final { padding-block: 4rem; text-align: center; }
.hh-page .hh-final-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem; }
@media (max-width: 1000px) {
  .hh-page .hh-hero { grid-template-columns: 1.5fr 1fr; gap: 2rem; }
  .hh-page .hh-start { padding: 1.5rem; }
  .hh-page .hh-local-grid, .hh-page .hh-agreement { gap: 2rem; }
  .hh-page .hh-fault-grid { grid-template-columns: minmax(0, 1fr); }
  .hh-page .hh-fault-footer { align-items: flex-start; flex-direction: column; gap: 1rem; }
}
@media (max-width: 760px) {
  .hh-page .hh-wrap { padding-inline: 1.25rem; }
  .hh-page .hh-section { padding-block: 3rem; }
  .hh-page .hh-hero { padding-block: 1rem 3rem; }
  .hh-page .hh-hero, .hh-page .hh-night-inner, .hh-page .hh-door-pair, .hh-page .hh-care-columns, .hh-page .hh-local-grid, .hh-page .hh-agreement, .hh-page .hh-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .hh-page .hh-night-contact { padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid var(--c-muted); }
  .hh-page .hh-section-heading { grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1rem; }
  .hh-page .hh-section-number { font-size: 2.25rem; }
  .hh-page .hh-door-card, .hh-page .hh-fault-grid article, .hh-page .hh-preparation { padding: 1.5rem; }
  .hh-page .hh-button { width: 100%; }
  .hh-page .hh-care-columns { gap: 0; }
  .hh-page .hh-final-actions { gap: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hh-page .hh-button { transition: none; }
}
