/*
Theme Name: KS-XPERT v47
Theme URI: https://ks-xpert.de/
Description: Eigenständiges WordPress-Theme auf Basis des aktuellen KS-XPERT Designs.
Author: KS-XPERT
Version: 47.0.1
Text Domain: ks-xpert-v47
*/

:root { color-scheme: light only; }
html { scroll-behavior: smooth; }
body { margin: 0; }

.ksx-legal-shell {
  min-height: 100vh;
  background: #f7f6f2;
  color: #101713;
  font-family: Inter, sans-serif;
}

.ksx-legal-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(12, 53, 22, .12);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(18px);
}

.ksx-legal-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  min-height: 94px;
}

.ksx-legal-header img { display: block; width: auto; height: 68px; }
.ksx-legal-header nav,
.ksx-legal-footer nav { display: flex; align-items: center; gap: 20px; }
.ksx-legal-header a,
.ksx-legal-footer a,
.ksx-legal-footer button { color: inherit; text-decoration: none; }

.ksx-legal-contact {
  padding: 11px 19px;
  border-radius: 999px;
  background: #0c3516;
  color: #fff !important;
}

.ksx-legal-main {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
  padding: 72px 0 96px;
}

.ksx-legal-article {
  padding: clamp(28px, 5vw, 64px);
  border: 1px solid rgba(12, 53, 22, .12);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(12, 53, 22, .08);
}

.ksx-legal-eyebrow {
  margin: 0 0 14px;
  color: #b07b17;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.ksx-legal-article h1 {
  margin: 0 0 38px;
  color: #0c3516;
  font-size: clamp(38px, 7vw, 68px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.ksx-legal-content h2 {
  margin: 38px 0 10px;
  color: #0c3516;
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.25;
}

.ksx-legal-content p,
.ksx-legal-content li {
  color: #4f5d55;
  font-size: 16px;
  line-height: 1.75;
}

.ksx-legal-content a { color: #0c3516; text-decoration-color: #b07b17; text-underline-offset: 3px; }
.ksx-legal-content code { padding: 2px 6px; border-radius: 6px; background: #eef2ee; font-size: .9em; }

.ksx-legal-footer {
  border-top: 1px solid rgba(12, 53, 22, .12);
  background: #fff;
}

.ksx-legal-footer > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 30px 0;
  color: #667169;
  font-size: 13px;
}

.ksx-legal-footer button {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}

.ksx-legal-cookie-button {
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 99;
  padding: 11px 16px;
  border: 0;
  border-radius: 999px;
  background: #0c3516;
  color: #fff;
  box-shadow: 0 10px 25px rgba(12, 53, 22, .25);
  cursor: pointer;
}

@media (max-width: 640px) {
  .ksx-legal-header-inner { min-height: 78px; }
  .ksx-legal-header img { height: 54px; }
  .ksx-legal-header nav > a:first-child { display: none; }
  .ksx-legal-main { width: min(100% - 24px, 900px); padding: 28px 0 64px; }
  .ksx-legal-article { padding: 28px 22px; border-radius: 22px; }
  .ksx-legal-article h1 { margin-bottom: 28px; }
  .ksx-legal-footer > div { align-items: flex-start; flex-direction: column; }
  .ksx-legal-footer nav { align-items: flex-start; flex-direction: column; gap: 12px; }
  .ksx-legal-cookie-button { display: none; }
}
body.admin-bar [data-ksx-header] { top: 32px; }
body.admin-bar #ksx-mobile-menu { top: 144px; }
#ksx-mobile-menu { top: 112px; z-index: 1000; }
[data-ksx-track] { will-change: transform; transition: transform 450ms cubic-bezier(.22,1,.36,1); }

#about .rounded-2xl:has(> img) {
  border-color: transparent;
  background: #0a1410;
}

#about .rounded-2xl > img {
  inset: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  max-width: none;
}

#about .lg\:col-span-6.flex.flex-col > .relative:first-child > img {
  object-position: 50% 31%;
}

