/*
Theme Name: Varupa Physiotherapie
Theme URI: https://varupa.de
Author: Alexander Haar IT-Dienstleistungen
Author URI: https://haar-it.com
Description: Schlankes, blaues Custom-Theme für Physiotherapie Osteopathie Praxis Kinderosteopathie (Tatjana Varupa), Farbpalette direkt aus dem Original-Logo abgeleitet. Kein Page-Builder, keine Slider-Plugins, Performance-first.
Version: 7.4
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: varupa
*/

/* Farben direkt aus dem Logo gesampelt (image.jimcdn.com Original-PNG, 2026-07-04) */
:root{
  --bg:#ffffff;
  --ink:#14181c;
  --blue:#2ea3df;
  --blue-dark:#1c7fb3;
  --blue-light:#8ec9ff;
  --blue-pale:#eef7fd;
  --muted:#57626b;
  --line:#e1eaf1;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Nunito Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.75;font-size:16px;}
h1,h2,h3{font-family:'Merriweather',serif;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
.screen-reader-text{position:absolute;left:-9999px;}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.16,.8,.24,1),transform .9s cubic-bezier(.16,.8,.24,1);}
.reveal.in{opacity:1;transform:none;}

/* Gestaffelte Verzoegerung fuer Karten-/Listen-Raster, damit Elemente nacheinander
   statt alle gleichzeitig einfliegen ("Alex-Feedback 2026-07-04: mehr Leben/Charakter") */
.services>.reveal:nth-child(2),
.varupa-trust-bar>.reveal:nth-child(2),
.team-grid>.reveal:nth-child(2),
.pillar-grid>.reveal:nth-child(2){transition-delay:.12s;}
.services>.reveal:nth-child(3),
.varupa-trust-bar>.reveal:nth-child(3),
.team-grid>.reveal:nth-child(3),
.pillar-grid>.reveal:nth-child(3){transition-delay:.24s;}
.content-block>.reveal:nth-of-type(2),
.complaint-card.reveal:nth-of-type(2),
.treatment-detail.reveal:nth-of-type(2){transition-delay:.08s;}
.complaint-card.reveal:nth-of-type(3),
.treatment-detail.reveal:nth-of-type(3){transition-delay:.16s;}
.complaint-card.reveal:nth-of-type(4){transition-delay:.24s;}

.top-bar{background:var(--ink);color:#c9d6de;font-size:13.5px;padding:9px 6%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;}
.top-bar a{color:#fff;text-decoration:none;font-weight:700;}

.site-header{display:flex;justify-content:space-between;align-items:center;padding:18px 6%;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:100;gap:20px;flex-wrap:wrap;}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);}
.logo img{height:44px;width:auto;}
.logo-text{font-family:'Merriweather',serif;font-size:19px;font-weight:700;line-height:1.2;}
.logo-text small{display:block;font-family:'Nunito Sans',sans-serif;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}
.main-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.main-nav ul{list-style:none;display:flex;align-items:center;flex-wrap:wrap;}
.main-nav a{margin-left:24px;text-decoration:none;color:var(--ink);font-weight:700;font-size:14.5px;}
.main-nav a:hover{color:var(--blue);}

/* Dropdown fuer Menuepunkte mit Unterseiten (z.B. Leistungen > Physiotherapie/Osteopathie/Kinderosteopathie).
   Untermenue wird von wp_nav_menu automatisch als <ul class="sub-menu"> ausgegeben,
   sobald die Seiten in Design > Menues als Kind-Elemente eingerueckt sind. */
