/*
  Autoankauf DE – B12 Layout (Hero + Intro + Services + Steps + Contact)
  FINAL: header/adminbar/window-effect/footer/menu + robust mobile drawer
  FIX: Footer 4 columns (Desktop) + Footer Brand (Logo + Trustpilot)
  FIX: Minimum font sizes (Desktop 16px, Mobile 18px) incl. WPForms/labels
  FIX: Single-Post-Layout breiter + FAQ/Inhalte werden nicht links abgeschnitten
*/

/* =========================================================
   VARIABLES
   ========================================================= */

:root{
  --bg:#f6f7f8;
  --surface:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --line:rgba(17,24,39,.10);

  --primary:#0f7a3a;
  --primary-600:#0c6731;
  --primary-50:rgba(15,122,58,.10);

  --radius:18px;
  --shadow:0 10px 28px rgba(17,24,39,.10);
  --shadow-sm:0 6px 18px rgba(17,24,39,.08);

  --container:1140px;

  /* Header heights */
  --header-h: 86px;
  --header-h-compact: 70px;

  /* WP Adminbar fallback heights */
  --wpadminbar-h: 32px;

  /* Font minima */
  --min-font-desktop: 16px;
  --min-font-mobile: 18px;
}

@media (max-width: 782px){
  :root{ --wpadminbar-h: 46px; }
}

/* =========================================================
   BASE
   ========================================================= */

*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  line-height:1.6;
  overflow-x:hidden;

  /* Reserve space for fixed header (prevents overlap) */
  padding-top: var(--header-h);
}

/* Startseite: Hero sitzt oben – kein zusätzliches body-padding */
body.home{
  padding-top: 0;
}

/* Adminbar + Header */
body.admin-bar{
  padding-top: calc(var(--header-h) + var(--wpadminbar-h));
}

/* Adminbar + Startseite */
body.admin-bar.home{
  padding-top: 0;
}

/* Mobile header kompakter */
@media (max-width: 1024px){
  body{ padding-top: var(--header-h-compact); }
  body.admin-bar{ padding-top: calc(var(--header-h-compact) + var(--wpadminbar-h)); }
  body.home,
  body.admin-bar.home{ padding-top: 0; }
}

a{color:inherit;}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

section{padding:70px 0;}
h1,h2,h3{line-height:1.15;margin:0 0 12px;}
h2{font-size:clamp(26px,3vw,34px);}
h3{font-size:20px;}
.section-intro{color:rgba(17,24,39,.70);margin:0 0 24px;}

/* Buttons */
.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 36px;
  border-radius:6px;
  border:1px solid transparent;
  background:var(--primary);
  color:#fff;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  text-decoration:none;
}
.btn-primary:hover{background:var(--primary-600);}

.btn-outline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 18px;
  border-radius:6px;
  border:1px solid rgba(17,24,39,.18);
  background:#fff;
  color:var(--text);
  font-weight:800;
  text-decoration:none;
}
.btn-outline:hover{border-color: rgba(17,24,39,.28);}

/* =========================================================
   HEADER – B12 STYLE + WP ADMIN BAR FIX
   ========================================================= */

.site-header{
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 100;
  background: transparent;
  left:0 !important;
  right:0 !important;
}

/* WP Admin Bar: Header nach unten schieben */
body.admin-bar .site-header{
  top: var(--wpadminbar-h);
}

/* Header Layout */
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 0;
}

/* Links/Logo auf Hero */
.site-header a{
  color:#fff;
  font-weight:600;
  text-decoration:none;
}
.logo img{filter:brightness(0) invert(1);}

/* Desktop Menü horizontal */
@media (min-width: 1025px){
  .main-menu{display:flex !important; align-items:center;}
  .main-menu .menu{
    display:flex !important;
    flex-direction:row !important;
    align-items:center;
    gap:22px;
    margin:0;
    padding:0;
    list-style:none;
  }
  .main-menu .menu li{margin:0 !important;}
  .main-menu .menu a{
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    padding:6px 0;
    opacity:.92;
  }
  .main-menu .menu a:hover{
    opacity:1;
    text-decoration:underline;
  }
}

