/* ═══════════════════════════════════════════════════════
   Fundación El Sembrador – Formulario de Contacto
   Todos los selectores usan .sem-wrap para superar la
   especificidad del tema de WordPress y evitar el verde.
   ═══════════════════════════════════════════════════════ */

/* Paleta propia:
   Naranja principal : #D4874A
   Naranja claro     : #E8A96E
   Marrón oscuro     : #5C3317
   Marrón texto      : #4A4A4A  (igual que el resto de la web)
   Gris suave        : #6B6B6B
   Fondo inputs      : #FFFAF5
   Borde inputs      : #E0D0BC
   Fondo card        : #FFFFFF
   Fondo exterior    : #FBF7F2
*/

/* ── Contenedor ─────────────────────────────────────── */
.sem-wrap,
.sem-wrap * {
    box-sizing: border-box;
}

.sem-wrap {
    display: flex !important;
    justify-content: center !important;
    padding: 40px 16px 60px !important;
    background: transparent !important;
    font-family: inherit !important;   /* usa la fuente del sitio web */
}

/* ── Tarjeta ────────────────────────────────────────── */
.sem-wrap .sem-card {
    background: #FFFFFF !important;
    border-radius: 16px !important;
    box-shadow: 0 6px 32px rgba(92, 51, 23, 0.10) !important;
    padding: 44px 40px 48px !important;
    width: 100% !important;
    max-width: 560px !important;
    position: relative !important;
    overflow: hidden !important;
    border: none !important;
}

.sem-wrap .sem-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    height: 4px !important;
    background: linear-gradient(90deg, #5C3317, #D4874A, #E8A96E, #D4874A, #5C3317) !important;
}

/* ── Cabecera ───────────────────────────────────────── */
.sem-wrap .sem-header {
    text-align: center !important;
    margin-bottom: 32px !important;
}

.sem-wrap .sem-logo-wrap {
    margin-bottom: 14px !important;
    display: block !important;
}

.sem-wrap .sem-logo-img {
    max-width: 150px !important;
    max-height: 75px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: inline-block !important;
}

.sem-wrap .sem-title {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: #5C3317 !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: -0.2px !important;
    font-family: inherit !important;
    background: none !important;
    border: none !important;
}

.sem-wrap .sem-subtitle {
    font-size: 15px !important;
    color: #6B6B6B !important;
    font-weight: 400 !important;
    margin: 0 !important;
    text-transform: none !important;
    font-family: inherit !important;
}

/* ── Campos ─────────────────────────────────────────── */
.sem-wrap .sem-field {
    margin-bottom: 20px !important;
}

/* Etiqueta de campo normal (nombre, email, etc.) */
.sem-wrap .sem-field > label:not(.sem-check-label) {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #5C3317 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    margin-bottom: 6px !important;
    font-family: inherit !important;
    background: none !important;
    padding: 0 !important;
    line-height: 1.4 !important;
}

.sem-wrap .sem-field > label > span,
.sem-wrap .sem-field > label span.req {
    color: #C0392B !important;
}

