/* ============================================================
   vCard – Standalone-Kontaktseite
   ============================================================ */

/* ── Booton-Schrift (aus dem Hywin-Theme) ─────────────────── */
@font-face {
    font-family: "Booton";
    src: url("../../webfonts/Booton-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Booton";
    src: url("../../webfonts/Booton-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* ── Font-Size-Variablen (gespiegelt aus _variables.css) ──── */
:root {
    --font-size-body-xl: clamp(1rem, 1.5vw, 1.375rem);
    --font-size-body-md: clamp(0.875rem, 1vw, 1rem);
    --font-size-body-sm: 0.875rem;
}

/* ── Reset / Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body.vc-page {
    font-family: "Booton", serif;
    background: #121217;
    color: #1B1B20;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

/* ── Card-Wrapper ─────────────────────────────────────────── */
.vc-wrap {
    /* Hintergrundfarbe = Header-Farbe, damit an den abgerundeten Ecken
       kein weißer Anti-Aliasing-Saum entsteht. Weiß wird nur noch
       explizit auf .vc-body und .vc-buttons gesetzt. */
    background: #1b1b20;
    border-radius: 1.25rem;
    width: 100%;
    max-width: 570px;
    overflow: hidden;
    box-shadow: 0 12px 60px rgba(0, 0, 0, .5);
}

/* ── Header ───────────────────────────────────────────────── */
.vc-header {
    background: #1b1b20;
    padding: 2.5rem 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    text-align: center;
}

.vc-avatar {
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.vc-avatar--placeholder {
    background: #2d2d35;
    display: flex;
    align-items: center;
    justify-content: center;
}
.vc-avatar--placeholder svg {
    width: 3rem;
    height: 3rem;
    fill: #55555f;
}

.vc-name {
    font-size: var(--font-size-body-xl);
    font-weight: 500;
    color: #ffffff;
    line-height: 1.2;
}

.vc-job {
    font-size: var(--font-size-body-md);
    color: rgba(255, 255, 255, .6);
    font-weight: 400;
}

/* ── Quick-Action-Bar ─────────────────────────────────────── */
.vc-actions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #1b1b20;
    border-top: 1px solid #E2E1E9;
}

.vc-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    text-decoration: none;
    color: rgba(255, 255, 255, .75);
    font-size: var(--font-size-body-sm);
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    background: none;
    border: none;
    padding: 1rem .5rem 1.1rem;
    transition: background .2s, color .2s;
    position: relative;
    font-family: "Booton", serif;
}

.vc-action + .vc-action::before {
    content: '';
    position: absolute;
    left: 0;
    top: 20%;
    height: 60%;
    width: 1px;
    background: #E2E1E9;
}

.vc-action:hover {
    background: rgba(255, 255, 255, .05);
    color: #ffffff;
}

.vc-action__icon {
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.vc-action__icon svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: currentColor;
}

/* ── Body / Kontaktzeilen ─────────────────────────────────── */
.vc-body {
    background: #ffffff;
    padding: 0 1.5rem;
    display: flex;
    flex-direction: column;
}

.vc-row {
    display: flex;
    align-items: center;   /* Icons standardmäßig vertikal zentriert */
    gap: 1rem;
    padding: .875rem 0;
    border-bottom: 1px solid #f0f0f2;
}
.vc-row:last-child { border-bottom: none; }

/* Adresszeile: Icon oben ausrichten (mehrere Textzeilen + Map-Link)
   Funktioniert auch ohne die PHP-Klasse vc-row--address via :has() */
.vc-row--address,
.vc-row:has(.vc-map-link) {
    align-items: flex-start;
}
.vc-row--address .vc-row__icon,
.vc-row:has(.vc-map-link) .vc-row__icon {
    padding-top: .15rem;   /* optische Ausrichtung zur ersten Textzeile */
}

.vc-row__icon {
    width: 1.375rem;       /* 22px */
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #929199;
}
.vc-row__icon svg {
    width: 1.375rem;       /* 22px */
    height: 1.375rem;
    fill: currentColor;
    stroke: currentColor; /* für outline-style SVGs (z. B. Globus) */
}

/* Outline-SVGs sollen fill=none behalten */
.vc-row__icon svg[fill="none"] {
    fill: none;
}

.vc-row__content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

/* Einzel-Eintrag innerhalb einer Gruppe */
.vc-row__entry {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    padding: .15rem 0;
}
.vc-row__entry + .vc-row__entry {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px solid #f0f0f2;
}

.vc-row__value {
    font-size: var(--font-size-body-md);
    color: #1B1B20;
    text-decoration: none;
    word-break: break-word;
    line-height: 1.3;
}
a.vc-row__value:hover { color: #EE7F00; }

.vc-row__label {
    font-size: var(--font-size-body-sm);
    color: #929199;
    letter-spacing: .01em;
    line-height: 1.3;
}

/* SHOW ON MAP */
.vc-map-link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;  /* verhindert Streckung auf volle Zeilenbreite */
    gap: .375rem;
    font-size: var(--font-size-body-md);
    font-weight: 600;
    color: #EE7F00;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin: 1.25rem 0 0.55rem -.625rem; /* neg. margin-left gleicht padding-left aus → Text bleibt bündig */
    background: none;
    border: none;
    border-radius: .5rem;
    padding: .5rem .875rem .5rem .625rem; /* links Padding für Hover-Hintergrund */
    cursor: pointer;
    text-decoration: none;
    font-family: "Booton", serif;
    transition: color .18s, background .18s;
}
.vc-map-link:hover {
    background: rgba(0, 0, 0, .08);
}
.vc-map-link svg {
    width: .875rem;
    height: .875rem;
    fill: currentColor;
}

/* ── Buttons ──────────────────────────────────────────────── */
.vc-buttons {
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1.25rem 1.5rem 1.75rem;
    border-top: 1px solid #f0f0f2;
}

.vc-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    padding: .9rem 1.25rem;
    border-radius: .75rem;
    font-size: var(--font-size-body-md);
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    cursor: pointer;
    font-family: "Booton", serif;
    transition: background .2s, color .2s, border-color .2s;
}
.vc-btn svg {
    width: 1.125rem;
    height: 1.125rem;
    fill: currentColor;
    flex-shrink: 0;
}

.vc-btn--primary {
    background: #EE7F00;
    color: #ffffff;
}
.vc-btn--primary:hover { background: #d47100; }

.vc-btn--secondary {
    background: transparent;
    color: #1B1B20;
    border: 1px solid #d8d8dc;
}
.vc-btn--secondary:hover {
    background: #f4f4f6;
    border-color: #b0b0b8;
}

/* ── Dialog / Modal ───────────────────────────────────────── */
.vc-dialog-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}
.vc-dialog-backdrop.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.vc-dialog {
    background: #ffffff;
    border-radius: 1rem;
    padding: 2rem 1.5rem 1.5rem;
    width: 100%;
    max-width: 22rem;
    text-align: center;
    box-shadow: 0 16px 60px rgba(0, 0, 0, .2);
    transform: translateY(12px);
    transition: transform .2s;
}
.vc-dialog-backdrop.is-visible .vc-dialog { transform: translateY(0); }

.vc-dialog__icon {
    width: 3.25rem;
    height: 3.25rem;
    background: #fff4e0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
}
.vc-dialog__icon svg {
    width: 1.625rem;
    height: 1.625rem;
    fill: #EE7F00;
}

.vc-dialog__title {
    font-size: 1.125rem;
    font-weight: 500;
    color: #1B1B20;
    margin-bottom: .5rem;
}
.vc-dialog__text {
    font-size: .9rem;
    color: #55555f;
    margin-bottom: 1.5rem;
    line-height: 1.5;
}
.vc-dialog__actions {
    display: flex;
    gap: .75rem;
}
.vc-dialog__actions .vc-btn { flex: 1; }

/* ── Toast ────────────────────────────────────────────────── */
.vc-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(1rem);
    background: #1B1B20;
    color: #ffffff;
    font-size: .875rem;
    font-weight: 500;
    padding: .625rem 1.25rem;
    border-radius: 2rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .2);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s, transform .25s;
    white-space: nowrap;
    z-index: 10000;
}

.vc-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

