/* AutoKlar Berlin - Warm Friendly Style - Mobile-first, Flexbox-only */
/* -------------------------------------------------------------- */
/* 1) Reset & Base Normalize */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
ul, ol { padding-left: 1.25rem; }
:focus-visible { outline: 3px solid #F4A261; outline-offset: 2px; border-radius: 8px; }

/* 2) Brand Variables (with warm-friendly complements) */
:root {
  --clr-primary: #0B3C49; /* Petrol */
  --clr-secondary: #1F7A8C; /* Teal */
  --clr-accent: #F2F7F9; /* Light accent */
  --clr-warm-bg: #FFF7F0; /* Warm background */
  --clr-warm-surface: #FFF3EA; /* Warm surface */
  --clr-warm-accent: #FFE6D5; /* Subtle warm accent */
  --clr-text: #23343A; /* Dark readable */
  --clr-text-muted: #51656C; /* Muted */
  --clr-success: #2E7D32;
  --clr-danger: #C0392B;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shadow-sm: 0 2px 8px rgba(11,60,73,0.08);
  --shadow-md: 0 8px 24px rgba(11,60,73,0.12);
  --shadow-lg: 0 12px 32px rgba(11,60,73,0.18);
  --space-8: 8px; --space-12: 12px; --space-16: 16px; --space-20: 20px; --space-24: 24px; --space-30: 30px; --space-32: 32px; --space-40: 40px; --space-48: 48px; --space-60: 60px;
}

/* 3) Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@600;700;800&display=swap');
body {
  font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--clr-text);
  background: linear-gradient(0deg, var(--clr-warm-bg), #FFFFFF 35%);
  line-height: 1.6;
}

/* 4) Global Layout Helpers (Flexbox-only) */
.container {
  width: 100%;
  max-width: 1160px;
  padding: 0 20px;
  margin: 0 auto;
  display: flex;           /* Flex container by rule */
  flex-direction: column;  /* Column on mobile */
  gap: var(--space-24);
}
section, .section { /* Mandated spacing */
  margin-bottom: var(--space-60);
  padding: var(--space-40) 20px;
}
.content-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}
.card-container { display: flex; flex-wrap: wrap; gap: 24px; }
.card { margin-bottom: 20px; position: relative; display: flex; flex-direction: column; gap: 14px; }
.content-grid { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; }
.text-image-section { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.testimonial-card { display: flex; align-items: center; gap: 20px; padding: 20px; }
.feature-item { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }

/* 5) Typography Scale */
h1, h2, h3 { font-family: Montserrat, Inter, system-ui, sans-serif; color: var(--clr-primary); }
h1 { font-size: 34px; line-height: 1.2; letter-spacing: -0.02em; }
h2 { font-size: 28px; line-height: 1.25; margin-top: 4px; }
h3 { font-size: 20px; line-height: 1.3; }
p, li, dd { font-size: 16px; color: var(--clr-text); }
.subheadline, .subtitle { color: var(--clr-text-muted); font-size: 18px; }
.tagline { font-weight: 600; color: var(--clr-secondary); }
strong { font-weight: 700; }
small { font-size: 14px; color: var(--clr-text-muted); }

/* 6) Header & Navigation */
header {
  background: #FFFFFF;
  box-shadow: var(--shadow-sm);
  position: sticky; top: 0; z-index: 50;
}
header .container { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-16); }
.logo-link img { height: 40px; }
.main-nav { display: none; align-items: center; gap: 16px; }
.main-nav a {
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  color: var(--clr-primary);
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.main-nav a:hover { background: var(--clr-warm-accent); color: var(--clr-primary); transform: translateY(-1px); }

/* CTA bar (header & sections) */
.cta-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* 7) Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 18px; border-radius: 999px; /* friendly pill */
  border: 2px solid transparent; cursor: pointer; font-weight: 600;
  color: #fff; background: var(--clr-secondary);
  box-shadow: var(--shadow-sm);
  transition: transform .15s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--clr-primary); }
