﻿/* ============================
   JRcare – Hauptstylesheet v3
   Logo: JR-CARE.de (Lime auf Grün)
   Farben exakt von jr-service.de
   ============================ */

:root {
  --color-primary:      #417060;
  --color-primary-dark: #306411;
  --color-accent:       #accc17;
  --color-accent-dark:  #8fa812;
  --color-grey:         #898989;
  --color-bg-light:     #f5f6fa;

  --color-text-h:       #3e3e3e;
  --color-text-body:    #545454;
  --color-text-muted:   #898989;

  --color-bg:           #ffffff;
  --color-bg-alt:       #f5f6fa;
  --color-bg-dark:      #1e2b22;
  --color-border:       #e2e8f0;
  --color-white:        #ffffff;
  --color-error:        #c0392b;

  --font-body:   Tahoma, Arial, sans-serif;
  --font-size-xs:   0.75rem;
  --font-size-sm:   0.875rem;
  --font-size-base: 1rem;
  --font-size-lg:   1.0625rem;
  --font-size-xl:   1.125rem;
  --font-size-2xl:  1.3125rem;
  --font-size-3xl:  1.75rem;
  --font-size-4xl:  2.625rem;
  --font-size-5xl:  4.5rem;

  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem;
  --space-4: 1rem;   --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem;   --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem;  --space-20: 5rem;   --space-24: 6rem;

  --container-max:    1200px;
  --border-radius:    0.5rem;
  --border-radius-lg: 1rem;
  --border-radius-xl: 1.5rem;

  --shadow-sm:  0 1px 4px rgba(0,0,0,0.07);
  --shadow-md:  0 4px 18px rgba(65,112,96,0.13);
  --shadow-lg:  0 8px 32px rgba(65,112,96,0.18);
  --shadow-xl:  0 16px 48px rgba(65,112,96,0.22);

  --transition:      200ms ease-in-out;
  --transition-slow: 400ms ease-in-out;
}

/* ── Base ─────────────────────────────────────── */
body { font-family: var(--font-body); font-size: var(--font-size-base); color: var(--color-text-body); background: var(--color-bg); line-height: 1.6; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-body); color: var(--color-text-h); line-height: 1.15; }
p,li { color: var(--color-text-body); }
a { color: var(--color-primary); }
a:hover { color: var(--color-primary-dark); }

.skip-nav { position:absolute;top:-100%;left:var(--space-4);background:var(--color-primary);color:white;padding:var(--space-2) var(--space-4);border-radius:var(--border-radius);z-index:9999;transition:top var(--transition);font-weight:600; }
.skip-nav:focus { top:var(--space-4); }

/* ── Container ─────────────────────────────────── */
.container { width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6); }
.grid   { display:grid;gap:var(--space-6); }
.grid-2 { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.grid-3 { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.grid-4 { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }

/* ── Topbar ─────────────────────────────────────── */
.topbar { background:var(--color-primary-dark);color:white;padding:var(--space-2) 0;font-size:var(--font-size-sm); }
.topbar .container { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2); }
.topbar a { color:var(--color-accent);text-decoration:none;font-weight:600;transition:color var(--transition); }
.topbar a:hover { color:white; }
.topbar-left,.topbar-right { display:flex;align-items:center;gap:var(--space-5); }
.topbar-icon { display:inline-flex;align-items:center;gap:var(--space-2); }

/* ── Header / Nav ───────────────────────────────── */
header { position:sticky;top:0;z-index:100;background:var(--color-white);border-bottom:2px solid var(--color-border);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition); }

nav { display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);max-width:var(--container-max);margin-inline:auto; }

/* Logo – echtes PNG-Bild */
.nav-brand { display:flex;align-items:center;text-decoration:none;flex-shrink:0; }
.nav-logo-img { height:54px;width:auto;display:block; }

.nav-links { display:flex;align-items:center;gap:var(--space-1); }
.nav-links a { color:var(--color-text-h);text-decoration:none;font-weight:600;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--border-radius);transition:all var(--transition);white-space:nowrap; }
.nav-links a:hover { color:var(--color-primary);background:rgba(65,112,96,.08); }
.nav-links a[aria-current="page"] { color:var(--color-primary);background:rgba(65,112,96,.12); }