.main-nav li{position:relative;}
.main-nav .sub-menu{display:none;position:absolute;top:100%;left:24px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(20,24,28,0.1);padding:8px 0;min-width:220px;flex-direction:column;z-index:110;}
.main-nav li:hover .sub-menu,
.main-nav li:focus-within .sub-menu{display:flex;}
.main-nav .sub-menu li{width:100%;}
.main-nav .sub-menu a{margin-left:0;display:block;padding:10px 18px;font-size:14px;font-weight:600;white-space:nowrap;}
.main-nav .sub-menu a:hover{background:var(--blue-pale);}
.main-nav .menu-item-has-children > a::after{content:' ▾';font-size:11px;}
.cta-small{background:var(--blue);color:#fff !important;padding:10px 20px;border-radius:6px;}
.cta-small:hover{background:var(--blue-dark);}
.cta-karriere{background:#fff;border:2px solid var(--blue);color:var(--blue) !important;padding:8px 18px;border-radius:6px;margin-left:24px;}
.cta-karriere:hover{background:var(--blue-pale);}

/* Mobile-Menü-Button - unsichtbar/inaktiv auf Desktop, s. Media Query unten */
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;}
.nav-toggle span{display:block;width:24px;height:3px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .25s ease;}
.nav-toggle.is-active span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle.is-active span:nth-child(2){opacity:0;}
.nav-toggle.is-active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.hero{padding:64px 6%;display:flex;align-items:center;gap:56px;background:var(--blue-pale);}
.hero-text{flex:1.1;}
.hero-text h1{font-size:38px;font-weight:700;line-height:1.35;margin-bottom:20px;color:var(--ink);}
.hero-text p{color:var(--muted);font-size:17px;max-width:480px;margin-bottom:30px;}

.hero.hero-centered{justify-content:center;}
.hero.hero-centered .hero-text{flex:none;max-width:640px;text-align:center;}
.hero.hero-centered .hero-text p{margin-left:auto;margin-right:auto;}
.hero.hero-centered .btn-row{justify-content:center;}
.hero.hero-centered .cert-row{justify-content:center;}
.btn{display:inline-block;background:var(--blue);color:#fff;padding:15px 32px;border-radius:6px;text-decoration:none;font-weight:700;font-size:15px;border:none;cursor:pointer;}
.btn:hover{background:var(--blue-dark);}
.btn-outline{background:#fff;border:2px solid var(--blue);color:var(--blue);}
.btn-outline:hover{background:var(--blue-pale);}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;}

.cert-row{display:flex;gap:22px;margin-top:34px;flex-wrap:wrap;}
.cert{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink);font-weight:700;}
.cert .dot{width:8px;height:8px;border-radius:50%;background:var(--blue);}

.hero-panel{flex:1;background:#fff;border:1px solid var(--line);border-radius:10px;padding:34px;box-shadow:0 16px 40px rgba(46,163,223,0.14);}
.hero-panel h4{font-family:'Merriweather',serif;font-size:16px;color:var(--blue-dark);margin-bottom:18px;}
.fact{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.fact:last-child{border:none;}
.fact b{color:var(--blue-dark);}

.page-hero{padding:56px 6%;background:var(--blue-pale);}
.page-hero h1{font-size:34px;margin-bottom:14px;}
.page-hero p{color:var(--muted);font-size:17px;max-width:640px;}

section{padding:90px 6%;}
.section-title{text-align:center;max-width:640px;margin:0 auto 56px;}
.section-title p{color:var(--blue-dark);text-transform:uppercase;letter-spacing:1.5px;font-size:13px;font-weight:700;margin-bottom:10px;}
.section-title h2{font-size:30px;font-weight:700;}

/* Trust-Bar: Farben auf Marken-Blau umgestellt (Gemini-Vorschlag nutzte Gruen, passt nicht zur aus dem Logo gesampelten Palette) */
.varupa-trust-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;padding:36px 6%;background:var(--blue-pale);}
.trust-item{flex:1 1 280px;display:flex;align-items:flex-start;gap:12px;}
.trust-icon{font-size:1.4rem;line-height:1;}
.trust-item p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.5;}
.trust-item strong{color:var(--ink);}

.varupa-geo-cta{margin:0;padding:56px 6%;background:var(--blue-pale);border-left:4px solid var(--blue);text-align:center;}
.varupa-geo-cta h2{font-size:28px;margin-bottom:14px;}
.varupa-geo-cta p{color:var(--muted);max-width:640px;margin:0 auto;}
.varupa-geo-cta .cta-buttons{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;margin-top:25px;}
.btn-phone{display:inline-block;padding:15px 32px;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;font-size:15px;border-radius:6px;}
.btn-phone:hover{background:var(--blue-dark);}
.btn-secondary{display:inline-block;padding:15px 32px;background:#fff;border:2px solid var(--blue);color:var(--blue);text-decoration:none;font-weight:700;font-size:15px;border-radius:6px;}
.btn-secondary:hover{background:var(--blue-pale);}

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.services.services-2,.services.services-4{grid-template-columns:repeat(2,1fr);}
.service-card{background:#fff;padding:34px 28px;position:relative;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.service-card-filler{background:#fff;padding:0;}
.service-card .icon{color:var(--blue);font-size:24px;margin-bottom:16px;}
.service-card h3{font-size:17px;font-weight:700;margin-bottom:10px;font-family:'Merriweather',serif;}
.service-card p{color:var(--muted);font-size:14.5px;}
.service-card a{color:var(--blue-dark);font-weight:700;font-size:14px;text-decoration:none;display:inline-block;margin-top:10px;position:relative;z-index:1;}
.service-card a:hover{text-decoration:underline;}

/* Ganze Karte reagiert auf Hover/Klick, nicht nur der Textlink "Mehr erfahren" -
   Alex-Feedback 2026-07-11: Besucher soll sofort sehen, dass die ganze Kachel
   klickbar ist. Stretched-Link-Technik: das ::after-Pseudo-Element des Links
   deckt die ganze Karte ab, dadurch ist ueberall in der Kachel klickbar,
   ohne das HTML/die Kartenstruktur aendern zu muessen. */
.service-card:has(a):hover{background:var(--blue-pale);box-shadow:0 12px 26px rgba(20,24,28,.09);transform:translateY(-3px);z-index:2;}
.service-card:has(a):active{transform:translateY(-1px);box-shadow:0 6px 14px rgba(20,24,28,.08);}
.service-card a::after{content:'';position:absolute;inset:0;}
.sub-service-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.sub-service-block h4{font-size:14px;color:var(--blue-dark);margin-bottom:4px;font-family:'Merriweather',serif;}
.sub-service-block p{font-size:13.5px;color:var(--muted);margin-bottom:0;}

.content-block{max-width:820px;margin:0 auto;}
.content-block h2{font-size:26px;margin:34px 0 14px;}
.content-block h2:first-child{margin-top:0;}
.content-block h3{font-size:19px;color:var(--blue-dark);margin:30px 0 14px;}
.content-block p{color:var(--muted);margin-bottom:16px;}
.content-block ul{color:var(--muted);font-size:15px;line-height:1.7;padding-left:20px;margin-bottom:16px;}
.content-block ul li{margin-bottom:8px;}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:20px;}
.pillar-card{background:#fff;padding:28px 24px;}
.pillar-card h3{font-family:'Merriweather',serif;font-size:17px;color:var(--blue-dark);margin-bottom:10px;}
.pillar-card p{color:var(--muted);font-size:14.5px;}

/* Granulare Leistungsliste (z.B. Physiotherapie-Seite) mit In-Page-Sprungmarken */
.treatment-links{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 40px;list-style:none;}
.treatment-links a{background:var(--blue-pale);color:var(--blue-dark);padding:9px 16px;border-radius:100px;text-decoration:none;font-size:14px;font-weight:700;}
.treatment-links a:hover{background:var(--blue-light);color:#fff;}
.treatment-detail{border-top:1px solid var(--line);padding:24px 0;scroll-margin-top:100px;}
.treatment-detail h2{font-family:'Merriweather',serif;font-size:20px;color:var(--blue-dark);margin-bottom:8px;}
.treatment-detail h3{font-family:'Merriweather',serif;font-size:18px;color:var(--blue-dark);margin-bottom:8px;}
.treatment-detail p{color:var(--muted);font-size:14.5px;margin-bottom:10px;}
.treatment-detail ul{color:var(--muted);font-size:14.5px;padding-left:20px;}

.team{background:var(--blue-pale);}
.team-grid{display:grid;grid-template-columns:1fr;max-width:480px;margin:0 auto;gap:24px;}
.team-grid.team-grid-multi{grid-template-columns:repeat(2,1fr);max-width:900px;}
.team-grid.team-grid-multi .team-card{align-items:flex-start;}
.team-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:28px;display:flex;gap:16px;align-items:center;}
.avatar{width:64px;height:64px;border-radius:8px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0;overflow:hidden;}
.avatar img{width:100%;height:100%;object-fit:cover;}
.avatar.has-photo{width:72px;height:72px;padding:0;background:none;border-radius:50%;}
.avatar.has-photo img{border-radius:50%;}
.team-card h3{font-size:16px;font-weight:700;margin-bottom:4px;font-family:'Merriweather',serif;}
.team-card p{font-size:13.5px;color:var(--muted);}

/* ===== Echte Praxisfotos (v5.1, Briefing 2026-07-16/17) =====
   Bildrahmen 16px Radius - bewusst runder als die 10px-Karten des Themes,
   damit Fotos weicher/lebendiger wirken, aber in derselben Formsprache
   bleiben. Alex-Feedback-Historie: kein einzelnes grosses Hero-Foto mit
   Patientin (wirkte wie Fitnessstudio-Werbung), Portrait kompakt statt
   raumgreifend, Empfangsfoto-Ausschnitt nach oben verschoben (Koepfe
   wurden sonst abgeschnitten). */
.varupa-figure{margin:0;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px rgba(20,24,28,.08);}
.varupa-figure img{width:100%;height:100%;object-fit:cover;display:block;}
.varupa-figure figcaption{padding:12px 18px;font-size:13.5px;color:var(--muted);background:#fff;border-top:1px solid var(--line);}
.varupa-figure.is-accent{border:none;box-shadow:0 0 0 4px var(--blue-pale), 0 14px 36px rgba(46,163,223,.18);}
.varupa-figure.ratio-portrait img{aspect-ratio:3/4;}
.varupa-figure.is-inline{max-width:520px;margin:26px auto;}

/* Bild + Text nebeneinander (Manuelle-Therapie-Akzent, allgemeine Nutzung) */
.media-text{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:40px;align-items:center;max-width:1000px;margin:0 auto;}
.media-text.media-right{grid-template-columns:minmax(0,1fr) minmax(0,380px);}
.media-text.media-right .media-text-figure{order:2;}
.media-text h2{margin-bottom:14px;}
.media-text p{margin-bottom:14px;}
.media-text h3{font-size:19px;color:var(--blue-dark);margin:20px 0 14px;}
.media-text ul{color:var(--muted);font-size:15px;line-height:1.7;padding-left:20px;margin-bottom:16px;}
.media-text ul li{margin-bottom:8px;}

/* Kompakte Portrait-Variante (rundes Bild statt grosser Bildspalte) fuer
   "Ihre Therapeutin" - Alex-Feedback: grosses Einzelportrait war "too much" */
.media-text.is-compact{grid-template-columns:180px minmax(0,1fr);gap:32px;align-items:start;}
.media-text.is-compact .varupa-figure{border-radius:50%;width:180px;height:180px;box-shadow:0 8px 22px rgba(20,24,28,.12);}
.media-text.is-compact .varupa-figure img{aspect-ratio:1/1;}

/* Bilderkomplex "Unsere Praxis" - Mosaik statt Einzel-Hero-Foto.
   Reihenfolge (Alex-Feedback 2026-07-17): Empfang (gross) -> Training ->
   Trainingsgeraete -> Kind -> Magnetfeldtherapie -> Elektrotherapie
   (breiter Abschluss), darunter kleines rundes Signatur-Portrait. */
.praxis-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;grid-auto-flow:dense;gap:14px;max-width:1080px;margin:0 auto;}
.praxis-mosaic .tile{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,24,28,.08);}
.praxis-mosaic .tile-link{display:block;width:100%;height:100%;}
.praxis-mosaic .tile img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;transition:transform .35s ease;}
.praxis-mosaic .tile-featured img{object-position:center 18%;}
.praxis-mosaic .tile-link:hover img{transform:scale(1.05);}
.praxis-mosaic .tile-label{position:absolute;left:0;right:0;bottom:0;padding:22px 16px 12px;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(180deg, rgba(20,24,28,0) 0%, rgba(20,24,28,.75) 100%);}
.praxis-mosaic .tile.tile-featured{grid-column:span 2;grid-row:span 2;}
.praxis-mosaic .tile.tile-wide{grid-column:span 4;grid-auto-rows:130px;}
.praxis-mosaic .tile.tile-wide img{aspect-ratio:16/5;}

/* Manuelle-Therapie-Kachel auf /physiotherapie/ mit Bild daneben statt
   der generischen Einspalten-Karte der uebrigen Kategorien */
.treatment-detail-media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:32px;align-items:start;}