/* Header nach Scroll */
.site-header.scrolled{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header.scrolled a{color:var(--text);}
.site-header.scrolled .logo img{filter:none;}

/* Unterseiten: Header immer weiß */
body:not(.home) .site-header{
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
body:not(.home) .site-header a{ color: var(--text); }
body:not(.home) .logo img{ filter: none; }
body:not(.home) .header-inner{ padding: 16px 0; }

/* Mobile Header: immer hell */
@media (max-width: 1024px){
  .site-header{
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--line);
  }
  .site-header a{color:var(--text);}
  .logo img{filter:none;}
}

/* =========================================================
   HERO (B12) + WINDOW EFFECT
   ========================================================= */

.b12-hero{
  position:relative;
  min-height:78vh;
  display:flex;
  align-items:center;
  background:
    url('/wp-content/themes/autoankauf-de/assets/images/hero-b12.jpg')
    center/cover no-repeat;
  background-attachment: fixed;

  /* IMPORTANT: do NOT add padding-top here – body already reserves header space */
  padding-top: 0;
}

.b12-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
}
.b12-hero .container{position:relative;z-index:2;}
.b12-hero-content{max-width:760px;}

.b12-label{
  display:inline-block;
  background:rgba(190,190,190,.75);
  color:#fff;
  padding:14px 18px;
  font-size:clamp(42px,6vw,82px);
  font-weight:900;
  line-height:1.05;
  margin-bottom:12px;
}
.b12-title{
  display:inline-block;
  background:rgba(190,190,190,.75);
  color:#fff;
  padding:10px 14px;
  font-size:clamp(18px,2.2vw,30px);
  font-weight:800;
  margin-bottom:26px;
}

/* Mobile: fixed background deaktivieren */
@media (max-width: 1024px){
  .b12-hero{
    background-attachment: scroll;
    min-height:60vh;
  }
}
@media (max-width: 600px){
  .b12-label,.b12-title{width:100%;}
}

/* =========================================================
   INTRO (Text + Bild)
   ========================================================= */

.b12-intro .b12-two-col{
  display:flex !important;
  gap:32px !important;
  align-items:center !important;
}
.b12-intro .b12-intro-text{flex:1 1 55% !important;}
.b12-intro .b12-intro-media{flex:1 1 45% !important;}

.b12-intro .b12-intro-media img{
  width:100% !important;
  height:auto !important;
  display:block !important;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--line);
}

@media (max-width: 900px){
  .b12-intro .b12-two-col{display:block !important;}
  .b12-intro .b12-intro-media{margin-top:18px !important;}
}

/* =========================================================
   SERVICES (mit Bild)
   ========================================================= */

.b12-service-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
  margin-top:26px;
}
.b12-service-card{
  background:var(--surface);
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
}
.b12-service-image{
  height:220px;
  overflow:hidden;
  background:#f3f4f6;
}
.b12-service-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.b12-service-content{padding:18px 20px 22px;}
.b12-service-content h3{margin-bottom:8px;font-size:20px;}
.b12-service-content p{margin:0;color:rgba(17,24,39,.75);}

@media (max-width: 1024px){
  .b12-service-grid{grid-template-columns:1fr;}
}

/* =========================================================
   STEPS (mit Bild)
   ========================================================= */

.b12-steps{background:#fff;}
.b12-steps-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
  margin-top:36px;
}
.b12-step{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
}
.b12-step-image{
  height:200px;
  overflow:hidden;
  background:#f3f4f6;
}
.b12-step-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.b12-step-body{padding:18px 20px 24px;}
.b12-step-number{
  display:inline-block;
  font-weight:900;
  font-size:26px;
  color:var(--primary);
  margin-bottom:6px;
}
.b12-step h3{margin:0 0 10px;font-size:20px;}
.b12-step p{margin:0;color:rgba(17,24,39,.78);line-height:1.7;}

@media (max-width: 1024px){
  .b12-steps-grid{grid-template-columns:1fr;}
  .b12-step-image{height:180px;}
}

/* =========================================================
   CONTACT
   ========================================================= */