.nav-cta { background:var(--color-accent)!important;color:var(--color-text-h)!important;font-weight:700!important;border-radius:var(--border-radius)!important;padding:var(--space-2) var(--space-5)!important; }
.nav-cta:hover { background:var(--color-accent-dark)!important;transform:translateY(-1px);box-shadow:0 4px 14px rgba(172,204,23,.4)!important; }

.nav-toggle { display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:var(--space-2); }
.nav-toggle span { display:block;width:26px;height:2px;background:var(--color-text-h);border-radius:2px;transition:var(--transition); }

/* ── Page Hero (Unterseiten) ────────────────────── */
.page-hero { background:linear-gradient(135deg,#1b2e24 0%,var(--color-primary) 60%,#2d5943 100%);padding:var(--space-16) 0; }
.page-hero-tag { color:var(--color-accent);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:var(--font-size-sm);display:block;margin-bottom:var(--space-2); }
.page-hero h1 { color:white;font-size:clamp(2rem,4vw,3rem);font-weight:900;margin-bottom:var(--space-4); }
.page-hero p { color:rgba(255,255,255,.82);font-size:var(--font-size-lg);max-width:580px;line-height:1.75; }

/* ── Breadcrumb ─────────────────────────────────── */
.breadcrumb { background:var(--color-bg-alt);border-bottom:1px solid var(--color-border);padding:var(--space-3) 0; }
.breadcrumb .container { display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm); }
.breadcrumb a { color:var(--color-primary);text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb-sep { color:var(--color-text-muted); }
.breadcrumb-current { color:var(--color-text-muted); }

/* ── Hero (Startseite) ──────────────────────────── */
.hero { position:relative;min-height:88vh;display:flex;align-items:center;background:linear-gradient(135deg,#1b2e24 0%,var(--color-primary) 55%,#2d5943 100%);overflow:hidden; }
.hero::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 70% at 85% 40%,rgba(172,204,23,.10) 0%,transparent 70%),radial-gradient(ellipse 40% 80% at 5% 90%,rgba(0,0,0,.25) 0%,transparent 60%); }
.hero-pattern { position:absolute;inset:0;opacity:.035;background-image:repeating-linear-gradient(45deg,#fff 0,#fff 1px,transparent 0,transparent 50%);background-size:14px 14px; }
.hero .container { position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-12);align-items:center;padding-top:var(--space-20);padding-bottom:var(--space-20); }

.hero-badge { display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(172,204,23,.18);border:1px solid rgba(172,204,23,.45);color:var(--color-accent);padding:var(--space-2) var(--space-4);border-radius:99px;font-size:var(--font-size-sm);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:var(--space-5); }
.hero-badge::before { content:'♥';font-size:13px; }
.hero h1 { font-size:clamp(2rem,4vw,3.5rem);font-weight:900;color:white;line-height:1.1;margin-bottom:var(--space-5); }
.hero h1 em { font-style:normal;color:var(--color-accent); }
.hero-lead { font-size:var(--font-size-lg);color:rgba(255,255,255,.85);line-height:1.75;margin-bottom:var(--space-8);max-width:540px; }
.hero-actions { display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-10); }
.hero-trust { display:flex;gap:var(--space-6);flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.15);padding-top:var(--space-6); }
.trust-item { display:flex;flex-direction:column; }
.trust-number { font-size:var(--font-size-4xl);font-weight:900;color:var(--color-accent);line-height:1; }
.trust-label { font-size:var(--font-size-xs);color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;line-height:1.3; }

.hero-visual { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3); }
.hero-card { background:rgba(255,255,255,.08);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);border-radius:var(--border-radius-lg);padding:var(--space-5);text-align:center;transition:background var(--transition),transform var(--transition); }
.hero-card:hover { background:rgba(255,255,255,.14);transform:translateY(-3px); }
.hero-card.featured { grid-column:span 2;background:rgba(172,204,23,.14);border-color:rgba(172,204,23,.35); }
.hero-card-icon { font-size:2rem;margin-bottom:var(--space-2); }
.hero-card-title { font-size:var(--font-size-sm);font-weight:700;color:white;margin-bottom:4px; }
.hero-card-desc { font-size:var(--font-size-xs);color:rgba(255,255,255,.62);line-height:1.4; }

