/*
Theme Name: Kóté Földmunka
Theme URI: https://kotefoldmunka.hu
Author: Kóté Földmunka
Author URI: https://kotefoldmunka.hu
Description: Egyedi WordPress téma a Kóté Földmunka részére. Teljesen kompatibilis az Elementor és Elementor Pro szerkesztővel. Mobilbarát, reszponzív, gyors. Tartalmaz egyedi színpalettát (földbarna + acélsárga), Montserrat + Inter betűtípusokat, és előre elkészített oldalsablonokat (kezdőlap, referenciák, kapcsolat, blog).
Version: 1.3.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kotefold
Tags: elementor, business, construction, mobile-friendly, responsive, custom-colors, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready
*/

/* ======================================================
   1. ROOT VARIABLES (Brand colors & design tokens)
   ====================================================== */
:root {
  --kf-earth-brown: hsl(32, 26%, 25%);
  --kf-earth-brown-dark: hsl(32, 20%, 15%);
  --kf-steel-yellow: hsl(45, 77%, 58%);
  --kf-steel-yellow-soft: hsl(45, 70%, 65%);
  --kf-graphite: hsl(0, 0%, 18%);
  --kf-warm-gray: hsl(30, 5%, 95%);
  --kf-background: #ffffff;
  --kf-foreground: hsl(32, 26%, 25%);
  --kf-muted: hsl(210, 40%, 96.1%);
  --kf-muted-fg: hsl(0, 0%, 45%);
  --kf-border: hsl(210, 40%, 90%);
  --kf-success: hsl(142, 71%, 45%);
  --kf-danger: hsl(0, 84%, 60%);

  --kf-shadow-sm: 0 4px 20px -5px hsla(32, 26%, 25%, 0.15);
  --kf-shadow-lg: 0 10px 40px -10px hsla(32, 26%, 25%, 0.25);
  --kf-shadow-glow: 0 0 30px hsla(45, 77%, 58%, 0.3);

  --kf-radius: 0.5rem;
  --kf-radius-lg: 0.75rem;

  --kf-font-heading: 'Montserrat', system-ui, -apple-system, sans-serif;
  --kf-font-body: 'Inter', system-ui, -apple-system, sans-serif;

  --kf-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --kf-transition-spring: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);

  --kf-container: 1200px;
}

/* ======================================================
   2. RESET & BASE
   ====================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--kf-font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--kf-foreground);
  background-color: var(--kf-background);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--kf-earth-brown); text-decoration: none; transition: var(--kf-transition); }
a:hover, a:focus { color: var(--kf-steel-yellow); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--kf-font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--kf-foreground);
  margin: 0 0 0.5em;
}

p { margin: 0 0 1em; }

ul, ol { padding-left: 1.5em; }

button { font-family: inherit; cursor: pointer; }

input, textarea, select {
  font-family: inherit;
  font-size: 1rem;
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--kf-border);
  border-radius: var(--kf-radius);
  background: var(--kf-background);
  color: var(--kf-foreground);
  transition: var(--kf-transition);
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--kf-steel-yellow);
  box-shadow: 0 0 0 3px hsla(45, 77%, 58%, 0.2);
}

/* ======================================================
   3. LAYOUT HELPERS
   ====================================================== */
.kf-container {
  width: 100%;
  max-width: var(--kf-container);
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

.kf-section { padding: 4rem 0; }
@media (min-width: 768px) { .kf-section { padding: 5rem 0; } }

.kf-grid { display: grid; gap: 1.5rem; }
.kf-grid-2 { grid-template-columns: 1fr; }
.kf-grid-3 { grid-template-columns: 1fr; }
.kf-grid-4 { grid-template-columns: 1fr; }
.kf-grid-5 { grid-template-columns: 1fr; }

@media (min-width: 640px) {
  .kf-grid-2 { grid-template-columns: repeat(2, 1fr); }
  .kf-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .kf-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .kf-grid-5 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .kf-grid-3 { grid-template-columns: repeat(3, 1fr); }
  .kf-grid-4 { grid-template-columns: repeat(4, 1fr); }
  .kf-grid-5 { grid-template-columns: repeat(5, 1fr); }
}

.kf-text-center { text-align: center; }
.kf-mb-1 { margin-bottom: 0.5rem; }
.kf-mb-2 { margin-bottom: 1rem; }
.kf-mb-4 { margin-bottom: 2rem; }
.kf-mb-6 { margin-bottom: 3rem; }

/* ======================================================
   4. BUTTONS
   ====================================================== */
.kf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border: 1px solid transparent;
  border-radius: var(--kf-radius);
  font-family: var(--kf-font-body);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  cursor: pointer;
  transition: var(--kf-transition);
  white-space: nowrap;
  line-height: 1.2;
}
.kf-btn-lg { padding: 1rem 2rem; font-size: 1.05rem; }
.kf-btn-sm { padding: 0.5rem 1rem; font-size: 0.875rem; }

