/* ==========================================================================
   ARGUS Landing Page - Event-Anmeldung
   Ergaenzt css/style.css und nutzt dessen Custom Properties
   ========================================================================== */

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.event-hero {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: calc(var(--spacing-4xl) + 60px) 0 var(--spacing-4xl);
}

.event-hero-content {
    max-width: 780px;
    color: var(--color-white);
    animation: fadeInUp 800ms ease-out;
}

.event-badge {
    display: inline-block;
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-accent);
    border: 1px solid rgba(201, 162, 39, 0.5);
    border-radius: var(--radius-full);
    padding: var(--spacing-sm) var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
}

.event-hero-title {
    font-size: clamp(1.9rem, 6vw, 4.5rem);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-white);

    /* "Unternehmerfrühstück" ist zu lang für schmale Viewports */
    overflow-wrap: break-word;
    hyphens: auto;
}

.event-hero-date {
    font-family: var(--font-primary);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--color-accent);
    margin-top: var(--spacing-md);
}

.event-hero-text {
    font-size: var(--text-lg);
    line-height: 1.8;
    opacity: 0.9;
    margin-top: var(--spacing-lg);
    max-width: 620px;
}

/* --------------------------------------------------------------------------
   Veranstalterleiste zwischen Hero und Eckdaten

   Die Logos liegen nur in Weiss vor, deshalb der dunkle Streifen.
   -------------------------------------------------------------------------- */
.event-partnerbar {
    background-color: var(--color-primary-dark);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--spacing-xl) 0;
}

.event-partnerbar .container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
}

@media (min-width: 768px) {
    .event-partnerbar .container {
        flex-direction: row;
        align-items: center;
        gap: var(--spacing-2xl);
    }
}

.event-partnerbar-label {
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--color-white);
    opacity: 0.6;
}

/* Auf schmalen Displays stehen die Logos untereinander - lieber gross und
   lesbar als nebeneinander gequetscht. */
.event-partnerbar-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-lg) var(--spacing-2xl);
}

/* Beide Logos liegen als SVG vor, bleiben also in jeder Groesse scharf.
   Die Sparkasse braucht mehr Hoehe, weil ihr Schriftzug zweizeilig ist -
   so wirken beide Marken optisch gleich schwer. */
.event-partner-logo {
    width: auto;
}

.event-partner-logo-dreieich {
    height: 44px;
}

.event-partner-logo-sparkasse {
    height: 74px;
}

/* --------------------------------------------------------------------------
   Eckdaten
   -------------------------------------------------------------------------- */
.event-facts {
    background-color: var(--color-off-white);
    padding: var(--spacing-3xl) 0;
}

.event-facts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
}

@media (min-width: 768px) {
    .event-facts-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.event-fact {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    text-align: center;
    box-shadow: var(--shadow-sm);
}

.event-fact h3 {
    font-size: var(--text-lg);
    color: var(--color-primary-dark);
    margin-bottom: var(--spacing-sm);
}

.event-fact p {
    color: var(--color-gray);
    line-height: 1.7;
}

.event-fact a {
    color: var(--color-primary);
    text-decoration: none;
}

.event-fact a:hover {
    color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   Einladungstext
   -------------------------------------------------------------------------- */
.event-intro {
    padding: var(--spacing-4xl) 0 0;
}

.event-intro .section-title {
    margin-bottom: var(--spacing-xl);
}

.event-intro p {
    font-size: var(--text-lg);
    color: var(--color-dark-gray);
    line-height: 1.9;
    margin-bottom: var(--spacing-lg);
}

.event-intro p.event-intro-closing {
    font-family: var(--font-primary);
    font-weight: 600;
    color: var(--color-primary-dark);
    border-left: 4px solid var(--color-accent);
    padding-left: var(--spacing-lg);
}

/* --------------------------------------------------------------------------
   Anmeldebereich
   -------------------------------------------------------------------------- */
.event-registration {
    padding: var(--spacing-3xl) 0 var(--spacing-4xl);

    /* Der Header liegt fix ueber dem Inhalt und wuerde die Sprungmarke
       nach dem Absenden sonst verdecken. */
    scroll-margin-top: 100px;
}

.container-narrow {
    max-width: 780px;
}

/* --------------------------------------------------------------------------
   Formular
   -------------------------------------------------------------------------- */
.event-form {
    margin-top: var(--spacing-2xl);
}

.form-block {
    border: none;
    border-top: 2px solid var(--color-light-gray);
    padding: var(--spacing-xl) 0 var(--spacing-lg);
}

.form-block > legend {
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-accent);
    padding-right: var(--spacing-md);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
}

@media (min-width: 600px) {
    .form-row {
        grid-template-columns: 1fr 1fr;
    }

    /* Die Anrede braucht weniger Platz als Vor- und Nachname, aber genug
       fuer den Pfeil des Auswahlfelds und die laengste Option. */
    .form-row-name {
        grid-template-columns: minmax(185px, 0.6fr) 1fr 1fr;
    }
}

.form-field {
    margin-bottom: var(--spacing-lg);
}

.form-row .form-field {
    margin-bottom: 0;
}

.form-row + .form-field,
.form-row + .form-row {
    margin-top: var(--spacing-lg);
}

.form-field label {
    display: block;
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-primary-dark);
    margin-bottom: var(--spacing-sm);
}

.form-optional {
    font-weight: 400;
    color: var(--color-gray);
}

