/* Hosting and responsive refinements to the supplied design. */
html { scroll-padding-top: 130px; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #547047; outline-offset: 5px; }
nav { gap: 1rem; }
.nav-logo { flex-shrink: 0; }
.nav-links { flex-wrap: wrap; justify-content: center; }
.nav-cta { text-align: center; }
.hero-left, .hero-right, .ueber-text, .kontakt-info, .contact-form { min-width: 0; }
.hero-actions { flex-wrap: wrap; }
.hero-actions a { display: inline-block; text-align: center; }
.reveal { opacity: 1; transform: none; }
.inline-disclosure { display: inline; padding: 0; background: none; border: 0; color: #52653b; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-weight: 500; }
button[aria-controls]:not(.inline-disclosure) { color: #52653b !important; }
button[aria-expanded="true"]:not(.inline-disclosure) { background: var(--sage) !important; color: var(--espresso) !important; }
.hero-title em, .section-title em { color: #647a48; }
.hero-eyebrow, .section-tag, .format-tag, .service-link, .preis-label { color: #52653b; }
.section-tag, .format-tag, .service-link, .preis-label, .form-group label { font-size: .875rem; }
.service-card p, .sit-card p, .preis-desc, .legal-page p { font-size: 1rem; }
.preise-note a, .ueber-text p a { color: #52653b !important; }
.contact-hint { font-size: .9375rem; line-height: 1.65; color: var(--bark); margin-bottom: 1.5rem; }
.contact-hint a { color: var(--espresso); overflow-wrap: anywhere; }
.contact-fallback { margin: 1.25rem 0 0; }
.form-draft { margin-top: 1.5rem; color: var(--bark); line-height: 1.65; }
.form-draft p { margin-bottom: 1rem; }
.form-draft a { display: inline-block; text-align: center; }
.skip-link { position: fixed; top: -100px; left: 1rem; padding: 1rem; background: white; color: var(--espresso); z-index: 200; }
.skip-link:focus { top: 1rem; }
.footer-links { flex-wrap: wrap; }
footer p, .footer-links a { color: #c2cec7 !important; }
.legal-page a, .legal-page .page-tag { color: #52653b; }
.legal-page h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); overflow-wrap: anywhere; }
.legal-page .nav-back { text-align: right; font-size: .875rem; }
@media (max-width: 1200px) {
  nav { padding-left: 6%; padding-right: 6%; }
  .nav-links { gap: 1.2rem; }
}
@media (max-width: 900px) {
  nav { flex-wrap: wrap; padding: .5rem 6% .8rem; gap: .5rem; }
  nav .nav-logo img { width: 160px !important; height: auto !important; margin: 0 !important; }
  .nav-cta { font-size: .75rem; padding: .7rem .8rem; }
  .nav-links { display: flex; order: 3; width: 100%; gap: .7rem 1.2rem; }
  .nav-links a { font-size: .8125rem; letter-spacing: .025em; }
  html { scroll-padding-top: 150px; }
  #hero { padding-top: 145px; }
  .hero-left { padding: 3rem 0; }
  .hero-right { min-height: 420px; }
  #ueber, #kontakt { gap: 3rem; }
  .legal-page .container { padding-top: 8rem; }
}
@media (max-width: 600px) {
  .preise-grid, .sit-grid { grid-template-columns: minmax(0, 1fr); }
  .service-card, .preis-card, .contact-form { padding: 1.6rem; }
  .sit-card { padding: 1.4rem; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions a { padding-left: 1rem; padding-right: 1rem; }
  .preis-amount { flex-wrap: wrap; }
  .legal-page .nav-logo img { width: 140px !important; }
  .legal-page .nav-back { max-width: 135px; }
  .legal-page .container { padding-left: 6%; padding-right: 6%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero-eyebrow, .hero-title, .hero-sub, .hero-actions, .hero-right img { opacity: 1 !important; transform: none !important; }
}