/* ── Buttons ─────────────────────────────────────── */
.btn { display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--border-radius);font-weight:700;font-family:var(--font-body);font-size:var(--font-size-base);text-decoration:none;cursor:pointer;border:2px solid transparent;transition:all var(--transition);white-space:nowrap;line-height:1.4; }
.btn-primary { background:var(--color-accent);color:var(--color-text-h);border-color:var(--color-accent); }
.btn-primary:hover { background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:var(--color-text-h);transform:translateY(-2px);box-shadow:0 6px 20px rgba(172,204,23,.4); }
.btn-green { background:var(--color-primary);color:white;border-color:var(--color-primary); }
.btn-green:hover { background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:white;transform:translateY(-2px);box-shadow:var(--shadow-md); }
.btn-outline { background:transparent;color:white;border-color:rgba(255,255,255,.55); }
.btn-outline:hover { background:rgba(255,255,255,.1);border-color:white;color:white; }
.btn-outline-dark { background:transparent;color:var(--color-primary);border-color:var(--color-primary); }
.btn-outline-dark:hover { background:var(--color-primary);color:white; }
.btn-lg { padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg); }
.btn:focus-visible { outline:3px solid var(--color-accent);outline-offset:3px; }

/* ── Sections ────────────────────────────────────── */
.section { padding:var(--space-20) 0; }
.section-alt { background-color:var(--color-bg-alt); }
.section-dark { background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:white; }
.section-dark h2,.section-dark h3 { color:white; }
.section-dark p,.section-dark li { color:rgba(255,255,255,.82); }
.section-header { text-align:center;margin-bottom:var(--space-12); }
.section-tag { display:inline-block;background:rgba(65,112,96,.10);color:var(--color-primary);padding:var(--space-1) var(--space-4);border-radius:99px;font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3); }
.section-dark .section-tag { background:rgba(255,255,255,.14);color:var(--color-accent); }
.section h2 { font-size:clamp(var(--font-size-3xl),3.5vw,var(--font-size-4xl));font-weight:800;color:var(--color-text-h);margin-bottom:var(--space-4); }
.section-dark h2 { color:white; }
.section-sub { font-size:var(--font-size-lg);color:var(--color-text-body);max-width:640px;margin-inline:auto;line-height:1.75; }
.section-dark .section-sub { color:rgba(255,255,255,.78); }

/* ── Info Banner ─────────────────────────────────── */
.info-banner { background:var(--color-accent);padding:var(--space-4) 0; }
.info-banner .container { display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex-wrap:wrap; }
.info-banner-text { font-size:var(--font-size-base);font-weight:700;color:var(--color-text-h); }
.info-badge { display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-primary);color:white;padding:var(--space-2) var(--space-4);border-radius:99px;font-size:var(--font-size-sm);font-weight:700; }

/* ── Service Cards ───────────────────────────────── */
.service-card { background:white;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-6);transition:all var(--transition-slow);position:relative;overflow:hidden; }
.service-card::after { content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-slow); }
.service-card:hover { transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:rgba(65,112,96,.22); }
.service-card:hover::after { transform:scaleX(1); }
.service-card-link { text-decoration:none;display:block;color:inherit; }
.service-card-link:hover { color:inherit; }
.service-icon { width:64px;height:64px;background:rgba(65,112,96,.09);border-radius:var(--border-radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:var(--space-4);transition:background var(--transition); }
.service-card:hover .service-icon { background:var(--color-primary); }
.service-card h3 { font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-h);margin-bottom:var(--space-3); }
.service-card > p, .service-card-link > p { color:var(--color-text-body);line-height:1.7;margin-bottom:var(--space-4); }
.service-list { list-style:none;display:flex;flex-direction:column;gap:var(--space-2); }
.service-list li { display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-body);line-height:1.5; }
.service-list li::before { content:'✓';color:var(--color-accent-dark);font-weight:900;flex-shrink:0;margin-top:1px; }
.card-arrow { display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-primary);font-weight:700;font-size:var(--font-size-sm);margin-top:var(--space-4); }

/* ── Value Cards ─────────────────────────────────── */
.value-card { text-align:center;padding:var(--space-6);border-radius:var(--border-radius-lg);background:white;border:1px solid var(--color-border);transition:all var(--transition); }
.value-card:hover { box-shadow:var(--shadow-md);transform:translateY(-4px); }
.value-icon { font-size:2.4rem;margin-bottom:var(--space-3);display:block; }
.value-card h3 { font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-2); }
.value-card p { font-size:var(--font-size-sm);color:var(--color-text-body);line-height:1.7; }

