/* ====================================================================
   dieKardiologen – Rahmen für GeneratePress
   Kopfbereich, Menü, Termin-Button, Fußzeile, Handy-Leiste, Grundlayout
   ==================================================================== */
:root{color-scheme:only light;--dk-blue:#003a78;--dk-navy:#0b2545;--dk-bord:#870337;--dk-text:#3d4651;--dk-line:#e3e8ef;--dk-soft:#f3f6fa}

/* Grundlayout --------------------------------------------------------- */
html{scroll-padding-top:96px}
body{background:#fff !important;color:var(--dk-text);font-family:"Source Sans Pro","Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:17px;line-height:1.6;overflow-x:clip}
a{color:var(--dk-blue)}
.site.grid-container{max-width:none !important;padding:0 !important}
/* Inhalt auf Kopfbreite begrenzen (wie beim alten Theme) */
.site-content,.one-container .site-content,.separate-containers .site-content{max-width:1200px;margin:0 auto !important;padding:0 24px !important}
@media (max-width:768px){.site-content,.one-container .site-content,.separate-containers .site-content{padding:0 20px !important}}
.page .inside-article,.page .entry-content{padding:0 !important;margin:0 !important;background:transparent !important}
.separate-containers .inside-article{background:transparent !important}
.page .entry-header,.page .featured-image{display:none !important}
.page .entry-content > .panel-layout,.page .siteorigin-panels-stretch{margin-top:0}
.site-main{margin:0 !important}
.panel-grid-cell .so-panel{margin-bottom:0 !important}
.dk-p{padding-top:28px !important}

/* Kein seitliches Wischen am Handy: Inhalt und Fußzeile auf Bildschirmbreite begrenzen
   (clip statt hidden, damit der Kopfbereich weiter oben „kleben“ bleibt) */
html,body{max-width:100%}
#page,.site-footer{overflow-x:clip}
@supports not (overflow:clip){#page,.site-footer{overflow-x:hidden}}

/* Kopfbereich ----------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:200;background:#fff !important;border-bottom:1px solid var(--dk-line);transition:box-shadow .2s}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:600px){.admin-bar .site-header{top:0}}
.site-header .inside-header{max-width:1200px;margin:0 auto;padding:12px 24px !important;align-items:center}
@media (min-width:769px){
  .site-header .inside-header{flex-wrap:nowrap}
  .main-navigation .inside-navigation{flex-wrap:nowrap;align-items:center}
  .main-navigation .main-nav>ul{flex-wrap:nowrap}
}
.main-navigation .main-nav>ul>li>a{white-space:nowrap}
.site-logo img,.site-header .header-image{width:270px !important;max-width:270px;height:auto !important;display:block}
.site-branding .main-title,.site-branding .site-description{display:none}

/* Hauptmenü ---------------------------------------------------------------- */
.main-navigation,.main-navigation ul ul{background:#fff !important}
.main-navigation .main-nav ul li a{font-family:inherit;font-size:16px !important;font-weight:600;color:#4a5560 !important;padding-left:14px !important;padding-right:14px !important;line-height:64px !important}
.main-navigation .main-nav ul li:hover>a,.main-navigation .main-nav ul li:focus-within>a,
.main-navigation .main-nav ul li.current-menu-item>a,.main-navigation .main-nav ul li.current-menu-ancestor>a,
.main-navigation .main-nav ul li.current_page_item>a{color:var(--dk-blue) !important;background:transparent !important}
.main-navigation .main-nav>ul>li.current-menu-item>a,.main-navigation .main-nav>ul>li.current-menu-ancestor>a{box-shadow:inset 0 -3px 0 var(--dk-blue)}
.main-navigation ul ul{min-width:260px;border:1px solid var(--dk-line);border-radius:10px;box-shadow:0 14px 34px rgba(11,37,69,.12);padding:8px 0;overflow:hidden}
.main-navigation .main-nav ul ul li a{line-height:1.35 !important;padding:10px 18px !important;font-weight:500;font-size:15.5px !important}
.main-navigation .main-nav ul ul li a:hover{background:var(--dk-soft) !important}
.main-navigation .dropdown-menu-toggle{padding-left:6px !important;padding-right:0 !important}
.main-navigation .main-nav ul li.menu-item-has-children>a{padding-right:14px !important}

/* Termin-Button (im Menü rechts) ------------------------------------------- */
.menu-bar-items{display:flex;align-items:center;margin-left:10px}
.dk-termin{display:inline-flex;flex-direction:row;align-items:center;gap:8px;text-decoration:none !important;background:var(--dk-blue);color:#fff !important;border-radius:999px;padding:10px 18px;line-height:1.2;font-weight:700;font-size:15.5px;white-space:nowrap;transition:background .2s,transform .2s}
.dk-termin svg{width:18px;height:18px;flex:0 0 18px;margin-right:8px;position:relative;top:-1px}
@media (min-width:981px){.main-navigation .menu-bar-items a.dk-termin,.site-header a.dk-termin{display:inline-flex !important;flex-direction:row !important;align-items:center !important;gap:0}}
@media (max-width:980px){.site-header .menu-bar-items a.dk-termin{display:none !important}}
.dk-termin small{display:block;font-weight:400;font-size:11.5px;opacity:.8;letter-spacing:.02em;margin-top:2px}
.dk-termin:hover,.dk-termin:focus{background:var(--dk-navy);color:#fff !important;transform:translateY(-1px)}
@media (max-width:1100px) and (min-width:769px){
  .site-header .inside-header{padding:10px 16px !important}
  .main-navigation .main-nav ul li a,.main-navigation .main-nav ul li.menu-item-has-children>a{padding-left:8px !important;padding-right:8px !important;font-size:15px !important}
  .site-logo img,.site-header .header-image{width:180px !important;max-width:180px}
  .dk-termin{padding:8px 14px;font-size:14.5px}.dk-termin small{display:none}
}
/* Tablet: Termin-Button wandert in die untere Leiste, damit das Menü in eine Zeile passt */
@media (max-width:980px) and (min-width:769px){
  .menu-bar-items .dk-termin{display:none}
  .main-navigation .main-nav ul li a,.main-navigation .main-nav ul li.menu-item-has-children>a{padding-left:6px !important;padding-right:6px !important;font-size:14.5px !important}
  .site-logo img,.site-header .header-image{width:160px !important;max-width:160px}
}

/* Handy: Kopf + Menü -------------------------------------------------------- */
@media (max-width:768px){
  .site-header .inside-header{padding:8px 16px !important;flex-direction:row !important;flex-wrap:wrap !important;justify-content:space-between;text-align:left}
  .mobile-menu-control-wrapper{margin-left:auto !important;display:flex}
  .site-header #site-navigation{flex-basis:100%;width:100%;margin:0}
  .main-navigation.toggled .main-nav>ul{display:block}
  .site-logo img,.site-header .header-image{width:190px !important;max-width:190px}
  .menu-bar-items .dk-termin{display:none}
  .main-navigation .menu-toggle{color:var(--dk-blue) !important;background:transparent !important;font-weight:700;font-size:16px;padding:0 10px !important;line-height:52px}
  .main-navigation.toggled .main-nav{border-top:1px solid var(--dk-line)}
  .main-navigation.toggled .main-nav ul li a{line-height:1.4 !important;padding:13px 18px !important;font-size:17px !important;border-bottom:1px solid var(--dk-line)}
  .main-navigation.toggled .main-nav>ul>li.current-menu-item>a{box-shadow:inset 3px 0 0 var(--dk-blue)}
  .main-navigation.toggled .main-nav ul ul{border:0;border-radius:0;box-shadow:none;padding:0;background:var(--dk-soft) !important}
  .main-navigation.toggled .main-nav ul ul li a{padding-left:32px !important;font-size:16px !important}
}

/* Fußzeile -------------------------------------------------------------------- */
.site-footer{background:var(--dk-navy) !important;color:#cfd9e6}
.dk-foot{max-width:1200px;margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:1.25fr 1.1fr .9fr 1fr;gap:40px;font-size:15.5px;line-height:1.6}
.dk-foot h2{color:#fff !important;font-size:14px !important;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px !important;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.14)}
.dk-foot p{margin:0 0 10px;color:#cfd9e6}
.dk-foot a{color:#fff !important;text-decoration:none;font-weight:600}
.dk-foot a:hover,.dk-foot a:focus{text-decoration:underline}
.dk-foot .dk-foot-logo{display:inline-block;background:#fff;border-radius:10px;padding:10px 14px;margin-bottom:16px}
.dk-foot .dk-foot-logo img{display:block;width:200px;height:auto}
.dk-foot dl{display:grid;grid-template-columns:auto 1fr;gap:3px 16px;margin:0 0 14px}
.dk-foot dt{font-weight:600;color:#fff}
.dk-foot dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.dk-foot ul{list-style:none;margin:0;padding:0}
.dk-foot li{margin:0 0 7px;padding:0}
.dk-foot .dk-foot-klein{font-size:14px;color:#a9b7c9}
.dk-foot .dk-foot-112{display:block;font-size:44px;font-weight:800;line-height:1;color:#fff !important;margin:4px 0 8px;letter-spacing:.02em}
.dk-foot .dk-foot-notfall{border-left:3px solid var(--dk-bord);padding-left:16px}
.site-info{background:#071a33 !important;color:#a9b7c9 !important;font-size:14px}
.site-info .inside-site-info{max-width:1200px;margin:0 auto;padding:16px 24px !important;justify-content:space-between}
.site-info a{color:#cfd9e6 !important;text-decoration:none}
.site-info a:hover{color:#fff !important;text-decoration:underline}
.dk-copy{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;width:100%}
@media (max-width:1000px){.dk-foot{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
  .dk-foot{grid-template-columns:1fr;gap:30px;padding:40px 20px 28px}
  .dk-foot dd{text-align:left}
}

/* Handy-Leiste unten: Anrufen | Termin -------------------------------------- */
.dk-mbar{display:none}
@media (max-width:980px){
  .dk-mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:300;background:#fff;border-top:1px solid var(--dk-line);box-shadow:0 -6px 20px rgba(11,37,69,.10);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
  .dk-mbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;font-weight:700;font-size:16.5px;text-decoration:none !important}
  .dk-mbar a svg{width:20px;height:20px;flex:0 0 20px}
  .dk-mbar .dk-mbar-tel{background:var(--dk-soft);color:var(--dk-blue) !important;border:1px solid #d5e0ec}
  .dk-mbar .dk-mbar-termin{background:var(--dk-blue);color:#fff !important}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  /* Borlabs-Cookie-Symbol und "nach oben" über die Leiste heben */
  .brlbs-cmpnt-widget,#BorlabsCookieWidget{bottom:80px !important}
  .generate-back-to-top{bottom:84px !important}
}

/* Zugänglichkeit ------------------------------------------------------------ */
a:focus-visible,button:focus-visible{outline:3px solid #7aa7e0;outline-offset:2px}
.skip-link:focus{z-index:1000}
@media print{.site-header,.dk-mbar,.site-footer{display:none !important}}

/* Startseite: Kopfbild ohne grauen Kasten dahinter -------------------------- */
.dk-p .dk-hero.dk-home{background:none !important;border:0 !important;box-shadow:none !important;padding:0 !important;border-radius:0 !important}
.dk-p .dk-hero.dk-home .dk-banner{margin-top:0 !important}

/* Alter Doctolib-Schwebebutton (stammt nicht vom Theme, sondern aus einem Code-Schnipsel/Widget):
   im neuen Design ersetzt durch Termin-Button im Kopf und Handy-Leiste */
#doctolib-nav,.doctolib-widget,
a[href*="doctolib.de"]:has(img[src*="external_button"]),
a[href*="doctolib.de"]:has(img[src*="doctolib-white"]){display:none !important}
