/* ============================================================
   pflegori Heimpflege — Responsive overrides
   ============================================================ */

/* ---- tablet & small laptop: ≤1024px ---- */
@media (max-width: 1024px) {
  /* Navbar: switch to the mobile menu from 1024px down */
  .nav-links {
    display: none;
  }
  .nav-toggle {
    display: block;
  }
  #mobile-menu {
    display: block;
  }

  .service-why,
  .service-relief,
  .service-process,
  .service-details,
  .service-info,
  .service-benefits,
  .service-impact,
  .service-why-us,
  .service-faq,
  .service-contact {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .service-hero {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .section-title {
    font-size: 2rem;
    line-height: 1.2;
  }
  .section-tag {
    font-size: 0.75rem;
  }

  .service-hero-title {
    font-size: 2.75rem;
    line-height: 1.15;
  }

  /* split layouts collapse to a single column */
  .grid-2col {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .impact-grid {
    grid-template-columns: 1fr;
  }
  .hero-grid {
    gap: 3rem;
  }

  /* hero image is decorative — drop it below 1024px */
  .service-hero .hero-media {
    display: none;
  }

  /* image stacks above text in the relief section */
  .relief-content {
    order: 2;
  }
  .relief-media {
    order: 1;
  }

  .process-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .details-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .info-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .contact-form-card {
    padding: 2.5rem;
  }
}

/* ============================================================
   Page: Unsere Leistungen (services.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-services .services-hero-title {
    font-size: 3rem;
  }
  .page-services .services-hero-text {
    font-size: 1.125rem;
  }

  .page-services .services-listing-inner {
    gap: 6rem;
  }
  .page-services .services-item {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .page-services .services-media-img {
    height: 420px;
  }
  .page-services .services-number {
    font-size: 8rem;
  }
  .page-services .services-text--first,
  .page-services .services-media--second {
    order: 0;
  }
  .page-services .services-item-title {
    font-size: 3rem;
  }

  .page-services .services-additional-row {
    flex-direction: column;
  }
  .page-services .services-additional-media,
  .page-services .services-additional-content {
    width: 100%;
  }
  .page-services .services-additional-media {
    height: 360px;
  }
}


/* ---- mobile: ≤767px ---- */
@media (max-width: 767px) {
  .service-hero,
  .service-why,
  .service-relief,
  .service-process,
  .service-details,
  .service-info,
  .service-benefits,
  .service-impact,
  .service-why-us,
  .service-faq,
  .service-contact {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .section-head {
    margin-bottom: 2.5rem;
  }
  .section-title {
    font-size: 1.5rem;
    line-height: 1.25;
  }
  .section-tag {
    font-size: 0.6875rem;
  }

  .service-hero-title {
    font-size: 2.25rem;
    line-height: 1.2;
  }

  .hero-grid {
    gap: 2.5rem;
  }

  /* single-column grids */
  .process-grid,
  .details-grid,
  .benefits-grid,
  .feature-chips,
  .form-row {
    grid-template-columns: 1fr;
  }

  /* smaller imagery */
  .media-frame img {
    height: 320px;
  }
  .media-frame--tall img {
    height: 400px;
  }
  .hero-img {
    height: 360px;
  }
  .impact-img {
    height: 360px;
  }
  .faq-image img {
    height: 14rem;
  }

  /* FAQ density */
  .faq-item summary {
    padding: 1.5rem;
  }
  .faq-question {
    font-size: 1.125rem;
  }
  .faq-answer {
    padding: 0 1.5rem 1.5rem;
  }

  /* contact */
  .contact-text {
    font-size: 1.125rem;
  }
  .contact-form-card {
    padding: 1.75rem;
    border-radius: 2rem;
  }

  /* floating buttons hug the corner a little tighter */
  .floating-actions {
    right: 1rem;
    bottom: 1rem;
    gap: 0.75rem;
  }
  .float-btn {
    width: 3rem;
    height: 3rem;
    font-size: 1.25rem;
  }

  /* footer stacks on mobile */
  .footer-grid {
    grid-template-columns: 1fr !important;
  }
  .footer-bottom {
    flex-direction: column !important;
  }

  /* thankyou page */
  .page-thankyou {
    padding: 1rem;
  }
  .page-thankyou .thankyou-card {
    padding: 4rem 1.5rem;
  }
  .page-thankyou .thankyou-title {
    font-size: 2.25rem;
  }
}

@media (max-width: 767px) {
  .page-services .services-hero-title {
    font-size: 2.5rem;
  }

  .page-services .services-media-img {
    height: 320px;
  }
  .page-services .services-number {
    font-size: 6rem;
  }
  .page-services .services-item-title {
    font-size: 2.25rem;
  }

  .page-services .services-addon-grid {
    grid-template-columns: 1fr;
  }

  .page-services .services-cta-title {
    font-size: 2.25rem;
  }
  .page-services .services-cta-text {
    font-size: 1.125rem;
  }
}

/* ============================================================
   Page: Kontakt (contact.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-contact .contact-hero {
    padding: 5rem 0;
  }

  .page-contact .contact-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-contact .contact-panel {
    flex-direction: column;
  }
  .page-contact .contact-panel-form,
  .page-contact .contact-panel-info {
    width: 100%;
  }

  .page-contact .contact-form-section,
  .page-contact .contact-faq,
  .page-contact .contact-areas,
  .page-contact .contact-testimonials,
  .page-contact .contact-cta {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

@media (max-width: 767px) {
  .page-contact .contact-hero {
    padding: 4rem 0;
  }
  .page-contact .contact-hero-title {
    font-size: 3rem;
    line-height: 1.25;
  }
  .page-contact .contact-hero-text {
    font-size: 1.125rem;
  }

  .page-contact .contact-cards-grid,
  .page-contact .testimonial-grid,
  .page-contact .areas-grid {
    grid-template-columns: 1fr;
  }

  .page-contact .contact-form-section,
  .page-contact .contact-faq,
  .page-contact .contact-areas,
  .page-contact .contact-testimonials,
  .page-contact .contact-cta {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .page-contact .contact-panel-form,
  .page-contact .contact-panel-info {
    padding: 2.5rem;
  }

  .page-contact .areas-media {
    height: 320px;
  }

  .page-contact .contact-cta-title {
    font-size: 2.25rem;
  }
}

/* ============================================================
   Page: Management & Organisation (management.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-management .mgmt-hero {
    padding-top: 5rem;
    padding-bottom: 5rem;
    min-height: 0;
  }
  .page-management .mgmt-hero-title {
    font-size: 3.75rem;
  }

  .page-management .mgmt-about,
  .page-management .mgmt-ceo,
  .page-management .mgmt-leadership,
  .page-management .mgmt-organisation,
  .page-management .mgmt-quality,
  .page-management .mgmt-principles,
  .page-management .mgmt-cta {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .page-management .mgmt-org-level,
  .page-management .mgmt-org-teams,
  .page-management .mgmt-principles-grid,
  .page-management .mgmt-ceo-grid {
    grid-template-columns: 1fr;
  }

  .page-management .mgmt-quality-layout {
    flex-direction: column;
  }
  .page-management .mgmt-quality-intro,
  .page-management .mgmt-quality-grid {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .page-management .mgmt-hero,
  .page-management .mgmt-about,
  .page-management .mgmt-ceo,
  .page-management .mgmt-leadership,
  .page-management .mgmt-organisation,
  .page-management .mgmt-quality,
  .page-management .mgmt-principles,
  .page-management .mgmt-cta {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .page-management .mgmt-hero-title {
    font-size: 3rem;
  }
  .page-management .mgmt-hero-text {
    font-size: 1.125rem;
  }
  .page-management .mgmt-hero-actions {
    flex-direction: column;
  }
  .page-management .mgmt-quality-grid {
    grid-template-columns: 1fr;
  }
  .page-management .mgmt-cta-title {
    font-size: 3rem;
  }
}

/* ============================================================
   Page: Standorte & Partner (standorte.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-standorte .locations-hero {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .page-standorte .locations-hero-title {
    font-size: 3rem;
    line-height: 1.15;
  }

  .page-standorte .locations-hq,
  .page-standorte .locations-areas,
  .page-standorte .locations-partner,
  .page-standorte .locations-coop,
  .page-standorte .locations-benefits,
  .page-standorte .locations-cta {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .page-standorte .locations-hq-panel {
    flex-direction: column;
  }
  .page-standorte .locations-hq-text {
    width: 100%;
    padding: 3rem;
  }
  .page-standorte .locations-hq-map {
    width: 100%;
    min-height: 20rem;
  }

  .page-standorte .locations-areas-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-standorte .locations-partner-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-standorte .locations-cta-title {
    font-size: 2.5rem;
  }
}

@media (max-width: 767px) {
  .page-standorte .locations-hero,
  .page-standorte .locations-hq,
  .page-standorte .locations-areas,
  .page-standorte .locations-partner,
  .page-standorte .locations-coop,
  .page-standorte .locations-benefits,
  .page-standorte .locations-cta {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .page-standorte .locations-coop-grid {
    grid-template-columns: 1fr;
  }
  .page-standorte .locations-coop-card {
    padding: 2rem;
  }
  .page-standorte .locations-funding-logos {
    gap: 2rem;
  }

  .page-standorte .locations-hero-title {
    font-size: 3rem;
    line-height: 1.1;
  }
  .page-standorte .locations-hero-lead {
    font-size: 1.125rem;
  }
  .page-standorte .locations-hero-actions {
    flex-direction: column;
  }
  .page-standorte .locations-hero-card {
    padding: 2rem;
  }

  .page-standorte .locations-hq-text {
    padding: 2rem;
  }
  .page-standorte .locations-hq-grid {
    grid-template-columns: 1fr;
  }

  .page-standorte .locations-areas-grid {
    grid-template-columns: 1fr;
  }
  .page-standorte .locations-partner-grid {
    grid-template-columns: 1fr;
  }

  .page-standorte .locations-cta-title {
    font-size: 1.875rem;
  }
}

/* ============================================================
   Page: Jobs & Karriere (career.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-career .career-positions,
  .page-career .career-why-us,
  .page-career .career-benefits,
  .page-career .career-process,
  .page-career .career-voices,
  .page-career .career-cta {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .page-career .career-hero-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .page-career .career-benefits-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .page-career .career-why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-career .career-jobs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-career .career-process-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-career .career-voices-grid {
    grid-template-columns: 1fr;
  }

  .page-career .career-benefits-media {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .page-career .career-positions,
  .page-career .career-why-us,
  .page-career .career-benefits,
  .page-career .career-process,
  .page-career .career-voices,
  .page-career .career-cta {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .page-career .career-hero-inner {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .page-career .career-hero-title {
    font-size: 3rem;
  }
  .page-career .career-hero-lead {
    font-size: 1.25rem;
  }
  .page-career .career-hero-actions {
    flex-direction: column;
  }

  .page-career .career-apply-card {
    padding: 2rem;
  }

  .page-career .career-why-title {
    font-size: 2.25rem;
  }
  .page-career .career-positions-title {
    font-size: 2.25rem;
  }
  .page-career .career-benefits-title {
    font-size: 2.25rem;
  }

  .page-career .career-positions-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .page-career .career-why-grid,
  .page-career .career-jobs-grid,
  .page-career .career-process-grid,
  .page-career .career-benefits-list {
    grid-template-columns: 1fr;
  }

  .page-career .career-cta-title {
    font-size: 3rem;
  }
}

/* ============================================================
   Page: Home (home.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-home .home-hero {
    height: auto;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .page-home .home-hero-grid {
    flex-direction: column;
    gap: 3rem;
  }
  .page-home .home-hero-content,
  .page-home .home-hero-form-col {
    width: 100%;
  }
  .page-home .home-hero-card {
    padding: 2rem;
  }

  .page-home .home-medical-layout {
    flex-direction: column;
  }
  .page-home .home-medical-intro,
  .page-home .home-medical-grid {
    width: 100%;
  }

  .page-home .home-care-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-home .home-additional-layout {
    flex-direction: column;
  }
  .page-home .home-additional-media,
  .page-home .home-additional-content {
    width: 100%;
  }

  .page-home .home-quality-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-home .home-products-card {
    flex-direction: column;
    padding: 2.5rem 2rem;
  }
  .page-home .home-products-intro,
  .page-home .home-products-channels {
    width: 100%;
  }

  .page-home .home-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .page-home .home-hero-title {
    font-size: 3rem;
  }
  .page-home .home-hero-lead {
    font-size: 1.125rem;
  }
  .page-home .home-hero-actions {
    flex-direction: column;
  }
  .page-home .home-hero-form-row {
    grid-template-columns: 1fr;
  }
  .page-home .home-hero-card-logo {
    display: none;
  }

  .page-home .home-philosophy-row {
    flex-direction: column;
  }
  .page-home .home-value-sep {
    display: none;
  }

  .page-home .home-services-title {
    font-size: 2.25rem;
  }
  .page-home .home-services-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-medical-layout {
    flex-direction: column;
  }
  .page-home .home-medical-intro,
  .page-home .home-medical-grid {
    width: 100%;
  }
  .page-home .home-medical-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-care-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-additional-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-quality-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-products-channels {
    grid-template-columns: 1fr;
  }
  .page-home .home-products-channel--wide {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }

  .page-home .home-testimonials-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-stats-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Responsive polish pass (sitewide)
   ============================================================ */

@media (max-width: 1024px) {
  /* footer: 4 columns are cramped on tablets - go 2x2 */
  .footer-grid { grid-template-columns: repeat(2, 1fr); }

  /* career hero kept its 90vh without vertical padding on tablet */
  .page-career .career-hero-inner { padding-top: 3rem; padding-bottom: 3rem; }

  /* stacked image columns need a definite height once they go full-width */
  .page-home .home-additional-media { height: 360px; }
}

@media (max-width: 767px) {
/*   .page-management .mgmt-stats-grid { grid-template-columns: 1fr; } */
	  .page-management .mgmt-stats-grid {
		   gap: 0.9rem;
	   }
	.page-management .mgmt-stat-card {
		padding: 1.2rem;
	}
	.page-management .mgmt-stat-number {
    font-size: 2rem;
    line-height: 1;
    margin-top: 0.5rem;
}
	.why-content, .relief-content {
		gap: 1rem;
	}

  /* stacked media a bit shorter on phones */
  .page-home .home-additional-media { height: 280px; }
  .page-services .services-additional-media { height: 280px; }

  /* career CTA pills: allow wrapping, tighter gap */
  .page-career .career-cta-pills { gap: 1rem; }
}

/* ============================================================
   Page: Impressum (impressum.html)
   ============================================================ */

@media (max-width: 1024px) {
  .page-impressum .impressum-hero { padding: 4rem 0; }
  .page-impressum .impressum-title { font-size: 2.75rem; }
  .page-impressum .legal { padding: 4rem 0; }
}

@media (max-width: 767px) {
  .page-impressum .impressum-hero { padding: 3rem 0; }
  .page-impressum .impressum-title { font-size: 2.25rem; }
  .page-impressum .legal { padding: 3rem 0; }
  .page-impressum .legal-card { padding: 1.5rem; }
}

/* ============================================================
   Tablet range (768–1024px): card grids that are 3 or 4 columns
   on desktop collapse to 2 columns so cards stay readable.
   (Phones ≤767px collapse to a single column via the rules above.)
   ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Home */
  .page-home .home-services-grid,
  .page-home .home-care-grid,
  .page-home .home-quality-grid,
  .page-home .home-stats-grid,
  /* Service-detail pages (Behandlungspflege / Pflege / Hauswirtschaft) */
  .page-service .process-grid,
  .page-service .details-grid,
  .page-service .benefits-grid,
  /* Management & Organisation */
  .page-management .mgmt-principles-grid,
  .page-management .mgmt-org-level,
  .page-management .mgmt-org-teams,
  /* Standorte & Partner */
  .page-standorte .locations-areas-grid,
  .page-standorte .locations-partner-grid,
  /* Kontakt */
  .page-contact .contact-cards-grid,
  .page-contact .testimonial-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
