/* Estilos compartidos de los formularios públicos (Inscripción y Registro a la comunidad). */

        /* Identidad Resiliência Humana (Programa Florescer): naranja, carbón,
           crema y durazno, con tipografía Inter. */
        :root {
            --naranja: #FF6600;
            --naranja-osc: #E05A00;
            --carbon: #333333;
            --crema: #F5F5F0;
            --durazno: #FFC08A;
            --durazno-claro: #FFF1E6;
            --gris: #5C5C5C;
            --borde: #DCDCD8;
            --error: #C62828;
        }

        * { box-sizing: border-box; }

        body.pagina-inscripcion {
            background: var(--crema);
            color: var(--carbon);
            font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
            -webkit-font-smoothing: antialiased;
        }

        /* ---------- Portada ---------- */
        .hero {
            background: var(--carbon);
            color: #fff;
            padding: 0.8rem 1.25rem 5.2rem;
            position: relative;
            overflow: hidden;
        }

        .hero-interior {
            max-width: 760px;
            margin: 0 auto;
            position: relative;
            z-index: 1;
        }

        .hero-interior { text-align: center; }

        .hero-marca { display: flex; flex-direction: column; align-items: center; }
        .hero-simbolo { height: 44px; width: auto; display: block; }
        .hero-nombre {
            margin-top: 0.5rem;
            font-family: "Archivo Black", "Inter", system-ui, sans-serif;
            font-weight: 900;
            font-size: clamp(1.1rem, 4.6vw, 1.6rem);
            letter-spacing: 0.01em;
            line-height: 1;
            color: var(--crema);
        }
        .hero-nombre b { color: var(--naranja); font-weight: inherit; }
        .hero-apellido {
            margin-top: 0.25rem;
            font-family: "Archivo Black", "Inter", system-ui, sans-serif;
            font-size: clamp(0.7rem, 2.9vw, 0.95rem);
            letter-spacing: 0.14em;
            line-height: 1;
            color: var(--naranja);
        }

        .hero-etiqueta {
            margin: 2.5rem 0 0.4rem;
            color: var(--naranja);
            font-weight: 800;
            font-size: 0.8rem;
            letter-spacing: 0.22em;
            text-transform: uppercase;
        }

        .hero-titulo {
            margin: 0;
            font-size: clamp(1.35rem, 4.2vw, 1.8rem);
            font-weight: 900;
            line-height: 1.05;
            letter-spacing: -0.02em;
        }

        .hero-flecha {
            position: absolute;
            right: -30px;
            bottom: -40px;
            width: 260px;
            height: auto;
            opacity: 0.95;
            pointer-events: none;
        }

        .hero-lema { display: block; height: 30px; width: auto; margin: 0.9rem auto 0.45rem; opacity: 0.95; max-width: 100%; }

        /* ---------- Panel del formulario ---------- */
        .formulario-inscripcion {
            max-width: 760px;
            margin: -4.5rem auto 2rem;
            padding: 2.25rem 2.25rem 2rem;
            background: #fff;
            border-radius: 24px;
            box-shadow: 0 18px 50px rgba(51,51,51,0.12);
            position: relative;
            z-index: 2;
        }

        .encabezado-taller {
            padding: 0 0 1.4rem;
            margin-bottom: 1.8rem;
            border-bottom: 2px solid var(--crema);
        }

        .encabezado-taller h1 {
            margin: 0 0 0.4rem;
            font-size: 1.6rem;
            font-weight: 800;
            letter-spacing: -0.01em;
        }

        .encabezado-taller p { margin: 0.35rem 0 0; color: var(--gris); line-height: 1.55; }

        /* ---------- Campos ---------- */
        .campo-card {
            margin-bottom: 1.6rem;
        }

        .campo-card label {
            display: block;
            margin-bottom: 0.5rem;
            font-weight: 700;
            font-size: 0.74rem;
            letter-spacing: 0.09em;
            text-transform: uppercase;
            color: var(--gris);
        }

        .campo-card select,
        .campo-card input[type="text"],
        .campo-card input[type="email"],
        .campo-card input[type="tel"],
        .campo-card input[type="date"],
        .campo-card input.flatpickr-alt-input {
            width: 100%;
            padding: 0.8rem 1rem;
            font: inherit;
            font-size: 1rem;
            color: var(--carbon);
            background: var(--crema);
            border: 1.5px solid var(--borde);
            border-radius: 12px;
            box-shadow: none;
            transition: border-color .15s, box-shadow .15s, background .15s;
        }

        .campo-card select:focus,
        .campo-card input:focus {
            outline: none;
            background: #fff;
            border-color: var(--naranja);
            box-shadow: 0 0 0 4px rgba(255,102,0,0.15);
        }

        .campo-card ::placeholder { color: #9a9a96; }

        .campo-card .subcampo-condicional {
            margin-top: 1rem;
            padding-top: 1rem;
            border-top: 1px dashed var(--borde);
        }

        .campo-card .subcampo-condicional[hidden] { display: none; }

        /* Opciones (Sí/No, listas con radio): botones seleccionables */
        .campo-card .opcion-radio {
            display: flex;
            align-items: center;
            gap: 0.7rem;
            margin: 0 0 0.5rem;
            padding: 0.7rem 1rem;
            font-weight: 500;
            font-size: 0.95rem;
            letter-spacing: 0;
            text-transform: none;
            color: var(--carbon);
            background: #fff;
            border: 1.5px solid var(--borde);
            border-radius: 12px;
            cursor: pointer;
            transition: border-color .15s, background .15s;
        }

        .campo-card .opcion-radio:hover { border-color: var(--durazno); }

        .campo-card .opcion-radio:has(input:checked) {
            background: var(--durazno-claro);
            border-color: var(--naranja);
        }

        .campo-card .opcion-radio input[type="radio"],
        .campo-card .opcion-radio input[type="checkbox"] {
            width: 1.15rem;
            height: 1.15rem;
            flex: none;
            accent-color: var(--naranja);
        }

        .campo-card .opcion-radio select,
        .campo-card .opcion-radio input[type="text"] {
            flex: 1;
            width: auto;
            padding: 0.55rem 0.8rem;
        }

        .campo-card .opcion-radio select:disabled,
        .campo-card .opcion-radio input[type="text"]:disabled {
            background: #efefea;
            color: #a0a09c;
        }

        .campo-card input[type="checkbox"],
        .campo-card input[type="radio"] { accent-color: var(--naranja); }

        /* ---------- Secciones ---------- */
        .seccion-titulo-oscura {
            display: flex;
            align-items: center;
            gap: 0.8rem;
            margin: 2.6rem 0 1.4rem;
            padding: 0 0 0.9rem;
            border-bottom: 2px solid var(--carbon);
        }

        .seccion-titulo-oscura::before {
            content: "";
            flex: none;
            width: 10px;
            height: 28px;
            border-radius: 5px;
            background: var(--naranja);
        }

        .seccion-titulo-oscura h2 {
            margin: 0;
            font-size: 1.3rem;
            font-weight: 800;
            letter-spacing: -0.01em;
            text-transform: none;
            color: var(--carbon);
        }

        .seccion-info {
            margin: 0 0 1.6rem;
            padding: 1.1rem 1.25rem;
            background: var(--durazno-claro);
            border-left: 5px solid var(--naranja);
            border-radius: 0 14px 14px 0;
        }

        .seccion-info h2 {
            margin: 0 0 0.3rem;
            font-size: 0.8rem;
            font-weight: 800;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--naranja-osc);
        }

        .seccion-info p { margin: 0; color: #444; line-height: 1.55; font-size: 0.95rem; }

        /* Reglas y contrato */
        .campo-card.texto-reglas {
            padding: 1.25rem 1.4rem;
            background: var(--crema);
            border-radius: 16px;
            font-size: 0.93rem;
            line-height: 1.6;
        }

        .texto-reglas p { margin: 0 0 1rem; }
        .texto-reglas ol { margin: 0; padding-left: 1.25rem; }
        .texto-reglas li { margin-bottom: 0.75rem; }

        .clausula-contrato { display: flex; gap: 0.6rem; margin: 0 0 0.75rem; padding-left: 0.75rem; }
        .clausula-contrato .guion { flex: 0 0 auto; color: var(--naranja); font-weight: 800; }
        .clausula-contrato .texto { flex: 1 1 auto; }
        .clausula-contrato.sin-guion { padding-left: 0; }

        /* Aviso bajo preguntas Sí/No */
        .aviso-condicional {
            margin: 0.6rem 0 0;
            padding: 0.7rem 0.9rem;
            background: #FDECEA;
            color: #A32B21;
            border: 1px solid #F5C2BC;
            border-radius: 10px;
            font-size: 0.85rem;
            font-weight: 500;
            letter-spacing: 0;
            text-transform: none;
        }

        /* ---------- Envío ---------- */
        .acciones-formulario { margin: 2.2rem 0 0.5rem; }

        .acciones-formulario button[type="submit"] {
            width: 100%;
            padding: 1.05rem 1.5rem;
            font: inherit;
            font-size: 1.05rem;
            font-weight: 800;
            letter-spacing: 0.04em;
            color: #fff;
            background: var(--naranja);
            border: none;
            border-radius: 999px;
            cursor: pointer;
            box-shadow: 0 10px 24px rgba(255,102,0,0.35);
            transition: background .15s, transform .1s;
        }

        .acciones-formulario button[type="submit"]:hover { background: var(--naranja-osc); }
        .acciones-formulario button[type="submit"]:active { transform: translateY(1px); }

        /* ---------- Validación ---------- */
        .resumen-errores.validation-summary-valid { display: none; }

        .resumen-errores {
            margin-bottom: 1.6rem;
            padding: 1rem 1.25rem;
            background: #FDECEA;
            border: 1.5px solid var(--error);
            border-radius: 14px;
            color: var(--error);
            font-weight: 600;
        }

        .resumen-errores ul { margin: 0; padding-left: 1.25rem; }

        .field-validation-error {
            display: block;
            margin-top: 0.35rem;
            color: var(--error);
            font-size: 0.85rem;
            font-weight: 600;
        }

        .input-validation-error { border-color: var(--error) !important; }

        .campo-card.requerido > label:first-child::after,
        .campo-card .subcampo-condicional > label:first-child::after {
            content: " *";
            color: var(--naranja);
        }

        /* ---------- Pie ---------- */
        .pie-inscripcion {
            max-width: 760px;
            margin: 0 auto 2.5rem;
            padding: 0 1.25rem;
            text-align: center;
            font-size: 0.82rem;
            color: var(--gris);
        }

        .pie-inscripcion strong { color: var(--naranja-osc); }

        @media (max-width: 600px) {
            .formulario-inscripcion { margin: -4rem 0.75rem 1.5rem; padding: 1.5rem 1.1rem; border-radius: 20px; }
            .hero { padding: 0.8rem 1.1rem 4.6rem; }
            .hero-flecha { width: 170px; right: -30px; bottom: -30px; }
            .hero-simbolo { height: 38px; }
        }

        /* ---------- Extras del registro a la comunidad ---------- */
        .campo-card input[type="file"] {
            width: 100%;
            padding: 0.7rem 0.8rem;
            font: inherit;
            font-size: 0.9rem;
            background: var(--crema);
            border: 1.5px dashed var(--borde);
            border-radius: 12px;
        }

        .campo-card .ayuda {
            display: block;
            margin-top: 0.4rem;
            font-size: 0.8rem;
            color: var(--gris);
            letter-spacing: 0;
            text-transform: none;
            font-weight: 400;
        }

        .foto-preview {
            display: none;
            width: 140px;
            height: 140px;
            margin-bottom: 0.7rem;
            object-fit: cover;
            border-radius: 50%;
            border: 4px solid var(--naranja);
        }

        /* Campo señuelo anti-spam: invisible para personas, los bots lo llenan. */
        .campo-trampa {
            position: absolute;
            left: -9999px;
            width: 1px;
            height: 1px;
            overflow: hidden;
        }

        .mensaje-final { text-align: center; padding: 1rem 0 0.5rem; }
        .mensaje-final h1 { font-size: 1.7rem; font-weight: 900; margin: 0 0 0.6rem; }
        .mensaje-final p { color: var(--gris); line-height: 1.6; margin: 0.3rem 0; }
