/**
 * PAT – Child-Template von Cassiopeia
 * Optik nach dem früheren Joomla-3-Template "jp-interior" (Style "blue-menu").
 *
 * Farben aus jp-interior/styles/blue-menu/style.less + custom.css:
 *   Primär  #1891ca   Linie/Hover  #8ccaff   Highlights-Hintergrund  #e5f4ff
 *   Grau    #f9f9f9   Text         #222222   Überschriften           #000000
 */

:root {
  --pat-primary: #1891ca;
  --pat-primary-dark: #137aab;
  --pat-light: #8ccaff;
  --pat-bg-blue: #e5f4ff;
  --pat-bg-gray: #f9f9f9;
  --pat-text: #222;
  --pat-heading: #000;
  --pat-container: 1100px;
  --pat-header-offset: 70px;

  /* Cassiopeia-Variablen auf die PAT-Farben setzen */
  --cassiopeia-color-primary: var(--pat-primary);
  --cassiopeia-color-link: var(--pat-primary);
  --cassiopeia-color-hover: #222;
  --link-color: var(--pat-primary);
  --link-color-rgb: 24, 145, 202;
  --link-hover-color: var(--pat-light);
  --link-hover-color-rgb: 140, 202, 255;
  --cassiopeia-font-family-body: "Open Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --cassiopeia-font-family-headings: "Open Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --cassiopeia-font-weight-normal: 400;
  --cassiopeia-font-weight-headings: 400;
  --body-color: var(--pat-text);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--pat-header-offset);
}

body.pat-site {
  background: #fff;
  color: var(--pat-text);
  font-size: 15px;
  line-height: 1.8;
}

.pat-site .container,
.pat-site .container-fluid {
  max-width: var(--pat-container);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.pat-site .container-fluid {
  max-width: none;
}

.pat-sidebar {
  overflow-wrap: anywhere;
}

/* Links */
.pat-site a {
  color: var(--pat-primary);
  text-decoration: none;
}

.pat-site a:hover,
.pat-site a:focus {
  color: var(--pat-light);
  text-decoration: none;
}

/* Überschriften */
.pat-site h1, .pat-site h2, .pat-site h3,
.pat-site h4, .pat-site h5, .pat-site h6 {
  color: var(--pat-heading);
  font-weight: 400;
  margin: 0 0 20px;
}

.pat-site h1 { font-size: 2.6rem; line-height: 1.25; }
.pat-site h2 { font-size: 2rem; line-height: 1.25; }
.pat-site h3 { font-size: 1.6rem; line-height: 1.3; }
.pat-site h4 { font-size: 1.2rem; line-height: 1.35; }

/* Beitragstitel: dünn, mit hellblauer Unterlinie und kurzem Akzentstrich */
.pat-site main .page-header h1,
.pat-site main .page-header h2,
.pat-site main .blog-featured .item-content > h2,
.pat-site main .blog .item-content > h2 {
  position: relative;
  font-size: 2.4rem;
  line-height: 1.2;
  font-weight: 300;
  padding-bottom: 10px;
  margin: 10px 0 20px;
  border-bottom: 1px solid var(--pat-light);
}

.pat-site main .page-header h1::after,
.pat-site main .page-header h2::after,
.pat-site main .blog-featured .item-content > h2::after,
.pat-site main .blog .item-content > h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 30px;
  height: 3px;
  background: var(--pat-primary);
}

.pat-site .page-header {
  margin-bottom: 0;
}

/* Modultitel (Chrome "pat") */
.pat-module-title {
  position: relative;
  font-size: 1.7rem !important;
  font-weight: 300 !important;
  line-height: 1.3;
  padding-bottom: 10px;
  margin-bottom: 20px !important;
  border-bottom: 1px solid var(--pat-light);
}

.pat-module-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 30px;
  height: 3px;
  background: var(--pat-primary);
}

.pat-module + .pat-module {
  margin-top: 0;
}

.pat-sidebar .pat-module {
  margin-bottom: 30px;
}

/* ==========================================================================
   Header: Logo zentriert, darunter blaue Menüleiste
   ========================================================================== */
.pat-header {
  position: relative;
  z-index: 980;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0, 69, 109, .12);
}

.pat-header.pat-sticky {
  position: sticky;
  top: 0;
}

.pat-brand {
  text-align: center;
  padding: 18px 20px 14px;
  background: #fff;
  transition: padding .25s ease;
}

.pat-logo {
  display: inline-block;
}

.pat-logo-img {
  display: block;
  width: auto;
  height: 71px;
  max-width: 100%;
  transition: height .25s ease;
}

.pat-logo-text {
  font-size: 2rem;
  font-weight: 300;
  color: var(--pat-heading);
}

/* Header kompakter, sobald gescrollt wird (Klasse kommt aus user.js) */
.pat-scrolled .pat-brand {
  padding: 6px 20px 4px;
}

