/* Khalaf Fahrschule — Mobile-First Design-System v2 */
:root{
  --kf-primary:#0d3b66;
  --kf-primary-dark:#082745;
  --kf-primary-light:#17588f;
  --kf-accent:#f7a821;
  --kf-accent-dark:#de8f0a;
  --kf-bg-alt:#f3f8fc;
  --kf-text:#1b2733;
  --kf-text-muted:#5a6b7a;
  --kf-radius:16px;
  --kf-radius-sm:10px;
  --kf-shadow:0 8px 24px rgba(13,59,102,.10);
  --kf-shadow-md:0 14px 34px rgba(13,59,102,.16);
  --kf-section-pad: 64px;
}
@media (max-width:781px){ :root{ --kf-section-pad: 36px; } }

html,body{ overflow-x:hidden; }
body{ color:var(--kf-text); }
img{ max-width:100%; height:auto; }

/* ---------- Globales Vertikal-Rhythmus-Override ---------- */
/* Reduziert die hart kodierten Inline-Paddings der Sections auf Mobile/Tablet einheitlich */
.wp-block-group.alignfull{
  padding-top: var(--kf-section-pad) !important;
  padding-bottom: var(--kf-section-pad) !important;
}

/* ---------- Typografie ---------- */
h1{ font-size: clamp(1.9rem, 1.5rem + 2vw, 3.75rem); line-height:1.15; color:var(--kf-primary-dark); letter-spacing:-0.01em; }
h2{ font-size: clamp(1.5rem, 1.25rem + 1.1vw, 2.5rem); line-height:1.2; color:var(--kf-primary-dark); }
h3{ font-size: clamp(1.15rem, 1.05rem + .5vw, 1.6rem); line-height:1.3; color:var(--kf-primary); }
p, li{ font-size:1rem; line-height:1.6; }
@media(min-width:768px){ p, li{ font-size:1.05rem; } }

/* ---------- Einheitlicher Container (globales Layout-System) ---------- */
.kf-container{ max-width:1240px; margin-inline:auto; padding-inline:20px; }
@media(min-width:600px){ .kf-container{ padding-inline:24px; } }
@media(min-width:1024px){ .kf-container{ padding-inline:40px; } }

/* ---------- Leerraum zwischen Header und Content entfernen (Kadence-Default) ---------- */
.content-area{ margin-top:0 !important; }
.entry-content-wrap{ padding-top:0 !important; }

/* ---------- Header ---------- */
.site-header{ box-shadow:0 2px 14px rgba(13,59,102,.10); }
.site-header .site-container, .site-header .inside-header{ min-height:0; }
@media (max-width:1024px){
  .site-header .site-container{ padding-top:.5rem; padding-bottom:.5rem; }
}
/* Ausreichende Touch-Flaeche fuer Hamburger */
button.mobile-toggle-open, .mobile-toggle-open, .menu-toggle-open{
  min-width:44px !important; min-height:44px !important;
}
.site-title, .site-branding .site-title a{ font-size:1.05rem !important; line-height:1.25; }
@media (max-width:480px){
  .site-title, .site-branding .site-title a{ font-size:.98rem !important; }
}

