/* Shared component refinements, after base and 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; }
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{ max-width:720px; margin:0 auto 28px; 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:12px; }
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; }
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 .page-head-legal{ margin-bottom:24px; }
  .page-head p{ font-size:.95rem; }
  main .zub-closing,main .faq-closing{ margin-top:28px; padding-top:24px; }
  main .stehtische-card{ margin-top:28px; }
  main .cta-banner{ padding:30px 22px; }
}
@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; }
}
/* Visual hierarchy: existing brand, compact rhythm, one accent. */
body{ font-optical-sizing:auto; }
h1,h2{ text-wrap:balance; }
main h3{ letter-spacing:-.012em; }
main .page-head .eyebrow{ padding:0; border:0; border-radius:0; background:transparent; letter-spacing:.075em; margin-bottom:12px; }
main .hero .eyebrow{ padding:0; border:0; background:transparent; backdrop-filter:none; color:rgba(255,255,255,.78); }
main .hero p.lead{ color:rgba(255,255,255,.88); }
main .feat-card{ box-shadow:none; }
main .feat-card.featured{ background:#fffdf7; border-color:#e9dfc6; }
main .feat-card .feat-icon,main .feat-card:nth-child(2) .feat-icon,main .feat-card:nth-child(3) .feat-icon{ background:var(--tint); color:var(--brand); }
main .feat-card.featured .feat-icon{ background:#f8edcf; color:var(--brand-darker); }
main .price-card{ border-color:#cbd5e4; box-shadow:0 12px 30px -24px rgba(33,44,63,.35); }
main .price-card .top-row{ align-items:flex-start; gap:16px; padding-bottom:20px; margin-bottom:22px; }
main .price-card .tag{ padding:0; background:transparent; border-radius:0; font-size:.875rem; letter-spacing:0; text-transform:none; }
main .price-card .amount{ letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
main .price-card .amount small{ letter-spacing:0; }
main .checklist li{ line-height:1.55; }
main .checklist li::before,main .bullet-check li::before{ color:var(--brand); }
main .checklist li.opt{ color:var(--ink-soft); }
main .accessory-offer{ background:#fff; border-color:var(--border); box-shadow:none; }
main .price-chip{ background:var(--tint-2); border-color:var(--border); }
main .price-chip .big{ color:var(--brand-darker); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
main .request-form::before{ display:none; }
main .request-form{ box-shadow:0 10px 28px -24px rgba(33,44,63,.3); }
main fieldset legend{ padding-bottom:12px; margin-bottom:16px; }
main fieldset legend .step{ background:var(--tint); border:0; color:var(--brand-darker); }
main input[type="text"],main input[type="email"],main input[type="date"],main select,main textarea{
  border-color:#cbd4e2; background:#fbfcfe; border-radius:12px; min-height:48px; font-size:1rem;
  transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease;
}
main input:focus,main select:focus,main textarea:focus{ background:#fff; border-color:var(--brand); box-shadow:0 0 0 3px rgba(63,79,110,.12); }
main .radio-option{ border-width:1px; background:#fbfcfe; border-radius:14px; }
main .radio-option:has(input:checked){ background:var(--tint); border-color:var(--brand); box-shadow:0 0 0 1px var(--brand); }
main .contact-side{ box-shadow:none; background:var(--tint-2); }
main .faq-list{ gap:10px; }
main details{ padding:4px 20px; box-shadow:none; }
main details[open]{ background:#fff; border-color:#bfcbdc; box-shadow:none; }
main summary{ padding:16px 0; }
main summary::after{ font-weight:400; }
main details p a{ text-decoration:underline; text-underline-offset:3px; }
main .tag-pill{ border-radius:10px; background:transparent; }
main .price-visual img,main .moments img,main .zub-grid img{ box-shadow:0 12px 24px -22px rgba(33,44,63,.35); }
main .partner-row{ gap:32px 48px; }
main .partner-row img{ height:64px; max-height:none; max-width:240px; object-fit:contain; opacity:.78; }
main .partners .label{ margin-bottom:22px; letter-spacing:.045em; }
main .cta-banner{ border-radius:var(--card-radius); }
.btn{ transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease; }
.btn:hover{ transform:none; }
.btn:active{ transform:scale(.98); }
footer{ padding-top:44px; }
.foot-grid{ gap:28px 32px; padding-bottom:28px; }
footer p.claim{ color:#c0cadd; }
footer .city-list{ line-height:1.8; color:#aebbd0; }
.foot-bottom{ color:#aebbd0; padding-top:18px; padding-bottom:18px; }
@media (hover:hover) and (pointer:fine){
  main summary:hover{ color:var(--brand); }
  .btn-ghost:hover{ border-color:#a6b4ca; background:var(--tint-2); }
}
@media (max-width:720px){
  main .partner-row{ gap:24px 32px; }
  main .partner-row img{ height:56px; max-width:220px; }
  main details{ padding-left:18px; padding-right:18px; }
  main summary{ font-size:.95rem; }
  footer{ padding-top:32px; }
}

/* Accessibility overrides are last so page styles cannot re-enable motion. */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .btn:hover,.btn:active,header .btn-header-cta:active,.radio-option:active,.burger:active{ transform:none; }
}
@media (prefers-reduced-transparency:reduce){
  .header-glass,header.nav-ready .navlinks{ background:#121722; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .cookie-banner{ background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@media (prefers-contrast:more){
  .header-glass,header.nav-ready .navlinks{ background:#121722; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .cookie-banner{ background:#fff; border-color:var(--ink); backdrop-filter:none; -webkit-backdrop-filter:none; }
}