.b12-contact{background:var(--bg);}
.b12-contact-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:22px;
  align-items:start;
}
.b12-form-card,
.b12-contact-info{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow-sm);
}
.b12-form label{display:block;margin:0 0 12px;}
.b12-form label span{
  display:block;
  font-size:13px;
  font-weight:700;
  color:rgba(17,24,39,.75);
  margin:0 0 6px;
}
.b12-form input,
.b12-form textarea{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,.14);
  background:#fff;
  outline:none;
}
.b12-form input:focus,
.b12-form textarea:focus{
  border-color:rgba(15,122,58,.55);
  box-shadow:0 0 0 4px rgba(15,122,58,.12);
}
.b12-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color:rgba(17,24,39,.72);
  margin:8px 0 14px;
}
.b12-consent input{width:18px;height:18px;margin-top:2px;}
.b12-submit{width:100%;}
.b12-info-block{margin:0 0 18px;}
.b12-info-label{
  margin:0 0 6px;
  font-weight:800;
  color:rgba(17,24,39,.65);
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.b12-info-value{margin:0;color:rgba(17,24,39,.88);font-weight:700;}
.b12-info-value a{text-decoration:none;}
.b12-info-value a:hover{text-decoration:underline;}
.b12-hours{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.b12-hours li{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(17,24,39,.04);
}
@media (max-width: 1024px){
  .b12-contact-grid{grid-template-columns:1fr;}
}

/* =========================================================
   BURGER ICON (robust) + MOBILE NAV (NO CLIP)
   ========================================================= */

.burger{
  display:none;
  width:46px;
  height:46px;
  border:1px solid rgba(17,24,39,.18);
  background:rgba(255,255,255,.85);
  border-radius:12px;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
  position:relative;
  background-image: linear-gradient(var(--text), var(--text));
  background-repeat:no-repeat;
  background-size: calc(100% - 24px) 2px;
  background-position: 12px 50%;
}

.burger::before,
.burger::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  height:2px;
  background: var(--text);
  border-radius:2px;
  transition: transform .2s ease, top .2s ease;
}
.burger::before{ top:16px; }
.burger::after{ top:30px; }

body.nav-open .burger{ background-size:0 0; }
body.nav-open .burger::before{ top:22px; transform: rotate(45deg); }
body.nav-open .burger::after{ top:22px; transform: rotate(-45deg); }

@media (max-width: 1024px){
  .burger{display:inline-flex;align-items:center;justify-content:center;}
  .main-menu{display:none !important;}
}

/* Overlay */
.mobile-nav{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:100dvh;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(6px);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:200;
}

/* Panel */
.mobile-nav__panel{
  position:absolute;
  right:0;
  top:0;
  height:100dvh;
  width:min(420px, 92vw);
  background:#fff;
  transform:translateX(100%);
  transition:transform .25s ease;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  display:flex;
  flex-direction:column;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

/* Head */
.mobile-nav__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px;
  border-bottom:1px solid var(--line);
  flex: 0 0 auto;
}
.mobile-nav__title{font-weight:900;font-size:16px;}
.mobile-nav__close{
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:18px;
}

/* Body scroll area */
.mobile-nav__body{
  padding:16px 18px 22px;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  flex: 1 1 auto;
}

/* Menu list */
.mobile-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.mobile-menu a{
  display:flex;
  padding:14px 12px;
  border-radius:12px;
  font-weight:800;
  color:var(--text);
  border:1px solid rgba(17,24,39,.08);
  background:rgba(17,24,39,.02);
  text-decoration:none;
}
.mobile-menu a:hover{
  background:rgba(15,122,58,.08);
  border-color:rgba(15,122,58,.18);
}
.mobile-nav__cta{
  margin-top:16px;
  display:grid;
  gap:10px;
}
.mobile-nav__cta .btn-primary,
.mobile-nav__cta .btn-outline{
  width:100%;
  justify-content:center;
}

.mobile-nav.is-open{opacity:1;pointer-events:auto;}
.mobile-nav.is-open .mobile-nav__panel{transform:translateX(0);}

body.nav-open{ overflow:hidden; }

/* =========================================================
   FOOTER – DARK STYLE + 4 COL + BRAND
   ========================================================= */

.site-footer{
  background:#0b1220;
  color:rgba(255,255,255,.78);
  padding:64px 0 0;
}

/* FORCE 4 columns on desktop */
.site-footer .footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1.2fr .9fr !important;
  gap:28px;
  padding-bottom:36px;
  align-items:start;
}

.site-footer h3,
.site-footer h4{
  color:#fff;
  margin-bottom:14px;
  font-size:18px;
}
.site-footer p{
  margin:0 0 10px;
  color:rgba(255,255,255,.75);
}
.site-footer a{
  color:rgba(255,255,255,.82);
  text-decoration:none;
}
.site-footer a:hover{
  color:#fff;
  text-decoration:underline;
}
.site-footer ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}

