/* ==========================================================================
   cultivatec.css — gemeinsame Kopfzeile, Fußzeile und Basis
   Angelegt 03.08.2026. Vorher trug jede der 36 Seiten dieses CSS inline;
   dadurch liefen Innenabstand, Maximalbreite und Kontakt-Pill auseinander
   (bis zu fünf Varianten je Regel). Änderungen hier wirken auf allen Seiten.
   Seiteneigene Regeln bleiben inline und überschreiben diese Datei.
   ========================================================================== */

.cv-nav { position:sticky; top:0; z-index:100; background:rgba(234,230,220,0.85); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:0.5px solid rgba(15,15,14,0.12); }
.cv-nav-inner { max-width:1440px; margin:0 auto; padding:22px 64px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.cv-nav-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--cv-ink); }
.cv-nav-wordmark { font-family:'Switzer',sans-serif; font-weight:900; font-size:18px; letter-spacing:-0.04em; }
.cv-nav-back { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.15em; text-transform:uppercase; color:var(--cv-ink); text-decoration:none; border-bottom:1px solid transparent; padding-bottom:3px; transition:border-color var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-back:hover { border-bottom-color:var(--cv-petrol); }
.cv-foot { background:var(--cv-ink); color:var(--cv-paper); padding:40px 60px 30px; }
.cv-foot-inner { max-width:1440px; margin:0 auto; }
.cv-foot-copy { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:0.16em; text-transform:uppercase; color:var(--cv-g5); }
.cv-foot-legal { display:flex; gap:14px; flex-wrap:wrap; }
.cv-foot-legal a { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:0.16em; text-transform:uppercase; color:var(--cv-g5); text-decoration:none; transition:color var(--cv-duration-fast) var(--cv-ease); }
.cv-foot-legal a:hover { color:var(--cv-petrol-light); }
.cv-foot-legal .sep { color:rgba(139,135,128,0.5); }
.cv-nav-link { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--cv-ink); letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; padding-bottom:4px; border-bottom:1px solid transparent; transition:border-color var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-link:hover { border-bottom-color:var(--cv-petrol); }
.cv-nav-link[aria-current] { border-bottom-color:var(--cv-petrol); color:var(--cv-petrol); }
.cv-nav-link--badge { position:relative; }
.cv-nav-badge { display:inline-block; margin-left:6px; background:var(--cv-petrol); color:var(--cv-paper); font-family:'IBM Plex Mono',monospace; font-size:8px; font-weight:700; letter-spacing:0.12em; padding:2px 5px; border-radius:2px; vertical-align:middle; }
.cv-footer-inner { max-width: 1440px; margin: 0 auto; }
.cv-footer-grid { display: grid; grid-template-columns: 1.5fr 0.8fr 0.95fr 1fr 1fr 1.05fr; gap: 32px; padding-bottom: 48px; }
.cv-footer-brand-mark { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.cv-footer-wordmark { font-family: 'Switzer', sans-serif; font-weight: 700; font-size: 18px; letter-spacing: -0.03em; color: var(--cv-paper); }
.cv-footer-index { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cv-g6); margin-bottom: 16px; }
.cv-footer-anchor { font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; line-height: 1.6; color: rgba(234,230,220,0.72); max-width: 34ch; }
.cv-footer-impressum { font-family: 'IBM Plex Mono', monospace; font-size: 10px; line-height: 1.7; letter-spacing: 0.04em; color: var(--cv-g6); margin-top: 14px; max-width: 36ch; }
.cv-footer-impressum a { color: var(--cv-g6); text-decoration: none; border-bottom: 1px solid transparent; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-footer-impressum a:hover { color: var(--cv-petrol-light); }
.cv-footer-impressum .cv-footer-ph { color: var(--cv-petrol-light); border-bottom: 1px dotted var(--cv-petrol-light); }
.cv-footer-col-header { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cv-g6); margin-bottom: 18px; }
.cv-footer-links { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.cv-footer-links a { font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; color: var(--cv-paper); text-decoration: none; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-footer-links a:hover { color: var(--cv-petrol-light); }
.cv-footer-contact-line { font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; color: var(--cv-paper); margin-bottom: 12px; }
.cv-footer-contact-line a { color: var(--cv-paper); text-decoration: none; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-footer-contact-line a:hover { color: var(--cv-petrol-light); }
.cv-footer-ph { color: var(--cv-petrol-light); border-bottom: 1px dotted var(--cv-petrol-light); }
.cv-footer-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cv-petrol-light); text-decoration: none; }
.cv-footer-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-footer-cta:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-nav-kontakt { display:inline-flex; align-items:center; gap:8px; background:var(--cv-ink); color:var(--cv-paper); text-decoration:none; font-family:'Switzer',sans-serif; font-size:13px; font-weight:600; letter-spacing:-0.01em; padding:10px 20px; border:0; border-radius:999px; cursor:pointer; white-space:nowrap; transition:background var(--cv-duration-fast,150ms) var(--cv-ease,ease); }
.cv-nav-kontakt:hover { background:var(--cv-petrol); }
.cv-nav-links { display:flex; align-items:center; gap:0; }
.cv-nav-links a { display:inline-flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--cv-ink); text-decoration:none; padding:0 18px; transition:color var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-links a + a { border-left:0.5px solid rgba(15,15,14,0.18); }
.cv-nav-links a:hover { color:var(--cv-petrol); }
.cv-foot-partner { font-family:'IBM Plex Mono',monospace; font-size:11px; line-height:1.7; letter-spacing:0.03em; color:var(--cv-g5); max-width:60ch; margin-bottom:24px; padding-bottom:20px; border-bottom:0.5px solid rgba(234,230,220,0.14); }
.cv-foot-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.cv-nav-center a { border-left:0 !important; }
.cv-ref-cta .cv-cta-arrow { display:inline-block; transition:transform var(--cv-duration-fast) var(--cv-ease); }
.cv-ref-card:hover .cv-cta-arrow { transform:translateX(4px); }
.cv-nav-brand .cv-wordmark-mini { font-family: 'Switzer', sans-serif; font-weight: 900; font-size: 18px; letter-spacing: -0.04em; }
.cv-nav-dd-toggle { display: inline-flex; align-items: center; gap: 7px; background: transparent; border: 0; cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--cv-ink); letter-spacing: 0.18em; text-transform: uppercase; padding: 4px 0; }
.cv-nav-dropdown:hover .cv-dd-caret, .cv-nav-dropdown.is-open .cv-dd-caret { transform: rotate(180deg); }
.cv-nav-dd-panel { position: absolute; top: 100%; left: -16px; min-width: 224px; background: var(--cv-paper); border: 0.5px solid var(--cv-g4); box-shadow: 0 16px 40px rgba(15,15,14,0.16); padding: 8px 0 0; display: none; z-index: 200; }
.cv-nav-dd-item { display: block; padding: 11px 22px; text-decoration: none; transition: background var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-dd-item:hover { background: var(--cv-g1); }
.cv-nav-dd-item:hover .cv-dd-label { color: var(--cv-petrol); }
.cv-nav-mega-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.cv-nav-mega-card { display: flex; flex-direction: column; padding: 4px 24px; border-right: 0.5px solid rgba(15, 15, 14, 0.12); transition: background var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-mega-card:last-child { border-right: 0; }
.cv-nav-mega-card:hover { background: rgba(15, 15, 14, 0.03); }
.cv-nav-mega-link { display: flex; flex-direction: column; text-decoration: none; color: var(--cv-ink); }
.cv-nav-mega-eyebrow { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--cv-g6); margin-bottom: 12px; }
.cv-nav-mega-title { font-family: 'Switzer', sans-serif; font-weight: 700; font-size: 17px; letter-spacing: -0.01em; margin-bottom: 6px; }
.cv-nav-mega-sub { font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; line-height: 1.45; color: var(--cv-g6); }
.cv-nav-mega-sublink { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 0.5px solid rgba(15, 15, 14, 0.12); font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv-petrol); text-decoration: none; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-mega-sublink:hover { color: var(--cv-ink); }
.cv-nav-mega-badge { display: inline-block; background: var(--cv-petrol); color: var(--cv-paper); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; padding: 2px 5px; border-radius: 2px; }
.cv-nav-mega-footer { border-top: 0.5px solid rgba(15, 15, 14, 0.12); margin-top: 28px; padding-top: 18px; text-align: right; }
.cv-nav-mega-footer-link { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv-ink); text-decoration: none; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-mega-footer-link:hover { color: var(--cv-petrol); }
.cv-nav-cta:hover { background: var(--cv-petrol); }
.cv-nav-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-nav-cta:hover .cv-cta-arrow { transform: translateX(3px); }
.cv-nav-mobile.is-open { display: block; }
.cv-nav-mobile-group { padding: 14px 0; border-bottom: 0.5px solid var(--cv-g3); }
.cv-nav-mobile-group:last-child { border-bottom: 0; padding-bottom: 4px; }
.cv-nav-mobile-eyebrow { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cv-g6); margin-bottom: 8px; }
.cv-nav-mobile-group a { display: block; font-family: 'IBM Plex Sans', sans-serif; font-size: 16px; color: var(--cv-ink); text-decoration: none; padding: 8px 0; }
.cv-nav-mobile-group a:hover { color: var(--cv-petrol); }
.cv-nav-mobile-cta { display: inline-flex !important; align-items: center; gap: 8px; background: var(--cv-ink); color: var(--cv-paper) !important; border-radius: 999px; padding: 12px 22px !important; font-family: 'Switzer', sans-serif; font-weight: 600; }
.cv-nav-mobile-cta:hover { background: var(--cv-petrol); }
.cv-nav-burger span { display: block; width: 22px; height: 1.5px; background: var(--cv-ink); margin: 5px 0; }
.cv-vert-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-vert-card:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-stmt-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-stmt-cta:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-cta:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-sw-cta .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-sw-card:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-btn-primary .cv-cta-arrow { display: inline-block; transition: transform var(--cv-duration-fast) var(--cv-ease); }
.cv-btn-primary:hover .cv-cta-arrow { transform: translateX(4px); }
.cv-subfooter-copy { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv-g5); }
.cv-subfooter-legal { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.cv-subfooter-legal a { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv-g5); text-decoration: none; transition: color var(--cv-duration-fast) var(--cv-ease); }
.cv-subfooter-legal a:hover { color: var(--cv-petrol-light); }
.cv-subfooter-legal .sep { color: rgba(139,135,128,0.5); }
.cv-subfooter-index { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv-g5); text-align: right; }
.cv-funnel-cta .cv-cta-arrow { display:inline-block; transition:transform var(--cv-duration-fast) var(--cv-ease); }
.cv-funnel-cta:hover .cv-cta-arrow { transform:translateX(4px); }
.cv-nav-center > * { padding: 0 22px; }
.cv-nav-center > * + * { border-left: 0.5px solid rgba(15,15,14,0.18); }