/* ---------- Hero ---------- */
.kf-hero{
  background:linear-gradient(155deg, var(--kf-primary-dark) 0%, var(--kf-primary) 60%, var(--kf-primary-light) 100%);
  color:#fff;
  padding-top:2.25rem !important; padding-bottom:2.25rem !important;
}
@media(min-width:782px){ .kf-hero{ padding-top:4rem !important; padding-bottom:4rem !important; } }
.kf-hero-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.12); border:1px solid rgba(247,168,33,.5);
  color:var(--kf-accent); font-weight:700; font-size:.8rem;
  padding:.3rem .7rem; border-radius:999px; margin-bottom:1rem;
}
.kf-hero h1{ color:#fff; margin-bottom:.6rem; }
.kf-hero .kf-hero-lead{ font-size:1.05rem; color:rgba(255,255,255,.92); max-width:52ch; margin-bottom:1.4rem; }
.kf-hero-cta{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1rem; }
.kf-hero-cta a{
  display:inline-flex; align-items:center; gap:.45rem;
  font-weight:700; font-size:.98rem; text-decoration:none;
  padding:.85rem 1.3rem; border-radius:10px; min-height:44px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.kf-hero-cta a:active{ transform:scale(.98); }
.kf-cta-call{ background:var(--kf-accent); color:#201400 !important; box-shadow:var(--kf-shadow-md); }
.kf-cta-call:hover{ background:var(--kf-accent-dark); }
.kf-cta-whatsapp{ background:#25D366; color:#fff !important; }
.kf-cta-whatsapp:hover{ background:#1ebc59; }
.kf-cta-ghost{ background:rgba(255,255,255,.08); color:#fff !important; border:1.5px solid rgba(255,255,255,.5); }
.kf-hero-note{ font-size:.85rem; color:rgba(255,255,255,.75); }
.kf-hero-media{ margin-top:1.5rem; border-radius:var(--kf-radius); overflow:hidden; box-shadow:var(--kf-shadow-md); border:1px solid rgba(255,255,255,.15); }
.kf-hero-media img{ display:block; width:100%; height:220px; object-fit:cover; object-position:center 30%; }
@media(min-width:600px){ .kf-hero-media img{ height:300px; } }
@media(min-width:782px){ .kf-hero-media{ margin-top:0; } .kf-hero-media img{ height:100%; min-height:380px; } }

/* ---------- Bild-Sections (Ueber uns / Lernzentrum / Erfolge) ---------- */
.kf-imgtext-media img{
  border-radius:var(--kf-radius); box-shadow:var(--kf-shadow);
  width:100%; object-fit:cover;
  height:220px;
}
@media(min-width:600px){ .kf-imgtext-media img{ height:280px; } }
@media(min-width:782px){ .kf-imgtext-media img{ height:100%; min-height:320px; } }
.kf-eyebrow{ display:inline-block; font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--kf-accent-dark); background:rgba(247,168,33,.12); padding:.25rem .6rem; border-radius:999px; margin-bottom:.6rem; }

/* ---------- Fuehrerscheinklassen Cards ---------- */
.kf-classes{ display:grid; gap:.85rem; grid-template-columns:repeat(2,1fr); margin-top:1.5rem; }
@media(min-width:600px){ .kf-classes{ grid-template-columns:repeat(3,1fr); gap:1rem; } }
@media(min-width:960px){ .kf-classes{ grid-template-columns:repeat(5,1fr); } }
.kf-class-card{
  background:#fff; border-radius:var(--kf-radius); padding:1.1rem .9rem;
  text-align:center; box-shadow:var(--kf-shadow); border:1px solid rgba(13,59,102,.06);
  min-height:44px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem;
  transition:transform .15s ease, box-shadow .15s ease;
}
.kf-class-card:hover{ transform:translateY(-3px); box-shadow:var(--kf-shadow-md); }
.kf-class-card .kf-icon{ font-size:1.8rem; margin-bottom:.2rem; }
.kf-class-card h3{ font-size:1rem; margin:0 0 .1em; color:var(--kf-primary-dark); }
.kf-class-card p{ font-size:.82rem; color:var(--kf-text-muted); margin:0; }

/* ---------- Erfolge / Vertrauens-Stats ---------- */
.kf-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:1.3rem; }
.kf-stat-card{
  background:var(--kf-bg-alt); border-radius:var(--kf-radius-sm); padding:1rem .5rem;
  text-align:center; border:1px solid rgba(13,59,102,.07);
}
.kf-stat-card strong{ display:block; font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem); color:var(--kf-primary); font-weight:800; }
.kf-stat-card span{ font-size:.78rem; color:var(--kf-text-muted); }
@media(min-width:600px){ .kf-stat-card{ padding:1.4rem 1rem; } .kf-stat-card span{ font-size:.85rem; } }

/* ---------- Google Bewertungen ---------- */
.kf-reviews{
  background:linear-gradient(155deg, var(--kf-primary-dark), var(--kf-primary));
  border-radius:var(--kf-radius); padding:1.75rem 1.25rem; text-align:center; color:#fff;
}
@media(min-width:600px){ .kf-reviews{ padding:2.5rem; } }
.kf-reviews-badge{
  display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.1);
  padding:.4rem .9rem; border-radius:999px; font-size:.85rem; font-weight:700; margin-bottom:1rem;
}
.kf-reviews-score{ font-size:clamp(2.2rem,1.8rem + 1.6vw,3rem); font-weight:800; }
.kf-reviews-stars{ color:var(--kf-accent); font-size:1.3rem; letter-spacing:.1em; }
.kf-reviews .kf-btn-accent{ margin-top:1.3rem; }

/* ---------- Buttons allgemein ---------- */
.wp-block-button__link,
.kt-btn-inner-text{ border-radius:10px !important; font-weight:700 !important; min-height:44px; }
.kf-btn-accent .wp-block-button__link{ background:var(--kf-accent) !important; color:#201400 !important; }
.kf-btn-accent .wp-block-button__link:hover{ background:var(--kf-accent-dark) !important; }

/* ---------- Kontakt-Kacheln ---------- */
.kf-contact-quick{
  display:grid; gap:.85rem; grid-template-columns:1fr;
  background:var(--kf-primary); color:#fff; border-radius:var(--kf-radius);
  padding:1.35rem;
}
@media(min-width:640px){ .kf-contact-quick{ grid-template-columns:repeat(3,1fr); } }
.kf-contact-quick a{ color:#fff; text-decoration:none; font-weight:700; }
.kf-contact-quick .kf-cq-label{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--kf-accent); margin-bottom:.25rem; }

/* ---------- WhatsApp Floating Button ---------- */
.kf-whatsapp-fab{
  position:fixed; right:14px; bottom:14px; z-index:9999;
  display:flex; align-items:center; gap:.5rem;
  background:#25D366; color:#fff; text-decoration:none;
  width:50px; height:50px; border-radius:50%; justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.28); font-weight:700; font-size:.9rem;
  transition:transform .15s ease, width .15s ease, border-radius .15s ease, padding .15s ease;
}
.kf-whatsapp-fab:hover{ transform:translateY(-2px); color:#fff; }
.kf-whatsapp-fab svg{ width:24px; height:24px; flex:none; }
.kf-whatsapp-fab .kf-wa-label{ display:none; }
@media(min-width:600px){
  .kf-whatsapp-fab{ width:auto; height:auto; border-radius:999px; padding:.75rem 1.1rem .75rem .95rem; }
  .kf-whatsapp-fab .kf-wa-label{ display:inline; }
}

/* ---------- Footer ---------- */
.site-footer{ font-size:.92rem; }
.site-footer .footer-widget-area{ padding-top:2rem; padding-bottom:1.25rem; }
.site-footer .footer-bottom, .footer-bar{ padding-top:.85rem; padding-bottom:.85rem; font-size:.82rem; }

/* ---------- Tabellen (Preise/Oeffnungszeiten) ---------- */
.wp-block-table table{ font-size:.95rem; }
.wp-block-table td, .wp-block-table th{ padding:.6rem .75rem; }
