/*
 * Mexican Sunset — Transfer Quote plugin styles
 * Todas las clases llevan el prefijo mxs- para no chocar con el CSS del
 * tema de WordPress. Paleta de marca: navy/coral/sand/teal/ink/line.
 */
.mxs-tq-root{
    --mxs-navy:#132433; --mxs-coral:#E8653A; --mxs-sand:#F5EDD8;
    --mxs-teal:#2A7D7B; --mxs-ink:#1F2937; --mxs-line:#E5E7EB;
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    color:var(--mxs-ink);
    box-sizing:border-box;
}
.mxs-tq-root *, .mxs-tq-root *::before, .mxs-tq-root *::after{box-sizing:inherit}
/* Algunos temas de WordPress aplican max-width/float a los hijos directos
   de .entry-content; estas reglas blindan el formulario contra eso sin
   necesidad de tocar el CSS del tema. */
.entry-content .mxs-tq-root,
.entry-content .mxs-tq-root p,
.wp-block-shortcode .mxs-tq-root{
    width:100%!important;
    max-width:100%!important;
    float:none!important;
}
/* El tema de mexicansunset.com define .quoter{max-width:640px} pensando en
   el mockup angosto original. Cuando ese contenedor envuelve nuestro
   formulario real (mxs-tq-root), lo ensanchamos para que quepa el layout
   horizontal completo. :has() no toca el CSS del tema ni afecta al mockup
   si algún día vuelve a mostrarse (ese caso no cae en este selector). */
.quoter:has(.mxs-tq-root){
    max-width:1100px!important;
    padding:0!important;
    background:transparent!important;
    backdrop-filter:none!important;
    border:none!important;
    box-shadow:none!important;
}
/* El tema define .hero{min-height:100svh}, o sea el hero mide el alto
   completo de la pantalla en escritorio Y en tablet (solo lo compacta a
   min-height:auto dentro de @media(max-width:560px)). Por eso un margin-top
   fijo en .quoter-wrap nunca alcanza a cerrar el hueco en tablet (561-1100px,
   ej. iPad Mini 768px / iPad Pro 1032px): el hero crece con el alto del
   viewport, no es un tamaño fijo que un margen en px pueda compensar. La
   solucion real es replicar ahi el mismo ajuste que el tema ya hace en
   movil: compactar el .hero (quitarle el min-height de pantalla completa)
   en vez de solo mover la tarjeta con margin-top. El selector usa
   ".hero:has(+ .wrap .mxs-tq-root)" porque el hermano siguiente real de
   .hero es "div.wrap#cotizador", que contiene a .quoter-wrap adentro (no
   es hermano directo). */
@media (max-width:1100px) and (min-width:561px){
    .hero:has(+ .wrap .mxs-tq-root){min-height:auto!important; padding:90px 0 60px!important}
    .quoter-wrap:has(.mxs-tq-root){margin-top:-60px!important}
}
/* En celular el tema ya compacta el hero y pone margin-top:-34px (ver arriba),
   pero con el boton "Get your transfer quote" del hero tan cerca, la tarjeta
   queda encimada justo en esa franja. Se afloja un poco el margen solo en
   este rango (sin tocar el de tablet) para que la tarjeta caiga en la zona
   blanca de abajo, no sobre el boton. */
@media (max-width:560px){
    .quoter-wrap:has(.mxs-tq-root){margin-top:10px!important}
}
.mxs-d-none{display:none!important}
.mxs-mb-3{margin-bottom:1rem}
.mxs-mt-1{margin-top:.25rem}
.mxs-mt-3{margin-top:1rem}
.mxs-fw-bold{font-weight:800}

/* Tarjeta contenedora, flotante sobre el hero via margin negativo aplicado
   por el tema/pagina que la incluya (ver README del plugin). */
