.ir-rsvp-pro{
box-sizing:border-box;
    padding:18px;
    overflow:auto;
    color:#232a34;
}

.ir-rsvp-pro *,
.ir-rsvp-pro *::before,
.ir-rsvp-pro *::after{
    box-sizing:border-box;
}

.ir-rsvp-head{
    margin-bottom:14px;
    text-align:center;
}

.ir-rsvp-title{
    margin:0;
    font-size:21px;
    font-weight:700;
    line-height:1.15;
}

.ir-rsvp-subtitle{
    margin:5px 0 0;
    font-size:10px;
    line-height:1.4;
    opacity:.65;
}

.ir-rsvp-form{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.ir-rsvp-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}

.ir-rsvp-control{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.ir-rsvp-control span{
    font-size:9px;
    font-weight:800;
    opacity:.76;
}

.ir-rsvp-control input,
.ir-rsvp-companion-list input{
    width:100%;
    min-height:38px;
    padding:0 10px;
    border:1px solid rgba(40,48,60,.16);
    border-radius:9px;
    outline:none;
    background:rgba(255,255,255,.88);
    color:#222a34;
    font-size:11px;
}

.ir-rsvp-control input:focus,
.ir-rsvp-companion-list input:focus{
    border-color:#b69653;
    box-shadow:
        0 0 0 3px
        rgba(182,150,83,.10);
}

.ir-rsvp-question > strong{
    display:block;
    margin-bottom:8px;
    text-align:center;
    font-size:10px;
}

.ir-rsvp-options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.ir-rsvp-option{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    border:1px solid rgba(40,48,60,.14);
    border-radius:10px;
    background:rgba(255,255,255,.78);
    cursor:pointer;
    font-size:10px;
    font-weight:800;
}

.ir-rsvp-option input{
    position:absolute;
    opacity:0;
}

.ir-rsvp-option.is-selected{
    border-color:#b89b5c;
    background:rgba(190,161,95,.15);
    box-shadow:
        inset 0 0 0 1px
        rgba(184,155,92,.25);
}

.ir-rsvp-companions{
    display:none;
}

.ir-rsvp-companions.is-visible{
    display:block;
}

.ir-rsvp-companions-title{
    margin-bottom:8px;
    text-align:center;
    font-size:9px;
    font-weight:800;
}

.ir-rsvp-companion-list{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.ir-rsvp-submit{
    width:100%;
    min-height:44px;
    border:0;
    border-radius:10px;
    background:#1f2d3d;
    color:#fff;
    cursor:pointer;
    font-size:10px;
    font-weight:900;
}

.ir-rsvp-submit:disabled{
    opacity:.6;
    cursor:default;
}

.ir-rsvp-message{
    min-height:18px;
    text-align:center;
    font-size:9px;
    line-height:1.4;
}

.ir-rsvp-message.success{
    color:#157346;
}

.ir-rsvp-message.error{
    color:#b33e3e;
}

.ir-rsvp-personalized-required{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:180px;
    padding:20px;
    text-align:center;
}

.ir-rsvp-personalized-required strong{
    font-size:15px;
}

.ir-rsvp-personalized-required p{
    max-width:230px;
    margin:7px 0 0;
    font-size:10px;
    line-height:1.5;
    opacity:.65;
}

@media(max-width:420px){
    .ir-rsvp-grid{
        grid-template-columns:1fr;
    }
}


/* RSVP_PASS_STYLE_V2 */

.ir-rsvp-pass-v2{
    display:flex !important;
    align-items:center;
    justify-content:center;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
}

.ir-rsvp-pass-link-v2{
    display:block;
    width:100%;
    height:100%;
    text-decoration:none;
}

.ir-rsvp-pass-image-v2{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    border-radius:18px;
    box-shadow:
        0 12px 32px
        rgba(0,0,0,.22);
}



/* RSVP_LAYOUT_V3 */

/*
 * Estructura:
 *
 * TITULO
 * SUBTITULO
 *
 * Nombre      Apellido
 * Correo      Telefono
 *
 * ¿Asistiras?
 * SI          NO
 *
 * Acompañantes
 * Campo 1
 * Campo 2
 *
 * BOTON
 */

.ir-rsvp-pro{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;



    padding:22px 20px !important;

    box-sizing:border-box !important;

    overflow:hidden !important;
}


.ir-rsvp-pro *,
.ir-rsvp-pro *::before,
.ir-rsvp-pro *::after{
    box-sizing:border-box !important;
}


.ir-rsvp-head{
    display:block !important;

    width:100% !important;

    margin:0 0 16px !important;
    padding:0 !important;

    text-align:center !important;
}


.ir-rsvp-title{
    display:block !important;

    width:100% !important;

    margin:0 !important;

    color:#222a34 !important;

    font-size:20px !important;
    font-weight:900 !important;
    line-height:1.1 !important;

    text-align:center !important;
}


.ir-rsvp-subtitle{
    display:block !important;

    max-width:250px !important;

    margin:7px auto 0 !important;

    color:#6a717b !important;

    font-size:10px !important;
    line-height:1.35 !important;

    text-align:center !important;
}


.ir-rsvp-form{
    display:flex !important;
    flex-direction:column !important;

    width:100% !important;
    min-width:0 !important;

    gap:12px !important;

    margin:0 !important;
    padding:0 !important;
}


.ir-rsvp-grid{
    display:grid !important;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr) !important;

    gap:10px !important;

    width:100% !important;
    min-width:0 !important;
}


.ir-rsvp-control{
    display:flex !important;
    flex-direction:column !important;

    min-width:0 !important;

    gap:5px !important;
}


.ir-rsvp-control span{
    display:block !important;

    width:100% !important;

    color:#555d68 !important;

    font-size:9px !important;
    font-weight:800 !important;

    line-height:1.2 !important;

    text-align:center !important;
}


.ir-rsvp-control input,
.ir-rsvp-companion-list input{
    display:block !important;

    width:100% !important;
    min-width:0 !important;

    height:42px !important;
    min-height:42px !important;

    padding:0 11px !important;

    border:
        1px solid
        rgba(40,48,60,.17) !important;

    border-radius:11px !important;

    background:
        rgba(255,255,255,.96) !important;

    color:#222a34 !important;

    font-size:11px !important;

    outline:none !important;
}


.ir-rsvp-question{
    display:block !important;

    width:100% !important;

    margin:1px 0 0 !important;
    padding:0 !important;
}


.ir-rsvp-question > strong{
    display:block !important;

    margin:0 0 8px !important;

    color:#29313b !important;

    font-size:10px !important;
    font-weight:900 !important;

    text-align:center !important;
}


.ir-rsvp-options{
    display:grid !important;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr) !important;

    gap:10px !important;

    width:100% !important;
}