/* ── Pflegegrade ─────────────────────────────────── */
.pflegestufen-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-4); }
.pflegestufe-card { background:white;border:2px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-5) var(--space-4);text-align:center;transition:all var(--transition); }
.pflegestufe-card:hover { border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-4px); }
.pflegestufe-number { font-size:clamp(2.5rem,4vw,var(--font-size-5xl));font-weight:900;color:var(--color-primary);line-height:1;margin-bottom:var(--space-2); }
.pflegestufe-label { font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-h);margin-bottom:var(--space-2); }
.pflegestufe-desc { font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.5;margin-bottom:var(--space-3); }
.pflegestufe-betrag { font-size:var(--font-size-sm);font-weight:700;color:var(--color-accent-dark);background:rgba(172,204,23,.12);padding:var(--space-1) var(--space-3);border-radius:99px;display:inline-block; }

/* ── Prozess ─────────────────────────────────────── */
.process-steps { display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6); }
.process-step { text-align:center;padding:var(--space-4); }
.process-number { width:58px;height:58px;background:var(--color-primary);color:white;font-size:var(--font-size-2xl);font-weight:900;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4);border:4px solid var(--color-accent);box-shadow:0 0 0 4px rgba(65,112,96,.15); }
.process-step h3 { font-size:var(--font-size-lg);font-weight:700;color:white;margin-bottom:var(--space-2); }
.process-step p { font-size:var(--font-size-sm);color:rgba(255,255,255,.75);line-height:1.65; }

/* ── Stats Bar ───────────────────────────────────── */
.stats-bar { background:var(--color-primary);padding:var(--space-12) 0; }
.stats-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-6);text-align:center; }
.stat-number { font-size:clamp(2rem,4vw,var(--font-size-4xl));font-weight:900;color:var(--color-accent);line-height:1;display:block;margin-bottom:var(--space-2); }
.stat-label { font-size:var(--font-size-sm);color:rgba(255,255,255,.75);font-weight:600; }

/* ── Kassenbox ───────────────────────────────────── */
.kassen-box { background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:var(--border-radius-xl);padding:var(--space-10);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center;color:white; }
.kassen-box h3 { font-size:clamp(1.5rem,3vw,var(--font-size-4xl));font-weight:800;color:white;margin-bottom:var(--space-4); }
.kassen-box p { color:rgba(255,255,255,.82);line-height:1.75;margin-bottom:var(--space-6); }
.kassen-liste { list-style:none;display:flex;flex-direction:column;gap:var(--space-3); }
.kassen-liste li { display:flex;align-items:center;gap:var(--space-3);background:rgba(255,255,255,.10);padding:var(--space-3) var(--space-4);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:600;color:white; }
.kassen-liste li::before { content:'✓';color:var(--color-accent);font-weight:900;font-size:var(--font-size-lg);flex-shrink:0; }

/* ── Testimonials ────────────────────────────────── */
.testimonial-card { background:white;border:1px solid var(--color-border);border-radius:var(--border-radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition); }
.testimonial-card:hover { box-shadow:var(--shadow-md); }
.stars { color:var(--color-accent);font-size:var(--font-size-sm);margin-bottom:var(--space-3);letter-spacing:2px; }
.testimonial-quote { font-size:2.8rem;color:var(--color-accent);line-height:1;margin-bottom:var(--space-2);font-family:serif; }
.testimonial-text { font-size:var(--font-size-base);color:var(--color-text-body);line-height:1.8;margin-bottom:var(--space-5);font-style:italic; }
.testimonial-author { display:flex;align-items:center;gap:var(--space-3); }
.testimonial-avatar { width:48px;height:48px;background:var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:var(--font-size-lg);flex-shrink:0; }
.testimonial-name { font-weight:700;color:var(--color-text-h);font-size:var(--font-size-sm); }
.testimonial-role { font-size:var(--font-size-xs);color:var(--color-text-muted); }