/* --- responsiv --- */
/* aus Media-Queries extrahiert gewesen — hier korrekt gekapselt */
@media (max-width:900px) { .cv-nav-inner, .cv-foot { padding-left:24px; padding-right:24px; } }

@media (max-width:700px) { .cv-nav-inner, .cv-foot { padding-left:24px; padding-right:24px; } }
@media (max-width:700px) { .cv-foot-inner { flex-direction:column; align-items:flex-start; } }
@media (max-width: 900px) { .cv-footer { padding: 56px 24px 28px; } }
@media (max-width: 900px) { .cv-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; } }
@media (max-width: 900px) { .cv-subfooter { grid-template-columns: 1fr; justify-items: start; gap: 14px; } }
@media (max-width: 900px) { .cv-subfooter-legal { justify-content: flex-start; } }
@media (max-width: 900px) { .cv-subfooter-index { text-align: left; } }
@media (max-width:900px) { .cv-nav-links { display:none; } }
@media (max-width:900px) { .cv-nav-inner, .cv-foot, .csc-final { padding-left:24px; padding-right:24px; } }
@media (max-width:900px) { .cv-foot-bar { flex-direction:column; align-items:flex-start; } }
@media (max-width: 900px) { .cv-nav-mobile-accordion { width: 100%; background: transparent; border: 0; padding: 14px 0; display: flex; justify-content: space-between; align-items: center; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv-ink); cursor: pointer; } }
@media (max-width: 900px) { .cv-nav-mobile-accordion-caret { transition: transform var(--cv-duration-fast) var(--cv-ease); } }
@media (max-width: 900px) { .cv-nav-mobile-accordion[aria-expanded="true"] .cv-nav-mobile-accordion-caret { transform: rotate(180deg); } }
@media (max-width: 900px) { .cv-nav-mobile-accordion-content[hidden] { display: none; } }
@media (max-width: 900px) { .cv-nav-mobile-accordion[aria-expanded="true"] + .cv-nav-mobile-accordion-content { display: block; } }
@media (max-width: 900px) { /* Spezifitaet (0,2,0) noetig: schlaegt die Bestandsregel .cv-nav-mobile-group a (0,1,1) */ .cv-nav-mobile-accordion-content .cv-nav-mobile-link { display: block; padding: 12px 0 12px 16px; border-top: 0.5px solid rgba(15, 15, 14, 0.08); text-decoration: none; color: var(--cv-ink); } }
@media (max-width: 900px) { .cv-nav-mobile-accordion-content .cv-nav-mobile-link--sub { padding-left: 32px; color: var(--cv-petrol); } }
@media (max-width: 900px) { .cv-nav-mobile-accordion-content .cv-nav-mobile-eyebrow { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.22em; color: var(--cv-g6); margin-bottom: 2px; } }
@media (max-width: 900px) { .cv-nav-mobile-title { display: block; font-family: 'Switzer', sans-serif; font-weight: 700; font-size: 15px; } }
@media (max-width: 900px) { .cv-nav-mobile-badge { display: inline-block; background: var(--cv-petrol); color: var(--cv-paper); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; padding: 2px 5px; border-radius: 2px; margin-left: 6px; } }
@media (max-width: 900px) { .cv-nav-inner { padding: 14px 24px; } }
@media (max-width: 900px) { .cv-nav-center { display: none; } }
@media (max-width: 900px) { .cv-nav-inner > .cv-nav-cta { display: none; } }
@media (max-width: 900px) { .cv-nav-burger { display: block; } }
@media (max-width: 900px) { /* M1 Header: Desktop-Lock .cv-nav-center { display:flex } }
@media (max-width: 900px) { hier zurueckdraengen -- Burger statt Items */ .cv-nav-center { display: none; } }
@media (max-width: 900px) { /* Welle N: Mobile Branchen-Accordion permanent (Mega-Menu ist Desktop-only, hier Accordion) */ .cv-nav-mobile-accordion { width: 100%; background: transparent; border: 0; padding: 14px 0; display: flex; justify-content: space-between; align-items: center; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv-ink); cursor: pointer; } }
@media (max-width: 900px) { .cv-nav-mobile-accordion-content .cv-nav-mobile-link { display: block; padding: 12px 0 12px 16px; border-top: 0.5px solid rgba(15,15,14,0.08); text-decoration: none; color: var(--cv-ink); } }
@media (max-width:900px) { .cv-nav-inner,.hero,.sec,.form-inner,.cv-foot { padding-left:22px; padding-right:22px; } }
@media (max-width:900px) { .cv-foot-inner { flex-direction:column; align-items:flex-start; } }
@media (max-width:900px) { .cv-nav-inner, .cv-foot { padding-left:24px; padding-right:24px; } }
@media (max-width:820px) { .cv-nav-inner,.wrap,.cta-inner,.cv-foot { padding-left:22px; padding-right:22px; } }
@media (max-width:820px) { .cv-foot-inner { flex-direction:column;align-items:flex-start; } }
@media (max-width:900px) { .cv-nav-inner,.cv-foot { padding-left:24px; padding-right:24px; } }