.ir-rsvp-option{
    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    min-width:0 !important;
    min-height:44px !important;

    border:
        1px solid
        rgba(40,48,60,.16) !important;

    border-radius:11px !important;

    background:
        rgba(255,255,255,.88) !important;

    color:#29313b !important;

    font-size:10px !important;
    font-weight:900 !important;

    text-align:center !important;
}


.ir-rsvp-option.is-selected{
    border-color:#b89b5c !important;

    background:
        rgba(190,161,95,.16) !important;

    box-shadow:
        inset 0 0 0 1px
        rgba(184,155,92,.28) !important;
}


.ir-rsvp-companions{
    width:100% !important;

    margin:0 !important;
    padding:0 !important;
}


.ir-rsvp-companions.is-visible{
    display:block !important;
}


.ir-rsvp-companions-title{
    width:100% !important;

    margin:0 0 8px !important;

    color:#29313b !important;

    font-size:10px !important;
    font-weight:900 !important;

    text-align:center !important;
}


.ir-rsvp-companion-list{
    display:flex !important;
    flex-direction:column !important;

    width:100% !important;

    gap:8px !important;
}


.ir-rsvp-submit{
    display:block !important;

    width:100% !important;

    min-height:46px !important;

    margin:0 !important;

    border:0 !important;
    border-radius:11px !important;

    background:#1f2d3d !important;
    color:#ffffff !important;

    font-size:11px !important;
    font-weight:900 !important;

    text-align:center !important;
}