.kf-btn-primary {
  background: var(--kf-steel-yellow);
  color: var(--kf-earth-brown);
  border-color: var(--kf-steel-yellow);
}
.kf-btn-primary:hover, .kf-btn-primary:focus {
  background: var(--kf-steel-yellow-soft);
  color: var(--kf-earth-brown);
  transform: translateY(-1px);
  box-shadow: var(--kf-shadow-glow);
}

.kf-btn-outline {
  background: transparent;
  color: var(--kf-foreground);
  border-color: var(--kf-border);
}
.kf-btn-outline:hover, .kf-btn-outline:focus {
  border-color: var(--kf-steel-yellow);
  color: var(--kf-steel-yellow);
}

.kf-btn-outline-white {
  background: rgba(255,255,255,0.1);
  color: #fff;
  border-color: rgba(255,255,255,0.6);
  backdrop-filter: blur(8px);
}
.kf-btn-outline-white:hover, .kf-btn-outline-white:focus {
  background: rgba(255,255,255,0.2);
  color: #fff;
  border-color: #fff;
}

.kf-btn .kf-icon { width: 1.1em; height: 1.1em; flex-shrink: 0; }

/* ======================================================
   5. HEADER
   ====================================================== */
.kf-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--kf-border);
}
.kf-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4rem;
  gap: 1rem;
}
.kf-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--kf-font-heading);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--kf-foreground);
  text-decoration: none;
}
.kf-logo-mark {
  width: 2rem;
  height: 2rem;
  background: var(--kf-steel-yellow);
  color: var(--kf-earth-brown);
  border-radius: var(--kf-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
}
.kf-logo img { max-height: 2.25rem; width: auto; }

.kf-nav {
  display: none;
  gap: 1.75rem;
  align-items: center;
}
.kf-nav a {
  color: var(--kf-foreground);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
}
.kf-nav a:hover, .kf-nav .current-menu-item > a {
  color: var(--kf-steel-yellow);
}
.kf-nav ul {
  list-style: none;
  display: flex;
  gap: 1.75rem;
  margin: 0;
  padding: 0;
  align-items: center;
}

.kf-header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.kf-header-phone { display: none; }

.kf-mobile-toggle {
  background: transparent;
  border: 0;
  padding: 0.5rem;
  border-radius: var(--kf-radius);
  color: var(--kf-foreground);
  cursor: pointer;
}
.kf-mobile-toggle:hover { background: var(--kf-warm-gray); }
.kf-mobile-toggle svg { width: 1.5rem; height: 1.5rem; display: block; }

.kf-mobile-nav {
  display: none;
  border-top: 1px solid var(--kf-border);
  background: rgba(255,255,255,0.98);
  padding: 1rem 0;
}
.kf-mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.kf-mobile-nav a {
  display: block;
  padding: 0.75rem 0;
  color: var(--kf-foreground);
  font-weight: 500;
}
.kf-mobile-nav a:hover, .kf-mobile-nav .current-menu-item > a {
  color: var(--kf-steel-yellow);
}
.kf-mobile-nav.is-open { display: block; }
.kf-mobile-nav-cta {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--kf-border);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .kf-nav { display: flex; }
  .kf-header-phone { display: inline-flex; }
  .kf-mobile-toggle { display: none; }
}

