/* Fonts: self-hosted (assets/fonts, SIL Open Font License) – no connection to Google */
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/poppins-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/poppins-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/poppins-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/poppins-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/poppins-latin-800-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(assets/fonts/manrope-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --navy:#0B3B6F;
  --blue:#0867C9;
  --bg-light:#F5F9FC;
  --white:#FFFFFF;
  --text:#2B3A48;
  --muted:#5C6B7A;
  --border:#DCE6EF;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  font-family:'Manrope',sans-serif;
  color:var(--text);
  background:var(--bg-light);
  line-height:1.6;
  overflow-x:clip;overflow-wrap:break-word;
}
h1,h2,h3,h4,h5{font-family:'Poppins',sans-serif;color:var(--navy);line-height:1.2;hyphens:auto;-webkit-hyphens:auto;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}
button{font:inherit;cursor:pointer;}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,24px);}
.eyebrow{
  display:block;font-size:.78rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--blue);margin-bottom:.5rem;
}
.btn{
  display:inline-flex;align-items:center;gap:8px;border-radius:999px;
  padding:12px 26px;font-weight:700;font-size:.95rem;border:1.5px solid transparent;
  transition:background .15s,color .15s,border-color .15s;
}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:#0656a8;}
.btn-outline{border-color:var(--navy);color:var(--navy);border-radius:8px;padding:10px 22px;}
.btn-outline:hover{background:var(--navy);color:#fff;}

/* ---------- Header ---------- */
.site-header{
  background:#d9dee3 url("assets/header-silver.jpg") center/cover;
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:50;
}
.header-inner{
  max-width:1400px;margin:0 auto;padding:10px clamp(12px,3vw,20px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.logo{flex:none;display:block;}
.logo-img{height:58px;width:auto;max-width:none;}
.header-right{display:flex;align-items:center;gap:20px;min-width:0;}
.lang{position:relative;}
.lang-btn{
  background:none;border:0;font-weight:800;font-size:.85rem;color:var(--navy);
  display:flex;align-items:center;gap:4px;
}
.lang-menu{
  position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--border);
  border-radius:10px;min-width:170px;box-shadow:0 10px 30px rgba(11,59,111,.15);padding:6px;display:none;
}
.lang.open .lang-menu{display:block;}
.lang-menu a{display:block;padding:8px 12px;border-radius:6px;font-size:.9rem;color:var(--navy);}
.lang-menu a:hover,.lang-menu a.active{background:var(--bg-light);font-weight:700;}
.phone{display:flex;align-items:center;gap:6px;font-weight:800;font-size:.95rem;color:var(--navy);white-space:nowrap;}
.phone svg{width:18px;height:18px;}
.menu-btn{
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--navy);
  background:transparent;display:flex;align-items:center;justify-content:center;color:var(--navy);
}
.menu-btn svg{width:20px;height:20px;}

/* Popup menu */
.nav-overlay{position:fixed;inset:0;z-index:90;display:none;}
.nav-panel{
  position:fixed;top:86px;right:16px;width:min(580px,calc(100% - 32px));background:#fff;z-index:100;
  border-radius:22px;box-shadow:0 18px 50px rgba(11,59,111,.22);padding:28px 32px 26px;
  display:none;flex-direction:column;max-height:calc(100vh - 100px);overflow-y:auto;
}
body.nav-open .nav-overlay{display:block;}
body.nav-open .nav-panel{display:flex;}
.nav-panel-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:12px;}
.nav-title{font-family:'Poppins';font-weight:300;font-size:1.5rem;color:var(--text);}
.nav-close{
  width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid rgba(8,103,201,.35);
  color:var(--text);display:flex;align-items:center;justify-content:center;
}
.nav-close svg{width:22px;height:22px;}
.nav-close:hover{border-color:var(--blue);}
.nav-links{display:flex;flex-direction:column;}
.nav-links a{
  display:flex;align-items:center;gap:22px;padding:12px 4px;background:none;border:0;
  font-family:'Poppins';font-weight:300;font-size:1.65rem;color:var(--text);text-align:left;width:100%;
}
.nav-links svg{width:28px;height:28px;flex:none;color:var(--navy);}
.nav-links a:hover span{color:var(--blue);}