.ir-rsvp-message{
    display:block !important;

    width:100% !important;

    min-height:16px !important;

    margin:0 !important;

    font-size:9px !important;
    line-height:1.35 !important;

    text-align:center !important;
}


/*
 * IMPORTANTE:
 * En la invitación móvil también mantenemos
 * Nombre/Apellido y Correo/Teléfono en 2 columnas.
 */

@media(max-width:420px){

    .ir-rsvp-grid{
        grid-template-columns:
            minmax(0,1fr)
            minmax(0,1fr) !important;
    }

    .ir-rsvp-pro{
        padding:
            20px 16px !important;
    }
}


/* END RSVP_LAYOUT_V3 */


/* RSVP_UI_UPGRADE_V1_START */

/* ============================================================
   RSVP UI UPGRADE V1
   Solo mejora visual / NO cambia logica
   ============================================================ */

.ir-rsvp-pro{
    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.97),
            rgba(248,249,251,.97)
        ) !important;
    border:1px solid rgba(201,173,98,.55) !important;
    border-radius:28px !important;
    box-shadow:
        0 18px 50px rgba(12,23,39,.16),
        inset 1px 1px 0 rgba(255,255,255,.95);
    backdrop-filter:blur(10px);
    padding:26px 22px !important;
}

.ir-rsvp-pro *{
    box-sizing:border-box;
}

.ir-rsvp-head{
    margin-bottom:18px;
}

.ir-rsvp-title{
    margin:0 0 8px;
    text-align:center;
    font-size:29px;
    line-height:1.08;
    font-weight:900;
    color:#243042;
    letter-spacing:-.02em;
}

.ir-rsvp-subtitle{
    margin:0;
    text-align:center;
    font-size:14px;
    line-height:1.45;
    color:#8b95a3;
    font-weight:600;
}

.ir-rsvp-form{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.ir-rsvp-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 16px;
}

