/* Template CSS is loaded via <link> tags in Layout.astro from /public/css/ */

/* Accessibility: Skip to content link */
.skip-link {
  position: absolute ;
  top: -100px ;
  left: 16px ;
  z-index: 999999 ;
  padding: 12px 24px ;
  background: #F07D00 ;
  color: #fff ;
  font-size: 14px ;
  font-weight: 600 ;
  border-radius: 0 0 8px 8px ;
  text-decoration: none ;
  transition: top 0.2s ease ;
}
.skip-link:focus {
  top: 0 ;
}

/* Accessibility: Focus visible styles */
*:focus-visible {
  outline: 2px solid #F07D00 ;
  outline-offset: 2px ;
}
button:focus-visible,
a:focus-visible {
  outline: 2px solid #F07D00 ;
  outline-offset: 2px ;
}

/* Accessibility: Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important ;
    animation-iteration-count: 1 !important ;
    transition-duration: 0.01ms !important ;
    scroll-behavior: auto !important ;
  }
  .tp_fade_anim,
  .tp_text_anim,
  .tp_img_reveal {
    opacity: 1 !important ;
    transform: none !important ;
  }
  [data-speed] {
    transform: none !important ;
  }
}

/* crosslabs color overrides */
:root {
  --tp-common-blue: #F07D00 ;
  --tp-common-red-3: #F07D00 ;
}

/* Contact form inputs: better contrast */
.tp-contact-form-wrap .tp-contact-form-input input[type="text"],
.tp-contact-form-wrap .tp-contact-form-input input[type="email"],
.tp-contact-form-wrap .tp-contact-form-input input[type="tel"],
.tp-contact-form-wrap .tp-contact-form-input textarea {
  background-color: #ede8e4;
  border-color: #ede8e4;
}

.tp-contact-form-wrap .tp-contact-form-input input[type="text"]:focus,
.tp-contact-form-wrap .tp-contact-form-input input[type="email"]:focus,
.tp-contact-form-wrap .tp-contact-form-input input[type="tel"]:focus,
.tp-contact-form-wrap .tp-contact-form-input textarea:focus {
  background-color: #fff;
  border-color: #F07D00;
}

.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="text"],
.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="email"],
.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="tel"],
.crp-dark .tp-contact-form-wrap .tp-contact-form-input textarea {
  background-color: #2a2b2e;
  border-color: #2a2b2e;
  color: #fff;
}

.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="text"]:focus,
.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="email"]:focus,
.crp-dark .tp-contact-form-wrap .tp-contact-form-input input[type="tel"]:focus,
.crp-dark .tp-contact-form-wrap .tp-contact-form-input textarea:focus {
  background-color: transparent;
  border-color: #F07D00;
}

/* Comparison USPs: keep text on single lines */
.it-comparison-content span {
  white-space: nowrap;
}

/* Project slider: consistent image aspect ratio */
.it-project-thumb img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  height: auto ;
}

/* Industry brand carousel */
.industry-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.industry-item svg {
  stroke: #fff;
  opacity: 0.7;
  transition: opacity 0.3s;
}

.industry-item:hover svg {
  opacity: 1;
}

.industry-label {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: #fff;
}

.it-project-arrow button:hover,
.it-testimonial-arrow button:hover {
  background-color: #F07D00 ;
}

.it-project-dots .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: #F07D00 ;
}

/* Dark mode preloader */
.crp-dark #preloader {
  background-color: #0E0F11 ;
}

/* Dark mode body */
.crp-dark body {
  background-color: #0E0F11;
}

/* Dark mode offcanvas */
.crp-dark .tp-offcanvas-wrapper {
  background-color: #1A1B1E ;
}

.crp-dark .tp-offcanvas-title {
  color: #fff;
}

.crp-dark .tp-offcanvas-content p,
.crp-dark .tp-offcanvas-contact ul li a {
  color: rgba(255, 255, 255, 0.7);
}

/* Dark mode header */
.crp-dark .tp-header-10-wrapper {
  background: #1A1B1E ;
  border-color: rgba(255, 255, 255, 0.1) ;
}

.crp-dark .tp-header-10-menu nav ul li a {
  color: #fff ;
}

.crp-dark .tp-header-11-search svg path {
  fill: #fff;
}

.crp-dark .tp-header-bar button i {
  background: #fff ;
}

/* Logo text color */
.crosslabs-logo-text {
  color: #21212D;
}

/* Dark mode offcanvas/header logo text color */
.crp-dark .crosslabs-logo-text {
  color: #fff;
}

/* Dark mode mobile menu links */
.crp-dark .tp-offcanvas-menu nav ul li a {
  color: #fff ;
}

/* Dark mode offcanvas submenu toggle icon */
.crp-dark .tp-offcanvas-menu .tp-menu-close i {
  color: #fff;
}

/* Dark mode offcanvas active menu item (expanded) */
.crp-dark .tp-offcanvas-menu ul li.active > a {
  color: #F07D00;
}

/* Dark mode offcanvas close button */
.crp-dark .tp-offcanvas-close-btn svg path {
  stroke: #fff;
}


