/* ============================================================
   FOMENKO — DIE SEITE IST EIN FORMULAR
   Ein durchgehender, ruhiger Buchungs-Flow.
   Klar, ehrlich, vertrauenswürdig. Eine Sache pro Blick.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
    --pm-paper: #f4efe6;
    --pm-paper-2: #eae3d5;
    --pm-white: #fcfaf5;
    --pm-ink: #2a251e;
    --pm-ink-soft: #423b30;
    --pm-blue: #5c6b52;
    --pm-blue-deep: #47543f;
    --pm-blue-soft: #ecefe6;
    --pm-gold: #a4792e;
    --pm-slate: #6e6758;
    --pm-line: #ddd5c3;
    --pm-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
    --pm-sans: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --pm-shadow: 0 2px 10px -2px rgba(42, 37, 30, 0.08);

    --primary: var(--pm-blue);
    --primary-hover: var(--pm-blue-deep);
    --text: var(--pm-ink);
    --muted: var(--pm-slate);
    --border: var(--pm-line);
    --bg: var(--pm-paper);
    --danger: #a85444;
    --success: var(--pm-blue);
    --radius: 12px;
    --shadow: 0 3px 12px -4px rgba(42, 37, 30, 0.12);
}

.pm-page {
    background: var(--pm-paper);
    color: var(--pm-ink);
    font-family: var(--pm-sans);
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
}

.pm-page a { color: var(--pm-blue); }

/* Schritt-für-Schritt: nur der aktive Schritt ist sichtbar */
.step { display: none; }
.step.active { display: block; }
.hidden { display: none !important; }

/* ============================================================
   KOPF
   ============================================================ */
.pm-top {
    max-width: 860px;
    margin: 0 auto;
    padding: 18px 24px 0;
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}
.pm-top img { max-height: 44px; width: auto; height: auto; display: block; border-radius: 8px; }
.pm-top-nav { display: flex; align-items: center; gap: 8px; width: 100%; }
.pm-top-call { margin-left: auto; }
.pm-top-nav > a:not(.pm-top-call) {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 999px;
    padding: 9px 18px;
    font-weight: 700;
    font-size: 1rem;
    color: var(--pm-ink);
    white-space: nowrap;
}
.pm-top-nav > a:not(.pm-top-call):hover { border-color: var(--pm-blue); color: var(--pm-blue-deep); }
.pm-top .pm-top-call {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 999px;
    padding: 9px 18px;
    text-decoration: none;
    color: var(--pm-ink);
    font-weight: 800;
    font-size: 1rem;
    white-space: nowrap;
}
.pm-top .pm-top-call svg { color: var(--pm-blue); flex-shrink: 0; }
.pm-top .pm-top-call:hover { border-color: var(--pm-blue); color: var(--pm-blue-deep); }

/* ============================================================
   INTRO
   ============================================================ */
.pm-intro {
    max-width: 860px;
    margin: 0 auto;
    padding: 22px 24px 0;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}
.pm-intro .pm-kicker {
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pm-gold);
    font-weight: 700;
    display: block;
    margin-bottom: 10px;
}
.pm-intro h1 {
    font-family: var(--pm-serif);
    font-weight: 500;
    font-size: clamp(1.9rem, 4.4vw, 2.6rem);
    line-height: 1.15;
    margin: 0 0 10px;
    color: var(--pm-ink);
    letter-spacing: -0.015em;
}
.pm-intro h1 .pm-gold-word { color: var(--pm-blue); font-style: italic; white-space: nowrap; }
.pm-intro .pm-sub {
    font-size: 1.05rem;
    color: var(--pm-slate);
    margin: 0 auto;
    max-width: 48ch;
}

/* ============================================================
   TRUSTLINE (eine schlichte Zeile)
   ============================================================ */
.pm-trustline {
    max-width: 860px;
    margin: 0 auto;
    padding: 18px 24px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
}
.pm-tl-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: normal;
    font-size: 0.88rem;
    color: var(--pm-ink-soft);
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 999px;
    padding: 7px 14px;
    max-width: 220px;
    line-height: 1.2;
    text-align: center;
}
.pm-tl-item i { color: var(--pm-blue); font-style: normal; font-weight: 800; }
.pm-tl-rating {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: normal;
    font-size: 0.9rem;
    color: var(--pm-ink);
    background: var(--pm-blue-soft);
    border: 1px solid var(--pm-line);
    border-radius: 999px;
    padding: 7px 14px;
    font-weight: 700;
    max-width: 100%;
    line-height: 1.2;
    text-align: center;
}
.pm-tl-rating .pm-tl-stars { color: var(--pm-gold); letter-spacing: 0.1em; font-size: 0.85rem; }
.pm-tl-rating .pm-tl-score { color: var(--pm-ink); font-weight: 700; }