.site-footer .footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 0;
  margin-top:28px;
}
.site-footer .copyright{
  font-size:13px;
  color:rgba(255,255,255,.6);
  text-align:center;
  margin:0;
}

/* Footer brand (logo + text + trustpilot) */
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.footer-logo{
  max-width:180px;
  height:auto;
}
.footer-brand-text{
  font-size:14px;
  line-height:1.6;
  color:rgba(255,255,255,.75);
}
.footer-trustpilot{
  margin-top:10px;
  max-width:260px;
}
.footer-trustpilot .trustpilot-widget{
  display:block;
}

/* Mobile footer */
@media (max-width: 1024px){
  .site-footer .footer-grid{
    grid-template-columns:1fr !important;
    gap:22px;
  }
  .footer-logo{ max-width:160px; }
}

/* =========================================================
   MEDIA SAFETY
   ========================================================= */

img, video, iframe, embed, object{
  max-width: 100% !important;
  height: auto !important;
}
.wp-block-image img{
  max-width: 100% !important;
  height: auto !important;
}
.page img,
.single-post img{
  display: block;
  max-width: 100% !important;
  height: auto !important;
}

/* Spezifisches zu breites Bild */
#attachment_2718631{
  max-width: 100% !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
#attachment_2718631 img{
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

/* Alte WP-Captions / Inhalte absichern */
.b12-post-article .wp-caption{
  max-width:100% !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  float:none !important;
}
.b12-post-article .wp-caption img{
  max-width:100% !important;
  width:100% !important;
  height:auto !important;
  display:block !important;
}

/* =========================================================
   FAQ (B12)
   ========================================================= */