.ir-rsvp-control{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.ir-rsvp-control span{
    text-align:center;
    font-size:13px;
    font-weight:900;
    color:#6e7683;
    letter-spacing:.01em;
}

.ir-rsvp-control input,
.ir-rsvp-companion-list input{
    min-height:58px;
    padding:0 18px;
    border:1px solid rgba(17,31,53,.10);
    border-radius:18px;
    outline:none;
    background:
        linear-gradient(
            180deg,
            #172842,
            #16233a
        );
    color:#ffffff;
    font-size:16px;
    font-weight:700;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 8px 18px rgba(12,23,39,.10);
}

.ir-rsvp-control input::placeholder,
.ir-rsvp-companion-list input::placeholder{
    color:rgba(255,255,255,.42);
    font-weight:600;
}

.ir-rsvp-control input:focus,
.ir-rsvp-companion-list input:focus{
    border-color:#c8aa61;
    box-shadow:
        0 0 0 4px rgba(200,170,97,.14),
        0 12px 24px rgba(12,23,39,.10);
}

.ir-rsvp-question > strong{
    display:block;
    margin-bottom:12px;
    text-align:center;
    font-size:16px;
    line-height:1.3;
    font-weight:900;
    color:#2f3846;
}

.ir-rsvp-options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.ir-rsvp-option{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:64px;
    padding:0 12px;
    border:1px solid rgba(26,38,58,.12);
    border-radius:20px;
    background:
        linear-gradient(
            180deg,
            #f7f4ec,
            #efebe0
        );
    cursor:pointer;
    font-size:16px;
    line-height:1.2;
    font-weight:900;
    color:#2d3745;
    box-shadow:
        0 8px 18px rgba(17,24,39,.07),
        inset 1px 1px 0 rgba(255,255,255,.85);
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        background .16s ease;
}

.ir-rsvp-option:hover{
    transform:translateY(-1px);
}

.ir-rsvp-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.ir-rsvp-option.is-selected{
    border-color:#c7a65b;
    background:
        linear-gradient(
            180deg,
            #fff8e3,
            #efe1b8
        );
    box-shadow:
        0 10px 22px rgba(199,166,91,.18),
        inset 0 0 0 1px rgba(199,166,91,.22);
}

.ir-rsvp-companions{
    display:none;
}

.ir-rsvp-companions.is-visible{
    display:block;
}

.ir-rsvp-companions-title{
    margin-bottom:10px;
    text-align:center;
    font-size:15px;
    line-height:1.35;
    font-weight:900;
    color:#2f3846;
}

.ir-rsvp-companion-list{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}

.ir-rsvp-submit{
    width:100%;
    min-height:62px;
    border:0;
    border-radius:20px;
    background:
        linear-gradient(
            135deg,
            #7d8794,
            #8f98a5
        );
    color:#ffffff;
    cursor:pointer;
    font-size:18px;
    font-weight:900;
    letter-spacing:.01em;
    box-shadow:
        0 14px 28px rgba(22,34,53,.16);
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        opacity .16s ease;
}

.ir-rsvp-submit:not(:disabled):hover{
    transform:translateY(-1px);
    box-shadow:
        0 16px 32px rgba(22,34,53,.18);
}

.ir-rsvp-submit:disabled{
    opacity:.88;
    cursor:default;
}

.ir-rsvp-message{
    min-height:22px;
    text-align:center;
    font-size:13px;
    line-height:1.45;
    font-weight:700;
}

.ir-rsvp-message.success{
    color:#157346;
}

.ir-rsvp-message.error{
    color:#c23737;
}

.ir-rsvp-personalized-required{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:220px;
    padding:24px;
    text-align:center;
}

.ir-rsvp-personalized-required strong{
    font-size:22px;
    line-height:1.1;
    color:#243042;
}

.ir-rsvp-personalized-required p{
    max-width:320px;
    margin:10px 0 0;
    font-size:14px;
    line-height:1.55;
    color:#7f8896;
    opacity:1;
}

/* MANTENER MAS BONITO EN MOVIL */
@media (max-width:560px){

    .ir-rsvp-pro{
        padding:22px 18px !important;
        border-radius:24px !important;
    }

    .ir-rsvp-title{
        font-size:24px;
    }

    .ir-rsvp-subtitle{
        font-size:13px;
    }

    .ir-rsvp-grid{
        grid-template-columns:1fr 1fr;
        gap:12px;
    }

    .ir-rsvp-control span{
        font-size:11px;
    }

    .ir-rsvp-control input,
    .ir-rsvp-companion-list input{
        min-height:50px;
        padding:0 12px;
        font-size:14px;
        border-radius:16px;
    }

    .ir-rsvp-question > strong{
        font-size:14px;
    }

    .ir-rsvp-options{
        gap:12px;
    }

    .ir-rsvp-option{
        min-height:54px;
        border-radius:16px;
        font-size:14px;
    }

    .ir-rsvp-companions-title{
        font-size:13px;
    }

    .ir-rsvp-submit{
        min-height:56px;
        border-radius:18px;
        font-size:16px;
    }
}

/* EVITAR QUE SE VAYA A 1 SOLA COLUMNA MUY FEO */
@media (max-width:420px){
    .ir-rsvp-grid{
        grid-template-columns:1fr 1fr !important;
    }
}

/* RSVP_UI_UPGRADE_V1_END */


/* ============================================================
   RSVP_VERTICAL_V1_START
   TODO UNO DEBAJO DEL OTRO
   ============================================================ */

.ir-rsvp-pro{
    padding:20px 18px !important;
}

.ir-rsvp-form{
    display:flex !important;
    flex-direction:column !important;
    gap:13px !important;
}

/* NOMBRE / APELLIDO / CORREO / TELEFONO */
.ir-rsvp-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
}

/* LABEL */
.ir-rsvp-control{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;
}

.ir-rsvp-control span{
    text-align:left !important;
    padding-left:4px !important;
    font-size:12px !important;
}

/* CAMPOS */
.ir-rsvp-control input,
.ir-rsvp-companion-list input{
    width:100% !important;
    min-height:48px !important;
    height:48px !important;
    border-radius:15px !important;
    padding:0 15px !important;
    font-size:14px !important;
}

/* PREGUNTA */
.ir-rsvp-question{
    width:100% !important;
}

