/* =========================================================================
   HOME4MOTION Hub — Prototyp v4
   ========================================================================= */
:root {
  --brand-dark:#50586D;
  --brand-dark-2:#3E4557;
  --ink:#2A2E3B;
  --muted:#6B7280;
  --line:#E5E7EB;
  --bg:#FFFFFF;
  --bg-soft:#F7F8FA;
  --accent:#EC7E41;
  --accent-2:#FA854F;   /* helleres Orange — Erwachsenen-Titel */

  /* Kinder-Palette */
  --kids-yellow:#F9E9B4;
  --kids-yellow-2:#EBC35F;
  --kids-green-light:#EAF3DE;
  --kids-green:#5C8A3C;
  --kids-green-dark:#3A5A22;
  --kids-peach:#F8DCC4;

  /* Sekundär-Palette (kühles Blaugrau) */
  --neutral-1:#CAD2EB;
  --neutral-2:#E5E4F1;
  --neutral-3:#CCCBD9;
  --neutral-4:#A5ABBD;

  --radius:18px;
  --radius-lg:22px;
  --shadow-sm:0 1px 2px rgba(20,25,40,.05), 0 2px 6px rgba(20,25,40,.04);
  --shadow-md:0 6px 24px rgba(20,25,40,.08), 0 2px 6px rgba(20,25,40,.05);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Source Sans 3', system-ui, -apple-system, sans-serif;
  font-size:18px; line-height:1.55; color:var(--ink);
  background:var(--bg); -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Playfair Display', serif; font-weight:600; letter-spacing:-.01em; color:var(--ink); margin:0}
h1{font-size:clamp(2.1rem, 4.4vw, 3.2rem); line-height:1.1}
h2{font-size:clamp(1.7rem, 3vw, 2.3rem); line-height:1.15}
h3{font-size:1.25rem; line-height:1.25}
h4{font-size:1.05rem; line-height:1.3}
p{margin:0}
a{color:inherit; text-decoration:none}

.wrap{max-width:1160px; margin:0 auto; padding:0 clamp(1rem, 3vw, 2rem)}
.section{padding:clamp(1.4rem, 2.8vw, 2.1rem) 0}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--accent); border-radius:2px}
.lead{color:var(--muted); font-size:1.05rem; max-width:60ch; margin-top:.7rem}

