/*
Theme Name: Astra Child - Jetzt Fahren
Theme URI: https://jetztgefahren.com/
Description: Custom White Theme Astra Child Theme with Tailwind CSS, Montserrat/Inter Typography, and full KBA Driving License Landing Page & templates.
Author: Jetzt Fahren Team
Author URI: https://jetztgefahren.com/
Template: astra
Version: 1.0.2
Text Domain: astra-child
*/

/* Custom Glassmorphism & UI Accents */
.glass-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 30px rgba(26, 43, 75, 0.1);
}

.step-number {
  font-size: 120px;
  color: rgba(26, 43, 75, 0.03);
  position: absolute;
  top: -20px;
  right: 10px;
  line-height: 1;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  z-index: 0;
  user-select: none;
  pointer-events: none;
}

/* ==========================================================================
   TYPOGRAPHY FALLBACK & TOKEN SYSTEM (Fix for Font Size & Color Issues)
   ========================================================================== */

/* Display Large (Hero Headings) */
.text-display-lg,
.font-display-lg {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 3.5rem !important; /* 56px */
  line-height: 1.15 !important;
  font-weight: 700 !important;
}

/* Display Large Mobile (Responsive Hero Heading) */
.text-display-lg-mobile,
.font-display-lg-mobile {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 2.5rem !important; /* 40px */
  line-height: 1.2 !important;
  font-weight: 700 !important;
}

@media (min-width: 768px) {
  .md\:text-display-lg {
    font-size: 3.5rem !important; /* 56px */
    line-height: 1.15 !important;
  }
}

/* Headline Large (Section Headings: H2) */
.text-headline-lg,
.font-headline-lg {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 2.25rem !important; /* 36px */
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

/* Headline Medium (Card Titles, FAQ Questions, Step Titles: H3) */
.text-headline-md,
.font-headline-md {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 1.5rem !important; /* 24px */
  line-height: 1.35 !important;
  font-weight: 700 !important;
}

/* Body Large (Subtitles & Lead Paragraphs) */
.text-body-lg,
.font-body-lg {
  font-family: 'Inter', sans-serif !important;
  font-size: 1.125rem !important; /* 18px */
  line-height: 1.6 !important;
  font-weight: 400;
}

/* Body Medium (Regular Text) */
.text-body-md,
.font-body-md {
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem !important; /* 16px */
  line-height: 1.5 !important;
  font-weight: 400;
}

/* Label Large (Buttons, Navigation Links) */
.text-label-lg,
.font-label-lg {
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem !important; /* 16px */
  line-height: 1.4 !important;
  font-weight: 600 !important;
}

/* Label Medium (Badges, Form Labels) */
.text-label-md,
.font-label-md {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.875rem !important; /* 14px */
  line-height: 1.4 !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   COLOR OVERRIDES: Prevent Astra/WP from turning white headings dark!
   ========================================================================== */

/* Pure White Headings on Dark Sections (#ffffff) */
.bg-deep-navy h1,
.bg-deep-navy h2,
.bg-deep-navy h3,
.bg-deep-navy h4,
.bg-deep-navy h5,
.bg-deep-navy h6,
.bg-primary h1,
.bg-primary h2,
.bg-primary h3,
.bg-primary h4,
.bg-trust-blue h1,
.bg-trust-blue h2,
.bg-trust-blue h3,
.bg-trust-blue h4,
footer h1,
footer h2,
footer h3,
footer h4,
.text-white h1,
.text-white h2,
.text-white h3,
.text-white h4,
h1.text-white,
h2.text-white,
h3.text-white,
h4.text-white {
  color: #ffffff !important;
}

/* Safety Yellow Text for Steps & Highlights (#f9c80e) */
.bg-deep-navy .text-safety-yellow,
.bg-primary .text-safety-yellow,
h3.text-safety-yellow,
.text-safety-yellow {
  color: #f9c80e !important;
}

/* Trust Blue & Deep Navy on White Sections */
.text-primary,
h1.text-primary,
h2.text-primary,
h3.text-primary {
  color: #031635 !important;
}

.text-trust-blue,
h1 .text-trust-blue {
  color: #0045a1 !important;
}

/* Ensure readable light slate/white text on dark backgrounds */
.bg-deep-navy .text-on-primary-container,
.bg-primary .text-on-primary-container,
.bg-deep-navy p,
.bg-primary p,
footer .text-on-primary-container,
footer p {
  color: #b6c6ef !important;
}

/* ==========================================================================
   FAQ ACCORDION CARDS FIX (Remove any red/pink border overrides)
   ========================================================================== */
.faq-item {
  border: 1px solid #dfe2ee !important;
  background-color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(26, 43, 75, 0.04) !important;
  margin-bottom: 1rem !important;
  border-radius: 0.75rem !important;
  overflow: hidden !important;
  transition: all 0.2s ease-in-out !important;
}

.faq-item:hover {
  border-color: #0045a1 !important;
  box-shadow: 0 4px 16px rgba(26, 43, 75, 0.08) !important;
}

.faq-item.active {
  border-color: #0045a1 !important;
  background-color: #ffffff !important;
}

.faq-item button {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  width: 100% !important;
  text-align: left !important;
  color: #031635 !important;
  padding: 1.5rem !important;
  cursor: pointer !important;
}

.faq-item button:focus,
.faq-item button:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease, opacity 0.3s ease;
  opacity: 0;
  display: block !important;
}
.faq-item.active .faq-content {
  max-height: 1500px !important;
  padding-top: 8px !important;
  padding-bottom: 24px !important;
  opacity: 1 !important;
  display: block !important;
}
.faq-item.active .faq-icon {
  transform: rotate(180deg);
}
.faq-icon {
  transition: transform 0.3s ease;
}

/* Home Page FAQ Accordion */
.faq-answer-box {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, margin-top 0.35s ease, opacity 0.3s ease;
  opacity: 0;
}
.faq-card.open .faq-answer-box {
  max-height: 500px !important;
  margin-top: 0.5rem !important;
  opacity: 1 !important;
}
.faq-card.open .faq-chevron {
  transform: rotate(180deg);
}