/* ======================================================
   6. HERO
   ====================================================== */
.kf-hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  overflow: hidden;
  padding: 4rem 0;
}
.kf-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}
.kf-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, hsla(32, 26%, 25%, 0.85) 0%, hsla(0, 0%, 18%, 0.7) 100%);
  z-index: 2;
}
.kf-hero-content {
  position: relative;
  z-index: 3;
  max-width: 900px;
  margin: 0 auto;
}
.kf-hero h1 {
  font-size: clamp(2rem, 5vw, 4.5rem);
  color: #fff;
  margin-bottom: 1.25rem;
  line-height: 1.1;
}
.kf-hero h1 .kf-accent { color: var(--kf-steel-yellow); display: block; }
.kf-hero p {
  font-size: clamp(1rem, 2vw, 1.25rem);
  color: rgba(255,255,255,0.9);
  max-width: 640px;
  margin: 0 auto 2rem;
  line-height: 1.6;
}
.kf-hero-ctas {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 3rem;
}
@media (min-width: 640px) {
  .kf-hero-ctas { flex-direction: row; }
}
.kf-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
  align-items: center;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.85);
}
.kf-hero-trust span { display: inline-flex; align-items: center; gap: 0.5rem; }
.kf-hero-trust .kf-dot {
  width: 0.5rem;
  height: 0.5rem;
  background: var(--kf-steel-yellow);
  border-radius: 50%;
  display: inline-block;
}

/* ======================================================
   7. CARDS, ICON BOXES
   ====================================================== */
.kf-card {
  background: #fff;
  border: 1px solid var(--kf-border);
  border-radius: var(--kf-radius-lg);
  padding: 1.75rem;
  box-shadow: var(--kf-shadow-sm);
  transition: var(--kf-transition);
}
.kf-card:hover { box-shadow: var(--kf-shadow-lg); transform: translateY(-2px); }
.kf-card.kf-card-flat { box-shadow: none; }
.kf-card-img {
  margin: -1.75rem -1.75rem 1.5rem;
  overflow: hidden;
  border-radius: var(--kf-radius-lg) var(--kf-radius-lg) 0 0;
  aspect-ratio: 16 / 10;
}
.kf-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kf-transition);
}
.kf-card:hover .kf-card-img img { transform: scale(1.05); }

