﻿/* =========================================================
   Kinderphysio - ruhiges, luftiges Layout (Nunito)
   + Abschnitts-Verlaeufe ueber Variablen
   ========================================================= */

:root{
  --bg: var(--c-contact);
  --paper:#ffffff;
  --ink:#1d1d1b;
  --muted:rgba(29,29,27,.72);
  --line:rgba(29,29,27,.12);
  --soft:rgba(255,255,255,.65);
  --accent:#dfaa96;
  --accent-strong: rgba(188, 91, 91, 0.85);
  --accent-medium: rgba(223,170,150,.55);
  --accent-soft: rgba(178, 91, 91, 0.25);
  --accent-border: rgba(223,170,150,.32);
  --sage-soft: rgba(190,211,205,.28);
  --portrait-border-width: 10px; /* 0 = Portrait-Rahmen ausblenden */
  --portrait-border-color: var(--sage-soft); /* transparent = Rahmenfarbe ausblenden */
  --radius:22px;

  /* =========================================================
     FARBEN & UEBERGAENGE
     Hier kannst du die Website-Stimmung schnell anpassen.
     ========================================================= */

  /* ===== Abschnittsfarben (anpassen nach Geschmack) ===== */
  --c-hero:    rgba(255, 223, 182, .97);
  --c-about:   rgba(255, 231, 199, .94);
  --c-focus:   rgba(255, 241, 224, .88);
  --c-contact: rgba(255, 250, 243, .96);

  /* Zwischenfarben fuer weichere Uebergaenge */
  --blend-hero-about:  rgba(255, 227, 190, .94);
  --blend-about-mid:   rgba(255, 235, 211, .90);
  --blend-about-focus: rgba(255, 239, 219, .86);
  --blend-focus-end:   rgba(255, 244, 232, .92);

  /* Profilflaeche rund um Portrait und Text */
  --hero-card-bg: rgba(255, 255, 255, 0.46); /* transparent = Hintergrund ausblenden */
  --hero-card-border: rgba(29,29,27,.07); /* transparent = Rahmen ausblenden */
  --hero-card-shadow: 0 18px 60px rgba(29,29,27,.07); /* none = Schatten ausblenden */

  /* Box "Ueber mich" */
  --about-card-bg: rgba(255, 241, 221, .50);
  --about-card-border: rgba(29,29,27,.08);
  --about-inner-card-bg: rgba(255, 248, 238, .48);
  --about-inner-card-border: rgba(29,29,27,.10);

  /* Kontaktkarten und kleine Kontaktfelder */
  --contact-card-bg: rgb(var(--header-bg-scrolled-rgb));
  --contact-card-border: rgba(29,29,27,.10);
  --contact-row-bg: rgba(255,255,255,.22);
  --contact-row-border: rgba(29,29,27,.10);
  --contact-icon-bg: var(--accent-soft);
  --contact-icon-border: var(--accent-border);

  /* Wie lang/weich die Uebergaenge sind */
  --fade-hero: 260px;
  --fade-contact: 560px;

  /* Feine Trennlinien zwischen Bereichen */
  --line-hero: rgba(29,29,27,.025);
  --line-section-top: rgba(29,29,27,.025);
  --line-section-bottom: rgba(29,29,27,.04);
  --header-bg-rgb: 255, 185, 97;
  --header-bg-scrolled-rgb: 255, 223, 182;
  --header-bg: rgb(var(--header-bg-rgb));
  --header-border: rgba(29,29,27,0.10);
  --top-accent-start: var(--c-hero);
  --top-accent-mid:   var(--c-hero);
  --top-accent-end:   var(--c-hero);
  
}

*{ box-sizing:border-box; }

html, body{
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

a, p, li, span{
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:17px;
  line-height:1.75;
  letter-spacing:0;
  color:var(--ink);
}

h1, h2, h3{
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight:700;
  margin:0 0 10px;
}

p{ margin:0 0 14px; }
ul{ margin:0; padding-left:18px; }
li{ margin:0 0 8px; }

.muted{ color:var(--muted); }
.small{ font-size:14px; }

.wrap{
  width:min(1040px, calc(100% - 48px));
  margin:0 auto;
}

/* ---------- Zierstreifen ---------- */
.top-accent{
  position: sticky;
  top: 0;
  z-index: 999;
  height: 10px;
  background: linear-gradient(
    90deg,
    var(--top-accent-start),
    var(--top-accent-mid),
    var(--top-accent-end)
  );
  backdrop-filter: blur(6px);
}

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky;
  top: 10px;
  z-index: 50;
  background: var(--header-current-bg, var(--header-bg));
  border-bottom: 1px solid var(--header-border);
  backdrop-filter: blur(10px);
  transition: background .18s ease, border-color .18s ease;
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
  gap:14px;
  position: relative;
}

.brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  text-decoration:none;
  white-space:nowrap;
  color: var(--ink);
}

.brand-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background: var(--accent-strong);
  box-shadow: 0 0 0 6px var(--accent-soft);
}

.brand-name{ font-size:18px; font-weight:700; }
.brand-sub{ font-size:13px; color:var(--muted); margin-left:6px; }

/* Desktop Nav */
.nav{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.nav a{
  text-decoration:none;
  color:var(--muted);
  padding: 6px 10px;
  border-radius:999px;
  border:1px solid transparent;
}

.nav a:hover{
  color:var(--ink);
  border-color: rgba(29,29,27,.12);
  background: rgba(255,255,255,.50);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  text-decoration:none;
  transition: transform .12s ease, opacity .12s ease;
  gap:8px;
}

.btn:hover{ transform: translateY(-1px); opacity:.92; }

.btn-ghost{
  background: transparent;
  color: var(--ink);
}

.link{
  text-decoration: underline;
  text-decoration-color: rgba(29,29,27,.35);
  text-underline-offset: 3px;
}

/* =========================================================
   Abschnitts-Verlaeufe (sanfte Uebergaenge)
   ========================================================= */

/* HERO: oben weiss, unten Richtung About */
.hero{
  background: linear-gradient(
    to bottom,
    var(--c-hero) 0%,
    var(--c-hero) calc(100% - var(--fade-hero)),
    var(--blend-hero-about) 100%
  );
  padding: 64px 0 46px;
  border-bottom: 1px solid var(--line-hero);
}

/* UEBER MICH: oben nimmt Hero-Farbe auf, unten Richtung Focus */
#ueber-mich{
  background: linear-gradient(
    to bottom,
    var(--blend-hero-about) 0%,
    var(--blend-about-mid) 62%,
    var(--blend-about-focus) 100%
  );
}

/* THERAPIESCHWERPUNKTE: oben nimmt About-Farbe auf, unten Richtung Kontakt */
#leistungen{
  background: linear-gradient(
    to bottom,
    var(--blend-about-focus) 0%,
    var(--c-focus) 86%,
    var(--blend-focus-end) 100%
  );
}

/* KONTAKT: eigener Grundton */
#kontakt.section-alt{
  background: linear-gradient(
    to bottom,
    var(--blend-focus-end) 0%,
    rgba(255, 247, 237, .94) 45%,
    var(--c-contact) var(--fade-contact),
    var(--c-contact) 100%
  );
}

/* ---------- Hero Layout ---------- */
.hero-grid{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 64px;
  align-items:center;
}

.kicker{
  font-size:13px;
  text-transform: uppercase;
  letter-spacing:.08em;
  color: var(--muted);
  margin-bottom: 10px;
}

.hero h1{
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.08;
  margin-bottom: 14px;
}

.lead{
  color: var(--muted);
  max-width: 62ch;
}

.cta-row{
  display:flex;
  gap: 12px;
  flex-wrap:wrap;
  margin: 30px 0 10px;
}

.trust{
  list-style: none;
  padding-left: 0;
  margin-top: 14px;
  display:grid;
  gap: 8px;
}

.hero-actions{
  margin: 34px 0 28px;
}

.trust li{
  padding-left: 18px;
  position: relative;
  color: var(--muted);
  margin: 0;
}

.trust li::before{
  content: "";
  position:absolute;
  left: 0;
  top: 13px;
  width: 10px;
  height: 3px;
  border-radius: 999px;
  background: var(--accent-strong);
}

/* Portrait */
.hero-media{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 0;
  padding: 28px 24px 22px;
  border: 1px solid var(--hero-card-border);
  border-radius: 28px;
  background: var(--hero-card-bg);
  box-shadow: var(--hero-card-shadow);
}