:root {
  --ksx-contact-phone: #e11d48;
  --ksx-contact-phone-soft: rgba(225, 29, 72, .12);
  --ksx-contact-phone-border: rgba(225, 29, 72, .22);
  --ksx-contact-whatsapp: #b07b17;
  --ksx-contact-whatsapp-soft: rgba(176, 123, 23, .15);
  --ksx-contact-whatsapp-border: rgba(176, 123, 23, .28);
  --ksx-contact-mail: #2563eb;
  --ksx-contact-mail-soft: rgba(37, 99, 235, .12);
  --ksx-contact-mail-border: rgba(37, 99, 235, .22);
}

#area a[href^="tel:"],
#kontakt a[href^="tel:"],
footer a[href^="tel:"],
[data-ksx-mobile-actions] a[href^="tel:"] {
  border-color: var(--ksx-contact-phone-border) !important;
  background: var(--ksx-contact-phone-soft) !important;
  color: var(--ksx-contact-phone) !important;
}

#area a[href*="wa.me"],
#kontakt a[href*="wa.me"],
[data-ksx-mobile-actions] a[href*="wa.me"] {
  border-color: var(--ksx-contact-whatsapp-border) !important;
  background: var(--ksx-contact-whatsapp-soft) !important;
  color: var(--ksx-contact-whatsapp) !important;
}

#area a[href^="mailto:"],
#kontakt a[href^="mailto:"],
footer a[href^="mailto:"] {
  border-color: var(--ksx-contact-mail-border) !important;
  background: var(--ksx-contact-mail-soft) !important;
  color: var(--ksx-contact-mail) !important;
}

#area a[href^="tel:"] svg,
#kontakt a[href^="tel:"] svg,
footer a[href^="tel:"] svg,
[data-ksx-mobile-actions] a[href^="tel:"] svg {
  color: var(--ksx-contact-phone) !important;
}

#area a[href*="wa.me"] svg,
#kontakt a[href*="wa.me"] svg,
[data-ksx-mobile-actions] a[href*="wa.me"] svg {
  color: var(--ksx-contact-whatsapp) !important;
}

#area a[href^="mailto:"] svg,
#kontakt a[href^="mailto:"] svg,
footer a[href^="mailto:"] svg {
  color: var(--ksx-contact-mail) !important;
}

#bewertungen [data-ksx-track="reviews"] {
  align-items: stretch;
}

#bewertungen [data-ksx-slide="reviews"] {
  min-height: 100%;
}

@media (min-width: 768px) {
  #bewertungen [data-ksx-slide="reviews"] {
    flex: 0 0 calc((100% - 3rem) / 3) !important;
    max-width: calc((100% - 3rem) / 3);
  }
}

@media (min-width: 640px) and (max-width: 767px) {
  #bewertungen [data-ksx-slide="reviews"] {
    flex: 0 0 calc((100% - 1.25rem) / 2) !important;
    max-width: calc((100% - 1.25rem) / 2);
  }
}

#area a[href^="tel:"]:hover,
#kontakt a[href^="tel:"]:hover,
footer a[href^="tel:"]:hover,
[data-ksx-mobile-actions] a[href^="tel:"]:hover {
  border-color: var(--ksx-contact-phone) !important;
  background: var(--ksx-contact-phone) !important;
  color: #fff !important;
}

#area a[href*="wa.me"]:hover,
#kontakt a[href*="wa.me"]:hover,
[data-ksx-mobile-actions] a[href*="wa.me"]:hover {
  border-color: var(--ksx-contact-whatsapp) !important;
  background: var(--ksx-contact-whatsapp) !important;
  color: #fff !important;
}

#area a[href^="mailto:"]:hover,
#kontakt a[href^="mailto:"]:hover,
footer a[href^="mailto:"]:hover {
  border-color: var(--ksx-contact-mail) !important;
  background: var(--ksx-contact-mail) !important;
  color: #fff !important;
}

