.cmh-cotizador{max-width:1100px;margin:auto;font-family:Arial,sans-serif}.cmh-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.cmh-grid p,#cmh-kids-ages p{margin:0}.cmh-cotizador label{display:block;font-weight:600;margin-bottom:5px}.cmh-cotizador input,.cmh-cotizador select{width:100%;padding:10px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box}.cmh-button,.cmh-wa{display:inline-block;border:0;border-radius:7px;padding:13px 20px;text-decoration:none;cursor:pointer;font-weight:700;margin-top:16px}.cmh-button{background:#111;color:#fff}.cmh-results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:24px}.cmh-card{border:1px solid #ddd;border-radius:12px;overflow:hidden;background:#fff}.cmh-card img{width:100%;height:180px;object-fit:cover}.cmh-card-body{padding:16px}.cmh-card h3{margin:0 0 8px}.cmh-card h4{margin:0 0 10px}.cmh-total{font-size:22px;font-weight:800;margin:15px 0}.cmh-wa{background:#25D366;color:#fff}.cmh-empty{padding:20px;background:#f5f5f5;margin-top:20px;border-radius:8px}@media(max-width:800px){.cmh-grid{grid-template-columns:1fr 1fr}}@media(max-width:500px){.cmh-grid{grid-template-columns:1fr}}
.cmh-actions{display:flex;flex-direction:column;gap:10px}.cmh-email{display:inline-block;border:0;border-radius:7px;padding:13px 20px;cursor:pointer;font-weight:700;background:#333;color:#fff}.cmh-email:disabled{opacity:.6;cursor:wait}

.cmh-kids-prices{margin:12px 0;padding:10px;border:1px solid #e1e1e1;border-radius:8px}.cmh-kids-prices p{margin:8px 0}

.cmh-main-grid{grid-template-columns:repeat(4,1fr)}
#cmh-rooms-search{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.cmh-search-room{border:1px solid #ddd;border-radius:10px;padding:15px;background:#fafafa}
.cmh-search-room-title{font-size:17px;font-weight:800;margin-bottom:12px}
.cmh-room-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cmh-room-summary{border:1px solid #ddd;border-radius:10px;padding:13px;margin:14px 0;background:#fafafa}
.cmh-room-summary h4{margin-top:0}
.cmh-room-total{font-weight:800;font-size:17px;margin-top:12px}
.cmh-stay-info{font-weight:600}
@media(max-width:800px){.cmh-main-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.cmh-main-grid,.cmh-room-fields{grid-template-columns:1fr}}

.cmh-hotel-info{display:inline-block;margin:2px 0 12px;font-weight:700;text-decoration:none}
.cmh-hotel-info:hover{text-decoration:underline}

/* VERSION 1.7 - Ajustes de botones */
.cmh-wa{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
}

.cmh-email{
    background:#1677ff !important;
    color:#ffffff !important;
    text-align:center !important;
}

/* VERSION 1.8 - Promociones por temporada */
.cmh-promo-result{
    margin:12px 0 16px;
    padding:14px 16px;
    border-radius:10px;
    border:1px solid #f0c36d;
    background:#fff8e7;
}
.cmh-promo-title{
    font-weight:800;
    margin-bottom:6px;
    font-size:15px;
}
.cmh-promo-text{
    font-size:15px;
    line-height:1.5;
    font-weight:600;
}


/* VERSION 2.3 - Resultados compactos desplegables */
.cmh-results-grid.cmh-results-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.cmh-results-list .cmh-result-item{
    border:1px solid #d9dde2;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
}

.cmh-result-toggle{
    width:100%;
    border:0;
    background:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:16px;
    padding:14px 18px;
    text-align:left;
}

.cmh-result-toggle:hover{
    background:#f7f9fb;
}

.cmh-result-left{
    display:flex;
    align-items:center;
    gap:14px;
    flex:1;
    min-width:0;
}

.cmh-result-thumb{
    width:76px;
    height:58px;
    object-fit:cover;
    border-radius:8px;
    flex:0 0 auto;
}

.cmh-result-thumb-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f0f2f4;
    font-size:26px;
}

.cmh-result-text{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
}

.cmh-result-hotel{
    font-size:18px;
    color:#222;
}

.cmh-result-meta{
    color:#667085;
    font-size:14px;
}

.cmh-result-right{
    margin-left:auto;
    text-align:right;
    white-space:nowrap;
}

.cmh-result-total{
    font-weight:800;
    font-size:17px;
    color:#222;
}

.cmh-result-arrow{
    font-size:25px;
    line-height:1;
    transition:transform .25s ease;
}

.cmh-result-open .cmh-result-arrow{
    transform:rotate(180deg);
}

.cmh-result-details{
    display:none;
    border-top:1px solid #e5e7eb;
    padding:18px;
    background:#fafafa;
}

/* La tarjeta original conserva su diseño, ahora dentro del detalle */
.cmh-result-details .cmh-card{
    margin:0;
    width:100%;
}

@media(max-width:700px){
    .cmh-result-toggle{
        gap:10px;
        padding:12px;
    }

    .cmh-result-thumb{
        width:58px;
        height:50px;
    }

    .cmh-result-hotel{
        font-size:16px;
    }

    .cmh-result-meta{
        font-size:12px;
    }

    .cmh-result-total{
        font-size:14px;
    }

    .cmh-result-details{
        padding:10px;
    }
}

@media(max-width:480px){
    .cmh-result-meta{
        display:none;
    }

    .cmh-result-thumb{
        width:48px;
        height:48px;
    }

    .cmh-result-total{
        max-width:115px;
        white-space:normal;
    }
}

.cmh-kid-promo-tag{
    display:inline-block;
    margin-left:6px;
    padding:2px 7px;
    border-radius:10px;
    font-size:12px;
    font-weight:700;
    background:#fff3cd;
}
.cmh-kids-promo-applied{
    margin-top:10px;
    padding:9px 11px;
    border-radius:7px;
    background:#eef9f0;
    font-weight:700;
}

/* VERSION 2.7 - Corrección de resultados compactos en smartphone */
@media(max-width:600px){
    .cmh-result-toggle{
        display:grid;
        grid-template-columns:52px minmax(0,1fr) auto;
        grid-template-rows:auto auto;
        gap:8px 10px;
        align-items:center;
        padding:14px 12px;
    }

    /* Los elementos internos pasan a ocupar columnas independientes.
       Así el total ya no aplasta el nombre del hotel. */
    .cmh-result-left{
        display:contents;
    }

    .cmh-result-thumb{
        grid-column:1;
        grid-row:1 / span 2;
        width:52px;
        height:52px;
        min-width:52px;
    }

    .cmh-result-text{
        grid-column:2;
        grid-row:1;
        display:flex;
        flex-direction:column;
        min-width:0;
        width:100%;
    }

    .cmh-result-hotel{
        display:block;
        width:100%;
        min-width:0;
        white-space:normal;
        word-break:normal;
        overflow-wrap:break-word;
        line-height:1.25;
        font-size:17px;
    }

    .cmh-result-meta{
        white-space:normal;
        line-height:1.35;
    }

    .cmh-result-right{
        grid-column:2;
        grid-row:2;
        margin-left:0;
        min-width:0;
        width:100%;
        text-align:left;
        white-space:normal;
    }

    .cmh-result-total{
        display:block;
        max-width:none;
        white-space:normal;
        line-height:1.3;
        font-size:16px;
    }

    .cmh-result-arrow{
        grid-column:3;
        grid-row:1 / span 2;
        align-self:center;
        justify-self:end;
        padding-left:2px;
        font-size:28px;
    }
}

@media(max-width:380px){
    .cmh-result-toggle{
        grid-template-columns:46px minmax(0,1fr) auto;
        gap:7px 8px;
        padding:12px 10px;
    }

    .cmh-result-thumb{
        width:46px;
        height:46px;
        min-width:46px;
    }

    .cmh-result-hotel{
        font-size:16px;
    }

    .cmh-result-total{
        font-size:15px;
    }
}


/* VERSION 2.8 - Datos opcionales del cliente */
.cmh-client-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:16px 0 4px;
    padding:14px;
    border:1px solid #dfe3e8;
    border-radius:10px;
    background:#fafafa;
}
.cmh-client-fields p{margin:0;}
.cmh-optional{font-weight:400;color:#667085;font-size:13px;}
@media(max-width:600px){
    .cmh-client-fields{grid-template-columns:1fr;padding:12px;}
}


/* VERSION 2.9 - Datos de contacto y salida predeterminada de 2 noches */
.cmh-client-fields{position:relative;}
.cmh-client-fields-title{grid-column:1/-1;font-size:16px;font-weight:800;margin-bottom:2px;}
.cmh-client-fields-title span{font-size:13px;font-weight:400;color:#667085;}
.cmh-client-fields-help{grid-column:1/-1;font-size:13px;color:#667085;line-height:1.4;}
.cmh-result-contact{margin:16px 0;padding:14px;border:1px solid #dfe3e8;border-radius:10px;background:#fafafa;}
.cmh-result-contact-title{font-size:16px;font-weight:800;margin-bottom:10px;}
.cmh-result-contact-title span{font-size:13px;font-weight:400;color:#667085;}
.cmh-result-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cmh-result-contact-grid p{margin:0;}
.cmh-result-contact-grid label{display:block;font-weight:600;margin-bottom:5px;}
.cmh-result-contact-grid input{width:100%;box-sizing:border-box;}
.cmh-result-contact-help{font-size:13px;color:#667085;margin-top:9px;line-height:1.4;}
@media(max-width:600px){
 .cmh-result-contact-grid{grid-template-columns:1fr;}
 .cmh-result-contact{padding:12px;}
}


/* v3.0 - Datos obligatorios únicamente al solicitar por correo */
.cmh-result-client-name:focus,
.cmh-result-client-whatsapp:focus{
    outline:2px solid #d0d7de;
    outline-offset:1px;
}