/* Beschwerden-Rubrik */
.complaint-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:28px 26px;margin-bottom:20px;}
.complaint-card h3{font-family:'Merriweather',serif;font-size:19px;color:var(--blue-dark);margin-bottom:14px;}
.complaint-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.complaint-cols h4{font-size:14px;text-transform:uppercase;letter-spacing:0.5px;color:var(--ink);margin-bottom:8px;}
.complaint-cols p,.complaint-cols ul{color:var(--muted);font-size:14.5px;}
.complaint-cols ul{padding-left:18px;}
.disclaimer-box{background:var(--blue-pale);border-left:4px solid var(--blue);padding:18px 22px;border-radius:6px;font-size:14px;color:var(--muted);margin-bottom:40px;}
.disclaimer-inline{margin-top:14px;margin-bottom:0;padding:10px 16px;font-size:13px;}

/* Karriere-Seite */
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:26px 0 40px;}
.benefit-card{background:var(--blue-pale);border-radius:10px;padding:22px 20px;text-align:center;}
.benefit-card .icon{font-size:26px;margin-bottom:10px;}
.benefit-card p{font-size:14px;color:var(--ink);font-weight:600;}
.job-card{border:1px solid var(--line);border-radius:10px;padding:24px 26px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.job-card h3{font-family:'Merriweather',serif;font-size:18px;margin-bottom:6px;}
.job-card p{color:var(--muted);font-size:14px;}
.job-empty{background:var(--blue-pale);border-radius:10px;padding:30px;text-align:center;color:var(--muted);}

.contact{background:var(--ink);color:#fff;}
.contact-info h2{font-size:28px;margin-bottom:16px;}
.contact-info p{color:#c3d2d9;font-size:14.5px;margin-bottom:6px;}
.map-embed{margin-top:26px;border-radius:10px;overflow:hidden;border:1px solid var(--line);}
.map-consent-note{font-size:13px;color:#c3d2d9;margin-top:10px;}

.mobile-call-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--blue);color:#fff;text-align:center;padding:14px;font-weight:700;text-decoration:none;z-index:200;box-shadow:0 -4px 14px rgba(0,0,0,0.15);}

/* "Nach oben"-Button - auf allen Geraeten (Desktop/Tablet/Smartphone) unten
   rechts fixiert, erscheint erst nach etwas Scrollen (s. assets/js/back-to-top.js).
   Alex-Feedback 2026-07-11: "sehr wichtiges Element", ueberall verfuegbar. */
.back-to-top{position:fixed;bottom:24px;right:24px;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;border:none;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(20,24,28,.2);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease,background-color .2s ease;z-index:190;}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}
.back-to-top:hover{background:var(--blue-dark);}

.site-footer{padding:22px 6%;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--line);}
.footer-legal{margin-bottom:10px;}
.footer-legal a{margin:0 12px;color:var(--muted);text-decoration:none;font-weight:600;}
.footer-legal a:hover{color:var(--blue-dark);text-decoration:underline;}
.footer-credit{margin-top:8px;font-size:12px;color:var(--muted);}
.footer-credit a{color:var(--muted);text-decoration:underline;}
.footer-credit a:hover{color:var(--blue-dark);}

/* ===== Tablet (601px–900px): 2-spaltige Raster statt Desktop-3-Spalten,
   aber noch kein Mobile-Menü/keine gestapelte Hero-Sektion ===== */
@media(max-width:900px){
  .hero{flex-direction:column;}
  .complaint-cols{grid-template-columns:1fr;}
  .services:not(.services-2),.pillar-grid,.benefit-grid{grid-template-columns:repeat(2,1fr);}
  .team-grid{max-width:520px;}
  .service-card-filler{display:none;}
  .mobile-call-bar{display:block;}
  body{padding-bottom:56px;}
  section{padding:60px 6%;}
  /* Anruf-Leiste liegt unten voller Breite - "Nach oben"-Button hoeher setzen, damit er nicht ueberlappt */
  .back-to-top{bottom:78px;right:16px;width:42px;height:42px;font-size:18px;}
  .hero{padding:48px 6%;}
  .page-hero{padding:40px 6%;}

  /* Mobile-Menü: Hamburger-Button einblenden, Nav als aufklappbares Panel
     unter dem Header statt der bisherigen reinen display:none-Loesung
     (vorher verschwand die komplette Navigation auf Mobilgeraeten ohne
     Ersatz - Alex-Feedback 2026-07-11: "mobile Version nicht perfekt"). */
  .nav-toggle{display:flex;}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 30px rgba(20,24,28,.1);padding:8px 6% 20px;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 70px);overflow-y:auto;}
  .main-nav.is-open{display:flex;}
  .main-nav ul{flex-direction:column;align-items:stretch;width:100%;}
  .main-nav li{width:100%;}
  .main-nav a{margin-left:0;padding:14px 0;border-bottom:1px solid var(--line);width:100%;font-size:15.5px;}
  .main-nav .sub-menu{display:block;position:static;box-shadow:none;border:none;padding:0 0 0 18px;min-width:0;background:none;}
  .main-nav .sub-menu a{padding:12px 0;font-size:14.5px;border-bottom:1px solid var(--line);}
  .main-nav .menu-item-has-children > a::after{content:'';}
  .cta-karriere,.cta-small{display:block;margin-left:0;margin-top:14px;text-align:center;}

  /* Bilderkomplex + Bild/Text-Bausteine am Tablet */
  .praxis-mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
  .praxis-mosaic .tile.tile-featured{grid-column:span 2;grid-row:span 1;}
  .praxis-mosaic .tile.tile-featured img{aspect-ratio:16/9;}
  .praxis-mosaic .tile.tile-wide{grid-column:span 2;}
  .treatment-detail-media{grid-template-columns:1fr;}
  .treatment-detail-media .varupa-figure{max-width:340px;margin:0 auto;}
  .media-text,
  .media-text.media-right{grid-template-columns:1fr;gap:24px;}
  .media-text.media-right .media-text-figure{order:0;}
  .media-text.is-compact{grid-template-columns:140px minmax(0,1fr);gap:24px;}
}