/* --------------------- Header ---------------------------------------- */
.site-header{
  background:var(--brand-dark); color:#fff;
  position:sticky; top:0; z-index:20;
  box-shadow:0 1px 0 rgba(255,255,255,.06);
}
.site-header .wrap{display:flex; align-items:center; gap:1.2rem; height:64px}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:700; letter-spacing:.02em; font-size:1.02rem}
.brand-mark{
  width:34px; height:34px; border-radius:8px;
  background:rgba(255,255,255,.12); display:grid; place-items:center;
  font-family:'Playfair Display', serif; font-weight:700; font-size:.85rem; color:#fff;
}
.brand-word .num{color:var(--accent); margin:0 .05em}
.site-nav{display:flex; gap:1.4rem; margin-left:auto; align-items:center}
.site-nav a{color:rgba(255,255,255,.85); font-size:.95rem}
.site-nav a:hover{color:#fff}
.site-nav .locations{color:rgba(255,255,255,.55); font-size:.85rem}

/* --------------------- Mobile-Menü-Button (Hamburger) ---------------- */
.nav-toggle{
  display:none;                /* auf Desktop ausgeblendet */
  width:46px; height:46px; flex-shrink:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
  padding:0;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);
  border-radius:12px; cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
.nav-toggle:hover{background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4)}
.nav-toggle:focus-visible{outline:2px solid #fff; outline-offset:2px}
.nav-toggle span{
  display:block; width:22px; height:2px; border-radius:2px; background:#fff;
  transition:transform .25s ease, opacity .2s ease;
}
.site-header.open .nav-toggle{background:rgba(255,255,255,.16)}
.site-header.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site-header.open .nav-toggle span:nth-child(2){opacity:0}
.site-header.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.btn{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.65rem 1.05rem; border-radius:999px;
  font-weight:600; font-size:.95rem; line-height:1;
  border:1px solid transparent; cursor:pointer; transition:all .15s ease;
  min-height:44px;
}
.btn--cta{background:var(--accent); color:#fff}
.btn--cta:hover{background:#d86b30}

/* --------------------- Hero (dunkel, ~80 % Deckkraft) ----------------- */
.hero{
  /* Header-Farbe bei ~80 % Opazität, damit ein weicher Übergang zum Header entsteht */
  background:linear-gradient(180deg, rgba(80,88,109,.88) 0%, rgba(80,88,109,.78) 100%);
  color:#fff;
  padding:clamp(1.5rem, 3.2vw, 2.2rem) 0 clamp(1.1rem, 2vw, 1.5rem);
  border-bottom:1px solid rgba(255,255,255,.05);
}
.hero .eyebrow{color:rgba(255,255,255,.75)}
.hero .eyebrow::before{background:var(--accent-2)}
.hero h1{color:#fff; margin-top:.9rem}
.hero h1 em{font-style:italic; font-weight:600; color:var(--accent-2)}
.hero .lead{color:rgba(255,255,255,.82); margin-top:.9rem; font-size:1.1rem; max-width:none}

/* --------------------- Chips (Städte) — grösser, sichtbarer ----------- */
.chip{
  display:inline-flex; align-items:center; gap:.42rem;
  padding:.42rem .8rem; border-radius:999px;
  font-size:.82rem; font-weight:600; line-height:1;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.14); color:inherit;
}
.chip::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background:var(--accent-2); box-shadow:0 0 0 3px rgba(250,133,79,.15);
}
.chip--dark{
  background:rgba(80,88,109,.08); color:var(--brand-dark);
  border-color:rgba(80,88,109,.18);
}
.chip--dark::before{background:var(--accent)}
.chip--green{
  background:rgba(92,138,60,.1); color:var(--kids-green-dark);
  border-color:rgba(92,138,60,.28);
}
.chip--green::before{background:var(--kids-green)}

/* --------------------- Therapie (Priorität) --------------------------- */
.therapie{padding:clamp(1.2rem, 2.4vw, 1.8rem) 0 clamp(1rem, 2vw, 1.5rem)}
/* Sprung zu #therapie: unter dem fixierten Header (64px) genau eine Zeile Luft
   über „EIN ZENTRUM · ZWEI WEGE" — der Innenabstand oben wird dafür abgezogen. */
#therapie{scroll-margin-top:calc(64px + 1.5rem - clamp(1.2rem, 2.4vw, 1.8rem))}
.therapie h2{max-width:none}
.therapie .intro{color:var(--muted); margin-top:.55rem; max-width:none}
.therapie-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;
  margin-top:1.6rem;
}
.t-card{
  position:relative; overflow:hidden;
  border-radius:var(--radius-lg);
  padding:0;
  min-height:290px;
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
  border:1px solid transparent;
}
.t-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.t-card .content{display:flex; flex-direction:column; gap:.7rem; padding:1.7rem 1.9rem 1.7rem; flex:1; min-width:0}
.t-card .card-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:.8rem;
  margin-bottom:.3rem; flex-wrap:wrap; row-gap:.5rem;
}
.head-left{display:flex; align-items:center; gap:.7rem}
.prod-logo{
  width:96px; height:96px;
  border-radius:14px;
  display:grid; place-items:center;
  font-family:'Playfair Display', serif;
  font-weight:700; font-size:2.1rem; letter-spacing:.02em;
  border:none;
  background:transparent;
  color:inherit;
  flex-shrink:0;
  opacity:.9;
}
.prod-logo img{width:100%; height:100%; object-fit:contain}
/* Hochgeladene Logos ohne Rahmen/Hintergrund — nur das Logo selbst */
.prod-logo--filled{
  background:transparent;
}
/* Innerhalb von head-left soll der Status nicht mehr oben angeflanscht sein */
.head-left .status{align-self:center}
.t-card .tag{
  font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  opacity:.75;
}
.t-card .card-chips{display:flex; gap:.4rem; flex-wrap:wrap}
.t-card h3{font-size:1.85rem; line-height:1.1}
.t-card p{opacity:.9; max-width:none}
.t-card .cta-row{
  margin-top:auto; padding-top:.6rem;
  display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap;
  border-top:1px solid currentColor; border-color:currentColor;
  border-top-color:rgba(255,255,255,.14);
}
.t-card .cta-link{font-weight:700; display:inline-flex; align-items:center; gap:.4rem; font-size:1.02rem}
.t-card .cta-link::after{content:"↗"; transition:transform .15s ease}
.t-card:hover .cta-link::after{transform:translate(2px,-2px)}
.t-card .url-hint{font-size:.8rem; opacity:.55; letter-spacing:.02em}