.portrait{
  width: 255px;
  max-width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 999px;
  border: var(--portrait-border-width) solid var(--portrait-border-color);
  box-shadow: 0 18px 42px rgba(29,29,27,.12);
  background: rgba(0,0,0,.03);
}

.portrait-note{
  max-width: 310px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 18px;
  padding: 22px 4px 0;
}

.portrait-note p{ margin:0 0 8px; }
.portrait-note p:last-child{ margin:0; color:var(--muted); font-size:14px; }

/* ---------- Ueber mich ---------- */
.about-block{
  padding: 34px 0 30px;
}

.about-block .wrap{
  margin-bottom: 8px;
}

.about{
  background: var(--about-card-bg);
  border: 1px solid var(--about-card-border);
  border-radius: var(--radius);
  padding: 22px;
}

.about-highlights{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 16px;
}

.highlight{
  background: var(--about-inner-card-bg);
  border: 1px solid var(--about-inner-card-border);
  border-radius: 18px;
  padding: 14px;
}

.highlight h3{
  font-size: 16px;
  text-transform: none;
  letter-spacing: .02em;
  color: rgba(29,29,27,.78);
}

/* echte Listen + Zeilenabstand */
.clean-list{
  margin: 10px 0 0;
  padding-left: 18px;
}

.clean-list li{
  margin: 0 0 8px;
  line-height: 1.6;
  color: rgba(29,29,27,.78);
}

/* ---------- Therapieschwerpunkte ---------- */
.focus-section{
  position: relative;
  padding: 52px 0 48px;
  overflow: hidden;
}

.focus-topline{
  width: 100%;
  max-width: 620px;
  margin: 0 auto 18px;
  border-top: 2px dotted rgba(0,0,0,0.50);
}

.focus-title{
  text-align:center;
  letter-spacing:.08em;
  text-transform: uppercase;
  font-size: 22px;
  color: var(--ink);
  margin-bottom: 10px;
}

.focus-subtitle{
  text-align:center;
  color: var(--muted);
  margin: 0 auto 34px;
  max-width: 78ch;
}

.focus-grid--simple{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 44px;
  align-items:start;
}

.focus-item{
  min-height: initial;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.focus-item h3{
  text-align:center;
  font-size: 14px;
  line-height: inherit;
  letter-spacing:.06em;
  text-transform: uppercase;
  color: rgba(29,29,27,.78);
  margin: 0;
}

.focus-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 54px;
  height: 54px;
  margin: 0 auto 12px;
  opacity: .55;
  color: rgba(80,80,80,.95); /* wichtig fuer Lucide (currentColor) */
}

.focus-icon svg, .focus-icon .lucide{
  width: 40px;
  height: 40px;
  stroke-width: 1.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- Kontakt ---------- */
.section{
  padding: 42px 0;
}

.section-alt{
  border-top: 1px solid var(--line-section-top);
  border-bottom: 1px solid var(--line-section-bottom);
}

.section-head{ margin-bottom: 22px; }
.section-head p{ color: var(--muted); max-width: 78ch; }

.contact-head{
  text-align: center;
}

.contact-head p{
  margin-left: auto;
  margin-right: auto;
}

.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items:stretch;
}

.contact-card{
  background: var(--contact-card-bg);
  border: 1px solid var(--contact-card-border);
  border-radius: 18px;
  padding: 18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.hours{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(29,29,27,.08);
}

.fineprint{
  text-align:center;
  margin-top: 20px;
  color: var(--muted);
}

.fineprint a{
  color: var(--muted);
  text-decoration: underline;
  text-decoration-color: rgba(29,29,27,.28);
  text-underline-offset: 3px;
}

.fineprint a:hover{ color: var(--ink); }

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .hero{
    padding: 42px 0 0;
  }
  .hero-grid{
    grid-template-columns: 1fr;
    gap: 0;
  }
  .hero-copy{ display: contents; }
  .hero h1{
    order: 1;
    margin-bottom: 12px;
  }
  .lead{
    order: 2;
    margin-bottom: 16px;
  }
  .hero-media{
    order: 3;
    width: min(460px, 100%);
    margin: 0 auto 20px;
  }
  .hero-actions{
    order: 4;
    margin: 0;
  }
  .trust{
    order: 5;
    margin-top: 20px;
    margin-bottom: 20px;
  }
  .portrait{ transform: none; }
  .about-block{
    padding: 28px 0 22px;
  }
  .about-block .wrap{
    margin-bottom: 0;
  }
  .focus-section{
    padding: 34px 0 38px;
  }
  .section{
    padding: 34px 0;
  }
  .about-highlights{ grid-template-columns: 1fr; }
  .focus-grid--simple{ grid-template-columns: 1fr; gap: 26px; }
  .contact-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 520px){
  .wrap{ width:min(1040px, calc(100% - 32px)); }
  .brand-sub{ display:none; }
  .btn{ width: 100%; }
  .cta-row{ width: 100%; }
  .hero-media{ padding: 22px 18px 18px; }
  .portrait{ width: 220px; }
}

