/* ============================================
   OZ FORMULARIOS PRO - Estilos Públicos
   ============================================ */

/* === BASE - Se adapta al 100% del contenedor === */
.ozfp-form-wrapper {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 32px;
    border-radius: 16px;
    background: #ffffff;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.ozfp-form-wrapper * {
    box-sizing: border-box;
}

/* === HEADER === */
.ozfp-form-header {
    margin-bottom: 28px;
    text-align: center;
}

.ozfp-form-header h2 {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.3;
    color: #1e293b;
}

.ozfp-form-header p {
    margin: 0;
    font-size: 16px;
    color: #64748b;
    line-height: 1.5;
}

/* === FORMULARIO GRID === */
.ozfp-form {
    display: grid;
    gap: 20px;
}

/* === CAMPOS === */
.ozfp-field {
    display: flex;
    flex-direction: column;
}

.ozfp-field label,
.ozfp-group-label {
    font-weight: 600;
    font-size: 14px;
    color: #374151;
    margin-bottom: 8px;
    display: block;
}

.ozfp-field input,
.ozfp-field select,
.ozfp-field textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    font-size: 15px;
    color: #1e293b;
    transition: all 0.2s ease;
    outline: none;
}

.ozfp-field input:hover,
.ozfp-field select:hover,
.ozfp-field textarea:hover {
    border-color: #cbd5e1;
    background: #fff;
}

.ozfp-field input:focus,
.ozfp-field select:focus,
.ozfp-field textarea:focus {
    border-color: #3b82f6;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}

.ozfp-field input::placeholder,
.ozfp-field textarea::placeholder {
    color: #94a3b8;
}

.ozfp-field textarea {
    min-height: 130px;
    resize: vertical;
    line-height: 1.5;
}

.ozfp-field select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 44px;
}

/* === CHECKBOX Y RADIO === */
.ozfp-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ozfp-option {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 400;
    font-size: 15px;
    color: #475569;
    cursor: pointer;
    padding: 8px 12px;
    border-radius: 8px;
    transition: background 0.15s ease;
}

.ozfp-option:hover {
    background: #f1f5f9;
}

.ozfp-field input[type="checkbox"],
.ozfp-field input[type="radio"],
.ozfp-inline input[type="checkbox"],
.ozfp-inline input[type="radio"] {
    width: 20px;
    height: 20px;
    padding: 0;
    margin: 0;
    border: 2px solid #cbd5e1;
    background: #fff;
    cursor: pointer;
    flex-shrink: 0;
}

.ozfp-field input[type="checkbox"] {
    border-radius: 4px;
}

.ozfp-field input[type="radio"] {
    border-radius: 50%;
}

.ozfp-field input[type="checkbox"]:checked,
.ozfp-field input[type="radio"]:checked {
    background: #3b82f6;
    border-color: #3b82f6;
}

/* === FILE INPUT === */
.ozfp-field input[type="file"] {
    padding: 12px;
    background: #f8fafc;
    cursor: pointer;
}

.ozfp-field input[type="file"]::file-selector-button {
    padding: 8px 16px;
    margin-right: 12px;
    border: none;
    border-radius: 6px;
    background: #e2e8f0;
    color: #475569;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ozfp-field input[type="file"]::file-selector-button:hover {
    background: #cbd5e1;
}

/* === BOTÓN SUBMIT === */
.ozfp-submit {
    width: 100%;
    padding: 16px 24px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
    margin-top: 8px;
}

.ozfp-submit:hover {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.25);
}

.ozfp-submit:active {
    transform: translateY(0);
}