/* --- Erwachsene: dunkler Marken-Ton, Titel in Orange #FA854F -------- */
.t-card--adult{
  background:linear-gradient(150deg, var(--brand-dark) 0%, var(--brand-dark-2) 100%);
  color:#fff;
  border-color:rgba(255,255,255,.08);
  box-shadow:0 10px 34px rgba(80,88,109,.32);
}
.t-card--adult::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 82% 15%, rgba(250,133,79,.28), transparent 48%);
  pointer-events:none;
}
.t-card--adult h3{color:var(--accent-2)} /* <-- Erwachsenen-Titel #FA854F */
.t-card--adult .chip{background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28); color:#fff}
.t-card--adult .cta-row{border-top-color:rgba(255,255,255,.18)}

/* --- Kinder: offizielle Palette (Gelb → Hellgrün) ------------------- */
.t-card--kids{
  background:linear-gradient(150deg, var(--kids-yellow) 0%, var(--kids-green-light) 100%);
  color:var(--kids-green-dark);
  border-color:rgba(58,90,34,.15);
  box-shadow:0 10px 30px rgba(92,138,60,.16);
}
.t-card--kids .tag{color:var(--kids-green); opacity:1}
.t-card--kids h3{color:var(--kids-green-dark)}
.t-card--kids .cta-row{border-top-color:rgba(58,90,34,.15)}

/* --------------------- Sekundär-Reihe --------------------------------- */
.side-band{padding:clamp(.7rem, 1.6vw, 1.1rem) 0 clamp(1.4rem, 2.4vw, 1.8rem)}
.side-band .section-lead{color:var(--muted); font-size:.95rem; margin-top:.4rem}
/* Sprung zu #angebot: wie bei #therapie eine Zeile Luft unter dem Header */
#angebot{scroll-margin-top:calc(64px + 1.5rem - clamp(.7rem, 1.6vw, 1.1rem))}

.row-mixed{display:grid; grid-template-columns:1.6fr 1fr; gap:1.2rem; margin-top:1.2rem}
.row-equal{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:1.2rem}

.pillar{
  position:relative; overflow:hidden;
  border-radius:var(--radius);
  padding:0;
  min-height:220px;
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
  border:1px solid var(--line);
}
.pillar:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.pillar .content{
  display:flex; flex-direction:column; gap:.55rem; min-width:0;
  padding:1.4rem 1.6rem;
  flex:1;
  position:relative; z-index:1;
}