/* --------------------------------------------------------------------------
   Kopfzeile — verbindlich. Steht bewusst am Dateiende: CSS laesst die letzte
   Regel gewinnen, damit kein frueherer Sammelselektor sie wieder aushebelt.
   Genau das war am 04.08. passiert (padding-left:24px aus einer Media-Query).
   -------------------------------------------------------------------------- */
.cv-nav-inner { max-width:1440px; margin:0 auto; padding:22px 64px; display:flex;
                justify-content:space-between; align-items:center; gap:24px; }
@media (max-width:900px) { .cv-nav-inner { padding:16px 24px; } }

/* --------------------------------------------------------------------------
   Kopfzeile: Abstaende. Verbindlich fuer alle Seiten, steht am Dateiende.
   04.08.: index.html hatte .cv-nav-center gap:0 aus einem alten Entwurf mit
   Trennlinien; die Linien waren entfernt, das gap:0 blieb. Ergebnis: dort
   klebten die Menuepunkte, ueberall sonst standen 26px. Deshalb duerfen
   Nav-Regeln ab jetzt NICHT mehr inline stehen — nur noch hier.
   -------------------------------------------------------------------------- */
.cv-nav-center { display:flex; align-items:center; gap:26px; }
.cv-nav-link { display:inline-flex; align-items:center; font-family:'IBM Plex Mono',monospace;
               font-size:11px; font-weight:400; letter-spacing:0.18em; text-transform:uppercase;
               color:var(--cv-ink); text-decoration:none; padding:0; margin:0;
               border-bottom:1px solid transparent; padding-bottom:3px;
               transition:border-color .15s ease, color .15s ease; }
.cv-nav-link:hover { color:var(--cv-ink); border-bottom-color:var(--cv-petrol); }
.cv-nav-link[aria-current="page"] { border-bottom-color:var(--cv-ink); }
@media (max-width:1100px) { .cv-nav-center { gap:18px; } }