/* ── Inputs y Textarea ──────────────────────────────── */
.sem-wrap .sem-field input[type="text"],
.sem-wrap .sem-field input[type="email"],
.sem-wrap .sem-field input[type="tel"],
.sem-wrap .sem-field textarea {
    width: 100% !important;
    border: 1.5px solid #E0D0BC !important;
    border-radius: 10px !important;
    padding: 12px 15px !important;
    font-size: 15px !important;
    color: #4A4A4A !important;
    background: #FFFAF5 !important;
    font-family: inherit !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    resize: vertical !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.sem-wrap .sem-field input[type="text"]::placeholder,
.sem-wrap .sem-field input[type="email"]::placeholder,
.sem-wrap .sem-field input[type="tel"]::placeholder,
.sem-wrap .sem-field textarea::placeholder {
    color: #BFAA94 !important;
    font-style: normal !important;
}

.sem-wrap .sem-field input[type="text"]:focus,
.sem-wrap .sem-field input[type="email"]:focus,
.sem-wrap .sem-field input[type="tel"]:focus,
.sem-wrap .sem-field textarea:focus {
    border-color: #D4874A !important;
    background: #FFFFFF !important;
    box-shadow: 0 0 0 3px rgba(212, 135, 74, 0.13) !important;
    outline: none !important;
}

.sem-wrap .sem-field input.has-error,
.sem-wrap .sem-field textarea.has-error {
    border-color: #C0392B !important;
    background: #FFF8F8 !important;
}

/* ── Mensajes de error bajo el campo ───────────────── */
.sem-wrap .sem-error {
    display: block !important;
    font-size: 12px !important;
    color: #C0392B !important;
    margin-top: 4px !important;
    min-height: 15px !important;
    font-family: inherit !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

/* ── Checkbox Política de Privacidad ───────────────── */
.sem-wrap .sem-field-check {
    margin-bottom: 22px !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

/* Ocultar el checkbox nativo */
.sem-wrap .sem-check-label input[type="checkbox"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Etiqueta del checkbox — sin herencia de estilos de label */
.sem-wrap .sem-check-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 11px !important;
    cursor: pointer !important;
    font-size: 13px !important;
    font-weight: 400 !important;         /* normal, no negrita */
    color: #6B6B6B !important;           /* gris suave como el resto del texto */
    text-transform: none !important;     /* minúsculas */
    letter-spacing: 0 !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: inherit !important;
    background: none !important;
    border: none !important;
}

/* Cuadradito personalizado */
.sem-wrap .sem-check-box {
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
    border: 1.5px solid #E0D0BC !important;
    border-radius: 5px !important;
    background: #FFFAF5 !important;
    margin-top: 1px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.18s !important;
    box-shadow: none !important;
}

.sem-wrap .sem-check-label input:checked ~ .sem-check-box {
    background: #D4874A !important;
    border-color: #D4874A !important;
}

.sem-wrap .sem-check-label input:checked ~ .sem-check-box::after {
    content: '' !important;
    display: block !important;
    width: 5px !important;
    height: 9px !important;
    border: 2px solid #fff !important;
    border-top: none !important;
    border-left: none !important;
    transform: rotate(45deg) translate(-1px, -1px) !important;
}

.sem-wrap .sem-check-box.check-error {
    border-color: #C0392B !important;
    background: #FFF8F8 !important;
}

.sem-wrap .sem-check-text {
    flex: 1 !important;
    font-size: 13px !important;
    color: #6B6B6B !important;
    font-weight: 400 !important;
    text-transform: none !important;
    line-height: 1.55 !important;
    font-family: inherit !important;
}

.sem-wrap .sem-check-text a {
    color: #D4874A !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-transform: none !important;
}

.sem-wrap .sem-check-text a:hover {
    color: #5C3317 !important;
}

.sem-wrap .sem-check-text > span {
    color: #C0392B !important;
}

/* ── Botón ──────────────────────────────────────────── */
.sem-wrap .sem-btn {
    display: block !important;
    width: 100% !important;
    padding: 14px 24px !important;
    background: linear-gradient(135deg, #5C3317 0%, #D4874A 100%) !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: 10px !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px !important;
    text-transform: none !important;
    cursor: pointer !important;
    transition: transform 0.18s, box-shadow 0.18s !important;
    box-shadow: 0 4px 16px rgba(212, 135, 74, 0.38) !important;
    margin-top: 4px !important;
    line-height: 1.4 !important;
}

.sem-wrap .sem-btn:hover:not(:disabled) {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(212, 135, 74, 0.48) !important;
}

.sem-wrap .sem-btn:active:not(:disabled) {
    transform: translateY(0) !important;
}

.sem-wrap .sem-btn:disabled {
    opacity: 0.7 !important;
    cursor: not-allowed !important;
}

/* ── Éxito ──────────────────────────────────────────── */
.sem-wrap .sem-success {
    text-align: center !important;
    padding: 20px 0 8px !important;
    animation: semFadeIn 0.4s ease !important;
}

.sem-wrap .sem-success-icon {
    font-size: 48px !important;
    margin-bottom: 12px !important;
}

.sem-wrap .sem-success h3 {
    font-size: 22px !important;
    color: #5C3317 !important;
    margin: 0 0 10px !important;
    font-family: inherit !important;
    text-transform: none !important;
}

.sem-wrap .sem-success p {
    font-size: 15px !important;
    color: #6B6B6B !important;
    margin: 0 !important;
    line-height: 1.6 !important;
    text-transform: none !important;
}

/* ── Error global ───────────────────────────────────── */
.sem-wrap .sem-error-global {
    background: #FFF3F3 !important;
    border: 1px solid #F5C6C6 !important;
    border-radius: 10px !important;
    padding: 13px 17px !important;
    margin-top: 14px !important;
    text-align: center !important;
}

.sem-wrap .sem-error-global p {
    margin: 0 !important;
    font-size: 14px !important;
    color: #C0392B !important;
    text-transform: none !important;
    font-family: inherit !important;
}

/* ── Animación ──────────────────────────────────────── */
@keyframes semFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 540px) {
    .sem-wrap .sem-card {
        padding: 32px 22px 36px !important;
    }
    .sem-wrap .sem-title {
        font-size: 22px !important;
    }
}