.b12-faq{ background:#fff; }
.b12-faq-list{ margin-top: 22px; display: grid; gap: 12px; }
.b12-faq-item{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.b12-faq-item summary{
  cursor: pointer;
  list-style: none;
  padding: 16px 18px;
  font-weight: 800;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.b12-faq-item summary::-webkit-details-marker{ display:none; }
.b12-faq-item summary::after{
  content: "+";
  font-size: 20px;
  font-weight: 900;
  color: var(--primary);
  line-height: 1;
}
.b12-faq-item[open] summary::after{ content: "–"; }
.b12-faq-answer{ padding: 0 18px 16px; }
.b12-faq-answer p{ margin: 0; color: rgba(17,24,39,.78); line-height: 1.7; }
.b12-faq-cta{ margin-top: 18px; }

/* Zusätzliche FAQ-/Accordion-Sicherheit (Spectra/UAG etc.) */
.wp-block-uagb-faq,
.uagb-faq__outer-wrap,
.uagb-faq-item,
.uagb-faq__content,
.uagb-faq__icon-wrap,
.uagb-faq-content,
.uagb-faq__question-wrap,
.uagb-faq__answer-wrap{
  max-width:100% !important;
  width:100%;
  margin-left:0 !important;
  padding-left:0 !important;
  box-sizing:border-box;
  overflow:visible !important;
}

/* =========================================================
   SINGLE POST – B12 STYLE
   ========================================================= */

.b12-post-hero{
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: center;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding-top: 0;
}

.b12-post-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.b12-post-hero .container{
  position: relative;
  z-index: 2;
}

.b12-post-hero-content{ max-width: 860px; }

.b12-post-title{
  color:#fff;
  margin: 14px 0 10px;
  font-size: clamp(28px, 4.6vw, 54px);
  line-height: 1.08;
}

.b12-post-subtitle{
  color: rgba(255,255,255,.85);
  max-width: 70ch;
  margin: 0 0 18px;
  font-size: 18px;
}

.b12-post-hero-actions{
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Main layout */
.b12-post-main{
  padding: 40px 0 70px;
  background: var(--bg);
  overflow:visible;
}

/* Breiterer Single-Post-Container */
.container.b12-post-layout{
  max-width:1500px;
  width:100%;
  margin:0 auto;
  padding-left:24px;
  padding-right:24px;
  box-sizing:border-box;
}

.b12-post-layout{
  max-width:1500px;
}

.b12-post-nav{
  display:flex;
  justify-content:space-between;
  gap: 14px;
  margin: 18px 0 18px;
  font-weight: 700;
}
.b12-post-nav a{ text-decoration:none; }
.b12-post-nav a:hover{ text-decoration:underline; }

.b12-post-trustpilot{ margin: 10px 0 18px; }

.b12-post-article{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 26px 22px;
  overflow: visible;
  width:100%;
  box-sizing:border-box;
}

.b12-post-article img,
.b12-post-article video,
.b12-post-article iframe{
  max-width: 100%;
  height: auto;
}

.b12-post-article .wpforms-container,
.b12-post-article .wpforms-form{
  max-width:100%;
  overflow:visible;
  box-sizing:border-box;
}

.b12-post-cta{ margin-top: 22px; }
.b12-post-cta-inner{
  background: #0b1220;
  color: rgba(255,255,255,.85);
  border-radius: var(--radius);
  padding: 26px 22px;
  box-shadow: var(--shadow);
}
.b12-post-cta-inner h2{
  color:#fff;
  margin-bottom: 10px;
}
.b12-post-cta-actions{
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 14px;
}

@media (max-width: 980px){
  .b12-post-hero{ min-height: 46vh; }

  .container.b12-post-layout,
  .b12-post-layout{
    max-width:100%;
  }

  .b12-post-nav{ flex-direction: column; }

  .b12-post-hero-actions .btn-primary,
  .b12-post-hero-actions .btn-outline,
  .b12-post-cta-actions .btn-primary,
  .b12-post-cta-actions .btn-outline{
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 768px){
  .container.b12-post-layout{
    padding-left:16px;
    padding-right:16px;
  }
}

/* =========================================================
   BREADCRUMBS – B12 STYLE
   ========================================================= */

.b12-breadcrumbs{
  background: transparent;
  margin: 14px 0 18px;
  font-size: 14px;
}
.b12-breadcrumbs ol{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
  color: rgba(17,24,39,.65);
}
.b12-breadcrumbs li{
  display: flex;
  align-items: center;
  gap: 6px;
}
.b12-breadcrumbs li::after{
  content: "›";
  color: rgba(17,24,39,.45);
}
.b12-breadcrumbs li:last-child::after{ content: ""; }
.b12-breadcrumbs a{
  color: rgba(17,24,39,.75);
  text-decoration: none;
  font-weight: 600;
}
.b12-breadcrumbs a:hover{ text-decoration: underline; }
.b12-breadcrumbs li[aria-current="page"]{
  color: rgba(17,24,39,.9);
  font-weight: 700;
}

/* =========================================================
   MINIMUM FONT SIZES (Desktop 16px, Mobile 18px)
   - Overrides theme-specific 13/14px rules and WPForms
   ========================================================= */

html, body{
  font-size: var(--min-font-desktop) !important;
}

body p,
body li,
body span,
body label,
body legend,
body small,
body a,
body td,
body th{
  font-size: 1rem !important;
}

/* Form elements */
body input,
body select,
body textarea,
body button{
  font-size: 1rem !important;
  line-height: 1.45;
}

/* Theme-specific small texts */
body .section-intro,
body .b12-breadcrumbs,
body .b12-breadcrumbs ol,
body .b12-breadcrumbs a,
body .b12-form label span,
body .b12-consent,
body .b12-info-label,
body .b12-post-nav,
body .mobile-nav__title,
body .site-footer,
body .site-footer p,
body .site-footer a,
body .site-footer .copyright,
body .footer-brand-text{
  font-size: 1rem !important;
}

/* WPForms */
body .wpforms-container,
body .wpforms-container label,
body .wpforms-container .wpforms-field-description,
body .wpforms-container .wpforms-description,
body .wpforms-container input,
body .wpforms-container select,
body .wpforms-container textarea,
body .wpforms-container button{
  font-size: 1rem !important;
}

/* Placeholders */
body input::placeholder,
body textarea::placeholder{
  font-size: 1rem !important;
  opacity: .7;
}

/* MOBILE: everything becomes 18px minimum */
@media (max-width: 1024px){
  html, body{
    font-size: var(--min-font-mobile) !important;
  }

  body p,
  body li,
  body span,
  body label,
  body legend,
  body small,
  body a,
  body td,
  body th{
    font-size: 1rem !important;
  }

  body input,
  body select,
  body textarea,
  body button{
    font-size: 1rem !important;
  }

  body input::placeholder,
  body textarea::placeholder{
    font-size: 1rem !important;
  }
}

/* =========================================================
   Kaufvertrag – Anti-Konflikt Overrides (nur diese Seite)
   ========================================================= */

body.page-kaufvertrag section#vertrag.kv-sheet{
  padding: 20px 0 !important;
}

body.page-kaufvertrag .container{
  max-width: 1400px !important;
}

body.page-kaufvertrag #vertrag .kv-page{
  max-width: 1180px !important;
  margin: 0 auto !important;
}

body.page-kaufvertrag #vertrag,
body.page-kaufvertrag #vertrag label,
body.page-kaufvertrag #vertrag span{
  font-size: 14px !important;
}

body.page-kaufvertrag #vertrag .kv-title{ font-size: 24px !important; }
body.page-kaufvertrag #vertrag .kv-h2{ font-size: 16px !important; }

body.page-kaufvertrag #vertrag .kv-field-input{
  width: 100% !important;
  box-sizing: border-box !important;
}

body.page-kaufvertrag #vertrag .kv-vehicle-grid{
  display:grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  grid-template-areas:
    "hersteller modell erstzulassung"
    "kennzeichen fin hu"
    "km vorbesitzer zb" !important;
  gap:10px !important;
}
body.page-kaufvertrag #vertrag .f-hersteller{ grid-area: hersteller !important; }
body.page-kaufvertrag #vertrag .f-modell{ grid-area: modell !important; }
body.page-kaufvertrag #vertrag .f-erstzulassung{ grid-area: erstzulassung !important; }
body.page-kaufvertrag #vertrag .f-kennzeichen{ grid-area: kennzeichen !important; }
body.page-kaufvertrag #vertrag .f-fin{ grid-area: fin !important; }
body.page-kaufvertrag #vertrag .f-hu{ grid-area: hu !important; }
body.page-kaufvertrag #vertrag .f-km{ grid-area: km !important; }
body.page-kaufvertrag #vertrag .f-vorbesitzer{ grid-area: vorbesitzer !important; }
body.page-kaufvertrag #vertrag .f-zb{ grid-area: zb !important; }

