/* Shared visual refinements; loaded after page-specific styles. */
:root{ --radius:20px; --shadow-sm:0 6px 20px -12px rgba(33,44,63,.18); --card-radius:20px; }
h1{ font-size:clamp(2rem,4.2vw,3.15rem); line-height:1.14; }
h2{ font-size:clamp(1.55rem,2.7vw,2.15rem); line-height:1.2; }
h3{ font-size:1.18rem; line-height:1.3; }
main p{ line-height:1.7; }
.page-section{ padding-top:52px; }
main .page-head{ max-width:720px; margin:0 auto 40px; text-align:center; }
.page-head h1{ margin-bottom:14px; overflow-wrap:break-word; }
.page-head .eyebrow{ margin-bottom:16px; }
.page-head p{ color:var(--ink-soft); max-width:58ch; margin:0 auto; font-size:1rem; }
main .page-head-request{ margin-bottom:14px; }
main .page-head-legal{ text-align:left; margin-left:0; margin-bottom:28px; }
main .price-card, main .request-form, main .contact-side,
main .feat-card, main .stehtische-card{
  border-radius:var(--card-radius); border:1px solid var(--border); box-shadow:var(--shadow-sm);
}
main .price-card::before, main .request-form::before{
  height:3px; background:var(--brand);
}
main details{ border-radius:16px; border:1px solid var(--border); }
main details[open]{ box-shadow:var(--shadow-sm); }
main summary{ line-height:1.45; }
main .price-chip{ border-radius:14px; }
main .form-price-note, main .form-footnote, main .price-note,
main .price-note-inline, main .price-chip .small, main .legal-page .updated{
  font-size:.875rem; line-height:1.6; color:var(--ink-soft);
}
main .form-price-note{ margin-bottom:32px; }
main .legal-page h2{ font-size:1.4rem; line-height:1.35; }
main .legal-page h3{ font-size:1.12rem; line-height:1.4; }
main a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:3px solid var(--brand-soft); outline-offset:4px;
}
@media (max-width:720px){
  .page-section{ padding-top:34px; }
  main .page-head{ margin-bottom:30px; }
  main .page-head-request{ margin-bottom:12px; }
  main .page-head-legal{ margin-bottom:24px; }
  .page-head p{ font-size:.95rem; }
}
@media (max-width:560px){
  main .price-card, main .request-form{ padding:26px 22px; }
  main .price-card .top-row{ gap:12px; flex-wrap:wrap; }
  main .price-card .amount{ font-size:1.9rem; }
  main .price-card .amount small{ display:block; font-size:.9rem; }
}

/* Compact spacing between page sections. */
main > section:not(.hero){ padding-top:44px; padding-bottom:44px; }
main > .features{ padding-top:32px; padding-bottom:36px; }
main > .partners{ padding-top:26px; padding-bottom:26px; }
main > .page-section{ padding-top:40px; }
main .page-head{ margin-bottom:28px; }
main .page-head-request{ margin-bottom:12px; }
main .zub-closing, main .faq-closing{ margin-top:36px; padding-top:28px; }
main .stehtische-card{ margin-top:36px; }
main .cta-banner{ padding:40px 32px; }
@media (max-width:720px){
  main > section:not(.hero){ padding-top:28px; padding-bottom:28px; }
  main > .features{ padding-top:26px; padding-bottom:28px; }
  main > .partners{ padding-top:22px; padding-bottom:22px; }
  main > .page-section{ padding-top:28px; }
  main .page-head{ margin-bottom:24px; }
  main .page-head-request{ margin-bottom:12px; }
  main .zub-closing, main .faq-closing{ margin-top:28px; padding-top:24px; }
  main .stehtische-card{ margin-top:28px; }
  main .cta-banner{ padding:30px 22px; }
}

/* Header: one permanent enquiry action and a quiet navigation. */
header .header-glass{
  background:rgba(18,23,34,.97); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:0 4px 16px -12px rgba(0,0,0,.4);
}
header .nav{ gap:32px; }
header .brand{ order:0; flex-shrink:0; }
header .navlinks{ order:1; margin-left:auto; gap:30px; }
header .navcta{ order:2; flex-shrink:0; }
header .burger{ order:3; }
header .btn-header-cta, header.is-scrolled .btn-header-cta{
  opacity:1; transform:none; pointer-events:auto;
  background:var(--flash); color:var(--brand-darker); border-color:var(--flash); box-shadow:none;
}
header .btn-header-cta:hover{ background:#f5bf57; border-color:#f5bf57; }
header .btn-header-cta:active{ transform:scale(.97); }
header .navlinks a.active::after{ right:0; }
header a:focus-visible, header .burger:focus-visible{ outline:2px solid var(--flash); outline-offset:5px; }
@media (max-width:860px){
  header .nav{ gap:14px; }
  header .navcta{ margin-left:auto; }
  header .navlinks{ margin-left:0; }
  header .navlinks a{ padding:14px 0; }
  header .burger{ width:44px; height:44px; align-items:center; justify-content:center; flex-shrink:0; }
  header #navtoggle:checked ~ .navlinks{ padding-top:8px; padding-bottom:14px; }
}