/* Basisstil des Bild-Platzhalters — hochkant / seitlich (in .pillar) */
.image-slot{
  position:relative; z-index:1;
  border:1.5px dashed rgba(255,255,255,.28);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.04) 0%, rgba(0,0,0,.06) 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.5rem; color:rgba(255,255,255,.65);
  font-size:.78rem; letter-spacing:.05em; text-align:center;
  min-height:150px;
  padding:.6rem;
}
.image-slot svg{width:30px; height:30px; opacity:.75}
/* Variante für helle Karten (Kinder, Jobs) */
.image-slot--light{
  border-color:rgba(59,64,83,.32);
  background:linear-gradient(135deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.15) 100%);
  color:rgba(59,64,83,.65);
}
/* Innerhalb der Therapie-Karten: breites Panorama-Bild oben, nur oben abgerundet */
.t-card .image-slot{
  border:none;
  border-bottom:1.5px dashed rgba(255,255,255,.24);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  height:200px; min-height:0;
  flex-shrink:0;
  gap:.4rem;
}
.t-card .image-slot--light{
  border-bottom-color:rgba(59,64,83,.28);
}
.pillar .card-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:.8rem;
  margin-bottom:.2rem; flex-wrap:wrap; row-gap:.5rem;
}
.pillar .card-chips{display:flex; gap:.35rem; flex-wrap:wrap; flex-shrink:0}
.pillar .chip{padding:.32rem .65rem; font-size:.76rem}
.pillar .chip::before{width:6px; height:6px; box-shadow:0 0 0 2px rgba(250,133,79,.15)}
.pillar .status{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.32rem .7rem; border-radius:999px;
  font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  align-self:flex-start;
  border:1px solid transparent;
  white-space:nowrap;
}
.pillar .status::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.75}
.pillar .status--live{background:rgba(92,138,60,.14); color:var(--kids-green-dark); border-color:rgba(92,138,60,.22)}
.pillar .status--dev{background:rgba(255,255,255,.14); color:rgba(255,255,255,.9); border-color:rgba(255,255,255,.22)}
.pillar .status--soon{background:rgba(236,126,65,.14); color:#B35A26; border-color:rgba(236,126,65,.28)}
.pillar h3{margin-top:.2rem}
.pillar p{font-size:.98rem; opacity:.85; max-width:none}
.pillar .cta-link{
  margin-top:auto; font-weight:600; font-size:.95rem;
  display:inline-flex; align-items:center; gap:.35rem;
}
.pillar .cta-link::after{content:"→"; transition:transform .15s ease}
.pillar:hover .cta-link::after{transform:translateX(3px)}

/* Apartments — Foto als Kartenhintergrund (Overlay-Gradient hält Text lesbar) */
.pillar--apartments{
  background:linear-gradient(135deg, rgba(80,88,109,.72) 0%, rgba(80,88,109,.42) 100%),
             linear-gradient(#8a94ac,#8a94ac);
  color:#fff;
  border-color:rgba(80,88,109,.35);
}
.pillar--apartments h3{color:#fff}
.pillar--apartments .chip{background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.3); color:#fff}
.pillar--apartments .status--live{
  background:rgba(180,220,150,.18); color:#D8ECC1;
  border-color:rgba(216,236,193,.35);
}
.pillar--apartments .bg-hint{
  position:absolute; bottom:1rem; right:1rem; z-index:2;
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.3rem .6rem; border-radius:8px;
  font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
  background:rgba(0,0,0,.32); color:rgba(255,255,255,.78);
  border:1px dashed rgba(255,255,255,.28);
}
.pillar--apartments .bg-hint svg{width:14px; height:14px; opacity:.85}
@media (max-width:520px){
  .pillar--apartments .bg-hint{
    font-size:0; padding:.35rem; /* nur Icon sichtbar */
  }
  .pillar--apartments .bg-hint svg{width:16px; height:16px}
}

/* Jobs — sehr ruhig, kühles Blaugrau, schmaleres Bild-Panel */
.pillar--jobs{
  background:linear-gradient(160deg, var(--neutral-2) 0%, var(--neutral-3) 100%);
  color:#3B4053;
  border-color:rgba(165,171,189,.4);
  grid-template-columns:1fr 34%;
}
.pillar--jobs .chip{background:rgba(59,64,83,.06); border-color:rgba(59,64,83,.18); color:#3B4053}

/* Geräte & Soft — dunkler Grundton, warmer Spot, seitliches Bild rechts */
.pillar--veiled{
  background:linear-gradient(160deg, #3E4557 0%, #2B303D 100%);
  color:#fff;
  border-color:rgba(255,255,255,.08);
  min-height:290px;
  display:grid; grid-template-columns:1fr 42%; gap:0;
  padding:0;
}
.pillar--veiled::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 40% at 70% -5%, rgba(250,133,79,.28), transparent 70%);
  pointer-events:none; z-index:0;
}
.pillar--veiled h3{color:#fff}
.pillar--veiled p{color:rgba(255,255,255,.78)}
.pillar--veiled .image-slot{
  margin:1.2rem 1.4rem 1.2rem 0;
  border:1.5px dashed rgba(255,255,255,.28);
  border-radius:14px;
  height:auto; align-self:stretch;
  min-height:0;
}

/* --------------------- Was jetzt neu ist — grosses Banner ------------ */
.promise-banner{
  background:linear-gradient(150deg, var(--brand-dark) 0%, var(--brand-dark-2) 100%);
  color:#fff;
  position:relative; overflow:hidden;
  padding:clamp(2.2rem, 4.4vw, 3.2rem) 0;
  margin-top:clamp(.8rem, 2vw, 1.3rem);
}
.promise-banner::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 20%, rgba(250,133,79,.22), transparent 50%),
             radial-gradient(circle at 15% 80%, rgba(236,126,65,.14), transparent 55%);
  pointer-events:none;
}
.promise-banner .wrap{position:relative}
.promise-banner .eyebrow{color:rgba(255,255,255,.75)}
.promise-banner .eyebrow::before{background:var(--accent-2)}
.promise-banner h2{
  color:#fff; text-align:center; max-width:32ch; margin:.7rem auto 0;
  font-size:clamp(1.9rem, 3.6vw, 2.6rem);
  line-height:1.2;
}
.promise-banner .banner-head{display:flex; flex-direction:column; align-items:center; text-align:center}
.promise-banner .promise-list{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.8rem;
  margin-top:2.6rem;
}
.promise-banner .promise-item{display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:start}
.promise-banner .promise-item .n{
  width:32px; height:32px; border-radius:50%;
  background:rgba(250,133,79,.18); color:var(--accent-2);
  display:grid; place-items:center; font-weight:700; font-size:.95rem;
  border:1px solid rgba(250,133,79,.35);
  flex-shrink:0;
}
.promise-banner .promise-item h4{color:#fff; margin-bottom:.25rem; font-size:1.1rem}
.promise-banner .promise-item p{color:rgba(255,255,255,.72); font-size:.97rem}
.promise-banner .quote{
  margin:2.4rem auto 0; max-width:70ch;
  text-align:center; padding-top:1.8rem;
  border-top:1px solid rgba(255,255,255,.14);
}
.promise-banner .quote p{color:#fff; font-size:1.12rem; font-style:italic; line-height:1.5}
.promise-banner .quote em{color:var(--accent-2); font-style:italic; font-weight:600}
.promise-banner .quote .meta{
  margin-top:.9rem; font-size:.82rem; opacity:.6; letter-spacing:.04em; font-style:normal;
}

/* --------------------- Newsletter ------------------------------------ */
.newsletter{
  padding:clamp(1.6rem, 3vw, 2.3rem) 0 clamp(1.2rem, 2vw, 1.6rem);
  background:linear-gradient(180deg, #FDF5EC 0%, #FBF7F2 100%);
}
.newsletter-card{
  background:#fff;
  border:1px solid rgba(80,88,109,.08);
  border-radius:var(--radius-lg);
  padding:clamp(1.8rem, 3.4vw, 2.6rem) clamp(1.6rem, 3vw, 2.4rem);
  box-shadow:0 6px 26px rgba(80,88,109,.06);
  display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center;
}
.newsletter-copy .eyebrow{color:var(--accent)}
.newsletter-copy .eyebrow::before{background:var(--accent-2)}
.newsletter-copy h2{margin-top:.6rem; max-width:22ch}
.newsletter-copy p{margin-top:.7rem; color:var(--muted); max-width:44ch}
.newsletter-form{display:flex; flex-direction:column; gap:.7rem}
.newsletter-inputs{
  display:flex; gap:.5rem; align-items:stretch;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.35rem .35rem .35rem 1.1rem;
}
.newsletter-inputs input[type="email"]{
  flex:1; border:0; background:transparent; outline:none;
  font-family:inherit; font-size:1rem; color:var(--ink);
  min-height:44px;
}
.newsletter-inputs input[type="email"]::placeholder{color:var(--muted)}
.newsletter-inputs .btn{padding:.75rem 1.2rem; min-height:44px; white-space:nowrap}
.newsletter-done{
  color:var(--kids-green-dark); font-weight:600;
  padding:.9rem 1.1rem; background:rgba(92,138,60,.1);
  border-radius:999px; margin:0;
}
.newsletter-disclaimer{
  font-size:.82rem; color:var(--muted); margin:0;
  line-height:1.5;
}
.newsletter-disclaimer a{color:var(--accent); text-decoration:underline; text-underline-offset:2px}
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); border:0;
}

/* --------------------- Kontakt --------------------------------------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:1.4rem}
.loc-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.4rem 1.5rem;
  border-top:3px solid var(--loc-accent, var(--accent));
}
.loc-card h4{margin-bottom:.4rem; display:flex; align-items:center; gap:.5rem}
.loc-dot{width:9px; height:9px; border-radius:50%; background:var(--loc-accent, var(--accent)); flex-shrink:0}
.loc-card .addr{color:var(--muted); font-size:.95rem; line-height:1.5}
.loc-card .addr-rich{color:var(--muted); font-size:.95rem; line-height:1.6}
.loc-card .addr-rich p{margin:0 0 .6rem}
.loc-card .addr-rich p:last-child{margin-bottom:0}
.loc-card .addr-rich strong{color:var(--ink); font-weight:700}
.loc-card .phone{display:inline-flex; align-items:center; gap:.4rem; margin-top:.9rem; color:var(--accent); font-weight:700}
.loc-card .phone:hover{color:var(--accent-2)}
.loc-card .loc-pill{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:1rem; padding:.5rem 1.05rem;
  border-radius:999px; border:1.5px solid var(--loc-accent, var(--accent));
  color:var(--loc-accent, var(--accent)); font-weight:700; font-size:.92rem;
  transition:background .15s ease, color .15s ease;
}
.loc-card .loc-pill:hover{background:var(--loc-accent, var(--accent)); color:#fff}

/* --------------------- Footer (Spalten + Legal-Zeile) ----------------- */
.site-footer{background:var(--brand-dark); color:rgba(255,255,255,.75)}
.site-footer .wrap{
  padding-top:2.6rem; padding-bottom:1.4rem;
}
.footer-columns{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.4rem;
}
.footer-columns--two{grid-template-columns:1.3fr 1fr}
.footer-col--brand{display:flex; flex-direction:column; gap:.2rem}
.site-footer .brand{color:#fff}
.site-footer .tagline{font-size:.95rem; max-width:32ch; margin-top:.7rem}
.footer-contact{margin-top:1rem; display:flex; flex-direction:column; gap:.4rem}
.footer-address{color:rgba(255,255,255,.68); font-size:.9rem; line-height:1.55; margin:0}
.footer-contact-link{color:rgba(255,255,255,.82); font-size:.9rem; width:fit-content}
.footer-contact-link:hover{color:#fff; text-decoration:underline}
.footer-social{display:flex; gap:.6rem; margin-top:1.1rem}
.footer-social a{
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.1);
  display:grid; place-items:center;
  color:#fff; transition:background .15s ease, transform .15s ease;
}
.footer-social a:hover{background:rgba(255,255,255,.22); transform:translateY(-2px)}

.footer-col-title{
  font-family:'Source Sans 3', sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5);
  margin:0 0 .9rem;
}
.footer-col-links{display:flex; flex-direction:column; gap:.6rem}
.footer-col-links a{color:rgba(255,255,255,.82); font-size:.95rem; width:fit-content}
.footer-col-links a:hover{color:#fff; text-decoration:underline}

.footer-divider{border-top:1px solid rgba(255,255,255,.12); margin-top:2.2rem}
.footer-bottom-row{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap;
  gap:.6rem; padding-top:1.1rem; font-size:.8rem;
}
.footer-legal{display:flex; flex-wrap:wrap; gap:1.1rem}
.footer-legal a{color:rgba(255,255,255,.55); font-size:.8rem}
.footer-legal a:hover{color:rgba(255,255,255,.85)}
/* Sieht aus wie die Verweise daneben, öffnet den Cookie-Hinweis erneut */
.footer-cookie{background:none; border:0; padding:0; font:inherit; font-size:.8rem; color:rgba(255,255,255,.55); cursor:pointer}
.footer-cookie:hover{color:rgba(255,255,255,.85)}
.footer-meta{display:flex; gap:.8rem; align-items:center; color:rgba(255,255,255,.5); font-size:.8rem}

/* --------------------- Responsive ------------------------------------ */
@media (max-width:820px){
  .nav-toggle{display:flex}
  .site-header .wrap{position:relative}
  /* Kontakt-Button in der Leiste — mittig zwischen Logo und Menü-Button */
  .header-cta{margin-left:auto; margin-right:auto; padding-left:1rem; padding-right:1rem}
  .site-nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    margin:0; padding:0;
    background-color:var(--header-bg, #50586D);   /* exakt die Header-Farbe */
    max-height:0; overflow:hidden;
    transition:max-height .3s ease;
  }
  .site-header.open .site-nav{
    max-height:80vh; overflow-y:auto;
    box-shadow:0 14px 26px rgba(20,25,40,.22);
    border-top:1px solid rgba(255,255,255,.1);
  }
  .site-nav a{
    padding:.95rem clamp(1rem, 3vw, 2rem);
    font-size:1.05rem; color:rgba(255,255,255,.92);
    border-top:1px solid rgba(255,255,255,.08);
  }
  .site-nav a:first-child{border-top:none}
  .site-nav a:hover{background:rgba(255,255,255,.08)}
  .site-nav .locations{
    padding:.9rem clamp(1rem, 3vw, 2rem);
    font-size:.82rem; letter-spacing:.04em; text-transform:uppercase;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .therapie-grid, .row-mixed, .row-equal, .contact-grid{
    grid-template-columns:1fr;
  }
  .t-card, .pillar, .pillar--apartments, .pillar--jobs, .pillar--veiled{
    grid-template-columns:1fr; min-height:auto;
  }
  .t-card .card-head, .pillar .card-head{flex-wrap:wrap; row-gap:.6rem}
  .image-slot{min-height:130px}

  /* Geräte / Soft: Bild sitzt jetzt UNTER dem Text — echte Höhe geben,
     sonst kollabiert es zu einem schmalen Streifen. Seitliche Ränder wie im Text. */
  .pillar--veiled .image-slot{
    margin:0 1.6rem 1.6rem;
    align-self:auto;
    height:190px; min-height:190px;
  }

  /* Therapie-Karten: Foto und Text mit gleichem seitlichem Abstand,
     Text auf volle Breite, Foto nur oben abgerundet. */
  .t-card{padding:0}
  .t-card .image-slot{
    height:180px;
    margin:1.3rem 1.3rem 0;
    border:none;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  }
  .t-card .content{padding:1.3rem}
  .promise-banner .promise-list{grid-template-columns:1fr; gap:1.2rem}
  .newsletter-card{grid-template-columns:1fr; gap:1.4rem}
  .footer-columns, .footer-columns--two{grid-template-columns:1fr; gap:1.8rem}
  .footer-bottom-row{flex-direction:column; align-items:flex-start; gap:.7rem}
}
@media (max-width:520px){
  .hero{padding-top:2rem}
  .t-card h3{font-size:1.55rem}
  .header-cta{padding-left:.85rem; padding-right:.85rem; font-size:.9rem; min-height:40px}
  .nav-toggle{width:42px; height:42px}
  .newsletter-inputs{
    flex-direction:column; padding:.5rem; border-radius:16px; gap:.4rem;
  }
  .newsletter-inputs input[type="email"]{padding:0 .8rem}
  .newsletter-inputs .btn{width:100%; justify-content:center}
}

.rise{animation:rise .5s ease both}
@keyframes rise{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
/* --------------------- Legal Pages ----------------------------------- */
.legal-page .legal-body{
  color:var(--ink);
  line-height:1.65;
}
.legal-page .legal-body h2{
  font-size:1.35rem; margin-top:2rem; margin-bottom:.7rem;
  border-top:1px solid var(--line); padding-top:1.4rem;
}
.legal-page .legal-body h2:first-of-type{border-top:0; padding-top:0; margin-top:1rem}
.legal-page .legal-body h3{
  font-size:1.1rem; margin-top:1.2rem; margin-bottom:.5rem;
  font-family:'Source Sans 3', sans-serif; font-weight:700; color:var(--brand-dark);
}
.legal-page .legal-body p{margin:.5rem 0}
.legal-page .legal-body a{color:var(--accent); text-decoration:underline; text-underline-offset:2px}
.legal-page .legal-body a:hover{color:var(--accent-2)}
.legal-page .legal-body ul{padding-left:1.4rem; margin:.6rem 0}
.legal-page .legal-body li{margin:.3rem 0}
.legal-page .legal-body code{
  background:var(--bg-soft); padding:2px 6px; border-radius:4px;
  font-size:.9em; font-family:ui-monospace, 'SF Mono', Menlo, monospace;
}