/* Dark mode offcanvas social links */
.crp-dark .tp-offcanvas-social ul li a {
  color: rgba(255, 255, 255, 0.7);
  border-color: rgba(255, 255, 255, 0.2);
}

.crp-dark .tp-offcanvas-social ul li a:hover {
  color: #fff;
  border-color: #F07D00;
  background-color: #F07D00;
}

/* Dark mode header (non-sticky + sticky) */
.crp-dark .tp-header-10-menu > nav > ul > li > a {
  color: var(--tp-common-white);
}
.crp-dark .tp-header-dropdown nav ul li.has-dropdown::after {
  color: var(--tp-common-white);
}
.crp-dark .tp-header-10-offcanvas .tp-header-bar button i {
  background-color: var(--tp-common-white);
}
.crp-dark .tp-header-11-search svg path {
  fill: var(--tp-common-white);
}
.crp-dark .tp-header-10-wrapper {
  background: rgba(26, 27, 30, 0.9);
  border-color: rgba(255, 255, 255, 0.1);
}
.crp-dark .header-sticky.sticky-white-bg {
  background: rgba(14, 15, 17, 0.9);
}
.crp-dark .header-sticky.sticky-white-bg .tp-header-menu > nav > ul > li > a {
  color: var(--tp-common-white);
}
.crp-dark .header-sticky.sticky-white-bg .tp-header-dropdown nav ul li.has-dropdown::after {
  color: var(--tp-common-white);
}
.crp-dark .header-sticky.sticky-white-bg .tp-header-bar button i {
  background-color: var(--tp-common-white);
}

/* Dark mode dropdown submenu */
.crp-dark .dropdown-white-bg nav ul li .tp-submenu {
  background: rgba(26, 27, 30, 0.95);
}
.crp-dark .dropdown-white-bg nav ul li .tp-submenu li a {
  color: rgba(255, 255, 255, 0.7);
}
.crp-dark .dropdown-white-bg nav ul li .tp-submenu li:hover > a {
  background-color: #2c2b2e;
  color: var(--tp-common-white);
}

/* Service cards: equal title height so icons align */
.it-feature-item > .it-feature-title {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Service detail pages: rounded image corners */
.tp-service-4-process-thumb img {
  border-radius: 14px;
}

/* Service detail pages: white background in light mode */
.service-detail-page {
  background-color: #fff !important;
}
.service-detail-page #smooth-wrapper {
  background-color: #fff !important;
}
.crp-dark .service-detail-page,
.crp-dark .service-detail-page #smooth-wrapper {
  background-color: #0E0F11 !important;
}

