/* Ergänzungen zum übernommenen Aphrodite-Theme (Look der alten Seite). Keine Inline-Styles nötig (CSP). */
html { overflow-y: scroll; }
body { padding: 0; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 8px; top: -60px; background: #00509e; color: #fff; padding: 8px 12px; z-index: 100000; }
.skip:focus { top: 8px; color: #fff; }
.clear { clear: both; }
.top_link { color: #fff; padding: 5px; display: block; }
.top_link:hover { color: #fff; text-decoration: underline; }
#top_wrapper .social_wrapper { margin-bottom: 0; }
.header_text { float: left; font-size: 11px; line-height: 18px; }
#top_wrapper a { color: #fff; }
#top_wrapper .social_wrapper ul li a.top_link { font-size: 11px; font-weight: bold; padding: 5px 5px 0 5px; }
img { max-width: 100%; }
.logo img { max-width: none; }
#home_slider .slides img { max-width: none; }

/* Slider ohne jQuery/Flexslider */
#slider_wrapper .flexslider .slides > li { display: none; }
#slider_wrapper .flexslider .slides > li.is-active { display: block; }
#slider_wrapper .flexslider .slides > li > a { display: block; cursor: default; }
#slider_wrapper .flexslider .slides a { color: #777; }
#slider_wrapper .flexslider .slides img { box-shadow: none; }
.flexslider .flex-direction-nav { display: none; }
.flex-control-nav { position: relative; }
.flex-control-nav li a { text-indent: -9999px; overflow: hidden; }
.slide_desc_left, .slide_desc_right { position: absolute; max-width: 270px; line-height: 15px; text-align: left; font-size: 11px; }
.slide_desc_left { left: 15px; }
.slide_desc_right { right: 15px; }

/* Schwerpunkt-Karussell (Startseite) */
.home_portfolio .slides > li { display: none; }
.home_portfolio .slides > li.is-active { display: block; }
.home_portfolio .portfolio_nav { text-align: center; padding-top: 10px; }
.home_portfolio .portfolio_nav button { border: 0; background: #ccc; width: 22px; height: 4px; margin: 0 2px; padding: 0; cursor: pointer; }
.home_portfolio .portfolio_nav button.is-active { background: #00509e; }
.portfolio200_shadow a { display: block; }
.portfolio200_shadow:hover .portfolio200_overlay { opacity: .6; }
.portfolio_desc_200 { height: auto; min-height: 60px; }
.portfolio_desc h6 a { color: inherit; }

/* Menü: aktive Markierung, Tastaturbedienung */
#menu_wrapper .nav > li:focus-within > ul { display: block; }
#menu_wrapper div .nav li ul li a { text-transform: none; }
#menu_wrapper div .nav li ul li.menu-item-has-children > a::after { content: " ›"; }
#menu_wrapper div .nav li:hover ul li ul { display: none; }
#menu_wrapper div .nav li ul li:hover > ul, #menu_wrapper div .nav li ul li:focus-within > ul { display: block; }
#menu_wrapper div .nav li ul li ul { position: absolute; left: 210px; top: -2px; margin-top: 0; }
#menu_wrapper div .nav li ul li { position: relative; }
#menu_wrapper .nav li a:focus-visible, .logo a:focus-visible { outline: 2px solid #00509e; outline-offset: 2px; }

/* Inhaltsbereich (Textseiten) */
.standard_wrapper { color: #777; }
.standard_wrapper.text { width: 700px; }
#content_wrapper .standard_wrapper ul, #content_wrapper .standard_wrapper ol { margin-left: 20px; margin-bottom: .8em; }
#content_wrapper .standard_wrapper ul { list-style: disc; }
#content_wrapper .standard_wrapper ol { list-style: decimal; }
.standard_wrapper h2 { margin: 1.1em 0 .4em; font-size: 22px; line-height: 26px; letter-spacing: 0; }
.standard_wrapper h3 { margin: 1em 0 .3em; font-size: 17px; line-height: 21px; letter-spacing: 0; }
.standard_wrapper h4 { margin: 1em 0 .3em; font-size: 14px; letter-spacing: 0; }
.standard_wrapper table { border-collapse: collapse; width: 100%; margin: 0 0 1em; font-size: 12px; }
.standard_wrapper th, .standard_wrapper td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #ebebeb; vertical-align: top; }
.standard_wrapper th { background: #f9f9f9; border-bottom: 2px solid #ccc; color: #183243; }
.standard_wrapper blockquote { border-left: 3px solid #00509e; padding: 2px 0 2px 14px; margin: 0 0 1em; }
.standard_wrapper img { max-width: 100%; height: auto; }
.standard_wrapper figure { margin: 0 0 1em; }
.standard_wrapper figcaption { font-size: 11px; color: #999; }
.standard_wrapper hr { margin: 1.5em 0; border: 0; border-top: 1px solid #ebebeb; }
.standard_wrapper dt { font-weight: bold; color: #183243; }
.standard_wrapper .table-wrap { overflow-x: auto; }
.note { background: #f9f9f9; border-left: 3px solid #00509e; padding: 8px 14px; margin: 0 0 1.4em; font-size: 12px; }
.note p { margin: 0; padding: 0; }
.note strong { color: #183243; }
.related { margin-top: 30px; border-top: 3px solid #e5e5e5; padding-top: 10px; }
.related h2 { font-size: 16px; margin: 0 0 6px; }
.related ul { margin: 0 0 0 20px; }

/* Ersatz für einzelne Klassen der Inhaltsseiten */
.mt0 { margin-top: 0; } .mt16 { margin-top: 16px; } .mt24 { margin-top: 24px; }
.grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); margin-bottom: 20px; }
.flow { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); margin-bottom: 20px; counter-reset: step; }
.card { background: #f9f9f9; border-bottom: 1px solid #ccc; padding: 14px 16px; }
.card:hover { background: #fff; border-bottom-color: #00509e; }
.card h3 { margin: 0 0 6px; font-size: 16px; line-height: 20px; }
.card p { margin: 0 0 6px; padding: 0; }
.flow .card::before { counter-increment: step; content: counter(step); display: inline-block; width: 22px; height: 22px; margin-bottom: 6px; border-radius: 50%; background: #00509e; color: #fff; font: bold 12px/22px Helvetica, Arial, sans-serif; text-align: center; }
.more { font-weight: bold; }
.contact-grid { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
address { font-style: normal; }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 10px 0 0; }
.kv dt { font-weight: bold; color: #183243; }
.kv dd { margin: 0; }
.btn-row { margin-top: 14px; }
a.button, .btn { display: inline-block; font: bold 12px Helvetica, Arial, sans-serif; padding: .65em 2em; color: #fff; background: #00509e; border: 1px solid #00509e; text-align: center; margin: 0 6px 6px 0; }
a.button:hover, .btn:hover { color: #fff; background: #183243; border-color: #183243; }
.btn-outline { background: transparent; color: #00509e; }
.btn-outline:hover { color: #fff; }
a.btn-primary { background: #F9B601; border-color: #F9B601; color: #fff; }
a.btn-primary:hover { background: #E0A401; border-color: #E0A401; }
.tagline h2 { font-size: 30px; letter-spacing: -1px; }
.tagline_desc p { text-align: center; }
.logo_strip { text-align: center; margin: 14px 0 10px; }
.logo_strip a { display: inline-block; margin: 0 10px 10px; vertical-align: middle; }
.logo_strip img { max-width: none; }
.home_block { margin: 30px 0 10px; }
.home_block h2 { margin-bottom: 10px; }
#footer h2.widgettitle { color: #ebebeb; border-bottom: 3px solid #ebebeb; font-size: 20px; line-height: 43px; margin: 0 0 8px; }
#footer .sidebar_widget { list-style: none; margin: 0; padding: 0; }
#footer .footer_cols { display: flex; gap: 40px; }
#footer .footer_cols > div { flex: 1; }
#footer p { padding: 0.4em 0; }
#footer a { text-decoration: underline; }
#footer .footer_note { font-size: 11px; color: #ebebeb; padding-top: 10px; }
#footer li { list-style: none; }

/* Schmale Bildschirme: grid.css des alten Themes liefert Tablet-/Handy-Layouts; hier nur Ergänzungen. */
@media only screen and (max-width: 960px) {
  .standard_wrapper.text { width: auto; }
  .grid, .flow, .contact-grid { grid-template-columns: 1fr; }
  #footer .footer_cols { flex-direction: column; gap: 0; }
  .header_text { float: none; }
}
@media only screen and (max-width: 767px) {
  #top_wrapper { height: auto; padding-bottom: 6px; }
  #top_wrapper .social_wrapper { width: auto; padding-left: 15px; padding-right: 15px; }
  #menu_wrapper .nav ul, #menu_wrapper div .nav { display: block; float: none; height: auto; text-align: left; }
  #menu_wrapper div .nav li { float: none !important; display: inline-block !important; padding: 6px 10px; }
  #menu_wrapper div .nav li ul { display: none !important; }
  #home_slider .slides img { max-width: 100%; width: 100%; height: auto; }
  #home_slider .slides li, #home_slider .slides li a { width: 100%; }
  .caption_header h1 { font-size: 34px; line-height: 38px; letter-spacing: -1px; overflow-wrap: anywhere; }
  #menu_wrapper div .nav li { border: 0 !important; padding: 4px 8px !important; }
  #menu_wrapper div .nav li a { padding: 0; border: 0; }
  #menu_border_wrapper { float: none; margin-top: 0; }
  #slider_wrapper { height: auto; width: auto !important; margin-left: 0 !important; overflow: hidden; }
  #home_slider { height: auto; }
  #slider_wrapper .flexslider ul.slides li a .slide_content_left, #slider_wrapper .flexslider ul.slides li a .slide_content_right { position: static; max-width: none; }
  .slide_desc_left, .slide_desc_right { position: static !important; max-width: none; background: #fff; }
  .logo img { max-width: 100%; height: auto; }
  .one_fourth, .one_third, .one_fourth.last, .one_third.last, .home_portfolio.three_fourth { float: none; width: auto; margin: 0 0 16px; }
  .home_portfolio { float: none; }
  .portfolio_desc_200 { width: auto; }
  .logo_strip img { max-width: 100%; height: auto; }
  .portfolio200_shadow { width: auto; }
}
body.home .page_caption { padding-bottom: 19px; }

/* Folien-Titel: h2 statt h5 (saubere Überschriftenhierarchie), Optik wie h5 der alten Seite */
#slider_wrapper .flexslider ul.slides li a .slide_content_left h2,
#slider_wrapper .flexslider ul.slides li a .slide_content_right h2 { color: #fff; font-size: 28px; line-height: 1.2; letter-spacing: 0; margin: 0; font-weight: 700; }

/* Header-Bild Unterseite (Helmtherapie) */
.page_hero{margin:0 0 24px;line-height:0}
.page_hero img{display:block;width:100%;height:auto;border-radius:0}

/* Seitentitel global kleiner, damit mehrzeilige Titel nicht ineinanderlaufen */
@media (min-width: 768px) {
  #content_wrapper .caption_header h1, .caption_header h1 { font-size: 46px; line-height: 52px; letter-spacing: -2px; }
}
