/* Schmerzmedizin Ravensburg – Stylesheet
   Schrift: Lato (lokal eingebunden, keine Verbindung zu Google) */

@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/lato-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Lato";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/lato-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/lato-latin-700-normal.woff2") format("woff2")}

:root{
  --rot:#81083D;        /* Beerenrot (Logo) */
  --rot-dunkel:#650630;
  --grau:#47484A;       /* Logo-Grau, Fließtext */
  --grau-hell:#6b6c6e;
  --sand:#F6F1EA;       /* helle Abschnitte, Karten */
  --sand-dunkel:#EFE7DB;/* Kontaktbereich */
  --weiss:#fff;
  --radius:14px;
  --schatten:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.06);
  --max:1040px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:"Lato",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;color:var(--grau);background:var(--weiss)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;line-height:1.2;font-weight:700;color:var(--grau)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:var(--rot)}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--rot);outline-offset:3px}
[id]{scroll-margin-top:88px}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.section{padding:64px 0}
.bg-sand{background:var(--sand)}
.bg-sand-dunkel{background:var(--sand-dunkel)}
.bg-rot{background:var(--rot);color:#fff}
.center{text-align:center}
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--rot);font-weight:700;margin-bottom:8px}
.section-head{text-align:center;margin-bottom:36px}
.section-head h2{font-size:clamp(26px,3.4vw,32px)}
.section-head p{margin-top:10px;font-size:17px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:10}

