{"id":38445,"date":"2026-09-16T15:35:00","date_gmt":"2026-09-16T15:35:00","guid":{"rendered":"https:\/\/mhtravelagencyweb.com\/?page_id=38445"},"modified":"2026-09-30T12:44:46","modified_gmt":"2026-09-30T12:44:46","slug":"request-your-travel-quote","status":"publish","type":"page","link":"https:\/\/mhtravelagencyweb.com\/en\/cotiza-tus-vacaciones\/","title":{"rendered":"Request a quote for your next vacation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"38445\" class=\"elementor elementor-38445\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a3bb54f e-con-full e-flex e-con e-parent\" data-id=\"a3bb54f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce3bec5 elementor-widget elementor-widget-html\" data-id=\"ce3bec5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n MAGIC HOLIDAYS - COTIZA TUS VACACIONES\n VERSI\u00d3N COMPLETA + COTIZADOR CONVERSACIONAL V3.0.31 - TEXTOS PRESUPUESTO\n HERO FULL WIDTH + JOTFORM + UTM + VIDEO FLOTANTE\n========================================================= -->\n\n<div class=\"mh-budget-page\">\n\n  <!-- =====================================================\n       HERO PRINCIPAL\n  ====================================================== -->\n  <section class=\"mh-budget-hero\">\n\n    <div class=\"mh-budget-hero-overlay\"><\/div>\n\n    <div class=\"mh-container mh-hero-content\">\n\n      <span class=\"mh-kicker mh-kicker-white\">\n        PLANIFIQUEMOS JUNTOS\n      <\/span>\n\n      <h1>\n        Tu pr\u00f3ximo viaje<br>\n        <span>comienza ac\u00e1<\/span>\n      <\/h1>\n\n      <p class=\"mh-hero-text\">\n        Recib\u00ed un presupuesto personalizado y empez\u00e1 a planificar\n        tus pr\u00f3ximas vacaciones con el acompa\u00f1amiento de nuestros especialistas.\n      <\/p>\n\n      <div class=\"mh-hero-trust\">\n\n        <div>\n          <span>\u2713<\/span>\n          Asesoramiento personalizado\n        <\/div>\n\n        <div>\n          <span>\u2713<\/span>\n          Planificaci\u00f3n sin costo\n        <\/div>\n\n        <div>\n          <span>\u2713<\/span>\n          Precios oficiales\n        <\/div>\n\n      <\/div>\n\n      <div class=\"mh-hero-cta-wrap\">\n\n        <a href=\"#mh-jotform-container\"\n           class=\"mh-btn mh-hero-main-cta mh-form-scroll\">\n\n          <span class=\"mh-hero-main-cta-text\">\n            SOLICITAR MI PRESUPUESTO\n          <\/span>\n\n          <span class=\"mh-hero-main-cta-arrow\">\u2193<\/span>\n\n        <\/a>\n\n        <div class=\"mh-hero-cta-note\">\n          Gratis \u00b7 Sin compromiso\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       BENEFICIOS\n  ====================================================== -->\n  <section class=\"mh-section mh-intro\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-heading\">\n\n        <span class=\"mh-kicker\">\n          VIAJ\u00c1 CON MAGIC HOLIDAYS\n        <\/span>\n\n        <h2>\n          Hacemos que planificar tus vacaciones\n          sea <span>m\u00e1s f\u00e1cil<\/span>\n        <\/h2>\n\n        <p>\n          Contanos c\u00f3mo imagin\u00e1s tu pr\u00f3ximo viaje. Nuestro equipo analizar\u00e1\n          tu solicitud y un agente especializado se pondr\u00e1 en contacto con vos\n          para ayudarte a planificar cada detalle.\n        <\/p>\n\n      <\/div>\n\n\n      <div class=\"mh-benefits\">\n\n        <div class=\"mh-benefit\">\n\n          <div class=\"mh-number\">01<\/div>\n\n          <div>\n            <h3>Atenci\u00f3n personalizada<\/h3>\n\n            <p>\n              Un agente especializado te acompa\u00f1ar\u00e1 durante\n              la planificaci\u00f3n de tu viaje.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-benefit\">\n\n          <div class=\"mh-number\">02<\/div>\n\n          <div>\n            <h3>Sin costo adicional<\/h3>\n\n            <p>\n              Nuestro servicio de asesoramiento y planificaci\u00f3n\n              no tiene costo adicional.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-benefit\">\n\n          <div class=\"mh-number\">03<\/div>\n\n          <div>\n            <h3>Precios oficiales<\/h3>\n\n            <p>\n              Trabajamos con tarifas oficiales de los destinos\n              que comercializamos.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-benefit\">\n\n          <div class=\"mh-number\">04<\/div>\n\n          <div>\n            <h3>Siempre acompa\u00f1ados<\/h3>\n\n            <p>\n              Estamos para ayudarte antes y durante\n              tu experiencia de viaje.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       RECONOCIMIENTO + RESE\u00d1AS\n  ====================================================== -->\n  <section class=\"mh-section mh-reputation\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-award-box\">\n\n        <div class=\"mh-award-image\">\n\n          <img decoding=\"async\"\n            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/magic-holidays-travel-agency-crystal-1.png\"\n            alt=\"Reconocimiento 2026 de Magic Holidays Travel Agency\"\n            loading=\"lazy\"\n          >\n\n        <\/div>\n\n\n        <div class=\"mh-award-content\">\n\n          <span class=\"mh-kicker\">\n            RECONOCIMIENTO 2026\n          <\/span>\n\n          <h2>\n            Somos la Agencia de Viajes en Orlando\n            <span>con mejores rese\u00f1as de viajeros<\/span>\n          <\/h2>\n\n          <p>\n            Magic Holidays Travel Agency fue reconocida por\n            <strong>BusinessRate<\/strong> como la agencia de viajes\n            en Orlando con mejores rese\u00f1as.\n          <\/p>\n\n          <p>\n            Un reconocimiento que refleja las experiencias y opiniones\n            de los viajeros que confiaron en nuestro equipo para\n            planificar sus vacaciones.\n          <\/p>\n\n          <div class=\"mh-award-trust\">\n\n            <div>\n              <span>\u2713<\/span>\n              Opiniones de viajeros reales\n            <\/div>\n\n            <div>\n              <span>\u2713<\/span>\n              Reconocimiento 2026\n            <\/div>\n\n            <div>\n              <span>\u2713<\/span>\n              Orlando, Florida\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <!-- RESE\u00d1AS -->\n\n      <div class=\"mh-reputation-reviews\">\n\n        <div class=\"mh-reviews-heading\">\n\n          <span class=\"mh-kicker\">\n            EXPERIENCIAS REALES\n          <\/span>\n\n          <h3>\n            La confianza de nuestros viajeros\n            <span>nos llev\u00f3 hasta ac\u00e1<\/span>\n          <\/h3>\n\n          <p>\n            Conoc\u00e9 algunas de las experiencias de quienes ya planificaron\n            sus vacaciones junto a Magic Holidays.\n          <\/p>\n\n        <\/div>\n\n\n        <div class=\"mh-reviews-box\">\n\n          <script\n            defer\n            async\n            src=\"https:\/\/cdn.trustindex.io\/loader.js?1586b9981f5661226276c4aba4d\">\n          <\/script>\n\n        <\/div>\n\n\n        <div class=\"mh-small-trust\">\n          <span>\u2713<\/span>\n          Opiniones reales de nuestros viajeros\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       FORMULARIO\n  ====================================================== -->\n  <section class=\"mh-section mh-form-section\" id=\"presupuesto\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-heading\">\n\n        <span class=\"mh-kicker\">\n          COMENCEMOS\n        <\/span>\n\n        <h2>\n          Contanos sobre tu\n          <span>pr\u00f3ximo viaje<\/span>\n        <\/h2>\n\n        <p>\n          Complet\u00e1 el formulario con algunos datos sobre tus vacaciones.\n          Cuanta m\u00e1s informaci\u00f3n nos brindes, mejor podremos ayudarte.\n        <\/p>\n\n      <\/div>\n\n\n      <div class=\"mh-form-box mh-conversational-form-box\">\n\n        <!-- COTIZADOR CONVERSACIONAL MAGIC HOLIDAYS V3.0.31 - TEXTOS PRESUPUESTO -->\n        <div id=\"mh-jotform-container\" class=\"mh-jotform mh-conversational-form\">\n<!-- =========================================================\n MAGIC HOLIDAYS\n COTIZADOR CONVERSACIONAL V3.0.24\n DESTINOS + CRUCEROS + HOTELES + TICKETS VISUALES\n PA\u00cdSES VISUALES\n GRUPO DE VIAJE VISUAL DIN\u00c1MICO\n PRODUCCI\u00d3N - ENV\u00cdO SEGURO A JOTFORM\n========================================================= -->\n\n<!--\n=========================================================\nMAGIC HOLIDAYS - V3.0.24\nCONDICIONALES ALINEADOS CON EL JOTFORM NATIVO\n\n\u00daNICOS CAMPOS CONDICIONALES:\n1. \"\u00bfQu\u00e9 crucero est\u00e1s buscando?\" -> solo si destino = Crucero.\n2. \"\u00bfCu\u00e1l es el destino a donde quieres viajar?\" -> solo si destino = Otro destino.\n3. \"Indique el c\u00f3digo del descuento\" -> solo si descuento = S\u00cd.\n\n\"Alojamiento\" y \"Tickets\" aparecen SIEMPRE, para cualquier destino.\nEjemplo Crucero:\nDestino -> Naviera -> Fecha -> Alojamiento -> Tickets -> Viajeros...\n=========================================================\n-->\n\n<style>\n#mh-quote-v2,\n#mh-quote-v2 * {\n    box-sizing: border-box;\n}\n\n#mh-quote-v2 {\n    --mh: #18938a;\n    --mh-dark: #10756e;\n    --mh-darker: #0b5d57;\n    --mh-soft: #eaf8f6;\n    --text: #202b2a;\n    --muted: #6e7977;\n    --border: #e3e9e8;\n    --danger: #c0392b;\n\n    width: 100%;\n    font-family: inherit;\n    color: var(--text);\n}\n\n\n\/* =========================================================\n CONTENEDOR\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-section {\n    width: 100%;\n    padding: 32px 18px 45px;\n\n    background:\n        radial-gradient(\n            circle at 10% 5%,\n            rgba(24,147,138,.08),\n            transparent 27%\n        ),\n        radial-gradient(\n            circle at 90% 90%,\n            rgba(24,147,138,.07),\n            transparent 30%\n        ),\n        #f8fbfb;\n}\n\n#mh-quote-v2 .mhv2-shell {\n    width: 100%;\n    max-width: 820px;\n    margin: 0 auto;\n}\n\n#mh-quote-v2 .mhv2-card {\n    overflow: hidden;\n    background: #fff;\n\n    border: 1px solid rgba(24,147,138,.13);\n    border-radius: 27px;\n\n    box-shadow:\n        0 25px 70px rgba(15,70,67,.09),\n        0 4px 15px rgba(15,70,67,.04);\n}\n\n\n\/* =========================================================\n CABECERA\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-header {\n    position: relative;\n    overflow: hidden;\n\n    padding: 18px 25px 15px;\n\n    border-bottom: 1px solid rgba(255,255,255,.15);\n\n    background:\n        radial-gradient(\n            circle at 18% 10%,\n            rgba(255,255,255,.14),\n            transparent 30%\n        ),\n        linear-gradient(\n            120deg,\n            #14a096 0%,\n            #0b756d 47%,\n            #05403a 100%\n        );\n\n    box-shadow:\n        inset 0 -1px 0 rgba(0,0,0,.05);\n}\n\n#mh-quote-v2 .mhv2-header::before {\n    content: \"\";\n    position: absolute;\n    width: 170px;\n    height: 170px;\n    right: 9%;\n    top: -125px;\n    border-radius: 50%;\n    background: rgba(255,255,255,.07);\n    pointer-events: none;\n}\n\n#mh-quote-v2 .mhv2-header::after {\n    content: \"\u2708\";\n    position: absolute;\n    right: 31px;\n    top: 10px;\n\n    color: rgba(255,255,255,.20);\n    font-size: 34px;\n    line-height: 1;\n\n    transform: rotate(-12deg);\n    pointer-events: none;\n}\n\n#mh-quote-v2 .mhv2-header-row {\n    position: relative;\n    z-index: 2;\n\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 15px;\n}\n\n#mh-quote-v2 .mhv2-brand {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n}\n\n#mh-quote-v2 .mhv2-brand-icon {\n    width: 41px;\n    height: 41px;\n    min-width: 41px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    overflow: hidden;\n\n    border: 1px solid rgba(255,255,255,.32);\n    border-radius: 13px;\n\n    background: rgba(255,255,255,.96);\n\n    color: #fff;\n    font-size: 0;\n\n    box-shadow:\n        0 8px 20px rgba(0,0,0,.16);\n}\n\n\/* Logo Magic Holidays dentro del espacio que antes ocupaba el avi\u00f3n *\/\n#mh-quote-v2 .mhv2-brand-icon::before {\n    content: \"\";\n\n    width: 34px;\n    height: 34px;\n\n    display: block;\n\n    background-image:\n        url(\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/04\/logo.png\");\n    background-repeat: no-repeat;\n    background-position: center;\n    background-size: contain;\n}\n\n#mh-quote-v2 .mhv2-brand-title {\n    color: #fff;\n\n    font-size: 15px;\n    font-weight: 850;\n    line-height: 1.1;\n\n    text-shadow:\n        0 1px 2px rgba(0,0,0,.10);\n}\n\n#mh-quote-v2 .mhv2-brand-sub {\n    margin-top: 3px;\n\n    color: rgba(255,255,255,.78);\n\n    font-size: 11px;\n}\n\n#mh-quote-v2 .mhv2-progress-text {\n    position: relative;\n    z-index: 2;\n\n    padding: 7px 11px;\n\n    border: 1px solid rgba(255,255,255,.18);\n    border-radius: 999px;\n\n    background: rgba(255,255,255,.11);\n    backdrop-filter: blur(5px);\n    -webkit-backdrop-filter: blur(5px);\n\n    color: #fff;\n\n    font-size: 12px;\n    font-weight: 850;\n    white-space: nowrap;\n\n    box-shadow:\n        inset 0 1px 0 rgba(255,255,255,.08);\n}\n\n\n\/* =========================================================\n PROGRESO\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-progress-bg {\n    width: 100%;\n    height: 5px;\n    background: #edf3f2;\n}\n\n#mh-quote-v2 .mhv2-progress-bar {\n    width: 0%;\n    height: 100%;\n\n    background: #e39e08;\n\n    transition: width .4s ease;\n}\n\n\n\/* =========================================================\n CONTENIDO\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-content {\n    min-height: 465px;\n    padding: 35px 42px 32px;\n\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n}\n\n#mh-quote-v2 .mhv2-step {\n    display: none;\n}\n\n#mh-quote-v2 .mhv2-step.active {\n    display: block;\n    animation: mhv2In .32s ease;\n}\n\n@keyframes mhv2In {\n    from {\n        opacity: 0;\n        transform: translateY(10px);\n    }\n\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n}\n\n\n\/* =========================================================\n TEXTOS\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-kicker {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n\n    margin-bottom: 13px;\n    padding: 6px 11px;\n\n    border-radius: 999px;\n    background: var(--mh-soft);\n\n    color: var(--mh-dark);\n\n    font-size: 10px;\n    font-weight: 800;\n    letter-spacing: .6px;\n    text-transform: uppercase;\n}\n\n#mh-quote-v2 .mhv2-title {\n    margin: 0 0 11px;\n\n    color: #202b2a;\n\n    font-size: clamp(27px,4vw,38px);\n    font-weight: 800;\n    line-height: 1.12;\n    letter-spacing: -.5px;\n}\n\n#mh-quote-v2 .mhv2-description {\n    margin: 0 0 23px;\n\n    color: var(--muted);\n\n    font-size: 15px;\n    line-height: 1.55;\n}\n\n#mh-quote-v2 .mhv2-helper {\n    margin-top: 9px;\n\n    color: #89918f;\n\n    font-size: 12px;\n    line-height: 1.5;\n}\n\n\n\/* =========================================================\n TARJETAS CON IM\u00c1GENES\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-photo-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 12px;\n}\n\n#mh-quote-v2 .mhv2-photo-card {\n    position: relative;\n\n    width: 100%;\n    height: 150px;\n\n    padding: 0;\n    overflow: hidden;\n\n    border: 0;\n    border-radius: 18px;\n\n    background: #dfe8e7;\n    cursor: pointer;\n\n    font-family: inherit;\n    text-align: left;\n\n    box-shadow:\n        0 7px 18px rgba(23,60,57,.10);\n\n    transition:\n        transform .22s ease,\n        box-shadow .22s ease;\n}\n\n#mh-quote-v2 .mhv2-photo-card:hover {\n    transform: translateY(-3px);\n\n    box-shadow:\n        0 13px 27px rgba(23,60,57,.18);\n}\n\n#mh-quote-v2 .mhv2-photo-card:focus {\n    outline: none;\n\n    box-shadow:\n        0 0 0 3px rgba(24,147,138,.25),\n        0 13px 27px rgba(23,60,57,.18);\n}\n\n#mh-quote-v2 .mhv2-photo-card img {\n    position: absolute;\n    inset: 0;\n\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n\n    transition: transform .45s ease;\n}\n\n#mh-quote-v2 .mhv2-photo-card:hover img {\n    transform: scale(1.055);\n}\n\n#mh-quote-v2 .mhv2-photo-overlay {\n    position: absolute;\n    inset: 0;\n\n    background:\n        linear-gradient(\n            180deg,\n            rgba(0,0,0,.01) 5%,\n            rgba(0,0,0,.05) 35%,\n            rgba(0,0,0,.82) 100%\n        );\n}\n\n#mh-quote-v2 .mhv2-photo-content {\n    position: absolute;\n\n    left: 17px;\n    right: 17px;\n    bottom: 15px;\n\n    z-index: 2;\n\n    display: flex;\n    align-items: flex-end;\n    justify-content: space-between;\n\n    gap: 12px;\n}\n\n#mh-quote-v2 .mhv2-photo-text {\n    min-width: 0;\n}\n\n#mh-quote-v2 .mhv2-photo-name {\n    display: block;\n\n    color: #fff;\n\n    font-size: 18px;\n    font-weight: 850;\n    line-height: 1.1;\n\n    text-shadow:\n        0 2px 8px rgba(0,0,0,.45);\n}\n\n#mh-quote-v2 .mhv2-photo-subtitle {\n    display: block;\n\n    margin-top: 5px;\n\n    color: rgba(255,255,255,.92);\n\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.25;\n\n    text-shadow:\n        0 2px 6px rgba(0,0,0,.45);\n}\n\n#mh-quote-v2 .mhv2-photo-arrow {\n    width: 31px;\n    height: 31px;\n    min-width: 31px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 50%;\n\n    background: rgba(255,255,255,.94);\n\n    color: var(--mh-dark);\n\n    font-size: 17px;\n    font-weight: 800;\n\n    transition: .2s ease;\n}\n\n#mh-quote-v2 .mhv2-photo-card:hover .mhv2-photo-arrow {\n    background: var(--mh);\n    color: #fff;\n    transform: translateX(2px);\n}\n\n#mh-quote-v2 .mhv2-photo-wide {\n    grid-column: 1 \/ -1;\n    height: 125px;\n}\n\n\n\/* =========================================================\n TICKETS - BOXES GR\u00c1FICOS V2.6\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-ticket-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 13px;\n}\n\n#mh-quote-v2 .mhv2-ticket-card {\n    position: relative;\n\n    width: 100%;\n    height: 190px;\n\n    padding: 0;\n    overflow: hidden;\n\n    border: 0;\n    border-radius: 19px;\n\n    background: #dfe8e7;\n\n    cursor: pointer;\n    font-family: inherit;\n    text-align: left;\n\n    box-shadow:\n        0 8px 22px rgba(23,60,57,.12);\n\n    transition:\n        transform .22s ease,\n        box-shadow .22s ease;\n}\n\n#mh-quote-v2 .mhv2-ticket-card:hover {\n    transform: translateY(-4px);\n\n    box-shadow:\n        0 15px 31px rgba(23,60,57,.19);\n}\n\n#mh-quote-v2 .mhv2-ticket-card:focus {\n    outline: none;\n\n    box-shadow:\n        0 0 0 3px rgba(24,147,138,.25),\n        0 15px 31px rgba(23,60,57,.19);\n}\n\n#mh-quote-v2 .mhv2-ticket-card img {\n    position: absolute;\n    inset: 0;\n\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n\n    transition:\n        transform .45s ease,\n        filter .35s ease;\n}\n\n#mh-quote-v2 .mhv2-ticket-card:hover img {\n    transform: scale(1.055);\n}\n\n\n\/* S\u00ed *\/\n\n#mh-quote-v2 .mhv2-ticket-yes .mhv2-ticket-overlay {\n    position: absolute;\n    inset: 0;\n\n    background:\n        linear-gradient(\n            180deg,\n            rgba(0,0,0,.02) 0%,\n            rgba(0,0,0,.08) 42%,\n            rgba(0,0,0,.86) 100%\n        );\n}\n\n\n\/* No *\/\n\n#mh-quote-v2 .mhv2-ticket-no img {\n    filter:\n        saturate(.35)\n        brightness(.72);\n}\n\n#mh-quote-v2 .mhv2-ticket-no:hover img {\n    filter:\n        saturate(.45)\n        brightness(.77);\n}\n\n#mh-quote-v2 .mhv2-ticket-no .mhv2-ticket-overlay {\n    position: absolute;\n    inset: 0;\n\n    background:\n        linear-gradient(\n            180deg,\n            rgba(16,50,48,.20),\n            rgba(9,30,29,.86)\n        );\n}\n\n\n\/* Contenido *\/\n\n#mh-quote-v2 .mhv2-ticket-content {\n    position: absolute;\n\n    left: 18px;\n    right: 18px;\n    bottom: 17px;\n\n    z-index: 3;\n\n    display: flex;\n    align-items: flex-end;\n    justify-content: space-between;\n\n    gap: 14px;\n}\n\n#mh-quote-v2 .mhv2-ticket-copy {\n    min-width: 0;\n}\n\n#mh-quote-v2 .mhv2-ticket-label {\n    display: block;\n\n    color: #fff;\n\n    font-size: 19px;\n    font-weight: 850;\n    line-height: 1.15;\n\n    text-shadow:\n        0 2px 9px rgba(0,0,0,.45);\n}\n\n#mh-quote-v2 .mhv2-ticket-sub {\n    display: block;\n\n    margin-top: 5px;\n\n    color: rgba(255,255,255,.90);\n\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.35;\n}\n\n#mh-quote-v2 .mhv2-ticket-icon {\n    width: 38px;\n    height: 38px;\n    min-width: 38px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 50%;\n\n    background: rgba(255,255,255,.94);\n\n    color: var(--mh-dark);\n\n    font-size: 20px;\n    font-weight: 850;\n\n    transition:\n        transform .2s ease,\n        background .2s ease,\n        color .2s ease;\n}\n\n#mh-quote-v2 .mhv2-ticket-card:hover .mhv2-ticket-icon {\n    transform: translateX(2px);\n    background: var(--mh);\n    color: #fff;\n}\n\n#mh-quote-v2 .mhv2-ticket-badge {\n    position: absolute;\n\n    top: 14px;\n    left: 14px;\n\n    z-index: 3;\n\n    padding: 6px 10px;\n\n    border-radius: 999px;\n\n    background: rgba(255,255,255,.94);\n\n    color: var(--mh-dark);\n\n    font-size: 9px;\n    font-weight: 850;\n    letter-spacing: .5px;\n    text-transform: uppercase;\n\n    box-shadow:\n        0 4px 12px rgba(0,0,0,.10);\n}\n\n\n\/* =========================================================\n OPCIONES GENERALES\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-options {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 10px;\n}\n\n#mh-quote-v2 .mhv2-option {\n    width: 100%;\n    min-height: 68px;\n\n    padding: 13px 14px;\n\n    border: 1.5px solid var(--border);\n    border-radius: 16px;\n\n    background: #fff;\n    color: var(--text);\n\n    cursor: pointer;\n\n    display: flex;\n    align-items: center;\n    gap: 12px;\n\n    text-align: left;\n    font-family: inherit;\n\n    transition: .18s ease;\n}\n\n#mh-quote-v2 .mhv2-option:hover {\n    transform: translateY(-2px);\n    border-color: rgba(24,147,138,.55);\n\n    box-shadow:\n        0 8px 22px rgba(24,147,138,.08);\n}\n\n#mh-quote-v2 .mhv2-option.selected {\n    background: var(--mh-soft);\n    border-color: var(--mh);\n}\n\n#mh-quote-v2 .mhv2-option-icon {\n    width: 39px;\n    height: 39px;\n    min-width: 39px;\n\n    border-radius: 12px;\n    background: #f4f7f7;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    font-size: 20px;\n}\n\n#mh-quote-v2 .mhv2-option-label {\n    font-size: 14px;\n    font-weight: 750;\n    line-height: 1.25;\n}\n\n\n\/* =========================================================\n INPUTS\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-input {\n    width: 100%;\n    height: 56px;\n\n    padding: 0 16px;\n\n    border: 1.5px solid var(--border);\n    border-radius: 14px;\n\n    background: #fff;\n    outline: none;\n\n    color: var(--text);\n\n    font-family: inherit;\n    font-size: 15px;\n\n    transition: .18s ease;\n}\n\n#mh-quote-v2 .mhv2-input:focus {\n    border-color: var(--mh);\n\n    box-shadow:\n        0 0 0 4px rgba(24,147,138,.08);\n}\n\n#mh-quote-v2 textarea.mhv2-input {\n    height: 125px;\n    padding-top: 14px;\n\n    resize: vertical;\n    line-height: 1.5;\n}\n\n#mh-quote-v2 .mhv2-error {\n    display: none;\n\n    margin-top: 9px;\n\n    color: var(--danger);\n\n    font-size: 12px;\n    font-weight: 700;\n}\n\n#mh-quote-v2 .mhv2-error.show {\n    display: block;\n}\n\n\n\/* =========================================================\n BOTONES\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-actions {\n    margin-top: 24px;\n\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n\n    gap: 10px;\n}\n\n#mh-quote-v2 .mhv2-btn {\n    min-height: 51px;\n    padding: 0 21px;\n\n    border: 0;\n    border-radius: 14px;\n\n    cursor: pointer;\n\n    font-family: inherit;\n    font-size: 13px;\n    font-weight: 800;\n\n    transition: .18s ease;\n}\n\n#mh-quote-v2 .mhv2-primary {\n    margin-left: auto;\n\n    background:\n        linear-gradient(\n            135deg,\n            #18938a,\n            #10756e\n        );\n\n    color: #fff;\n\n    box-shadow:\n        0 9px 23px rgba(24,147,138,.19);\n}\n\n#mh-quote-v2 .mhv2-primary:hover {\n    transform: translateY(-1px);\n}\n\n#mh-quote-v2 .mhv2-back {\n    background: #f2f5f5;\n    color: #56615f;\n}\n\n#mh-quote-v2 .mhv2-full {\n    width: 100%;\n    min-height: 59px;\n    font-size: 15px;\n}\n\n\n\/* =========================================================\n BIENVENIDA\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-welcome {\n    position: relative;\n    max-width: none;\n    margin: 0;\n}\n\n#mh-quote-v2 .mhv2-welcome-layout {\n    display: grid;\n    grid-template-columns: minmax(250px,.88fr) minmax(0,1.12fr);\n    align-items: center;\n    gap: 34px;\n}\n\n#mh-quote-v2 .mhv2-welcome-visual {\n    position: relative;\n    min-height: 390px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n#mh-quote-v2 .mhv2-welcome-photo-frame {\n    position: relative;\n    width: 100%;\n    max-width: 330px;\n    aspect-ratio: 1 \/ 1;\n    overflow: hidden;\n\n    border-radius: 18px;\n\n    background: var(--mh-soft);\n\n    box-shadow:\n        0 18px 38px rgba(15,70,67,.14);\n}\n\n#mh-quote-v2 .mhv2-welcome-photo-frame::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    pointer-events: none;\n\n    background:\n        linear-gradient(\n            180deg,\n            rgba(255,255,255,.02),\n            rgba(10,80,75,.08)\n        );\n}\n\n#mh-quote-v2 .mhv2-welcome-photo {\n    width: 100%;\n    height: 100%;\n    display: block;\n    object-fit: cover;\n    object-position: center;\n}\n\n\/* =========================================================\n SLIDESHOW AUTOM\u00c1TICO DE BIENVENIDA - V3.0.3\n 6 im\u00e1genes \u00b7 4 segundos por imagen \u00b7 sin controles\n Crossfade + blur suave + micro zoom cinematogr\u00e1fico.\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-welcome-slideshow {\n    position: absolute;\n    inset: 0;\n    overflow: hidden;\n    background: #edf8f6;\n}\n\n#mh-quote-v2 .mhv2-welcome-slide {\n    position: absolute;\n    inset: 0;\n\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n    object-position: center;\n\n    opacity: 0;\n\n    will-change:\n        opacity,\n        filter,\n        transform;\n\n    animation:\n        mhv2WelcomeCrossfade 24s\n        cubic-bezier(.45,0,.20,1)\n        infinite;\n}\n\n\/* 6 im\u00e1genes \u00d7 4 segundos = ciclo total de 24 segundos *\/\n#mh-quote-v2 .mhv2-slide-1 {\n    animation-delay: 0s;\n}\n\n#mh-quote-v2 .mhv2-slide-2 {\n    animation-delay: 4s;\n}\n\n#mh-quote-v2 .mhv2-slide-3 {\n    animation-delay: 8s;\n}\n\n#mh-quote-v2 .mhv2-slide-4 {\n    animation-delay: 12s;\n}\n\n#mh-quote-v2 .mhv2-slide-5 {\n    animation-delay: 16s;\n}\n\n#mh-quote-v2 .mhv2-slide-6 {\n    animation-delay: 20s;\n}\n\n@keyframes mhv2WelcomeCrossfade {\n\n    \/* Entrada: desenfoque suave que se resuelve *\/\n    0% {\n        opacity: 0;\n        filter: blur(12px);\n        transform: scale(1.055);\n    }\n\n    2.8% {\n        opacity: 1;\n        filter: blur(0);\n        transform: scale(1.025);\n    }\n\n    \/* Imagen plenamente visible *\/\n    13.8% {\n        opacity: 1;\n        filter: blur(0);\n        transform: scale(1.005);\n    }\n\n    \/* Salida difuminada superpuesta con la siguiente *\/\n    16.6% {\n        opacity: 0;\n        filter: blur(10px);\n        transform: scale(1);\n    }\n\n    100% {\n        opacity: 0;\n        filter: blur(10px);\n        transform: scale(1);\n    }\n}\n\n\/* Respeta usuarios que prefieren reducir movimiento *\/\n@media (prefers-reduced-motion: reduce) {\n\n    #mh-quote-v2 .mhv2-welcome-slide {\n        animation: none;\n        opacity: 0;\n        filter: none;\n        transform: none;\n    }\n\n    #mh-quote-v2 .mhv2-slide-1 {\n        opacity: 1;\n    }\n}\n\n\n#mh-quote-v2 .mhv2-welcome-shape {\n    display: none;\n}\n\n#mh-quote-v2 .mhv2-welcome-copy {\n    position: relative;\n    text-align: left;\n}\n\n#mh-quote-v2 .mhv2-welcome-copy::before {\n    content: \"\";\n    position: absolute;\n    right: 4px;\n    top: -52px;\n\n    color: rgba(24,147,138,.76);\n    font-size: 31px;\n    transform: rotate(-10deg);\n}\n\n#mh-quote-v2 .mhv2-welcome-copy::after {\n    content: none;\n    position: absolute;\n    right: 35px;\n    top: -35px;\n\n    width: 78px;\n    height: 34px;\n\n    border-top: 2px dashed rgba(24,147,138,.35);\n    border-radius: 50%;\n    transform: rotate(-8deg);\n}\n\n#mh-quote-v2 .mhv2-welcome .mhv2-kicker {\n    margin-bottom: 15px;\n}\n\n#mh-quote-v2 .mhv2-welcome .mhv2-title {\n    max-width: 470px;\n    margin-bottom: 14px;\n    font-size: clamp(31px,4.3vw,43px);\n    line-height: 1.05;\n}\n\n#mh-quote-v2 .mhv2-welcome .mhv2-title-accent {\n    color: var(--mh);\n}\n\n#mh-quote-v2 .mhv2-welcome .mhv2-description {\n    max-width: 500px;\n    margin: 0 0 24px;\n}\n\n#mh-quote-v2 .mhv2-welcome .mhv2-full {\n    max-width: 100%;\n}\n\n#mh-quote-v2 .mhv2-trust {\n    grid-column: 1 \/ -1;\n\n    width: 100%;\n    margin-top: 4px;\n\n    display: flex;\n    align-items: center;\n    justify-content: flex-start;\n\n    gap: 30px;\n\n    color: #5f6d6b;\n    font-size: 11px;\n    font-weight: 700;\n}\n\n#mh-quote-v2 .mhv2-trust > span {\n    min-height: 42px;\n\n    display: inline-flex;\n    align-items: center;\n\n    gap: 8px;\n\n    white-space: nowrap;\n}\n\n#mh-quote-v2 .mhv2-trust-icon {\n    width: 30px;\n    height: 30px;\n    min-width: 30px;\n\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 50%;\n    background: var(--mh-soft);\n    color: var(--mh);\n\n    font-size: 14px;\n    font-weight: 900;\n}\n\n\n\/* =========================================================\n AVIONES DECORATIVOS CON ESTELA - V3.0.2\n Solo decoraci\u00f3n visual de la pantalla inicial.\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-welcome {\n    overflow: visible;\n}\n\n#mh-quote-v2 .mhv2-flight {\n    position: absolute;\n    z-index: 1;\n    pointer-events: none;\n    color: var(--mh);\n    opacity: .78;\n}\n\n#mh-quote-v2 .mhv2-flight-plane {\n    position: absolute;\n    z-index: 2;\n    display: block;\n    font-size: 27px;\n    line-height: 1;\n    filter: drop-shadow(0 4px 7px rgba(24,147,138,.12));\n}\n\n#mh-quote-v2 .mhv2-flight-trail {\n    position: absolute;\n    display: block;\n    border-top: 2px dotted rgba(24,147,138,.55);\n}\n\n\/* Avi\u00f3n superior derecho: se conserva el existente visualmente,\n   pero ahora comparte el mismo lenguaje con los nuevos. *\/\n#mh-quote-v2 .mhv2-flight-1 {\n    width: 125px;\n    height: 65px;\n    right: 7px;\n    top: -47px;\n}\n\n#mh-quote-v2 .mhv2-flight-1 .mhv2-flight-plane {\n    right: 0;\n    top: 1px;\n    transform: rotate(-12deg);\n}\n\n#mh-quote-v2 .mhv2-flight-1 .mhv2-flight-trail {\n    width: 92px;\n    height: 43px;\n    left: 0;\n    top: 27px;\n    border-radius: 60% 45% 0 0;\n    transform: rotate(-10deg);\n}\n\n\/* Nuevo: parte superior izquierda, cerca de la fotograf\u00eda *\/\n#mh-quote-v2 .mhv2-flight-2 {\n    width: 118px;\n    height: 62px;\n    left: -30px;\n    top: 18px;\n    opacity: .60;\n}\n\n#mh-quote-v2 .mhv2-flight-2 .mhv2-flight-plane {\n    right: 0;\n    top: 17px;\n    font-size: 23px;\n    transform: rotate(16deg);\n}\n\n#mh-quote-v2 .mhv2-flight-2 .mhv2-flight-trail {\n    width: 89px;\n    height: 35px;\n    left: 0;\n    top: 14px;\n    border-radius: 50%;\n    transform: rotate(8deg);\n}\n\n\/* Nuevo: inferior izquierdo, curva m\u00e1s juguetona *\/\n#mh-quote-v2 .mhv2-flight-3 {\n    width: 145px;\n    height: 78px;\n    left: -16px;\n    bottom: -34px;\n    opacity: .66;\n}\n\n#mh-quote-v2 .mhv2-flight-3 .mhv2-flight-plane {\n    right: 3px;\n    bottom: 6px;\n    font-size: 25px;\n    transform: rotate(22deg);\n}\n\n#mh-quote-v2 .mhv2-flight-3 .mhv2-flight-trail {\n    width: 112px;\n    height: 58px;\n    left: 0;\n    top: 1px;\n    border-radius: 0 0 55% 55%;\n    transform: rotate(10deg);\n}\n\n\/* Nuevo: lateral derecho a media altura *\/\n#mh-quote-v2 .mhv2-flight-4 {\n    width: 112px;\n    height: 72px;\n    right: -53px;\n    top: 47%;\n    opacity: .57;\n}\n\n#mh-quote-v2 .mhv2-flight-4 .mhv2-flight-plane {\n    right: 0;\n    top: 0;\n    font-size: 24px;\n    transform: rotate(-28deg);\n}\n\n#mh-quote-v2 .mhv2-flight-4 .mhv2-flight-trail {\n    width: 82px;\n    height: 58px;\n    left: 0;\n    top: 16px;\n    border-radius: 50%;\n    transform: rotate(-18deg);\n}\n\n\/* Nuevo: inferior derecho *\/\n#mh-quote-v2 .mhv2-flight-5 {\n    width: 132px;\n    height: 78px;\n    right: -14px;\n    bottom: -40px;\n    opacity: .64;\n}\n\n#mh-quote-v2 .mhv2-flight-5 .mhv2-flight-plane {\n    left: 0;\n    top: 0;\n    font-size: 24px;\n    transform: rotate(27deg);\n}\n\n#mh-quote-v2 .mhv2-flight-5 .mhv2-flight-trail {\n    width: 104px;\n    height: 62px;\n    right: 0;\n    bottom: 0;\n    border-radius: 0 0 60% 60%;\n    transform: rotate(14deg);\n}\n\n@media(max-width:650px) {\n\n    \/* En m\u00f3vil dejamos solo tres para mantener el dise\u00f1o limpio. *\/\n    #mh-quote-v2 .mhv2-flight-2,\n    #mh-quote-v2 .mhv2-flight-4 {\n        display: none;\n    }\n\n    #mh-quote-v2 .mhv2-flight-1 {\n        right: 3px;\n        top: -34px;\n        transform: scale(.82);\n        transform-origin: right top;\n    }\n\n    #mh-quote-v2 .mhv2-flight-3 {\n        left: -12px;\n        bottom: -25px;\n        transform: scale(.78);\n        transform-origin: left bottom;\n    }\n\n    #mh-quote-v2 .mhv2-flight-5 {\n        right: -5px;\n        bottom: -26px;\n        transform: scale(.78);\n        transform-origin: right bottom;\n    }\n}\n\n\n\/* =========================================================\n TRANSICI\u00d3N\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-phase {\n    max-width: 570px;\n    margin: 0 auto;\n    text-align: center;\n}\n\n#mh-quote-v2 .mhv2-phase-icon {\n    width: 72px;\n    height: 72px;\n\n    margin: 0 auto 19px;\n\n    border-radius: 50%;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    background: var(--mh-soft);\n    color: var(--mh);\n\n    font-size: 32px;\n}\n\n#mh-quote-v2 .mhv2-phase-box {\n    margin-top: 20px;\n    padding: 14px 16px;\n\n    border-radius: 14px;\n    background: #f7faf9;\n\n    color: #687371;\n\n    font-size: 12px;\n    line-height: 1.55;\n}\n\n\n\/* =========================================================\n VIAJEROS\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-travelers {\n    overflow: hidden;\n\n    border: 1px solid var(--border);\n    border-radius: 18px;\n\n    background: #fff;\n}\n\n#mh-quote-v2 .mhv2-traveler {\n    padding: 14px 18px;\n\n    border-bottom: 1px solid #edf1f0;\n\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n\n    gap: 15px;\n}\n\n#mh-quote-v2 .mhv2-traveler:last-child {\n    border-bottom: 0;\n}\n\n#mh-quote-v2 .mhv2-traveler-info {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n\n    min-width: 0;\n}\n\n#mh-quote-v2 .mhv2-traveler-visual {\n    width: 48px;\n    height: 54px;\n    min-width: 48px;\n\n    display: flex;\n    align-items: flex-end;\n    justify-content: center;\n\n    border-radius: 14px;\n\n    background:\n        linear-gradient(\n            180deg,\n            #f1fbfa,\n            #e8f7f5\n        );\n}\n\n#mh-quote-v2 .mhv2-traveler-visual svg {\n    display: block;\n    overflow: visible;\n}\n\n#mh-quote-v2 .mhv2-traveler-visual.adult svg {\n    width: 27px;\n    height: 45px;\n}\n\n#mh-quote-v2 .mhv2-traveler-visual.child svg {\n    width: 25px;\n    height: 37px;\n}\n\n#mh-quote-v2 .mhv2-traveler-visual.baby svg {\n    width: 25px;\n    height: 29px;\n}\n\n#mh-quote-v2 .mhv2-traveler-title {\n    font-size: 14px;\n    font-weight: 800;\n    line-height: 1.25;\n}\n\n#mh-quote-v2 .mhv2-traveler-sub {\n    margin-top: 3px;\n    color: var(--muted);\n    font-size: 11px;\n}\n\n#mh-quote-v2 .mhv2-counter {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n\n    flex-shrink: 0;\n}\n\n#mh-quote-v2 .mhv2-count-btn {\n    width: 38px;\n    height: 38px;\n\n    padding: 0;\n\n    border: 1px solid #dbe3e2;\n    border-radius: 50%;\n\n    background: #fff;\n    color: var(--mh-dark);\n\n    cursor: pointer;\n\n    font-size: 21px;\n    font-weight: 500;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    transition: .18s ease;\n}\n\n#mh-quote-v2 .mhv2-count-btn:hover {\n    border-color: var(--mh);\n    background: var(--mh-soft);\n    transform: scale(1.05);\n}\n\n#mh-quote-v2 .mhv2-count {\n    min-width: 22px;\n    text-align: center;\n\n    font-size: 16px;\n    font-weight: 850;\n}\n\n\n\/* =========================================================\n GRUPO VISUAL\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-family-box {\n    margin-top: 13px;\n    padding: 15px 18px 13px;\n\n    border: 1px solid rgba(24,147,138,.11);\n    border-radius: 17px;\n\n    background:\n        linear-gradient(\n            135deg,\n            rgba(24,147,138,.10),\n            rgba(24,147,138,.045)\n        );\n}\n\n#mh-quote-v2 .mhv2-family-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n\n    gap: 15px;\n    margin-bottom: 10px;\n}\n\n#mh-quote-v2 .mhv2-family-title {\n    color: var(--mh-dark);\n\n    font-size: 12px;\n    font-weight: 850;\n    letter-spacing: .2px;\n}\n\n#mh-quote-v2 .mhv2-family-count {\n    color: var(--mh-dark);\n\n    font-size: 12px;\n    font-weight: 750;\n}\n\n#mh-quote-v2 .mhv2-family-stage {\n    position: relative;\n\n    min-height: 70px;\n\n    display: flex;\n    align-items: flex-end;\n    justify-content: flex-start;\n\n    gap: 5px;\n\n    padding: 5px 3px 6px;\n\n    overflow-x: auto;\n    overflow-y: hidden;\n\n    scrollbar-width: thin;\n    scrollbar-color: rgba(24,147,138,.28) transparent;\n}\n\n#mh-quote-v2 .mhv2-family-stage::-webkit-scrollbar {\n    height: 4px;\n}\n\n#mh-quote-v2 .mhv2-family-stage::-webkit-scrollbar-thumb {\n    background: rgba(24,147,138,.28);\n    border-radius: 20px;\n}\n\n#mh-quote-v2 .mhv2-family-person {\n    flex: 0 0 auto;\n\n    display: flex;\n    align-items: flex-end;\n    justify-content: center;\n\n    animation: mhv2PersonIn .22s ease;\n}\n\n@keyframes mhv2PersonIn {\n    from {\n        opacity: 0;\n        transform: translateY(8px) scale(.85);\n    }\n\n    to {\n        opacity: 1;\n        transform: translateY(0) scale(1);\n    }\n}\n\n#mh-quote-v2 .mhv2-family-person.adult {\n    width: 35px;\n    height: 62px;\n}\n\n#mh-quote-v2 .mhv2-family-person.child {\n    width: 31px;\n    height: 50px;\n}\n\n#mh-quote-v2 .mhv2-family-person.baby {\n    width: 28px;\n    height: 38px;\n}\n\n#mh-quote-v2 .mhv2-family-person svg {\n    width: 100%;\n    height: 100%;\n    display: block;\n}\n\n#mh-quote-v2 .mhv2-family-ground {\n    height: 1px;\n    margin-top: -6px;\n\n    background:\n        linear-gradient(\n            90deg,\n            rgba(24,147,138,.06),\n            rgba(24,147,138,.25),\n            rgba(24,147,138,.06)\n        );\n}\n\n#mh-quote-v2 .mhv2-family-breakdown {\n    margin-top: 9px;\n\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n\n    gap: 6px;\n}\n\n#mh-quote-v2 .mhv2-family-pill {\n    padding: 5px 9px;\n\n    border-radius: 999px;\n\n    background: rgba(255,255,255,.70);\n    color: #54706d;\n\n    font-size: 10px;\n    font-weight: 700;\n}\n\n#mh-quote-v2 .mhv2-family-empty {\n    width: 100%;\n    align-self: center;\n\n    color: #78918e;\n    font-size: 12px;\n    text-align: center;\n}\n\n\n\/* =========================================================\n PA\u00cdSES\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-country-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 10px;\n}\n\n#mh-quote-v2 .mhv2-country-card {\n    width: 100%;\n    min-height: 64px;\n\n    display: flex;\n    align-items: center;\n    gap: 12px;\n\n    padding: 11px 14px;\n\n    border: 1.5px solid var(--border);\n    border-radius: 15px;\n\n    background: #fff;\n    color: var(--text);\n\n    font-family: inherit;\n    text-align: left;\n\n    cursor: pointer;\n\n    transition: .18s ease;\n}\n\n#mh-quote-v2 .mhv2-country-card:hover {\n    transform: translateY(-2px);\n    border-color: var(--mh);\n    background: #f8fdfc;\n\n    box-shadow:\n        0 8px 22px rgba(24,147,138,.10);\n}\n\n#mh-quote-v2 .mhv2-country-flag {\n    width: 39px;\n    height: 39px;\n    min-width: 39px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 11px;\n    background: #f2f7f6;\n\n    font-size: 23px;\n}\n\n#mh-quote-v2 .mhv2-country-flag img {\n    width: 27px;\n    height: 18px;\n    display: block;\n    object-fit: cover;\n    border-radius: 3px;\n}\n\n#mh-quote-v2 .mhv2-country-name {\n    flex: 1;\n\n    font-size: 14px;\n    font-weight: 750;\n}\n\n#mh-quote-v2 .mhv2-country-arrow {\n    color: var(--mh);\n\n    font-size: 18px;\n    font-weight: 800;\n\n    transition: transform .18s ease;\n}\n\n#mh-quote-v2 .mhv2-country-card:hover .mhv2-country-arrow {\n    transform: translateX(3px);\n}\n\n#mh-quote-v2 .mhv2-other-country-btn {\n    width: 100%;\n\n    margin-top: 11px;\n    padding: 12px 15px;\n\n    display: flex;\n    align-items: center;\n    gap: 12px;\n\n    border: 1.5px dashed rgba(24,147,138,.45);\n    border-radius: 15px;\n\n    background: rgba(24,147,138,.045);\n    color: var(--text);\n\n    font-family: inherit;\n    text-align: left;\n\n    cursor: pointer;\n}\n\n#mh-quote-v2 .mhv2-other-country-btn:hover {\n    background: var(--mh-soft);\n    border-color: var(--mh);\n}\n\n#mh-quote-v2 .mhv2-other-country-icon {\n    width: 39px;\n    height: 39px;\n    min-width: 39px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 11px;\n    background: #fff;\n\n    font-size: 21px;\n}\n\n#mh-quote-v2 .mhv2-other-country-text {\n    flex: 1;\n}\n\n#mh-quote-v2 .mhv2-other-country-text strong {\n    display: block;\n    font-size: 14px;\n}\n\n#mh-quote-v2 .mhv2-other-country-text small {\n    display: block;\n\n    margin-top: 2px;\n\n    color: #77817f;\n    font-size: 11px;\n}\n\n\n\/* =========================================================\n BUSCADOR PA\u00cdSES\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-country-search-box {\n    display: none;\n\n    margin-top: 11px;\n    padding: 12px;\n\n    border: 1px solid var(--border);\n    border-radius: 16px;\n\n    background: #fafcfc;\n}\n\n#mh-quote-v2 .mhv2-country-search-box.open {\n    display: block;\n    animation: mhv2CountryOpen .22s ease;\n}\n\n@keyframes mhv2CountryOpen {\n    from {\n        opacity: 0;\n        transform: translateY(-5px);\n    }\n\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n}\n\n#mh-quote-v2 .mhv2-search-wrapper {\n    position: relative;\n}\n\n#mh-quote-v2 .mhv2-search-icon {\n    position: absolute;\n\n    left: 14px;\n    top: 50%;\n\n    transform: translateY(-50%);\n\n    color: var(--mh);\n    font-size: 19px;\n\n    pointer-events: none;\n}\n\n#mh-quote-v2 .mhv2-country-search {\n    width: 100%;\n    height: 49px;\n\n    padding: 0 15px 0 42px;\n\n    border: 1.5px solid #dfe7e6;\n    border-radius: 12px;\n\n    outline: none;\n    background: #fff;\n\n    color: var(--text);\n\n    font-family: inherit;\n    font-size: 14px;\n}\n\n#mh-quote-v2 .mhv2-country-search:focus {\n    border-color: var(--mh);\n\n    box-shadow:\n        0 0 0 3px rgba(24,147,138,.08);\n}\n\n#mh-quote-v2 .mhv2-country-results {\n    max-height: 205px;\n    margin-top: 8px;\n    overflow-y: auto;\n}\n\n#mh-quote-v2 .mhv2-country-result {\n    width: 100%;\n\n    padding: 10px 12px;\n\n    display: flex;\n    align-items: center;\n    gap: 10px;\n\n    border: 0;\n    border-bottom: 1px solid #edf1f0;\n\n    background: transparent;\n    color: #35403e;\n\n    font-family: inherit;\n    font-size: 13px;\n    font-weight: 650;\n    text-align: left;\n\n    cursor: pointer;\n}\n\n#mh-quote-v2 .mhv2-country-result:hover {\n    background: var(--mh-soft);\n    color: var(--mh-dark);\n}\n\n#mh-quote-v2 .mhv2-country-result-flag {\n    font-size: 20px;\n}\n\n#mh-quote-v2 .mhv2-country-empty {\n    padding: 15px;\n\n    text-align: center;\n\n    color: var(--muted);\n    font-size: 12px;\n}\n\n\n\/* =========================================================\n TEL\u00c9FONO\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-phone {\n    display: flex;\n    gap: 9px;\n}\n\n#mh-quote-v2 .mhv2-prefix {\n    width: 115px;\n    min-width: 115px;\n    height: 56px;\n\n    border: 1.5px solid var(--border);\n    border-radius: 14px;\n\n    background: #f8faf9;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    font-size: 14px;\n    font-weight: 800;\n}\n\n\n\/* =========================================================\n RESUMEN\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-trip-card {\n    overflow: hidden;\n\n    border: 1px solid rgba(24,147,138,.17);\n    border-radius: 21px;\n\n    background:\n        linear-gradient(\n            180deg,\n            #fbfefd,\n            #f6fbfa\n        );\n}\n\n#mh-quote-v2 .mhv2-trip-top {\n    padding: 20px;\n\n    background:\n        linear-gradient(\n            135deg,\n            rgba(24,147,138,.11),\n            rgba(24,147,138,.03)\n        );\n}\n\n#mh-quote-v2 .mhv2-trip-destination {\n    color: #173b38;\n\n    font-size: 23px;\n    font-weight: 850;\n}\n\n#mh-quote-v2 .mhv2-trip-date {\n    margin-top: 5px;\n\n    color: var(--mh-dark);\n\n    font-size: 13px;\n    font-weight: 700;\n}\n\n#mh-quote-v2 .mhv2-trip-details {\n    padding: 6px 20px;\n}\n\n#mh-quote-v2 .mhv2-trip-row {\n    padding: 11px 0;\n\n    border-bottom: 1px solid #e7eeed;\n\n    display: flex;\n    justify-content: space-between;\n\n    gap: 20px;\n}\n\n#mh-quote-v2 .mhv2-trip-row:last-child {\n    border-bottom: 0;\n}\n\n#mh-quote-v2 .mhv2-trip-label {\n    color: var(--muted);\n    font-size: 12px;\n}\n\n#mh-quote-v2 .mhv2-trip-value {\n    max-width: 65%;\n\n    text-align: right;\n\n    font-size: 13px;\n    font-weight: 750;\n}\n\n#mh-quote-v2 .mhv2-contact-preview {\n    margin-top: 14px;\n    padding: 14px 16px;\n\n    border-radius: 14px;\n    background: #f5f8f8;\n\n    color: #65706e;\n\n    font-size: 12px;\n    line-height: 1.6;\n}\n\n\n\/* =========================================================\n \u00c9XITO\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-success {\n    max-width: 570px;\n    margin: 0 auto;\n    text-align: center;\n}\n\n#mh-quote-v2 .mhv2-success-icon {\n    width: 78px;\n    height: 78px;\n\n    margin: 0 auto 19px;\n\n    border-radius: 50%;\n\n    background: var(--mh-soft);\n    color: var(--mh);\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    font-size: 36px;\n}\n\n#mh-quote-v2 .mhv2-prototype {\n    margin-top: 20px;\n    padding: 14px 16px;\n\n    border-radius: 14px;\n    background: #f6f8f8;\n\n    color: #687270;\n\n    font-size: 12px;\n    line-height: 1.55;\n}\n\n\n\n\/* =========================================================\n ENV\u00cdO REAL V3.0.17\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-btn:disabled {\n    cursor: not-allowed;\n    opacity: .72;\n    transform: none !important;\n}\n\n#mh-quote-v2 .mhv2-submit-status {\n    display: none;\n    margin-top: 12px;\n    padding: 12px 14px;\n    border-radius: 12px;\n    background: #fff4f2;\n    border: 1px solid rgba(192,57,43,.18);\n    color: var(--danger);\n    font-size: 12px;\n    font-weight: 700;\n    line-height: 1.5;\n}\n\n#mh-quote-v2 .mhv2-submit-status.show {\n    display: block;\n}\n\n#mh-quote-v2 .mhv2-submit-status.sending {\n    display: block;\n    background: var(--mh-soft);\n    border-color: rgba(24,147,138,.18);\n    color: var(--mh-dark);\n}\n\n\/* =========================================================\n MOBILE\n========================================================= *\/\n\n@media(max-width:650px) {\n\n    #mh-quote-v2 .mhv2-welcome-layout {\n        grid-template-columns: 1fr;\n        gap: 24px;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-visual {\n        min-height: 0;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-photo-frame {\n        width: min(82vw,330px);\n        aspect-ratio: 1 \/ 1;\n        border-radius: 16px;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-photo {\n        object-position: center 43%;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-shape {\n        left: 9%;\n        bottom: -8px;\n        width: 72%;\n        height: 42%;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy {\n        text-align: center;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy::before,\n    #mh-quote-v2 .mhv2-welcome-copy::after {\n        display: none;\n    }\n\n    #mh-quote-v2 .mhv2-welcome .mhv2-title {\n        max-width: 520px;\n        margin-left: auto;\n        margin-right: auto;\n        font-size: 31px;\n    }\n\n    #mh-quote-v2 .mhv2-welcome .mhv2-description {\n        margin-left: auto;\n        margin-right: auto;\n    }\n\n    #mh-quote-v2 .mhv2-trust {\n        width: 100%;\n        max-width: none;\n\n        margin: 2px 0 0;\n\n        display: flex;\n        justify-content: center;\n\n        gap: 10px;\n\n        font-size: 9px;\n        text-align: left;\n    }\n\n    #mh-quote-v2 .mhv2-trust > span {\n        min-height: 34px;\n        gap: 5px;\n        white-space: nowrap;\n    }\n\n    #mh-quote-v2 .mhv2-trust-icon {\n        width: 25px;\n        height: 25px;\n        min-width: 25px;\n        font-size: 12px;\n    }\n\n    #mh-quote-v2 .mhv2-section {\n        padding: 15px 8px 30px;\n    }\n\n    #mh-quote-v2 .mhv2-card {\n        border-radius: 21px;\n    }\n\n    #mh-quote-v2 .mhv2-header {\n        padding: 15px 15px 12px;\n    }\n\n    #mh-quote-v2 .mhv2-content {\n        min-height: 500px;\n        padding: 27px 18px 25px;\n    }\n\n    #mh-quote-v2 .mhv2-title {\n        font-size: 27px;\n    }\n\n    #mh-quote-v2 .mhv2-description {\n        font-size: 14px;\n    }\n\n    #mh-quote-v2 .mhv2-options {\n        grid-template-columns: 1fr;\n    }\n\n    #mh-quote-v2 .mhv2-photo-grid {\n        grid-template-columns: repeat(2,minmax(0,1fr));\n        gap: 8px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-card {\n        height: 120px;\n        border-radius: 14px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-wide {\n        height: 105px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-content {\n        left: 11px;\n        right: 11px;\n        bottom: 11px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-name {\n        font-size: 14px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-subtitle {\n        display: none;\n    }\n\n    #mh-quote-v2 .mhv2-photo-arrow {\n        width: 27px;\n        height: 27px;\n        min-width: 27px;\n        font-size: 14px;\n    }\n\n    #mh-quote-v2 .mhv2-brand-sub {\n        display: none;\n    }\n\n\n    \/* Tickets *\/\n\n    #mh-quote-v2 .mhv2-ticket-grid {\n        grid-template-columns: 1fr;\n        gap: 9px;\n    }\n\n    #mh-quote-v2 .mhv2-ticket-card {\n        height: 135px;\n        border-radius: 15px;\n    }\n\n    #mh-quote-v2 .mhv2-ticket-content {\n        left: 13px;\n        right: 13px;\n        bottom: 12px;\n    }\n\n    #mh-quote-v2 .mhv2-ticket-label {\n        font-size: 16px;\n    }\n\n    #mh-quote-v2 .mhv2-ticket-sub {\n        font-size: 10px;\n    }\n\n    #mh-quote-v2 .mhv2-ticket-badge {\n        top: 10px;\n        left: 10px;\n    }\n\n\n    \/* Viajeros *\/\n\n    #mh-quote-v2 .mhv2-traveler {\n        padding: 13px 12px;\n        gap: 8px;\n    }\n\n    #mh-quote-v2 .mhv2-traveler-info {\n        gap: 9px;\n    }\n\n    #mh-quote-v2 .mhv2-traveler-visual {\n        width: 39px;\n        height: 47px;\n        min-width: 39px;\n        border-radius: 11px;\n    }\n\n    #mh-quote-v2 .mhv2-traveler-title {\n        font-size: 12px;\n    }\n\n    #mh-quote-v2 .mhv2-traveler-sub {\n        font-size: 10px;\n    }\n\n    #mh-quote-v2 .mhv2-counter {\n        gap: 7px;\n    }\n\n    #mh-quote-v2 .mhv2-count-btn {\n        width: 33px;\n        height: 33px;\n        font-size: 19px;\n    }\n\n    #mh-quote-v2 .mhv2-count {\n        min-width: 17px;\n        font-size: 14px;\n    }\n\n    #mh-quote-v2 .mhv2-family-box {\n        padding: 13px 13px 12px;\n    }\n\n    #mh-quote-v2 .mhv2-family-stage {\n        min-height: 63px;\n    }\n\n    #mh-quote-v2 .mhv2-family-person.adult {\n        width: 31px;\n        height: 57px;\n    }\n\n    #mh-quote-v2 .mhv2-family-person.child {\n        width: 28px;\n        height: 46px;\n    }\n\n    #mh-quote-v2 .mhv2-family-person.baby {\n        width: 25px;\n        height: 35px;\n    }\n\n\n    \/* Pa\u00eds *\/\n\n    #mh-quote-v2 .mhv2-country-grid {\n        grid-template-columns: repeat(2,minmax(0,1fr));\n        gap: 7px;\n    }\n\n    #mh-quote-v2 .mhv2-country-card {\n        min-height: 57px;\n        padding: 9px 10px;\n        gap: 8px;\n    }\n\n    #mh-quote-v2 .mhv2-country-flag {\n        width: 34px;\n        height: 34px;\n        min-width: 34px;\n        font-size: 20px;\n    }\n\n    #mh-quote-v2 .mhv2-country-name {\n        font-size: 12px;\n    }\n\n    #mh-quote-v2 .mhv2-phone {\n        display: grid;\n        grid-template-columns: 105px 1fr;\n    }\n\n    #mh-quote-v2 .mhv2-prefix {\n        width: 105px;\n        min-width: 105px;\n    }\n\n    #mh-quote-v2 .mhv2-trip-row {\n        display: block;\n    }\n\n    #mh-quote-v2 .mhv2-trip-value {\n        max-width: 100%;\n        margin-top: 3px;\n        text-align: left;\n    }\n}\n\n\n@media(max-width:390px) {\n\n    #mh-quote-v2 .mhv2-photo-card {\n        height: 110px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-name {\n        font-size: 13px;\n    }\n\n    #mh-quote-v2 .mhv2-photo-arrow {\n        display: none;\n    }\n\n    #mh-quote-v2 .mhv2-traveler-visual {\n        display: none;\n    }\n}\n\n\/* =========================================================\n CABECERA PREMIUM V3.0.5 - AJUSTE MOBILE\n========================================================= *\/\n@media(max-width:650px) {\n\n    #mh-quote-v2 .mhv2-header {\n        padding: 15px 16px 13px;\n    }\n\n    #mh-quote-v2 .mhv2-brand {\n        gap: 9px;\n    }\n\n    #mh-quote-v2 .mhv2-brand-icon {\n        width: 38px;\n        height: 38px;\n        min-width: 38px;\n        border-radius: 11px;\n    }\n\n    #mh-quote-v2 .mhv2-brand-icon::before {\n        width: 31px;\n        height: 31px;\n    }\n\n    #mh-quote-v2 .mhv2-brand-title {\n        font-size: 13px;\n    }\n\n    #mh-quote-v2 .mhv2-brand-sub {\n        font-size: 9px;\n    }\n\n    #mh-quote-v2 .mhv2-progress-text {\n        padding: 6px 8px;\n        font-size: 10px;\n    }\n\n    #mh-quote-v2 .mhv2-header::after {\n        right: 16px;\n        top: 7px;\n        font-size: 29px;\n        opacity: .75;\n    }\n}\n\n\n\/* =========================================================\n SILUETA DE HOTELES - V3.0.9\n La imagen es panor\u00e1mica y concentra los edificios abajo.\n La ampliamos desde la base para hacerlos claramente visibles.\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-hotel-silhouette img {\n    object-fit: cover;\n    object-position: center bottom;\n    transform: scale(1.42);\n    transform-origin: center bottom;\n}\n\n#mh-quote-v2 .mhv2-hotel-silhouette:hover img {\n    transform: scale(1.47);\n}\n\n#mh-quote-v2 .mhv2-hotel-silhouette .mhv2-photo-overlay {\n    background:\n        linear-gradient(\n            180deg,\n            rgba(0,0,0,.02) 0%,\n            rgba(0,0,0,.04) 34%,\n            rgba(0,0,0,.66) 100%\n        );\n}\n\n\n\/* =========================================================\n OTROS DESTINOS - V3.0.13\n La imagen tiene los monumentos concentrados en la zona baja.\n Se ampl\u00eda y se desplaza el encuadre hacia abajo para que\n las ciudades sean protagonistas dentro de la tarjeta.\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-other-destinations {\n    background: #000;\n    overflow: hidden;\n}\n\n#mh-quote-v2 .mhv2-other-destinations img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center bottom;\n    transform: scale(1.38);\n    transform-origin: center bottom;\n}\n\n#mh-quote-v2 .mhv2-other-destinations:hover img {\n    transform: scale(1.43);\n}\n\n#mh-quote-v2 .mhv2-other-destinations .mhv2-photo-overlay {\n    background:\n        linear-gradient(\n            90deg,\n            rgba(0,0,0,.48) 0%,\n            rgba(0,0,0,.16) 38%,\n            rgba(0,0,0,.04) 68%,\n            rgba(0,0,0,.14) 100%\n        );\n}\n\n@media (max-width: 767px) {\n    #mh-quote-v2 .mhv2-other-destinations img {\n        transform: scale(1.30);\n        object-position: center bottom;\n    }\n\n    #mh-quote-v2 .mhv2-other-destinations:hover img {\n        transform: scale(1.34);\n    }\n}\n\n\n\/* =========================================================\n BIENVENIDA MOBILE - V3.0.14\n Correcci\u00f3n exclusiva de la primera pantalla.\n El resto del cotizador no se modifica.\n========================================================= *\/\n@media (max-width: 767px) {\n\n    #mh-quote-v2 .mhv2-welcome {\n        overflow: hidden;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-layout {\n        display: flex !important;\n        flex-direction: column !important;\n        width: 100% !important;\n        max-width: 100% !important;\n        gap: 22px !important;\n        padding-left: 0 !important;\n        padding-right: 0 !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-media,\n    #mh-quote-v2 .mhv2-welcome-copy {\n        width: 100% !important;\n        max-width: 100% !important;\n        min-width: 0 !important;\n        margin: 0 !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-slideshow {\n        width: 100% !important;\n        max-width: 100% !important;\n        aspect-ratio: 1 \/ 1 !important;\n        height: auto !important;\n        min-height: 0 !important;\n        border-radius: 18px !important;\n        overflow: hidden !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-slide {\n        width: 100% !important;\n        height: 100% !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-slide img {\n        width: 100% !important;\n        height: 100% !important;\n        object-fit: cover !important;\n        object-position: center center !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy {\n        text-align: center !important;\n        padding: 0 !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy .mhv2-kicker {\n        max-width: 100% !important;\n        white-space: normal !important;\n        margin-left: auto !important;\n        margin-right: auto !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy h1,\n    #mh-quote-v2 .mhv2-welcome-copy h2 {\n        width: 100% !important;\n        max-width: 100% !important;\n        margin-left: auto !important;\n        margin-right: auto !important;\n        font-size: clamp(34px, 10vw, 46px) !important;\n        line-height: 1.04 !important;\n        overflow-wrap: normal !important;\n        word-break: normal !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy p {\n        width: 100% !important;\n        max-width: 100% !important;\n        margin-left: auto !important;\n        margin-right: auto !important;\n        font-size: 16px !important;\n        line-height: 1.55 !important;\n    }\n\n    #mh-quote-v2 .mhv2-welcome-copy .mhv2-primary,\n    #mh-quote-v2 .mhv2-welcome-copy button {\n        width: 100% !important;\n        max-width: 100% !important;\n        margin-left: 0 !important;\n        margin-right: 0 !important;\n    }\n\n    #mh-quote-v2 .mhv2-trust {\n        width: 100% !important;\n        max-width: 100% !important;\n        justify-content: center !important;\n        overflow: visible !important;\n    }\n\n    \/* Los aviones decorativos no deben ampliar el ancho del hero. *\/\n    #mh-quote-v2 .mhv2-welcome .mhv2-flight {\n        pointer-events: none;\n    }\n}\n\n\n\/* =========================================================\n CABECERA - LOGO \u00daNICO V3.0.15\n Reemplaza isotipo + textos por el logo completo blanco.\n========================================================= *\/\n\n#mh-quote-v2 .mhv2-brand-single-logo {\n    display: flex;\n    align-items: center;\n    min-width: 0;\n}\n\n#mh-quote-v2 .mhv2-header-logo {\n    display: block;\n    width: auto;\n    height: 54px;\n    max-width: 150px;\n    object-fit: contain;\n    object-position: left center;\n}\n\n@media (max-width: 767px) {\n    #mh-quote-v2 .mhv2-header-logo {\n        height: 47px;\n        max-width: 132px;\n    }\n}\n\n\n\/* V3.0.24 - banderas gr\u00e1ficas reales *\/\n#mh-quote-v2 .mhv2-country-result-flag img {\n    width: 25px;\n    height: 17px;\n    display: block;\n    object-fit: cover;\n    border-radius: 3px;\n}\n\n#mh-quote-v2 .mhv2-prefix-flag-img {\n    width: 23px;\n    height: 16px;\n    display: inline-block;\n    object-fit: cover;\n    border-radius: 3px;\n    vertical-align: middle;\n    margin-right: 6px;\n}\n\n<\/style>\n\n\n<div id=\"mh-quote-v2\">\n\n<section class=\"mhv2-section\">\n\n<div class=\"mhv2-shell\">\n\n<div class=\"mhv2-card\">\n\n\n<!-- CABECERA -->\n\n<div class=\"mhv2-header\">\n\n    <div class=\"mhv2-header-row\">\n\n        <div class=\"mhv2-brand mhv2-brand-single-logo\">\n            <img decoding=\"async\"\n                class=\"mhv2-header-logo\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/logo-footer.png\"\n                alt=\"Magic Holidays Travel Agency\">\n        <\/div>\n\n        <div\n            id=\"mhv2-progress-text\"\n            class=\"mhv2-progress-text\">\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n<div class=\"mhv2-progress-bg\">\n    <div\n        id=\"mhv2-progress\"\n        class=\"mhv2-progress-bar\">\n    <\/div>\n<\/div>\n\n\n<div class=\"mhv2-content\">\n\n\n<!-- BIENVENIDA -->\n\n<div class=\"mhv2-step active\" data-step=\"welcome\">\n\n    <div class=\"mhv2-welcome\">\n\n        <!-- Aviones decorativos con estelas -->\n        <span class=\"mhv2-flight mhv2-flight-1\" aria-hidden=\"true\">\n            <span class=\"mhv2-flight-trail\"><\/span>\n            <span class=\"mhv2-flight-plane\">\u2708<\/span>\n        <\/span>\n\n        <span class=\"mhv2-flight mhv2-flight-2\" aria-hidden=\"true\">\n            <span class=\"mhv2-flight-trail\"><\/span>\n            <span class=\"mhv2-flight-plane\">\u2708<\/span>\n        <\/span>\n\n        <span class=\"mhv2-flight mhv2-flight-3\" aria-hidden=\"true\">\n            <span class=\"mhv2-flight-trail\"><\/span>\n            <span class=\"mhv2-flight-plane\">\u2708<\/span>\n        <\/span>\n\n        <span class=\"mhv2-flight mhv2-flight-4\" aria-hidden=\"true\">\n            <span class=\"mhv2-flight-trail\"><\/span>\n            <span class=\"mhv2-flight-plane\">\u2708<\/span>\n        <\/span>\n\n        <span class=\"mhv2-flight mhv2-flight-5\" aria-hidden=\"true\">\n            <span class=\"mhv2-flight-trail\"><\/span>\n            <span class=\"mhv2-flight-plane\">\u2708<\/span>\n        <\/span>\n\n        <div class=\"mhv2-welcome-layout\">\n\n            <div class=\"mhv2-welcome-visual\" aria-hidden=\"true\">\n\n                <div class=\"mhv2-welcome-shape\"><\/div>\n\n                <div class=\"mhv2-welcome-photo-frame\">\n                    <div class=\"mhv2-welcome-slideshow\" aria-hidden=\"true\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-1\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/04\/12-500x500.jpg\"\n                            alt=\"\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-2\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2025\/04\/Parque-Epic-Universe-10-500x500.webp\"\n                            alt=\"\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-3\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/07\/7-1-500x500.jpg.webp\"\n                            alt=\"\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-4\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/07\/5-2-500x500.jpg.webp\"\n                            alt=\"\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-5\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2024\/02\/RCI_WN_022022_MichelVerdure_WN22-DroneCadiz149R-500x500.webp\"\n                            alt=\"\">\n\n                        <img decoding=\"async\"\n                            class=\"mhv2-welcome-photo mhv2-welcome-slide mhv2-slide-6\"\n                            src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/04\/20-500x500.jpg.webp\"\n                            alt=\"\">\n\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"mhv2-welcome-copy\">\n\n                <div class=\"mhv2-kicker\">\n                    \u2708 Tu pr\u00f3ximo viaje empieza ac\u00e1\n                <\/div>\n\n                <h2 class=\"mhv2-title\">\n                    Dise\u00f1emos tus\n                    <span class=\"mhv2-title-accent\">\n                        pr\u00f3ximas vacaciones\n                    <\/span>\n                <\/h2>\n\n                <p class=\"mhv2-description\">\n                    Contanos qu\u00e9 viaje est\u00e1s imaginando.\n                    Te vamos a hacer algunas preguntas r\u00e1pidas\n                    para que nuestro equipo pueda preparar\n                    una propuesta personalizada.\n                <\/p>\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-btn mhv2-primary mhv2-full\"\n                    onclick=\"MHV2.start()\">\n                    EMPEZAR MI COTIZACI\u00d3N \u2192\n                <\/button>\n\n            <\/div>\n\n            <div class=\"mhv2-trust\">\n\n                <span>\n                    <span class=\"mhv2-trust-icon\">\u2713<\/span>\n                    Precios oficiales\n                <\/span>\n\n                <span>\n                    <span class=\"mhv2-trust-icon\">$<\/span>\n                    Asesoramiento sin costo\n                <\/span>\n\n                <span>\n                    <span class=\"mhv2-trust-icon\">\u25cf<\/span>\n                    Atenci\u00f3n personalizada por un agente\n                <\/span>\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- DESTINOS -->\n\n<div class=\"mhv2-step\" data-step=\"destination\">\n\n    <div class=\"mhv2-kicker\">\n        \ud83c\udf0e Contanos sobre tu viaje\n    <\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfA d\u00f3nde te gustar\u00eda viajar?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Eleg\u00ed el destino que m\u00e1s se acerca al viaje que est\u00e1s imaginando.\n    <\/p>\n\n    <div class=\"mhv2-photo-grid\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseDestination('Orlando')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/12.jpg\"\n                alt=\"Orlando\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">Orlando<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Disney \u00b7 Universal \u00b7 Diversi\u00f3n\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseDestination('Crucero')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/06\/crucero-disney.webp\"\n                alt=\"Crucero\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">Crucero<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Descubr\u00ed el mundo navegando\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseDestination('Europa')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2025\/07\/viajar-a-Paris-10.webp\"\n                alt=\"Europa\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">Europa<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Ciudades, historia y experiencias\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseDestination('Miami')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/07\/10-2-500x500.jpg.webp\"\n                alt=\"Miami\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">Miami<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Playa, compras y relax\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card mhv2-photo-wide mhv2-other-destinations\"\n            onclick=\"MHV2.chooseDestination('Otro destino')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/otros-paises.png\"\n                alt=\"Otros destinos\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">Otros destinos<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Contanos qu\u00e9 lugar ten\u00e9s en mente\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- CRUCEROS -->\n\n<div class=\"mhv2-step\" data-step=\"cruise\">\n\n    <div class=\"mhv2-kicker\">\ud83d\udea2 Tu crucero<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfQu\u00e9 crucero est\u00e1s buscando?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Eleg\u00ed la naviera que m\u00e1s te interesa.\n        Si todav\u00eda no lo ten\u00e9s definido,\n        tambi\u00e9n podemos ayudarte.\n    <\/p>\n\n    <div class=\"mhv2-photo-grid\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseCruise('Disney Cruise Line')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/10\/d1.jpg\"\n                alt=\"Disney Cruise Line\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Disney Cruise Line\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Magia Disney en alta mar\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseCruise('Royal Caribbean')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2024\/02\/RCI_OA_112019_MVerdure_AerialFLL1_002R_CMYK-1536x1024.webp\"\n                alt=\"Royal Caribbean\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Royal Caribbean\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Aventura y experiencias incre\u00edbles\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseCruise('MSC')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2024\/03\/AnyConv.com__MSC17011319-min-1.webp\"\n                alt=\"MSC\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">MSC<\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Confort y destinos alrededor del mundo\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseCruise('A\u00fan no lo tengo definido')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2024\/02\/RCI_AL_SupOceanView-BalconyR.tif-500x500.webp\"\n                alt=\"A\u00fan no lo tengo definido\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        A\u00fan no lo tengo definido\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Quiero que me asesoren\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- OTRO DESTINO -->\n\n<div class=\"mhv2-step\" data-step=\"other\">\n\n    <div class=\"mhv2-kicker\">\u2708\ufe0f Tu destino<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfA d\u00f3nde te gustar\u00eda viajar?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Escrib\u00ed el destino que ten\u00e9s en mente.\n    <\/p>\n\n    <input\n        id=\"mhv2-other\"\n        type=\"text\"\n        class=\"mhv2-input\"\n        placeholder=\"Ej.: Las Vegas, New York, Canc\u00fan...\">\n\n    <div id=\"mhv2-error-other\" class=\"mhv2-error\">\n        Indic\u00e1 un destino para continuar.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveOther()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- FECHA -->\n\n<div class=\"mhv2-step\" data-step=\"date\">\n\n    <div class=\"mhv2-kicker\">\ud83d\udcc5 Tu viaje<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfCu\u00e1ndo te gustar\u00eda viajar?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Eleg\u00ed una fecha aproximada.\n        No hace falta que sea definitiva.\n    <\/p>\n\n    <input\n        id=\"mhv2-date\"\n        type=\"date\"\n        class=\"mhv2-input\">\n\n    <div id=\"mhv2-error-date\" class=\"mhv2-error\">\n        Seleccion\u00e1 una fecha para continuar.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveDate()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- ALOJAMIENTO -->\n\n<div class=\"mhv2-step\" data-step=\"accommodation\">\n\n    <div class=\"mhv2-kicker\">\ud83c\udfe8 Tu estad\u00eda<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfD\u00f3nde te gustar\u00eda alojarte?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Eleg\u00ed la opci\u00f3n que mejor representa tu idea actual.\n    <\/p>\n\n    <div class=\"mhv2-photo-grid\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseAccommodation('Hoteles Disney Resort')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2024\/01\/1.jpg.webp\"\n                alt=\"Hoteles Disney Resort\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Hoteles Disney Resort\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Viv\u00ed la magia dentro de Disney\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseAccommodation('Hoteles Universal Resort')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/11\/oYfKtD-500x500.webp\"\n                alt=\"Hoteles Universal Resort\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Hoteles Universal Resort\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Muy cerca de la aventura\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseAccommodation('Hoteles fuera de los parques')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/Floridays-Resorts-Orlando_DisneyAdictos.png\"\n                alt=\"Hoteles fuera de los parques\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Hoteles fuera de los parques\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        M\u00e1s opciones para tu estad\u00eda\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card\"\n            onclick=\"MHV2.chooseAccommodation('Ya cuento con Hotel')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/10\/2-2-500x500.jpg.webp\"\n                alt=\"Ya cuento con Hotel\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Ya cuento con Hotel\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Solo necesito otros servicios\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-photo-card mhv2-photo-wide mhv2-hotel-silhouette\"\n            onclick=\"MHV2.chooseAccommodation('Otros')\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/silueta-hoteles.png\"\n                alt=\"Todav\u00eda no lo s\u00e9\">\n\n            <span class=\"mhv2-photo-overlay\"><\/span>\n\n            <span class=\"mhv2-photo-content\">\n                <span class=\"mhv2-photo-text\">\n                    <span class=\"mhv2-photo-name\">\n                        Todav\u00eda no lo s\u00e9\n                    <\/span>\n                    <span class=\"mhv2-photo-subtitle\">\n                        Quiero que me asesoren seg\u00fan mi viaje\n                    <\/span>\n                <\/span>\n                <span class=\"mhv2-photo-arrow\">\u2192<\/span>\n            <\/span>\n\n        <\/button>\n\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- =====================================================\n TICKETS - NUEVO DISE\u00d1O GR\u00c1FICO\n====================================================== -->\n\n<div class=\"mhv2-step\" data-step=\"tickets\">\n\n    <div class=\"mhv2-kicker\">\n        \ud83c\udf9f\ufe0f Parques\n    <\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfQuer\u00e9s incluir entradas a los parques?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Podemos incluirlas directamente dentro de tu propuesta.\n    <\/p>\n\n\n    <div class=\"mhv2-ticket-grid\">\n\n\n        <!-- S\u00cd -->\n\n        <button\n            type=\"button\"\n            class=\"mhv2-ticket-card mhv2-ticket-yes\"\n            onclick=\"MHV2.choose('tickets','S\u00cd',this)\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/captu147-1.png\"\n                alt=\"Incluir entradas a los parques\">\n\n            <span class=\"mhv2-ticket-overlay\"><\/span>\n\n            <span class=\"mhv2-ticket-badge\">\n                \ud83c\udf9f\ufe0f Entradas\n            <\/span>\n\n            <span class=\"mhv2-ticket-content\">\n\n                <span class=\"mhv2-ticket-copy\">\n\n                    <span class=\"mhv2-ticket-label\">\n                        S\u00ed, incluir entradas\n                    <\/span>\n\n                    <span class=\"mhv2-ticket-sub\">\n                        Quiero incluir los parques en mi propuesta\n                    <\/span>\n\n                <\/span>\n\n                <span class=\"mhv2-ticket-icon\">\n                    \u2192\n                <\/span>\n\n            <\/span>\n\n        <\/button>\n\n\n        <!-- NO -->\n\n        <button\n            type=\"button\"\n            class=\"mhv2-ticket-card mhv2-ticket-no\"\n            onclick=\"MHV2.choose('tickets','NO',this)\">\n\n            <img decoding=\"async\"\n                src=\"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/captu147-1.png\"\n                alt=\"No incluir entradas a los parques\">\n\n            <span class=\"mhv2-ticket-overlay\"><\/span>\n\n            <span class=\"mhv2-ticket-badge\">\n                \u2713 Ya est\u00e1 resuelto\n            <\/span>\n\n            <span class=\"mhv2-ticket-content\">\n\n                <span class=\"mhv2-ticket-copy\">\n\n                    <span class=\"mhv2-ticket-label\">\n                        No necesito entradas\n                    <\/span>\n\n                    <span class=\"mhv2-ticket-sub\">\n                        Continuar sin agregar tickets\n                    <\/span>\n\n                <\/span>\n\n                <span class=\"mhv2-ticket-icon\">\n                    \u2192\n                <\/span>\n\n            <\/span>\n\n        <\/button>\n\n    <\/div>\n\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- VIAJEROS -->\n\n<div class=\"mhv2-step\" data-step=\"travelers\">\n\n    <div class=\"mhv2-kicker\">\n        \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 Tu grupo\n    <\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfQui\u00e9nes van a viajar?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Indic\u00e1 cu\u00e1ntas personas forman parte del viaje.\n    <\/p>\n\n    <div class=\"mhv2-travelers\">\n\n\n        <div class=\"mhv2-traveler\">\n\n            <div class=\"mhv2-traveler-info\">\n\n                <div class=\"mhv2-traveler-visual adult\">\n\n                    <svg viewBox=\"0 0 40 70\" aria-hidden=\"true\">\n                        <circle cx=\"20\" cy=\"10\" r=\"8\" fill=\"#18938a\"\/>\n                        <path\n                            d=\"M12 22 C12 18 28 18 28 22 L30 43 L26 43 L25 67 L20 67 L19 46 L17 67 L12 67 L13 43 L9 43 Z\"\n                            fill=\"#18938a\"\/>\n                    <\/svg>\n\n                <\/div>\n\n                <div>\n\n                    <div class=\"mhv2-traveler-title\">\n                        Mayores de 9 a\u00f1os\n                    <\/div>\n\n                    <div class=\"mhv2-traveler-sub\">\n                        Adultos y mayores\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n            <div class=\"mhv2-counter\">\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('over9',-1)\">\n                    \u2212\n                <\/button>\n\n                <span id=\"mhv2-over9\" class=\"mhv2-count\">\n                    2\n                <\/span>\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('over9',1)\">\n                    +\n                <\/button>\n\n            <\/div>\n\n        <\/div>\n\n\n        <div class=\"mhv2-traveler\">\n\n            <div class=\"mhv2-traveler-info\">\n\n                <div class=\"mhv2-traveler-visual child\">\n\n                    <svg viewBox=\"0 0 40 60\" aria-hidden=\"true\">\n                        <circle cx=\"20\" cy=\"9\" r=\"8\" fill=\"#18938a\"\/>\n                        <path\n                            d=\"M13 21 C13 17 27 17 27 21 L29 37 L25 37 L24 57 L20 57 L19 40 L16 57 L12 57 L14 37 L10 37 Z\"\n                            fill=\"#18938a\"\/>\n                    <\/svg>\n\n                <\/div>\n\n                <div class=\"mhv2-traveler-title\">\n                    Ni\u00f1os de 3 a 9 a\u00f1os\n                <\/div>\n\n            <\/div>\n\n            <div class=\"mhv2-counter\">\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('child',-1)\">\n                    \u2212\n                <\/button>\n\n                <span id=\"mhv2-child\" class=\"mhv2-count\">\n                    0\n                <\/span>\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('child',1)\">\n                    +\n                <\/button>\n\n            <\/div>\n\n        <\/div>\n\n\n        <div class=\"mhv2-traveler\">\n\n            <div class=\"mhv2-traveler-info\">\n\n                <div class=\"mhv2-traveler-visual baby\">\n\n                    <svg viewBox=\"0 0 44 50\" aria-hidden=\"true\">\n                        <circle cx=\"22\" cy=\"10\" r=\"8\" fill=\"#18938a\"\/>\n                        <path\n                            d=\"M14 22 C15 18 29 18 30 22 L31 33 L27 34 L27 46 L23 46 L22 36 L20 46 L16 46 L17 34 L13 33 Z\"\n                            fill=\"#18938a\"\/>\n                        <circle cx=\"12\" cy=\"35\" r=\"3\" fill=\"#18938a\"\/>\n                        <circle cx=\"32\" cy=\"35\" r=\"3\" fill=\"#18938a\"\/>\n                    <\/svg>\n\n                <\/div>\n\n                <div class=\"mhv2-traveler-title\">\n                    Menores de 3 a\u00f1os\n                <\/div>\n\n            <\/div>\n\n            <div class=\"mhv2-counter\">\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('under3',-1)\">\n                    \u2212\n                <\/button>\n\n                <span id=\"mhv2-under3\" class=\"mhv2-count\">\n                    0\n                <\/span>\n\n                <button\n                    type=\"button\"\n                    class=\"mhv2-count-btn\"\n                    onclick=\"MHV2.counter('under3',1)\">\n                    +\n                <\/button>\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n\n    <div class=\"mhv2-family-box\">\n\n        <div class=\"mhv2-family-header\">\n\n            <div class=\"mhv2-family-title\">\n                TU GRUPO DE VIAJE\n            <\/div>\n\n            <div\n                id=\"mhv2-family-count\"\n                class=\"mhv2-family-count\">\n                2 viajeros en total\n            <\/div>\n\n        <\/div>\n\n        <div\n            id=\"mhv2-family-stage\"\n            class=\"mhv2-family-stage\">\n        <\/div>\n\n        <div class=\"mhv2-family-ground\"><\/div>\n\n        <div\n            id=\"mhv2-family-breakdown\"\n            class=\"mhv2-family-breakdown\">\n        <\/div>\n\n    <\/div>\n\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.next()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- COMENTARIOS -->\n\n<div class=\"mhv2-step\" data-step=\"comments\">\n\n    <div class=\"mhv2-kicker\">\n        \ud83d\udcac Personalicemos tu viaje\n    <\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfHay algo m\u00e1s que quieras contarnos?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Contanos si festejan algo especial,\n        tienen alguna preferencia o cualquier informaci\u00f3n\n        que pueda ayudarnos.\n    <\/p>\n\n    <textarea\n        id=\"mhv2-comments\"\n        class=\"mhv2-input\"\n        placeholder=\"Ej.: viajamos por el cumplea\u00f1os de nuestra hija...\"><\/textarea>\n\n    <div id=\"mhv2-error-comments\" class=\"mhv2-error\">\n        Por favor, escrib\u00ed al menos 4 palabras para que podamos entender mejor tu solicitud.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveComments()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- TRANSICI\u00d3N -->\n\n<div class=\"mhv2-step\" data-step=\"phase\">\n\n    <div class=\"mhv2-phase\">\n\n        <div class=\"mhv2-phase-icon\">\u2713<\/div>\n\n        <div class=\"mhv2-kicker\">\n            Tu presupuesto est\u00e1 tomando forma\n        <\/div>\n\n        <h2 class=\"mhv2-title\">\n            \u00a1Ya tenemos la informaci\u00f3n principal!\n        <\/h2>\n\n        <p class=\"mhv2-description\">\n            Ahora solo necesitamos tus datos de contacto\n            para que un agente de Magic Holidays pueda ayudarte\n            con tu propuesta.\n        <\/p>\n\n        <div class=\"mhv2-phase-box\">\n            \ud83d\udd12 Tus datos ser\u00e1n utilizados \u00fanicamente\n            para gestionar tu presupuesto de viaje.\n        <\/div>\n\n        <div class=\"mhv2-actions\">\n\n            <button\n                type=\"button\"\n                class=\"mhv2-btn mhv2-back\"\n                onclick=\"MHV2.back()\">\n                \u2190 Volver\n            <\/button>\n\n            <button\n                type=\"button\"\n                class=\"mhv2-btn mhv2-primary\"\n                onclick=\"MHV2.next()\">\n                CONTINUAR \u2192\n            <\/button>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- NOMBRE -->\n\n<div class=\"mhv2-step\" data-step=\"name\">\n\n    <div class=\"mhv2-kicker\">\ud83d\udc64 Ya casi terminamos<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfC\u00f3mo te llam\u00e1s?\n    <\/h2>\n\n    <input\n        id=\"mhv2-name\"\n        type=\"text\"\n        class=\"mhv2-input\"\n        autocomplete=\"name\"\n        inputmode=\"text\"\n        maxlength=\"80\"\n        placeholder=\"Nombre y apellido\"\n        oninput=\"this.value=this.value.replace(\/[^A-Za-z\u00c1\u00c9\u00cd\u00d3\u00da\u00dc\u00d1\u00e1\u00e9\u00ed\u00f3\u00fa\u00fc\u00f1\u00c0\u00c8\u00cc\u00d2\u00d9\u00e0\u00e8\u00ec\u00f2\u00f9\u00c2\u00ca\u00ce\u00d4\u00db\u00e2\u00ea\u00ee\u00f4\u00fb\u00c4\u00cb\u00cf\u00d6\u00dc\u00e4\u00eb\u00ef\u00f6\u00fc\u00c7\u00e7'\u2019 -]\/g,'')\">\n\n    <div id=\"mhv2-error-name\" class=\"mhv2-error\">\n        Ingres\u00e1 tu nombre para continuar.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveName()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- PA\u00cdS -->\n\n<div class=\"mhv2-step\" data-step=\"country\">\n\n    <div class=\"mhv2-kicker\">\ud83d\udccd Residencia<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfEn qu\u00e9 pa\u00eds resid\u00eds actualmente?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Seleccion\u00e1 tu pa\u00eds de residencia.\n    <\/p>\n\n    <div class=\"mhv2-country-grid notranslate\" translate=\"no\">\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Argentina')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/ar.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Argentina\" data-en=\"Argentina\">Argentina<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Estados Unidos')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/us.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Estados Unidos\" data-en=\"United States\">Estados Unidos<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('M\u00e9xico')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/mx.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"M\u00e9xico\" data-en=\"Mexico\">M\u00e9xico<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Colombia')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/co.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Colombia\" data-en=\"Colombia\">Colombia<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Chile')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/cl.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Chile\" data-en=\"Chile\">Chile<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Ecuador')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/ec.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Ecuador\" data-en=\"Ecuador\">Ecuador<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Espa\u00f1a')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/es.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Espa\u00f1a\" data-en=\"Spain\">Espa\u00f1a<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"mhv2-country-card\" onclick=\"MHV2.chooseCountry('Uruguay')\">\n            <span class=\"mhv2-country-flag\"><img src=\"https:\/\/flagcdn.com\/uy.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n            <span class=\"mhv2-country-name\" data-es=\"Uruguay\" data-en=\"Uruguay\">Uruguay<\/span>\n            <span class=\"mhv2-country-arrow\">\u2192<\/span>\n        <\/button>\n\n    <\/div>\n\n\n    <button\n        type=\"button\"\n        class=\"mhv2-other-country-btn notranslate\"\n        translate=\"no\"\n        onclick=\"MHV2.openCountrySearch()\">\n\n        <span class=\"mhv2-other-country-icon\">\ud83c\udf0e<\/span>\n\n        <span class=\"mhv2-other-country-text\">\n            <strong data-es=\"Otro pa\u00eds\" data-en=\"Another Country\">Otro pa\u00eds<\/strong>\n            <small data-es=\"Buscar en la lista de pa\u00edses\" data-en=\"Search In The Country List\">Buscar en la lista de pa\u00edses<\/small>\n        <\/span>\n\n        <span class=\"mhv2-country-arrow\">\u2192<\/span>\n\n    <\/button>\n\n\n    <div\n        id=\"mhv2-country-search-box\"\n        class=\"mhv2-country-search-box\">\n\n        <div class=\"mhv2-search-wrapper\">\n\n            <span class=\"mhv2-search-icon\">\u2315<\/span>\n\n            <input\n                type=\"text\"\n                id=\"mhv2-country-search\"\n                class=\"mhv2-country-search\"\n                placeholder=\"Buscar pa\u00eds...\"\n                autocomplete=\"off\"\n                oninput=\"MHV2.filterCountries(this.value)\">\n\n        <\/div>\n\n        <div\n            id=\"mhv2-country-results\"\n            class=\"mhv2-country-results\">\n        <\/div>\n\n    <\/div>\n\n\n    <div class=\"mhv2-actions\">\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- DESCUENTO -->\n\n<div class=\"mhv2-step\" data-step=\"discount\">\n\n    <div class=\"mhv2-kicker\">\ud83c\udf81 Beneficios<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfTen\u00e9s un c\u00f3digo de descuento?\n    <\/h2>\n\n    <div class=\"mhv2-options\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-option\"\n            onclick=\"MHV2.choose('discount','S\u00cd',this)\">\n\n            <span class=\"mhv2-option-icon\">\ud83c\udf81<\/span>\n            <span class=\"mhv2-option-label\">\n                S\u00ed, tengo un c\u00f3digo\n            <\/span>\n\n        <\/button>\n\n\n        <button\n            type=\"button\"\n            class=\"mhv2-option\"\n            onclick=\"MHV2.choose('discount','NO',this)\">\n\n            <span class=\"mhv2-option-icon\">\u2192<\/span>\n            <span class=\"mhv2-option-label\">\n                No tengo c\u00f3digo\n            <\/span>\n\n        <\/button>\n\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- C\u00d3DIGO DESCUENTO -->\n\n<div class=\"mhv2-step\" data-step=\"discount_code\">\n\n    <div class=\"mhv2-kicker\">\ud83c\udf81 C\u00f3digo<\/div>\n\n    <h2 class=\"mhv2-title\">\n        Ingres\u00e1 tu c\u00f3digo de descuento\n    <\/h2>\n\n    <input\n        id=\"mhv2-discount-code\"\n        type=\"text\"\n        class=\"mhv2-input\"\n        placeholder=\"C\u00f3digo\">\n\n    <div id=\"mhv2-error-discount\" class=\"mhv2-error\">\n        Ingres\u00e1 el c\u00f3digo para continuar.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveDiscount()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- EMAIL -->\n\n<div class=\"mhv2-step\" data-step=\"email\">\n\n    <div class=\"mhv2-kicker\">\u2709\ufe0f Contacto<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfCu\u00e1l es tu email?\n    <\/h2>\n\n    <input\n        id=\"mhv2-email\"\n        type=\"email\"\n        class=\"mhv2-input\"\n        autocomplete=\"email\"\n        placeholder=\"tu@email.com\">\n\n    <div id=\"mhv2-error-email\" class=\"mhv2-error\">\n        Ingres\u00e1 un email v\u00e1lido.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveEmail()\">\n            Continuar \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- WHATSAPP -->\n\n<div class=\"mhv2-step\" data-step=\"whatsapp\">\n\n    <div class=\"mhv2-kicker\">\ud83d\udcf1 \u00daltimo paso<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00bfCu\u00e1l es tu WhatsApp?\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        El primer contacto de nuestro agente ser\u00e1 por WhatsApp.\n    <\/p>\n\n    <div class=\"mhv2-phone\">\n\n        <div\n            id=\"mhv2-prefix\"\n            class=\"mhv2-prefix\">\n            \ud83c\udf0e +\n        <\/div>\n\n        <input\n            id=\"mhv2-whatsapp\"\n            type=\"tel\"\n            class=\"mhv2-input\"\n            autocomplete=\"tel\"\n            inputmode=\"numeric\"\n            pattern=\"[0-9]*\"\n            maxlength=\"15\"\n            placeholder=\"N\u00famero de WhatsApp\"\n            oninput=\"this.value=this.value.replace(\/[^0-9]\/g,'')\"\n            onpaste=\"setTimeout(()=>{this.value=this.value.replace(\/[^0-9]\/g,'')},0)\">\n\n    <\/div>\n\n    <div id=\"mhv2-error-whatsapp\" class=\"mhv2-error\">\n        Ingres\u00e1 un n\u00famero de WhatsApp v\u00e1lido de al menos 7 d\u00edgitos.\n    <\/div>\n\n    <div class=\"mhv2-helper\">\n        No hace falta que vuelvas a escribir el c\u00f3digo de pa\u00eds.\n    <\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Volver\n        <\/button>\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.saveWhatsapp()\">\n            VER MI VIAJE \u2192\n        <\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<!-- RESUMEN -->\n\n<div class=\"mhv2-step\" data-step=\"summary\">\n\n    <div class=\"mhv2-kicker\">\u2728 Tu solicitud<\/div>\n\n    <h2 class=\"mhv2-title\">\n        \u00a1Tu presupuesto ya est\u00e1 tomando forma!\n    <\/h2>\n\n    <p class=\"mhv2-description\">\n        Revis\u00e1 los datos principales antes de finalizar.\n    <\/p>\n\n    <div id=\"mhv2-summary\"><\/div>\n\n    <div class=\"mhv2-actions\">\n\n        <button\n            type=\"button\"\n            class=\"mhv2-btn mhv2-back\"\n            onclick=\"MHV2.back()\">\n            \u2190 Modificar\n        <\/button>\n\n        <button\n            id=\"mhv2-submit-btn\"\n            type=\"button\"\n            class=\"mhv2-btn mhv2-primary\"\n            onclick=\"MHV2.submitReal()\">\n            SOLICITAR MI PRESUPUESTO \ud83d\ude80\n        <\/button>\n\n    <\/div>\n\n    <div\n        id=\"mhv2-submit-status\"\n        class=\"mhv2-submit-status\"\n        role=\"status\"\n        aria-live=\"polite\">\n    <\/div>\n\n<\/div>\n\n\n<!-- \u00c9XITO -->\n\n<div class=\"mhv2-step\" data-step=\"success\">\n\n    <div class=\"mhv2-success\">\n\n        <div class=\"mhv2-success-icon\">\u2713<\/div>\n\n        <div class=\"mhv2-kicker\">Todo listo<\/div>\n\n        <h2 class=\"mhv2-title\">\n            \u00a1Excelente,\n            <span id=\"mhv2-success-name\"><\/span>!\n        <\/h2>\n\n        <p class=\"mhv2-description\">\n            Recibimos correctamente tu solicitud de cotizaci\u00f3n.\n            Un agente de Magic Holidays revisar\u00e1 la informaci\u00f3n\n            de tu viaje y se pondr\u00e1 en contacto con vos por WhatsApp.\n        <\/p>\n\n        <div class=\"mhv2-prototype\">\n\n            <strong>\u2713 Solicitud enviada correctamente.<\/strong>\n\n            <br><br>\n\n            Tus datos ya fueron registrados en nuestro sistema\n            de presupuestos.\n\n            <span id=\"mhv2-success-reference\"><\/span>\n\n        <\/div>\n\n        <div class=\"mhv2-actions\">\n\n            <button\n                type=\"button\"\n                class=\"mhv2-btn mhv2-primary mhv2-full\"\n                onclick=\"MHV2.restart()\">\n                REALIZAR OTRA COTIZACI\u00d3N\n            <\/button>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n\n\n<script>\n(function(){\n\n\"use strict\";\n\n\n\/* =========================================================\n CONFIGURACI\u00d3N\n========================================================= *\/\n\nconst STORAGE = \"magic_holidays_quote_v29\";\n\nconst LEGACY_STORAGE = \"magic_holidays_quote_v26\";\nconst LEGACY_STORAGE_V28 = \"magic_holidays_quote_v28\";\n\nconst ENDPOINT = \"\/wp-json\/magic-holidays\/v1\/cotizacion\";\n\nconst initialData = {\n\n    destination: \"\",\n    specific_destination: \"\",\n    cruise: \"\",\n    travel_date: \"\",\n    accommodation: \"\",\n    tickets: \"\",\n\n    travelers_over_9: 2,\n    travelers_3_9: 0,\n    travelers_under_3: 0,\n    travelers_total: 2,\n\n    comments: \"\",\n\n    name: \"\",\n    country: \"\",\n\n    discount: \"\",\n    discount_code: \"\",\n\n    email: \"\",\n\n    phone_prefix: \"\",\n    whatsapp: \"\",\n    whatsapp_e164: \"\",\n\n    utm_source: \"web\",\n    utm_medium: \"manual\",\n    utm_campaign: \"landing\"\n};\n\n\nlet data = Object.assign({},initialData);\n\nlet current = \"welcome\";\n\nlet history = [];\n\n\n\/* =========================================================\n PA\u00cdSES\n========================================================= *\/\n\nconst countries = [\n\n    {name:\"Argentina\",flag:\"\ud83c\udde6\ud83c\uddf7\",flagUrl:\"https:\/\/flagcdn.com\/ar.svg\",prefix:\"+54\"},\n    {name:\"Estados Unidos\",flag:\"\ud83c\uddfa\ud83c\uddf8\",flagUrl:\"https:\/\/flagcdn.com\/us.svg\",prefix:\"+1\"},\n    {name:\"M\u00e9xico\",flag:\"\ud83c\uddf2\ud83c\uddfd\",flagUrl:\"https:\/\/flagcdn.com\/mx.svg\",prefix:\"+52\"},\n    {name:\"Colombia\",flag:\"\ud83c\udde8\ud83c\uddf4\",flagUrl:\"https:\/\/flagcdn.com\/co.svg\",prefix:\"+57\"},\n    {name:\"Chile\",flag:\"\ud83c\udde8\ud83c\uddf1\",flagUrl:\"https:\/\/flagcdn.com\/cl.svg\",prefix:\"+56\"},\n    {name:\"Ecuador\",flag:\"\ud83c\uddea\ud83c\udde8\",flagUrl:\"https:\/\/flagcdn.com\/ec.svg\",prefix:\"+593\"},\n    {name:\"Espa\u00f1a\",flag:\"\ud83c\uddea\ud83c\uddf8\",flagUrl:\"https:\/\/flagcdn.com\/es.svg\",prefix:\"+34\"},\n    {name:\"Uruguay\",flag:\"\ud83c\uddfa\ud83c\uddfe\",flagUrl:\"https:\/\/flagcdn.com\/uy.svg\",prefix:\"+598\"},\n    {name:\"Per\u00fa\",flag:\"\ud83c\uddf5\ud83c\uddea\",flagUrl:\"https:\/\/flagcdn.com\/pe.svg\",prefix:\"+51\"},\n    {name:\"Paraguay\",flag:\"\ud83c\uddf5\ud83c\uddfe\",flagUrl:\"https:\/\/flagcdn.com\/py.svg\",prefix:\"+595\"},\n    {name:\"Bolivia\",flag:\"\ud83c\udde7\ud83c\uddf4\",flagUrl:\"https:\/\/flagcdn.com\/bo.svg\",prefix:\"+591\"},\n    {name:\"Venezuela\",flag:\"\ud83c\uddfb\ud83c\uddea\",flagUrl:\"https:\/\/flagcdn.com\/ve.svg\",prefix:\"+58\"},\n    {name:\"Brasil\",flag:\"\ud83c\udde7\ud83c\uddf7\",flagUrl:\"https:\/\/flagcdn.com\/br.svg\",prefix:\"+55\"},\n    {name:\"Canad\u00e1\",flag:\"\ud83c\udde8\ud83c\udde6\",flagUrl:\"https:\/\/flagcdn.com\/ca.svg\",prefix:\"+1\"},\n    {name:\"Costa Rica\",flag:\"\ud83c\udde8\ud83c\uddf7\",flagUrl:\"https:\/\/flagcdn.com\/cr.svg\",prefix:\"+506\"},\n    {name:\"Panam\u00e1\",flag:\"\ud83c\uddf5\ud83c\udde6\",flagUrl:\"https:\/\/flagcdn.com\/pa.svg\",prefix:\"+507\"},\n    {name:\"Rep\u00fablica Dominicana\",flag:\"\ud83c\udde9\ud83c\uddf4\",flagUrl:\"https:\/\/flagcdn.com\/do.svg\",prefix:\"+1\"},\n    {name:\"Puerto Rico\",flag:\"\ud83c\uddf5\ud83c\uddf7\",flagUrl:\"https:\/\/flagcdn.com\/pr.svg\",prefix:\"+1\"},\n    {name:\"Guatemala\",flag:\"\ud83c\uddec\ud83c\uddf9\",flagUrl:\"https:\/\/flagcdn.com\/gt.svg\",prefix:\"+502\"},\n    {name:\"El Salvador\",flag:\"\ud83c\uddf8\ud83c\uddfb\",flagUrl:\"https:\/\/flagcdn.com\/sv.svg\",prefix:\"+503\"},\n    {name:\"Honduras\",flag:\"\ud83c\udded\ud83c\uddf3\",flagUrl:\"https:\/\/flagcdn.com\/hn.svg\",prefix:\"+504\"},\n    {name:\"Nicaragua\",flag:\"\ud83c\uddf3\ud83c\uddee\",flagUrl:\"https:\/\/flagcdn.com\/ni.svg\",prefix:\"+505\"},\n    {name:\"Reino Unido\",flag:\"\ud83c\uddec\ud83c\udde7\",flagUrl:\"https:\/\/flagcdn.com\/gb.svg\",prefix:\"+44\"},\n    {name:\"Francia\",flag:\"\ud83c\uddeb\ud83c\uddf7\",flagUrl:\"https:\/\/flagcdn.com\/fr.svg\",prefix:\"+33\"},\n    {name:\"Italia\",flag:\"\ud83c\uddee\ud83c\uddf9\",flagUrl:\"https:\/\/flagcdn.com\/it.svg\",prefix:\"+39\"},\n    {name:\"Alemania\",flag:\"\ud83c\udde9\ud83c\uddea\",flagUrl:\"https:\/\/flagcdn.com\/de.svg\",prefix:\"+49\"},\n    {name:\"Portugal\",flag:\"\ud83c\uddf5\ud83c\uddf9\",flagUrl:\"https:\/\/flagcdn.com\/pt.svg\",prefix:\"+351\"}\n\n];\n\n\n\/* =========================================================\n SVG PERSONAS\n========================================================= *\/\n\nfunction adultSVG(){\n\n    return `\n        <svg viewBox=\"0 0 40 70\" aria-hidden=\"true\">\n            <circle cx=\"20\" cy=\"10\" r=\"8\" fill=\"#18938a\"\/>\n            <path\n                d=\"M12 22 C12 18 28 18 28 22 L30 43 L26 43 L25 67 L20 67 L19 46 L17 67 L12 67 L13 43 L9 43 Z\"\n                fill=\"#18938a\"\/>\n        <\/svg>\n    `;\n}\n\n\nfunction childSVG(){\n\n    return `\n        <svg viewBox=\"0 0 40 60\" aria-hidden=\"true\">\n            <circle cx=\"20\" cy=\"9\" r=\"8\" fill=\"#2ba79d\"\/>\n            <path\n                d=\"M13 21 C13 17 27 17 27 21 L29 37 L25 37 L24 57 L20 57 L19 40 L16 57 L12 57 L14 37 L10 37 Z\"\n                fill=\"#2ba79d\"\/>\n        <\/svg>\n    `;\n}\n\n\nfunction babySVG(){\n\n    return `\n        <svg viewBox=\"0 0 44 50\" aria-hidden=\"true\">\n            <circle cx=\"22\" cy=\"10\" r=\"8\" fill=\"#57bdb5\"\/>\n            <path\n                d=\"M14 22 C15 18 29 18 30 22 L31 33 L27 34 L27 46 L23 46 L22 36 L20 46 L16 46 L17 34 L13 33 Z\"\n                fill=\"#57bdb5\"\/>\n            <circle cx=\"12\" cy=\"35\" r=\"3\" fill=\"#57bdb5\"\/>\n            <circle cx=\"32\" cy=\"35\" r=\"3\" fill=\"#57bdb5\"\/>\n        <\/svg>\n    `;\n}\n\n\n\/* =========================================================\n UTM\n========================================================= *\/\n\nfunction captureUTM(){\n\n    \/*\n     * V3.0.7\n     * La URL SIEMPRE tiene prioridad sobre cualquier valor guardado.\n     *\n     * Ejemplo:\n     * ?utm_source=instagramORLANDO&utm_medium=manual&utm_campaign=cotizador\n     *\n     * Resultado:\n     * utm_source   = instagramORLANDO\n     * utm_medium   = manual\n     * utm_campaign = cotizador\n     *\n     * Solo usamos web \/ manual \/ landing cuando el par\u00e1metro\n     * correspondiente NO existe o llega vac\u00edo.\n     *\/\n\n    const params =\n        new URLSearchParams(\n            window.location.search || \"\"\n        );\n\n    const source =\n        (params.get(\"utm_source\") || \"\").trim();\n\n    const medium =\n        (params.get(\"utm_medium\") || \"\").trim();\n\n    const campaign =\n        (params.get(\"utm_campaign\") || \"\").trim();\n\n\n    data.utm_source =\n        source !== \"\"\n            ? source\n            : \"web\";\n\n    data.utm_medium =\n        medium !== \"\"\n            ? medium\n            : \"manual\";\n\n    data.utm_campaign =\n        campaign !== \"\"\n            ? campaign\n            : \"landing\";\n\n}\n\n\n\/* =========================================================\n STORAGE\n========================================================= *\/\n\nfunction save(){\n\n    \/*\n     * V3.0.25:\n     * El estado vive \u00fanicamente en memoria durante esta visita.\n     * No guardamos datos personales ni el progreso entre cargas.\n     *\/\n    return;\n}\n\n\nfunction load(){\n\n    \/*\n     * V3.0.25:\n     * Cada carga de p\u00e1gina comienza como una cotizaci\u00f3n nueva.\n     *\/\n    data = Object.assign({}, initialData);\n    current = \"welcome\";\n    history = [];\n}\n\n\n\/* =========================================================\n FLUJO\n========================================================= *\/\n\nfunction nextFor(step){\n\n    switch(step){\n\n        case \"destination\":\n\n            if(data.destination === \"Crucero\"){\n                return \"cruise\";\n            }\n\n            if(data.destination === \"Otro destino\"){\n                return \"other\";\n            }\n\n            return \"date\";\n\n\n        case \"cruise\":\n        case \"other\":\n            return \"date\";\n\n\n        case \"date\":\n            return \"accommodation\";\n\n\n        case \"accommodation\":\n            return \"tickets\";\n\n\n        case \"tickets\":\n            return \"travelers\";\n\n\n        case \"travelers\":\n            return \"comments\";\n\n\n        case \"comments\":\n            return \"phase\";\n\n\n        case \"phase\":\n            return \"name\";\n\n\n        case \"name\":\n            return \"country\";\n\n\n        case \"country\":\n            return \"discount\";\n\n\n        case \"discount\":\n\n            if(data.discount === \"S\u00cd\"){\n                return \"discount_code\";\n            }\n\n            return \"email\";\n\n\n        case \"discount_code\":\n            return \"email\";\n\n\n        case \"email\":\n            return \"whatsapp\";\n\n\n        case \"whatsapp\":\n            return \"summary\";\n\n\n        default:\n            return \"summary\";\n    }\n}\n\n\n\/* =========================================================\n RECORRIDO\n========================================================= *\/\n\nfunction journey(){\n\n    let j = [\"destination\"];\n\n    if(data.destination === \"Crucero\"){\n        j.push(\"cruise\");\n    }\n\n    if(data.destination === \"Otro destino\"){\n        j.push(\"other\");\n    }\n\n    j.push(\n        \"date\",\n        \"accommodation\",\n        \"tickets\"\n    );\n\n    j.push(\n        \"travelers\",\n        \"comments\",\n        \"phase\",\n        \"name\",\n        \"country\",\n        \"discount\"\n    );\n\n    if(data.discount === \"S\u00cd\"){\n        j.push(\"discount_code\");\n    }\n\n    j.push(\n        \"email\",\n        \"whatsapp\",\n        \"summary\"\n    );\n\n    return j;\n}\n\n\n\/* =========================================================\n PROGRESO\n========================================================= *\/\n\nfunction updateProgress(){\n\n    const bar =\n        document.getElementById(\"mhv2-progress\");\n\n    const text =\n        document.getElementById(\"mhv2-progress-text\");\n\n\n    if(current === \"welcome\"){\n\n        bar.style.width = \"0%\";\n        text.textContent = \"\";\n\n        return;\n    }\n\n\n    if(current === \"success\"){\n\n        bar.style.width = \"100%\";\n        text.textContent = \"Completado \u2713\";\n\n        return;\n    }\n\n\n    const list = journey();\n\n    let index = list.indexOf(current);\n\n    if(index < 0){\n        index = 0;\n    }\n\n\n    const percentage =\n        Math.max(\n            5,\n            Math.round(\n                ((index + 1) \/ list.length) * 100\n            )\n        );\n\n\n    bar.style.width =\n        percentage + \"%\";\n\n\n    text.textContent =\n        current === \"phase\"\n        ? \"Tu presupuesto est\u00e1 casi listo\"\n        : percentage + \"% completado\";\n}\n\n\n\/* =========================================================\n NAVEGACI\u00d3N\n========================================================= *\/\n\nfunction show(step,addHistory){\n\n    clearErrors();\n\n\n    if(addHistory && current !== step){\n        history.push(current);\n    }\n\n\n    current = step;\n\n\n    document\n        .querySelectorAll(\"#mh-quote-v2 .mhv2-step\")\n        .forEach(function(el){\n\n            el.classList.remove(\"active\");\n\n        });\n\n\n    const target =\n        document.querySelector(\n            '#mh-quote-v2 .mhv2-step[data-step=\"' +\n            step +\n            '\"]'\n        );\n\n\n    if(target){\n        target.classList.add(\"active\");\n    }\n\n\n    if(step === \"summary\"){\n        renderSummary();\n    }\n\n\n    if(step === \"whatsapp\"){\n        updatePhonePrefix();\n    }\n\n\n    if(step === \"travelers\"){\n        updateTravelers();\n    }\n\n\n    updateProgress();\n\n    save();\n\n\n    \/*\n     * V3.0.26:\n     * No desplazar la p\u00e1gina autom\u00e1ticamente al cargar la landing.\n     * El scroll interno del cotizador solo se ejecuta despu\u00e9s de una\n     * interacci\u00f3n real del viajero (Continuar \/ Atr\u00e1s \/ pasos).\n     *\n     * Los CTA externos de la landing conservan su propio scroll hacia\n     * #mh-jotform-container mediante .mh-form-scroll.\n     *\/\n    if(pushHistory){\n\n        window.setTimeout(function(){\n\n            const root =\n                document.getElementById(\"mh-quote-v2\");\n\n            if(!root){\n                return;\n            }\n\n            const top =\n                root.getBoundingClientRect().top +\n                window.pageYOffset -\n                105;\n\n            window.scrollTo({\n                top:top,\n                behavior:\"smooth\"\n            });\n\n        },40);\n    }\n}\n\n\nfunction goNext(){\n\n    show(\n        nextFor(current),\n        true\n    );\n}\n\n\n\/* =========================================================\n ERRORES\n========================================================= *\/\n\nfunction clearErrors(){\n\n    document\n        .querySelectorAll(\"#mh-quote-v2 .mhv2-error\")\n        .forEach(function(el){\n\n            el.classList.remove(\"show\");\n\n        });\n}\n\n\nfunction error(id){\n\n    const el =\n        document.getElementById(id);\n\n    if(el){\n        el.classList.add(\"show\");\n    }\n}\n\n\n\/* =========================================================\n IDIOMA UI DIN\u00c1MICA\n========================================================= *\/\n\nfunction mhv2UILanguage(){\n\n    const path =\n        String(window.location.pathname || \"\")\n        .toLowerCase();\n\n    return (\n        path === \"\/en\" ||\n        path.indexOf(\"\/en\/\") === 0\n    )\n        ? \"en\"\n        : \"es\";\n}\n\n\nfunction mhv2VisualText(value){\n\n    const raw = String(value || \"\");\n\n    if(mhv2UILanguage() !== \"en\"){\n        return raw;\n    }\n\n    const translations = {\n        \"Europa\": \"Europe\",\n        \"Miami\": \"Miami\",\n        \"Orlando\": \"Orlando\",\n        \"Crucero\": \"Cruise\",\n        \"Otro destino\": \"Other destination\",\n\n        \"Disney Cruise Line\": \"Disney Cruise Line\",\n        \"Royal Caribbean\": \"Royal Caribbean\",\n        \"MSC\": \"MSC\",\n        \"A\u00fan no lo tengo definido\": \"I haven't decided yet\",\n\n        \"Hoteles Disney Resort\": \"Disney Resort Hotels\",\n        \"Hoteles Universal Resort\": \"Universal Resort Hotels\",\n        \"Hoteles fuera de los parques\": \"Hotels outside the parks\",\n        \"Ya cuento con Hotel\": \"I already have a hotel\",\n        \"Otros\": \"I don't know yet\",\n\n        \"S\u00cd\": \"Yes\",\n        \"NO\": \"No\"\n    };\n\n    return Object.prototype.hasOwnProperty.call(translations, raw)\n        ? translations[raw]\n        : raw;\n}\n\n\n\/* =========================================================\n VIAJEROS\n========================================================= *\/\n\nfunction updateTravelers(){\n\n    const over =\n        Number(data.travelers_over_9);\n\n    const child =\n        Number(data.travelers_3_9);\n\n    const baby =\n        Number(data.travelers_under_3);\n\n\n    data.travelers_total =\n        over +\n        child +\n        baby;\n\n\n    document.getElementById(\"mhv2-over9\").textContent =\n        over;\n\n    document.getElementById(\"mhv2-child\").textContent =\n        child;\n\n    document.getElementById(\"mhv2-under3\").textContent =\n        baby;\n\n\n    const uiLang = mhv2UILanguage();\n\n    const totalText =\n        uiLang === \"en\"\n        ? (\n            data.travelers_total === 1\n            ? \"1 traveler in total\"\n            : data.travelers_total + \" travelers in total\"\n        )\n        : (\n            data.travelers_total === 1\n            ? \"1 viajero en total\"\n            : data.travelers_total + \" viajeros en total\"\n        );\n\n\n    document\n        .getElementById(\"mhv2-family-count\")\n        .textContent =\n            totalText;\n\n\n    renderFamily();\n\n    save();\n}\n\n\n\/* =========================================================\n GRUPO VISUAL\n========================================================= *\/\n\nfunction renderFamily(){\n\n    const stage =\n        document.getElementById(\"mhv2-family-stage\");\n\n    const breakdown =\n        document.getElementById(\"mhv2-family-breakdown\");\n\n\n    if(!stage || !breakdown){\n        return;\n    }\n\n\n    let peopleHTML = \"\";\n\n\n    for(\n        let i = 0;\n        i < data.travelers_over_9;\n        i++\n    ){\n\n        peopleHTML +=\n            '<div class=\"mhv2-family-person adult\" title=\"' +\n                (mhv2UILanguage() === \"en\" ? \"Ages 9 and up\" : \"Mayor de 9 a\u00f1os\") +\n                '\">' +\n                adultSVG() +\n            '<\/div>';\n    }\n\n\n    for(\n        let i = 0;\n        i < data.travelers_3_9;\n        i++\n    ){\n\n        peopleHTML +=\n            '<div class=\"mhv2-family-person child\" title=\"' +\n                (mhv2UILanguage() === \"en\" ? \"Child from 3 to 9 years old\" : \"Ni\u00f1o de 3 a 9 a\u00f1os\") +\n                '\">' +\n                childSVG() +\n            '<\/div>';\n    }\n\n\n    for(\n        let i = 0;\n        i < data.travelers_under_3;\n        i++\n    ){\n\n        peopleHTML +=\n            '<div class=\"mhv2-family-person baby\" title=\"' +\n                (mhv2UILanguage() === \"en\" ? \"Under 3 years old\" : \"Menor de 3 a\u00f1os\") +\n                '\">' +\n                babySVG() +\n            '<\/div>';\n    }\n\n\n    if(data.travelers_total === 0){\n\n        peopleHTML =\n            '<div class=\"mhv2-family-empty\">' +\n                (mhv2UILanguage() === \"en\"\n                    ? \"Add the people who are going to travel\"\n                    : \"Agreg\u00e1 las personas que van a viajar\") +\n            '<\/div>';\n    }\n\n\n    stage.innerHTML =\n        peopleHTML;\n\n\n    let pills = \"\";\n\n    const uiLang = mhv2UILanguage();\n\n\n    if(data.travelers_over_9 > 0){\n\n        pills +=\n            '<span class=\"mhv2-family-pill\">' +\n                data.travelers_over_9 +\n                (\n                    uiLang === \"en\"\n                    ? (\n                        data.travelers_over_9 === 1\n                        ? ' age 9 and up'\n                        : ' ages 9 and up'\n                    )\n                    : (\n                        data.travelers_over_9 === 1\n                        ? ' mayor de 9'\n                        : ' mayores de 9'\n                    )\n                ) +\n            '<\/span>';\n    }\n\n\n    if(data.travelers_3_9 > 0){\n\n        pills +=\n            '<span class=\"mhv2-family-pill\">' +\n                data.travelers_3_9 +\n                (\n                    uiLang === \"en\"\n                    ? (\n                        data.travelers_3_9 === 1\n                        ? ' child from 3 to 9'\n                        : ' children from 3 to 9'\n                    )\n                    : (\n                        data.travelers_3_9 === 1\n                        ? ' ni\u00f1o de 3 a 9'\n                        : ' ni\u00f1os de 3 a 9'\n                    )\n                ) +\n            '<\/span>';\n    }\n\n\n    if(data.travelers_under_3 > 0){\n\n        pills +=\n            '<span class=\"mhv2-family-pill\">' +\n                data.travelers_under_3 +\n                (\n                    uiLang === \"en\"\n                    ? (\n                        data.travelers_under_3 === 1\n                        ? ' under 3'\n                        : ' under 3'\n                    )\n                    : (\n                        data.travelers_under_3 === 1\n                        ? ' menor de 3'\n                        : ' menores de 3'\n                    )\n                ) +\n            '<\/span>';\n    }\n\n\n    breakdown.innerHTML =\n        pills;\n}\n\n\n\/* =========================================================\n PA\u00cdSES\n========================================================= *\/\n\nfunction getCountry(name){\n\n    return countries.find(\n        function(country){\n            return country.name === name;\n        }\n    );\n}\n\n\nfunction updatePhonePrefix(){\n\n    const country =\n        getCountry(data.country);\n\n    const prefix =\n        document.getElementById(\"mhv2-prefix\");\n\n\n    if(country){\n\n        data.phone_prefix =\n            country.prefix;\n\n        prefix.innerHTML =\n            (\n                country.flagUrl\n                    ? '<img class=\"mhv2-prefix-flag-img\" src=\"' + country.flagUrl + '\" alt=\"\" loading=\"lazy\" decoding=\"async\">'\n                    : country.flag\n            ) +\n            '<span>' + country.prefix + '<\/span>';\n\n    }else{\n\n        prefix.textContent =\n            \"\ud83c\udf0e +\";\n    }\n}\n\n\nfunction renderCountryResults(query){\n\n    const container =\n        document.getElementById(\"mhv2-country-results\");\n\n    if(!container){\n        return;\n    }\n\n\n    const q =\n        String(query || \"\")\n        .trim()\n        .toLowerCase()\n        .normalize(\"NFD\")\n        .replace(\n            \/[\\u0300-\\u036f]\/g,\n            \"\"\n        );\n\n\n    const mainCountries = [\n        \"Argentina\",\n        \"Estados Unidos\",\n        \"M\u00e9xico\",\n        \"Colombia\",\n        \"Chile\",\n        \"Ecuador\",\n        \"Espa\u00f1a\",\n        \"Uruguay\"\n    ];\n\n\n    let filtered =\n        countries.filter(\n            function(country){\n\n                if(\n                    !q &&\n                    mainCountries.indexOf(country.name) !== -1\n                ){\n                    return false;\n                }\n\n\n                const normalized =\n                    country.name\n                    .toLowerCase()\n                    .normalize(\"NFD\")\n                    .replace(\n                        \/[\\u0300-\\u036f]\/g,\n                        \"\"\n                    );\n\n\n                return (\n                    !q ||\n                    normalized.indexOf(q) !== -1\n                );\n            }\n        );\n\n\n    if(!filtered.length){\n\n        container.innerHTML =\n            '<div class=\"mhv2-country-empty\">' +\n                'No encontramos ese pa\u00eds.' +\n            '<\/div>';\n\n        return;\n    }\n\n\n    container.innerHTML =\n        filtered.map(\n            function(country){\n\n                return (\n                    '<button ' +\n                    'type=\"button\" ' +\n                    'class=\"mhv2-country-result\" ' +\n                    'data-country=\"' +\n                    country.name.replace(\/\"\/g,\"&quot;\") +\n                    '\">' +\n\n                    '<span class=\"mhv2-country-result-flag\">' +\n                        (\n                            country.flagUrl\n                                ? '<img src=\"' + country.flagUrl + '\" alt=\"\" loading=\"lazy\" decoding=\"async\">'\n                                : country.flag\n                        ) +\n                    '<\/span>' +\n\n                    '<span>' +\n                        country.name +\n                        ' \u00b7 ' +\n                        country.prefix +\n                    '<\/span>' +\n\n                    '<\/button>'\n                );\n\n            }\n        ).join(\"\");\n\n\n    container\n        .querySelectorAll(\".mhv2-country-result\")\n        .forEach(function(button){\n\n            button.addEventListener(\n                \"click\",\n                function(){\n\n                    window.MHV2.chooseCountry(\n                        this.getAttribute(\"data-country\")\n                    );\n\n                }\n            );\n\n        });\n}\n\n\n\/* =========================================================\n FECHA\n========================================================= *\/\n\nfunction prettyDate(value){\n\n    if(!value){\n        return \"Sin definir\";\n    }\n\n    const p =\n        value.split(\"-\");\n\n    if(p.length !== 3){\n        return value;\n    }\n\n    return (\n        p[2] +\n        \"\/\" +\n        p[1] +\n        \"\/\" +\n        p[0]\n    );\n}\n\n\n\/* =========================================================\n ESCAPE\n========================================================= *\/\n\nfunction esc(value){\n\n    const div =\n        document.createElement(\"div\");\n\n    div.textContent =\n        value == null\n        ? \"\"\n        : String(value);\n\n    return div.innerHTML;\n}\n\n\n\/* =========================================================\n RESUMEN\n========================================================= *\/\n\nfunction tripRow(label,value){\n\n    return (\n\n        '<div class=\"mhv2-trip-row\">' +\n\n            '<div class=\"mhv2-trip-label\">' +\n                esc(label) +\n            '<\/div>' +\n\n            '<div class=\"mhv2-trip-value\">' +\n                esc(value) +\n            '<\/div>' +\n\n        '<\/div>'\n\n    );\n}\n\n\nfunction renderSummary(){\n\n    const uiLang = mhv2UILanguage();\n\n    let destination =\n        data.destination;\n\n\n    if(data.destination === \"Otro destino\"){\n        destination =\n            data.specific_destination;\n    }\n\n\n    let html =\n\n        '<div class=\"mhv2-trip-card\">' +\n\n            '<div class=\"mhv2-trip-top\">' +\n\n                '<div class=\"mhv2-trip-destination\">' +\n\n                    '\u2728 Tu viaje a ' +\n                    esc(destination) +\n\n                '<\/div>' +\n\n                '<div class=\"mhv2-trip-date\">' +\n\n                    '\ud83d\udcc5 ' +\n                    esc(prettyDate(data.travel_date)) +\n\n                '<\/div>' +\n\n            '<\/div>' +\n\n            '<div class=\"mhv2-trip-details\">';\n\n\n    if(data.cruise){\n\n        html +=\n            tripRow(\n                (uiLang === \"en\" ? \"\ud83d\udea2 Cruise\" : \"\ud83d\udea2 Crucero\"),\n                data.cruise\n            );\n    }\n\n\n    if(data.accommodation){\n\n        html +=\n            tripRow(\n                (uiLang === \"en\" ? \"\ud83c\udfe8 Accommodation\" : \"\ud83c\udfe8 Alojamiento\"),\n                data.accommodation === \"Otros\"\n                ? (uiLang === \"en\" ? \"I don\\'t know yet\" : \"Todav\u00eda no lo s\u00e9\")\n                : mhv2VisualText(data.accommodation)\n            );\n    }\n\n\n    if(data.tickets){\n\n        html +=\n            tripRow(\n                (uiLang === \"en\" ? \"\ud83c\udf9f\ufe0f Tickets\" : \"\ud83c\udf9f\ufe0f Entradas\"),\n                data.tickets === \"S\u00cd\"\n                ? (uiLang === \"en\" ? \"Included\" : \"Incluidas\")\n                : (uiLang === \"en\" ? \"Not required\" : \"No requeridas\")\n            );\n    }\n\n\n    let travelers =\n        data.travelers_total +\n        (\n            uiLang === \"en\"\n            ? (data.travelers_total === 1 ? \" traveler \u00b7 \" : \" travelers \u00b7 \")\n            : (data.travelers_total === 1 ? \" viajero \u00b7 \" : \" viajeros \u00b7 \")\n        ) +\n        data.travelers_over_9 +\n        (uiLang === \"en\" ? \" ages 9+\" : \" mayores\");\n\n\n    if(data.travelers_3_9 > 0){\n\n        travelers +=\n            \" \u00b7 \" +\n            data.travelers_3_9 +\n            (\n                uiLang === \"en\"\n                ? (data.travelers_3_9 === 1 ? \" child\" : \" children\")\n                : (data.travelers_3_9 === 1 ? \" ni\u00f1o\" : \" ni\u00f1os\")\n            );\n    }\n\n\n    if(data.travelers_under_3 > 0){\n\n        travelers +=\n            \" \u00b7 \" +\n            data.travelers_under_3 +\n            (uiLang === \"en\" ? \" under 3\" : \" menores de 3\");\n    }\n\n\n    html +=\n        tripRow(\n            (uiLang === \"en\" ? \"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 Travelers\" : \"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 Viajeros\"),\n            travelers\n        );\n\n\n    if(data.discount === \"S\u00cd\"){\n\n        html +=\n            tripRow(\n                (uiLang === \"en\" ? \"\ud83c\udf81 Code\" : \"\ud83c\udf81 C\u00f3digo\"),\n                data.discount_code\n            );\n    }\n\n\n    html +=\n\n        '<\/div>' +\n        '<\/div>';\n\n\n    html +=\n\n        '<div class=\"mhv2-contact-preview\">' +\n\n            '<strong>' +\n                esc(data.name) +\n            '<\/strong><br>' +\n\n            '\ud83d\udccd ' +\n            esc(data.country) +\n            '<br>' +\n\n            '\u2709\ufe0f ' +\n            esc(data.email) +\n            '<br>' +\n\n            '\ud83d\udcf1 ' +\n            esc(\n                data.phone_prefix +\n                \" \" +\n                data.whatsapp\n            ) +\n\n        '<\/div>';\n\n\n    document\n        .getElementById(\"mhv2-summary\")\n        .innerHTML =\n            html;\n}\n\n\n\/* =========================================================\n PAYLOAD JOTFORM\n========================================================= *\/\n\nfunction buildJotformPayload(){\n\n    return {\n\n        \"Nombre\":\n            data.name,\n\n        \"Actualmente resides en:\":\n            data.country,\n\n        \"\u00bfA donde tienes pensado viajar?\":\n            data.destination,\n\n        \"En que fecha te gustar\u00eda viajar? (Aproximadamente)\":\n            data.travel_date,\n\n        \"Tu idea es alojarte en...\":\n            data.accommodation,\n\n        \"\u00bfQuieres Ticket para los parques?\":\n            data.tickets,\n\n        \"El grupo familiar esta formado por cuantas personas?\":\n            String(data.travelers_total),\n\n        \"\u00bfCu\u00e1ntas personas son menores entre 3 y 9 a\u00f1os?\":\n            String(data.travelers_3_9),\n\n        \"\u00bfCu\u00e1ntas personas son mayores de 9 a\u00f1os?\":\n            String(data.travelers_over_9),\n\n        \"De esas personas cu\u00e1ntas son menores de 3 a\u00f1os?\":\n            String(data.travelers_under_3),\n\n        \"Email\":\n            data.email,\n\n        \"Consulta o informaci\u00f3n que quiera agregar\":\n            data.comments,\n\n        \"\u00bfQu\u00e9 crucero estas buscando?\":\n            data.cruise,\n\n        \"\u00bfCu\u00e1l es el destino a donde quieres viajar?\":\n            data.specific_destination,\n\n        \"\u00bfCuenta con c\u00f3digo de descuento?\":\n            data.discount,\n\n        \"Indique el c\u00f3digo del descuento\":\n            data.discount_code,\n\n        \"utm_source\":\n            data.utm_source,\n\n        \"utm_medium\":\n            data.utm_medium,\n\n        \"utm_campaign\":\n            data.utm_campaign,\n\n        \"N\u00famero de tel\u00e9fono de Whatsapp para contactarnos\":\n            data.whatsapp\n\n    };\n}\n\n\n\/* =========================================================\n API\n========================================================= *\/\n\nwindow.MHV2 = {\n\n\n    start:function(){\n\n        show(\n            \"destination\",\n            true\n        );\n    },\n\n\n    chooseDestination:function(value){\n\n        data.destination = value;\n\n\n        if(value !== \"Crucero\"){\n            data.cruise = \"\";\n        }\n\n\n        if(value !== \"Otro destino\"){\n            data.specific_destination = \"\";\n        }\n\n\n        save();\n\n        window.setTimeout(\n            goNext,\n            120\n        );\n    },\n\n\n    chooseCruise:function(value){\n\n        data.cruise = value;\n\n        save();\n\n        window.setTimeout(\n            goNext,\n            120\n        );\n    },\n\n\n    chooseAccommodation:function(value){\n\n        data.accommodation = value;\n\n        save();\n\n        window.setTimeout(\n            goNext,\n            120\n        );\n    },\n\n\n    choose:function(field,value,element){\n\n        data[field] = value;\n\n\n        if(\n            field === \"discount\" &&\n            value === \"NO\"\n        ){\n            data.discount_code = \"\";\n        }\n\n\n        const group =\n            element.closest(\n                \".mhv2-options, .mhv2-ticket-grid\"\n            );\n\n\n        if(group){\n\n            group\n                .querySelectorAll(\n                    \".mhv2-option, .mhv2-ticket-card\"\n                )\n                .forEach(function(button){\n\n                    button.classList.remove(\"selected\");\n\n                });\n        }\n\n\n        element.classList.add(\"selected\");\n\n        save();\n\n        window.setTimeout(\n            goNext,\n            150\n        );\n    },\n\n\n    chooseCountry:function(countryName){\n\n        const country =\n            getCountry(countryName);\n\n\n        if(!country){\n            return;\n        }\n\n\n        data.country =\n            country.name;\n\n        data.phone_prefix =\n            country.prefix;\n\n\n        save();\n\n\n        window.setTimeout(\n            goNext,\n            120\n        );\n    },\n\n\n    openCountrySearch:function(){\n\n        const box =\n            document.getElementById(\n                \"mhv2-country-search-box\"\n            );\n\n        const input =\n            document.getElementById(\n                \"mhv2-country-search\"\n            );\n\n\n        if(!box){\n            return;\n        }\n\n\n        const opening =\n            !box.classList.contains(\"open\");\n\n\n        box.classList.toggle(\"open\");\n\n\n        if(opening){\n\n            renderCountryResults(\"\");\n\n            window.setTimeout(\n                function(){\n\n                    if(input){\n                        input.focus();\n                    }\n\n                },\n                120\n            );\n        }\n    },\n\n\n    filterCountries:function(value){\n\n        renderCountryResults(value);\n    },\n\n\n    back:function(){\n\n        if(!history.length){\n            return;\n        }\n\n\n        const previous =\n            history.pop();\n\n\n        show(\n            previous,\n            false\n        );\n    },\n\n\n    next:function(){\n\n        goNext();\n    },\n\n\n    saveOther:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-other\")\n                .value\n                .trim();\n\n\n        if(!value){\n\n            error(\"mhv2-error-other\");\n\n            return;\n        }\n\n\n        data.specific_destination =\n            value;\n\n\n        goNext();\n    },\n\n\n    saveDate:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-date\")\n                .value;\n\n\n        if(!value){\n\n            error(\"mhv2-error-date\");\n\n            return;\n        }\n\n\n        data.travel_date =\n            value;\n\n\n        goNext();\n    },\n\n\n    counter:function(type,delta){\n\n        let key = \"\";\n\n\n        if(type === \"over9\"){\n            key = \"travelers_over_9\";\n        }\n\n\n        if(type === \"child\"){\n            key = \"travelers_3_9\";\n        }\n\n\n        if(type === \"under3\"){\n            key = \"travelers_under_3\";\n        }\n\n\n        if(!key){\n            return;\n        }\n\n\n        data[key] =\n            Math.max(\n                0,\n                Number(data[key]) + delta\n            );\n\n\n        updateTravelers();\n    },\n\n\n    saveComments:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-comments\")\n                .value\n                .trim();\n\n        const words =\n            value\n                .split(\/\\s+\/)\n                .filter(function(word){\n                    return word.length > 0;\n                });\n\n\n        if(words.length < 4){\n\n            const errorBox =\n                document.getElementById(\"mhv2-error-comments\");\n\n            if(errorBox){\n\n                errorBox.textContent =\n                    mhv2UILanguage() === \"en\"\n                        ? \"Please write at least 4 words so we can better understand your request.\"\n                        : \"Por favor, escrib\u00ed al menos 4 palabras para que podamos entender mejor tu solicitud.\";\n            }\n\n            error(\"mhv2-error-comments\");\n\n            return;\n        }\n\n\n        data.comments =\n            value;\n\n\n        goNext();\n    },\n\n\n    saveName:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-name\")\n                .value\n                .trim();\n\n        \/*\n         * V3.0.28\n         * Nombre y apellido: solo letras.\n         * Se permiten espacios, guiones y ap\u00f3strofes para nombres reales,\n         * adem\u00e1s de letras acentuadas y \u00d1.\n         *\/\n        const validName =\n            \/^[A-Za-z\u00c1\u00c9\u00cd\u00d3\u00da\u00dc\u00d1\u00e1\u00e9\u00ed\u00f3\u00fa\u00fc\u00f1\u00c0\u00c8\u00cc\u00d2\u00d9\u00e0\u00e8\u00ec\u00f2\u00f9\u00c2\u00ca\u00ce\u00d4\u00db\u00e2\u00ea\u00ee\u00f4\u00fb\u00c4\u00cb\u00cf\u00d6\u00dc\u00e4\u00eb\u00ef\u00f6\u00fc\u00c7\u00e7'\u2019 -]+$\/.test(value);\n\n\n        if(value.length < 2 || !validName){\n\n            const errorBox =\n                document.getElementById(\"mhv2-error-name\");\n\n            if(errorBox){\n\n                errorBox.textContent =\n                    mhv2UILanguage() === \"en\"\n                        ? \"Please enter your name using letters only.\"\n                        : \"Ingres\u00e1 tu nombre y apellido utilizando solo letras.\";\n            }\n\n            error(\"mhv2-error-name\");\n\n            return;\n        }\n\n\n        data.name =\n            value;\n\n\n        goNext();\n    },\n\n\n    saveDiscount:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-discount-code\")\n                .value\n                .trim();\n\n\n        if(!value){\n\n            error(\"mhv2-error-discount\");\n\n            return;\n        }\n\n\n        data.discount_code =\n            value;\n\n\n        goNext();\n    },\n\n\n    saveEmail:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-email\")\n                .value\n                .trim();\n\n\n        const valid =\n            \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/\n            .test(value);\n\n\n        if(!valid){\n\n            error(\"mhv2-error-email\");\n\n            return;\n        }\n\n\n        data.email =\n            value;\n\n\n        goNext();\n    },\n\n\n    saveWhatsapp:function(){\n\n        const value =\n            document\n                .getElementById(\"mhv2-whatsapp\")\n                .value\n                .trim();\n\n\n        const digits =\n            value.replace(\n                \/\\D\/g,\n                \"\"\n            );\n\n\n        if(digits.length < 7){\n\n            error(\"mhv2-error-whatsapp\");\n\n            return;\n        }\n\n\n        \/*\n         * V3.0.30:\n         * El valor que contin\u00faa hacia Jotform\/CRM\/Kapso queda normalizado\n         * exclusivamente con d\u00edgitos.\n         *\/\n        data.whatsapp =\n            digits;\n\n\n        data.whatsapp_e164 =\n            (\n                data.phone_prefix +\n                digits\n            )\n            .replace(\n                \/\\s\/g,\n                \"\"\n            );\n\n\n        save();\n\n        goNext();\n    },\n\n\n    submitReal:async function(){\n\n        const button =\n            document.getElementById(\n                \"mhv2-submit-btn\"\n            );\n\n        const status =\n            document.getElementById(\n                \"mhv2-submit-status\"\n            );\n\n\n        if(\n            !button ||\n            button.disabled\n        ){\n            return;\n        }\n\n\n        \/* Si el env\u00edo falla, la cotizaci\u00f3n queda guardada. *\/\n        save();\n\n\n        \/*\n         * V3.0.7: volvemos a leer la URL justo antes del env\u00edo.\n         * As\u00ed las UTMs visibles en la URL son la fuente definitiva\n         * y nunca una cotizaci\u00f3n anterior guardada en el navegador.\n         *\/\n        captureUTM();\n\n\n        const inputLanguage =\n            (\n                String(window.location.pathname || \"\").toLowerCase() === \"\/en\" ||\n                String(window.location.pathname || \"\").toLowerCase().indexOf(\"\/en\/\") === 0\n            )\n                ? \"en\"\n                : \"es\";\n\n\n        const requestData = {\n\n            name: data.name,\n            country: data.country,\n            destination: data.destination,\n            travel_date: data.travel_date,\n            accommodation: data.accommodation,\n            tickets: data.tickets,\n\n            travelers_total:\n                Number(data.travelers_total) || 0,\n\n            adults_10_plus:\n                Number(data.travelers_over_9) || 0,\n\n            children_3_9:\n                Number(data.travelers_3_9) || 0,\n\n            children_under_3:\n                Number(data.travelers_under_3) || 0,\n\n            comments: data.comments,\n            cruise: data.cruise,\n\n            other_destination:\n                data.specific_destination,\n\n            discount: data.discount,\n            discount_code: data.discount_code,\n            email: data.email,\n\n            phone_prefix:\n                data.phone_prefix || \"\",\n\n            whatsapp:\n                data.whatsapp || \"\",\n\n            whatsapp_e164:\n                data.whatsapp_e164 ||\n                (\n                    (data.phone_prefix || \"\") +\n                    (data.whatsapp || \"\").replace(\/\\D\/g,\"\")\n                ),\n\n            utm_source: data.utm_source,\n            utm_medium: data.utm_medium,\n            utm_campaign: data.utm_campaign,\n\n            inputLanguage: inputLanguage\n        };\n\n\n        button.disabled = true;\n        button.textContent = \"ENVIANDO SOLICITUD\u2026\";\n\n\n        if(status){\n            status.className = \"mhv2-submit-status sending\";\n            status.textContent =\n                \"Estamos registrando tu solicitud. No cierres esta ventana.\";\n        }\n\n\n        try{\n\n            const response =\n                await fetch(\n                    ENDPOINT,\n                    {\n                        method: \"POST\",\n\n                        headers:{\n                            \"Content-Type\": \"application\/json\"\n                        },\n\n                        credentials: \"same-origin\",\n\n                        body:\n                            JSON.stringify(requestData)\n                    }\n                );\n\n\n            let result = {};\n\n            try{\n                result = await response.json();\n            }catch(parseError){\n                result = {};\n            }\n\n\n            if(\n                !response.ok ||\n                !result ||\n                result.success !== true\n            ){\n                const message =\n                    result && result.message\n                        ? result.message\n                        : \"No pudimos registrar la solicitud en este momento. Intent\u00e1 nuevamente.\";\n\n                throw new Error(message);\n            }\n\n\n            \/* Conversi\u00f3n solo despu\u00e9s de confirmaci\u00f3n real. *\/\n            window.dataLayer =\n                window.dataLayer || [];\n\n            window.dataLayer.push({\n\n                event:\n                    \"mh_quote_submit_success\",\n\n                quote_destination:\n                    data.destination,\n\n                quote_country:\n                    data.country,\n\n                quote_travelers:\n                    data.travelers_total,\n\n                jotform_submission_id:\n                    result.submission_id || \"\",\n\n                utm_source:\n                    data.utm_source,\n\n                utm_medium:\n                    data.utm_medium,\n\n                utm_campaign:\n                    data.utm_campaign\n            });\n\n\n            const firstName =\n                (data.name || \"viajero\")\n                .split(\" \")[0];\n\n            document\n                .getElementById(\"mhv2-success-name\")\n                .textContent = firstName;\n\n\n            const reference =\n                document.getElementById(\n                    \"mhv2-success-reference\"\n                );\n\n            if(reference){\n                reference.textContent =\n                    result.submission_id\n                        ? \" Referencia: \" +\n                          result.submission_id +\n                          \".\"\n                        : \"\";\n            }\n\n\n            \/*\n             * Mostrar \u00e9xito primero. show() guarda el estado actual,\n             * por eso limpiamos el storage DESPU\u00c9S de mostrar la pantalla.\n             * As\u00ed nunca se vuelve a guardar la cotizaci\u00f3n ya enviada.\n             *\/\n            show(\n                \"success\",\n                true\n            );\n\n            localStorage.removeItem(STORAGE);\n            localStorage.removeItem(LEGACY_STORAGE);\n\n\n        }catch(err){\n\n            console.error(\n                \"MAGIC HOLIDAYS - ERROR DE ENV\u00cdO\",\n                err\n            );\n\n\n            if(status){\n\n                status.className =\n                    \"mhv2-submit-status show\";\n\n                status.textContent =\n                    err && err.message\n                        ? err.message +\n                          \" Tus datos siguen guardados; pod\u00e9s volver a intentarlo.\"\n                        : \"No pudimos enviar tu solicitud. Tus datos siguen guardados; pod\u00e9s volver a intentarlo.\";\n            }\n\n\n            button.disabled = false;\n            button.textContent =\n                \"VOLVER A INTENTAR \ud83d\ude80\";\n        }\n    },\n\n\n    restart:function(){\n\n        localStorage.removeItem(STORAGE);\n        localStorage.removeItem(LEGACY_STORAGE);\n        localStorage.removeItem(LEGACY_STORAGE_V28);\n\n\n        data =\n            Object.assign(\n                {},\n                initialData\n            );\n\n\n        current =\n            \"welcome\";\n\n\n        history = [];\n\n\n        captureUTM();\n\n        resetFields();\n\n        updateTravelers();\n\n\n        const submitButton =\n            document.getElementById(\n                \"mhv2-submit-btn\"\n            );\n\n        const submitStatus =\n            document.getElementById(\n                \"mhv2-submit-status\"\n            );\n\n\n        if(submitButton){\n            submitButton.disabled = false;\n            submitButton.textContent =\n                \"SOLICITAR MI PRESUPUESTO \ud83d\ude80\";\n        }\n\n\n        if(submitStatus){\n            submitStatus.className =\n                \"mhv2-submit-status\";\n            submitStatus.textContent = \"\";\n        }\n\n\n        show(\n            \"welcome\",\n            false\n        );\n    }\n\n};\n\n\n\/* =========================================================\n RESTAURAR DATOS\n========================================================= *\/\n\nfunction restore(){\n\n    function setValue(id,value){\n\n        const el =\n            document.getElementById(id);\n\n\n        if(el && value){\n            el.value = value;\n        }\n    }\n\n\n    setValue(\n        \"mhv2-other\",\n        data.specific_destination\n    );\n\n    setValue(\n        \"mhv2-date\",\n        data.travel_date\n    );\n\n    setValue(\n        \"mhv2-comments\",\n        data.comments\n    );\n\n    setValue(\n        \"mhv2-name\",\n        data.name\n    );\n\n    setValue(\n        \"mhv2-discount-code\",\n        data.discount_code\n    );\n\n    setValue(\n        \"mhv2-email\",\n        data.email\n    );\n\n    setValue(\n        \"mhv2-whatsapp\",\n        data.whatsapp\n    );\n\n\n    updateTravelers();\n\n    updatePhonePrefix();\n}\n\n\n\/* =========================================================\n RESET\n========================================================= *\/\n\nfunction resetFields(){\n\n    document\n        .querySelectorAll(\n            \"#mh-quote-v2 input, \" +\n            \"#mh-quote-v2 textarea\"\n        )\n        .forEach(function(el){\n\n            el.value = \"\";\n\n        });\n\n\n    document\n        .querySelectorAll(\n            \"#mh-quote-v2 .mhv2-option, \" +\n            \"#mh-quote-v2 .mhv2-ticket-card\"\n        )\n        .forEach(function(el){\n\n            el.classList.remove(\"selected\");\n\n        });\n\n\n    const countrySearchBox =\n        document.getElementById(\n            \"mhv2-country-search-box\"\n        );\n\n\n    if(countrySearchBox){\n\n        countrySearchBox\n            .classList\n            .remove(\"open\");\n    }\n}\n\n\n\/* =========================================================\n V3.0.24 - COMPATIBILIDAD TRANSLATEPRESS \/ PA\u00cdSES\n========================================================= *\/\n\n\/*\n * TranslatePress traduce normalmente todo el cotizador.\n * \u00danicamente las tarjetas fijas de pa\u00edses quedan excluidas de\n * TranslatePress porque, en la versi\u00f3n \/en\/, el reemplazo visual\n * pod\u00eda superponer el texto original y el traducido.\n *\n * Los valores internos NO cambian: chooseCountry() contin\u00faa\n * enviando los nombres en espa\u00f1ol que espera Jotform.\n *\/\n\nfunction applyCountryCardLanguage(){\n\n    const path =\n        String(window.location.pathname || \"\")\n            .toLowerCase();\n\n    const isEnglish =\n        path === \"\/en\" ||\n        path.indexOf(\"\/en\/\") === 0;\n\n\n    document\n        .querySelectorAll(\n            \"#mh-quote-v2 .mhv2-country-name[data-es][data-en]\"\n        )\n        .forEach(function(el){\n\n            el.textContent =\n                isEnglish\n                    ? el.getAttribute(\"data-en\")\n                    : el.getAttribute(\"data-es\");\n        });\n\n\n    const otherStrong =\n        document.querySelector(\n            \"#mh-quote-v2 .mhv2-other-country-text strong[data-es][data-en]\"\n        );\n\n    const otherSmall =\n        document.querySelector(\n            \"#mh-quote-v2 .mhv2-other-country-text small[data-es][data-en]\"\n        );\n\n\n    if(otherStrong){\n\n        otherStrong.textContent =\n            isEnglish\n                ? otherStrong.getAttribute(\"data-en\")\n                : otherStrong.getAttribute(\"data-es\");\n    }\n\n\n    if(otherSmall){\n\n        otherSmall.textContent =\n            isEnglish\n                ? otherSmall.getAttribute(\"data-en\")\n                : otherSmall.getAttribute(\"data-es\");\n    }\n}\n\n\n\/* =========================================================\n INICIO\n========================================================= *\/\n\nfunction init(){\n\n    \/*\n     * V3.0.25\n     * La landing p\u00fablica siempre inicia una cotizaci\u00f3n nueva.\n     * Se eliminan estados anteriores, incluidos datos personales.\n     * Las UTM se capturan nuevamente desde la URL en cada carga.\n     *\/\n    try{\n        localStorage.removeItem(STORAGE);\n        localStorage.removeItem(LEGACY_STORAGE);\n        localStorage.removeItem(LEGACY_STORAGE_V28);\n    }catch(e){}\n\n    load();\n\n    captureUTM();\n\n    applyCountryCardLanguage();\n\n    restore();\n\n    show(\n        \"welcome\",\n        false\n    );\n}\n\n\nif(document.readyState === \"loading\"){\n\n    document.addEventListener(\n        \"DOMContentLoaded\",\n        init\n    );\n\n}else{\n\n    init();\n}\n\n})();\n<\/script>\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"mh-form-note\">\n        <span>\u2713<\/span>\n        Solicitar tu presupuesto no implica ning\u00fan compromiso de compra.\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       C\u00d3MO FUNCIONA\n  ====================================================== -->\n  <section class=\"mh-section mh-how\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-heading\">\n\n        <span class=\"mh-kicker\">\n          SIMPLE Y PERSONALIZADO\n        <\/span>\n\n        <h2>\n          As\u00ed comienza\n          <span>tu pr\u00f3ximo viaje<\/span>\n        <\/h2>\n\n        <p>\n          Nosotros nos ocupamos de acompa\u00f1arte desde tu primera consulta\n          para que organizar tus vacaciones sea mucho m\u00e1s simple.\n        <\/p>\n\n      <\/div>\n\n\n      <div class=\"mh-how-grid\">\n\n        <div class=\"mh-how-card\">\n\n          <div class=\"mh-how-number\">01<\/div>\n\n          <h3>Contanos tus planes<\/h3>\n\n          <p>\n            Complet\u00e1 el formulario con el destino, las fechas\n            y todos los detalles que ya tengas definidos.\n          <\/p>\n\n        <\/div>\n\n\n        <div class=\"mh-how-arrow\">\u2192<\/div>\n\n\n        <div class=\"mh-how-card\">\n\n          <div class=\"mh-how-number\">02<\/div>\n\n          <h3>Recibimos tu solicitud<\/h3>\n\n          <p>\n            Nuestro equipo recibe la informaci\u00f3n para comenzar\n            a analizar las mejores alternativas para tu viaje.\n          <\/p>\n\n        <\/div>\n\n\n        <div class=\"mh-how-arrow\">\u2192<\/div>\n\n\n        <div class=\"mh-how-card\">\n\n          <div class=\"mh-how-number\">03<\/div>\n\n          <h3>Te contactamos<\/h3>\n\n          <p>\n            Un agente especializado se comunicar\u00e1 con vos\n            para comenzar a planificar tus vacaciones.\n          <\/p>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       DESTINOS\n  ====================================================== -->\n  <section class=\"mh-section mh-destinations\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-heading\">\n\n        <span class=\"mh-kicker\">\n          TU PR\u00d3XIMA AVENTURA\n        <\/span>\n\n        <h2>\n          \u00bfQu\u00e9 viaje est\u00e1s\n          <span>imaginando?<\/span>\n        <\/h2>\n\n        <p>\n          Te acompa\u00f1amos en la planificaci\u00f3n de experiencias\n          inolvidables en algunos de los destinos m\u00e1s incre\u00edbles del mundo.\n        <\/p>\n\n      <\/div>\n\n\n      <div class=\"mh-destination-grid\">\n\n        <div class=\"mh-destination-card mh-dest-disney\">\n\n          <div class=\"mh-destination-overlay\"><\/div>\n\n          <div class=\"mh-destination-content\">\n\n            <span>MAGIA<\/span>\n\n            <h3>Disney<\/h3>\n\n            <p>\n              Vacaciones llenas de momentos inolvidables.\n            <\/p>\n\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-destination-card mh-dest-universal\">\n\n          <div class=\"mh-destination-overlay\"><\/div>\n\n          <div class=\"mh-destination-content\">\n\n            <span>AVENTURA<\/span>\n\n            <h3>Universal<\/h3>\n\n            <p>\n              Diversi\u00f3n, adrenalina y experiencias \u00e9picas.\n            <\/p>\n\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-destination-card mh-dest-cruise\">\n\n          <div class=\"mh-destination-overlay\"><\/div>\n\n          <div class=\"mh-destination-content\">\n\n            <span>NAVEG\u00c1<\/span>\n\n            <h3>Cruceros<\/h3>\n\n            <p>\n              Descubr\u00ed una forma diferente de recorrer el mundo.\n            <\/p>\n\n          <\/div>\n\n        <\/div>\n\n\n        <div class=\"mh-destination-card mh-dest-world\">\n\n          <div class=\"mh-destination-overlay\"><\/div>\n\n          <div class=\"mh-destination-content\">\n\n            <span>DESCUBR\u00cd<\/span>\n\n            <h3>M\u00e1s destinos<\/h3>\n\n            <p>\n              Estados Unidos, Europa y nuevas experiencias.\n            <\/p>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"mh-destinations-cta\">\n\n        <a\n          href=\"#mh-jotform-container\"\n          class=\"mh-btn mh-btn-primary mh-form-scroll\">\n\n          QUIERO COTIZAR MI VIAJE\n\n          <span>\u2191<\/span>\n\n        <\/a>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       FAQ\n  ====================================================== -->\n  <section class=\"mh-section mh-faq\">\n\n    <div class=\"mh-container\">\n\n      <div class=\"mh-heading\">\n\n        <span class=\"mh-kicker\">\n          ANTES DE EMPEZAR\n        <\/span>\n\n        <h2>\n          Preguntas\n          <span>frecuentes<\/span>\n        <\/h2>\n\n        <p>\n          Algunas respuestas que pueden ayudarte antes\n          de solicitar tu presupuesto.\n        <\/p>\n\n      <\/div>\n\n\n      <div class=\"mh-faq-list\">\n\n        <details class=\"mh-faq-item\">\n\n          <summary>\n            <span>\u00bfSolicitar un presupuesto tiene costo?<\/span>\n            <i>+<\/i>\n          <\/summary>\n\n          <div class=\"mh-faq-answer\">\n\n            <p>\n              No. Pod\u00e9s solicitar tu presupuesto y recibir asesoramiento\n              para comenzar a planificar tu viaje sin costo adicional.\n            <\/p>\n\n          <\/div>\n\n        <\/details>\n\n\n        <details class=\"mh-faq-item\">\n\n          <summary>\n            <span>\u00bfQu\u00e9 sucede despu\u00e9s de completar el formulario?<\/span>\n            <i>+<\/i>\n          <\/summary>\n\n          <div class=\"mh-faq-answer\">\n\n            <p>\n              Recibiremos tu solicitud y uno de nuestros agentes se pondr\u00e1\n              en contacto con vos para conocer mejor tus planes y ayudarte\n              con las diferentes alternativas disponibles.\n            <\/p>\n\n          <\/div>\n\n        <\/details>\n\n\n        <details class=\"mh-faq-item\">\n\n          <summary>\n            <span>\u00bfTengo que tener definidas las fechas de mi viaje?<\/span>\n            <i>+<\/i>\n          <\/summary>\n\n          <div class=\"mh-faq-answer\">\n\n            <p>\n              No necesariamente. Si todav\u00eda est\u00e1s evaluando fechas,\n              pod\u00e9s indicarlo al completar tu solicitud y nuestro equipo\n              podr\u00e1 orientarte.\n            <\/p>\n\n          <\/div>\n\n        <\/details>\n\n\n        <details class=\"mh-faq-item\">\n\n          <summary>\n            <span>\u00bfQu\u00e9 destinos puedo cotizar con Magic Holidays?<\/span>\n            <i>+<\/i>\n          <\/summary>\n\n          <div class=\"mh-faq-answer\">\n\n            <p>\n              Pod\u00e9s consultarnos por vacaciones a Disney, Universal,\n              cruceros y otros destinos. Complet\u00e1 el formulario indicando\n              qu\u00e9 tipo de viaje est\u00e1s planificando.\n            <\/p>\n\n          <\/div>\n\n        <\/details>\n\n\n        <details class=\"mh-faq-item\">\n\n          <summary>\n            <span>\u00bfVoy a tener un agente que me acompa\u00f1e?<\/span>\n            <i>+<\/i>\n          <\/summary>\n\n          <div class=\"mh-faq-answer\">\n\n            <p>\n              S\u00ed. Tu solicitud ser\u00e1 atendida por un agente que podr\u00e1\n              asesorarte y acompa\u00f1arte durante la planificaci\u00f3n de\n              tus vacaciones.\n            <\/p>\n\n          <\/div>\n\n        <\/details>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       CTA FINAL\n  ====================================================== -->\n  <section class=\"mh-final-cta\">\n\n    <div class=\"mh-final-overlay\"><\/div>\n\n    <div class=\"mh-container mh-final-content\">\n\n      <span class=\"mh-kicker mh-kicker-white\">\n        TODO EMPIEZA CON UNA IDEA\n      <\/span>\n\n      <h2>\n        El viaje que imagin\u00e1s<br>\n        <span>puede empezar hoy<\/span>\n      <\/h2>\n\n      <p>\n        Contanos tus planes y dej\u00e1 que nuestros especialistas\n        te ayuden a convertirlos en unas vacaciones inolvidables.\n      <\/p>\n\n      <a\n        href=\"#mh-jotform-container\"\n        class=\"mh-btn mh-btn-white mh-form-scroll\">\n\n        SOLICITAR MI PRESUPUESTO\n\n        <span>\u2191<\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/section>\n\n<\/div>\n\n\n\n<!-- =========================================================\n INTEGRACI\u00d3N LANDING + COTIZADOR CONVERSACIONAL\n========================================================= -->\n<style>\n.mh-conversational-form-box{\n  max-width:1100px;\n  overflow:visible;\n  border:0;\n  border-radius:0;\n  box-shadow:none;\n  background:transparent;\n}\n\n#mh-jotform-container.mh-conversational-form{\n  min-height:0;\n  background:transparent;\n  overflow:visible;\n}\n\n#mh-jotform-container #mh-quote-v2{\n  margin-left:auto;\n  margin-right:auto;\n}\n\n\/* Los CTA de la landing aterrizan directamente en el nuevo cotizador. *\/\n#mh-jotform-container{\n  scroll-margin-top:15px;\n}\n\n@media(max-width:767px){\n  .mh-conversational-form-box{\n    width:100%;\n    max-width:100%;\n  }\n\n  #mh-jotform-container{\n    scroll-margin-top:10px;\n  }\n}\n<\/style>\n\n<!-- =========================================================\n VIDEO FLOTANTE\n========================================================= -->\n\n<div class=\"mh-video-popup\" id=\"mh-video-popup\">\n\n  <button\n    class=\"mh-video-close\"\n    id=\"mh-video-close\"\n    type=\"button\"\n    aria-label=\"Cerrar video\">\n    \u00d7\n  <\/button>\n\n  <div class=\"mh-video-label\">\n    <span class=\"mh-video-live-dot\"><\/span>\n    CONOC\u00c9 MAGIC HOLIDAYS\n  <\/div>\n\n  <div class=\"mh-video-frame\">\n\n    <iframe\n      src=\"https:\/\/www.youtube.com\/embed\/Z80Bp-1wy3U?rel=0&modestbranding=1&playsinline=1\"\n      title=\"Magic Holidays Travel Agency\"\n      allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n      allowfullscreen\n      loading=\"lazy\">\n    <\/iframe>\n\n  <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* =========================================================\n   VARIABLES \/ BASE\n========================================================= *\/\n\nhtml {\n  scroll-behavior:smooth;\n}\n\n.mh-budget-page {\n\n  --mh-primary:#18938a;\n  --mh-primary-dark:#116e68;\n  --mh-primary-deep:#0b5752;\n  --mh-primary-light:#e7f6f4;\n  --mh-light:#f4faf9;\n  --mh-dark:#173b3a;\n  --mh-text:#586d6b;\n  --mh-white:#ffffff;\n\n  width:100%;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  overflow-x:hidden;\n  overflow-y:visible;\n\n  font-family:inherit;\n\n}\n\n.mh-budget-page * {\n  box-sizing:border-box;\n}\n\n\n\/* =========================================================\n   FULL WIDTH DE ESTA LANDING\n========================================================= *\/\n\nbody.mh-landing-active #content,\nbody.mh-landing-active #content-inner,\nbody.mh-landing-active #primary,\nbody.mh-landing-active #main {\n\n  width:100% !important;\n  max-width:none !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n}\n\nbody.mh-landing-active #primary {\n  float:none !important;\n}\n\nbody.mh-landing-active .mh-landing-elementor-widget {\n\n  width:100% !important;\n  max-width:none !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n}\n\nbody.mh-landing-active\n.mh-landing-elementor-widget\n> .elementor-widget-container {\n\n  width:100% !important;\n  max-width:none !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n}\n\nbody.mh-landing-active .mh-landing-elementor-parent {\n\n  width:100% !important;\n  max-width:none !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  --width:100% !important;\n  --max-width:none !important;\n\n}\n\n\n\/* =========================================================\n   CONTENEDOR\n========================================================= *\/\n\n.mh-container {\n\n  width:min(1180px,calc(100% - 40px));\n\n  margin-left:auto;\n  margin-right:auto;\n\n}\n\n\n\/* =========================================================\n   GENERAL\n========================================================= *\/\n\n.mh-section {\n  padding:95px 0;\n}\n\n.mh-kicker {\n\n  display:inline-block;\n\n  margin-bottom:16px;\n\n  color:var(--mh-primary);\n\n  font-size:12px;\n\n  line-height:1.2;\n\n  font-weight:800;\n\n  letter-spacing:2.8px;\n\n}\n\n.mh-kicker-white {\n  color:#ffffff;\n}\n\n.mh-heading {\n\n  max-width:820px;\n\n  margin:0 auto 50px;\n\n  text-align:center;\n\n}\n\n.mh-heading h2 {\n\n  margin:0 0 20px;\n\n  color:var(--mh-dark);\n\n  font-size:clamp(38px,4vw,56px);\n\n  line-height:1.08;\n\n  letter-spacing:-1.6px;\n\n}\n\n.mh-heading h2 span {\n\n  color:var(--mh-primary);\n\n  font-weight:400;\n\n}\n\n.mh-heading > p {\n\n  max-width:720px;\n\n  margin:auto;\n\n  color:var(--mh-text);\n\n  font-size:17px;\n\n  line-height:1.75;\n\n}\n\n\n\/* =========================================================\n   BOTONES\n========================================================= *\/\n\n.mh-btn {\n\n  display:inline-flex;\n\n  align-items:center;\n  justify-content:center;\n\n  gap:13px;\n\n  padding:18px 28px;\n\n  border-radius:6px;\n\n  font-size:13px;\n\n  font-weight:800;\n\n  letter-spacing:1px;\n\n  text-decoration:none !important;\n\n  transition:\n    transform .25s ease,\n    box-shadow .25s ease;\n\n}\n\n.mh-btn:hover {\n  transform:translateY(-3px);\n}\n\n.mh-btn-white {\n\n  background:#ffffff;\n\n  color:var(--mh-primary-dark) !important;\n\n  box-shadow:0 15px 35px rgba(0,0,0,.16);\n\n}\n\n.mh-btn-primary {\n\n  color:#ffffff !important;\n\n  background:\n    linear-gradient(\n      135deg,\n      var(--mh-primary-dark),\n      var(--mh-primary)\n    );\n\n  box-shadow:0 12px 30px rgba(24,147,138,.22);\n\n}\n\n\n\/* =========================================================\n   HERO\n========================================================= *\/\n\n.mh-budget-hero {\n\n  position:relative;\n\n  width:100%;\n  max-width:none;\n\n  margin:0 !important;\n\n  min-height:700px;\n\n  display:flex;\n\n  align-items:center;\n\n  overflow:hidden;\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/12.jpg');\n\n  background-size:cover;\n\n  background-position:center 46%;\n\n  background-repeat:no-repeat;\n\n}\n\n.mh-budget-hero-overlay {\n\n  position:absolute;\n\n  inset:0;\n\n  background:\n    linear-gradient(\n      90deg,\n      rgba(7,57,54,.96) 0%,\n      rgba(17,110,104,.91) 40%,\n      rgba(24,147,138,.58) 70%,\n      rgba(24,147,138,.18) 100%\n    );\n\n}\n\n.mh-hero-content {\n\n  position:relative;\n\n  z-index:2;\n\n  padding:70px 0;\n\n}\n\n.mh-hero-content h1 {\n\n  max-width:800px;\n\n  margin:0;\n\n  color:#ffffff;\n\n  font-size:clamp(52px,6vw,82px);\n\n  line-height:.98;\n\n  letter-spacing:-2.5px;\n\n}\n\n.mh-hero-content h1 span {\n  font-weight:300;\n}\n\n.mh-hero-text {\n\n  max-width:650px;\n\n  margin:28px 0;\n\n  color:rgba(255,255,255,.94);\n\n  font-size:19px;\n\n  line-height:1.65;\n\n}\n\n.mh-hero-trust {\n\n  display:flex;\n\n  flex-wrap:wrap;\n\n  gap:12px 25px;\n\n  margin-bottom:31px;\n\n  color:#ffffff;\n\n  font-size:14px;\n\n}\n\n.mh-hero-trust div {\n\n  display:flex;\n\n  align-items:center;\n\n  gap:8px;\n\n}\n\n.mh-hero-trust span {\n\n  width:24px;\n  height:24px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  flex-shrink:0;\n\n  border-radius:50%;\n\n  background:rgba(255,255,255,.18);\n\n}\n\n\n\/* =========================================================\n   CTA HERO DESTACADO\n========================================================= *\/\n\n.mh-hero-cta-wrap {\n\n  position:relative;\n\n  display:inline-flex;\n\n  flex-direction:column;\n\n  align-items:center;\n\n}\n\n.mh-hero-main-cta {\n\n  position:relative;\n\n  z-index:2;\n\n  min-width:345px;\n\n  padding:20px 22px 20px 31px;\n\n  gap:22px;\n\n  border:1px solid rgba(255,255,255,.28);\n\n  border-radius:9px;\n\n  color:#ffffff !important;\n\n  background:\n    linear-gradient(\n      135deg,\n      #21b8ad 0%,\n      #18938a 52%,\n      #117b74 100%\n    );\n\n  box-shadow:\n    0 15px 34px rgba(0,0,0,.22),\n    0 0 0 0 rgba(63,220,207,.38);\n\n  font-size:14px;\n\n  letter-spacing:1.15px;\n\n  animation:mhHeroButtonPulse 2.8s ease-out infinite;\n\n}\n\n.mh-hero-main-cta:hover {\n\n  color:#ffffff !important;\n\n  transform:translateY(-4px) scale(1.015);\n\n  background:\n    linear-gradient(\n      135deg,\n      #28c7bb 0%,\n      #1aa59b 52%,\n      #12847c 100%\n    );\n\n  box-shadow:\n    0 20px 42px rgba(0,0,0,.27),\n    0 0 0 7px rgba(70,220,209,.11);\n\n}\n\n.mh-hero-main-cta-text {\n\n  display:block;\n\n  white-space:nowrap;\n\n}\n\n.mh-hero-main-cta-arrow {\n\n  width:38px;\n  height:38px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  flex-shrink:0;\n\n  border-radius:50%;\n\n  background:rgba(255,255,255,.19);\n\n  border:1px solid rgba(255,255,255,.27);\n\n  color:#ffffff;\n\n  font-size:18px;\n\n}\n\n.mh-hero-cta-note {\n\n  margin-top:10px;\n\n  color:rgba(255,255,255,.84);\n\n  font-size:11px;\n\n  font-weight:600;\n\n  letter-spacing:.35px;\n\n}\n\n@keyframes mhHeroButtonPulse {\n\n  0% {\n\n    box-shadow:\n      0 15px 34px rgba(0,0,0,.22),\n      0 0 0 0 rgba(63,220,207,.35);\n\n  }\n\n  65% {\n\n    box-shadow:\n      0 15px 34px rgba(0,0,0,.22),\n      0 0 0 12px rgba(63,220,207,0);\n\n  }\n\n  100% {\n\n    box-shadow:\n      0 15px 34px rgba(0,0,0,.22),\n      0 0 0 0 rgba(63,220,207,0);\n\n  }\n\n}\n\n\n\/* =========================================================\n   BENEFICIOS\n========================================================= *\/\n\n.mh-intro {\n  background:#ffffff;\n}\n\n.mh-benefits {\n\n  display:grid;\n\n  grid-template-columns:repeat(4,minmax(0,1fr));\n\n  gap:18px;\n\n}\n\n.mh-benefit {\n\n  padding:32px 26px;\n\n  background:linear-gradient(145deg,#ffffff,var(--mh-light));\n\n  border:1px solid rgba(24,147,138,.14);\n\n  border-radius:14px;\n\n  transition:\n    transform .25s ease,\n    box-shadow .25s ease;\n\n}\n\n.mh-benefit:hover {\n\n  transform:translateY(-5px);\n\n  box-shadow:0 18px 45px rgba(17,110,104,.10);\n\n}\n\n.mh-number {\n\n  width:47px;\n  height:47px;\n\n  margin-bottom:23px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  border-radius:50%;\n\n  color:#ffffff;\n\n  background:linear-gradient(\n    135deg,\n    var(--mh-primary-dark),\n    var(--mh-primary)\n  );\n\n  font-size:12px;\n\n  font-weight:800;\n\n}\n\n.mh-benefit h3 {\n\n  margin:0 0 10px;\n\n  color:var(--mh-dark);\n\n  font-size:19px;\n\n}\n\n.mh-benefit p {\n\n  margin:0;\n\n  color:var(--mh-text);\n\n  font-size:14px;\n\n  line-height:1.7;\n\n}\n\n\n\/* =========================================================\n   REPUTACI\u00d3N\n========================================================= *\/\n\n.mh-reputation {\n\n  position:relative;\n\n  overflow:hidden;\n\n  background:linear-gradient(\n    180deg,\n    #f4faf9 0%,\n    #eaf6f4 100%\n  );\n\n}\n\n.mh-reputation:before {\n\n  content:\"\";\n\n  position:absolute;\n\n  width:520px;\n  height:520px;\n\n  right:-250px;\n  top:-250px;\n\n  border-radius:50%;\n\n  background:rgba(24,147,138,.06);\n\n}\n\n\n\/* =========================================================\n   PREMIO\n========================================================= *\/\n\n.mh-award-box {\n\n  position:relative;\n\n  z-index:2;\n\n  max-width:1050px;\n\n  margin:0 auto;\n\n  display:grid;\n\n  grid-template-columns:330px 1fr;\n\n  gap:65px;\n\n  align-items:center;\n\n  padding:45px 55px;\n\n  background:#ffffff;\n\n  border:1px solid rgba(24,147,138,.16);\n\n  border-radius:22px;\n\n  box-shadow:0 22px 60px rgba(17,110,104,.10);\n\n}\n\n.mh-award-image {\n\n  display:flex;\n\n  justify-content:center;\n  align-items:center;\n\n}\n\n.mh-award-image img {\n\n  display:block;\n\n  width:100%;\n\n  max-width:285px;\n\n  height:auto;\n\n  object-fit:contain;\n\n  filter:drop-shadow(0 15px 18px rgba(0,0,0,.15));\n\n}\n\n.mh-award-content h2 {\n\n  max-width:650px;\n\n  margin:0 0 24px;\n\n  color:var(--mh-dark);\n\n  font-size:clamp(35px,4vw,49px);\n\n  line-height:1.07;\n\n  letter-spacing:-1.5px;\n\n}\n\n.mh-award-content h2 span {\n\n  display:block;\n\n  color:var(--mh-primary);\n\n  font-weight:400;\n\n}\n\n.mh-award-content p {\n\n  max-width:610px;\n\n  margin:0 0 12px;\n\n  color:var(--mh-text);\n\n  font-size:15px;\n\n  line-height:1.7;\n\n}\n\n.mh-award-content p strong {\n  color:var(--mh-dark);\n}\n\n.mh-award-trust {\n\n  display:flex;\n\n  flex-wrap:wrap;\n\n  gap:10px 19px;\n\n  margin-top:23px;\n\n}\n\n.mh-award-trust div {\n\n  display:flex;\n\n  align-items:center;\n\n  gap:7px;\n\n  color:#536c69;\n\n  font-size:12px;\n\n  font-weight:600;\n\n}\n\n.mh-award-trust div span {\n\n  width:21px;\n  height:21px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  flex-shrink:0;\n\n  border-radius:50%;\n\n  color:#ffffff;\n\n  background:var(--mh-primary);\n\n  font-size:11px;\n\n  font-weight:800;\n\n}\n\n\n\/* =========================================================\n   RESE\u00d1AS\n========================================================= *\/\n\n.mh-reputation-reviews {\n\n  position:relative;\n\n  z-index:2;\n\n  max-width:1120px;\n\n  margin:55px auto 0;\n\n}\n\n.mh-reviews-heading {\n\n  max-width:720px;\n\n  margin:0 auto 28px;\n\n  text-align:center;\n\n}\n\n.mh-reviews-heading .mh-kicker {\n  margin-bottom:10px;\n}\n\n.mh-reviews-heading h3 {\n\n  margin:0 0 12px;\n\n  color:var(--mh-dark);\n\n  font-size:clamp(28px,3vw,39px);\n\n  line-height:1.12;\n\n  letter-spacing:-1px;\n\n}\n\n.mh-reviews-heading h3 span {\n\n  color:var(--mh-primary);\n\n  font-weight:400;\n\n}\n\n.mh-reviews-heading p {\n\n  max-width:650px;\n\n  margin:auto;\n\n  color:var(--mh-text);\n\n  font-size:15px;\n\n  line-height:1.7;\n\n}\n\n.mh-reviews-box {\n\n  width:100%;\n\n  padding:27px;\n\n  background:#ffffff;\n\n  border:1px solid rgba(24,147,138,.14);\n\n  border-radius:16px;\n\n  box-shadow:0 18px 50px rgba(17,110,104,.08);\n\n}\n\n.mh-small-trust,\n.mh-form-note {\n\n  display:flex;\n\n  justify-content:center;\n  align-items:center;\n\n  gap:8px;\n\n  margin-top:20px;\n\n  color:#647876;\n\n  font-size:13px;\n\n}\n\n.mh-small-trust span,\n.mh-form-note span {\n\n  width:23px;\n  height:23px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  flex-shrink:0;\n\n  border-radius:50%;\n\n  background:var(--mh-primary-light);\n\n  color:var(--mh-primary);\n\n  font-weight:800;\n\n}\n\n\n\/* =========================================================\n   FORMULARIO\n========================================================= *\/\n\n.mh-form-section {\n  background:#ffffff;\n}\n\n#mh-jotform-container {\n  scroll-margin-top:15px;\n}\n\n.mh-form-box {\n\n  max-width:960px;\n\n  margin:auto;\n\n  overflow:hidden;\n\n  background:#ffffff;\n\n  border:1px solid rgba(24,147,138,.16);\n\n  border-radius:16px;\n\n  box-shadow:0 25px 70px rgba(17,110,104,.12);\n\n}\n\n.mh-form-steps {\n\n  display:grid;\n\n  grid-template-columns:repeat(3,minmax(0,1fr));\n\n  padding:22px 30px;\n\n  background:linear-gradient(\n    135deg,\n    var(--mh-primary-dark),\n    var(--mh-primary)\n  );\n\n}\n\n.mh-form-step {\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  gap:9px;\n\n  color:#ffffff;\n\n  font-size:13px;\n\n}\n\n.mh-form-step span {\n\n  width:27px;\n  height:27px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  flex-shrink:0;\n\n  border:1px solid rgba(255,255,255,.45);\n\n  border-radius:50%;\n\n  font-size:11px;\n\n}\n\n.mh-jotform {\n\n  width:100%;\n\n  min-height:600px;\n\n  background:#ffffff;\n\n}\n\n\n\/* =========================================================\n   C\u00d3MO FUNCIONA\n========================================================= *\/\n\n.mh-how {\n  background:var(--mh-light);\n}\n\n.mh-how-grid {\n\n  display:grid;\n\n  grid-template-columns:1fr 60px 1fr 60px 1fr;\n\n  align-items:center;\n\n}\n\n.mh-how-card {\n\n  min-height:270px;\n\n  padding:35px 30px;\n\n  text-align:center;\n\n  background:#ffffff;\n\n  border:1px solid rgba(24,147,138,.14);\n\n  border-radius:14px;\n\n}\n\n.mh-how-number {\n\n  width:50px;\n  height:50px;\n\n  margin:0 auto 22px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  border-radius:50%;\n\n  background:var(--mh-primary-light);\n\n  color:var(--mh-primary);\n\n  font-size:13px;\n\n  font-weight:800;\n\n}\n\n.mh-how-card h3 {\n\n  margin:0 0 12px;\n\n  color:var(--mh-dark);\n\n  font-size:20px;\n\n}\n\n.mh-how-card p {\n\n  margin:0;\n\n  color:var(--mh-text);\n\n  font-size:14px;\n\n  line-height:1.7;\n\n}\n\n.mh-how-arrow {\n\n  text-align:center;\n\n  color:var(--mh-primary);\n\n  font-size:27px;\n\n}\n\n\n\/* =========================================================\n   DESTINOS\n========================================================= *\/\n\n.mh-destinations {\n  background:#ffffff;\n}\n\n.mh-destination-grid {\n\n  display:grid;\n\n  grid-template-columns:repeat(2,minmax(0,1fr));\n\n  gap:20px;\n\n}\n\n.mh-destination-card {\n\n  position:relative;\n\n  width:100%;\n\n  min-width:0;\n\n  aspect-ratio:16 \/ 9;\n\n  overflow:hidden;\n\n  display:flex;\n\n  align-items:flex-end;\n\n  border-radius:16px;\n\n  background-size:cover;\n\n  background-repeat:no-repeat;\n\n  background-position:center center;\n\n  isolation:isolate;\n\n  transition:\n    transform .3s ease,\n    box-shadow .3s ease;\n\n}\n\n.mh-destination-card:hover {\n\n  transform:translateY(-4px);\n\n  box-shadow:0 18px 40px rgba(17,110,104,.14);\n\n}\n\n.mh-dest-disney {\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/12.jpg');\n\n  background-position:center 53%;\n\n}\n\n.mh-dest-universal {\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/5.jpg');\n\n}\n\n.mh-dest-cruise {\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/0914ZO_1263AS_xak.jpg');\n\n}\n\n.mh-dest-world {\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/las-vegas-1846684_1280.jpg');\n\n}\n\n.mh-destination-overlay {\n\n  position:absolute;\n\n  inset:0;\n\n  z-index:1;\n\n  background:linear-gradient(\n    0deg,\n    rgba(6,40,38,.88) 0%,\n    rgba(6,40,38,.46) 35%,\n    rgba(6,40,38,.05) 72%\n  );\n\n}\n\n.mh-destination-content {\n\n  position:relative;\n\n  z-index:2;\n\n  width:100%;\n\n  padding:30px;\n\n  color:#ffffff;\n\n}\n\n.mh-destination-content > span {\n\n  display:block;\n\n  margin-bottom:6px;\n\n  color:rgba(255,255,255,.88);\n\n  font-size:10px;\n\n  font-weight:800;\n\n  letter-spacing:2.5px;\n\n}\n\n.mh-destination-content h3 {\n\n  margin:0 0 7px;\n\n  color:#ffffff;\n\n  font-size:31px;\n\n  line-height:1.1;\n\n}\n\n.mh-destination-content p {\n\n  margin:0;\n\n  color:rgba(255,255,255,.90);\n\n  font-size:14px;\n\n  line-height:1.5;\n\n}\n\n.mh-destinations-cta {\n\n  margin-top:38px;\n\n  text-align:center;\n\n}\n\n\n\/* =========================================================\n   FAQ\n========================================================= *\/\n\n.mh-faq {\n  background:var(--mh-light);\n}\n\n.mh-faq-list {\n\n  max-width:900px;\n\n  margin:auto;\n\n}\n\n.mh-faq-item {\n\n  margin-bottom:12px;\n\n  overflow:hidden;\n\n  background:#ffffff;\n\n  border:1px solid rgba(24,147,138,.14);\n\n  border-radius:11px;\n\n}\n\n.mh-faq-item summary {\n\n  list-style:none;\n\n  cursor:pointer;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:space-between;\n\n  gap:20px;\n\n  padding:22px 25px;\n\n  color:var(--mh-dark);\n\n  font-size:16px;\n\n  font-weight:700;\n\n}\n\n.mh-faq-item summary::-webkit-details-marker {\n  display:none;\n}\n\n.mh-faq-item summary i {\n\n  width:30px;\n  height:30px;\n\n  flex-shrink:0;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  border-radius:50%;\n\n  background:var(--mh-primary-light);\n\n  color:var(--mh-primary);\n\n  font-style:normal;\n\n  font-size:20px;\n\n  font-weight:400;\n\n  transition:transform .25s ease;\n\n}\n\n.mh-faq-item[open] summary i {\n  transform:rotate(45deg);\n}\n\n.mh-faq-answer {\n  padding:0 25px 22px;\n}\n\n.mh-faq-answer p {\n\n  margin:0;\n\n  padding-top:18px;\n\n  border-top:1px solid #edf2f1;\n\n  color:var(--mh-text);\n\n  font-size:14px;\n\n  line-height:1.75;\n\n}\n\n\n\/* =========================================================\n   CTA FINAL\n========================================================= *\/\n\n.mh-final-cta {\n\n  position:relative;\n\n  padding:110px 0;\n\n  text-align:center;\n\n  background-image:\n    url('https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2026\/09\/header.jpg');\n\n  background-size:cover;\n\n  background-position:center center;\n\n  background-repeat:no-repeat;\n\n}\n\n.mh-final-overlay {\n\n  position:absolute;\n\n  inset:0;\n\n  background:linear-gradient(\n    135deg,\n    rgba(8,79,74,.93),\n    rgba(24,147,138,.78)\n  );\n\n}\n\n.mh-final-content {\n\n  position:relative;\n\n  z-index:2;\n\n}\n\n.mh-final-content h2 {\n\n  margin:0 0 22px;\n\n  color:#ffffff;\n\n  font-size:clamp(42px,5vw,65px);\n\n  line-height:1.05;\n\n  letter-spacing:-2px;\n\n}\n\n.mh-final-content h2 span {\n  font-weight:300;\n}\n\n.mh-final-content p {\n\n  max-width:680px;\n\n  margin:0 auto 30px;\n\n  color:rgba(255,255,255,.90);\n\n  font-size:17px;\n\n  line-height:1.7;\n\n}\n\n\n\/* =========================================================\n   VIDEO FLOTANTE\n========================================================= *\/\n\n.mh-video-popup {\n\n  position:fixed;\n\n  right:22px;\n  bottom:22px;\n\n  z-index:999999;\n\n  width:360px;\n\n  max-width:calc(100vw - 30px);\n\n  padding:7px;\n\n  border-radius:15px;\n\n  background:#ffffff;\n\n  box-shadow:\n    0 22px 65px rgba(0,0,0,.30),\n    0 0 0 1px rgba(24,147,138,.12);\n\n  opacity:0;\n\n  visibility:hidden;\n\n  transform:translateY(25px) scale(.97);\n\n  transition:\n    opacity .4s ease,\n    visibility .4s ease,\n    transform .4s ease;\n\n}\n\n.mh-video-popup.mh-video-visible {\n\n  opacity:1;\n\n  visibility:visible;\n\n  transform:translateY(0) scale(1);\n\n}\n\n.mh-video-popup.mh-video-closed {\n  display:none !important;\n}\n\n.mh-video-close {\n\n  position:absolute;\n\n  top:-13px;\n  right:-13px;\n\n  z-index:5;\n\n  width:34px;\n  height:34px;\n\n  padding:0;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n\n  border:2px solid #ffffff;\n\n  border-radius:50%;\n\n  background:#173b3a;\n\n  color:#ffffff;\n\n  box-shadow:0 5px 16px rgba(0,0,0,.25);\n\n  font-family:Arial,sans-serif;\n\n  font-size:23px;\n\n  font-weight:400;\n\n  line-height:1;\n\n  cursor:pointer;\n\n}\n\n.mh-video-close:hover {\n  background:#18938a;\n}\n\n.mh-video-label {\n\n  display:flex;\n\n  align-items:center;\n\n  gap:7px;\n\n  padding:7px 8px 10px;\n\n  color:#173b3a;\n\n  font-size:10px;\n\n  font-weight:800;\n\n  letter-spacing:1.3px;\n\n}\n\n.mh-video-live-dot {\n\n  width:8px;\n  height:8px;\n\n  flex-shrink:0;\n\n  border-radius:50%;\n\n  background:#18938a;\n\n  box-shadow:0 0 0 4px rgba(24,147,138,.12);\n\n}\n\n.mh-video-frame {\n\n  position:relative;\n\n  width:100%;\n\n  aspect-ratio:16 \/ 9;\n\n  overflow:hidden;\n\n  border-radius:10px;\n\n  background:#000000;\n\n}\n\n.mh-video-frame iframe {\n\n  position:absolute;\n\n  inset:0;\n\n  width:100%;\n  height:100%;\n\n  border:0;\n\n  display:block;\n\n}\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media(max-width:1024px) {\n\n  .mh-benefits {\n    grid-template-columns:repeat(2,minmax(0,1fr));\n  }\n\n  .mh-how-grid {\n\n    grid-template-columns:1fr;\n\n    gap:15px;\n\n  }\n\n  .mh-how-arrow {\n    transform:rotate(90deg);\n  }\n\n  .mh-how-card {\n    min-height:auto;\n  }\n\n  .mh-award-box {\n\n    grid-template-columns:270px 1fr;\n\n    gap:40px;\n\n    padding:42px;\n\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media(max-width:767px) {\n\n  html,\n  body {\n\n    overflow-x:hidden !important;\n\n    overflow-y:auto !important;\n\n    height:auto !important;\n\n    min-height:100% !important;\n\n    touch-action:pan-y !important;\n\n    -webkit-overflow-scrolling:touch;\n\n  }\n\n  .mh-budget-page {\n\n    width:100%;\n\n    height:auto !important;\n\n    min-height:100vh;\n\n    margin:0 !important;\n\n    overflow-x:hidden !important;\n\n    overflow-y:visible !important;\n\n    position:relative;\n\n    touch-action:pan-y !important;\n\n  }\n\n  .mh-container {\n    width:calc(100% - 30px);\n  }\n\n  .mh-section {\n    padding:65px 0;\n  }\n\n  .mh-heading {\n    margin-bottom:35px;\n  }\n\n  .mh-heading h2 {\n\n    font-size:34px;\n\n    letter-spacing:-1px;\n\n  }\n\n  .mh-heading > p {\n\n    font-size:15px;\n\n    line-height:1.7;\n\n  }\n\n\n  \/* HERO MOBILE *\/\n\n  .mh-budget-hero {\n\n    width:100%;\n    max-width:none;\n\n    margin:0 !important;\n\n    min-height:auto;\n\n    padding:70px 0 55px;\n\n    background-position:62% center;\n\n  }\n\n  .mh-budget-hero-overlay {\n\n    background:linear-gradient(\n      90deg,\n      rgba(7,57,54,.97),\n      rgba(17,110,104,.91) 65%,\n      rgba(24,147,138,.67)\n    );\n\n  }\n\n  .mh-hero-content {\n    padding:25px 0;\n  }\n\n  .mh-hero-content h1 {\n\n    font-size:44px;\n\n    line-height:1.02;\n\n    letter-spacing:-1.7px;\n\n  }\n\n  .mh-hero-text {\n\n    margin:22px 0;\n\n    font-size:16px;\n\n    line-height:1.6;\n\n  }\n\n  .mh-hero-trust {\n\n    display:grid;\n\n    gap:9px;\n\n    margin-bottom:27px;\n\n  }\n\n  .mh-btn {\n    width:100%;\n  }\n\n\n  \/* CTA HERO MOBILE *\/\n\n  .mh-hero-cta-wrap {\n\n    display:flex;\n\n    width:100%;\n\n    max-width:430px;\n\n  }\n\n  .mh-hero-main-cta {\n\n    width:100%;\n\n    min-width:0;\n\n    padding:18px 16px 18px 21px;\n\n    gap:13px;\n\n    justify-content:space-between;\n\n    font-size:12px;\n\n    letter-spacing:.8px;\n\n  }\n\n  .mh-hero-main-cta-text {\n\n    white-space:normal;\n\n    text-align:left;\n\n  }\n\n\n  \/* BENEFICIOS MOBILE *\/\n\n  .mh-benefits {\n\n    grid-template-columns:1fr;\n\n    gap:12px;\n\n  }\n\n  .mh-benefit {\n\n    display:grid;\n\n    grid-template-columns:45px 1fr;\n\n    gap:15px;\n\n    padding:23px;\n\n  }\n\n  .mh-number {\n\n    width:42px;\n    height:42px;\n\n    margin:0;\n\n  }\n\n\n  \/* PREMIO MOBILE *\/\n\n  .mh-reputation {\n    padding:60px 0;\n  }\n\n  .mh-award-box {\n\n    display:block;\n\n    padding:30px 21px;\n\n    border-radius:16px;\n\n  }\n\n  .mh-award-image {\n    margin-bottom:27px;\n  }\n\n  .mh-award-image img {\n\n    width:70%;\n\n    max-width:245px;\n\n  }\n\n  .mh-award-content {\n    text-align:center;\n  }\n\n  .mh-award-content h2 {\n\n    margin-left:auto;\n    margin-right:auto;\n\n    font-size:32px;\n\n    letter-spacing:-1px;\n\n  }\n\n  .mh-award-content p {\n\n    font-size:14px;\n\n    line-height:1.65;\n\n  }\n\n  .mh-award-trust {\n\n    display:grid;\n\n    justify-content:center;\n\n    gap:8px;\n\n    margin-top:21px;\n\n  }\n\n  .mh-award-trust div {\n    justify-content:flex-start;\n  }\n\n\n  \/* RESE\u00d1AS MOBILE *\/\n\n  .mh-reputation-reviews {\n    margin-top:42px;\n  }\n\n  .mh-reviews-heading {\n\n    margin-bottom:22px;\n\n    padding:0 5px;\n\n  }\n\n  .mh-reviews-heading h3 {\n\n    font-size:29px;\n\n    letter-spacing:-.7px;\n\n  }\n\n  .mh-reviews-heading p {\n    font-size:14px;\n  }\n\n  .mh-reviews-box {\n\n    padding:13px;\n\n    border-radius:11px;\n\n  }\n\n  .mh-small-trust {\n\n    padding:0 10px;\n\n    text-align:center;\n\n    font-size:12px;\n\n  }\n\n\n  \/* FORMULARIO MOBILE *\/\n\n  #mh-jotform-container {\n    scroll-margin-top:10px;\n  }\n\n  .mh-form-box {\n    border-radius:11px;\n  }\n\n  .mh-form-steps {\n    padding:16px 7px;\n  }\n\n  .mh-form-step {\n\n    flex-direction:column;\n\n    gap:6px;\n\n    padding:0 4px;\n\n    font-size:10px;\n\n    line-height:1.25;\n\n    text-align:center;\n\n  }\n\n  .mh-form-step span {\n\n    width:25px;\n    height:25px;\n\n  }\n\n  .mh-form-note {\n\n    padding:0 10px;\n\n    text-align:center;\n\n    font-size:12px;\n\n  }\n\n\n  \/* DESTINOS MOBILE *\/\n\n  .mh-destination-grid {\n\n    grid-template-columns:1fr;\n\n    gap:14px;\n\n  }\n\n  .mh-destination-card {\n    aspect-ratio:16 \/ 10;\n  }\n\n  .mh-destination-content {\n    padding:24px;\n  }\n\n  .mh-destination-content h3 {\n    font-size:27px;\n  }\n\n  .mh-dest-disney {\n    background-position:center 55%;\n  }\n\n\n  \/* FAQ MOBILE *\/\n\n  .mh-faq-item summary {\n\n    padding:19px;\n\n    font-size:14px;\n\n    line-height:1.4;\n\n  }\n\n  .mh-faq-answer {\n    padding:0 19px 19px;\n  }\n\n\n  \/* CTA FINAL MOBILE *\/\n\n  .mh-final-cta {\n\n    padding:80px 0;\n\n    background-position:center center;\n\n  }\n\n  .mh-final-content h2 {\n\n    font-size:38px;\n\n    letter-spacing:-1px;\n\n  }\n\n  .mh-final-content p {\n    font-size:15px;\n  }\n\n\n  \/* VIDEO MOBILE *\/\n\n  .mh-video-popup {\n\n    right:12px;\n    bottom:12px;\n\n    width:270px;\n\n    max-width:calc(100vw - 24px);\n\n    padding:5px;\n\n    border-radius:12px;\n\n  }\n\n  .mh-video-label {\n\n    padding:6px 7px 8px;\n\n    font-size:8px;\n\n    letter-spacing:1px;\n\n  }\n\n  .mh-video-close {\n\n    top:-11px;\n    right:-8px;\n\n    width:31px;\n    height:31px;\n\n    font-size:21px;\n\n  }\n\n  .mh-video-frame {\n    border-radius:8px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE PEQUE\u00d1O\n========================================================= *\/\n\n@media(max-width:420px) {\n\n  .mh-hero-content h1 {\n    font-size:39px;\n  }\n\n  .mh-heading h2 {\n    font-size:31px;\n  }\n\n  .mh-award-content h2 {\n    font-size:29px;\n  }\n\n  .mh-reviews-heading h3 {\n    font-size:27px;\n  }\n\n  .mh-final-content h2 {\n    font-size:34px;\n  }\n\n  .mh-hero-main-cta {\n    font-size:11px;\n  }\n\n  .mh-video-popup {\n    width:245px;\n  }\n\n}\n\n\n\/* =========================================================\n   ACCESIBILIDAD\n========================================================= *\/\n\n@media (prefers-reduced-motion:reduce) {\n\n  html {\n    scroll-behavior:auto;\n  }\n\n  .mh-hero-main-cta {\n    animation:none;\n  }\n\n  .mh-video-popup {\n    transition:none;\n  }\n\n}\n\n<\/style>\n\n\n<!-- =========================================================\n PREPARAR ESTRUCTURA THEME \/ ELEMENTOR\n========================================================= -->\n\n<script>\n\n(function () {\n\n  function mhPrepareLandingLayout() {\n\n    var landing =\n      document.querySelector('.mh-budget-page');\n\n    if (!landing) {\n      return;\n    }\n\n    document.body.classList.add(\n      'mh-landing-active'\n    );\n\n\n    var widget =\n      landing.closest('.elementor-widget');\n\n    if (widget) {\n\n      widget.classList.add(\n        'mh-landing-elementor-widget'\n      );\n\n    }\n\n\n    var parent =\n      landing.parentElement;\n\n\n    while (\n      parent &&\n      parent !== document.body\n    ) {\n\n      if (\n        parent.classList &&\n        (\n          parent.classList.contains('e-con') ||\n          parent.classList.contains('elementor-section') ||\n          parent.classList.contains('elementor-container') ||\n          parent.classList.contains('elementor-widget-wrap')\n        )\n      ) {\n\n        parent.classList.add(\n          'mh-landing-elementor-parent'\n        );\n\n      }\n\n      parent =\n        parent.parentElement;\n\n    }\n\n  }\n\n\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      mhPrepareLandingLayout\n    );\n\n  } else {\n\n    mhPrepareLandingLayout();\n\n  }\n\n\n  window.addEventListener(\n    'load',\n    mhPrepareLandingLayout\n  );\n\n})();\n\n<\/script>\n\n\n<!-- =========================================================\n SCROLL EXACTO AL JOTFORM\n========================================================= -->\n\n<script>\n\n(function () {\n\n  function mhInitFormScroll() {\n\n    var links =\n      document.querySelectorAll(\n        '.mh-form-scroll'\n      );\n\n\n    links.forEach(function(link) {\n\n      link.addEventListener(\n        'click',\n        function(event) {\n\n          event.preventDefault();\n\n\n          var form =\n            document.getElementById(\n              'mh-jotform-container'\n            );\n\n\n          if (!form) {\n            return;\n          }\n\n\n          var top =\n            form.getBoundingClientRect().top +\n            window.pageYOffset -\n            12;\n\n\n          window.scrollTo({\n\n            top:top,\n\n            behavior:'smooth'\n\n          });\n\n        }\n      );\n\n    });\n\n  }\n\n\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      mhInitFormScroll\n    );\n\n  } else {\n\n    mhInitFormScroll();\n\n  }\n\n})();\n\n<\/script>\n\n\n<!-- =========================================================\n VIDEO FLOTANTE\n========================================================= -->\n\n<script>\n\n(function () {\n\n  function mhInitFloatingVideo() {\n\n    var popup =\n      document.getElementById(\n        'mh-video-popup'\n      );\n\n    var close =\n      document.getElementById(\n        'mh-video-close'\n      );\n\n\n    if (!popup) {\n      return;\n    }\n\n\n    \/*\n      Aparece suavemente despu\u00e9s de 1,2 segundos.\n      No bloquea la pantalla ni el scroll.\n    *\/\n\n    setTimeout(function () {\n\n      if (\n        !popup.classList.contains(\n          'mh-video-closed'\n        )\n      ) {\n\n        popup.classList.add(\n          'mh-video-visible'\n        );\n\n      }\n\n    },1200);\n\n\n    if (close) {\n\n      close.addEventListener(\n        'click',\n        function(event) {\n\n          event.preventDefault();\n\n          event.stopPropagation();\n\n\n          popup.classList.remove(\n            'mh-video-visible'\n          );\n\n\n          popup.classList.add(\n            'mh-video-closed'\n          );\n\n\n          \/*\n            Detenemos el video al cerrar.\n          *\/\n\n          var iframe =\n            popup.querySelector('iframe');\n\n\n          if (iframe) {\n\n            iframe.src =\n              iframe.src;\n\n          }\n\n        }\n      );\n\n    }\n\n  }\n\n\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      mhInitFloatingVideo\n    );\n\n  } else {\n\n    mhInitFloatingVideo();\n\n  }\n\n})();\n\n<\/script>\n\n\n<!-- =========================================================\n OCULTAR BANNER.WEBP\n========================================================= -->\n\n<style>\n\nbody.mh-landing-active .mh-hidden-top-banner {\n\n  display:none !important;\n\n  width:0 !important;\n  height:0 !important;\n\n  min-height:0 !important;\n  max-height:0 !important;\n\n  margin:0 !important;\n\n  padding:0 !important;\n\n  border:0 !important;\n\n  overflow:hidden !important;\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  function mhHideBannerContainer(element) {\n\n    if (!element) {\n      return;\n    }\n\n\n    var container =\n      element.closest('.e-con');\n\n\n    if (!container) {\n\n      container =\n        element.closest(\n          '.elementor-section'\n        );\n\n    }\n\n\n    if (!container) {\n\n      container =\n        element.closest(\n          '.elementor-widget-image'\n        );\n\n    }\n\n\n    if (!container) {\n      container = element;\n    }\n\n\n    if (\n      container.classList &&\n      container.classList.contains(\n        'mh-budget-page'\n      )\n    ) {\n\n      return;\n\n    }\n\n\n    if (\n      container.querySelector &&\n      container.querySelector(\n        '.mh-budget-page'\n      )\n    ) {\n\n      return;\n\n    }\n\n\n    container.classList.add(\n      'mh-hidden-top-banner'\n    );\n\n  }\n\n\n  function mhHideLandingTopBanner() {\n\n    if (\n      !document.querySelector(\n        '.mh-budget-page'\n      )\n    ) {\n\n      return;\n\n    }\n\n\n    var bannerFile =\n      'banner.webp';\n\n\n    document\n      .querySelectorAll('img')\n      .forEach(function(img) {\n\n        var src =\n          img.getAttribute('src') || '';\n\n        var srcset =\n          img.getAttribute('srcset') || '';\n\n\n        if (\n          src.indexOf(bannerFile) !== -1 ||\n          srcset.indexOf(bannerFile) !== -1\n        ) {\n\n          mhHideBannerContainer(\n            img\n          );\n\n        }\n\n      });\n\n\n    document\n      .querySelectorAll('body *')\n      .forEach(function(element) {\n\n\n        if (\n          element.closest &&\n          element.closest(\n            '.mh-budget-page'\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        var style;\n\n\n        try {\n\n          style =\n            window.getComputedStyle(\n              element\n            );\n\n        } catch(e) {\n\n          return;\n\n        }\n\n\n        if (!style) {\n          return;\n        }\n\n\n        var background =\n          style.backgroundImage || '';\n\n\n        if (\n          background.indexOf(\n            bannerFile\n          ) !== -1\n        ) {\n\n          mhHideBannerContainer(\n            element\n          );\n\n        }\n\n      });\n\n  }\n\n\n  function mhInitBannerRemoval() {\n\n    mhHideLandingTopBanner();\n\n    setTimeout(\n      mhHideLandingTopBanner,\n      300\n    );\n\n    setTimeout(\n      mhHideLandingTopBanner,\n      1000\n    );\n\n    setTimeout(\n      mhHideLandingTopBanner,\n      2000\n    );\n\n  }\n\n\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      mhInitBannerRemoval\n    );\n\n  } else {\n\n    mhInitBannerRemoval();\n\n  }\n\n\n  window.addEventListener(\n    'load',\n    mhInitBannerRemoval\n  );\n\n})();\n\n<\/script>\n\n\n<!-- =========================================================\n FIX SCROLL MOBILE\n========================================================= -->\n\n<script>\n\n(function () {\n\n  function mhRestoreMobileScroll() {\n\n    if (\n      window.innerWidth <= 767\n    ) {\n\n      document.documentElement.style.setProperty(\n        'overflow-x',\n        'hidden',\n        'important'\n      );\n\n\n      document.documentElement.style.setProperty(\n        'overflow-y',\n        'auto',\n        'important'\n      );\n\n\n      document.documentElement.style.setProperty(\n        'height',\n        'auto',\n        'important'\n      );\n\n\n      document.body.style.setProperty(\n        'overflow-x',\n        'hidden',\n        'important'\n      );\n\n\n      document.body.style.setProperty(\n        'overflow-y',\n        'auto',\n        'important'\n      );\n\n\n      document.body.style.setProperty(\n        'height',\n        'auto',\n        'important'\n      );\n\n\n      document.body.style.setProperty(\n        'touch-action',\n        'pan-y',\n        'important'\n      );\n\n    }\n\n  }\n\n\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      mhRestoreMobileScroll\n    );\n\n  } else {\n\n    mhRestoreMobileScroll();\n\n  }\n\n\n  window.addEventListener(\n    'load',\n    mhRestoreMobileScroll\n  );\n\n\n  window.addEventListener(\n    'resize',\n    mhRestoreMobileScroll\n  );\n\n\n  window.addEventListener(\n    'orientationchange',\n    function () {\n\n      setTimeout(\n        mhRestoreMobileScroll,\n        250\n      );\n\n    }\n  );\n\n\n  document.addEventListener(\n    'click',\n    function () {\n\n      setTimeout(\n        mhRestoreMobileScroll,\n        300\n      );\n\n    }\n  );\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PLANIFIQUEMOS JUNTOS Tu pr\u00f3ximo viaje comienza ac\u00e1 Recib\u00ed un presupuesto personalizado y empez\u00e1 a planificar tus pr\u00f3ximas vacaciones con el acompa\u00f1amiento de nuestros especialistas. \u2713 Asesoramiento personalizado \u2713 Planificaci\u00f3n sin costo \u2713 Precios oficiales SOLICITAR MI PRESUPUESTO \u2193 Gratis \u00b7 Sin compromiso VIAJ\u00c1 CON MAGIC HOLIDAYS Hacemos que planificar tus vacaciones sea m\u00e1s f\u00e1cil Contanos &hellip; <a href=\"https:\/\/mhtravelagencyweb.com\/en\/cotiza-tus-vacaciones\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Request a quote for your next vacation<\/span><\/a><\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-38445","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Presupuesto para Disney, Universal y Cruceros - Magic Holidays Travel Agency<\/title>\n<meta name=\"description\" content=\"Solicita tu presupuesto personalizado para Disney, Universal Orlando y cruceros. Planifica tus pr\u00f3ximas vacaciones con especialistas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mhtravelagencyweb.com\/en\/request-your-travel-quote\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Presupuesto para Disney, Universal y Cruceros - Magic Holidays Travel Agency\" \/>\n<meta property=\"og:description\" content=\"Solicita tu presupuesto personalizado para Disney, Universal Orlando y cruceros. Planifica tus pr\u00f3ximas vacaciones con especialistas.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mhtravelagencyweb.com\/en\/request-your-travel-quote\/\" \/>\n<meta property=\"og:site_name\" content=\"Magic Holidays Travel Agency\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/magicholidaystravelagency\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T12:44:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/flagcdn.com\/ar.svg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"WebPage\",\"CollectionPage\"],\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/\",\"url\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/\",\"name\":\"Presupuesto para Disney, Universal y Cruceros - Magic Holidays Travel Agency\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/flagcdn.com\\\/ar.svg\",\"datePublished\":\"2026-09-16T15:35:00+00:00\",\"dateModified\":\"2026-09-30T12:44:46+00:00\",\"description\":\"Solicita tu presupuesto personalizado para Disney, Universal Orlando y cruceros. Planifica tus pr\u00f3ximas vacaciones con especialistas.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/#breadcrumb\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/#primaryimage\",\"url\":\"https:\\\/\\\/flagcdn.com\\\/ar.svg\",\"contentUrl\":\"https:\\\/\\\/flagcdn.com\\\/ar.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/cotiza-tus-vacaciones\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solicita tu presupuesto para tus pr\u00f3ximas vacaciones\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#website\",\"url\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/\",\"name\":\"Magic Holidays Travel Agency\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#organization\",\"name\":\"Magic Holidays Travel Agency\",\"url\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/cropped-logo.png\",\"contentUrl\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/cropped-logo.png\",\"width\":512,\"height\":512,\"caption\":\"Magic Holidays Travel Agency\"},\"image\":{\"@id\":\"https:\\\/\\\/mhtravelagencyweb.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/magicholidaystravelagency\",\"https:\\\/\\\/www.instagram.com\\\/magicholidaysagency\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@magicholidaysagency\",\"https:\\\/\\\/www.tiktok.com\\\/@magicholidaysagency\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Quote for Disney, Universal and Cruises - Magic Holidays Travel Agency","description":"Request your personalized quote for Disney, Universal Orlando, and cruises. Plan your next vacation with specialists.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mhtravelagencyweb.com\/en\/request-your-travel-quote\/","og_locale":"en_US","og_type":"article","og_title":"Presupuesto para Disney, Universal y Cruceros - Magic Holidays Travel Agency","og_description":"Solicita tu presupuesto personalizado para Disney, Universal Orlando y cruceros. Planifica tus pr\u00f3ximas vacaciones con especialistas.","og_url":"https:\/\/mhtravelagencyweb.com\/en\/request-your-travel-quote\/","og_site_name":"Magic Holidays Travel Agency","article_publisher":"https:\/\/www.facebook.com\/magicholidaystravelagency","article_modified_time":"2026-09-30T12:44:46+00:00","og_image":[{"url":"https:\/\/flagcdn.com\/ar.svg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["WebPage","CollectionPage"],"@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/","url":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/","name":"Quote for Disney, Universal and Cruises - Magic Holidays Travel Agency","isPartOf":{"@id":"https:\/\/mhtravelagencyweb.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/#primaryimage"},"image":{"@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/#primaryimage"},"thumbnailUrl":"https:\/\/flagcdn.com\/ar.svg","datePublished":"2026-09-16T15:35:00+00:00","dateModified":"2026-09-30T12:44:46+00:00","description":"Request your personalized quote for Disney, Universal Orlando, and cruises. Plan your next vacation with specialists.","breadcrumb":{"@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/#primaryimage","url":"https:\/\/flagcdn.com\/ar.svg","contentUrl":"https:\/\/flagcdn.com\/ar.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/mhtravelagencyweb.com\/cotiza-tus-vacaciones\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/mhtravelagencyweb.com\/"},{"@type":"ListItem","position":2,"name":"Solicita tu presupuesto para tus pr\u00f3ximas vacaciones"}]},{"@type":"WebSite","@id":"https:\/\/mhtravelagencyweb.com\/#website","url":"https:\/\/mhtravelagencyweb.com\/","name":"Magic Holidays Travel Agency","description":"","publisher":{"@id":"https:\/\/mhtravelagencyweb.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mhtravelagencyweb.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/mhtravelagencyweb.com\/#organization","name":"Magic Holidays Travel Agency","url":"https:\/\/mhtravelagencyweb.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mhtravelagencyweb.com\/#\/schema\/logo\/image\/","url":"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/04\/cropped-logo.png","contentUrl":"https:\/\/mhtravelagencyweb.com\/wp-content\/uploads\/2023\/04\/cropped-logo.png","width":512,"height":512,"caption":"Magic Holidays Travel Agency"},"image":{"@id":"https:\/\/mhtravelagencyweb.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/magicholidaystravelagency","https:\/\/www.instagram.com\/magicholidaysagency\/","https:\/\/www.youtube.com\/@magicholidaysagency","https:\/\/www.tiktok.com\/@magicholidaysagency"]}]}},"_links":{"self":[{"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/pages\/38445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/comments?post=38445"}],"version-history":[{"count":87,"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/pages\/38445\/revisions"}],"predecessor-version":[{"id":38920,"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/pages\/38445\/revisions\/38920"}],"wp:attachment":[{"href":"https:\/\/mhtravelagencyweb.com\/en\/wp-json\/wp\/v2\/media?parent=38445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}