/* Timeline-Layout fuer Ausbildung */
.clean-list.timeline{
  list-style: none;
  padding-left: 0;
  margin-top: 14px;
  border-left: 2px solid rgba(29,29,27,.10);
}

.clean-list.timeline li{
  position: relative;
  padding: 10px 0 10px 18px;
  margin: 0;
  color: rgba(29,29,27,.78);
  line-height: 1.7;
}

.clean-list.timeline li + li{
  border-top: 1px solid rgba(29,29,27,.06);
}

.clean-list.timeline li::before{
  content:"";
  position:absolute;
  left: -7px;
  top: 18px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--accent-medium);
  box-shadow: 0 0 0 4px var(--accent-soft);
}

/* Kontakt: optional 3 Spalten auf Desktop */
.contact-grid--3{
  grid-template-columns: repeat(3, 1fr);
}

.card-sep{
  height: 1px;
  background: rgba(29,29,27,.10);
  margin: 12px 0;
}

@media (max-width: 980px){
  .contact-grid--3{
    grid-template-columns: 1fr;
  }
}

.contact-rows{
  display: grid;
  gap: 12px;
  margin-top: 6px;
}

.contact-row{
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 14px;
  background: var(--contact-row-bg);
  border: 1px solid var(--contact-row-border);
}

.contact-icon{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--contact-icon-bg);
  border: 1px solid var(--contact-icon-border);
  font-size: 14px;
}

.contact-body{
  display: grid;
  gap: 2px;
}

.contact-label{
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(29,29,27,.65);
}

/* Scroll Offset fuer Sticky Header */
#ueber-mich{ scroll-margin-top: 85px; }
#leistungen{ scroll-margin-top: 85px; }
#kontakt{ scroll-margin-top: 85px; }
#top{ scroll-margin-top: 85px; }

/* ===== Mobile-Button "MENUE + Icon" ===== */
.nav-toggle{
  display:none;
  border:0;
  background:transparent;
  padding: 8px 0;
  cursor:pointer;
  align-items:center;
  gap:10px;
  color: rgba(29,29,27,.80);
  z-index: 1000;
}

.nav-toggle-label{
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.nav-toggle-icon{
  width: 22px;
  height: 2px;
  background: rgba(29,29,27,.65);
  border-radius: 999px;
  position: relative;
}

.nav-toggle-icon::before,
.nav-toggle-icon::after{
  content:"";
  position:absolute;
  left:0;
  width: 22px;
  height: 2px;
  background: rgba(29,29,27,.65);
  border-radius: 999px;
  transition: transform .15s ease, opacity .15s ease;
}

.nav-toggle-icon::before{ top:-7px; }
.nav-toggle-icon::after{ top:7px; }

.site-header.nav-open .nav-toggle-icon{
  background: transparent;
}
.site-header.nav-open .nav-toggle-icon::before{
  transform: translateY(7px) rotate(45deg);
}
.site-header.nav-open .nav-toggle-icon::after{
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Dropdown */
@media (max-width: 820px){
  .nav-toggle{ display:inline-flex; }

  .nav{
    display:none;
    position:absolute;
    right:0;
    top: calc(100% + 10px);
    width: min(320px, calc(100vw - 24px));
    padding: 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(29,29,27,.10);
    box-shadow: 0 18px 50px rgba(0,0,0,.12);
  }

  .nav a{
    display:block;
    padding: 10px 12px;
    border-radius: 12px;
  }

  .site-header.nav-open .nav{ display:block; }
}
