*, *::before, *::after { box-sizing: border-box; }
html, body { margin:0; padding:0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Aptos', 'Aptos Display', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background: #e8edf2;
  color: #335979;
  transition: background .35s ease, color .35s ease;
}
::selection { background: #ff914d; color: #f6f9fc; }
a { color: inherit; }
.container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 32px; }

@media (max-width: 980px) {
  .container { padding: 0 24px; }
  .r-grid-3 { grid-template-columns: 1fr 1fr !important; }
  .r-grid-4 { grid-template-columns: 1fr 1fr !important; }
  .r-cols-2 { grid-template-columns: 1fr !important; gap: 28px !important; align-items: start !important; }
  .r-cols-2-end { grid-template-columns: 1fr !important; gap: 28px !important; align-items: start !important; }
  .r-foot { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
  .r-cities { grid-template-columns: 1fr 1fr !important; }
  .r-section-pad { padding-top: 80px !important; padding-bottom: 80px !important; }
  .r-hide-md { display: none !important; }
  .r-desktop-nav { display: none !important; }
  .r-burger { display: inline-flex !important; }
}

@media (max-width: 680px) {
  .container { padding: 0 18px; }
  .r-hide-sm { display: none !important; }
  .r-nav { gap: 8px !important; }
  .r-hero { padding: 88px 0 64px !important; }
  .r-hero h1 { font-size: clamp(44px, 12vw, 64px) !important; }
  .r-hero-tail { grid-template-columns: 1fr !important; gap: 20px !important; }
  .r-hero-stats { grid-template-columns: repeat(2, 1fr) !important; gap: 24px !important; margin-top: 56px !important; padding-top: 24px !important; }
  .r-grid-3 { grid-template-columns: 1fr !important; gap: 14px !important; }
  .r-grid-4 { grid-template-columns: 1fr !important; gap: 14px !important; }
  .r-service-card { min-height: 0 !important; padding: 28px 22px 24px !important; }
  .r-section-pad { padding-top: 72px !important; padding-bottom: 72px !important; }
  .r-section-h { font-size: clamp(34px, 9vw, 48px) !important; }
  .r-cities { gap: 12px 18px !important; }
  .r-review-card { padding: 30px 22px !important; min-height: 0 !important; }
  .r-review-card p { font-size: 17px !important; }
  .r-arrow { width: 38px !important; height: 38px !important; }
  .r-arrow-left  { left: 6px !important; }
  .r-arrow-right { right: 6px !important; }
  .r-vorteile { grid-template-columns: 1fr !important; }
  .r-vorteile > article { border-right: none !important; border-bottom: 1px solid rgba(15,35,54,0.16) !important; padding: 28px 18px !important; }
  .r-ask { padding: 32px 0 70px !important; }
  .r-ask h2 { font-size: clamp(30px, 8vw, 44px) !important; }
  .r-ask-card { width: 100% !important; max-width: 360px !important; }
  .r-foot { grid-template-columns: 1fr 1fr !important; gap: 28px !important; }
  .r-foot-brand { grid-column: 1 / -1 !important; }
  .r-foot-bot { font-size: 11px !important; }
  .r-map-wrap > div:first-child > div { height: 360px !important; }
  .r-portal-cta { padding: 8px 12px !important; font-size: 12.5px !important; }
  .r-portal-cta span { display: none; }
  .r-insta h2 { font-size: clamp(28px, 8vw, 42px) !important; }
  .r-brand-name { font-size: 17px !important; max-width: 55vw; }
  .r-about-photo { grid-column: 1 / -1 !important; max-width: 240px !important; margin: 0 auto 24px !important; }
  .r-about-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 380px) {
  .container { padding: 0 14px; }
  .r-foot { grid-template-columns: 1fr !important; }
  .r-foot-brand { grid-column: auto !important; }
  .r-hero-stats { grid-template-columns: 1fr 1fr !important; }
}

.a11y-contrast { filter: contrast(1.25) saturate(1.1); }
.a11y-underline a { text-decoration: underline !important; }
.a11y-reduce-motion *, .a11y-reduce-motion *::before, .a11y-reduce-motion *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
.tip-icon, .lst-icon { transition: transform .25s ease; }
.tip-card:hover .tip-icon, .lst-card:hover .lst-icon { transform: translateY(-3px) rotate(-4deg); }

@keyframes falkeSlideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes falkeFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