.qr-modal{position:fixed;inset:0;z-index:120;background:rgba(6,26,49,.55);display:flex;align-items:center;justify-content:center;padding:20px;}
.qr-modal[hidden]{display:none;}
.qr-card{background:#fff;border-radius:20px;padding:24px 28px 20px;width:100%;max-width:360px;text-align:center;box-shadow:0 18px 50px rgba(11,59,111,.25);}
.qr-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.qr-head h3{font-weight:500;font-size:1.3rem;}
.qr-head .nav-close{width:44px;height:44px;}
.qr-card p{color:var(--muted);font-size:.9rem;}

/* ---------- Hero ---------- */
.hero{position:relative;color:#fff;min-height:clamp(560px,82vh,700px);display:flex;align-items:stretch;}
.hero-bg{position:absolute;inset:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 45%;}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,0) 40%),
    linear-gradient(90deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.4) 42%,rgba(255,255,255,0) 75%);
}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;gap:36px;padding:clamp(32px,6vw,56px) clamp(16px,4vw,24px) 40px;max-width:1180px;margin:0 auto;width:100%;}
.hero--designed .hero-text{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}   /* headline for SEO/screen readers; the visible lettering is the photo (≥900px) or .hero-brand (<900px) */
.hero-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;color:var(--navy);box-shadow:0 8px 24px rgba(11,59,111,.08);
}
.hero-card.cta{background:var(--blue);border-color:var(--blue);color:#fff;}
.hero-card.cta .card-title,.hero-card.cta .card-sub,.hero-card.cta .days,.hero-card.cta .time,.hero-card.cta svg{color:#fff;}
.hero-card .time{display:flex;align-items:center;gap:6px;}
.hero-card .time svg{width:16px;height:16px;}

/* Feature strip */
.features{
  display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.features article{padding:30px 24px;border-right:1px solid var(--border);}
.features article:last-child{border-right:none;}
.features h4{font-size:1.05rem;margin-bottom:6px;}
.features p{color:var(--muted);font-size:.92rem;}
.name-note{margin:0;padding:14px 16px 0;text-align:center;font-size:.78rem;font-style:italic;color:#44525F;letter-spacing:.02em;}
.name-note + section.block{padding-top:clamp(18px,2.6vw,28px);}
.name-note span{font-style:normal;font-family:'Poppins',sans-serif;font-weight:500;letter-spacing:.12em;color:var(--navy);}

/* ---------- Sections ---------- */
section.block{padding:clamp(48px,7vw,72px) 0;}
section.block.contact{padding-top:clamp(36px,5vw,54px);}
.section-head{max-width:640px;margin-bottom:36px;}
.section-head h2{font-size:clamp(1.7rem,1.25rem + 1.8vw,2.2rem);margin-bottom:10px;}
.section-head p{color:var(--muted);font-size:1.05rem;}

.service-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;}
.service-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:22px 18px;transition:box-shadow .2s,transform .2s;display:block;
}
.service-card:hover{box-shadow:0 10px 28px rgba(11,59,111,.1);transform:translateY(-2px);}
.service-icon{width:26px;height:26px;color:var(--blue);margin-bottom:14px;}
.service-card h3{font-size:1.02rem;margin-bottom:6px;}
.service-card p{color:var(--muted);font-size:.88rem;}

.about{background:var(--bg-light);}
.about-card{
  background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px 28px 16px;
  display:grid;grid-template-columns:210px 1fr;gap:48px;align-items:start;
}
.about-photo{border-radius:14px;overflow:hidden;width:100%;margin-top:42px;}   /* whole photo, 210px wide (was 300px) */
.about-photo img{display:block;width:100%;height:auto;aspect-ratio:561/842;object-fit:contain;}   /* full 561x842 image, never cropped or stretched */
.about .section-head{margin-bottom:28px;}
.about .section-head h2{font-size:clamp(1.7rem,1.25rem + 1.8vw,2.2rem);margin-bottom:0;}
.about-card + .about-card{margin-top:24px;}
.about .diploma{color:var(--blue);font-weight:700;font-size:.8rem;letter-spacing:.06em;}
.about h3.name{font-size:clamp(1.45rem,1.1rem + 1.4vw,1.8rem);margin:4px 0 16px;}
.about p{color:var(--muted);margin-bottom:12px;max-width:680px;}
.about h4{margin-top:24px;margin-bottom:12px;font-size:1rem;}
.pill-list{display:flex;gap:10px;flex-wrap:wrap;}
.pill{border:1px solid var(--border);background:var(--bg-light);border-radius:999px;padding:7px 16px;font-size:.88rem;font-weight:600;color:var(--navy);}

.practice{background:#fff;}

.contact{background:#fff;padding-top:0;}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
@media (min-width:1001px){.contact-info{position:relative;top:-18px;}}
.contact h2{font-size:clamp(1.7rem,1.25rem + 1.8vw,2.2rem);margin-bottom:20px;}
.contact-info a.line,.contact-info span.line{display:block;margin-bottom:10px;color:var(--navy);font-size:1.05rem;}
.contact-info address{font-style:normal;margin:16px 0 22px;color:var(--text);line-height:1.6;}
.map-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);height:260px;max-width:470px;}
.map-frame iframe{width:100%;height:100%;border:0;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:rgba(255,255,255,.92);padding:56px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.9fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:36px;}   /* first column (brand + address) wider */
.site-footer h5{font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px;color:#fff;}
.site-footer h5.footer-brand{text-transform:none;letter-spacing:.02em;}
.site-footer p{color:rgba(255,255,255,.9);font-size:.9rem;margin-bottom:4px;}   /* same brightness everywhere as the footer links */
.site-footer li{margin-bottom:10px;}
.site-footer a{color:rgba(255,255,255,.9);font-size:.92rem;}
.site-footer a:hover{color:#fff;text-decoration:underline;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding:18px 0;font-size:.85rem;color:rgba(255,255,255,.65);}

.back-to-top{
  position:fixed;bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));width:48px;height:48px;border-radius:50%;
  background:#fff;border:1px solid var(--border);box-shadow:0 6px 18px rgba(11,59,111,.18);
  display:flex;align-items:center;justify-content:center;color:var(--navy);z-index:40;
}
.back-to-top svg{width:18px;height:18px;}

/* ---------- Article / detail pages ---------- */
.page{padding:20px 0 70px;background:#fff;}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;margin-bottom:22px;}
.breadcrumb a:hover{color:var(--blue);}
.breadcrumb .sep{opacity:.6;}
.breadcrumb svg{width:26px;height:26px;color:var(--muted);}
.page-title{font-weight:300;font-size:clamp(1.9rem,1.3rem + 2.6vw,2.8rem);margin-bottom:26px;}
.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(min(280px,100%),1fr);gap:40px;align-items:start;}
.article-figure{border-radius:var(--radius);overflow:hidden;margin-bottom:26px;}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.article-lead{font-family:'Poppins';font-weight:600;font-size:1.25rem;color:var(--navy);margin-bottom:14px;}
.article-body{font-size:1.08rem;line-height:1.75;color:var(--text);}
.article-body h2{font-size:clamp(1.55rem,1.15rem + 1.8vw,2.4rem);font-weight:700;margin:38px 0 10px;}
.article-body h2:first-child{margin-top:0;}
.article-body p{margin-bottom:16px;}
.article-body ul{list-style:disc;padding-left:1.4rem;margin-bottom:16px;}
.article-body li{margin-bottom:6px;}
.article-body mark{background:#fff3c4;color:inherit;padding:1px 4px;border-radius:3px;}
.article-cta{margin-top:12px;}
.sidebar{display:flex;flex-direction:column;gap:20px;position:sticky;top:96px;}
.side-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px 24px;box-shadow:0 4px 14px rgba(11,59,111,.05);}
.side-card h3{font-size:1rem;margin-bottom:10px;}
.side-card .list a{display:block;padding:10px 0;border-bottom:1px solid var(--border);color:var(--navy);}
.side-card .list a:last-child{border-bottom:0;}
.side-card .list a:hover{color:var(--blue);}
.legal-layout{max-width:820px;}
/* Impressum & Datenschutzerklärung only: compact, sober legal typography */
.legal-layout .article-body{font-size:.95rem;line-height:1.65;}
.legal-layout .article-body h2{font-size:1.06rem;font-weight:600;line-height:1.35;margin:28px 0 6px;}
.legal-layout .article-body h2:first-child{margin-top:0;}
.legal-layout .article-body p{margin-bottom:10px;}
.page--legal .page-title{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.1rem);}

/* ---------- Login ---------- */

/* ---------- Responsive ---------- */
@media (min-width:1400px){
  .wrap,.hero-content{max-width:1280px;}
}
@media (max-width:1000px){
  .features{grid-template-columns:repeat(2,1fr);}
  .features article:nth-child(2){border-right:none;}
  .features article:nth-child(-n+2){border-bottom:1px solid var(--border);}
  .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .about-card,.contact-inner,.detail-layout{grid-template-columns:minmax(0,1fr);}
  .about-card{gap:24px;padding:22px;}
  .about-photo{width:100%;max-width:210px;margin-top:0;}
  .contact-inner{gap:28px;}
  .map-frame{max-width:none;height:300px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .sidebar{position:static;}
  html{scroll-padding-top:84px;}
  /* touch-friendly tap areas (visual size stays the same) */
  .lang-btn{min-width:40px;min-height:40px;justify-content:center;}
  .lang-menu a{padding:12px 14px;}
  .site-footer li{margin-bottom:0;}
  .site-footer li a{display:inline-block;padding:10px 0;}
  .contact-info a.line,.contact-info span.line{padding:9px 0;margin-bottom:0;}
}
@media (max-width:600px){
  .features,.service-grid,.footer-grid{grid-template-columns:1fr;}
  .features article{border-right:none;border-bottom:1px solid var(--border);}
  .features article:last-child{border-bottom:none;}
  .phone .txt{display:none;}
  .phone{min-width:40px;min-height:40px;justify-content:center;}
  .header-right{gap:8px;}
  .menu-btn{width:40px;height:40px;}
  .map-frame{height:240px;}
  .site-footer{padding-top:40px;}
  /* menu popup: full-width sheet under the header */
  .nav-panel{right:10px;width:calc(100% - 20px);padding:18px 18px 16px;border-radius:18px;max-height:calc(100vh - 84px);max-height:calc(100dvh - 84px);}
  .nav-panel-head{padding-bottom:12px;}
  .nav-title{font-size:1.25rem;}
  .nav-close{width:44px;height:44px;}
  .nav-links a{font-size:1.3rem;gap:16px;padding:10px 2px;}
  .nav-links svg{width:24px;height:24px;}
}
@media (max-width:380px){
  .header-inner{gap:8px;}
}
@media (max-height:500px) and (orientation:landscape){
  .hero{min-height:0;}
  .hero-content{padding-top:40px;}
  .nav-panel{max-height:calc(100vh - 80px);}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

/* Hero, art-directed by screen size.
   >= 900px: the designed photo carries the headline itself (baked in, one file per language);
   the HTML headline stays as visually hidden text (screen readers, SEO) and the booking cards sit below.
   < 900px (phones, small tablets): a text-free photo with the readable HTML headline on top. */
.hero-bg picture{display:block;width:100%;height:100%;}
@media (min-width:900px){
  .hero--designed{display:block;min-height:0;}
  .hero--designed .hero-bg{position:relative;inset:auto;height:clamp(460px,52vw,1150px);}
  .hero--designed .hero-bg::after{display:none;}
  .hero--designed .hero-bg img{object-position:center 85%;}
  .hero--designed .hero-content{display:block;padding:20px clamp(16px,4vw,24px) 28px;background:#fff;}
}

/* Both hero cards: title only slightly larger than the text, two small lines, clock + hours last.
   Walk-in = black on white, Termine = white on blue. */
.hero-card .card-title{font-family:'Poppins',sans-serif;font-weight:700;font-size:1.4rem;line-height:1.2;margin-bottom:2px;}
.hero-card .card-sub{font-size:1.02rem;font-weight:500;}
.hero-card .days{opacity:1;font-size:1.02rem;margin-top:0;}
.hero-card .time{opacity:1;font-weight:600;font-size:1.02rem;margin:10px 0 0;}
.hero-card--walkin,.hero-card--walkin .time,.hero-card--walkin .card-sub,.hero-card--walkin .days{color:var(--navy);}

.hero-card .card-extra{margin-top:2px;}

/* Header: booking button (placeholder until the online booking is connected) */
.btn-book{
  display:inline-flex;align-items:center;border:1.5px solid var(--navy);color:var(--navy);border-radius:999px;
  padding:7px 18px;font-weight:700;font-size:.85rem;line-height:1.2;white-space:nowrap;
  /* same brushed-metal texture as the header itself, slightly shaded so it reads as a plate */
  background:
    linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 45%,rgba(70,80,92,.22) 100%),
    #c9ccd1 url("assets/header-silver.jpg") center/260% auto;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(70,80,92,.35),0 1px 3px rgba(11,59,111,.25);
  transition:box-shadow .15s,filter .15s;
}
.btn-book:hover{filter:brightness(1.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(70,80,92,.4),0 2px 6px rgba(11,59,111,.35);}
.btn-book:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
@media (max-width:800px){.btn-book{display:none;}}


/* Three cards across the full width: Walk-In (white), Termine (blue), Aktuell (light tint) */
.hero-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.hero-cards--two{grid-template-columns:repeat(2,minmax(0,1fr));}
.hero-cards .hero-card{min-width:0;}
.hero-card--notice{background:#EAF3FB;border-color:#B9D6EE;color:var(--navy);display:flex;flex-direction:column;align-items:flex-start;}
.hero-card--notice .card-title{color:var(--navy);}
.hero-card--notice .card-sub{font-weight:500;}
.hero-card--notice .card-sub--strong{font-weight:700;}
.hero-card--notice .card-btn{margin-top:auto;padding:10px 22px;font-size:.95rem;}
.hero-card--notice .card-sub + .card-btn,.hero-card--notice .card-sub:last-of-type{margin-bottom:0;}
.hero-card--notice .card-btn{margin-top:14px;}
@media (max-width:899px){
  .hero-cards,.hero-cards--two{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero-cards .hero-card--notice{grid-column:1 / -1;}
}
@media (max-width:600px){
  .hero-cards,.hero-cards--two{grid-template-columns:1fr;}
}

/* Card headings: Aktuell keeps the SumaqMed blue (--blue); Walk-In uses the same dark blue as the rest of its text (bold weight kept);
   Termine's heading is white on its blue card */
.hero-card--notice .card-title{color:var(--navy);}
.hero-card--walkin .card-title{color:var(--navy);}
/* Aktuell: the key notice line in a muted bordeaux */
.hero-card--notice .card-sub--strong{color:#8B2C3E;font-weight:700;}

/* E-mail window opened by "Termin buchen" / "Termin anfragen" */
.mail-modal .qr-card{max-width:420px;}
.mail-modal .qr-card p{margin-bottom:10px;}
.mail-address{font-family:'Poppins',sans-serif;font-weight:600;font-size:1.25rem;color:var(--navy);word-break:break-all;user-select:all;padding:10px 12px;background:var(--bg-light);border:1px solid var(--border);border-radius:10px;margin:6px 0 14px;}
.mail-copy{cursor:pointer;background:transparent;}

/* Header phone before the practice opens: visible but not a link; "ab 16.11." smaller and lighter. */
.tel-soon{cursor:default;}
.phone-soon{font-weight:500;font-size:.8em;opacity:.8;}
@media (max-width:600px){.phone.tel-soon{display:none;}}

/* Header: quiet one-line description of the practice, centred on the wordmark in the hero photo
   (its centre sits at 49.5% of the photo width). Hidden (never wrapped) when the header gets too narrow. */
.header-tagline{position:absolute;left:49.5%;top:50%;transform:translate(-50%,-50%);margin:0;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:2px;}
.header-tagline .tagline-text{white-space:nowrap;font-size:.85rem;font-weight:500;letter-spacing:.02em;color:var(--navy);}
.header-tagline .tagline-address{white-space:nowrap;font-size:.72rem;font-weight:500;letter-spacing:.02em;color:var(--navy);}
@media (max-width:1240px){.header-tagline{display:none;}}
/* "ab 16.11." close to the number */
.phone > .phone-soon{margin-left:-3px;}

/* Spanish title "Dra." keeps its capitalisation (no all-caps "DRA.") */
html[lang^="es"] .about .diploma{text-transform:none;}

/* Unsere Leistungen: six equal cards in one row on wide screens, 3 x 2 on tablets (see <=1000px above), one column on phones.
   Cards without a detail page are not links, so they do not lift on hover. */
@media (min-width:1001px) and (max-width:1100px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.service-card h3,.service-card p{overflow-wrap:break-word;}
.service-grid{grid-auto-rows:1fr;}   /* every card the same height, also across rows */

/* Service cards: whole card is a link; a quiet arrow sits at the same bottom position in every card. */
.service-card{display:flex;flex-direction:column;}
.service-card p{text-wrap:pretty;}
.service-more{margin-top:auto;padding-top:14px;color:var(--blue);font-size:1.05rem;line-height:1;transition:transform .2s;}
.service-card:hover{transform:none;box-shadow:0 4px 14px rgba(11,59,111,.06);border-color:#B9D6EE;}
.service-card:hover .service-more{transform:translateX(3px);}

/* Detail page "Allgemeine Innere Medizin": calm, white space, no photo. */
.page--innere .detail-layout{gap:64px;}
.page--innere .article-lead{font-size:1.3rem;line-height:1.5;margin-bottom:22px;}
.page--innere .article-body h2{font-size:1.3rem;font-weight:600;margin:52px 0 16px;}
.article-body .focus-list{list-style:none;padding:0;margin:0 0 8px;}
.article-body .focus-list li{position:relative;padding:12px 0 12px 20px;margin:0;border-bottom:1px solid var(--border);line-height:1.5;font-size:1rem;}
.article-body .focus-list li::before{content:"";position:absolute;left:2px;top:1.15em;width:6px;height:6px;border-radius:50%;background:var(--blue);opacity:.7;}
.page--innere .article-cta{margin-top:44px;}
.side-card .list a.active{font-weight:700;color:var(--blue);}

/* "Unsere Praxisräume": intro + quiet photo gallery with enlarge-on-click (photos are added later, see data/praxisraeume.json). */
.page--rooms .rooms-intro{font-size:1.15rem;color:var(--muted);margin:0 0 44px;max-width:640px;}
.gallery{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px;}
.gallery a{display:block;border-radius:var(--radius);overflow:hidden;background:var(--bg-light);}
.gallery img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:opacity .2s;}
.gallery a:hover img{opacity:.92;}
.gallery-caption{display:block;margin-top:10px;font-size:.92rem;color:var(--muted);letter-spacing:.02em;}
@media (max-width:700px){.gallery{grid-template-columns:minmax(0,1fr);gap:26px;}}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(8,32,60,.93);display:flex;align-items:center;justify-content:center;padding:56px 64px;}
.lightbox[hidden]{display:none;}
.lightbox figure{margin:0;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;}
.lightbox img{max-width:100%;max-height:78vh;border-radius:10px;}
.lightbox figcaption{color:#fff;font-size:.95rem;letter-spacing:.02em;text-align:center;}
.lightbox button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;}
.lightbox button:hover{background:rgba(255,255,255,.12);}
.lightbox svg{width:28px;height:28px;}
.lightbox-close{top:12px;right:12px;}
.lightbox-prev{left:8px;top:50%;margin-top:-24px;}
.lightbox-next{right:8px;top:50%;margin-top:-24px;}
.lightbox-prev svg{transform:rotate(90deg);}
.lightbox-next svg{transform:rotate(-90deg);}
@media (max-width:600px){.lightbox{padding:56px 12px 40px;}.lightbox-prev{left:2px;}.lightbox-next{right:2px;}}

/* Detail page "Diagnostik & Apotheke": sub-headings and list label in the calm style of the Innere Medizin page. */
.page--innere .article-body .sub-title{font-family:'Poppins',sans-serif;font-size:1.1rem;font-weight:500;color:var(--navy);margin:0 0 8px;}
.page--innere .article-body .list-label{font-weight:600;color:var(--navy);margin:22px 0 6px;}
.page--innere .article-body h2:first-child{margin-top:0;}

/* Page "Abrechnung & Versicherung": short topic rows (heading left, text right) separated by hairlines. */
.page--billing .page-title{margin-bottom:14px;}
.page--billing .article-lead{margin-bottom:30px;}
.billing-list{max-width:920px;border-top:1px solid var(--border);}
.billing-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:8px 44px;padding:22px 0;border-bottom:1px solid var(--border);align-items:start;}
.billing-row h2{hyphens:manual;-webkit-hyphens:manual;font-family:'Poppins',sans-serif;font-size:1.02rem;font-weight:600;color:var(--navy);line-height:1.4;margin:0;}
.billing-row p{margin:0;font-size:1.02rem;line-height:1.7;color:var(--text);}
.pay-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.pay-list li{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--border);border-radius:999px;background:#fff;font-weight:600;font-size:.95rem;color:var(--navy);}
.pay-list svg{width:18px;height:18px;color:var(--blue);flex:none;}
@media (max-width:760px){.billing-row{grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0;}}

/* Footer: company name in its brand spelling "SumaqMed GmbH" (not all caps). */


/* Link from the doctor card to the CV page */
.cv-link-wrap{margin:16px 0 0;}
.about .cv-link{font-size:.95rem;font-weight:600;color:var(--blue);}
.about .cv-link:hover{text-decoration:underline;}

/* Page "Lebenslauf": calm vertical timeline in four sections (+ languages). Role is the strongest line. */
.page--cv .page-title{margin-bottom:6px;}
.page--cv .cv-name{color:var(--muted);font-size:1.05rem;margin:0 0 40px;}
.cv-section{max-width:900px;margin:0 0 56px;}
.cv-section h2{font-size:1.3rem;font-weight:600;padding-bottom:12px;margin:0 0 28px;border-bottom:1px solid var(--border);}
.cv-list{list-style:none;margin:0;padding:0;}
.cv-item{position:relative;padding:0 0 30px 224px;}
.cv-item:last-child{padding-bottom:0;}
.cv-item::before{content:"";position:absolute;left:198px;top:.55em;bottom:-.55em;width:2px;background:#CFE2F3;}
.cv-item:last-child::before{display:none;}
.cv-item::after{content:"";position:absolute;left:193px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px #fff;}
.cv-when{position:absolute;left:0;top:0;width:174px;text-align:right;line-height:1.35;}
.cv-year{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:.98rem;color:var(--blue);}
.cv-place{display:block;font-size:.82rem;color:var(--muted);margin-top:2px;}
.cv-role{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:600;color:var(--navy);line-height:1.35;margin:0;}
.cv-inst{margin:4px 0 0;font-size:.96rem;color:var(--text);line-height:1.55;}
.cv-note{margin:3px 0 0;font-size:.9rem;color:var(--muted);line-height:1.55;}
.cv-langs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 28px;}
.cv-langs li{display:flex;flex-direction:column;gap:2px;}
.cv-langs strong{font-family:'Poppins',sans-serif;font-weight:600;font-size:1.02rem;color:var(--navy);}
.cv-langs span{font-size:.92rem;color:var(--muted);line-height:1.45;}
@media (max-width:700px){.cv-langs{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:701px){.cv-langs li:last-child{padding-left:60px;}}   /* fourth language a little further right for an even spread */
@media (max-width:700px){
  .cv-item{padding-left:24px;}
  .cv-item::before{left:3px;}
  .cv-item::after{left:0;}
  .cv-when{position:static;width:auto;text-align:left;margin-bottom:4px;}
  .cv-place{display:inline;margin:0 0 0 8px;}
  .cv-year{display:inline;}
}

/* Emergency note after "Weiterführende Abklärung": quiet but clearly readable, no red warning colour. */
.emergency-note{margin:26px 0 0;padding-top:18px;border-top:1px solid var(--border);font-size:1rem;font-weight:600;color:var(--navy);}

/* Quiet closing note at the end of a detail page (e.g. equipment used). */
.closing-note{margin:34px 0 0;padding-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:.95rem;}
.credentials-note{margin:10px 0 0;color:var(--muted);font-size:.88rem;}
.nowrap{white-space:nowrap;}
.credentials-note a{display:inline-block;margin-top:4px;color:var(--blue);text-decoration:none;}
.credentials-note a:hover{text-decoration:underline;}

/* Phones: the desktop proportions carried over to one column (desktop and tablet styles are untouched) */
@media (max-width:600px){
  /* header */
  .header-inner{padding-top:6px;padding-bottom:6px;}
  .logo-img{height:38px;}
  .nav-panel{top:58px;}
  html{scroll-padding-top:70px;}
  /* Walk-In / Termine / Aktuelles */
  .hero-cards{gap:10px;}
  .hero-card{padding:12px 14px;}
  .hero-card .card-title{font-size:1.15rem;}
  .hero-card .card-sub,.hero-card .days,.hero-card .time{font-size:.92rem;}
  .hero-card .time{margin-top:6px;}
  .hero-card--notice .card-btn{margin-top:10px;padding:8px 18px;font-size:.88rem;}
  /* Persönlich / Kompetent / Vertrauensvoll / Zentral: still stacked, but quiet */
  .features article{padding:13px 16px;}
  .features h4{font-size:.98rem;margin-bottom:2px;}
  .features p{font-size:.87rem;line-height:1.5;}
  /* sections */
  section.block{padding:34px 0;}
  .section-head{margin-bottom:22px;}
  .section-head h2,.contact h2{font-size:1.45rem;}
  .section-head p{font-size:.95rem;}
  /* service cards: natural height, less padding, arrow right under the text */
  .service-grid{grid-auto-rows:auto;gap:10px;}
  .service-card{padding:14px 16px;}
  .service-icon{width:22px;height:22px;margin-bottom:8px;}
  .service-card h3{font-size:.98rem;margin-bottom:3px;}
  .service-card p{font-size:.86rem;}
  .service-more{margin-top:0;padding-top:8px;}
}

/* Hero below 900px: no photo lettering, so the lettering of the designed desktop photo is set in HTML
   (Poppins Light, #0B3B6F at 95 %, same tracking and proportions; original "sumaqmed" wordmark as image).
   Left-aligned on the text edge of the Walk-In card below. The headline (.hero-text) stays in the HTML for SEO, visually hidden. */
.hero-brand{display:none;}
.hero-brand-welcome{display:none;}
@media (max-width:899px){
  .hero-brand{--f:12.5px;--ink:rgba(11,59,111,.95);display:block;padding-left:19px;color:var(--ink);}   /* 19px = card border 1 + card padding 18 */
  .hero-brand-eyebrow{display:block;font-family:'Poppins',sans-serif;font-weight:300;font-size:var(--f);line-height:1;letter-spacing:.31em;}
  .hero-brand-mark{display:block;width:214px;height:auto;margin-top:calc(var(--f) * .78);}
  .hero-brand-rule{display:block;width:calc(var(--f) * 2.42);height:1px;background:var(--ink);margin-top:calc(var(--f) * .55);}
  .hero-brand-line{font-family:'Poppins',sans-serif;font-weight:300;font-size:var(--f);line-height:1.346;letter-spacing:.19em;margin-top:calc(var(--f) * .8);text-transform:uppercase;}
  .hero-brand-langs{margin-top:calc(var(--f) * .646);}
}
@media (max-width:600px){
  .hero-brand{padding-left:15px;}   /* card border 1 + card padding 14 */
}

/* Phones: "So erreichen Sie uns" -> Kontakt -> "Ärzte" in the same proportions as the upper part */
@media (max-width:600px){
  section.block.contact{padding-top:0;}                     /* Praxis and Kontakt share the white background: ~56px between them */
  .contact-inner{gap:20px;}
  .contact-info address{margin:6px 0 16px;}                  /* phone/e-mail keep their 45px tap areas */
  .about .section-head{margin-bottom:22px;}                 /* same gap as the other section titles */
  .about .section-head h2{font-size:1.45rem;}                /* same as the other section titles */
  .about-card{padding:18px;gap:20px;}
  .about h3.name{font-size:1.1875rem;margin-bottom:12px;}    /* 19px */
  .about p{font-size:.95rem;}
}

/* Tablets (601–899px): hero lettering grows with the width (starts at the phone values at 601px, 300px wordmark at 899px),
   service cards in 2 columns with natural row heights */
@media (min-width:601px) and (max-width:899px){
  .hero-brand{--f:clamp(12.5px, calc(8.47px + .671vw), 14.5px);}
  .hero-brand-mark{width:clamp(214px, calc(40.6px + 28.86vw), 300px);}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;}
  .service-more{padding-top:10px;}
}
/* 601–1000px (where Kontakt and "Ärzte" are still stacked): no gap between "So erreichen Sie uns" and Kontakt ... */
@media (min-width:601px) and (max-width:1000px){
  .practice .section-head{margin-bottom:16px;}
  section.block.contact{padding-top:0;}
}
/* ... and "Ärzte" with the photo (unchanged 210px) beside the text from 700px; from 1001px the desktop layout applies */
@media (min-width:700px) and (max-width:1000px){
  .about-card{grid-template-columns:210px minmax(0,1fr);gap:28px;}
}

/* Phones: compact hero lettering (wordmark unchanged); headline and languages on one line each where they fit,
   specialties line smaller and quieter below */
.hero-brand-fields{font-size:calc(var(--f) * .91);line-height:1.5;margin-top:calc(var(--f) * .9);}   /* ~10px on phones */
.hero-brand-sep{display:none;}                            /* " ·" joining the two language pairs on one line (phones only) */
@media (max-width:600px){
  .hero-content{padding-top:22px;gap:26px;}
  .hero-brand{--f:11px;}
  .hero-brand-br{display:none;}
  .hero-brand-sep{display:inline;}
}

/* Phones: photo in the perspective of the earlier mobile version (scale tied to the width, not to the hero height),
   more of the room visible between lettering and cards; Walk-In/Termine side by side, "Aktuelles" compact below */
@media (max-width:600px){
  .hero-bg{overflow:hidden;}
  .hero-bg img{position:absolute;left:50%;top:var(--photo-top,-90px);width:369.2vw;height:auto;max-width:none;transform:translateX(-50%);object-fit:fill;}
  .hero-content{gap:var(--photo-gap,200px);}
  .hero-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .hero-cards .hero-card--notice{grid-column:1 / -1;}
  .hero-card{padding:10px 12px;}
  .hero-card .card-title{font-size:1.05rem;}
  .hero-card .card-sub,.hero-card .days,.hero-card .time{font-size:.84rem;line-height:1.4;}
  .hero-card .time{margin-top:5px;}
  /* "Aktuelles": button to the right of the title, so the card is one line shorter */
  .hero-card--notice{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center;}
  .hero-card--notice > *{grid-column:1 / -1;}
  .hero-card--notice .card-title{grid-column:1;grid-row:1;}
  .hero-card--notice .card-btn{grid-column:2;grid-row:1;justify-self:end;margin:0;padding:6px 12px;font-size:.8rem;}
}

/* DRAFT – phones: hero lettering with the hierarchy and readability of the earlier mobile version
   (wordmark and photo stay as they are) */
@media (max-width:600px){
  .hero-brand-eyebrow,.hero-brand-mark,.hero-brand-rule{display:none;}
  .hero-brand .hero-brand-welcome{display:block;margin-bottom:0;}     /* "Willkommen bei SumaqMed GmbH" in the site's eyebrow style */
  /* sizes and weights of the earlier mobile hero (reference screenshot) */
  .hero-brand-head{font-weight:700;font-size:clamp(1.4rem,6.6vw,1.85rem);line-height:1.2;letter-spacing:0;text-transform:none;margin-top:4px;}
  .hero-brand-langs{font-family:'Manrope',sans-serif;font-weight:600;font-size:clamp(14.5px,3.97vw,16px);line-height:1.5;letter-spacing:.01em;text-transform:none;margin-top:12px;}
  .hero-brand-fields{font-family:'Manrope',sans-serif;font-weight:600;font-size:1rem;line-height:1.5;letter-spacing:0;text-transform:none;margin-top:14px;color:var(--blue);text-shadow:0 0 6px rgba(255,255,255,.9),0 0 2px rgba(255,255,255,.9);}   /* same blue as the welcome line */
  .hero-brand-head .hero-brand-br{display:inline;}   /* headline on two lines as before; languages stay on one line */
}

/* Hero card alignment, all screen sizes: Walk-In (white) and Termine (blue) are flex columns of equal height;
   "Monday to Friday" and the hours form one block at the bottom edge of each card, so both sit at the same height. */
.hero-cards .hero-card--walkin,.hero-cards .hero-card.cta{display:flex;flex-direction:column;}
.hero-cards .hero-card--walkin .days,.hero-cards .hero-card.cta .days{margin-top:auto;padding-top:10px;}   /* a little air above "Monday to Friday" ... */
.hero-cards .hero-card--walkin .time,.hero-cards .hero-card.cta .time{margin-top:0;}                     /* ... and it sits right on the hours (same total height as before) */

/* Phones only (≤600px): practice address under the hero headline.
   Tablet and desktop are untouched (the address stays hidden there). */
.hero-brand-address{display:none;}
.hero-brand-address::before{content:attr(data-address);}   /* generated text: not scanned by iOS data detectors (no auto-link / underline) */
@media (max-width:600px){
  .hero-brand .hero-brand-address{display:block;font-family:'Manrope',sans-serif;font-weight:500;font-size:15.5px;line-height:23px;letter-spacing:.01em;text-transform:none;white-space:nowrap;margin-top:6px;}
  /* the address (6px + 23px) is taken from the photo gap, so cards and everything below stay where they were */
  .hero-content{gap:calc(var(--photo-gap,200px) - 29px);}
  .hero-cards .hero-card--walkin .days,.hero-cards .hero-card.cta .days{padding-top:5px;}   /* phones: 5px (before: 5px between days and hours) */
}