.kf-icon-box {
  text-align: center;
  background: #fff;
  padding: 2rem 1.5rem;
  border-radius: var(--kf-radius-lg);
  box-shadow: var(--kf-shadow-sm);
  transition: var(--kf-transition);
  height: 100%;
}
.kf-icon-box:hover { box-shadow: var(--kf-shadow-lg); transform: translateY(-2px); }
.kf-icon-box .kf-icon-wrap {
  width: 3rem;
  height: 3rem;
  background: var(--kf-steel-yellow);
  color: var(--kf-earth-brown);
  border-radius: var(--kf-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: var(--kf-transition);
}
.kf-icon-box:hover .kf-icon-wrap { transform: scale(1.1); }
.kf-icon-box .kf-icon-wrap svg { width: 1.5rem; height: 1.5rem; }
.kf-icon-box h3 { font-size: 1.15rem; margin-bottom: 0.5rem; }
.kf-icon-box p { color: var(--kf-muted-fg); font-size: 0.95rem; margin: 0; }

/* ======================================================
   8. SECTION TITLES
   ====================================================== */
.kf-section-head { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.kf-section-head h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  margin-bottom: 0.75rem;
}
.kf-section-head p {
  color: var(--kf-muted-fg);
  font-size: 1.05rem;
}

/* ======================================================
   9. SERVICES
   ====================================================== */
.kf-service-card {
  background: #fff;
  border: 1px solid var(--kf-border);
  border-radius: var(--kf-radius-lg);
  padding: 1.75rem;
  box-shadow: var(--kf-shadow-sm);
  transition: var(--kf-transition);
  display: flex;
  flex-direction: column;
}
.kf-service-card:hover { box-shadow: var(--kf-shadow-lg); transform: translateY(-2px); }
.kf-service-icon {
  width: 3rem;
  height: 3rem;
  background: var(--kf-steel-yellow);
  color: var(--kf-earth-brown);
  border-radius: var(--kf-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: var(--kf-transition);
}
.kf-service-card:hover .kf-service-icon { transform: scale(1.1); }
.kf-service-icon svg { width: 1.5rem; height: 1.5rem; }
.kf-service-card h3 { font-size: 1.25rem; margin-bottom: 0.75rem; }
.kf-service-card p { color: var(--kf-muted-fg); margin-bottom: 1rem; }
.kf-service-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}
.kf-service-features li {
  font-size: 0.875rem;
  color: var(--kf-muted-fg);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.15rem 0;
}
.kf-service-features li::before {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  background: var(--kf-steel-yellow);
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.kf-service-card .kf-btn { margin-top: auto; width: 100%; }

/* ======================================================
   10. TESTIMONIALS
   ====================================================== */
.kf-testimonial {
  background: var(--kf-warm-gray);
  border-radius: var(--kf-radius-lg);
  padding: 2rem;
  position: relative;
  box-shadow: var(--kf-shadow-sm);
}
.kf-testimonial-quote {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2rem;
  height: 2rem;
  color: hsla(45, 77%, 58%, 0.3);
}
.kf-testimonial-stars {
  display: flex;
  gap: 0.15rem;
  margin-bottom: 1rem;
}
.kf-testimonial-stars svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: var(--kf-steel-yellow);
  color: var(--kf-steel-yellow);
}
.kf-testimonial p {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  color: var(--kf-foreground);
}
.kf-testimonial-author {
  border-top: 1px solid var(--kf-border);
  padding-top: 1rem;
}
.kf-testimonial-author h4 {
  font-size: 1rem;
  margin-bottom: 0.15rem;
}
.kf-testimonial-author .kf-company {
  color: var(--kf-muted-fg);
  font-size: 0.875rem;
  margin-bottom: 0.15rem;
}
.kf-testimonial-author .kf-project {
  color: var(--kf-steel-yellow);
  font-size: 0.875rem;
  font-weight: 500;
}
.kf-rating-banner {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  background: hsla(45, 77%, 58%, 0.1);
  border-radius: var(--kf-radius);
  padding: 1rem 1.5rem;
  margin: 0 auto;
}
.kf-rating-banner .kf-stars { display: flex; gap: 0.15rem; }
.kf-rating-banner .kf-stars svg {
  width: 1.15rem; height: 1.15rem;
  fill: var(--kf-steel-yellow); color: var(--kf-steel-yellow);
}
.kf-rating-banner .kf-rating-num {
  font-family: var(--kf-font-heading);
  font-weight: 700;
  font-size: 1.5rem;
}

/* ======================================================
   11. EQUIPMENT
   ====================================================== */
.kf-equipment-card {
  background: #fff;
  border-radius: var(--kf-radius-lg);
  overflow: hidden;
  box-shadow: var(--kf-shadow-sm);
  transition: var(--kf-transition);
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) { .kf-equipment-card { flex-direction: row; } }
.kf-equipment-card:hover { box-shadow: var(--kf-shadow-lg); }
.kf-equipment-img {
  position: relative;
  height: 220px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .kf-equipment-img { width: 40%; height: auto; }
}
.kf-equipment-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kf-transition);
}
.kf-equipment-card:hover .kf-equipment-img img { transform: scale(1.05); }
.kf-equipment-status {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #fff;
}
.kf-equipment-status.is-available { background: var(--kf-success); }
.kf-equipment-status.is-busy { background: var(--kf-danger); }
.kf-equipment-body { padding: 1.5rem; flex: 1; }
.kf-equipment-body h3 { font-size: 1.25rem; margin-bottom: 0.25rem; }
.kf-equipment-body .kf-equipment-type {
  color: var(--kf-steel-yellow);
  font-weight: 500;
  font-size: 0.875rem;
  margin-bottom: 0.75rem;
}
.kf-equipment-body p {
  color: var(--kf-muted-fg);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.kf-equipment-specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  background: var(--kf-warm-gray);
  padding: 0.75rem;
  border-radius: var(--kf-radius);
  margin-bottom: 1rem;
  font-size: 0.85rem;
}
.kf-equipment-specs span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.kf-equipment-specs svg {
  width: 1rem; height: 1rem;
  color: var(--kf-steel-yellow);
  flex-shrink: 0;
}
.kf-equipment-attach {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.kf-equipment-attach span {
  background: hsla(45, 77%, 58%, 0.12);
  color: var(--kf-earth-brown);
  border: 1px solid hsla(45, 77%, 58%, 0.25);
  font-size: 0.75rem;
  padding: 0.25rem 0.6rem;
  border-radius: var(--kf-radius);
}

/* ======================================================
   12. CONTACT CTA (dark band)
   ====================================================== */
.kf-cta-band {
  background: linear-gradient(135deg, var(--kf-earth-brown) 0%, var(--kf-graphite) 100%);
  color: #fff;
  text-align: center;
  padding: 4rem 0;
}
.kf-cta-band h2 {
  color: #fff;
  font-size: clamp(1.75rem, 4vw, 3rem);
  margin-bottom: 1rem;
}
.kf-cta-band > .kf-container > p {
  color: rgba(255,255,255,0.85);
  font-size: 1.1rem;
  max-width: 600px;
  margin: 0 auto 2rem;
}
.kf-cta-band .kf-hero-ctas { margin-bottom: 2.5rem; }
.kf-cta-features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  max-width: 800px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .kf-cta-features { grid-template-columns: repeat(3, 1fr); }
}
.kf-cta-features div {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.kf-cta-features svg {
  width: 2rem; height: 2rem;
  color: var(--kf-steel-yellow);
  margin-bottom: 0.75rem;
}
.kf-cta-features h3 {
  color: #fff;
  font-size: 1.05rem;
  margin-bottom: 0.5rem;
}
.kf-cta-features p {
  color: rgba(255,255,255,0.7);
  font-size: 0.9rem;
  margin: 0;
}

/* ======================================================
   13. FOOTER
   ====================================================== */
.kf-footer {
  background: var(--kf-graphite);
  color: rgba(255,255,255,0.85);
  padding: 3rem 0 1.5rem;
}
.kf-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 640px) { .kf-footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .kf-footer-grid { grid-template-columns: repeat(4, 1fr); } }

