/* VV Event-Anmeldungen — Frontend-Formular */

.vv-ea-form,
.vv-ea-success,
.vv-ea-error,
.vv-ea-info {
    --vv-ea-color: #047857;
    --vv-ea-color-hover: #036648;
    --vv-ea-color-text: #ffffff;
}

.vv-ea-form { max-width: 760px; margin: 1.5em auto; font-family: inherit; }
.vv-ea-form fieldset { border: 1px solid #ddd; padding: 1em 1.25em; margin-bottom: 1em; border-radius: 6px; }
.vv-ea-form legend { font-weight: 600; padding: 0 .4em; }
.vv-ea-form label { display: block; margin: .4em 0; }
.vv-ea-form input[type="text"],
.vv-ea-form input[type="email"],
.vv-ea-form input[type="tel"],
.vv-ea-form input[type="number"],
.vv-ea-form input[type="date"],
.vv-ea-form select,
.vv-ea-form textarea {
    width: 100%; padding: .5em .6em; border: 1px solid #bbb; border-radius: 4px;
    font: inherit; box-sizing: border-box; background: #fff;
}
.vv-ea-form textarea { resize: vertical; }
.vv-ea-form input:focus, .vv-ea-form select:focus, .vv-ea-form textarea:focus {
    outline: none; border-color: var(--vv-ea-color); box-shadow: 0 0 0 2px rgba(4,120,87,0.15);
}

.vv-ea-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5em 1em; }
.vv-ea-grid .vv-ea-full { grid-column: 1 / -1; }
@media (max-width: 600px) {
    .vv-ea-grid { grid-template-columns: 1fr; }
}