.mxs-booking-card{
    display:block;
    width:100%;
    background:#fff;
    border-radius:28px;
    box-shadow:0 28px 70px rgba(15,23,42,.14);
    border:1px solid rgba(15,23,42,.04);
    /* Sin overflow:hidden aquí: recortaba el dropdown de resultados de
       hotel (.mxs-results, position:absolute) que se extiende más allá
       del borde de la tarjeta. Las tarjetas de vehículo (.mxs-card-option)
       ya tienen su propio overflow:hidden para sus esquinas redondeadas,
       así que no se pierde ningún recorte visual necesario. */
    max-width:1060px;
    margin:0 auto;
}
.mxs-booking-inner{padding:28px}
@media (max-width:768px){ .mxs-booking-inner{padding:18px} }

.mxs-step{display:none}
.mxs-step.mxs-step-active{display:block}

.mxs-alert{border-radius:14px;padding:12px 16px;font-size:.9rem;margin-bottom:12px}
.mxs-alert-success{background:#f0fff4;border:1px solid #badbcc;color:#0f5132}
.mxs-alert-danger{background:#fff5f5;border:1px solid #f5c2c7;color:#842029}
.mxs-alert-info{background:#eef8fb;border:1px solid #b6e0ea;color:#0f4c5c}

.mxs-toast-stack{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 24px))}
.mxs-toast{min-width:280px;max-width:100%;border-radius:16px;padding:14px 16px;box-shadow:0 18px 40px rgba(15,23,42,.18);border:1px solid transparent;opacity:0;transform:translateY(-8px);transition:.18s ease}
.mxs-toast.mxs-show{opacity:1;transform:translateY(0)}
.mxs-toast .mxs-toast-title{font-weight:900;margin-bottom:2px}
.mxs-toast .mxs-toast-msg{font-size:.92rem;line-height:1.35}
.mxs-toast.mxs-error{background:#fff5f5;border-color:#f5c2c7;color:#842029}
.mxs-toast.mxs-success{background:#f0fff4;border-color:#badbcc;color:#0f5132}
.mxs-toast.mxs-info{background:#eef8fb;border-color:#b6e0ea;color:#0f4c5c}
.mxs-toast .mxs-toast-close{float:right;border:none;background:transparent;font-size:1rem;cursor:pointer;line-height:1;color:inherit;opacity:.6}

.mxs-quotebar-head{margin-bottom:18px}
.mxs-quotebar-head h2{font-size:clamp(1.4rem,2vw,1.9rem);font-weight:900;color:#1b2a33;margin:0 0 6px}
.mxs-quotebar-head p{color:#5e7c88;margin:0;font-size:.96rem}

.mxs-qb-tabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap;border-bottom:1px solid #e6e0d7}
.mxs-qb-tab{border:none;background:transparent;padding:10px 16px;font-weight:800;font-size:.92rem;color:#7d929a;border-radius:10px 10px 0 0;cursor:pointer;position:relative;top:1px}
.mxs-qb-tab.mxs-active{color:var(--mxs-coral);border-bottom:2px solid var(--mxs-coral)}

.mxs-quotebar{display:grid;grid-template-columns:1.4fr 1.1fr .8fr .8fr auto;gap:0;border:1px solid #e6e0d7;border-radius:20px;background:#fff}
.mxs-quotebar.mxs-two-places{grid-template-columns:1fr 1fr .8fr .8fr auto}
.mxs-qb-field{position:relative;padding:12px 18px;border-right:1px solid #e6e0d7}
.mxs-qb-field:last-of-type{border-right:none}
.mxs-qb-field:first-child{border-radius:20px 0 0 20px}
.mxs-qb-label{font-size:.72rem;font-weight:800;letter-spacing:.03em;color:#8b9aa0;margin-bottom:3px}
.mxs-qb-input{border:none;outline:none;width:100%;padding:0;font-size:.98rem;font-weight:600;color:#1b2a33;background:transparent;appearance:none;font-family:inherit}
.mxs-qb-input::placeholder{color:#9aa7af;font-weight:500}
.mxs-qb-select-wrap{position:relative}
.mxs-qb-select-wrap .mxs-qb-input{padding-right:18px}
.mxs-qb-select-wrap::after{content:'';position:absolute;right:2px;top:50%;width:8px;height:8px;border-right:2px solid #7d929a;border-bottom:2px solid #7d929a;transform:translateY(-65%) rotate(45deg);pointer-events:none}
.mxs-qb-btn{background:var(--mxs-coral);color:#fff;border:none;font-weight:800;font-size:.98rem;padding:14px 30px;white-space:nowrap;cursor:pointer;transition:.15s;border-radius:0 20px 20px 0;align-self:stretch}
.mxs-qb-btn:hover{background:#d75c30}
@media (max-width:900px){
    .mxs-quotebar, .mxs-quotebar.mxs-two-places{grid-template-columns:1fr}
    .mxs-qb-field{
        border-right:none;
        border-bottom:1px solid #e6e0d7;
        padding:16px 18px;
        min-height:64px;
    }
    .mxs-qb-field:first-child{border-radius:20px 20px 0 0}
    .mxs-qb-field:last-of-type{border-bottom:none}
    .mxs-qb-label{font-size:.74rem;margin-bottom:5px}
    .mxs-qb-input{font-size:1.02rem;white-space:normal;overflow:visible;text-overflow:clip}
    .mxs-qb-pax-btn{font-size:1.02rem}
    .mxs-qb-btn{padding:18px;font-size:1.02rem;border-radius:0 0 20px 20px}
}
@media (max-width:480px){
    .mxs-quotebar-head h2{font-size:1.45rem;line-height:1.2}
    .mxs-quotebar-head p{font-size:.88rem}
    .mxs-qb-tabs{gap:2px}
    .mxs-qb-tab{padding:9px 12px;font-size:.84rem}
    .mxs-qb-badges{gap:10px 16px;font-size:.8rem}
}

.mxs-search-wrap{position:relative}
.mxs-results{position:absolute;z-index:20;left:0;right:0;top:100%;margin-top:6px;background:#fff;border:1px solid var(--mxs-line);border-radius:12px;box-shadow:0 16px 32px rgba(15,23,42,.14);display:none;max-height:260px;overflow:auto}
.mxs-result-item{padding:9px 14px;border-bottom:1px solid #f3f4f6;cursor:pointer;font-size:.85rem}
.mxs-result-item:last-child{border-bottom:none}
.mxs-result-item:hover{background:#FFF7F1}
.mxs-result-title{font-weight:600;font-size:.78rem;line-height:1.3}
.mxs-result-sub{font-size:.68rem;color:#8b9aa0;margin-top:1px}

.mxs-qb-pax-btn{width:100%;text-align:left;border:none;background:transparent;padding:0;font-size:.98rem;font-weight:600;color:#1b2a33;cursor:pointer;font-family:inherit}
.mxs-qb-pax-panel{position:absolute;z-index:30;top:calc(100% + 8px);left:18px;right:18px;min-width:220px;background:#fff;border:1px solid var(--mxs-line);border-radius:16px;box-shadow:0 20px 40px rgba(15,23,42,.16);padding:14px;display:none}
.mxs-qb-pax-panel.mxs-show{display:block}
.mxs-qb-pax-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}
.mxs-lbl{font-weight:700;font-size:.92rem;color:#1b2a33}
.mxs-lbl small{display:block;font-weight:500;color:#8b9aa0;font-size:.74rem}
.mxs-counter-actions{display:flex;align-items:center;gap:6px}
.mxs-counter-btn{width:28px;height:28px;border-radius:8px;border:1px solid #d8ddd9;background:#fff;color:#0f8b97;font-size:.9rem;font-weight:900;cursor:pointer}
.mxs-counter-value{font-size:.95rem;font-weight:900;color:#20313b;min-width:20px;width:32px;text-align:center;border:none;background:transparent}

.mxs-qb-hint{margin-top:10px;font-size:.84rem;color:#8b9aa0}
.mxs-qb-tip{margin-top:14px;background:#FFF7ED;border:1px solid #FBD9BC;border-radius:14px;padding:12px 16px;font-size:.88rem;color:#9A3412}
.mxs-qb-badges{margin-top:16px;display:flex;flex-wrap:wrap;gap:18px;font-size:.86rem;color:#4b5d67}

.mxs-helper{font-size:.8rem;color:#6b7280}

.mxs-trip-recap{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:14px 16px;border:1px solid var(--mxs-line);border-radius:14px;background:#F7F9FA;margin-bottom:1rem}
.mxs-trip-recap-item{display:flex;align-items:flex-start;gap:10px}
.mxs-trip-recap-label{font-size:.72rem;font-weight:800;letter-spacing:.03em;color:#8b9aa0;text-transform:uppercase}
.mxs-trip-recap-value{font-size:.9rem;font-weight:700;color:#1b2a33}

/* Ficha de vehiculo */
.mxs-card-option{border:1px solid var(--mxs-line);border-radius:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;background:#fff;overflow:hidden;position:relative;margin-bottom:14px}
.mxs-card-option:hover{transform:translateY(-2px);border-color:#d1d5db}
.mxs-card-option.mxs-active{border-color:var(--mxs-coral);box-shadow:0 14px 30px rgba(232,101,58,.16)}
.mxs-card-option::after{content:'▾';position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:1rem;display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .2s,background .2s}
.mxs-card-option.mxs-active::after{background:var(--mxs-coral);box-shadow:0 2px 6px rgba(0,0,0,.2);transform:rotate(180deg)}

.mxs-opt-head{padding:14px 16px 12px;color:#fff}
.mxs-opt-head .mxs-opt-title{font-weight:800;font-size:1.05rem;letter-spacing:-.01em;margin:0}
.mxs-opt-head .mxs-opt-desc{font-size:.78rem;color:rgba(255,255,255,.78);margin-top:2px}
.mxs-card-option[data-cat="sedan"] .mxs-opt-head{background:var(--mxs-navy)}
.mxs-card-option[data-cat="van"] .mxs-opt-head{background:var(--mxs-teal)}
.mxs-card-option[data-cat="sprinter"] .mxs-opt-head{background:#B24A26}
.mxs-card-option[data-cat="suburban"] .mxs-opt-head{background:var(--mxs-ink);box-shadow:inset 0 -2px 0 #C9A15A}

.mxs-opt-body{
    display:grid;
    grid-template-columns:minmax(280px,31%) minmax(0,1fr) 150px;
    align-items:stretch;
    gap:0;
    padding:18px 20px;
    min-height:285px;
}
.mxs-opt-img{
    width:100%; height:100%; min-height:245px; max-height:285px;
    object-fit:contain; object-position:center; border-radius:12px; background:#fff;
    border:1px solid var(--mxs-line); padding:14px; align-self:center;
}
.mxs-opt-main{min-width:0;padding:18px 28px;display:flex;flex-direction:column;gap:22px;justify-content:center}
.mxs-opt-resumen{margin:0;font-size:.96rem;line-height:1.55;color:#4b5d67}
.mxs-opt-attrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 30px}
.mxs-opt-attr{display:flex;align-items:center;gap:12px}
.mxs-opt-attr .mxs-attr-icon{flex:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:#fff}
.mxs-card-option[data-cat="sedan"] .mxs-attr-icon{background:var(--mxs-navy)}
.mxs-card-option[data-cat="van"] .mxs-attr-icon{background:var(--mxs-teal)}
.mxs-card-option[data-cat="sprinter"] .mxs-attr-icon{background:#B24A26}
.mxs-card-option[data-cat="suburban"] .mxs-attr-icon{background:var(--mxs-ink)}
.mxs-attr-label{font-size:.69rem;font-weight:800;color:#8b9aa0;letter-spacing:.01em;margin-bottom:2px}
.mxs-attr-value{font-size:.86rem;font-weight:600;color:var(--mxs-ink);line-height:1.25}
.mxs-opt-price-col{min-width:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 14px 18px 28px;border-left:1px solid var(--mxs-line)}
.mxs-opt-price{font-size:1.75rem;line-height:1;font-weight:900;color:var(--mxs-coral)}
.mxs-opt-badge-rec{font-size:.7rem;font-weight:800;letter-spacing:.02em;color:var(--mxs-teal);background:#EAF6F5;padding:5px 10px;border-radius:20px}

@media (max-width:900px){
    .mxs-opt-body{grid-template-columns:240px minmax(0,1fr);padding:16px;min-height:0}
    .mxs-opt-img{min-height:220px;max-height:250px;padding:12px}
    .mxs-opt-main{padding:14px 20px}
    .mxs-opt-price-col{grid-column:1/-1;border-left:none;border-top:1px solid var(--mxs-line);flex-direction:row;justify-content:space-between;align-items:center;padding:14px 4px 0;margin-top:16px}
}
@media (max-width:700px){
    .mxs-opt-body{grid-template-columns:1fr;padding:14px}
    .mxs-opt-img{width:100%;height:210px;min-height:210px;max-height:210px;padding:10px}
    .mxs-opt-main{padding:18px 4px 6px;gap:18px}
    .mxs-opt-attrs{grid-template-columns:1fr 1fr;gap:14px 12px}
    .mxs-opt-price-col{grid-column:auto;margin-top:12px}
}
@media (max-width:480px){ .mxs-opt-attrs{grid-template-columns:1fr} }

.mxs-service-highlights{display:flex;flex-wrap:wrap;gap:10px 18px;padding:14px 16px;border:1px solid var(--mxs-line);border-radius:14px;background:#FAFAF8;margin-top:1rem}
.mxs-service-highlights span{font-size:.86rem;color:#4b5d67;font-weight:500}

.mxs-actions-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.5rem}
.mxs-btn{border:none;border-radius:10px;padding:12px 26px;font-weight:800;font-size:.95rem;cursor:pointer;font-family:inherit}
.mxs-btn-coral{background:var(--mxs-coral);color:#fff}
.mxs-btn-coral:hover{background:#d75c30}
.mxs-btn-coral:disabled{opacity:.5;cursor:not-allowed}
.mxs-btn-outline{background:#fff;border:1px solid var(--mxs-line);color:var(--mxs-ink)}
.mxs-d-flex-start{display:flex;align-items:flex-start;gap:8px}
.mxs-btn-back-top{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--mxs-line);background:#fff;color:var(--mxs-ink);display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;transition:.15s}
.mxs-btn-back-top:hover{background:#f7f9fa;border-color:#d1d5db}

.mxs-trip-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mxs-summary-field{display:flex;flex-direction:column;gap:6px}
.mxs-label{font-size:.72rem;font-weight:800;letter-spacing:.03em;color:#8b9aa0;text-transform:uppercase}
.mxs-field-control{height:52px;border-radius:12px;border:1px solid #e6e0d7;padding:0 16px;font-size:.98rem;width:100%;font-family:inherit}
.mxs-field-control:focus{outline:none;border-color:#7cc0cb;box-shadow:0 0 0 .2rem rgba(15,139,151,.12)}
.mxs-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mxs-field-wrap{position:relative}
.mxs-airline-wrap{position:relative}
.mxs-airline-helper{margin-top:6px}
.mxs-section-label{font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;font-weight:800;color:#8b9aa0;margin-bottom:6px;display:block}

.mxs-paypal-box{max-width:420px;margin-left:auto;margin-right:auto}
.mxs-paypal-box iframe{margin-left:auto!important;margin-right:auto!important}

@media (max-width:768px){
    .mxs-trip-summary, .mxs-row-2{grid-template-columns:1fr}
}