.kf-footer h3 {
  color: #fff;
  font-size: 1.1rem;
  margin-bottom: 1rem;
}
.kf-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.kf-footer ul li { margin-bottom: 0.5rem; }
.kf-footer a {
  color: rgba(255,255,255,0.85);
  font-size: 0.9rem;
  text-decoration: none;
}
.kf-footer a:hover { color: var(--kf-steel-yellow); }

.kf-footer-info-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  font-size: 0.9rem;
}
.kf-footer-info-row svg {
  width: 1rem; height: 1rem;
  color: var(--kf-steel-yellow);
  flex-shrink: 0;
}
.kf-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.15);
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.65);
}
@media (min-width: 768px) {
  .kf-footer-bottom { flex-direction: row; justify-content: space-between; align-items: center; }
}
.kf-footer-bottom-links {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.kf-footer-yellow { color: var(--kf-steel-yellow); font-weight: 500; }

/* ======================================================
   14. PAGE HERO (interior pages)
   ====================================================== */
.kf-page-hero {
  background: linear-gradient(180deg, hsla(32, 26%, 25%, 0.05), transparent);
  padding: 4rem 0 3rem;
  text-align: center;
}
.kf-page-hero h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1rem;
}
.kf-page-hero p {
  font-size: 1.1rem;
  color: var(--kf-muted-fg);
  max-width: 720px;
  margin: 0 auto;
}

/* ======================================================
   15. REFERENCE / BLOG POST CARDS
   ====================================================== */
.kf-ref-card .kf-card-img { aspect-ratio: 16 / 10; }
.kf-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--kf-warm-gray);
  color: var(--kf-foreground);
}
.kf-badge-overlay {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: rgba(255,255,255,0.95);
}
.kf-card-img-wrap { position: relative; }