#area a[href^="tel:"]:hover svg,
#kontakt a[href^="tel:"]:hover svg,
footer a[href^="tel:"]:hover svg,
[data-ksx-mobile-actions] a[href^="tel:"]:hover svg,
#area a[href*="wa.me"]:hover svg,
#kontakt a[href*="wa.me"]:hover svg,
[data-ksx-mobile-actions] a[href*="wa.me"]:hover svg,
#area a[href^="mailto:"]:hover svg,
#kontakt a[href^="mailto:"]:hover svg,
footer a[href^="mailto:"]:hover svg {
  color: #fff !important;
}

#ksx-cookie-banner {
  display: none;
  z-index: 1200;
  position: fixed;
  inset: 0;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(5, 20, 11, .68);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.ksx-cookie-card {
  width: min(100%, 680px);
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  border: 1px solid rgba(176, 123, 23, .25);
  border-radius: 26px;
  background: #fff;
  padding: 30px 36px 26px;
  color: #18251e;
  text-align: center;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .32);
}

.ksx-cookie-logo {
  display: block;
  width: auto;
  height: 108px;
  margin: -10px auto 8px;
  object-fit: contain;
}

.ksx-cookie-card h2 {
  margin: 0;
  color: #0c3516;
  font-size: clamp(24px, 3vw, 31px);
  line-height: 1.2;
  font-weight: 700;
}

.ksx-cookie-copy {
  max-width: 570px;
  margin: 14px auto 0;
  color: #667069;
  font-size: 15px;
  line-height: 1.65;
}

.ksx-cookie-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 24px;
}

.ksx-cookie-actions button,
.ksx-cookie-save {
  min-height: 52px;
  border: 2px solid #0c3516;
  border-radius: 12px;
  padding: 10px 16px;
  background: #fff;
  color: #0c3516;
  font-size: 14px;
  font-weight: 700;
  transition: .2s ease;
}

.ksx-cookie-actions button:first-child,
.ksx-cookie-save {
  background: #0c3516;
  color: #fff;
}

.ksx-cookie-actions button:last-child {
  border-color: #d8ddd9;
  color: #657069;
}

.ksx-cookie-actions button:hover,
.ksx-cookie-save:hover {
  border-color: #b07b17;
  background: #b07b17;
  color: #fff;
}

.ksx-cookie-settings {
  margin-top: 20px;
  border: 1px solid #e1e6e2;
  border-radius: 14px;
  background: #f7f9f7;
  text-align: left;
}

.ksx-cookie-settings label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
}

