/* Mobile first: alles einspaltig, ab 560px stehen die Personenfelder nebeneinander. */
.amsc-anm {
    --amsc-gold: #c9a24a;
    --amsc-gold-dark: #9c7a2e;
    --amsc-ink: #11151c;
    --amsc-line: rgba(0, 0, 0, .18);
    --amsc-err: #b3261e;
    box-sizing: border-box;
}
.amsc-anm *, .amsc-anm *::before, .amsc-anm *::after { box-sizing: inherit; }

.amsc-anm-card {
    background: #fff;
    color: var(--amsc-ink);
    border: 1px solid var(--amsc-line);
    border-top: 4px solid var(--amsc-gold);
    border-radius: 6px;
    padding: 20px 16px;
    margin: 0 0 16px;
}
.amsc-anm-title { margin: 0 0 12px; }

.amsc-anm-field { margin: 0 0 16px; }
.amsc-anm-field > label,
.amsc-anm-count > label { display: block; font-weight: 600; margin: 0 0 4px; }

.amsc-anm input[type="text"],
.amsc-anm input[type="email"],
.amsc-anm input[type="number"],
.amsc-anm textarea {
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    font-size: 16px; /* verhindert Zoom auf iOS */
    border: 1px solid var(--amsc-line);
    border-radius: 4px;
    background: #fff;
    color: var(--amsc-ink);
}
.amsc-anm input:focus { outline: 2px solid var(--amsc-gold); outline-offset: 1px; }
.amsc-anm input[aria-invalid="true"] { border-color: var(--amsc-err); }

.amsc-anm-req { color: var(--amsc-err); }
.amsc-anm-opt { font-weight: 400; opacity: .75; }
.amsc-anm-hint { display: block; font-size: .875em; opacity: .8; margin: 4px 0 0; }
.amsc-anm-error { display: block; color: var(--amsc-err); font-size: .875em; margin-top: 4px; }

.amsc-anm-persons {
    border: 1px solid var(--amsc-line);
    border-radius: 4px;
    padding: 12px 14px 4px;
    margin: 0 0 16px;
}
.amsc-anm-persons legend { font-weight: 600; padding: 0 4px; }
.amsc-anm-count { margin: 0 0 12px; }

.amsc-anm-sum {
    margin: 4px 0 12px;
    padding: 10px 12px;
    background: rgba(201, 162, 74, .14);
    border-radius: 4px;
}
.amsc-anm-sum span { display: block; }
.amsc-anm-sum [data-amsc-total] { font-weight: 600; }

.amsc-anm-check { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: start; }
.amsc-anm-check input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--amsc-gold-dark); }
.amsc-anm-check label { font-weight: 400; }
.amsc-anm-check .amsc-anm-error { grid-column: 2; }

.amsc-anm-btn {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 12px 20px;
    border: 0;
    border-radius: 4px;
    background: var(--amsc-gold);
    color: var(--amsc-ink);
    font-size: 1.05em;
    font-weight: 700;
    letter-spacing: .02em;
    cursor: pointer;
}
.amsc-anm-btn:hover, .amsc-anm-btn:focus { background: var(--amsc-gold-dark); color: #fff; }
.amsc-anm-btn--danger { background: var(--amsc-err); color: #fff; }
.amsc-anm-btn--danger:hover, .amsc-anm-btn--danger:focus { background: #8c1d18; }

.amsc-anm-notice {
    /* deckend, damit die Meldung auch auf Hintergrundbildern lesbar ist */
    background: #fff;
    color: var(--amsc-ink);
    border: 1px solid var(--amsc-line);
    border-top: 4px solid var(--amsc-gold);
    border-radius: 6px;
    padding: 16px;
    margin: 0 0 16px;
}
.amsc-anm-notice-title { display: block; font-size: 1.15em; line-height: 1.3; }
.amsc-anm-notice p { margin: 8px 0 0; }
.amsc-anm-notice--error { border-top-color: var(--amsc-err); }
.amsc-anm-notice--error .amsc-anm-notice-title { color: var(--amsc-err); }
/* innerhalb des Formulars als schmaler Hinweis */
.amsc-anm-card .amsc-anm-notice { border-top-width: 1px; border-left: 4px solid var(--amsc-err); border-radius: 4px; padding: 10px 12px; }
.amsc-anm-card .amsc-anm-notice-title { font-size: 1em; }
.amsc-anm-again { margin: 16px 0 0 !important; }
.amsc-anm-btn--ghost {
    background: transparent;
    border: 2px solid var(--amsc-gold);
    color: var(--amsc-ink) !important;
    text-decoration: none !important;
    text-align: center;
    min-height: 44px;
    padding: 9px 18px;
    font-size: 1em;
}
.amsc-anm-btn--ghost:hover, .amsc-anm-btn--ghost:focus { background: var(--amsc-gold); color: var(--amsc-ink) !important; }
/* Sprungziel: Platz für die feste Kopfleiste lassen */
#amsc-anmeldung { scroll-margin-top: 110px; }

.amsc-anm-buffet {
    background: var(--amsc-ink);
    color: #fff;
    border: 1px solid var(--amsc-gold);
    border-radius: 6px;
    padding: 16px;
    margin: 0 0 16px;
    text-align: center;
}
.amsc-anm-buffet-head { text-transform: uppercase; letter-spacing: .08em; font-weight: 700; margin-bottom: 6px; }
.amsc-anm-buffet-head strong { color: var(--amsc-gold); font-size: 1.25em; }
.amsc-anm-buffet p { margin: 0; font-style: italic; line-height: 1.6; }

/* Honigtopf für Bots: unsichtbar, aber nicht display:none */
.amsc-anm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (min-width: 560px) {
    .amsc-anm-card { padding: 24px; }
    .amsc-anm-persons { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
    .amsc-anm-persons > .amsc-anm-error,
    .amsc-anm-persons > .amsc-anm-sum,
    .amsc-anm-persons > .amsc-anm-payhint { grid-column: 1 / -1; }
    .amsc-anm-btn { display: inline-block; width: auto; }
}
.amsc-anm-payhint { margin: 0 0 12px; }

/* Hinweis auf die Bestätigung per E-Mail */
.amsc-anm-warn {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: #fbf3dc;
    border-left: 4px solid var(--amsc-gold);
    border-radius: 0 4px 4px 0;
    color: var(--amsc-ink);
    line-height: 1.5;
}
.amsc-anm-notice--confirm { border-top-width: 6px; }
.amsc-anm-notice--confirm .amsc-anm-notice-title { font-size: 1.3em; }
.amsc-anm-notice--confirm .amsc-anm-notice-title::before {
    content: "";
    display: block;
    width: 44px;
    height: 44px;
    margin-bottom: 10px;
    border-radius: 50%;
    background: var(--amsc-gold) no-repeat center / 24px 24px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2311151c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
.amsc-anm-steps { margin: 12px 0 12px 1.4em; padding: 0; line-height: 1.5; }
.amsc-anm-steps li { margin: 0 0 6px; }
.amsc-anm-notice .amsc-anm-warn { margin: 12px 0 0; }

.amsc-anm textarea { min-height: 88px; line-height: 1.4; resize: vertical; font-family: inherit; }
.amsc-anm-intro { margin: 0 0 16px; line-height: 1.5; }
.amsc-anm-resno {
    margin: 14px 0 0 !important;
    padding: 12px 14px;
    background: var(--amsc-ink);
    color: #fff;
    border-radius: 4px;
    text-align: center;
}
.amsc-anm-resno strong { display: block; margin-top: 4px; font-size: 1.6em; letter-spacing: .06em; color: var(--amsc-gold); }