@media (max-width: 900px){
  body.page-kaufvertrag #vertrag .kv-vehicle-grid{
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
  }
}

/* =========================================================
   KAUFVERTRAG – PRINT FINAL (NUR FORMULAR)
   ========================================================= */

@media print {

  @page{
    size:A4;
    margin:8mm;
  }

  html, body{
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  body.page-kaufvertrag{
    padding-top:0 !important;
    background:#fff !important;
  }

  /* 1) ALLES ausblenden */
  body.page-kaufvertrag *{
    display:none !important;
  }

  /* 2) Vertrag + Inhalt sichtbar */
  body.page-kaufvertrag #vertrag,
  body.page-kaufvertrag #vertrag *{
    display:block !important;
    visibility:visible !important;
  }

  /* 3) Formular neutral */
  body.page-kaufvertrag #vertrag{
    margin:0 !important;
    padding:0 !important;
  }

  body.page-kaufvertrag #vertrag .kv-page{
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:#fff !important;
  }

  /* 4) Theme & Branding entfernen */
  body.page-kaufvertrag header,
  body.page-kaufvertrag footer,
  body.page-kaufvertrag nav,
  body.page-kaufvertrag .site-header,
  body.page-kaufvertrag .site-footer,
  body.page-kaufvertrag .kv-badge,
  body.page-kaufvertrag .kv-noprint,
  body.page-kaufvertrag button{
    display:none !important;
  }

  /* 5) Inputs als Linien */
  body.page-kaufvertrag #vertrag .kv-field-input{
    border:none !important;
    border-bottom:1px solid #000 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    height:9mm !important;
    padding:2mm 1mm 1mm !important;
    font-size:11pt !important;
    font-weight:400 !important;
  }

  body.page-kaufvertrag #vertrag textarea.kv-field-input{
    min-height:14mm !important;
    height:auto !important;
  }

  /* 6) Seitenumbrüche sauber */
  body.page-kaufvertrag #vertrag .kv-box,
  body.page-kaufvertrag #vertrag .kv-2col,
  body.page-kaufvertrag #vertrag .kv-vehicle-grid,
  body.page-kaufvertrag #vertrag .kv-sign{
    page-break-inside:avoid;
    break-inside:avoid;
  }

  /* 7) Kleiner Hinweis nur im Druck */
  body.page-kaufvertrag #vertrag .kv-print-note{
    display:block !important;
    margin-top:6mm;
    text-align:center;
    font-size:8pt;
    color:#555;
  }
}