.ksx-cookie-settings label + label { border-top: 1px solid #e1e6e2; }
.ksx-cookie-settings strong,
.ksx-cookie-settings small { display: block; }
.ksx-cookie-settings small { margin-top: 3px; color: #738078; font-size: 12px; }
.ksx-cookie-settings input { width: 20px; height: 20px; accent-color: #0c3516; }

.ksx-cookie-save {
  width: 100%;
  margin-top: 12px;
}

.ksx-cookie-legal {
  display: flex;
  justify-content: center;
  gap: 9px;
  margin-top: 22px;
  color: #9aa29d;
  font-size: 12px;
}

.ksx-cookie-legal a { color: inherit; text-decoration: none; }
.ksx-cookie-legal a:hover { color: #0c3516; }

@media (max-width: 767px) {
  #top > div.relative {
    padding-top: 8rem;
  }

  [data-ksx-viewport="action"],
  [data-ksx-viewport="reviews"] {
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(176, 123, 23, .55) transparent;
    touch-action: pan-x;
  }

  [data-ksx-viewport="action"]::-webkit-scrollbar,
  [data-ksx-viewport="reviews"]::-webkit-scrollbar {
    height: 4px;
  }

  [data-ksx-viewport="action"]::-webkit-scrollbar-thumb,
  [data-ksx-viewport="reviews"]::-webkit-scrollbar-thumb {
    background: rgba(176, 123, 23, .55);
    border-radius: 999px;
  }

  [data-ksx-track="action"],
  [data-ksx-track="reviews"] {
    width: max-content;
    min-width: 100%;
    transform: none !important;
    transition: none;
    touch-action: pan-x;
  }

  [data-ksx-track="action"] > *,
  [data-ksx-track="reviews"] > * {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  [data-ksx-track="reviews"] > * {
    flex: 0 0 min(82vw, 340px) !important;
    width: min(82vw, 340px);
  }

  #ksx-cookie-banner {
    align-items: center;
    padding: 16px 14px calc(82px + env(safe-area-inset-bottom));
  }

  .ksx-cookie-card {
    max-height: calc(100dvh - 110px - env(safe-area-inset-bottom));
    padding: 22px 18px 20px;
    border-radius: 22px;
  }

  .ksx-cookie-logo { height: 82px; margin-top: -8px; }
  .ksx-cookie-copy { font-size: 14px; line-height: 1.55; }
  .ksx-cookie-actions { grid-template-columns: 1fr; gap: 9px; margin-top: 18px; }
  .ksx-cookie-actions button,
  .ksx-cookie-save { min-height: 48px; }
  .ksx-cookie-legal { flex-wrap: wrap; margin-top: 17px; }

  [data-ksx-mobile-actions] {
    z-index: 1100;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
}

@media (max-width: 782px) {
  body.admin-bar [data-ksx-header] { top: 46px; }
  body.admin-bar #ksx-mobile-menu { top: 142px; }
}

@media (max-width: 639px) {
  #ksx-mobile-menu { top: 96px; }
  body.admin-bar #ksx-mobile-menu { top: 142px; }
  h1 > span::before { content: " "; }
}

.ksx-error-page {
  min-height: calc(100vh - 120px);
  display: grid;
  place-items: center;
  padding: 9rem 1.5rem 5rem;
  background:
    radial-gradient(circle at 50% 0%, rgba(176, 123, 23, .14), transparent 34rem),
    linear-gradient(180deg, #f8f7f3 0%, #ffffff 62%, #f5f3ed 100%);
}

.ksx-error-card {
  width: min(100%, 760px);
  padding: clamp(2.25rem, 5vw, 4.5rem);
  border: 1px solid rgba(13, 49, 28, .12);
  border-radius: 34px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 28px 80px rgba(13, 49, 28, .12);
  text-align: center;
}

.ksx-error-kicker {
  margin: 0 0 .9rem;
  color: #b07b17;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.ksx-error-card h1 {
  margin: 0;
  color: #07120d;
  font-size: clamp(2.2rem, 5vw, 4.4rem);
  line-height: .98;
  letter-spacing: -.05em;
}

.ksx-error-card p:not(.ksx-error-kicker) {
  max-width: 560px;
  margin: 1.3rem auto 0;
  color: rgba(7, 18, 13, .66);
  font-size: clamp(1rem, 1.8vw, 1.18rem);
  line-height: 1.7;
}

.ksx-error-actions {
  display: flex;
  justify-content: center;
  gap: .85rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}

.ksx-error-actions a {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 1.35rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.ksx-error-primary {
  background: #0d311c;
  color: #fff;
  box-shadow: 0 16px 34px rgba(13, 49, 28, .22);
}

.ksx-error-secondary {
  border: 1px solid rgba(13, 49, 28, .16);
  background: #fff;
  color: #0d311c;
}

.ksx-error-actions a:hover {
  transform: translateY(-2px);
}

@media (max-width: 640px) {
  .ksx-error-page {
    min-height: calc(100dvh - 80px);
    padding: 7.5rem 1rem 4rem;
  }

  .ksx-error-card {
    border-radius: 26px;
  }

  .ksx-error-actions {
    flex-direction: column;
  }
}