.ir-rsvp-question > strong{
    display:block !important;
    text-align:center !important;
    margin:3px 0 10px !important;
    font-size:13px !important;
}

/* ASISTIRE / NO ASISTIRE UNO ABAJO DEL OTRO */
.ir-rsvp-options{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
}

.ir-rsvp-option{
    width:100% !important;
    min-height:48px !important;
    border-radius:15px !important;
}

/* ACOMPAÑANTES UNO ABAJO DEL OTRO */
.ir-rsvp-companions{
    width:100% !important;
}

.ir-rsvp-companions-title{
    margin:3px 0 9px !important;
    font-size:12px !important;
}

.ir-rsvp-companion-list{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
}

/* BOTON */
.ir-rsvp-submit{
    width:100% !important;
    min-height:50px !important;
    border-radius:15px !important;
    margin-top:2px !important;
}

/* FORZAR VERTICAL TAMBIEN EN MOVIL */
@media (max-width:900px){

    .ir-rsvp-grid,
    .ir-rsvp-options,
    .ir-rsvp-companion-list{
        grid-template-columns:1fr !important;
    }
}

/* RSVP_VERTICAL_V1_END */

/* RSVP_RESIZE_UNLOCK_V1_START */

/*
 * El tamaño exterior lo manda block.position
 * desde el Builder.
 */

.ir-rsvp-pro{
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;

    box-sizing:border-box !important;

    /*
     * Si se hace más pequeño que su contenido,
     * no obliga al bloque a crecer otra vez.
     */
    overflow:auto !important;
}

/*
 * Evita que el formulario interno obligue
 * al contenedor padre a crecer.
 */
.ir-rsvp-pro .ir-rsvp-form{
    min-width:0 !important;
    min-height:0 !important;
    max-width:100% !important;
}

/*
 * Los hijos pueden encogerse dentro del RSVP.
 */
.ir-rsvp-pro .ir-rsvp-grid,
.ir-rsvp-pro .ir-rsvp-question,
.ir-rsvp-pro .ir-rsvp-options,
.ir-rsvp-pro .ir-rsvp-companions,
.ir-rsvp-pro .ir-rsvp-companion-list{
    min-width:0 !important;
    max-width:100% !important;
}

/* RSVP_RESIZE_UNLOCK_V1_END */


/*
 * ============================================================
 * RSVP_PASS_ACTIONS_CSS_V3
 * Toolbar premium del Pase VIP
 * ============================================================
 */

.ir-rsvp-pass-v2.ir-rsvp-pass-actions-v3{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:10px !important;
    background:transparent !important;
    overflow:visible !important;
}

.ir-rsvp-pass-toolbar-v3{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    box-sizing:border-box;
}

.ir-rsvp-pass-action-v3{
    min-width:0;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:9px 10px;
    box-sizing:border-box;

    border:1px solid rgba(224,186,88,.72);
    border-radius:12px;

    background:rgba(11,20,19,.92);
    color:#fff;

    font:600 13px/1.2 Arial,Helvetica,sans-serif;
    text-decoration:none;
    text-align:center;

    cursor:pointer;

    box-shadow:
        0 8px 24px rgba(0,0,0,.18);

    transition:
        transform .15s ease,
        border-color .15s ease,
        background .15s ease;
}

.ir-rsvp-pass-action-v3:hover{
    transform:translateY(-1px);
    border-color:#e0ba58;
    background:rgba(20,35,32,.98);
}

.ir-rsvp-pass-action-v3:active{
    transform:translateY(0);
}

.ir-rsvp-pass-actions-v3
.ir-rsvp-pass-link-v2{
    display:block !important;
    width:100% !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden;
    border-radius:18px;
    text-decoration:none;
}

.ir-rsvp-pass-actions-v3
.ir-rsvp-pass-image-v2{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    object-fit:contain !important;
    border-radius:18px;

    box-shadow:
        0 18px 45px rgba(0,0,0,.22);
}

@media (max-width:520px){

    .ir-rsvp-pass-toolbar-v3{
        gap:6px;
    }

    .ir-rsvp-pass-action-v3{
        min-height:38px;
        padding:8px 6px;
        font-size:11px;
        border-radius:10px;
    }
}