/* Expandable service feature list — matches offcanvas menu style */
.tp-service-5-expandable .tp-service-5-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.tp-service-5-expandable .tp-service-5-list ul li {
  width: 100%;
  float: none;
  position: relative;
  border-bottom: 1px solid rgba(17, 16, 19, 0.1);
  margin-bottom: 0;
}
.tp-service-5-expandable .tp-service-5-list details {
  cursor: pointer;
}
.tp-service-5-expandable .tp-service-5-list summary {
  list-style: none;
  display: block;
  font-size: 20px;
  font-weight: 500;
  color: #111013;
  padding: 12px 40px 12px 0;
  user-select: none;
  position: relative;
}
.tp-service-5-expandable .tp-service-5-list summary::-webkit-details-marker {
  display: none;
}
.tp-service-5-expandable .tp-service-5-list summary::after {
  content: "\2b";
  font-family: var(--tp-ff-fontawesome);
  font-weight: 400;
  font-size: 18px;
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
.tp-service-5-expandable .tp-service-5-list details[open] > summary::after {
  transform: translateY(-50%) rotate(135deg);
}
.tp-service-5-expandable .tp-service-5-list details[open] > summary {
  color: var(--tp-common-red-3);
}
.tp-service-5-expandable .tp-service-5-list details p {
  padding: 0 20px 14px;
  font-size: 17px;
  font-weight: 400;
  color: #636368;
  margin: 0;
  line-height: 1.6;
}
/* Override body text color in dark mode globally */
.crp-dark {
  --tp-text-body: rgba(255, 255, 255, 0.7);
}
.crp-dark .tp-service-5-expandable .tp-service-5-list ul li {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}
.crp-dark .tp-service-5-expandable .tp-service-5-list summary {
  color: var(--tp-common-white);
}
.crp-dark .tp-service-5-expandable .tp-service-5-list details[open] > summary {
  color: var(--tp-common-red-3);
}
.crp-dark .tp-service-5-expandable .tp-service-5-list details p {
  color: rgba(255, 255, 255, 0.5);
}

/* LinkedIn pill button */
.crp-footer-social a.linkedin-pill,
.linkedin-pill {
  width: auto;
  height: auto;
  line-height: normal;
  border-radius: 30px;
  background-color: transparent;
}

.it-footer-style .crp-footer-social a.linkedin-pill:hover,
.linkedin-pill:hover {
  border-color: #F07D00;
  color: #fff;
  background-color: #F07D00;
}

/* Offcanvas LinkedIn button colors */
.tp-offcanvas-contact .linkedin-pill {
  color: #21212D ;
  border: 1px solid rgba(0,0,0,0.15) ;
}

.crp-dark .tp-offcanvas-contact .linkedin-pill {
  color: rgba(255,255,255,0.7) ;
  border: 1px solid rgba(255,255,255,0.2) ;
}

/* Dark mode stat badges in steps section */
.crp-dark .it-step-thumb-shape-1,
.crp-dark .it-step-thumb-shape-2 {
  background: #1A1B1E ;
}

.crp-dark .it-step-thumb-shape-1 span[style*="color:#21212D"],
.crp-dark .it-step-thumb-shape-2 div[style*="color:#0C5752"] {
  color: #fff ;
}

/* Inline content links (About, Benefits etc.) */
.tp-benefits-heading a,
.tp-about-text a {
  color: #F07D00 ;
  text-decoration: underline ;
}
.tp-benefits-heading a:hover,
.tp-about-text a:hover {
  color: #d06a00 ;
}
.crp-dark .tp-benefits-heading a,
.crp-dark .tp-about-text a {
  color: #F07D00 ;
}

/* Legal text pages (Impressum, Datenschutz, AGB) */
.legal-text h2 {
  font-size: 22px ;
  font-weight: 600 ;
  margin-top: 40px ;
  margin-bottom: 15px ;
  color: var(--tp-common-black) ;
}
.legal-text h3 {
  font-size: 18px ;
  font-weight: 600 ;
  margin-top: 25px ;
  margin-bottom: 10px ;
  color: var(--tp-common-black) ;
}
.legal-text p {
  margin-bottom: 12px ;
  line-height: 1.8 ;
}
.legal-text ul {
  margin-bottom: 15px ;
  padding-left: 25px ;
  list-style: disc ;
}
.legal-text ul li {
  margin-bottom: 6px ;
  line-height: 1.7 ;
}
.legal-text a {
  color: #F07D00 ;
  text-decoration: underline ;
}
.legal-text a:hover {
  color: #d06a00 ;
}
.crp-dark .legal-text h2,
.crp-dark .legal-text h3 {
  color: #fff ;
}
.crp-dark .legal-text a {
  color: #F07D00 ;
}

/* Cookie Consent Banner */
.cookie-banner {
  position: fixed ;
  bottom: 0 ;
  left: 0 ;
  right: 0 ;
  z-index: 99999 ;
  display: flex ;
  justify-content: center ;
  padding: 0 20px ;
  pointer-events: none ;
}
.cookie-banner-inner {
  display: flex ;
  align-items: center ;
  justify-content: space-between ;
  gap: 20px ;
  max-width: 1230px ;
  width: 100% ;
  padding: 18px 28px ;
  margin-bottom: 20px ;
  background: #1a1a1f ;
  border: 1px solid rgba(255,255,255,0.1) ;
  border-radius: 16px ;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3) ;
  pointer-events: all ;
}
.cookie-banner-text {
  font-size: 14px ;
  line-height: 1.5 ;
  color: rgba(255,255,255,0.8) ;
  margin: 0 ;
}
.cookie-banner-text a {
  color: #F07D00 ;
  text-decoration: underline ;
}
.cookie-banner-actions {
  display: flex ;
  gap: 10px ;
  flex-shrink: 0 ;
}
.cookie-btn {
  padding: 10px 22px ;
  border-radius: 50px ;
  font-size: 14px ;
  font-weight: 600 ;
  cursor: pointer ;
  border: none ;
  transition: all 0.3s ease ;
  white-space: nowrap ;
}
.cookie-btn-accept {
  background: #F07D00 ;
  color: #fff ;
}
.cookie-btn-accept:hover {
  background: #d06a00 ;
}
.cookie-btn-decline {
  background: transparent ;
  color: rgba(255,255,255,0.7) ;
  border: 1px solid rgba(255,255,255,0.2) ;
}
.cookie-btn-decline:hover {
  border-color: rgba(255,255,255,0.5) ;
  color: #fff ;
}
@media (max-width: 767px) {
  .cookie-banner-inner {
    flex-direction: column ;
    text-align: center ;
    padding: 16px 20px ;
  }
  .cookie-banner-actions {
    width: 100% ;
  }
  .cookie-btn {
    flex: 1 ;
  }
}

/* Testimonial images: maintain aspect ratio, prevent distortion */
.it-testimonial-thumb img {
  width: 100% ;
  height: auto ;
  aspect-ratio: 1 / 1 ;
  object-fit: cover ;
}

/* Footer link contrast fix (WCAG 2.1 AA: 4.5:1 on #0C5752 background) */
.it-footer-style .tp-line-white.cream-2 {
  color: #E8DEB5 ;
}
.it-footer-style .tp-line-white.cream-2::before {
  background-color: #E8DEB5 ;
}

/* Theme + Language button hover */
[data-theme-btn]:hover,
[data-lang-btn]:hover {
  border-color: #F07D00 ;
  color: #fff ;
  background-color: #F07D00 ;
}