.kf-meta-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--kf-muted-fg);
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.kf-meta-row svg { width: 1rem; height: 1rem; }

.kf-ref-stats {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--kf-border);
  font-size: 0.875rem;
}
.kf-result-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  color: var(--kf-muted-fg);
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.kf-result-row svg {
  width: 1rem; height: 1rem;
  color: var(--kf-steel-yellow);
  flex-shrink: 0;
  margin-top: 0.2rem;
}

/* ======================================================
   16. CONTACT FORM
   ====================================================== */
.kf-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 1024px) {
  .kf-form-grid { grid-template-columns: 2fr 1fr; }
}
.kf-form .kf-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (min-width: 640px) {
  .kf-form .kf-row.kf-row-2 { grid-template-columns: 1fr 1fr; }
}
.kf-form label {
  display: block;
  margin-bottom: 0.4rem;
  font-weight: 500;
  font-size: 0.9rem;
}
.kf-form .kf-required { color: var(--kf-danger); }
.kf-form textarea { min-height: 120px; resize: vertical; }
.kf-form .kf-checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.kf-form .kf-checkbox-row input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.2rem;
  accent-color: var(--kf-steel-yellow);
}
.kf-form .kf-checkbox-row label { font-weight: 400; font-size: 0.9rem; margin: 0; }
.kf-form .kf-form-status { margin-top: 1rem; padding: 0.75rem 1rem; border-radius: var(--kf-radius); display: none; }
.kf-form .kf-form-status.is-success { display: block; background: hsla(142, 71%, 45%, 0.1); color: var(--kf-success); border: 1px solid hsla(142, 71%, 45%, 0.3); }
.kf-form .kf-form-status.is-error { display: block; background: hsla(0, 84%, 60%, 0.1); color: var(--kf-danger); border: 1px solid hsla(0, 84%, 60%, 0.3); }

.kf-contact-info-card {
  background: var(--kf-warm-gray);
  border-radius: var(--kf-radius-lg);
  padding: 1.75rem;
  margin-bottom: 1.5rem;
}
.kf-contact-info-card h3 {
  font-size: 1.15rem;
  margin-bottom: 1rem;
}
.kf-contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  font-size: 0.95rem;
}
.kf-contact-info-row svg {
  width: 1.1rem; height: 1.1rem;
  color: var(--kf-steel-yellow);
  flex-shrink: 0;
  margin-top: 0.2rem;
}

/* ======================================================
   17. BLOG POST
   ====================================================== */
.kf-post-content {
  max-width: 760px;
  margin: 0 auto;
}
.kf-post-content h2, .kf-post-content h3 { margin-top: 2rem; }
.kf-post-content img { border-radius: var(--kf-radius-lg); margin: 1.5rem 0; }
.kf-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: center;
  margin-bottom: 1.5rem;
  color: var(--kf-muted-fg);
  font-size: 0.9rem;
}
.kf-post-meta svg { width: 1rem; height: 1rem; }
.kf-post-meta span { display: inline-flex; align-items: center; gap: 0.4rem; }

/* ======================================================
   18. MISC HELPERS
   ====================================================== */
.kf-bg-warm { background: var(--kf-warm-gray); }
.kf-bg-white { background: #fff; }

.kf-divider {
  border: 0;
  height: 1px;
  background: var(--kf-border);
  margin: 2rem 0;
}

/* WordPress-specific helpers */
.alignleft { float: left; margin-right: 1.5rem; }
.alignright { float: right; margin-left: 1.5rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px; width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  word-wrap: normal !important;
}
.skip-link {
  position: absolute;
  left: -9999px;
  top: 1rem;
  background: var(--kf-steel-yellow);
  color: var(--kf-earth-brown);
  padding: 0.5rem 1rem;
  border-radius: var(--kf-radius);
  z-index: 9999;
}
.skip-link:focus { left: 1rem; }

/* Elementor compatibility tweaks */
.elementor-element .kf-btn { display: inline-flex; }

/* When Elementor is editing — keep header sticky off so editor canvas works clean */
body.elementor-editor-active .kf-header { position: relative; }