/* ── FAQ ─────────────────────────────────────────── */
.faq-item { border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:var(--space-3);overflow:hidden;transition:border-color var(--transition); }
.faq-item.is-open { border-color:var(--color-primary); }
.faq-question { width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);background:none;border:none;cursor:pointer;text-align:left;font-weight:700;font-size:var(--font-size-base);font-family:var(--font-body);color:var(--color-text-h);transition:color var(--transition);gap:var(--space-4); }
.faq-question:hover,.faq-item.is-open .faq-question { color:var(--color-primary); }
.faq-icon { width:28px;height:28px;background:var(--color-bg-alt);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary);flex-shrink:0;transition:transform var(--transition),background var(--transition); }
.faq-item.is-open .faq-icon { background:var(--color-primary);color:white;transform:rotate(45deg); }
.faq-answer { display:none;padding:0 var(--space-6) var(--space-5);color:var(--color-text-body);line-height:1.8;border-top:1px solid var(--color-border); }
.faq-item.is-open .faq-answer { display:block; }

/* ── Kontakt ─────────────────────────────────────── */
.contact-grid { display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-12);align-items:start; }
.contact-info h3 { font-size:var(--font-size-3xl);font-weight:800;color:var(--color-text-h);margin-bottom:var(--space-4); }
.contact-info>p { color:var(--color-text-body);line-height:1.75;margin-bottom:var(--space-6); }
.contact-items { display:flex;flex-direction:column;gap:var(--space-3); }
.contact-item { display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-alt);border-radius:var(--border-radius);border-left:4px solid var(--color-primary); }
.contact-item-icon { font-size:1.4rem;flex-shrink:0; }
.contact-item-label { font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);font-weight:600;margin-bottom:2px; }
.contact-item-value { font-size:var(--font-size-base);font-weight:700;color:var(--color-text-h); }
.contact-item-value a { color:var(--color-primary);text-decoration:none; }
.contact-item-value a:hover { text-decoration:underline; }

.contact-form-card { background:white;border:1px solid var(--color-border);border-radius:var(--border-radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md); }
.contact-form-card h4 { font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-h);margin-bottom:var(--space-2); }
.contact-form-card>p { color:var(--color-text-muted);margin-bottom:var(--space-6);font-size:var(--font-size-sm); }

.form-group { margin-bottom:var(--space-4); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4); }
label { display:block;font-weight:600;margin-bottom:var(--space-2);color:var(--color-text-h);font-size:var(--font-size-sm);font-family:var(--font-body); }
input,textarea,select { width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg);color:var(--color-text-body);font-family:var(--font-body);font-size:var(--font-size-base);transition:border-color var(--transition),box-shadow var(--transition); }
input:focus,textarea:focus,select:focus { outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(65,112,96,.14); }
input[aria-invalid="true"],textarea[aria-invalid="true"] { border-color:var(--color-error); }
.form-error { font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1);display:none; }
input[aria-invalid="true"]+.form-error,textarea[aria-invalid="true"]+.form-error { display:block; }

/* ── Kalender (Terminvereinbarung) ───────────────── */
.calendar-wrap { background:white;border:1px solid var(--color-border);border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:var(--shadow-md); }
.calendar-header { background:var(--color-primary);color:white;padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between; }
.calendar-header h3 { font-size:var(--font-size-xl);font-weight:700;color:white;margin:0; }
.cal-nav { background:rgba(255,255,255,.15);border:none;color:white;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;transition:background var(--transition); }
.cal-nav:hover { background:rgba(255,255,255,.3); }
.cal-nav:disabled { opacity:.45;cursor:not-allowed; }
.calendar-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:var(--space-4); }
.cal-day-name { text-align:center;font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;padding:var(--space-2); }
.cal-day { border:0;background:transparent;font-family:var(--font-body);text-align:center;padding:var(--space-2);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-h);transition:all var(--transition);min-height:40px;display:flex;align-items:center;justify-content:center;position:relative; }
.cal-day:hover:not(.cal-empty):not(.cal-past) { background:rgba(65,112,96,.1);color:var(--color-primary); }
.cal-day.cal-today { background:rgba(172,204,23,.15);font-weight:700;color:var(--color-primary-dark); }
.cal-day.cal-selected { background:var(--color-primary);color:white!important;font-weight:700; }
.cal-day.cal-available::after { content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--color-accent); }
.cal-day.cal-past { color:var(--color-border);cursor:default; }
.cal-day.cal-empty { cursor:default; }
.cal-day.cal-selected::after { background:white; }