/* ============================================================
   DAS FORMULAR — die ganze Seite
   ============================================================ */
.pm-widget-zone {
    max-width: 860px;
    margin: 0 auto;
    padding: 22px 24px 0;
    width: 100%;
    box-sizing: border-box;
}

.fw-form {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    scroll-margin-top: 12px;
}

/* Kopf des Formulars: Fortschritt + Auswahl */
.fw-head {
    background: var(--pm-blue-soft);
    border: 1px solid var(--pm-line);
    border-bottom: none;
    border-radius: 14px 14px 0 0;
    padding: 14px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.fw-progress { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 0.95rem; color: var(--pm-ink); }
.fw-step-dots { display: inline-flex; gap: 6px; }
.fw-step-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--pm-line); display: block; transition: background 0.2s; }
.fw-step-dots i.on { background: var(--pm-blue); }
.fw-summary { font-size: 0.95rem; color: var(--pm-slate); }
.fw-summary strong { color: var(--pm-ink); }
.fw-summary .fw-s-price { color: var(--pm-blue); font-weight: 800; }

/* Körper des Formulars */
.fw-body { padding: 24px 22px 8px; background-color: floralwhite; }
.fw-body .step h3 {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--pm-ink);
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
}
.fw-num {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--pm-blue);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    font-weight: 800;
    flex-shrink: 0;
}
.fw-body .helper-text { font-size: 1rem; color: var(--pm-slate); margin: 0 0 18px; }
.fw-body .welcome-line { font-size: 1.05rem; font-weight: 700; color: var(--pm-ink); margin: 0 0 6px; }
.fw-body .choice-note { font-size: 0.95rem; color: var(--pm-slate); margin: 14px 0 0; }
.fw-body label { font-size: 1rem; font-weight: 700; color: var(--pm-ink); margin-bottom: 6px; display: block; }

/* Service-Auswahl */
.fw-body .service-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.fw-body .service-card {
    display: flex;
    align-items: center;
    gap: 14px;
    border: 1px solid var(--pm-line);
    border-radius: 16px;
    padding: 10px 14px 10px 10px;
    background: var(--pm-white);
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(29,35,43,0.04);
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s, transform 0.15s;
    user-select: none;
    box-sizing: border-box;
    min-width: 0;
}
.fw-body .service-card:hover { border-color: var(--pm-blue); box-shadow: 0 6px 18px rgba(92,107,82,0.14); transform: translateY(-1px); }
.fw-body .service-card:focus-visible { outline: 3px solid rgba(92,107,82,0.38); outline-offset: 2px; }
.fw-body .service-card.selected { border-color: var(--pm-blue); background: var(--pm-blue-soft); box-shadow: 0 0 0 3px rgba(92,107,82,0.14); }
.fw-body .service-card .service-img {
    width: 84px;
    height: 84px;
    object-fit: cover;
    border-radius: 12px;
    flex-shrink: 0;
    display: block;
}
.fw-body .service-card .service-art {
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 12px;
}
.fw-body .service-card .service-art svg { width: 100%; height: 100%; display: block; }
.fw-body .service-card .service-initial {
    width: 84px;
    height: 84px;
    border-radius: 12px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pm-blue-soft);
    color: var(--pm-blue-deep);
    font-family: var(--pm-serif);
    font-weight: 600;
    font-size: 2.2rem;
}
.fw-body .service-card .service-info { flex: 1; min-width: 0; overflow-wrap: break-word; }
.fw-body .service-card .name { font-size: 1.08rem; font-weight: 700; color: var(--pm-ink); }
.fw-body .service-card .desc { font-size: 0.88rem; color: var(--pm-slate); margin-top: 2px; line-height: 1.35; hyphens: auto; -webkit-hyphens: auto; }
.fw-body .service-card .meta { font-size: 0.85rem; color: var(--pm-slate); margin-top: 3px; }
.fw-body .service-card .price { font-size: 1.15rem; font-weight: 800; color: var(--pm-blue); white-space: nowrap; align-self: flex-start; margin-top: 6px; }
.fw-body .service-card.selected .price { color: var(--pm-blue-deep); }

