/* Desktop: three steps should use the full row, not three of five columns. */
@media (min-width:961px) {
  #ablauf .steps-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* Desktop keeps the full service-area overview expanded; mobile gets a disclosure. */
#einsatzgebiet .einsatz-zones-summary { display:none; }

@media (max-width:600px) {
  main.page > section { padding-top:2.25rem; }
  main.page > #hero { padding-top:1.25rem; }
  .section-header { margin-bottom:1.15rem; }

  #hero .hero { gap:1rem; }
  #hero .hero-title { font-size:clamp(1.9rem,7vw,2.3rem);line-height:1.13; }
  #hero .hero-subtitle { margin:.6rem 0 .8rem;font-size:1rem;line-height:1.5; }
  #hero .hero-bullets { gap:.4rem;margin:.75rem 0 .85rem; }
  #hero .hero-bullet { font-size:.88rem;line-height:1.4; }
  #hero .hero-actions { gap:.35rem .5rem; }
  #hero .hero-actions .btn { min-height:44px;padding:.65rem .45rem;font-size:.84rem; }
  #hero .hero-actions .btn-secondary { min-height:40px;padding:.35rem .25rem;border-color:transparent;background:transparent;box-shadow:none;color:var(--accent);text-decoration:underline;text-underline-offset:3px; }
  #hero .hero-note { margin-top:.35rem;font-size:.78rem;line-height:1.45; }

  #reparatur-umstieg { margin-top:1.25rem;padding:1rem; }
  #reparatur-umstieg h2 { font-size:1.12rem;line-height:1.35; }
  #reparatur-umstieg p { font-size:.88rem;line-height:1.5; }
  #reparatur-umstieg .repair-entry-links { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem; }
  #reparatur-umstieg .repair-choice { min-height:72px;padding:.65rem .55rem;flex-direction:row;align-items:center;gap:.45rem;font-size:.78rem;line-height:1.35; }
  #reparatur-umstieg .choice-icon { width:24px;height:24px; }
  #reparatur-umstieg .macbook-entry { margin-top:.7rem!important;padding-top:.65rem;font-size:.86rem; }

  #leistungen .request-choices { display:none; }
  #leistungen .cards-grid { gap:.55rem; }
  #leistungen .service-card { display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;align-items:start;column-gap:.7rem;row-gap:.15rem;padding:.8rem .9rem; }
  #leistungen .service-icon { grid-column:1;grid-row:1 / span 2;width:40px;height:40px;margin:0; }
  #leistungen .service-title { grid-column:2;grid-row:1;margin:.05rem 0 0;min-height:0;font-size:.98rem;line-height:1.35; }
  #leistungen .service-subline { grid-column:2;grid-row:2;margin:.15rem 0 0;min-height:0;font-size:.82rem;line-height:1.45; }
  #leistungen .service-text,
  #leistungen .service-list { display:none; }
  #leistungen .service-footer { grid-column:2;grid-row:3;display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin:0;padding-top:.35rem;font-size:.85rem;line-height:1.4; }
  #leistungen .service-link-row { display:none; }

  #ablauf .steps-grid { grid-template-columns:1fr;gap:.55rem; }
  #ablauf .step-card { display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;column-gap:.7rem;row-gap:.1rem;padding:.85rem .95rem; }
  #ablauf .step-number { grid-column:1;grid-row:1 / span 2;width:30px;height:30px;margin:0; }
  #ablauf .step-title { grid-column:2;margin:0;font-size:.96rem; }
  #ablauf .step-card p { grid-column:2;margin:.15rem 0 0;font-size:.86rem;line-height:1.45; }

  #preise .pricing-layout { grid-template-columns:1fr;gap:0; }
  #preise .pricing-side,
  #preise .pricing-grid > div:nth-child(2) { display:none; }
  #preise .pricing-main { padding:1rem; }
  #preise .pricing-rate { font-size:2rem; }
  #preise .pricing-note { font-size:.84rem;line-height:1.5; }

  #einsatzgebiet .einsatz-zones-disclosure { min-width:0;overflow:hidden;border:1px solid var(--border-mid);border-radius:12px;background:var(--bg-soft); }
  #einsatzgebiet .einsatz-zones-summary { display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:.75rem .9rem;list-style:none;font-weight:600;cursor:pointer; }
  #einsatzgebiet .einsatz-zones-summary::-webkit-details-marker { display:none; }
  #einsatzgebiet .einsatz-zones-summary::after { content:'+';font-size:1.2rem;color:var(--accent); }
  #einsatzgebiet .einsatz-zones-disclosure[open] .einsatz-zones-summary::after { content:'−'; }
  #einsatzgebiet .einsatz-zones { gap:.6rem;padding:0 .65rem .65rem; }
  #einsatzgebiet .einsatz-zone { padding:.75rem; }
  #einsatzgebiet .einsatz-info { gap:.6rem; }
  #einsatzgebiet .einsatz-info .einsatz-card:nth-child(2) { display:none; }

  #kontakt .contact-grid { display:flex;flex-direction:column;gap:1rem; }
  #kontakt .contact-info { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem; }
  #kontakt .contact-info .contact-block { min-width:0;padding:.8rem; }
  #kontakt .contact-info .contact-value { min-width:0;overflow-wrap:anywhere; }
  #kontakt .contact-info .contact-value .btn { box-sizing:border-box;max-width:100%;min-width:0;padding:.55rem .35rem;font-size:.78rem;line-height:1.25;white-space:normal;justify-content:center; }
  #kontakt .contact-info .contact-note-aside { grid-column:1 / -1; }

  /* Call actions remain in the hero/contact; no floating overlay on mobile. */
  .fab-call { display:none; }
}

@media (max-width:360px) {
  #reparatur-umstieg .repair-choice { padding:.55rem .45rem;font-size:.74rem; }
  #hero .hero-actions .btn { font-size:.79rem; }
  #kontakt .contact-info { grid-template-columns:1fr; }
  #kontakt .contact-info .contact-note-aside { grid-column:auto; }
}