.time-slots { padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border); }
.time-slots h4 { font-size:var(--font-size-base);font-weight:700;color:var(--color-text-h);margin-bottom:var(--space-3); }
.time-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-2); }
.time-slot { background:white;font-family:var(--font-body);padding:var(--space-2) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--border-radius);text-align:center;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-h);transition:all var(--transition); }
.time-slot:hover { border-color:var(--color-primary);color:var(--color-primary);background:rgba(65,112,96,.06); }
.time-slot.selected { background:var(--color-primary);color:white;border-color:var(--color-primary); }
.time-slot.booked, .time-slot:disabled { background:var(--color-bg-alt);color:var(--color-border);cursor:not-allowed;border-color:var(--color-border); }

/* ── Anmeldebogen ────────────────────────────────── */
.form-section { background:white;border:1px solid var(--color-border);border-radius:var(--border-radius-xl);padding:var(--space-8);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm); }
.form-section-title { font-size:var(--font-size-xl);font-weight:800;color:var(--color-primary);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-accent);display:flex;align-items:center;gap:var(--space-3); }
.form-section-title span { font-size:1.5rem; }
.form-grid-3 { display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4); }
.checkbox-group { display:flex;flex-direction:column;gap:var(--space-3); }
.checkbox-item { display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer; }
.checkbox-item input[type="checkbox"] { width:auto;margin-top:3px;flex-shrink:0;accent-color:var(--color-primary); }
.checkbox-item span { font-size:var(--font-size-sm);color:var(--color-text-body);line-height:1.5; }
.radio-group { display:flex;flex-wrap:wrap;gap:var(--space-3); }
.radio-item { display:flex;align-items:center;gap:var(--space-2);cursor:pointer; }
.radio-item input[type="radio"] { width:auto;accent-color:var(--color-primary); }
.form-hint { font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1); }

/* ── Cert Strip ──────────────────────────────────── */
.cert-strip { background:var(--color-bg-alt);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--space-8) 0; }
.cert-strip .container { display:flex;align-items:center;justify-content:center;gap:var(--space-10);flex-wrap:wrap; }
.cert-item { display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-body);font-size:var(--font-size-sm);font-weight:600; }
.cert-icon { width:44px;height:44px;background:var(--color-primary);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;color:white;font-size:1.3rem;flex-shrink:0; }

/* ── Footer ──────────────────────────────────────── */
footer { background:var(--color-bg-dark);color:white;padding:var(--space-16) 0 0; }
.footer-grid { display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--space-8);margin-bottom:var(--space-12); }
.footer-logo-img { height:44px;width:auto;display:block;margin-bottom:var(--space-4); }
.footer-col>p { color:rgba(255,255,255,.58);font-size:var(--font-size-sm);line-height:1.75;margin-bottom:var(--space-4); }
.footer-col h4 { font-size:var(--font-size-sm);font-weight:700;color:white;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-accent);display:inline-block; }
.footer-col ul { list-style:none;display:flex;flex-direction:column;gap:var(--space-2); }
.footer-col li a { color:rgba(255,255,255,.62);text-decoration:none;font-size:var(--font-size-sm);transition:color var(--transition);display:flex;align-items:center;gap:var(--space-2); }
.footer-col li a::before { content:'›';font-size:var(--font-size-lg);opacity:.4;flex-shrink:0; }
.footer-col li a:hover { color:var(--color-accent); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1);padding:var(--space-6) 0; }
.footer-bottom .container { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4); }
.footer-copy { font-size:var(--font-size-sm);color:rgba(255,255,255,.38); }
.footer-legal { display:flex;gap:var(--space-6); }
.footer-legal a { font-size:var(--font-size-sm);color:rgba(255,255,255,.38);text-decoration:none;transition:color var(--transition); }
.footer-legal a:hover { color:var(--color-accent); }

/* ── Utility ─────────────────────────────────────── */
.text-center { text-align:center; }
.text-primary { color:var(--color-primary); }
.mt-4 { margin-top:var(--space-4); }
.mt-6 { margin-top:var(--space-6); }
.mt-8 { margin-top:var(--space-8); }
.fade-in { opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease; }
.fade-in.visible { opacity:1;transform:translateY(0); }

/* ── Success Box ─────────────────────────────────── */
.success-box { background:rgba(65,112,96,.08);border:2px solid var(--color-primary);border-radius:var(--border-radius-lg);padding:var(--space-8);text-align:center;display:none; }
.success-box.show { display:block; }
.success-icon { font-size:3rem;margin-bottom:var(--space-4);display:block; }


img {
  pointer-events: none;
}