/* Tablet-only (601-900px): letzte, unpaarige Karte im 2-spaltigen Raster
   (z.B. /beschwerden/ mit ungerader Themenanzahl) ueber beide Spalten
   zentrieren statt unten links haengen zu lassen mit auffaelligem leeren
   Feld daneben (Alex-Feedback 2026-07-11: "am Tablet nicht wie am Desktop
   zentriert"). Bewusst eigener, enger Bereich (nicht einfach in den
   max-width:900px-Block gepackt), damit diese Regel NICHT versehentlich
   auch die 1-spaltige Mobile-Ansicht unter 600px veraendert - dort ist
   jede Karte ohnehin schon volle Breite.
   Korrektur 2026-07-11 (2): erste Fassung machte die Karte per max-width:50%
   schmaler und zentrierte sie per margin:auto - dabei blieb links/rechts
   die blaeuliche Grid-Hintergrundfarbe sichtbar (Alex-Feedback: "immer noch
   eine andere Farbe... anstatt das Weisse"), weil nur die Karten-Box selbst
   schmaler wurde, nicht die Zeile. Jetzt bleibt die Karte volle Zeilenbreite
   (eigener weisser Hintergrund deckt die komplette Zeile ab, kein Farbrest
   mehr sichtbar), nur der Textinhalt wird zentriert. */
@media(min-width:601px) and (max-width:900px){
  .services:not(.services-2) .service-card.service-card-last{
    grid-column:1 / -1;
    text-align:center;
  }
  .services:not(.services-2) .service-card.service-card-last p{
    max-width:440px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* ===== Mobile (bis 600px): 1 Spalte, kleinere Typografie ===== */
@media(max-width:600px){
  .services,.team-grid,.pillar-grid,.benefit-grid,.team-grid.team-grid-multi{grid-template-columns:1fr;}
  .hero-text h1{font-size:29px;}
  .page-hero h1{font-size:27px;}
  .section-title h2{font-size:24px;}
  .varupa-geo-cta h2{font-size:23px;}
  .content-block h2{font-size:22px;}
  .top-bar{font-size:12.5px;padding:8px 6%;}
  .service-card{padding:26px 22px;}

  .praxis-mosaic{grid-template-columns:1fr;grid-auto-rows:220px;}
  .praxis-mosaic .tile.tile-featured,
  .praxis-mosaic .tile.tile-wide{grid-column:span 1;}
  .media-text.is-compact{grid-template-columns:1fr;gap:16px;justify-items:center;text-align:center;}
  .media-text.is-compact .varupa-figure{width:120px;height:120px;}
}