/* === MENSAJES === */
.ozfp-message {
    padding: 14px 18px;
    border-radius: 10px;
    margin-bottom: 20px;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ozfp-message::before {
    font-size: 18px;
    flex-shrink: 0;
}

.ozfp-success {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.ozfp-success::before {
    content: "✓";
}

.ozfp-error {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    color: #991b1b;
    border: 1px solid #fecaca;
}

.ozfp-error::before {
    content: "!";
}

/* === HONEYPOT === */
.ozfp-hp {
    position: absolute;
    left: -9999px;
    opacity: 0;
    height: 0;
    width: 0;
    pointer-events: none;
}

/* === NOTA LEGAL === */
.ozfp-legal-note {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
    font-size: 13px;
    color: #64748b;
    text-align: center;
    line-height: 1.5;
}

/* ============================================
   PLANTILLA: CONTACTO SIMPLE (solo formulario, sin fondo en el contenedor)
   ============================================ */
.ozfp-form-wrapper.ozfp-template-contacto {
    background: #ffffff; /* Tarjeta blanca (diseño imagen 2) */
    padding: 44px 34px;   /* más alto: aire arriba/abajo */
    border-radius: 16px;
    border: 1px solid #edf1f7;
    box-shadow: 0 18px 50px -12px rgba(15, 23, 42, 0.22);
    margin: 0;
}

.ozfp-template-contacto .ozfp-contacto-header {
    text-align: left;
    margin-bottom: 22px;
    padding: 0;
}

.ozfp-template-contacto .ozfp-contacto-header h3 {
    color: #0f172a;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.ozfp-template-contacto .ozfp-message {
    margin-bottom: 20px;
}

.ozfp-template-contacto .ozfp-form-contacto-v2.ozfp-form {
    gap: 18px;                     /* más separación entre campos → tarjeta más alta */
    display: grid;
    grid-template-columns: 1fr;   /* una sola columna: campos apilados a lo ancho (imagen 2) */
}

/* Campos a ancho completo. IMPORTANTE: usar 1 / -1 (no "span 2"): con la
   cuadrícula de 1 columna, "span 2" creaba una 2ª columna implícita/fantasma
   que rompía el "1 / -1" del botón (quedaba a media anchura). */
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field {
    grid-column: 1 / -1;
}

/* Ocultar labels para usar solo placeholders como en el diseño */
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field label,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-group-label {
    display: none;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field input,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field select,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    font-size: 14px;
    color: #1f2937;
    box-shadow: none;
    outline: none;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field input::placeholder,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field textarea::placeholder {
    color: #9ca3af;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field input:focus,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field select:focus,
.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field textarea:focus {
    border-color: #fd6500;
    box-shadow: 0 0 0 3px rgba(253, 101, 0, 0.20); /* Anillo naranja al enfocar */
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field select {
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field textarea {
    min-height: 150px;             /* textarea más alto → tarjeta más alta */
    resize: vertical;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-submit-row {
    grid-column: 1 / -1 !important;   /* SIEMPRE ocupa todas las columnas → fila a ancho completo */
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 8px;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-submit {
    width: 100% !important;           /* botón al ancho completo del formulario (con el padding de la tarjeta ya no toca bordes) */
    min-width: 0;
    padding: 15px 32px;
    border-radius: 8px;
    background: #fd6500; /* Botón naranja (marca) */
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    text-transform: none;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-submit:hover {
    background: #e35c00;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(253, 101, 0, 0.30);
}

.ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-submit:active {
    transform: scale(0.98);
}

/* ============================================
   FORMULARIO FLOTANTE — solo página Contacto (id 14)
   El contenedor oscuro debe medir SOLO el texto de la izquierda. Para que el
   formulario NO agrande el contenedor, lo sacamos del flujo con posición
   absoluta: así la tarjeta flota, puede ser más alta y sobresalir sin empujar
   la altura. overflow:visible en la fila deja verla fuera del contenedor.
   - top: alinea la tarjeta con el borde superior (súbelo/bájalo a gusto).
   - Si la quieres centrada vertical: top:50% + transform:translateY(-50%).
   ============================================ */
.page-id-14 .oz-pb-r-1.oz-pb-section {
    overflow: visible;
    z-index: 2;                       /* la tarjeta flotante queda por encima de la sección CONTACTO */
}
.page-id-14 .oz-pb-col:has(.ozfp-template-contacto) {
    position: relative;               /* referencia para posicionar la tarjeta */
}
.page-id-14 .oz-pb-block--shortcode:has(.ozfp-template-contacto) {
    position: absolute;               /* fuera del flujo → no agranda el contenedor */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 3;
}
/* En tablet (≤1024px, incluye tablet landscape/volteada) y móvil: SIN desborde.
   El formulario vuelve al flujo normal → ocupa su columna con normalidad y el
   botón toma el ancho completo del formulario sin comprimirse. El efecto
   flotante/desbordado queda solo en escritorio (>1024px). */
@media (max-width: 1024px) {
    .page-id-14 .oz-pb-block--shortcode:has(.ozfp-template-contacto) {
        position: static;
        width: auto;
    }
}

/* Una sola columna (como imagen 2): todos los campos a ancho completo, sin
   columnas fantasma. */
@media (min-width: 769px) {
    .ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field-correo,
    .ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field-celular,
    .ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field-telefono,
    .ozfp-template-contacto .ozfp-form-contacto-v2 .ozfp-field-email {
        grid-column: 1 / -1;
    }
}

/* ============================================
   PLANTILLA: LIBRO DE RECLAMACIONES
   Estilo formal y estructurado
   ============================================ */
.ozfp-template-reclamaciones {
    background: linear-gradient(180deg, #fefefe 0%, #f8fafc 100%);
    border: 2px solid #dc2626;
    box-shadow: 0 4px 24px rgba(220, 38, 38, 0.08);
}

.ozfp-template-reclamaciones .ozfp-form-header {
    padding-bottom: 20px;
    border-bottom: 2px solid #fee2e2;
    margin-bottom: 24px;
}

.ozfp-template-reclamaciones .ozfp-form-header h2 {
    color: #dc2626;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.ozfp-template-reclamaciones .ozfp-form-header h2::before {
    content: "📋";
    font-size: 32px;
}

.ozfp-template-reclamaciones .ozfp-field label,
.ozfp-template-reclamaciones .ozfp-group-label {
    color: #991b1b;
}

.ozfp-template-reclamaciones .ozfp-field input:focus,
.ozfp-template-reclamaciones .ozfp-field select:focus,
.ozfp-template-reclamaciones .ozfp-field textarea:focus {
    border-color: #dc2626;
    box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1);
}

.ozfp-template-reclamaciones .ozfp-submit {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
}

.ozfp-template-reclamaciones .ozfp-submit:hover {
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%);
    box-shadow: 0 8px 20px rgba(185, 28, 28, 0.35);
}

.ozfp-template-reclamaciones .ozfp-legal-note {
    background: #fef2f2;
    padding: 12px 16px;
    border-radius: 8px;
    border-top: none;
    margin-top: 24px;
}

/* ============================================
   PLANTILLA: REGISTRO DISTRIBUIDOR
   Estilo corporativo profesional
   ============================================ */
.ozfp-template-distribuidor {
    background: linear-gradient(180deg, #ffffff 0%, #f0fdf4 100%);
    border: 1px solid #16a34a;
    box-shadow: 0 4px 24px rgba(22, 163, 74, 0.08);
}

.ozfp-template-distribuidor .ozfp-form-header {
    padding-bottom: 20px;
    border-bottom: 2px solid #bbf7d0;
    margin-bottom: 24px;
}

.ozfp-template-distribuidor .ozfp-form-header h2 {
    color: #15803d;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.ozfp-template-distribuidor .ozfp-form-header h2::before {
    content: "🤝";
    font-size: 32px;
}

.ozfp-template-distribuidor .ozfp-field label,
.ozfp-template-distribuidor .ozfp-group-label {
    color: #166534;
}

.ozfp-template-distribuidor .ozfp-field input:focus,
.ozfp-template-distribuidor .ozfp-field select:focus,
.ozfp-template-distribuidor .ozfp-field textarea:focus {
    border-color: #16a34a;
    box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.12);
}

.ozfp-template-distribuidor .ozfp-submit {
    background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
}

.ozfp-template-distribuidor .ozfp-submit:hover {
    background: linear-gradient(135deg, #15803d 0%, #166534 100%);
    box-shadow: 0 8px 20px rgba(22, 163, 74, 0.35);
}

/* ============================================
   PLANTILLA: PERSONALIZADO (DEFAULT)
   Estilo neutro elegante
   ============================================ */
.ozfp-template-default {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
}

/* ============================================
   RESPONSIVE - MÓVIL PRIMERO
   ============================================ */

/* Móvil pequeño */
@media (max-width: 480px) {
    .ozfp-form-wrapper {
        padding: 20px 16px;
        border-radius: 12px;
    }

    .ozfp-form-header h2 {
        font-size: 22px;
    }

    .ozfp-form-header p {
        font-size: 14px;
    }

    .ozfp-field input,
    .ozfp-field select,
    .ozfp-field textarea {
        padding: 12px 14px;
        font-size: 16px; /* Evita zoom en iOS */
    }

    .ozfp-submit {
        padding: 14px 20px;
        font-size: 15px;
    }

    .ozfp-template-reclamaciones .ozfp-form-header h2::before,
    .ozfp-template-distribuidor .ozfp-form-header h2::before {
        font-size: 26px;
    }
}

/* Tablet */
@media (min-width: 481px) and (max-width: 768px) {
    .ozfp-form-wrapper {
        padding: 28px 24px;
    }
}

/* Desktop */
@media (min-width: 769px) {
    .ozfp-form {
        grid-template-columns: repeat(2, 1fr);
    }

    .ozfp-field.ozfp-full-width {
        grid-column: 1 / -1;
    }

    .ozfp-form-wrapper {
        padding: 40px;
    }

    .ozfp-form-header h2 {
        font-size: 32px;
    }
}

/* ============================================
   ADMIN STYLES
   ============================================ */
.ozfp-admin .ozfp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ozfp-admin .ozfp-card {
    background: #fff;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.ozfp-admin .ozfp-field {
    margin-bottom: 12px;
}

.ozfp-admin .ozfp-field input,
.ozfp-admin .ozfp-field select {
    width: 100%;
}

.ozfp-admin .ozfp-field input[type="checkbox"],
.ozfp-admin .ozfp-field input[type="radio"] {
    width: 16px;
    height: 16px;
    padding: 0;
    border-radius: 2px;
    accent-color: #2563eb;
}

.ozfp-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
}

.ozfp-admin .ozfp-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
}

.ozfp-admin .ozfp-inline + input,
.ozfp-admin .ozfp-inline + select,
.ozfp-admin .ozfp-inline + textarea,
.ozfp-admin .ozfp-field input + input,
.ozfp-admin .ozfp-field input + select,
.ozfp-admin .ozfp-field input + textarea,
.ozfp-admin .ozfp-field select + input,
.ozfp-admin .ozfp-field select + textarea,
.ozfp-admin .ozfp-field textarea + input,
.ozfp-admin .ozfp-field textarea + select {
    margin-top: 8px;
}

.ozfp-fields-table input,
.ozfp-fields-table select {
    width: 100%;
}

.ozfp-remove-row {
    color: #b91c1c !important;
    border-color: #fecaca !important;
    background: #fef2f2 !important;
    font-weight: bold;
    min-width: 32px;
}

.ozfp-remove-row:hover {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

.ozfp-smtp-fields .ozfp-field {
    margin-bottom: 12px;
}

.ozfp-smtp-fields .description {
    color: #64748b;
    font-size: 12px;
    margin-top: 4px;
}

@media (max-width: 960px) {
    .ozfp-admin .ozfp-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   ESTILOS ESPECÍFICOS PARA PÁGINA CONTÁCTANOS (Maquetador Pro)
   ============================================ */

/* Fila de Cabecera (Título y Breadcrumbs) */
.cont-1 {
    background-color: #f3f4f6 !important;
    border-bottom: 1px solid #e5e7eb !important;
}

.cont-1 .oz-pb-grid {
    align-items: center; /* Centrar verticalmente */
}

.cont-1 h1 {
    font-size: 28px;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

.cont-1 p {
    text-align: right;
    color: #6b7280;
    margin: 0;
    font-size: 14px;
}

.cont-1 a {
    color: #003366;
    text-decoration: none;
}

.cont-1 a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .cont-1 .oz-pb-grid {
        text-align: center;
        gap: 10px;
    }
    .cont-1 p {
        text-align: center;
    }
}