/* Abo-Hinweis im Formular */
.fw-abo-hint {
    background: var(--pm-paper-2);
    border-radius: 12px;
    padding: 14px 18px;
    font-size: 0.98rem;
    color: var(--pm-slate);
    margin: 0 0 18px;
    line-height: 1.55;
}
.fw-abo-hint strong { color: var(--pm-ink); }
.fw-abo-hint a { font-weight: 800; white-space: nowrap; }

/* Buttons */
.fw-body .btn-primary {
    background: var(--pm-blue);
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 800;
    font-size: 1.1rem;
    padding: 17px 26px;
    width: 100%;
    display: block;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
}
.fw-body .btn-primary:hover { background: var(--pm-blue-deep); }
.fw-body .btn-primary:disabled { background: #b9c3cd; cursor: not-allowed; }
.fw-body .btn-secondary {
    border: 1px solid var(--pm-line);
    border-radius: 12px;
    background: var(--pm-white);
    color: var(--pm-ink);
    font-weight: 700;
    font-size: 1rem;
    padding: 14px 24px;
    width: 100%;
    display: block;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
}
.fw-body .btn-secondary:hover { border-color: var(--pm-blue); color: var(--pm-blue-deep); }
.fw-body .big-btn { padding: 17px 24px; font-size: 1.05rem; }

/* Kalender */
.fw-body .calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.fw-body .calendar-header button {
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 10px;
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
    cursor: pointer;
    color: var(--pm-ink);
}
.fw-body .calendar-header button:hover { border-color: var(--pm-blue); color: var(--pm-blue-deep); }
.fw-body #month-label { font-size: 1.05rem; font-weight: 800; color: var(--pm-ink); }
.fw-body .cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-weight: 700; font-size: 0.85rem; color: var(--pm-slate); margin-bottom: 6px; }
.fw-body .cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.fw-body .cal-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 1rem;
    cursor: pointer;
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    font-weight: 600;
}
.fw-body .cal-day:hover:not(.disabled) { border-color: var(--pm-blue); background: var(--pm-blue-soft); }
.fw-body .cal-day.disabled { color: #c3c9d0; background: var(--pm-paper-2); border-color: transparent; cursor: default; }
.fw-body .cal-day.selected { background: var(--pm-blue); color: #fff; border-color: var(--pm-blue); }
.fw-body .time-slots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 14px 0 0; }
.fw-body .time-slot {
    border: 1px solid var(--pm-line);
    border-radius: 10px;
    background: var(--pm-white);
    padding: 12px 14px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    color: var(--pm-ink);
}
.fw-body .time-slot:hover { border-color: var(--pm-blue); }
.fw-body .time-slot.selected { border-color: var(--pm-blue); background: var(--pm-blue-soft); color: var(--pm-blue-deep); }

/* Formularfelder */
.fw-body .input-field {
    width: 100%;
    padding: 15px 16px;
    border: 1px solid var(--pm-line);
    border-radius: 12px;
    font-size: 1.05rem;
    background: var(--pm-white);
    color: var(--pm-ink);
    box-sizing: border-box;
    font-family: var(--pm-sans);
}
.fw-body .input-field:focus { outline: none; border-color: var(--pm-blue); box-shadow: 0 0 0 3px rgba(92,107,82,0.14); }
.fw-body .form-group { margin-bottom: 16px; }
.fw-body .form-error { color: var(--danger); font-size: 0.95rem; margin: 10px 0 0; }

/* Erfolg */
.fw-body .success-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--pm-blue);
    color: #fff;
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
}
.fw-body .text-center { text-align: center; }
.fw-body .text-muted { color: var(--pm-slate); font-size: 0.98rem; }

/* ============================================================
   ZAHLEN (echte Daten)
   ============================================================ */
.pm-numbers {
    max-width: 860px;
    margin: 0 auto;
    padding: 26px 24px 0;
    width: 100%;
    box-sizing: border-box;
}
.pm-numbers-inner {
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 16px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    padding: 24px 20px;
    text-align: center;
}
.pm-numbers-inner .pm-num { font-family: var(--pm-serif); font-size: 2.1rem; font-weight: 600; color: var(--pm-ink); line-height: 1.1; }
.pm-numbers-inner .pm-num-label { font-size: 0.92rem; color: var(--pm-slate); margin-top: 4px; }