.vv-ea-optional { color: #888; font-weight: normal; font-size: .9em; }
.vv-ea-required-label { display: block; padding: .3em 0; }

.vv-ea-inline { display: block; }
.vv-ea-inline label { display: inline-block; margin-right: 1em; }

.vv-ea-table { width: 100%; border-collapse: collapse; }
.vv-ea-table th, .vv-ea-table td { padding: .4em .6em; text-align: left; border-bottom: 1px solid #eee; }
.vv-ea-table input[type="number"] { width: 5em; }
.vv-ea-table tfoot th { text-align: right; }

.vv-ea-steps ol {
    list-style: none; padding: 0; margin: 0 0 1em;
    display: flex; flex-wrap: wrap; gap: .5em;
}
.vv-ea-steps li {
    flex: 1; min-width: 140px;
    padding: .5em .7em; background: #f3f4f6; border-radius: 4px;
    font-size: .9em; color: #666;
}
.vv-ea-steps li.active {
    background: var(--vv-ea-color);
    color: var(--vv-ea-color-text);
    font-weight: 600;
}

.vv-ea-nav { display: flex; gap: .5em; justify-content: space-between; margin-top: 1em; }

/* Eigene Button-Klasse — höher spezifisch als Theme-.button */
.vv-ea-form .vv-ea-button,
a.vv-ea-button {
    display: inline-block;
    padding: .65em 1.25em;
    border: 0;
    border-radius: 4px;
    background: var(--vv-ea-color);
    color: var(--vv-ea-color-text) !important;
    font: inherit;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .15s;
    line-height: 1.2;
}
.vv-ea-form .vv-ea-button:hover,
a.vv-ea-button:hover,
.vv-ea-form .vv-ea-button:focus,
a.vv-ea-button:focus {
    background: var(--vv-ea-color-hover);
    color: var(--vv-ea-color-text) !important;
    text-decoration: none !important;
}
.vv-ea-form .vv-ea-button-secondary {
    background: #f3f4f6;
    color: #333 !important;
    border: 1px solid #ccc;
}
.vv-ea-form .vv-ea-button-secondary:hover,
.vv-ea-form .vv-ea-button-secondary:focus {
    background: #e5e7eb;
    color: #111 !important;
}

.vv-ea-signature-wrap {
    background: #fafafa; padding: .5em; border: 1px dashed #aaa; border-radius: 4px;
    max-width: 600px;
}
.vv-ea-signature {
    display: block; background: #fff; border: 1px solid #ccc;
    width: 100%; max-width: 600px; height: 180px;
    touch-action: none;
}

.vv-ea-summary-body { background: #fafafa; padding: .8em; border-radius: 4px; font-size: .92em; }
.vv-ea-summary-body dl { margin: 0; display: grid; grid-template-columns: 200px 1fr; gap: .15em .8em; }
.vv-ea-summary-body dt { font-weight: 600; color: #444; }

.vv-ea-success, .vv-ea-error, .vv-ea-info {
    padding: 1em 1.25em; border-radius: 6px; margin: 1em 0;
}
.vv-ea-success { background: #d1fae5; border: 1px solid var(--vv-ea-color); }
.vv-ea-success h3 { margin-top: 0; color: var(--vv-ea-color); }
.vv-ea-error { background: #fee2e2; border: 1px solid #b91c1c; }
.vv-ea-info { background: #dbeafe; border: 1px solid #1e40af; }

.vv-ea-header { margin-bottom: 1em; }
.vv-ea-header h2 { margin: 0 0 .3em; color: var(--vv-ea-color); }

.vv-ea-zahlungsart-option {
    display: block; padding: .8em 1em; margin: .4em 0;
    border: 2px solid #e5e7eb; border-radius: 6px;
    cursor: pointer; transition: border-color .15s, background-color .15s;
}
.vv-ea-zahlungsart-option:hover { border-color: var(--vv-ea-color); background: #f9fafb; }
.vv-ea-zahlungsart-option input[type="radio"] { margin-right: .5em; }
.vv-ea-zahlungsart-option .description { display: block; margin-top: .3em; color: #666; font-size: .9em; }
.vv-ea-zahlungsart-option input[type="radio"]:checked ~ strong { color: var(--vv-ea-color); }

.vv-ea-konzession-hinweis,
.vv-ea-strom-hinweis,
.vv-ea-notice-info {
    background: #fff8dc; border-left: 4px solid var(--vv-ea-color);
    padding: .7em 1em; margin: .8em 0; border-radius: 3px;
    font-size: .95em;
}
.vv-ea-konzession-hinweis p,
.vv-ea-strom-hinweis p { margin: 0; }
p.vv-ea-notice-info { padding-left: 1em; }

.vv-ea-alkohol-label, .vv-ea-jugend-label {
    display: block;
    padding: .8em 1em;
    margin: .6em 0;
    border: 2px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
}
.vv-ea-alkohol-label:hover, .vv-ea-jugend-label:hover {
    border-color: var(--vv-ea-color); background: #f9fafb;
}
.vv-ea-alkohol-label input[type="checkbox"],
.vv-ea-jugend-label input[type="checkbox"] {
    margin-right: .5em;
}
.vv-ea-alkohol-label .description,
.vv-ea-jugend-label .description {
    display: block; margin-top: .35em; color: #666; font-size: .9em; line-height: 1.4;
}

.vv-ea-live-kosten .vv-ea-live-table {
    width: 100%; border-collapse: collapse; margin-bottom: .5em;
}
.vv-ea-live-kosten .vv-ea-live-table td,
.vv-ea-live-kosten .vv-ea-live-table th {
    padding: .35em .5em; border-bottom: 1px solid #eee; text-align: left;
}
.vv-ea-live-kosten .vv-ea-live-table td.num,
.vv-ea-live-kosten .vv-ea-live-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.vv-ea-live-kosten .vv-ea-live-table tr.sum th {
    border-top: 2px double #444; border-bottom: none;
    background: #f9f9f9; font-size: 1.05em;
    color: var(--vv-ea-color);
}
.vv-ea-live-strom {
    background: #f5f5f5; padding: .5em .8em; border-radius: 4px;
    margin-top: .5em; font-size: .95em;
}

.vv-ea-datenschutz {
    background: #fafafa; padding: .8em 1em; border-radius: 4px; margin-bottom: 1em;
    border: 1px solid #e5e7eb;
}
.vv-ea-datenschutz summary { cursor: pointer; padding: .2em 0; }
.vv-ea-datenschutz-body { margin-top: .8em; font-size: .92em; line-height: 1.5; color: #333; }
.vv-ea-datenschutz-body p { margin: 0 0 .8em; }