.pat-scrolled .pat-logo-img {
  height: 40px;
}

.pat-navbar {
  background: var(--pat-primary);
}

.pat-navbar > .container,
.pat-navbar > .container-fluid {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

.pat-navbar .navbar {
  width: 100%;
  padding: 0;
  justify-content: center;
}

.pat-navbar .navbar-collapse {
  justify-content: center;
}

.pat-navbar .metismenu.mod-menu {
  justify-content: center;
  list-style: none;
  padding: 0;
}

@media (width >= 992px) {
  .pat-navbar .metismenu.mod-menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.pat-navbar .metismenu.mod-menu > .metismenu-item {
  padding: 0;
  font-size: 15px;
}

.pat-navbar .metismenu.mod-menu > .metismenu-item > a,
.pat-navbar .metismenu.mod-menu > .metismenu-item > span,
.pat-navbar .metismenu.mod-menu > .metismenu-item > button {
  display: flex;
  align-items: center;
  gap: .45em;
  height: 60px;
  padding: 0 20px;
  color: #fff;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: .02em;
  text-decoration: none;
  transition: background-color .15s linear, color .15s linear;
}

.pat-navbar .metismenu.mod-menu > .metismenu-item > a:hover,
.pat-navbar .metismenu.mod-menu > .metismenu-item > a:focus,
.pat-navbar .metismenu.mod-menu > .metismenu-item.active > a,
.pat-navbar .metismenu.mod-menu > .metismenu-item.current > a {
  background: #fff;
  color: #000;
  text-decoration: none;
}

.pat-navbar .metismenu-item > a [class*="fa-"],
.pat-navbar .metismenu-item > a [class^="icon-"] {
  padding: 0 !important;
  font-size: .95em;
}

/* Dropdown */
.pat-navbar .metismenu.mod-menu .metismenu-item > ul {
  background: var(--pat-primary);
  min-width: 240px;
  box-shadow: 0 4px 10px rgba(0, 69, 109, .25);
}

.pat-navbar .metismenu.mod-menu .mm-collapse > li > a {
  display: block;
  padding: 10px 20px;
  color: #fff;
  font-size: 13px;
}

.pat-navbar .metismenu.mod-menu .mm-collapse > li > a:hover {
  color: #000;
  background: #fff;
}

/* Mobile Navigation */
.pat-navbar .navbar-toggler {
  margin: 8px 16px;
  padding: 6px 12px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 4px;
}

@media (width < 992px) {
  .pat-navbar > .container,
  .pat-navbar > .container-fluid {
    justify-content: flex-end;
  }

  .pat-navbar .navbar {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .pat-navbar .navbar-collapse {
    flex-basis: 100%;
  }

  .pat-navbar .metismenu.mod-menu {
    flex-direction: column;
    padding-bottom: 8px;
  }

  .pat-navbar .metismenu.mod-menu > .metismenu-item > a {
    height: auto;
    padding: 12px 20px;
  }

  .pat-brand {
    padding: 10px 16px 8px;
  }

  .pat-logo-img {
    height: 50px;
  }
}

@media (width < 768px) {
  .pat-site main .page-header h1,
  .pat-site main .page-header h2,
  .pat-site main .blog-featured .item-content > h2,
  .pat-site main .blog .item-content > h2,
  .pat-slider-title {
    font-size: 1.7rem !important;
  }

  .pat-module-title {
    font-size: 1.4rem !important;
  }
}

/* ==========================================================================
   Sektionen in voller Breite
   ========================================================================== */
.pat-section {
  padding: 30px 0;
}

.pat-banner,
.pat-top-a {
  background: var(--pat-bg-gray);
  padding: 30px 0 45px;
}

.pat-top-b {
  background: #fff;
}

.pat-main {
  background: #fff;
  padding: 30px 0 40px;
}

.pat-bottom-a {
  background: var(--pat-bg-blue);
  padding: 40px 0;
}

.pat-bottom-b {
  background: var(--pat-bg-gray);
  padding: 40px 0 30px;
}

.pat-main img,
.pat-section img {
  max-width: 100%;
  height: auto;
}

/* Breadcrumbs */
.pat-site .mod-breadcrumbs__wrapper {
  margin-bottom: 10px;
}

.pat-site .mod-breadcrumbs {
  background: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
}

/* ==========================================================================
   Slider (ersetzt RokSprocket Features/Showcase)
   ========================================================================== */
.pat-slider {
  padding-bottom: 40px;
}

.pat-slider .carousel-item {
  min-height: 300px;
}

.pat-slider-image img {
  display: block;
  margin: 0 auto;
  max-height: 380px;
  width: auto;
  max-width: 100%;
  border: 1px solid #e3e3e3;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 69, 109, .12);
}

.pat-slider-title {
  font-size: 2rem !important;
  font-weight: 300 !important;
  line-height: 1.25;
  color: #000;
}

.pat-slider-desc {
  font-size: 1rem;
}

.pat-slider .carousel-indicators {
  bottom: 0;
  margin-bottom: 0;
}

.pat-slider .carousel-indicators [data-bs-target] {
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border: 0;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, .25);
  opacity: 1;
}

.pat-slider .carousel-indicators .active {
  background-color: var(--pat-primary);
}

/* ==========================================================================
   Inhalts-Elemente aus der alten Website
   ========================================================================== */

/* Liste mit Pfeil-Aufzählung (Klasse "OwnPfeil") */
.pat-site ul.OwnPfeil {
  list-style: none;
  padding-left: 0;
}

.pat-site ul.OwnPfeil li {
  line-height: 1.6em;
  margin: 0 0 .35em;
  padding-left: 1.6em;
  position: relative;
}

.pat-site ul.OwnPfeil li::before {
  content: "➦";
  position: absolute;
  left: 0;
  top: -.1em;
  color: var(--pat-primary);
  font-size: 1.3em;
}

.pat-site ul.OwnPfeil li ul {
  list-style: none;
  padding-left: 0;
  margin-top: .35em;
}

.pat-site ul.OwnPfeil li ul li::before {
  content: "➟";
}

/* Buttons */
.pat-site .btn-primary,
.pat-site .btn-pat {
  --btn-bg: var(--pat-primary);
  --btn-border-color: var(--pat-primary);
  --btn-hover-bg: #222;
  --btn-hover-border-color: #222;
  background-color: var(--pat-primary);
  border-color: var(--pat-primary);
  color: #fff !important;
  border-radius: 0;
  padding: .55em 1.4em;
  white-space: normal;
}

.pat-site .btn-primary:hover,
.pat-site .btn-pat:hover {
  background-color: #222;
  border-color: #222;
  color: #fff !important;
}

/* Kontakt-Sektion */
.pat-contact-name {
  font-size: 20px;
  font-weight: 300;
  margin-top: 20px;
}

/* FAQ (früher Freestyle FAQ) als aufklappbare Einträge */
.pat-faq h3 {
  margin-top: 30px;
}

.pat-faq details {
  border-bottom: 1px solid #e3eef6;
  padding: 0;
}

.pat-faq summary {
  cursor: pointer;
  padding: 12px 10px 12px 34px;
  position: relative;
  list-style: none;
  color: var(--pat-primary);
}

.pat-faq summary::-webkit-details-marker {
  display: none;
}

.pat-faq summary::before {
  content: "+";
  position: absolute;
  left: 8px;
  top: 9px;
  width: 18px;
  font-weight: 600;
  font-size: 1.2em;
  color: var(--pat-primary);
}

.pat-faq details[open] summary::before {
  content: "–";
}

.pat-faq summary:hover {
  background: #d4e3ed;
  color: #000;
}

.pat-faq .pat-faq-answer {
  padding: 4px 10px 16px 34px;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.pat-footer {
  background: var(--pat-primary);
  color: #fff;
  padding: 20px 0;
  font-size: 13px;
  text-align: center;
}

.pat-footer p {
  margin: 0 0 6px;
}

.pat-footer a {
  color: #fff !important;
}

.pat-footer a:hover {
  color: #000 !important;
}

.pat-footer .mod-menu {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pat-footer .mod-menu > li {
  padding: 0 12px;
}

.pat-footer .mod-menu > li + li {
  border-left: 1px solid rgba(255, 255, 255, .5);
}

/* ==========================================================================
   Punkt-Navigation am rechten Rand (Position "scrollnav")
   ========================================================================== */
.pat-scrollnav {
  position: fixed;
  right: 14px;
  top: 30%;
  z-index: 999;
}

.pat-dotnav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pat-dotnav a {
  display: block;
  position: relative;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(50, 50, 50, .15);
  border: 1px solid rgba(255, 255, 255, .8);
  box-shadow: 0 0 0 1px rgba(24, 145, 202, .35);
  transition: background-color .2s ease, transform .2s ease;
}

.pat-dotnav a:hover,
.pat-dotnav a.is-active {
  background: var(--pat-primary);
  transform: scale(1.15);
}

.pat-dotnav a span {
  position: absolute;
  right: 26px;
  top: 50%;
  transform: translateY(-50%);
  padding: 2px 10px;
  background: #222;
  color: #fff;
  font-size: 12px;
  line-height: 20px;
  white-space: nowrap;
  border-radius: 3px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.pat-dotnav a:hover span,
.pat-dotnav a:focus span {
  opacity: 1;
}

/* Nach-oben-Button */
.pat-site .back-to-top-link {
  background-color: var(--pat-primary);
  border-radius: 0;
}

.pat-site .back-to-top-link:hover {
  background-color: #000;
}

/* Formulare/Login */
.pat-site .com-users-login,
.pat-site .com-contact {
  max-width: 720px;
}