/* Buttons */
.btn{display:block;text-align:center;text-decoration:none;font-weight:700;font-size:17px;padding:12px 24px;border-radius:10px;border:2px solid var(--rot);transition:background .15s,color .15s}
.btn-voll{background:var(--rot);color:#fff}
.btn-voll:hover{background:var(--rot-dunkel);border-color:var(--rot-dunkel)}
.btn-rand{background:#fff;color:var(--rot)}
.btn-rand:hover{background:var(--sand)}
.btn-weiss{background:#fff;color:var(--rot);border-color:#fff;display:inline-block}
.btn-weiss:hover{background:var(--sand)}
.btn+.btn{margin-top:14px}

/* Kopfzeile (bleibt beim Scrollen stehen) */
.kopf{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(6px);-webkit-backdrop-filter:saturate(1.4) blur(6px);border-bottom:1px solid #ece6dd}
.kopf .wrap{display:flex;align-items:center;gap:28px;height:72px}
.kopf .logo img{width:140px;height:auto}
.menue{display:flex;gap:26px;margin-left:auto}
.menue a{color:var(--grau);text-decoration:none;font-size:15.5px;font-weight:700;padding:6px 0;border-bottom:2px solid transparent}
.menue a:hover{color:var(--rot);border-bottom-color:var(--rot)}
.btn-kopf{display:inline-block;padding:9px 18px;font-size:15.5px;white-space:nowrap}
.nur-klein{display:none}
.hero .titel{font-size:14.5px;line-height:1.35;color:var(--rot);margin-bottom:30px}
.hero .titel strong{text-transform:uppercase;letter-spacing:.06em;font-size:13.5px}

/* Hero */
.hero{padding:56px 0}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(32px,4.4vw,44px);margin-bottom:18px}
.hero .lead{font-size:clamp(19px,2.2vw,23px);line-height:1.5;margin-bottom:28px}
.hero img{border-radius:var(--radius);box-shadow:var(--schatten);aspect-ratio:3/2;object-fit:cover;width:100%}

/* Karten */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.karte{background:var(--sand);border-radius:var(--radius);padding:24px}
.bg-sand .karte,.bg-sand-dunkel .karte{background:#fff;box-shadow:var(--schatten)}
.karte h3{font-size:19px;margin:12px 0 8px}
.karte p{font-size:15px;line-height:1.6}
.icon{width:56px;height:56px}
.karte-breit{margin-bottom:20px}

/* Über mich */
.ueber .wrap{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start}
.ueber .portrait{border-radius:var(--radius);box-shadow:var(--schatten);width:320px}
.ueber h2{font-size:28px;margin-bottom:8px}
.ueber .quali{font-size:16px;margin-bottom:20px}
.ueber .zert{font-style:italic;font-size:14px;margin-top:20px}
.badges{display:flex;gap:16px;margin-top:16px;flex-wrap:wrap}
.badges img{width:100px}

/* Bewertungen */
.bewertungen h2,.bewertungen .section-head p{color:#fff}
.bewertungen .unter{font-size:20px;margin-top:28px}
.bewertungen .sterne-zeile{font-size:15px;margin-top:6px}
.review{margin:0;background:#fff;color:var(--grau);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column}
.review .sterne{color:#E8A400;letter-spacing:2px;font-size:15px;margin-bottom:10px}
.review blockquote{margin:0 0 14px;font-size:14.5px;line-height:1.6;flex:1}
.review .wer{font-size:13px;font-weight:700}
.bewertungen .mehr{text-align:center;margin-top:32px}
.hinweis{font-size:13px;font-style:italic;color:var(--grau-hell);text-align:center;padding:14px 24px}

/* Praxis */

.praxis .intro{max-width:760px;margin:0 auto 32px;text-align:center}
.praxis .fotos img{border-radius:var(--radius);box-shadow:var(--schatten);aspect-ratio:3/2;object-fit:cover;width:100%}

/* Ablauf */
.ablauf{margin-top:-1px}
.ablauf .fotos-abstand{height:64px}
.nr{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--rot);color:#fff;font-weight:700;font-size:15px}
.karte .nr+h3{margin-top:14px}
.kosten{margin-top:20px}

/* Kontakt */
.kontakt .grid-2{align-items:start}
.kontakt h3{font-size:20px;margin-bottom:16px}
.zeile{display:grid;grid-template-columns:22px 1fr;gap:10px;margin-bottom:16px;font-size:15px}
.zeile svg{width:18px;height:18px;margin-top:3px;stroke:var(--rot);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.zeiten{display:grid;grid-template-columns:auto 1fr;column-gap:12px}
.karte-link img{border-radius:10px}
.osm{font-size:11px;color:var(--grau-hell);margin-top:6px}
.kontakt .btn-rand{margin-top:16px}

/* Fuß */
.fuss{background:#f3f3f3;padding:28px 0;text-align:center;font-size:14px}
.fuss a{color:var(--grau);text-decoration:none}
.fuss a:hover{text-decoration:underline}
.fuss .sep{margin:0 8px}

/* Rechtstexte */
.recht{padding:48px 0 72px}
.recht .wrap{max-width:780px}
.recht h1{font-size:34px;margin-bottom:8px}
.recht h2{font-size:21px;margin:32px 0 10px}
.recht h3{font-size:17px;margin:20px 0 6px}
.recht .stand{color:var(--grau-hell);margin-bottom:24px}
.zurueck{display:inline-block;margin-bottom:24px;text-decoration:none;font-weight:700}

/* Responsiv */
@media (max-width:900px){
  .menue{display:none}
  .btn-kopf{margin-left:auto}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:1fr}
}
@media (max-width:760px){
  .section{padding:48px 0}
  .hero{padding:36px 0}
  .hero .wrap,.ueber .wrap,.grid-2{grid-template-columns:1fr}
  .hero .wrap{gap:28px}
  .ueber .portrait{width:240px}
  .kopf .wrap{height:64px}
  .kopf .logo img{width:120px}
}
@media (max-width:520px){
  .nur-gross{display:none}
  .nur-klein{display:inline}
  .grid-4{grid-template-columns:1fr}
}
@media print{
  .btn,.fuss,.menue{display:none}
  .kopf{position:static}
  .section{padding:20px 0}
}
.abstand-oben{margin-top:24px}
.karte>h3:first-child{margin-top:0}

/* Handy-/Tablet-Menü (Aufklappmenü) */
.mobil-menue{display:none}
@media (max-width:900px){
  .mobil-menue{display:block}
  .mobil-menue summary{list-style:none;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px}
  .mobil-menue summary::-webkit-details-marker{display:none}
  .mobil-menue summary:focus-visible{outline:3px solid var(--rot);outline-offset:2px}
  .burger,.burger::before,.burger::after{display:block;width:24px;height:2.5px;background:var(--grau);border-radius:2px;position:relative;transition:transform .2s,background .2s}
  .burger::before,.burger::after{content:"";position:absolute;left:0}
  .burger::before{top:-7px}
  .burger::after{top:7px}
  .mobil-menue[open] .burger{background:transparent}
  .mobil-menue[open] .burger::before{transform:translateY(7px) rotate(45deg)}
  .mobil-menue[open] .burger::after{transform:translateY(-7px) rotate(-45deg)}
  .mobil-menue nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #ece6dd;box-shadow:0 12px 24px rgba(0,0,0,.08);padding:8px 24px 16px}
  .mobil-menue nav a{display:block;padding:14px 0;font-size:18px;font-weight:700;color:var(--grau);text-decoration:none;border-bottom:1px solid #f0ebe3}
  .mobil-menue nav a:last-child{border-bottom:0}
  .mobil-menue nav a:active,.mobil-menue nav a:hover{color:var(--rot)}
  .kopf .wrap{gap:12px}
}

/* Feinschliff Handy */
@media (max-width:760px){
  .hero .wrap>div:first-child{text-align:center}
  .hero{padding-top:20px}
  .hero .titel{line-height:1.3;margin-bottom:32px}
  .hero .titel .q1{display:block}
  .hero .titel .sep1{display:none}
  .ueber .portrait{width:100%}
  .badges{flex-wrap:nowrap}
  .badges img{width:calc((100% - 32px) / 3);max-width:100px}
  .bewertungen .unter{margin-top:40px}
  .ueber h2{font-size:23px;margin-top:4px}
  .ueber .quali{font-size:15px;line-height:1.45}
  .ueber .quali .ql{display:block}
  .ueber .quali .qs{display:none}
}
