/* HaFe Facility Services – Design
   Einfügen unter: Design → Editor → Stile → ⋮ (oben rechts) → Zusätzliches CSS */

:root {
  --hafe-navy: #09395f;
  --hafe-navy-2: #0c4a7a;
  --hafe-cyan: #1cc0e9;
  --hafe-cyan-text: #0a7fae;
  --hafe-ink: #12202f;
  --hafe-muted: #5a6a7a;
  --hafe-bg: #f5f7f9;
  --hafe-soft: #e9eef3;
  --hafe-dark: #0b1f33;
  --hafe-dark-card: #14304b;
  --hafe-radius: 16px;
}

/* Theme-Farben auf HaFe umstellen */
body {
  --wp--preset--color--primary: var(--hafe-navy);
  --wp--preset--color--secondary: var(--hafe-cyan);
  --wp--preset--color--tertiary: var(--hafe-soft);
  --wp--preset--color--foreground: var(--hafe-ink);
  --wp--preset--color--background: var(--hafe-bg);
  background: var(--hafe-bg);
  color: var(--hafe-ink);
}
.wp-site-blocks > * { margin-block-start: 0 !important; }  /* keine Lücken zwischen Header, Inhalt, Footer */
main.wp-block-group { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; }

/* Abschnitte */
.hafe-section { padding-top: clamp(64px, 8vw, 112px) !important; padding-bottom: clamp(64px, 8vw, 112px) !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.hafe-section.hafe-tight { padding-top: clamp(40px, 5vw, 64px) !important; }
.hafe-alt { background: #eef2f6; }
.hafe-dark { background: var(--hafe-dark); color: #d9e4ee; }
.hafe-dark h1, .hafe-dark h2, .hafe-dark h3, .hafe-dark summary { color: #fff; }
.hafe-dark a:not(.wp-block-button__link) { color: var(--hafe-cyan); }

/* Typografie */
.hafe-h1 { font-size: clamp(2.3rem, 4.4vw, 3.6rem) !important; line-height: 1.08 !important; font-weight: 600 !important; letter-spacing: -0.02em; margin-top: 0 !important; }
.hafe-h2 { font-size: clamp(1.85rem, 3.2vw, 2.7rem) !important; line-height: 1.12 !important; font-weight: 600 !important; letter-spacing: -0.015em; }
.hafe-h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem) !important; line-height: 1.2 !important; font-weight: 600 !important; }
.hafe-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.5; color: var(--hafe-muted); }
.hafe-dark .hafe-lead { color: #a9bccd; }
.hafe-small { font-size: 0.9rem; color: var(--hafe-muted); }
.hafe-dark .hafe-small { color: #93a8bb; }
.hafe-center { text-align: center; }
.hafe-section > .hafe-lead, .hafe-section > .hafe-h2 { max-width: 760px !important; }

/* Pill über Abschnitten */
.hafe-pill { display: block; width: fit-content; background: var(--hafe-navy); color: #fff !important; font-size: 0.8rem !important; font-weight: 600; line-height: 1; padding: 0.55em 0.85em; border-radius: 6px; margin-bottom: 1.1rem !important; }
.hafe-dark .hafe-pill, .hafe-stats .hafe-pill { background: var(--hafe-cyan); color: var(--hafe-dark) !important; }
.hafe-label { font-size: 0.85rem !important; font-weight: 600; color: var(--hafe-cyan-text); margin-bottom: 0.4rem !important; }
.hafe-dark .hafe-label { color: var(--hafe-cyan); }

/* Buttons */
.hafe-btn .wp-block-button__link { border-radius: 10px !important; padding: 0.85em 1.35em !important; font-weight: 600; font-size: 1rem !important; border: 0; }
.hafe-btn-primary .wp-block-button__link { background: var(--hafe-navy) !important; color: #fff !important; }
.hafe-btn-primary .wp-block-button__link:hover { background: var(--hafe-navy-2) !important; }
.hafe-btn-dark .wp-block-button__link { background: var(--hafe-ink) !important; color: #fff !important; }
.hafe-btn-soft .wp-block-button__link { background: #e1e8ee !important; color: var(--hafe-ink) !important; }
.hafe-btn-cyan .wp-block-button__link { background: var(--hafe-cyan) !important; color: var(--hafe-dark) !important; }
.hafe-btn-cyan .wp-block-button__link:hover { background: #4fd0f0 !important; }
.hafe-btn-block { width: 100%; }
.hafe-btn-block .wp-block-button__link { width: 100%; text-align: center; }

/* Häkchen-Liste */
.hafe-checks { list-style: none; padding-left: 0 !important; }
.hafe-checks li { position: relative; padding-left: 2.2em; margin: 0.6em 0; }
.hafe-checks li::before { content: "✓"; position: absolute; left: 0; top: 0.1em; width: 1.5em; height: 1.5em; border-radius: 6px; background: var(--hafe-soft); color: var(--hafe-navy); font-size: 0.85em; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.hafe-dark .hafe-checks li::before { background: var(--hafe-dark-card); color: var(--hafe-cyan); }

/* Bilder */
.hafe-img img { border-radius: var(--hafe-radius); width: 100%; height: auto; }
.hafe-img { margin: 0 !important; }

/* Kopfbereich (Header) */
.hafe-header-wrap { padding-top: 16px !important; padding-bottom: 16px !important; margin: 0 !important; }
.hafe-header { gap: 16px; }
.hafe-header .wp-block-image { margin: 0 !important; }
.hafe-header .wp-block-buttons { gap: 8px; }
.hafe-header .hafe-btn .wp-block-button__link { padding: 0.6em 1em !important; font-size: 0.95rem !important; }

/* Hero */
.hafe-hero-section { padding-top: clamp(32px, 4vw, 56px) !important; }
.hafe-area-card { position: relative; z-index: 2; margin-top: -96px !important; margin-left: auto !important; margin-right: 16px !important; width: min(88%, 400px); background: #fff; border-radius: 14px; padding: 18px 20px !important; box-shadow: 0 12px 32px rgba(9, 57, 95, 0.16); }
.hafe-area-card .hafe-h3 { font-size: 1.15rem !important; margin: 0 0 0.6rem !important; }
.hafe-chips { gap: 6px !important; }
.hafe-chip { margin: 0 !important; background: var(--hafe-navy); color: #fff; font-size: 0.75rem !important; font-weight: 600; padding: 0.35em 0.6em; border-radius: 5px; line-height: 1.2; }

/* Leistungs-Karten */
.hafe-service { border-radius: var(--hafe-radius); overflow: hidden; padding: 22px !important; transition: transform 0.25s ease; }
.hafe-service:hover { transform: translateY(-4px); }
.hafe-service .wp-block-cover__inner-container { color: #fff; }
.hafe-service h3 { color: #fff !important; font-size: 1.3rem !important; font-weight: 600 !important; margin: 0 0 0.35rem !important; line-height: 1.2 !important; }
.hafe-service h3::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--hafe-cyan); margin-right: 10px; vertical-align: middle; }
.hafe-service p { font-size: 0.92rem; line-height: 1.45; margin: 0 0 0.5rem !important; color: #e3ecf4; }
.hafe-service a { color: var(--hafe-cyan) !important; font-weight: 600; text-decoration: none; }
.hafe-service { cursor: pointer; }
.hafe-service a::after { content: ""; position: absolute; inset: -800px; }  /* ganze Kachel klickbar */
.hafe-grid { gap: 16px !important; }

/* Karten */
.hafe-card { background: #fff; border-radius: var(--hafe-radius); padding: clamp(22px, 2.5vw, 32px) !important; }
.hafe-card-soft { background: var(--hafe-soft); }
.hafe-dark .hafe-card { background: var(--hafe-dark-card); color: #d9e4ee; }
.hafe-dark .hafe-card-light { background: var(--hafe-bg); color: var(--hafe-ink); }
.hafe-dark .hafe-card-light h3 { color: var(--hafe-ink); }
.hafe-card > *:first-child { margin-top: 0 !important; }
.hafe-card-gradient { background: linear-gradient(135deg, var(--hafe-navy) 0%, #0f6fa3 55%, var(--hafe-cyan) 100%) !important; color: #fff; }
.hafe-card-gradient h3 { color: #fff !important; }
.wp-block-column.hafe-card { display: flex; flex-direction: column; }
.wp-block-column.hafe-card > .wp-block-buttons { margin-top: auto !important; padding-top: 12px; }
.hafe-step-no { font-size: 0.85rem !important; font-weight: 700; color: var(--hafe-cyan-text); letter-spacing: 0.08em; }

.hafe-contact { font-size: 1.1rem !important; overflow-wrap: anywhere; }

/* Zahlen */
.hafe-stats { border-radius: 0; }
.hafe-stats .wp-block-cover__inner-container { color: #fff; }
.hafe-stats h2 { color: #fff !important; }
.hafe-stat-col { border-left: 1px solid rgba(255, 255, 255, 0.25); padding-left: 20px !important; }
.hafe-stat-num { font-size: clamp(3rem, 6vw, 4.5rem) !important; font-weight: 500; line-height: 1 !important; margin: 0.2em 0 0.15em !important; color: #fff; }
.hafe-stats p { color: #dce7f1; }

/* FAQ */
.hafe-faq { background: var(--hafe-dark-card); border-radius: 12px; padding: 0 !important; margin-top: 0 !important; margin-bottom: 10px !important; max-width: 860px !important; }
.hafe-faq summary { cursor: pointer; list-style: none; padding: 18px 56px 18px 22px; font-weight: 600; font-size: 1.05rem; position: relative; }
.hafe-faq summary::-webkit-details-marker { display: none; }
.hafe-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--hafe-dark); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.hafe-faq[open] summary::after { content: "–"; }
.hafe-faq > p { padding: 0 22px 18px; margin: 0 !important; color: #b7c8d8; }

/* Abschluss-Band */
.hafe-cta { background: linear-gradient(135deg, var(--hafe-navy) 0%, #0b5b8f 60%, #0e86b8 100%); color: #fff; }
.hafe-cta h2 { color: #fff !important; }
.hafe-cta .hafe-lead { color: #dcebf6; }
.hafe-cta .hafe-pill { background: var(--hafe-cyan); color: var(--hafe-dark) !important; }

/* Fußbereich */
.hafe-footer { background: var(--hafe-dark); color: #b9cad9; padding-top: 64px !important; padding-bottom: 28px !important; margin-top: 0 !important; }
.hafe-footer h3 { color: #fff !important; font-size: 1rem !important; font-weight: 600 !important; }
.hafe-footer a { color: #e6eef5 !important; text-decoration: none; }
.hafe-footer a:hover { color: var(--hafe-cyan) !important; }
.hafe-footer .hafe-footer-list { list-style: none; padding-left: 0 !important; }
.hafe-footer .hafe-footer-list li { margin: 0.4em 0; }
.hafe-footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 20px !important; margin-top: 40px !important; font-size: 0.85rem; }
.hafe-footer-bottom p { margin: 0 !important; }

/* Cookie-Banner */
.hafe-cookie { position: fixed; z-index: 9999; left: max(16px, env(safe-area-inset-left, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); max-width: 560px; margin-left: auto; background: #fff; color: var(--hafe-ink); border-radius: 14px; box-shadow: 0 16px 40px rgba(11, 31, 51, 0.25); padding: 20px 22px; font-size: 0.92rem; line-height: 1.5; }
.hafe-cookie[hidden] { display: none !important; }
.hafe-cookie strong { display: block; font-size: 1.05rem; margin-bottom: 6px; color: var(--hafe-ink); }
.hafe-cookie p { margin: 0 0 14px; color: var(--hafe-muted); }
.hafe-cookie a { color: var(--hafe-navy); text-decoration: underline; }
.hafe-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hafe-cookie button { font: inherit; font-weight: 600; border: 0; border-radius: 10px; padding: 0.7em 1.1em; cursor: pointer; }
.hafe-cookie .hafe-cookie-accept { background: var(--hafe-navy); color: #fff; }
.hafe-cookie .hafe-cookie-necessary { background: #e1e8ee; color: var(--hafe-ink); }
.hafe-cookie button:focus-visible { outline: 3px solid var(--hafe-cyan); outline-offset: 2px; }

/* Mobil */
@media (max-width: 781px) {
  .hafe-area-card { margin-top: -60px !important; margin-right: 10px !important; }
  .hafe-stat-col { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.25); padding-left: 0 !important; padding-top: 14px !important; }
  .hafe-header .hafe-btn-soft { display: none; }
  .hafe-hide-mobile { display: none !important; }
}