.form-field input[type="text"],
.form-field input[type="tel"],
.form-field input[type="email"],
.form-field select,
.form-field textarea {
    width: 100%;
    font-family: var(--font-secondary);
    font-size: var(--text-base);
    color: var(--color-black);
    background-color: var(--color-white);
    border: 2px solid var(--color-light-gray);
    border-radius: var(--radius-sm);
    padding: var(--spacing-md);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-field textarea {
    resize: vertical;
    min-height: 110px;
}

.form-field select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    padding-right: var(--spacing-2xl);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a3a5c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--spacing-md) center;
    background-size: 18px 18px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.12);
}

.form-field input[aria-invalid="true"],
.form-field select[aria-invalid="true"],
.form-field textarea[aria-invalid="true"] {
    border-color: var(--color-error);
}

.form-error {
    font-size: var(--text-sm);
    color: var(--color-error);
    margin-top: var(--spacing-xs);
}

.form-hint {
    font-size: var(--text-sm);
    color: var(--color-gray);
    margin-top: var(--spacing-sm);
}

.form-required-hint {
    font-size: var(--text-sm);
    color: var(--color-gray);
    margin: var(--spacing-lg) 0;
}

/* ALTCHA-Prüfung: wird vom Widget selbst gerendert, hier nur eingepasst. */
.form-field-altcha {
    margin-top: var(--spacing-lg);
}

.form-field-altcha altcha-widget {
    display: block;
    max-width: 320px;

    --altcha-border-color: var(--color-light-gray);
    --altcha-border-radius: var(--radius-sm);
    --altcha-border-width: 2px;
    --altcha-color-base: var(--color-white);
    --altcha-color-base-content: var(--color-black);
    --altcha-color-primary: var(--color-primary);
    --altcha-color-error: var(--color-error);
}

/* Begleitpersonen */
.guest-blocks {
    margin-top: var(--spacing-lg);
}

.guest-block {
    border: 2px solid var(--color-light-gray);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    animation: fadeInUp 300ms ease-out;
}

.guest-block[hidden] {
    display: none;
}

.guest-block > legend {
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-primary);
    padding: 0 var(--spacing-sm);
}

.guest-block .form-field:last-child {
    margin-bottom: 0;
}

/* Einwilligung */
.form-field-consent {
    background-color: var(--color-off-white);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
}

.form-checkbox {
    display: flex;
    gap: var(--spacing-md);
    align-items: flex-start;
    font-family: var(--font-secondary);
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--color-dark-gray);
    line-height: 1.7;
    cursor: pointer;
    margin-bottom: 0;
}

.form-checkbox input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.form-checkbox a {
    color: var(--color-primary);
    text-decoration: underline;
}

.form-submit {
    width: 100%;
}

@media (min-width: 600px) {
    .form-submit {
        width: auto;
    }
}

/* Honeypot: fuer Menschen und Screenreader unsichtbar, im DOM vorhanden */
.form-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* --------------------------------------------------------------------------
   Rueckmeldungen
   -------------------------------------------------------------------------- */
.form-alert {
    background-color: rgba(220, 53, 69, 0.08);
    border-left: 4px solid var(--color-error);
    border-radius: var(--radius-sm);
    padding: var(--spacing-lg);
    color: var(--color-error);
    font-weight: 600;
    margin-bottom: var(--spacing-xl);
}

.form-success,
.form-notice {
    text-align: center;
    background-color: var(--color-off-white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-3xl) var(--spacing-xl);
}

.form-success svg {
    width: 64px;
    height: 64px;
    color: var(--color-success);
    margin-bottom: var(--spacing-lg);
}

.form-success h2,
.form-notice h2 {
    font-size: var(--text-3xl);
    color: var(--color-primary-dark);
    margin-bottom: var(--spacing-md);
}

.form-success p,
.form-notice p {
    color: var(--color-gray);
    font-size: var(--text-lg);
    line-height: 1.8;
    max-width: 560px;
    margin: 0 auto var(--spacing-xl);
}

.form-success a,
.form-notice a {
    color: var(--color-primary);
}

.form-success .btn-card {
    width: auto;
    display: inline-flex;
    color: var(--color-white);
}

/* --------------------------------------------------------------------------
   Teaser auf der Startseite
   -------------------------------------------------------------------------- */
.event-teaser {
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
    padding: var(--spacing-3xl) 0;
}

.event-teaser-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-xl);
}

@media (min-width: 900px) {
    .event-teaser-inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.event-teaser-text {
    color: var(--color-white);
}

.event-teaser-label {
    display: block;
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: var(--spacing-sm);
}

.event-teaser-title {
    font-size: var(--text-3xl);
    color: var(--color-white);
    line-height: 1.2;
}

.event-teaser-meta {
    font-size: var(--text-lg);
    opacity: 0.85;
    margin-top: var(--spacing-sm);
}

.event-teaser-hook {
    color: var(--color-accent);
    margin-top: var(--spacing-sm);
}

/* Im Teaser stehen die Logos kompakter, abgesetzt durch eine feine Linie. */
.event-teaser-partners {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-lg) var(--spacing-xl);
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.event-teaser-partners .event-partner-logo-dreieich {
    height: 38px;
}

.event-teaser-partners .event-partner-logo-sparkasse {
    height: 64px;
}

.event-teaser .btn {
    flex: 0 0 auto;
}