/* ============================================================
   BEWERTUNGEN
   ============================================================ */
.pm-section { max-width: 860px; margin: 0 auto; padding: 26px 24px 0; width: 100%; box-sizing: border-box; }
.pm-section-head { margin-bottom: 16px; text-align: center; }
.pm-section-head .pm-kicker {
    display: block;
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pm-gold);
    font-weight: 700;
    margin-bottom: 8px;
}
.pm-section-head h2 {
    font-family: var(--pm-serif);
    font-weight: 500;
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0;
    color: var(--pm-ink);
    letter-spacing: -0.01em;
}
.pm-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pm-review {
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 16px;
    padding: 24px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pm-rv-stars { color: var(--pm-gold); letter-spacing: 0.12em; font-size: 0.9rem; }
.pm-rv-text { font-size: 1rem; line-height: 1.6; color: var(--pm-ink); margin: 0; flex: 1; }
.pm-rv-meta { font-size: 0.88rem; color: var(--pm-slate); }
.pm-rv-name { font-weight: 800; color: var(--pm-ink); }

/* ============================================================
   KONTAKT
   ============================================================ */
.pm-contact {
    max-width: 860px;
    margin: 0 auto;
    padding: 30px 24px 0;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}
.pm-contact h2 { font-family: var(--pm-serif); font-weight: 500; font-size: clamp(1.4rem, 3vw, 1.9rem); margin: 0 0 14px; }
.pm-contact a.pm-contact-phone {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    background: var(--pm-blue);
    color: #fff;
    font-size: clamp(1.15rem, 2.6vw, 1.4rem);
    font-weight: 800;
    text-decoration: none;
    border-radius: 14px;
    padding: 15px 30px;
}
.pm-contact a.pm-contact-phone svg { color: #bcd6f0; }
.pm-contact a.pm-contact-phone:hover { background: var(--pm-blue-deep); }
.pm-contact .pm-contact-mail { display: block; margin-top: 12px; color: var(--pm-slate); font-size: 0.95rem; }
.pm-contact .pm-contact-mail a { font-weight: 700; }
.pm-contact .pm-contact-sign { margin-top: 14px; font-size: 0.88rem; color: var(--pm-slate); }

/* ============================================================
   FOOTER
   ============================================================ */
.pm-footer {
    margin-top: 44px;
    background: var(--pm-ink);
    color: #dfe5ec;
    padding: 32px 24px 28px;
    text-align: center;
    font-size: 0.92rem;
    border-top: 3px solid var(--pm-gold);
}
.pm-footer .pm-footer-links { margin-bottom: 10px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; }
.pm-footer a { color: #eef1f4; text-decoration: none; }
.pm-footer a:hover { color: var(--pm-gold); text-decoration: underline; }
.pm-footer .pm-footer-note { color: #9aa4ad; font-size: 0.82rem; margin-top: 10px; }

/* ============================================================
   LOGIN & RECHTLICHES
   ============================================================ */
.pm-login-body { background: var(--pm-paper); min-height: 100vh; margin: 0; }
.pm-login-body a { color: var(--pm-blue); }
.pm-login-card {
    max-width: 460px;
    margin: 8vh auto;
    background: var(--pm-white);
    border: 1px solid var(--pm-line);
    border-radius: 20px;
    padding: 40px 38px;
    box-shadow: var(--pm-shadow);
}
.pm-login-card .pm-login-logo, .pm-login-card .login-logo-wrap { text-align: center; margin-bottom: 24px; }
.pm-login-card .pm-login-logo img, .pm-login-card .login-logo-wrap img { max-height: 52px; max-width: 100%; height: auto; width: auto; }
.pm-login-card h1 { font-family: var(--pm-serif); font-weight: 600; font-size: 1.6rem; text-align: center; color: var(--pm-ink); margin: 0 0 6px; }
.pm-login-card .pm-login-sub { text-align: center; color: var(--pm-slate); font-size: 1rem; margin: 0 0 24px; }
.pm-login-card .form-group { margin-bottom: 16px; }
.pm-login-card .form-group label { font-size: 0.95rem; font-weight: 700; color: var(--pm-ink); margin-bottom: 6px; display: block; }
.pm-login-card .input-field {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--pm-line);
    border-radius: 12px;
    font-size: 1.05rem;
    background: #fff;
    color: var(--pm-ink);
    box-sizing: border-box;
    font-family: var(--pm-sans);
}
.pm-login-card .input-field:focus { outline: none; border-color: var(--pm-blue); box-shadow: 0 0 0 3px rgba(92,107,82,0.14); }
.pm-login-card .btn-primary {
    background: var(--pm-blue);
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 15px 26px;
    font-weight: 800;
    font-size: 1.05rem;
    cursor: pointer;
    width: 100%;
    display: block;
    text-align: center;
    text-decoration: none;
}
.pm-login-card .btn-primary:hover { background: var(--pm-blue-deep); }
.pm-login-card .form-error { color: var(--danger); font-size: 0.95rem; margin: 10px 0 0; }
.pm-login-card .pm-login-note { text-align: center; font-size: 0.95rem; color: var(--pm-slate); margin-top: 20px; }
.pm-login-card .pm-login-note a { color: var(--pm-blue); font-weight: 700; }
.pm-login-card .pm-login-backlink { display: block; text-align: center; margin-top: 28px; color: var(--pm-blue); font-weight: 600; text-decoration: none; }
.pm-login-card .pm-login-backlink:hover { text-decoration: underline; }

.pm-legal-page { background: var(--pm-paper); min-height: 100vh; margin: 0; display: flex; flex-direction: column; }
.pm-legal-page .legal-box {
    max-width: 760px;
    margin: 0 auto;
    padding: 48px 28px 24px;
    width: 100%;
    box-sizing: border-box;
    flex: 1;
}
.pm-legal-page .legal-box h1 { font-family: var(--pm-serif); color: var(--pm-ink); font-weight: 600; font-size: 2rem; margin-top: 0; hyphens: auto; overflow-wrap: anywhere; }
.pm-legal-page .legal-box h2 { font-family: var(--pm-serif); color: var(--pm-blue-deep); font-weight: 600; margin-top: 28px; }
.pm-legal-page .legal-box h3 { color: var(--pm-ink); font-weight: 800; font-size: 1.05rem; margin-top: 22px; }
.pm-legal-page .legal-box .highlight { background: var(--pm-blue-soft); border-left: 3px solid var(--pm-gold); padding: 14px 18px; border-radius: 8px; }
.pm-legal-page .legal-box a { color: var(--pm-blue); }
.pm-legal-page .legal-box ul { padding-left: 20px; margin: 10px 0; }
.pm-legal-page .legal-box p { color: var(--pm-ink-soft); }

/* Legal: Kopf + Rahmen */
.pm-legal-page .header { background: var(--pm-white); border-bottom: 1px solid var(--pm-line); padding: 14px 24px; }
.pm-legal-page .container { max-width: 860px; margin: 0 auto; width: 100%; }
.pm-legal-page .header-content { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.pm-legal-page .logo { font-family: var(--pm-serif); font-weight: 600; font-size: 1.12rem; color: var(--pm-ink); text-decoration: none; }
.pm-legal-page .nav { display: flex; }
.pm-legal-page .btn-ghost {
    display: inline-block; padding: 8px 16px; border: 1px solid var(--pm-line);
    border-radius: 999px; color: var(--pm-ink); font-weight: 700; font-size: 0.9rem;
    text-decoration: none; background: var(--pm-white);
}
.pm-legal-page .btn-ghost:hover { border-color: var(--pm-blue); color: var(--pm-blue-deep); }
.pm-legal-page .legal-container { flex: 1; }
.pm-legal-page .pm-footer { margin-top: 0; }
.pm-legal-page .footer {
    background: var(--pm-ink);
    color: #dfe5ec;
    padding: 30px 0;
    margin-top: 0;
    text-align: center;
    border-top: 3px solid var(--pm-gold);
    font-size: 0.92rem;
}
.pm-legal-page .footer a { color: #eef1f4; text-decoration: none; margin: 0 10px; }
.pm-legal-page .footer a:hover { color: var(--pm-gold); }
.pm-legal-page .footer p { margin: 0 0 8px; }

/* ============================================================
   BEWERBUNG
   ============================================================ */
.pm-apply-roles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 4px; }
.pm-apply-role {
    display: block;
    border: 2px solid var(--pm-line);
    border-radius: 12px;
    padding: 14px;
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease;
}
.pm-apply-role input { position: absolute; opacity: 0; pointer-events: none; }
.pm-apply-role .pm-apply-role-title { display: block; font-weight: 800; font-size: 1.05rem; color: var(--pm-ink); }
.pm-apply-role .pm-apply-role-sub { display: block; font-size: 0.85rem; color: var(--pm-slate); margin-top: 2px; }
.pm-apply-role.selected { border-color: var(--pm-blue); background: var(--pm-blue-soft); }
.pm-apply-role.selected .pm-apply-role-title { color: var(--pm-blue-deep); }
.pm-apply-note {
    font-size: 0.92rem; color: var(--pm-slate); text-align: center; margin: 18px 0 0;
    background: var(--pm-blue-soft); border-radius: 10px; padding: 12px;
}
.pm-status { border-radius: 12px; padding: 20px; text-align: center; margin-bottom: 14px; }
.pm-status .pm-status-label { font-size: 1.3rem; font-weight: 800; margin-bottom: 4px; }
.pm-status .pm-status-role { margin-bottom: 8px; color: var(--pm-slate); }
.pm-status p { margin: 8px 0 0; }
.pm-status.pending { background: #fffbeb; border: 1px solid #f59e0b; color: #7c5e10; }
.pm-status.pending .pm-status-label { color: #b45309; }
.pm-status.approved { background: #f0fdf4; border: 1px solid #22c55e; color: #166534; }
.pm-status.approved .pm-status-label { color: #15803d; }
.pm-status.rejected { background: #fef2f2; border: 1px solid #f87171; color: #991b1b; }
.pm-status.rejected .pm-status-label { color: #b91c1c; }

/* ============================================================
   GALERIE
   ============================================================ */
.pm-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 20px;
}
.pm-gallery svg {
    width: 100%;
    height: auto;
    border-radius: 16px;
    display: block;
    box-shadow: 0 6px 18px rgba(42,37,30,0.08);
    border: 1px solid var(--pm-line);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pm-gallery svg:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 26px rgba(42,37,30,0.12);
}

/* ============================================================
   TEAM
   ============================================================ */
.pm-team {
    display: flex;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 20px;
}
.pm-team svg {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: block;
    border: 4px solid var(--pm-white);
    box-shadow: 0 4px 12px rgba(42,37,30,0.08);
}
.pm-team-cta { text-align: center; margin-top: 24px; }
.pm-team-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pm-white);
    color: var(--pm-blue-deep);
    border: 1px solid var(--pm-blue);
    border-radius: 999px;
    padding: 13px 28px;
    font-weight: 800;
    font-size: 1rem;
    text-decoration: none;
}
.pm-team-cta-btn:hover { background: var(--pm-blue-soft); border-color: var(--pm-blue-deep); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 640px) {
    .pm-top, .pm-intro, .pm-trustline, .pm-widget-zone, .pm-numbers, .pm-section, .pm-contact, .pm-gallery { padding-left: 16px; padding-right: 16px; }
    .pm-top-nav { flex-wrap: wrap; }
    .pm-top-nav > a:not(.pm-top-call) { padding: 8px 13px; font-size: 0.92rem; }
    .pm-top .pm-top-call { padding: 8px 14px; font-size: 0.92rem; }
    .pm-login-card { margin-left: 16px; margin-right: 16px; padding: 28px 22px; box-sizing: border-box; }
    .fw-body { padding: 22px 20px 26px; }
    .fw-body .service-list { grid-template-columns: minmax(0, 1fr); }
    .fw-body .service-card .service-img, .fw-body .service-card .service-initial, .fw-body .service-card .service-art { width: 64px; height: 64px; }
    .fw-body .time-slots { grid-template-columns: 1fr; }
    .fw-head { padding: 12px 18px; }
    .pm-numbers-inner { grid-template-columns: repeat(2, 1fr); }
    .pm-reviews { grid-template-columns: 1fr; }
    .pm-gallery { grid-template-columns: 1fr 1fr; gap: 12px; }
    .pm-team { justify-content: center; }
    .pm-team svg { width: 80px; height: 80px; }
    .pm-legal-page .legal-box h1 { font-size: 1.55rem; }
}
@media (max-width: 420px) {
    .fw-summary { width: 100%; }
}