.btn-primary:hover { background: #09424f; }
.btn-secondary { background: #E98C5D; border-color: #E98C5D; }
.btn-secondary:hover { background: #DF7E4B; border-color: #DF7E4B; }
.btn.outline { background: transparent; color: var(--clr-primary); border-color: var(--clr-primary); }
.btn.outline:hover { background: var(--clr-warm-accent); }

/* 8) Chips / Inline Value Props */
.value-props-inline { display: flex; flex-wrap: wrap; gap: 10px; }
.value-props-inline span {
  background: #FFFFFF; border: 1px solid #FFE2CE; color: var(--clr-text);
  padding: 8px 12px; border-radius: 999px; box-shadow: var(--shadow-sm);
}

/* 9) Helpful Snippets */
.phone-snippet, .trust-badges, .above-the-fold-note, .spesen-hinweis, .compliance-note, .data-privacy-hint, .arrival-pt-hint, .expected-response-time, .reference-number, .rating-summary-badge, .lead-magnet-box {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.phone-snippet a { color: var(--clr-secondary); font-weight: 700; }
.trust-badges, .above-the-fold-note, .spesen-hinweis, .compliance-note, .data-privacy-hint, .arrival-pt-hint, .expected-response-time {
  background: var(--clr-warm-surface); border: 1px solid #FFD6BD; color: var(--clr-text);
  padding: 12px 14px; border-radius: var(--radius-md);
}
.rating-summary-badge { background: #fff; border: 1px solid #E8EEF0; padding: 10px 14px; border-radius: 999px; box-shadow: var(--shadow-sm); color: var(--clr-primary); font-weight: 700; }
.success-icon-text { background: #ECFDF3; border: 1px solid #C6F6D5; color: var(--clr-success); padding: 12px 14px; border-radius: var(--radius-md); font-weight: 600; }
.reference-number { color: var(--clr-secondary); font-weight: 700; }
.lead-magnet-box { background: #FFF0E5; border: 1px dashed #EFB089; padding: 16px; border-radius: var(--radius-md); font-weight: 600; color: #9A481E; }
.map-embed-placeholder { background: var(--clr-accent); border: 1px solid #DCE7EB; padding: 18px; border-radius: var(--radius-md); color: var(--clr-text-muted); }

/* 10) Feature / Service / Topic / Article / Pricing flex lists */
.feature-grid, .service-cards-list, .testimonial-list, .pricing-table-overview, .pricing-table, .topic-cards, .article-list-cards {
  display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between;
}
.feature-grid > div, .service-cards-list > div, .pricing-table-overview > div, .pricing-table > div, .topic-cards > div, .article-list-cards > div {
  flex: 1 1 280px; min-width: 260px; max-width: 100%;
  background: #FFFFFF; border: 1px solid #F3E2D6;
  border-radius: var(--radius-lg); padding: 18px; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: 10px;
  transition: transform .2s ease, box-shadow .3s ease, border-color .2s ease;
}
.feature-grid > div:hover, .service-cards-list > div:hover, .pricing-table-overview > div:hover, .pricing-table > div:hover, .topic-cards > div:hover, .article-list-cards > div:hover {
  transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: #FFD6BD;
}
.feature-grid img { width: 44px; height: 44px; }
.pricing-table > div h3 small, .pricing-table-overview > div ul li:last-child { color: var(--clr-secondary); font-weight: 700; }

/* Testimonials - readability on light bg */
.testimonial-list { align-items: stretch; }
.testimonial-card {
  flex: 1 1 300px; min-width: 260px; background: #FFFFFF; border: 1px solid #EDE3DB;
  border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
}
.testimonial-card p { color: var(--clr-text); }
.testimonial-card span { color: #C27A2C; font-weight: 700; }

/* 11) Timelines */
.steps-timeline, .steps-timeline-detailed { display: flex; flex-direction: column; gap: 12px; border-left: 3px solid #FFD6BD; padding-left: 14px; }
.steps-timeline li, .steps-timeline-detailed li { position: relative; list-style: none; padding-left: 2px; }
.steps-timeline li::before, .steps-timeline-detailed li::before {
  content: ""; position: absolute; left: -21px; top: 8px; width: 10px; height: 10px; border-radius: 50%;
  background: #FFA773; box-shadow: 0 0 0 3px #FFE6D5; /* decorative only */
}

/* 12) FAQ Accordion (static open styling) */
.faq-accordion { display: flex; flex-direction: column; gap: 10px; }
.faq-accordion dt {
  background: #FFFFFF; border: 1px solid #FFE2CE; color: var(--clr-primary);
  padding: 12px 14px; border-radius: var(--radius-md); font-weight: 700;
  display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.faq-accordion dt::after { content: "▾"; color: #E98C5D; font-weight: 800; }
.faq-accordion dd { background: var(--clr-warm-surface); border: 1px solid #FFE2CE; border-radius: var(--radius-md); padding: 12px 14px; margin-left: 0; }

/* 13) Forms */
form { display: flex; flex-wrap: wrap; gap: 10px; }
input[type="email"], input[type="search"], input[type="text"], textarea {
  padding: 12px 14px; border-radius: 12px; border: 1.5px solid #D8E5EA; background: #FFFFFF; min-width: 240px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
input:focus, textarea:focus { border-color: #E98C5D; box-shadow: 0 0 0 4px #FFE6D5; }
button[type="submit"] { background: var(--clr-secondary); color: #fff; border: 0; padding: 12px 16px; border-radius: 999px; box-shadow: var(--shadow-sm); }
button[type="submit"]:hover { box-shadow: var(--shadow-md); }

/* 14) Footer */
footer { background: #FFFFFF; border-top: 1px solid #F0E6DE; padding: 26px 0; }
footer .container { gap: var(--space-20); }
.footer-nav { display: flex; flex-direction: column; gap: 12px; }
.footer-main-nav, .footer-legal-nav { display: flex; flex-wrap: wrap; gap: 12px; }
.footer-main-nav a, .footer-legal-nav a {
  color: var(--clr-text-muted); padding: 8px 10px; border-radius: 8px; transition: background-color .2s ease, color .2s ease;
}
.footer-main-nav a:hover, .footer-legal-nav a:hover { background: var(--clr-warm-accent); color: var(--clr-primary); }
.footer-contact-info { display: flex; flex-wrap: wrap; gap: 8px; color: var(--clr-text-muted); }
.footer-social { display: flex; gap: 10px; }
.footer-newsletter form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.imprint-snippet { color: var(--clr-text-muted); font-size: 14px; }

/* 15) Header - Mobile Menu */
.mobile-menu-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 12px; border: 1px solid #FFE2CE;
  background: #FFF7F0; color: #C86433; cursor: pointer; box-shadow: var(--shadow-sm);
  transition: transform .15s ease, box-shadow .25s ease, background-color .2s ease;
}
.mobile-menu-toggle:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); background: #FFEBDD; }

.mobile-menu {
  position: fixed; inset: 0 0 0 auto; right: 0; width: 88%; max-width: 420px; height: 100vh;
  background: #FFFFFF; box-shadow: -10px 0 30px rgba(11,60,73,0.22);
  display: flex; flex-direction: column; padding: 16px; gap: 16px;
  transform: translateX(100%);
  transition: transform .35s ease;
  z-index: 999;
}
.mobile-menu.active { transform: translateX(0); }
.mobile-menu-close {
  align-self: flex-end; width: 40px; height: 40px; border-radius: 10px; border: 1px solid #FFE2CE;
  background: #FFF3EA; color: #C86433; cursor: pointer; box-shadow: var(--shadow-sm);
}
.mobile-nav { display: flex; flex-direction: column; gap: 6px; }
.mobile-nav a { padding: 12px 10px; border-radius: 10px; color: var(--clr-primary); }
.mobile-nav a:hover { background: var(--clr-warm-accent); }

/* Optional dimmed page overlay when menu is open (class applied to body) */
body.menu-open::before {
  content: ""; position: fixed; inset: 0; background: rgba(0,0,0,0.35); z-index: 998;
}

/* 16) Cookie Consent Banner & Modal */
.cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0;
  background: #FFFFFF; border-top: 2px solid #FFE2CE; box-shadow: 0 -8px 24px rgba(11,60,73,0.12);
  display: flex; flex-direction: column; gap: 14px; padding: 14px 16px; z-index: 1000;
  transform: translateY(110%); transition: transform .35s ease; /* hidden by default */
}
.cookie-banner.show { transform: translateY(0); }
.cookie-banner .content { display: flex; flex-direction: column; gap: 10px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cookie-actions .accept { background: var(--clr-primary); color: #fff; }
.cookie-actions .reject { background: #FFF0E5; color: #9A481E; border: 2px solid #FFD6BD; }
.cookie-actions .settings { background: transparent; color: var(--clr-primary); border: 2px solid var(--clr-primary); }
.cookie-actions .btn { padding: 10px 14px; border-radius: 999px; }

.cookie-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.35); display: none; z-index: 1001;
}
.cookie-modal-overlay.show { display: flex; align-items: center; justify-content: center; }
.cookie-modal {
  background: #FFFFFF; border: 1px solid #FFE2CE; border-radius: 18px; width: min(92%, 780px);
  display: flex; flex-direction: column; gap: 16px; padding: 16px; box-shadow: var(--shadow-lg);
}
.cookie-modal .modal-header { display: flex; align-items: center; justify-content: space-between; }
.cookie-modal .modal-content { display: flex; flex-direction: column; gap: 10px; }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border-radius: 12px; background: var(--clr-accent); }
.cookie-toggle { appearance: none; width: 44px; height: 26px; border-radius: 999px; background: #C9D6DB; position: relative; cursor: pointer; transition: background .2s ease; }
.cookie-toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; border-radius: 50%; box-shadow: var(--shadow-sm); transition: transform .2s ease; }
.cookie-toggle:checked { background: #E98C5D; }
.cookie-toggle:checked::after { transform: translateX(18px); }
.cookie-modal .modal-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }

/* 17) Lists & Links */
li { margin: 6px 0; }
nav a { text-underline-offset: 2px; }
a:hover { color: var(--clr-secondary); }

/* 18) Utilities */
.muted { color: var(--clr-text-muted); }
.center { text-align: center; }
.badge { background: var(--clr-warm-accent); color: var(--clr-primary); border-radius: 999px; padding: 4px 10px; font-weight: 700; }

/* 19) Page-specific niceties */
/* Guide page filters */
.category-filter { display: flex; gap: 10px; flex-wrap: wrap; color: var(--clr-text-muted); }
.category-filter a { color: var(--clr-secondary); padding: 6px 10px; border-radius: 999px; background: #EAF5F8; }
.category-filter a:hover { background: #D7EDF3; }
.tag-cloud { display: flex; gap: 8px; flex-wrap: wrap; }
.tag-cloud span { background: #FFF0E5; border: 1px solid #FFD6BD; color: #9A481E; padding: 6px 10px; border-radius: 999px; font-weight: 600; }
.pagination-controls { display: flex; gap: 10px; color: var(--clr-text-muted); }

/* About & Contact address lists */
.content-wrapper ul { display: flex; flex-direction: column; gap: 6px; }
.content-wrapper ul li { list-style: none; display: flex; align-items: center; gap: 10px; }
.content-wrapper ul li img { width: 20px; height: 20px; }

/* Newsletter input tight layout */
.footer-newsletter input[type="email"] { flex: 1 1 220px; }

/* 20) Generic card appearance for any .card or container children if needed */
.card, .content-wrapper > .cardlike, .article-list-cards > div, .topic-cards > div {
  background: #FFFFFF;
  border: 1px solid #F3E2D6;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

/* 21) Tables (if any) */
table { width: 100%; border-collapse: collapse; border-radius: 12px; overflow: hidden; border: 1px solid #EDE3DB; }
th, td { text-align: left; padding: 12px; border-bottom: 1px solid #F2EAE3; }
th { background: #FFF3EA; color: var(--clr-primary); }

/* 22) Responsive - Tablet & Desktop */
@media (min-width: 768px) {
  h1 { font-size: 42px; }
  h2 { font-size: 32px; }
  h3 { font-size: 22px; }
  .text-image-section { flex-direction: row; }
  .main-nav { display: flex; }
  .mobile-menu-toggle { display: none; }
  header .container { gap: var(--space-24); }
  .container { gap: var(--space-32); }
}

@media (min-width: 1024px) {
  h1 { font-size: 48px; }
  .feature-grid > div, .service-cards-list > div, .pricing-table-overview > div, .pricing-table > div { flex: 1 1 calc(33% - 20px); }
}

/* 23) Accessibility & Contrast adjustments in testimonials/reviews */
/* Ensuring dark text on light backgrounds */
.testimonial-card, .testimonial-list > div { background: #FFFFFF; color: #1F2A2E; }
.testimonial-card p, .testimonial-card strong, .testimonial-card span { color: #1F2A2E; }

/* 24) Prevent overlap & spacing guarantees */
section > .container > .content-wrapper > * { margin-bottom: 0; }
section .container { gap: var(--space-24); }
.feature-grid > div, .service-cards-list > div, .pricing-table-overview > div, .topic-cards > div, .article-list-cards > div, .pricing-table > div, .testimonial-card { margin-bottom: 20px; }

/* 25) Header CTA visibility tweaks */
header .cta-bar .btn { padding: 10px 14px; }
@media (max-width: 767px) {
  header .cta-bar { display: none; }
}

/* 26) Hero spacing polish */
section:first-of-type { padding-top: 28px; }

/* 27) Decorative separators (optional) */
hr { border: none; height: 1px; background: #F0E6DE; margin: 20px 0; }

/* 28) Link styles */
a { color: var(--clr-secondary); }
a:hover { color: #176577; }

/* 29) Price highlight badges */
.pricing-table h3 small { display: inline-block; margin-top: 6px; background: #EAF5F8; color: #176577; padding: 4px 10px; border-radius: 999px; }

/* 30) Misc page bits */
.subtitle { background: #EAF5F8; color: #176577; padding: 10px 12px; border-radius: 10px; display: inline-flex; }
.service-promise-list { display: flex; flex-direction: column; gap: 6px; }
.callback-teaser a { color: var(--clr-secondary); text-decoration: underline; }

/* 31) Ensure all flex containers align nicely */
.align-center { align-items: center; }
.justify-between { justify-content: space-between; }

/* 32) No absolute for content cards except small decorative pseudo used above */
/* Compliance already ensured */

/* End of stylesheet */
