{"id":3921,"date":"2025-07-23T23:02:52","date_gmt":"2025-07-24T05:02:52","guid":{"rendered":"https:\/\/www.puntamitaexperience.com\/punta-mita-whale-watching\/"},"modified":"2026-09-29T16:19:18","modified_gmt":"2026-09-29T22:19:18","slug":"punta-mita-whale-watching","status":"publish","type":"page","link":"https:\/\/www.puntamitaexperience.com\/en\/punta-mita-whale-watching\/","title":{"rendered":"Punta Mita Whale Watching"},"content":{"rendered":"<style>.kb-row-layout-id3921_601207-c0 > .kt-row-column-wrap{align-content:center;}:where(.kb-row-layout-id3921_601207-c0 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:center;}.kb-row-layout-id3921_601207-c0 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);min-height:560px;grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id3921_601207-c0{border-top-left-radius:0px;}.kb-row-layout-id3921_601207-c0{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kb-row-layout-id3921_601207-c0{background-image:url('https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/tour-avistamiento-ballenas-punta-mita.jpg');background-size:cover;background-position:50% 50%;background-attachment:scroll;background-repeat:no-repeat;}.kb-row-layout-id3921_601207-c0 > .kt-row-layout-overlay{opacity:0.40;background-color:#000000;}.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep{height:100px;}.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep svg{width:100%;}.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep svg{fill:#ffffff!important;}@media all and (max-width: 1024px){.kb-row-layout-id3921_601207-c0 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 1024px){.kb-row-layout-id3921_601207-c0{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}}@media all and (max-width: 1024px){.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep{height:px;}}@media all and (max-width: 1024px){.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep svg{width:%;}}@media all and (max-width: 767px){.kb-row-layout-id3921_601207-c0 > .kt-row-column-wrap{min-height:630px;grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id3921_601207-c0{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id3921_601207-c0{background-image:url('https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/salto-vertical-ballena-jorobada-punta-mita.jpg');background-size:cover;background-position:center center;background-attachment:scroll;background-repeat:no-repeat;}.kb-row-layout-id3921_601207-c0 > .kt-row-layout-overlay{opacity:0.45;background:#000000;}.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep{height:px;}.kb-row-layout-id3921_601207-c0 .kt-row-layout-bottom-sep svg{width:%;}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id3921_601207-c0 alignfull kt-row-has-bg hero-no-lazy wp-block-kadence-rowlayout\"><div class=\"kt-row-layout-overlay kt-row-overlay-normal\"><\/div><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-middle\">\n<style>.kadence-column3921_42e504-d4 > .kt-inside-inner-col{display:flex;}.kadence-column3921_42e504-d4 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}.kadence-column3921_42e504-d4 > .kt-inside-inner-col > .aligncenter{width:100%;}.kt-row-column-wrap > .kadence-column3921_42e504-d4{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}.kadence-column3921_42e504-d4 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_42e504-d4{position:relative;}.kadence-column3921_42e504-d4, .kt-inside-inner-col > .kadence-column3921_42e504-d4:not(.specificity){margin-right:var(--global-kb-spacing-xs, 1rem);margin-left:var(--global-kb-spacing-xs, 1rem);}@media all and (max-width: 1024px){.kt-row-column-wrap > .kadence-column3921_42e504-d4{align-self:center;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4{align-self:auto;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}}@media all and (max-width: 1024px){.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}}@media all and (max-width: 767px){.kt-row-column-wrap > .kadence-column3921_42e504-d4{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}.kadence-column3921_42e504-d4 > .kt-inside-inner-col{flex-direction:column;justify-content:stretch;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_42e504-d4 kb-section-dir-vertical\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 1 \u00b7 HERO \u00b7 goes inside your Kadence row with the background image -->\n\n<div class=\"pme-b-hero\">\n    <div class=\"pme-b-hero__inner\">\n\n        <p class=\"pme-b-hero__kicker\">Private Tour<\/p>\n\n        <h1 class=\"pme-b-hero__title\">Punta Mita Whale Watching<\/h1>\n\n        <p class=\"pme-b-hero__lede\">\n            Two hours, a boat that&#8217;s yours alone, and the humpback whales that come to Banderas Bay every winter.\n        <\/p>\n\n        <a href=\"#\" onclick=\"abrirPmeBottomSheet(event)\" class=\"pme-b-btn pme-b-btn--ghost\">\n            Check availability\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M5 12H19M19 12L12 5M19 12L12 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/a>\n\n    <\/div>\n<\/div>\n\n<style>\n.pme-b-hero {\n    display: flex; flex-direction: column; justify-content: center; align-items: center;\n    min-height: 70vh; text-align: center; padding: 60px 20px;\n}\n.pme-b-hero__inner { max-width: 900px; width: 100%; }\n\n.pme-b-hero__kicker {\n    font-family: 'Oswald', sans-serif;\n    text-transform: uppercase; letter-spacing: 4px; font-size: 13px; font-weight: 500;\n    color: #3fd1bd; margin: 0 0 20px 0; text-shadow: 0 2px 4px rgba(0,0,0,0.6);\n}\n.pme-b-hero__title {\n    font-family: 'Playfair Display', serif;\n    font-size: clamp(38px, 5.5vw, 72px); font-weight: 700; line-height: 1.08;\n    color: #ffffff; margin: 0 0 22px 0; letter-spacing: -0.5px;\n    text-shadow: 0 4px 20px rgba(0,0,0,0.5);\n}\n.pme-b-hero__lede {\n    font-size: clamp(17px, 2.2vw, 22px); font-weight: 300; line-height: 1.5;\n    color: rgba(255,255,255,0.95); max-width: 620px; margin: 0 auto 42px auto;\n    text-shadow: 0 2px 10px rgba(0,0,0,0.6);\n}\n\n\/* Shared button, reused by the final CTA *\/\n.pme-b-btn {\n    display: inline-flex; align-items: center; gap: 12px;\n    font-family: 'Oswald', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase;\n    padding: 16px 40px; border-radius: 4px; text-decoration: none; cursor: pointer;\n    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;\n}\n.pme-b-btn--ghost { color: #ffffff; border: 2px solid #ffffff; background: transparent; backdrop-filter: blur(4px); }\n.pme-b-btn--ghost:hover { background: #ffffff; color: #1A202C; transform: translateY(-2px); }\n.pme-b-btn--solid { color: #ffffff; border: 2px solid #00A0A0; background: #00A0A0; }\n.pme-b-btn--solid:hover { background: #007F7F; border-color: #007F7F; transform: translateY(-2px); }\n.pme-b-btn:focus-visible { outline: 3px solid #3fd1bd; outline-offset: 3px; }\n\n@media (prefers-reduced-motion: reduce) {\n    .pme-b-btn { transition: none; }\n    .pme-b-btn:hover { transform: none; }\n}\n<\/style>\n<\/div><\/div>\n\n<\/div><\/div>\n\n<style>.kb-row-layout-id3921_894424-30 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id3921_894424-30 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id3921_894424-30 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id3921_894424-30 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id3921_894424-30 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id3921_894424-30 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id3921_894424-30 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-6-columns kt-row-layout-row kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column3921_094a32-a1 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_094a32-a1 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_094a32-a1 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_094a32-a1 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_094a32-a1{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_094a32-a1 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_094a32-a1 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_094a32-a1\"><div class=\"kt-inside-inner-col\">\n<!-- BLOQUE 2 \u00b7 COTIZADOR + TABLA DE PRECIOS + RESERVA (v4.2 \u00b7 EN) -->\n<!--\n  v4.1: la parte interactiva (precio, personas, fecha, hora y boton) va\n  envuelta en #pme-cotizador-widget. El boton flotante mueve ese nodo al\n  panel lateral y lo devuelve al cerrar: es el MISMO cotizador, no una\n  copia, asi que la seleccion se conserva en los dos sitios.\n  v4.0: la reserva pasa a la columna del precio, justo bajo el stepper:\n  campos desplegables de Fecha y Hora y el boton de reserva. El stepper\n  ocupa todo el ancho para alinearse con esos campos.\n  v3.2: estilos de los contadores por tipo de participante (tours con\n  adulto\/ni\u00f1o\/beb\u00e9 o con opciones). En ballenas no se ven: ah\u00ed manda el stepper.\n  v3.1: a\u00f1ade la fila de reserva (#pme-reserva). Est\u00e1 vac\u00eda y oculta a\n  prop\u00f3sito: la construye pme-reserva-fachada.php (functions.php) solo si\n  encuentra el calendario de PluginHive. Si no lo encuentra, la fila no\n  aparece y el panel de reserva actual sigue funcionando igual.\n  EN\/FR: la fila no lleva textos; se traducen en el PHP.\n-->\n<!--\n  v3.0 (dise\u00f1o):\n  - Datos del tour con iconos y una franja visual de temporada (dic-mar).\n  - Stepper corregido: el contenedor de precio es flex en columna y estiraba\n    el stepper a todo el ancho; ahora se ajusta a su contenido.\n  - Etiquetas en tipo oraci\u00f3n en lugar de may\u00fasculas.\n  Los ganchos data-pme y los dos shortcodes no cambian: el script del\n  cotizador en functions.php funciona igual.\n  EN\/FR: traducir textos y las 4 abreviaturas de mes de la franja\n  (EN: Dec Jan Feb Mar \u00b7 FR: d\u00e9c. janv. f\u00e9vr. mars).\n-->\n\n<script type=\"application\/json\" id=\"pme-tarifas-data\">{\"product_id\":3955,\"sku\":\"TUR-BAL-PRV\",\"moneda\":\"USD\",\"idioma\":\"en\",\"min\":1,\"max\":13,\"tramos\":[{\"desde\":1,\"hasta\":4,\"precio\":334,\"texto\":\"$334.00\",\"entero\":\"$334\"},{\"desde\":5,\"hasta\":5,\"precio\":374,\"texto\":\"$374.00\",\"entero\":\"$374\"},{\"desde\":6,\"hasta\":6,\"precio\":414,\"texto\":\"$414.00\",\"entero\":\"$414\"},{\"desde\":7,\"hasta\":7,\"precio\":454,\"texto\":\"$454.00\",\"entero\":\"$454\"},{\"desde\":8,\"hasta\":8,\"precio\":494,\"texto\":\"$494.00\",\"entero\":\"$494\"},{\"desde\":9,\"hasta\":9,\"precio\":534,\"texto\":\"$534.00\",\"entero\":\"$534\"},{\"desde\":10,\"hasta\":10,\"precio\":574,\"texto\":\"$574.00\",\"entero\":\"$574\"},{\"desde\":11,\"hasta\":11,\"precio\":614,\"texto\":\"$614.00\",\"entero\":\"$614\"},{\"desde\":12,\"hasta\":12,\"precio\":654,\"texto\":\"$654.00\",\"entero\":\"$654\"},{\"desde\":13,\"hasta\":13,\"precio\":694,\"texto\":\"$694.00\",\"entero\":\"$694\"}],\"por_persona\":{\"1\":{\"precio\":334,\"texto\":\"$334.00\",\"entero\":\"$334\"},\"2\":{\"precio\":334,\"texto\":\"$334.00\",\"entero\":\"$334\"},\"3\":{\"precio\":334,\"texto\":\"$334.00\",\"entero\":\"$334\"},\"4\":{\"precio\":334,\"texto\":\"$334.00\",\"entero\":\"$334\"},\"5\":{\"precio\":374,\"texto\":\"$374.00\",\"entero\":\"$374\"},\"6\":{\"precio\":414,\"texto\":\"$414.00\",\"entero\":\"$414\"},\"7\":{\"precio\":454,\"texto\":\"$454.00\",\"entero\":\"$454\"},\"8\":{\"precio\":494,\"texto\":\"$494.00\",\"entero\":\"$494\"},\"9\":{\"precio\":534,\"texto\":\"$534.00\",\"entero\":\"$534\"},\"10\":{\"precio\":574,\"texto\":\"$574.00\",\"entero\":\"$574\"},\"11\":{\"precio\":614,\"texto\":\"$614.00\",\"entero\":\"$614\"},\"12\":{\"precio\":654,\"texto\":\"$654.00\",\"entero\":\"$654\"},\"13\":{\"precio\":694,\"texto\":\"$694.00\",\"entero\":\"$694\"}},\"por_embarcacion\":13}<\/script>\n\n<div class=\"pme-b-quote\" id=\"pme-quote-block\">\n    <div class=\"pme-b-quote__card\">\n\n        <div class=\"pme-b-quote__facts\">\n\n            <span class=\"pme-b-quote__badge\">Private tour<\/span>\n\n            <dl class=\"pme-b-facts\">\n\n                <!-- Temporada: dato en texto + franja visual (decorativa) -->\n                <div class=\"pme-b-season\">\n                    <dt>Season<\/dt>\n                    <dd>\n                        <span class=\"pme-b-season__range\">December 10 to March 22<\/span>\n                        <span class=\"pme-b-season__band\" aria-hidden=\"true\">\n                            <span class=\"pme-b-season__track\"><span class=\"pme-b-season__fill\"><\/span><\/span>\n                            <span class=\"pme-b-season__months\">\n                                <span>Dec<\/span><span>Jan<\/span><span>Feb<\/span><span>Mar<\/span>\n                            <\/span>\n                        <\/span>\n                    <\/dd>\n                <\/div>\n\n                <div class=\"pme-b-fact\">\n                    <svg class=\"pme-b-fact__icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>\n                    <dt>Departures<\/dt>\n                    <dd>Every hour, 8:00 AM to 5:00 PM<\/dd>\n                <\/div>\n\n                <div class=\"pme-b-fact\">\n                    <svg class=\"pme-b-fact__icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"13\" r=\"8\"\/><path d=\"M12 9v4M9 2h6M18.5 6.5l1.5-1.5\"\/><\/svg>\n                    <dt>Duration<\/dt>\n                    <dd>2 hours on a private boat<\/dd>\n                <\/div>\n\n                <div class=\"pme-b-fact\">\n                    <svg class=\"pme-b-fact__icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"8\" r=\"3.5\"\/><path d=\"M2.5 20c0-3.6 2.9-6 6.5-6s6.5 2.4 6.5 6\"\/><path d=\"M16 4.5a3.5 3.5 0 0 1 0 7M18 14c2.2.6 3.5 2.8 3.5 6\"\/><\/svg>\n                    <dt>Capacity<\/dt>\n                    <dd>Up to <span data-pme=\"max-pax\">13<\/span> people per boat<\/dd>\n                <\/div>\n\n                <div class=\"pme-b-fact\">\n                    <svg class=\"pme-b-fact__icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6\"\/><circle cx=\"12\" cy=\"12\" r=\"1.8\"\/><path d=\"M12 2v4M12 18v4M2 12h4M18 12h4M4.9 4.9l2.8 2.8M16.3 16.3l2.8 2.8M4.9 19.1l2.8-2.8M16.3 7.7l2.8-2.8\"\/><\/svg>\n                    <dt>Crew<\/dt>\n                    <dd>Captain experienced in whale behavior<\/dd>\n                <\/div>\n\n            <\/dl>\n\n        <\/div>\n\n        <div class=\"pme-b-quote__price\">\n\n            <div class=\"pme-b-quote__widget\" id=\"pme-cotizador-widget\">\n\n            <p class=\"pme-b-quote__label\">Price your boat<\/p>\n\n            <div class=\"pme-b-price\">\n                <span data-pme=\"price\" class=\"pme-b-price__amount\">\u2014<\/span>\n                <span data-pme=\"currency\" class=\"pme-b-price__currency\"><\/span>\n            <\/div>\n\n            <p data-pme=\"base\" class=\"pme-b-quote__base\"><\/p>\n\n            <div class=\"pme-b-stepper\">\n                <button data-pme=\"minus\" type=\"button\" aria-label=\"Fewer people\">\u2212<\/button>\n                <div data-pme=\"pax\" aria-live=\"polite\">\u2014<\/div>\n                <button data-pme=\"plus\" type=\"button\" aria-label=\"More people\">+<\/button>\n            <\/div>\n\n            <!-- Fecha, hora y reserva: lo llena pme-reserva-fachada.php -->\n            <div class=\"pme-b-book\" id=\"pme-reserva\" hidden><\/div>\n\n            <\/div>\n\n            <p class=\"pme-b-quote__note\">\n                Price is per boat, not per person. Groups over 13:\n                <a href=\"https:\/\/wa.me\/523222270040\" target=\"_blank\" rel=\"noopener\">message us<\/a> and we&#8217;ll book two boats.\n            <\/p>\n\n            <div class=\"pme-b-quote__divider\"><\/div>\n\n            <div class=\"pme-b-quote__line\"><span>Minimum age<\/span><strong>None<\/strong><\/div>\n            <div class=\"pme-b-quote__line\"><span>Guarantee<\/span><strong>No whales? Your next tour is free<\/strong><\/div>\n\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<details class=\"pme-tabla-precios\" id=\"pme-tabla-precios\"><summary>See price table by group size<\/summary><table><thead><tr><th>People<\/th><th>Total price (USD)<\/th><\/tr><\/thead><tbody><tr><td>1\u20134<\/td><td>$334<\/td><\/tr><tr><td>5<\/td><td>$374<\/td><\/tr><tr><td>6<\/td><td>$414<\/td><\/tr><tr><td>7<\/td><td>$454<\/td><\/tr><tr><td>8<\/td><td>$494<\/td><\/tr><tr><td>9<\/td><td>$534<\/td><\/tr><tr><td>10<\/td><td>$574<\/td><\/tr><tr><td>11<\/td><td>$614<\/td><\/tr><tr><td>12<\/td><td>$654<\/td><\/tr><tr><td>13<\/td><td>$694<\/td><\/tr><\/tbody><\/table><\/details>\n\n<style>\n.pme-b-quote { padding: 0 20px; position: relative; z-index: 10; margin-top: -40px; margin-bottom: 0; }\n.pme-b-quote__card {\n    max-width: 850px; margin: 0 auto; background: #ffffff; border-radius: 8px;\n    box-shadow: 0 12px 35px rgba(26,32,44,0.08); border-top: 4px solid #00A0A0; overflow: hidden;\n    display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch;\n}\n.pme-b-quote__facts { padding: 32px 30px; }\n.pme-b-quote__price { padding: 32px 30px; background: #F7FAFC; border-left: 1px solid #E2E8F0; display: flex; flex-direction: column; justify-content: center; }\n\n.pme-b-quote__badge {\n    display: inline-block; font-family: 'Oswald', sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.3px;\n    background: #1A202C; color: #ffffff; padding: 5px 12px; border-radius: 4px; margin-bottom: 22px;\n}\n\n\/* ---------- Datos del tour ---------- *\/\n.pme-b-facts { margin: 0; display: flex; flex-direction: column; gap: 16px; }\n.pme-b-facts dt { font-size: 12px; color: #718096; font-weight: 600; margin: 0; line-height: 1.3; }\n.pme-b-facts dd { font-size: 15px; color: #1A202C; font-weight: 600; margin: 0; line-height: 1.4; }\n\n\/* Temporada: el elemento con car\u00e1cter del bloque *\/\n.pme-b-season { padding: 16px 16px 14px; background: #F7FAFC; border: 1px solid #E2E8F0; border-radius: 6px; margin-bottom: 4px; }\n.pme-b-season dd { margin-top: 2px; }\n.pme-b-season__range { display: block; font-family: 'Oswald', sans-serif; font-size: 20px; font-weight: 500; line-height: 1.25; color: #1A202C; }\n.pme-b-season__band { display: block; margin-top: 12px; }\n.pme-b-season__track {\n    display: block; position: relative; height: 8px; border-radius: 4px; background: #E2E8F0;\n    \/* Separadores de mes *\/\n    background-image: linear-gradient(90deg, transparent calc(25% - 1px), #ffffff calc(25% - 1px), #ffffff 25%, transparent 25%,\n                                              transparent calc(50% - 1px), #ffffff calc(50% - 1px), #ffffff 50%, transparent 50%,\n                                              transparent calc(75% - 1px), #ffffff calc(75% - 1px), #ffffff 75%, transparent 75%);\n}\n\/* 10 dic = 9\/31 del primer mes -> 7.3 %; 22 mar = 3 + 22\/31 meses -> 92.7 % *\/\n.pme-b-season__fill {\n    position: absolute; top: 0; bottom: 0; left: 7.3%; width: 85.4%; border-radius: 4px;\n    background: linear-gradient(90deg, #00A0A0, #007F7F);\n}\n.pme-b-season__months { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 6px; }\n.pme-b-season__months span { font-size: 11px; font-weight: 600; color: #718096; text-align: center; }\n\n\/* Resto de datos: icono + etiqueta + valor *\/\n.pme-b-fact { display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; align-items: center; }\n.pme-b-fact__icon {\n    grid-row: span 2; width: 36px; height: 36px; padding: 8px; box-sizing: border-box; border-radius: 50%;\n    background: rgba(0,160,160,0.1); stroke: #007F7F; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round;\n}\n\n\/* ---------- Columna de precio ---------- *\/\n.pme-b-quote__widget { display: flex; flex-direction: column; }\n\/* Dentro del panel flotante *\/\n.pme-sheet-content .pme-b-quote__widget { background: #ffffff; border: 1px solid #E2E8F0; border-radius: 8px; padding: 22px 20px; margin: 6px 0 16px; }\n.pme-b-quote__label { font-family: 'Oswald', sans-serif; font-size: 16px; letter-spacing: 0.2px; color: #4A5568; margin: 0 0 10px 0; font-weight: 500; }\n\n.pme-b-price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 6px; }\n.pme-b-price__amount { font-family: 'Oswald', sans-serif; font-size: 42px; font-weight: 600; color: #1A202C; line-height: 1; font-variant-numeric: tabular-nums; transition: opacity 0.2s ease; }\n.pme-b-price__currency { font-size: 14px; font-weight: 600; color: #718096; }\n\n.pme-b-quote__base { font-size: 12px; color: #718096; margin: 0 0 16px 0; line-height: 1.5; min-height: 18px; }\n.pme-b-quote__base a { color: #00A0A0; font-weight: 700; text-decoration: none; }\n.pme-b-quote__base a:hover { text-decoration: underline; }\n\n\/* Stepper: align-self evita que el flex en columna lo estire *\/\n.pme-b-stepper { display: flex; align-self: stretch; align-items: stretch; background: #ffffff; border: 2px solid #CBD5E1; border-radius: 6px; overflow: hidden; }\n.pme-b-stepper button { background: transparent; border: none; width: 44px; height: 44px; font-size: 20px; color: #1A202C; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }\n.pme-b-stepper button:hover { background: #F1F5F9; }\n.pme-b-stepper button:disabled { opacity: 0.35; cursor: not-allowed; }\n.pme-b-stepper button:focus-visible { outline: 3px solid #00A0A0; outline-offset: -3px; }\n.pme-b-stepper div {\n    display: flex; align-items: center; justify-content: center; min-width: 108px; padding: 0 10px;\n    flex: 1; border-left: 1px solid #E2E8F0; border-right: 1px solid #E2E8F0;\n    font-size: 14px; font-weight: 700; color: #1A202C; user-select: none; white-space: nowrap;\n}\n\n.pme-b-quote__note { font-size: 12px; color: #4A5568; margin: 14px 0 0 0; line-height: 1.5; }\n.pme-b-quote__note a { color: #00A0A0; font-weight: 700; text-decoration: none; }\n.pme-b-quote__note a:hover { text-decoration: underline; }\n\n.pme-b-quote__divider { height: 1px; background: #E2E8F0; margin: 18px 0 14px 0; }\n.pme-b-quote__line { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; margin-bottom: 8px; }\n.pme-b-quote__line span { color: #4A5568; flex-shrink: 0; }\n.pme-b-quote__line strong { color: #1A202C; text-align: right; }\n\n\/* ---------- Tabla de precios () ---------- *\/\n.pme-tabla-precios { max-width: 850px; margin: 14px auto 48px auto; padding: 0 20px; box-sizing: border-box; }\n.pme-tabla-precios summary { cursor: pointer; list-style: none; font-size: 13px; font-weight: 700; color: #00A0A0; padding: 10px 0; user-select: none; }\n.pme-tabla-precios summary::-webkit-details-marker { display: none; }\n.pme-tabla-precios summary::before { content: '+ '; }\n.pme-tabla-precios[open] summary::before { content: '\u2212 '; }\n.pme-tabla-precios table { width: 100%; border-collapse: collapse; background: #ffffff; border: 1px solid #E2E8F0; border-radius: 8px; overflow: hidden; font-size: 14px; }\n.pme-tabla-precios th, .pme-tabla-precios td { padding: 10px 16px; text-align: left; border-bottom: 1px solid #F1F5F9; }\n.pme-tabla-precios th { background: #F7FAFC; font-size: 12px; color: #718096; font-weight: 700; }\n.pme-tabla-precios td:last-child, .pme-tabla-precios th:last-child { text-align: right; font-variant-numeric: tabular-nums; }\n.pme-tabla-precios tr:last-child td { border-bottom: none; }\n\n\n\/* ---------- Reserva (fachada sobre PluginHive) ---------- *\/\n.pme-b-book { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }\n.pme-b-book[hidden] { display: none; }\n.pme-b-book button { font-family: inherit; text-transform: none; letter-spacing: normal; line-height: 1.2; min-height: 0; box-shadow: none; }\n\n\/* Campos Fecha \/ Hora *\/\n.pme-b-book__trigger {\n    width: 100%; display: grid; grid-template-columns: 1fr auto; column-gap: 10px; align-items: center; text-align: left;\n    padding: 8px 14px; background: #ffffff; border: 2px solid #CBD5E1; border-radius: 6px; color: #1A202C; cursor: pointer;\n}\n.pme-b-book__trigger:hover:not(:disabled) { border-color: #00A0A0; background: #ffffff; color: #1A202C; }\n.pme-b-book__trigger[aria-expanded=\"true\"] { border-color: #00A0A0; }\n.pme-b-book__trigger:disabled { opacity: 0.55; cursor: not-allowed; }\n.pme-b-book__lbl { grid-column: 1; font-size: 11px; font-weight: 600; color: #718096; }\n.pme-b-book__val { grid-column: 1; font-size: 15px; font-weight: 700; color: #1A202C; }\n.pme-b-book__val.is-empty { color: #A0AEC0; font-weight: 600; }\n.pme-b-book__chev { grid-column: 2; grid-row: 1 \/ 3; width: 18px; height: 18px; fill: none; stroke: #4A5568; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s ease; }\n.pme-b-book__trigger[aria-expanded=\"true\"] .pme-b-book__chev { transform: rotate(180deg); }\n\n\/* Desplegable *\/\n.pme-b-book__pop { margin-top: 6px; padding: 14px; background: #ffffff; border: 1px solid #E2E8F0; border-radius: 8px; box-shadow: 0 10px 24px rgba(26,32,44,0.08); }\n.pme-b-book__pop[hidden] { display: none; }\n\n.pme-b-book__nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }\n.pme-b-book__nav span { font-size: 14px; font-weight: 700; color: #1A202C; text-transform: capitalize; }\n.pme-b-book__nav button { width: 32px; height: 32px; padding: 0; border: 1px solid #E2E8F0; border-radius: 50%; background: #ffffff; color: #1A202C; font-size: 18px; cursor: pointer; }\n.pme-b-book__nav button:hover:not(:disabled) { border-color: #00A0A0; color: #007F7F; background: #ffffff; }\n.pme-b-book__nav button:disabled { opacity: 0.3; cursor: default; }\n\n.pme-b-book__week, .pme-b-book__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }\n.pme-b-book__week span { font-size: 11px; font-weight: 600; color: #718096; text-align: center; padding: 3px 0; }\n.pme-b-book__days button { aspect-ratio: 1; padding: 0; border: none; border-radius: 6px; background: #F7FAFC; color: #1A202C; font-size: 13px; font-weight: 600; cursor: pointer; font-variant-numeric: tabular-nums; }\n.pme-b-book__days button:hover:not(:disabled) { background: #E0F2F2; color: #1A202C; }\n.pme-b-book__days button:disabled { background: transparent; color: #CBD5E0; cursor: default; }\n.pme-b-book__days button[aria-pressed=\"true\"], .pme-b-book__days button[aria-pressed=\"true\"]:hover { background: #1A202C; color: #ffffff; }\n\n.pme-b-book__times { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }\n.pme-b-book__times p { grid-column: 1 \/ -1; margin: 0; font-size: 14px; line-height: 1.5; color: #718096; }\n.pme-b-book__times button { padding: 10px 6px; border: 1px solid #CBD5E0; border-radius: 6px; background: #ffffff; color: #1A202C; font-size: 14px; font-weight: 600; cursor: pointer; }\n.pme-b-book__times button:hover:not(:disabled) { border-color: #00A0A0; background: #ffffff; color: #1A202C; }\n.pme-b-book__times button:disabled { color: #CBD5E0; border-color: #EDF2F7; text-decoration: line-through; cursor: default; }\n.pme-b-book__times button[aria-pressed=\"true\"], .pme-b-book__times button[aria-pressed=\"true\"]:hover { background: #1A202C; border-color: #1A202C; color: #ffffff; }\n\n\/* Contadores por tipo (tours con adulto\/ni\u00f1o\/beb\u00e9 u opciones) *\/\n.pme-b-book__pax { display: flex; flex-direction: column; gap: 10px; }\n.pme-b-book__pax:empty { display: none; }\n.pme-b-book__pax-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid #EDF2F7; }\n.pme-b-book__pax-name { font-size: 14px; font-weight: 600; color: #1A202C; line-height: 1.35; }\n.pme-b-book__pax-ctl { display: inline-flex; align-items: center; flex-shrink: 0; border: 2px solid #CBD5E1; border-radius: 6px; overflow: hidden; background: #ffffff; }\n.pme-b-book__pax-ctl button { width: 38px; height: 38px; padding: 0; border: none; background: transparent; color: #1A202C; font-size: 18px; cursor: pointer; }\n.pme-b-book__pax-ctl button:hover:not(:disabled) { background: #F1F5F9; color: #1A202C; }\n.pme-b-book__pax-ctl button:disabled { opacity: 0.35; cursor: not-allowed; }\n.pme-b-book__pax-ctl output { min-width: 34px; text-align: center; font-size: 15px; font-weight: 700; color: #1A202C; font-variant-numeric: tabular-nums; border-left: 1px solid #E2E8F0; border-right: 1px solid #E2E8F0; line-height: 38px; }\n\n\/* Bot\u00f3n de reserva *\/\n.pme-b-book__cta { width: 100%; margin-top: 4px; padding: 15px 24px; border: none; border-radius: 50px; background: linear-gradient(135deg, #00B4B4 0%, #008B8B 100%); color: #ffffff; font-size: 15px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 22px rgba(0,160,160,0.35) !important; transition: transform 0.2s ease; }\n.pme-b-book__cta:hover:not(:disabled) { transform: translateY(-2px); color: #ffffff; }\n.pme-b-book__cta:disabled { background: #CBD5E0; box-shadow: none !important; cursor: not-allowed; }\n.pme-b-book__error { margin: 0; font-size: 13px; color: #B91C1C; line-height: 1.45; }\n.pme-b-book__error:empty { display: none; }\n\n.pme-b-book button:focus-visible { outline: 3px solid #00A0A0; outline-offset: 2px; }\n\n@media (max-width: 768px) {\n    .pme-b-quote__card { grid-template-columns: 1fr; }\n    .pme-b-quote__facts { padding: 26px 20px; }\n    .pme-b-quote__price { border-left: none; border-top: 1px solid #E2E8F0; padding: 25px 20px; }\n}\n@media (prefers-reduced-motion: reduce) {\n    .pme-b-price__amount, .pme-b-stepper button, .pme-b-book__cta, .pme-b-book__chev { transition: none; }\n}\n<\/style>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_b80b52-94 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_b80b52-94 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_b80b52-94 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_b80b52-94 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_b80b52-94{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_b80b52-94 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_b80b52-94 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_b80b52-94\"><div class=\"kt-inside-inner-col\">\n<!-- BLOQUE 3 \u00b7 LO ESENCIAL (BLUF) \u00b7 v1.2 \u00b7 EN \u00b7 va justo despu\u00e9s del cotizador -->\n<!-- Cada dato tiene fuente. Es el p\u00e1rrafo que un buscador o un LLM extrae. -->\n<!-- v1.2: dise\u00f1o original; en escritorio el contenedor se ampl\u00eda a 1100 px. -->\n\n<section class=\"pme-b-bluf\">\n    <div class=\"pme-b-bluf__inner\">\n\n        <h2 class=\"pme-b-bluf__title\">Tour essentials<\/h2>\n\n        <p class=\"pme-b-bluf__text\">\n            Punta Mita Experience\u2019s private whale watching tour departs from Marina Punta Mita, at\n            the northern tip of Banderas Bay in Nayarit, Mexico, and lasts 2 hours. It runs from\n            December 10 to March 22, with departures every hour between 8:00 AM and 5:00 PM. The\n            boat is exclusive to your group, up to 13 people, with a captain experienced in whale\n            behavior. Each winter about 6,000 humpback whales reach Mexico\u2019s Pacific coast to mate\n            and give birth, according to the Faculty of Sciences at UNAM, Mexico\u2019s National\n            Autonomous University. Whales are observed from the distance set by Mexican standard\n            NOM-131-SEMARNAT-2010 for small vessels: 60 meters (about 200 feet). We have seen whales\n            on 100% of our trips to date; if it ever doesn\u2019t happen, you repeat the tour at no cost.\n        <\/p>\n\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-bluf { background: #ffffff; padding: 10px 20px 70px 20px; }\n.pme-b-bluf__inner { max-width: 720px; margin: 0 auto; }\n.pme-b-bluf__title {\n    font-family: 'Oswald', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase;\n    color: #00A0A0; margin: 0 0 18px 0; padding-bottom: 12px; border-bottom: 1px solid #E2E8F0;\n}\n.pme-b-bluf__text { font-size: 17px; line-height: 1.75; color: #1A202C; margin: 0; }\n@media (min-width: 1024px) { .pme-b-bluf__inner { max-width: 1100px; } }\n@media (max-width: 768px) { .pme-b-bluf__text { font-size: 16px; } }\n<\/style>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_9be3d8-5b > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_9be3d8-5b > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_9be3d8-5b > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_9be3d8-5b > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_9be3d8-5b{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_9be3d8-5b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_9be3d8-5b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_9be3d8-5b\"><div class=\"kt-inside-inner-col\">\n<div class=\"pme-gallery-section\" style=\"padding: 40px 20px 80px 20px; background: #ffffff;\">\n    <div style=\"max-width: 1200px; margin: 0 auto;\">\n\n        <div class=\"pme-b-gallery__head\">\n            <h2 class=\"pme-b-h2\">Humpback whales in Banderas Bay<\/h2>\n        <\/div>\n\n        <div class=\"pme-gallery-grid\">\n            \n            <div class=\"pme-gallery-item pme-item-large\" onclick=\"openPmeLightbox(0)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/pareja-de-ballenas-saltando.jpg\" alt=\"Pair of humpback whales breaching\">\n                <div class=\"pme-gallery-overlay\">\n                    <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 3h6v6\"><\/path><path d=\"M9 21H3v-6\"><\/path><path d=\"M21 3l-7 7\"><\/path><path d=\"M3 21l7-7\"><\/path><\/svg>\n                <\/div>\n                <div class=\"pme-caption-data\" style=\"display:none;\">A powerful show: A pair of humpbacks performing a synchronized breach.<\/div>\n            <\/div>\n\n            <div class=\"pme-gallery-item\" onclick=\"openPmeLightbox(1)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/avistamiento-ballenas-desde-lancha-punta-mita.jpg\" alt=\"Whale watching from a private boat\">\n                <div class=\"pme-gallery-overlay\">\n                    <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 3h6v6\"><\/path><path d=\"M9 21H3v-6\"><\/path><path d=\"M21 3l-7 7\"><\/path><path d=\"M3 21l7-7\"><\/path><\/svg>\n                <\/div>\n                <div class=\"pme-caption-data\" style=\"display:none;\">An intimate perspective: Taking in the whale&#8217;s immensity from our private boat.<\/div>\n            <\/div>\n\n            <div class=\"pme-gallery-item\" onclick=\"openPmeLightbox(2)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/primer-plano-ballena-jorobada-punta-mita.jpg\" alt=\"Close-up of a humpback whale\">\n                <div class=\"pme-gallery-overlay\">\n                    <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 3h6v6\"><\/path><path d=\"M9 21H3v-6\"><\/path><path d=\"M21 3l-7 7\"><\/path><path d=\"M3 21l7-7\"><\/path><\/svg>\n                <\/div>\n                <div class=\"pme-caption-data\" style=\"display:none;\">Ancient details: Close-up of the tubercles and head of a humpback in Punta de Mita.<\/div>\n            <\/div>\n\n            <div class=\"pme-gallery-item pme-item-wide\" onclick=\"openPmeLightbox(3)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/cola-de-ballena-atardecer-punta-mita.jpg\" alt=\"Whale tail at sunset\">\n                <div class=\"pme-gallery-more-overlay\">\n                    <span style=\"font-size: clamp(16px, 3vw, 22px); font-weight: 700; color: #ffffff; letter-spacing: 0.5px;\">+ View all photos<\/span>\n                <\/div>\n                <div class=\"pme-caption-data\" style=\"display:none;\">Silhouette at dusk: A humpback bids farewell beneath the sunset colors in Punta Mita.<\/div>\n            <\/div>\n\n            <div class=\"pme-gallery-item\" style=\"display:none;\" onclick=\"openPmeLightbox(4)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/ballenas-jorobadas-al-atardecer.jpg\" alt=\"Sunset cruise\">\n                <div class=\"pme-caption-data\" style=\"display:none;\">Twilight magic: Two humpback whales swimming together during golden hour.<\/div>\n            <\/div>\n            \n            <div class=\"pme-gallery-item\" style=\"display:none;\" onclick=\"openPmeLightbox(5)\">\n                <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/ballena-jorobada-en-el-pacifico-mexicano.jpg\" alt=\"Humpback whale surfacing\">\n                <div class=\"pme-caption-data\" style=\"display:none;\">Pacific giant: A humpback surfaces majestically in Mexican waters.<\/div>\n            <\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<div id=\"pme-lightbox\" class=\"pme-lightbox\">\n    <span class=\"pme-lightbox-close\" onclick=\"closePmeLightbox()\">\u00d7<\/span>\n    \n    <button class=\"pme-lightbox-control prev\" onclick=\"changePmeImage(-1)\">\n        <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"><\/polyline><\/svg>\n    <\/button>\n    <button class=\"pme-lightbox-control next\" onclick=\"changePmeImage(1)\">\n        <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg>\n    <\/button>\n    \n    <div class=\"pme-lightbox-content\">\n        <img decoding=\"async\" id=\"pme-lightbox-img\" src=\"\" alt=\"Enlarged view\">\n        <div id=\"pme-lightbox-caption\"><\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* GALLERY HEADING *\/\n.pme-b-gallery__head { margin-bottom: 32px; max-width: 720px; }\n.pme-b-gallery__head .pme-b-h2 { margin-bottom: 0; }\n\n\/* GRID DIN\u00c1MICO *\/\n.pme-gallery-grid {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    grid-auto-rows: 220px;\n    gap: 15px;\n}\n.pme-gallery-item {\n    position: relative;\n    overflow: hidden;\n    border-radius: 8px; \n    cursor: pointer;\n    background: #1A202C;\n}\n.pme-item-large { grid-column: span 2; grid-row: span 2; }\n.pme-item-wide { grid-column: span 2; grid-row: span 1; }\n\n.pme-gallery-item img {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.pme-gallery-overlay {\n    position: absolute; top: 0; left: 0; right: 0; bottom: 0;\n    background: rgba(15, 23, 42, 0.3);\n    display: flex; align-items: center; justify-content: center;\n    color: white; opacity: 0; transition: opacity 0.3s ease;\n}\n.pme-gallery-more-overlay {\n    position: absolute; top: 0; left: 0; right: 0; bottom: 0;\n    background: linear-gradient(to bottom, rgba(15, 23, 42, 0.2) 0%, rgba(15, 23, 42, 0.9) 100%);\n    display: flex; align-items: center; justify-content: center;\n    transition: background 0.3s ease;\n}\n.pme-gallery-item:hover img { transform: scale(1.05); }\n.pme-gallery-item:hover .pme-gallery-overlay { opacity: 1; }\n.pme-gallery-item:hover .pme-gallery-more-overlay { background: rgba(15, 23, 42, 0.85); }\n\n\/* ====== ESTILOS DEL LIGHTBOX ====== *\/\n.pme-lightbox {\n    display: none;\n    position: fixed !important;\n    z-index: 999999999 !important; \n    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;\n    width: 100% !important; height: 100% !important;\n    background-color: rgba(15, 23, 42, 0.85) !important; \n    backdrop-filter: blur(8px) !important;\n    opacity: 0;\n    transition: opacity 0.3s ease;\n}\n\n.pme-lightbox.is-active {\n    display: block !important;\n    opacity: 1;\n}\n\n.pme-lightbox-content {\n    position: absolute !important;\n    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;\n    padding: 70px 20px 90px 20px !important;\n    display: flex !important;\n    flex-direction: column !important;\n    align-items: center !important;\n    justify-content: center !important;\n    box-sizing: border-box !important;\n    z-index: 2 !important;\n}\n\n#pme-lightbox-img {\n    max-width: 100% !important; max-height: 100% !important;\n    width: auto !important;\n    height: auto !important;\n    object-fit: contain !important;\n    user-select: none !important; pointer-events: none !important;\n    display: block !important;\n}\n\n#pme-lightbox-caption {\n    position: absolute !important; bottom: 30px !important;\n    left: 20px !important; right: 20px !important;\n    color: #e2e8f0 !important;\n    font-size: 15px !important; font-weight: 400 !important;\n    text-align: center !important; letter-spacing: 0.5px !important; margin: 0 !important;\n}\n\n.pme-lightbox-close {\n    position: absolute !important; top: 15px !important; right: 20px !important;\n    color: #ffffff !important; font-size: 40px !important;\n    font-weight: 300 !important;\n    cursor: pointer !important; transition: color 0.2s !important; line-height: 1 !important; z-index: 10 !important;\n}\n.pme-lightbox-close:hover { color: #00A0A0 !important; }\n\n.pme-lightbox-control {\n    position: absolute !important; top: 50% !important; transform: translateY(-50%) !important;\n    background: rgba(255, 255, 255, 0.1) !important; border: none !important; color: white !important;\n    width: 60px !important; height: 60px !important;\n    border-radius: 50% !important; cursor: pointer !important;\n    display: flex !important; align-items: center !important; justify-content: center !important;\n    transition: all 0.2s ease !important;\n    z-index: 10 !important;\n}\n.pme-lightbox-control:hover { background: #00A0A0 !important; transform: translateY(-50%) scale(1.1) !important; }\n.pme-lightbox-control.prev { left: 30px !important; }\n.pme-lightbox-control.next { right: 30px !important; }\n\n\/* Oculta otras barras cuando el Lightbox est\u00e1 abierto *\/\nbody.pme-lightbox-abierto .pme-bottom-sheet,\nbody.pme-lightbox-abierto .pme-wa-flotante,\nbody.pme-lightbox-abierto header,\nbody.pme-lightbox-abierto .sticky-cta-mobile,\nbody.pme-lightbox-abierto .pme-sheet-bar { \n    opacity: 0 !important;\n    visibility: hidden !important; \n    pointer-events: none !important; \n    transition: none !important; \n}\n\n\/* ====== RESPONSIVE M\u00d3VILES ====== *\/\n@media (max-width: 768px) {\n    .pme-gallery-section { padding-left: 0 !important; padding-right: 0 !important; }\n    .pme-gallery-section > div { max-width: 100% !important; }\n    .pme-b-gallery__head { padding: 0 20px; }\n    .pme-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; gap: 10px; padding: 0 10px; box-sizing: border-box; }\n    \n    .pme-item-large { grid-column: span 2; grid-row: span 1; }\n    .pme-gallery-item:nth-child(2) { grid-column: span 1; grid-row: span 1; }\n    .pme-gallery-item:nth-child(3) { grid-column: span 1; grid-row: span 1; }\n    .pme-item-wide { grid-column: span 2; grid-row: span 1; }\n    \n    .pme-lightbox-control { display: none !important; }\n    .pme-lightbox-close { font-size: 45px !important; }\n    \n    .pme-lightbox-content { padding: 70px 0 20px 0 !important; justify-content: center !important; overflow-y: auto !important; }\n    \n    #pme-lightbox-img { width: 100% !important; height: auto !important; max-height: 65vh !important; object-fit: contain !important; flex: none !important; }\n    #pme-lightbox-caption { position: static !important; width: 100% !important; padding: 0 20px !important; margin-top: 20px !important; font-size: 14px !important; box-sizing: border-box !important; text-align: center !important; color: #e2e8f0 !important; }\n}\n<\/style>\n\n<script>\nlet pmeCurrentImgIndex = 0;\nlet pmeImagesData = [];\nlet pmeTouchStartX = 0;\nlet pmeTouchEndX = 0;\n\ndocument.addEventListener('DOMContentLoaded', function() {\n    \n    \/\/ Mover el lightbox al Body para evitar bloqueos\n    const lightboxContainer = document.getElementById('pme-lightbox');\n    if (lightboxContainer) {\n        document.body.appendChild(lightboxContainer);\n    }\n\n    const galleryItems = document.querySelectorAll('.pme-gallery-item');\n    galleryItems.forEach((item, index) => {\n        const img = item.querySelector('img');\n        const caption = item.querySelector('.pme-caption-data').textContent;\n      \n        let realImageSrc = img.getAttribute('data-src') || img.getAttribute('data-lazy-src') || img.src;\n        pmeImagesData.push({ src: realImageSrc, caption: caption });\n    });\n\n    document.addEventListener('keydown', function(e) {\n        const lightbox = document.getElementById('pme-lightbox');\n        if (lightbox.classList.contains('is-active')) {\n            if (e.key === 'Escape') closePmeLightbox();\n            if (e.key === 'ArrowRight') changePmeImage(1);\n            if (e.key === 'ArrowLeft') changePmeImage(-1);\n        }\n    });\n    if (lightboxContainer) {\n        lightboxContainer.addEventListener('touchstart', e => {\n            pmeTouchStartX = e.changedTouches[0].screenX;\n        }, {passive: true});\n        lightboxContainer.addEventListener('touchend', e => {\n            pmeTouchEndX = e.changedTouches[0].screenX;\n            handlePmeSwipe();\n        });\n    }\n});\n\nfunction handlePmeSwipe() {\n    if (pmeTouchEndX < pmeTouchStartX - 40) changePmeImage(1);\n    if (pmeTouchEndX > pmeTouchStartX + 40) changePmeImage(-1);\n}\n\nfunction openPmeLightbox(index) {\n    pmeCurrentImgIndex = index;\n    const lightbox = document.getElementById('pme-lightbox');\n    const lightboxImg = document.getElementById('pme-lightbox-img');\n    const lightboxCaption = document.getElementById('pme-lightbox-caption');\n    \n    lightboxImg.src = pmeImagesData[index].src;\n    lightboxCaption.textContent = pmeImagesData[index].caption;\n    \n    lightbox.classList.add('is-active');\n    document.body.style.overflow = 'hidden'; \n    document.body.classList.add('pme-lightbox-abierto');\n}\n\nfunction closePmeLightbox() {\n    const lightbox = document.getElementById('pme-lightbox');\n    lightbox.classList.remove('is-active');\n    document.body.style.overflow = 'auto'; \n    document.body.classList.remove('pme-lightbox-abierto');\n}\n\nfunction changePmeImage(step) {\n    pmeCurrentImgIndex += step;\n    if (pmeCurrentImgIndex >= pmeImagesData.length) pmeCurrentImgIndex = 0;\n    else if (pmeCurrentImgIndex < 0) pmeCurrentImgIndex = pmeImagesData.length - 1;\n    \n    const lightboxImg = document.getElementById('pme-lightbox-img');\n    const lightboxCaption = document.getElementById('pme-lightbox-caption');\n    lightboxImg.style.opacity = 0;\n    setTimeout(() => {\n        lightboxImg.src = pmeImagesData[pmeCurrentImgIndex].src;\n        lightboxCaption.textContent = pmeImagesData[pmeCurrentImgIndex].caption;\n        lightboxImg.style.opacity = 1;\n    }, 150);\n}\n<\/script>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_9c1a88-9d > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_9c1a88-9d > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_9c1a88-9d > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_9c1a88-9d > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_9c1a88-9d{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_9c1a88-9d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_9c1a88-9d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_9c1a88-9d\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 5 \u00b7 WHAT'S INCLUDED + HOW WE WATCH -->\n\n<section class=\"pme-b-incl\">\n    <div class=\"pme-b-incl__grid\">\n\n        <div class=\"pme-b-incl__col\">\n            <h2 class=\"pme-b-h2\">What&#8217;s included<\/h2>\n\n            <ul class=\"pme-b-list\">\n                <li>\n                    <strong>2 hours on a private boat.<\/strong>\n                    Enough time to find whales and watch without rushing. The captain picks the search area each day based on recent activity.\n                <\/li>\n                <li>\n                    <strong>A captain experienced in whale behavior.<\/strong>\n                    One crew member: the person steering the boat is the person explaining what you&#8217;re looking at.\n                <\/li>\n                <li>\n                    <strong>Water and cold drinks on board.<\/strong>\n                <\/li>\n                <li>\n                    <strong>Certified life jackets<\/strong> in every size, children&#8217;s included.\n                <\/li>\n                <li class=\"pme-b-list__highlight\">\n                    <strong>Sighting guarantee.<\/strong>\n                    We have seen whales on 100% of our departures so far. If yours comes up empty, you go again at no cost.\n                <\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"pme-b-incl__col pme-b-incl__col--rule\">\n            <h2 class=\"pme-b-h2\">How we watch<\/h2>\n\n            <p class=\"pme-b-incl__lead\">\n                We operate under NOM-131-SEMARNAT-2010, the Mexican federal rule governing whale watching. In practice it means:\n            <\/p>\n\n            <dl class=\"pme-b-norma\">\n                <div><dt>60 m<\/dt><dd>minimum distance between boat and whale, about 200 feet<\/dd><\/div>\n                <div><dt>30 min<\/dt><dd>maximum watching time with the same group<\/dd><\/div>\n                <div><dt>4<\/dt><dd>boats at most around one group of whales<\/dd><\/div>\n            <\/dl>\n\n            <p class=\"pme-b-incl__foot\">\n                We don&#8217;t chase. If a whale decides to come closer, that&#8217;s the whale&#8217;s call.\n            <\/p>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n\/* Shared section heading *\/\n.pme-b-h2 {\n    font-family: 'Oswald', sans-serif; font-size: clamp(24px, 3.2vw, 30px); font-weight: 500;\n    color: #1A202C; margin: 0 0 22px 0; line-height: 1.2; letter-spacing: 0.2px;\n}\n\n.pme-b-incl { max-width: 1100px; margin: 0 auto; padding: 20px 20px 80px 20px; box-sizing: border-box; }\n.pme-b-incl__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 60px; align-items: start; }\n.pme-b-incl__col--rule { border-left: 1px solid #E2E8F0; padding-left: 60px; }\n\n.pme-b-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }\n.pme-b-list li { position: relative; padding-left: 28px; font-size: 15px; line-height: 1.6; color: #4A5568; }\n.pme-b-list li::before {\n    content: ''; position: absolute; left: 0; top: 7px; width: 14px; height: 8px;\n    border-left: 2.5px solid #00A0A0; border-bottom: 2.5px solid #00A0A0; transform: rotate(-45deg);\n}\n.pme-b-list li strong { color: #1A202C; font-weight: 700; }\n.pme-b-list__highlight { background: #F7FAFC; border: 1px solid #E2E8F0; border-radius: 8px; padding: 14px 16px 14px 44px !important; }\n.pme-b-list__highlight::before { left: 16px !important; top: 21px !important; }\n\n.pme-b-incl__lead { font-size: 15px; color: #4A5568; line-height: 1.65; margin: 0 0 22px 0; }\n.pme-b-norma { margin: 0 0 22px 0; display: flex; flex-direction: column; gap: 14px; }\n.pme-b-norma div { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: baseline; }\n.pme-b-norma dt { font-family: 'Oswald', sans-serif; font-size: 26px; font-weight: 500; color: #00A0A0; margin: 0; line-height: 1; font-variant-numeric: tabular-nums; }\n.pme-b-norma dd { font-size: 14px; color: #1A202C; margin: 0; line-height: 1.45; }\n.pme-b-incl__foot { font-size: 15px; color: #1A202C; font-weight: 600; margin: 0; line-height: 1.5; }\n\n@media (max-width: 991px) {\n    .pme-b-incl__grid { grid-template-columns: 1fr; gap: 40px; }\n    .pme-b-incl__col--rule { border-left: none; padding-left: 0; border-top: 1px solid #E2E8F0; padding-top: 40px; }\n}\n<\/style>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_e008ae-18 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_e008ae-18 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_e008ae-18 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_e008ae-18 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_e008ae-18{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_e008ae-18 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_e008ae-18 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_e008ae-18\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 7 \u00b7 MEETING POINT + GUARANTEES -->\n\n<section class=\"pme-b-loc\">\n    <div class=\"pme-b-loc__inner\">\n\n        <div class=\"pme-b-loc__head\">\n            <h2 class=\"pme-b-h2\">Meeting point: Punta de Mita Marina<\/h2>\n            <p>Northern end of Banderas Bay, Nayarit. Arrive 15 minutes before your departure time.<\/p>\n        <\/div>\n\n        <div id=\"pme-map-container\" class=\"pme-b-map\">\n            <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m17!1m12!1m3!1d3730.482797807993!2d-105.51662499999999!3d20.771746999999998!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m2!1m1!2zMjDCsDQ2JzE4LjMiTiAxMDXCsDMwJzU5LjkiVw!5e0!3m2!1sen!2smx!4v1773450091882!5m2!1sen!2smx\" width=\"100%\" height=\"100%\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\" title=\"Map of Punta de Mita Marina\"><\/iframe>\n\n            <div class=\"pme-b-map__actions\">\n                <a href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&amp;destination=20.771758912367797,-105.51662768220919\" target=\"_blank\" rel=\"noopener\" class=\"pme-b-map__btn pme-b-map__btn--primary\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polygon points=\"3 11 22 2 13 21 11 13 3 11\"><\/polygon><\/svg>\n                    Get directions\n                <\/a>\n                <button type=\"button\" onclick=\"togglePmeMap()\" class=\"pme-b-map__btn pme-b-map__btn--dark\">\n                    <svg id=\"pme-map-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"15 3 21 3 21 9\"><\/polyline><polyline points=\"9 21 3 21 3 15\"><\/polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"><\/line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"><\/line><\/svg>\n                    <span id=\"pme-map-text\">Expand map<\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n\n        <div class=\"pme-b-guar\">\n            <div class=\"pme-b-guar__item\">\n                <span class=\"pme-b-guar__num\">24 h<\/span>\n                <h3>Free cancellation<\/h3>\n                <p>Full refund when you cancel 24 hours ahead.<\/p>\n            <\/div>\n            <div class=\"pme-b-guar__item\">\n                <span class=\"pme-b-guar__num\">100%<\/span>\n                <h3>Sightings so far<\/h3>\n                <p>We have seen whales on every departure. If one day we don&#8217;t, you go again free.<\/p>\n            <\/div>\n            <div class=\"pme-b-guar__item\">\n                <span class=\"pme-b-guar__num\">60 m<\/span>\n                <h3>Legal watching distance<\/h3>\n                <p>Set by NOM-131-SEMARNAT-2010 for small boats. About 200 feet.<\/p>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-loc { padding: 60px 20px; background: #ffffff; }\n.pme-b-loc__inner { max-width: 1100px; margin: 0 auto; }\n.pme-b-loc__head { text-align: center; margin-bottom: 36px; }\n.pme-b-loc__head p { font-size: 16px; color: #718096; margin: 0; }\n.pme-b-loc__head .pme-b-h2 { margin-bottom: 10px; }\n\n.pme-b-map { position: relative; width: 100%; height: 350px; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.08); margin-bottom: 60px; background: #E2E8F0; transition: height 0.4s ease; }\n.pme-b-map__actions { position: absolute; top: 16px; right: 16px; display: flex; gap: 10px; z-index: 10; flex-wrap: wrap; justify-content: flex-end; }\n.pme-b-map__btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 4px; font-size: 14px; font-weight: 700; text-decoration: none; border: none; cursor: pointer; transition: transform 0.2s; }\n.pme-b-map__btn:hover { transform: scale(1.03); }\n.pme-b-map__btn--primary { background: #00A0A0; color: #ffffff; box-shadow: 0 4px 15px rgba(0,160,160,0.3); }\n.pme-b-map__btn--dark { background: #1A202C; color: #ffffff; box-shadow: 0 4px 15px rgba(0,0,0,0.2); }\n.pme-b-map__btn:focus-visible { outline: 3px solid #3fd1bd; outline-offset: 2px; }\n\n.pme-b-guar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }\n.pme-b-guar__num { display: block; font-family: 'Oswald', sans-serif; font-size: 40px; font-weight: 300; color: #00A0A0; line-height: 1; margin-bottom: 14px; font-variant-numeric: tabular-nums; }\n.pme-b-guar__item h3 { font-family: 'Oswald', sans-serif; font-size: 17px; font-weight: 500; color: #1A202C; margin: 0 0 8px 0; letter-spacing: 0.3px; }\n.pme-b-guar__item p { font-size: 15px; color: #718096; margin: 0; line-height: 1.5; }\n\n@media (max-width: 768px) {\n    .pme-b-guar { grid-template-columns: 1fr; gap: 30px; }\n}\n@media (prefers-reduced-motion: reduce) {\n    .pme-b-map, .pme-b-map__btn { transition: none; }\n}\n<\/style>\n\n<script>\nfunction togglePmeMap() {\n    var c = document.getElementById('pme-map-container');\n    var t = document.getElementById('pme-map-text');\n    var i = document.getElementById('pme-map-icon');\n    if (c.style.height === '80vh') {\n        c.style.height = '350px';\n        t.textContent = 'Expand map';\n        i.innerHTML = '<polyline points=\"15 3 21 3 21 9\"><\/polyline><polyline points=\"9 21 3 21 3 15\"><\/polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"><\/line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"><\/line>';\n    } else {\n        c.style.height = '80vh';\n        t.textContent = 'Collapse map';\n        i.innerHTML = '<polyline points=\"4 14 10 14 10 20\"><\/polyline><polyline points=\"20 10 14 10 14 4\"><\/polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"><\/line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"><\/line>';\n    }\n}\n<\/script>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_2d9708-be > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_2d9708-be > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_2d9708-be > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_2d9708-be > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_2d9708-be{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_2d9708-be > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_2d9708-be > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_2d9708-be\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 8 \u00b7 MIGRATION + FIGURES -->\n<!-- Figures: NOAA Fisheries (fisheries.noaa.gov\/species\/humpback-whale) and Gaceta UNAM -->\n<!-- Imperial units lead, metric in brackets: NOAA publishes in feet and miles. -->\n\n<section class=\"pme-b-story\">\n    <div class=\"pme-b-story__inner\">\n\n        <div class=\"pme-b-story__head\">\n            <h2 class=\"pme-b-h2 pme-b-story__title\">One of the longest migrations of any mammal<\/h2>\n            <p class=\"pme-b-story__lead\">\n                Every winter, around 6,000 humpback whales travel up to 5,000 miles from the feeding\n                grounds off Alaska and California to the Mexican Pacific. They come to mate and give\n                birth in warm, sheltered water, and through those months they barely feed at all:\n                they live off the fat they built up over the summer.\n            <\/p>\n        <\/div>\n\n        <div class=\"pme-b-story__grid\">\n\n            <article class=\"pme-b-story__card\">\n                <div class=\"pme-b-story__img\">\n                    <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/ballena-saltando-sayulita.jpg\" alt=\"Humpback whale breaching in Banderas Bay\" loading=\"lazy\">\n                <\/div>\n                <h3>Breaching<\/h3>\n                <p>An animal of up to 40 tons throwing itself clear of the water. Science still isn&#8217;t sure why they do it. The theories run from shaking off parasites to plain play.<\/p>\n            <\/article>\n\n            <article class=\"pme-b-story__card\">\n                <div class=\"pme-b-story__img\">\n                    <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/madre-y-cria-ballena-jorobada-punta-mita-2.jpg\" alt=\"Humpback whale mother and calf swimming together off Punta de Mita\" loading=\"lazy\">\n                <\/div>\n                <h3>Mothers and calves<\/h3>\n                <p>Calves arrive after 11 months of gestation, around 13 to 16 feet long, and nurse for up to a year. They swim tucked against the mother, who often touches them with her pectoral fins.<\/p>\n            <\/article>\n\n            <article class=\"pme-b-story__card\">\n                <div class=\"pme-b-story__img\">\n                    <img decoding=\"async\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/07\/avistamiento-cola-ballena-punta-mita.jpg\" alt=\"Humpback whale fluke as it dives off Punta de Mita\" loading=\"lazy\">\n                <\/div>\n                <h3>The fluke as a fingerprint<\/h3>\n                <p>The tail spans up to 18 feet, and its pattern of markings is unique to each animal. Researchers photograph flukes to identify and follow the same whale across years.<\/p>\n            <\/article>\n\n        <\/div>\n\n        <blockquote class=\"pme-b-pull\">\n            <p>Some populations swim as far as 5,000 miles between tropical breeding grounds and the colder waters where they feed.<\/p>\n            <cite>Figure from NOAA Fisheries on the humpback whale<\/cite>\n        <\/blockquote>\n\n    <\/div>\n<\/section>\n\n<section class=\"pme-b-data\">\n    <div class=\"pme-b-data__inner\">\n\n        <h2 class=\"pme-b-data__title\">The humpback whale in numbers<\/h2>\n\n        <div class=\"pme-b-data__grid\">\n            <div class=\"pme-b-data__item\">\n                <span class=\"pme-b-data__num\">60<small>ft<\/small><\/span>\n                <span class=\"pme-b-data__label\">Maximum length, 18 m<\/span>\n            <\/div>\n            <div class=\"pme-b-data__item\">\n                <span class=\"pme-b-data__num\">40<small>tons<\/small><\/span>\n                <span class=\"pme-b-data__label\">Maximum weight<\/span>\n            <\/div>\n            <div class=\"pme-b-data__item\">\n                <span class=\"pme-b-data__num\">5,000<small>mi<\/small><\/span>\n                <span class=\"pme-b-data__label\">Migration one way, 8,000 km<\/span>\n            <\/div>\n            <div class=\"pme-b-data__item\">\n                <span class=\"pme-b-data__num\">80<small>\u201390 yrs<\/small><\/span>\n                <span class=\"pme-b-data__label\">Lifespan<\/span>\n            <\/div>\n        <\/div>\n\n        <p class=\"pme-b-data__source\">\n            Source: <a href=\"https:\/\/www.fisheries.noaa.gov\/species\/humpback-whale\" target=\"_blank\" rel=\"noopener\">NOAA Fisheries<\/a>.\n            The 6,000 figure: <a href=\"https:\/\/www.gaceta.unam.mx\/oleada-de-ballenas-en-el-pacifico-mexicano\/\" target=\"_blank\" rel=\"noopener\">Gaceta UNAM<\/a>, School of Sciences.\n        <\/p>\n\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-story { padding: 80px 20px 40px 20px; background: #ffffff; }\n.pme-b-story__inner { max-width: 1100px; margin: 0 auto; }\n.pme-b-story__head { max-width: 760px; margin: 0 auto 56px auto; text-align: center; }\n.pme-b-story__title { font-size: clamp(28px, 4.2vw, 40px) !important; margin-bottom: 18px !important; }\n.pme-b-story__lead { font-size: 17px; color: #4A5568; line-height: 1.7; margin: 0; font-weight: 300; }\n\n.pme-b-story__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-bottom: 64px; }\n.pme-b-story__card h3 { font-family: 'Oswald', sans-serif; font-size: 20px; font-weight: 500; color: #1A202C; margin: 0 0 8px 0; }\n.pme-b-story__card p { font-size: 15px; color: #4A5568; margin: 0; line-height: 1.6; }\n.pme-b-story__img { overflow: hidden; border-radius: 4px; aspect-ratio: 4\/3; margin-bottom: 18px; background: #F7FAFC; }\n.pme-b-story__img img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\n.pme-b-pull { max-width: 760px; margin: 0 auto; padding: 0 0 0 28px; border-left: 3px solid #00A0A0; }\n.pme-b-pull p { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.6vw, 26px); font-style: italic; line-height: 1.45; color: #00A0A0; margin: 0 0 12px 0; }\n.pme-b-pull cite { font-style: normal; font-size: 13px; color: #718096; }\n\n.pme-b-data { background: #1A202C; padding: 70px 20px; }\n.pme-b-data__inner { max-width: 1000px; margin: 0 auto; text-align: center; }\n.pme-b-data__title { font-family: 'Oswald', sans-serif; font-size: 15px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; color: #00A0A0; margin: 0 0 44px 0; }\n.pme-b-data__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }\n.pme-b-data__num { display: block; font-family: 'Oswald', sans-serif; font-size: clamp(36px, 5vw, 52px); font-weight: 300; color: #ffffff; line-height: 1; margin-bottom: 12px; font-variant-numeric: tabular-nums; }\n.pme-b-data__num small { font-size: 0.42em; color: #00A0A0; font-weight: 400; margin-left: 4px; vertical-align: super; }\n.pme-b-data__label { font-size: 13px; color: #94A3B8; font-weight: 600; }\n.pme-b-data__source { font-size: 12px; color: #718096; margin: 40px 0 0 0; line-height: 1.6; }\n.pme-b-data__source a { color: #94A3B8; text-decoration: underline; }\n.pme-b-data__source a:hover { color: #ffffff; }\n\n@media (max-width: 968px) {\n    .pme-b-story__grid { grid-template-columns: 1fr; gap: 40px; }\n    .pme-b-data__grid { grid-template-columns: 1fr 1fr; gap: 36px 20px; }\n}\n<\/style>\n<\/div><\/div>\n\n<\/div><\/div>\n\n<style>.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id3921_6a0e95-16 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}}@media all and (max-width: 1024px){.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap > div:not(.added-for-specificity){grid-column:initial;}.kb-row-layout-id3921_6a0e95-16 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id3921_6a0e95-16 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-5-columns kt-row-layout-row kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column3921_462c3e-be > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_462c3e-be > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_462c3e-be > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_462c3e-be > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_462c3e-be{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_462c3e-be > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_462c3e-be > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_462c3e-be\"><div class=\"kt-inside-inner-col\">\n<style>\n    \/* 1. Oculta el calendario en la p\u00e1gina normal *\/\n    .pme-woo-wrapper {\n        display: none !important;\n    }\n    \n    \/* 2. Lo hace visible SOLO cuando el JS lo mueve dentro del Bottom Sheet *\/\n    #pme-sheet-content .pme-woo-wrapper {\n        display: block !important;\n    }\n\n    \/* 3. Oculta las valoraciones\/estrellas por defecto de WooCommerce *\/\n    .pme-woo-wrapper .woocommerce-product-rating {\n        display: none !important;\n    }\n<\/style>\n\n<div class=\"pme-woo-wrapper\">\n    <div class=\"woocommerce\">\t\t\t<div class=\"single-product\" data-product-page-preselected-id=\"0\">\n\t\t\t\t<div class=\"woocommerce-notices-wrapper\"><\/div><div id=\"product-3955\" class=\"entry content-bg loop-entry product type-product post-3955 status-publish first instock product_cat-tours-privados has-post-thumbnail virtual sold-individually purchasable product-type-phive_booking\">\n\n\t<div class=\"woocommerce-product-gallery woocommerce-product-gallery--with-images woocommerce-product-gallery--columns-4 images\" data-columns=\"4\" style=\"opacity: 0; transition: opacity .25s ease-in-out;\">\n\t<div class=\"woocommerce-product-gallery__wrapper\">\n\t\t<div data-thumb=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-100x100.jpg\" data-thumb-alt=\"Punta Mita Whale Watching | Private Tour\" data-thumb-srcset=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-100x100.jpg 100w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-150x150.jpg 150w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-300x300.jpg 300w\"  data-thumb-sizes=\"(max-width: 100px) 100vw, 100px\" class=\"woocommerce-product-gallery__image\"><a href=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita.jpg\"><img decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-800x600.jpg\" class=\"wp-post-image\" alt=\"Punta Mita Whale Watching | Private Tour\" data-caption=\"\" data-src=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita.jpg\" data-large_image=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita.jpg\" data-large_image_width=\"1200\" data-large_image_height=\"900\" srcset=\"https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-800x600.jpg 800w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-300x225.jpg 300w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-1024x768.jpg 1024w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita-768x576.jpg 768w, https:\/\/www.puntamitaexperience.com\/wp-content\/uploads\/2025\/06\/Ballenas-jorobadas-punta-mita.jpg 1200w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/div>\t<\/div>\n<\/div>\n\n\t<div class=\"summary entry-summary\">\n\t\t<h1 class=\"product_title entry-title\">Punta Mita Whale Watching | Private Tour<\/h1>\n\t<div class=\"woocommerce-product-rating\">\n\t\t<div class=\"star-rating\" role=\"img\" aria-label=\"Rated 5.00 out of 5\"><span style=\"width:100%\">Rated <strong class=\"rating\">5.00<\/strong> out of 5 based on <span class=\"rating\">1<\/span> customer rating<\/span><\/div>\t\t\t\t\t\t\t\t<a href=\"#reviews\" class=\"woocommerce-review-link\" rel=\"nofollow\">(<span class=\"count\">0<\/span> customer reviews)<\/a>\n\t\t\t\t\t\t<\/div>\n\n<p class=\"price\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\" dir=\"auto\">&#36;<\/span>334.00<\/bdi><\/span><\/p>\n<div class=\"woocommerce-product-details__short-description\">\n\t<p>Private 2-hour humpback whale watching tour in Banderas Bay, departing from Punta de Mita Marina. Season runs December 10 to March 22, with flexible departures between 8:00 AM and 5:00 PM. Exclusive boat for your group (up to 13 people), with a captain experienced in whale behavior. If we don&#8217;t find whales, you repeat the tour at no cost.<\/p>\n<\/div>\n<script>\n\t\/\/ To Reload the page if customer is going to any product page by clicking back button\n\twindow.addEventListener(\"pageshow\", function(event) {\n\t\tvar historyTraversal = event.persisted || (typeof window.performance != \"undefined\" && window.performance.navigation.type === 2);\n\t\tif (historyTraversal) {\n\t\t\t\/\/ Handle page restore.\n\t\t\tjQuery('.reset_action').trigger('change');\n\t\t}\n\t});\n<\/script>\n\n\t\t<!-- 108065 - Wrong months in Firefox -->\n\t<form class=\"cart\" action=\"\" method=\"post\" enctype='multipart\/form-data' autocomplete=\"off\">\n\t\t<div class=\"booking-wraper\">\n\t\t\t<div>\n\t\t\t\t<input type=\"hidden\" class=\"phive_booked_price\" name=\"phive_booked_price\" id=\"phive_booked_price\" value='' \/>\n\t\t\t\t<input type=\"hidden\" id=\"phive_product_id\" value='764' \/>\n\n\t\t\t\t<input type=\"hidden\" name=\"phive_book_from_date\" class=\"ph-date-from ph-datepicker\" value=\"\">\n\t\t\t\t<input type=\"hidden\" name=\"phive_book_to_date\" class=\"ph-datepicker ph-date-to\" value=\"\">\n\t\t\t\t<input type=\"hidden\" name=\"phive_book_assets\" class=\"phive_book_assets\" value=\"\">\n\n\t\t\t\t<input type=\"hidden\" id=\"plugin_dir_url\" value=\"https:\/\/www.puntamitaexperience.com\/wp-content\/plugins\/ph-bookings-appointments-woocommerce-premium\">\n\t\t\t\t<!-- for addon -->\n\t\t\t\t<input type=\"hidden\" class=\"display_time_to\" name=\"phive_display_time_to\" value=\"\">\n\t\t\t\t<input type=\"hidden\" class=\"display_time_from\" name=\"phive_display_time_from\" value=\"\">\n\t\t\t\t<input type=\"hidden\" class=\"time_offset\" value=\"-6\">\n\t\t\t\t<input type=\"hidden\" class=\"from_text\" value=\"\">\n\t\t\t\t<input type=\"hidden\" class=\"to_text\" value=\"\">\n\t\t\t\t<input type=\"hidden\" class=\"book_interval_period\" value=\"minute\">\n\t\t\t\t<input type=\"hidden\" class=\"book_interval\" value=\"60\">\n\t\t\t\t<input type=\"hidden\" id=\"ph_booking_wp_date_format\" value=\"j F, Y\">\n\t\t\t\t<input type=\"hidden\" id=\"ph_booking_wp_time_format\" value=\"g:i A\">\n\t\t\t\t<input type=\"hidden\" id=\"phive_booking_maximum_number_of_allowed_participant\" value=\"13\">\n\t\t\t\t<input type=\"hidden\" id=\"phive_booking_minimum_number_of_required_participant\" value=\"1\">\n\t\t\t\t<input type=\"hidden\" class=\"shop_opening_time\" value=\"08:00\">\n\t\t\t\t<input type=\"hidden\" class=\"shop_closing_time\" value=\"17:00\">\n\t\t\t\t<input type=\"hidden\" class=\"across_the_day_booking\" value=\"yes\">\n\t\t\t\t<input type=\"hidden\" name=\"ph_booking_addon_data\" class=\"ph_booking_addon_data\" value=\"\">\n\t\t\t\t<input type=\"hidden\" name=\"ph_booking_product_addon_data\" class=\"ph_booking_product_addon_data\" value=\"\">\n\t\t\t\t<input type=\"hidden\" id=\"auto_select_min_block\" name=\"auto_select_min_block\" class=\"auto_select_min_block\" value=\"yes\">\n\t\t\t\t<input type=\"hidden\" id=\"end_time_display\" name=\"end_time_display\" class=\"end_time_display\" value=\"no\">\n\t\t\t\t<input type=\"hidden\" id=\"calendar_design\" name=\"calendar_design\" class=\"calendar_design\" value=\"1\">\n\t\t\t\t<input type=\"hidden\" class=\"ph_time_zone_conversion_active\" value=\"no\">\n\t\t\t\t<input type=\"hidden\" id=\"reset_action\" name=\"reset_action\" class=\"reset_action\" value=\"1\">\n\t\t\t\t<input type=\"hidden\" id=\"ph_prev_day_times\" class=\"ph_prev_day_times\" value=\"\">\n\t\t\t\t<input type=\"hidden\" id=\"ph_selected_blocks\" class=\"ph_selected_blocks\" value=\"\">\n\t\t\t\t<input type=\"hidden\" name=\"ph_search_product_view\" id=\"ph_search_product_view\" value=\"calendar\">\n\t\t\t\t<!-- <p><\/p> -->\n\t\t\t<\/div>\n\t\t\t<div>\n\n\t\t\t\t<div class=\"time-picker-wraper\">\n\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t\t\t\t.ph-calendar-month{\n\t\t\t\t\t\t\tbackground: #3fd1bd !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.booking-full{\n\t\t\t\t\t\t\tbackground: #e5e7eb !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.timepicker-selected-date, .selected-date{\n\t\t\t\t\t\t\tbackground: #1a1a1a !important;\n\t\t\t\t\t\t\tborder:  0px solid #1a1a1a !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.booking-info-wraper{\n\t\t\t\t\t\t\tbackground: #3fd1bd !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.ph-calendar-weekdays{\n\t\t\t\t\t\t\tbackground: #f8fafc !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.ph-calendar-days{\n\t\t\t\t\t\t\tbackground: #f8fafc !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tli.ph-calendar-date.mouse_hover,li.ph-calendar-date:hover {\n\t\t\t\t\t\t\tbackground: #1a1a1a !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tli.ph-calendar-date.de-active:hover{\n\t\t\t\t\t\t\tbackground: none !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tli.ph-calendar-date.booking-full.de-active:hover{\n\t\t\t\t\t\t\tbackground: #e5e7eb !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t.button.alt\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbackground-color: #1a1a1a !important;\n\t\t\t\t\t\t\tcolor: #ffffff !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.booking-info-wraper, .booking-info-wraper p \n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: #ffffff !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.ph-calendar-days li,.time-picker-wraper #ph-calendar-time li.ph-calendar-date\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: #374151;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.ph-calendar-weekdays li\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: #065f46;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.span-month, .span-year,.ph-prev,.ph-next\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: #ffffff !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.time-picker{\n\t\t\t\t\t\t\tmargin-top:1em !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t<\/style>\n\t\t\t<!-- <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/semantic-ui\/2.4.1\/semantic.min.css\" \/> -->\n\t<input type=\"hidden\" id=\"calender_type\" value=\"time\">\n\t<input type=\"hidden\" id=\"ph_display_booking_capacity\" value=\"no\">\n\t<input type=\"hidden\" id=\"book_interval_type\" value=\"fixed\">\n\t<input type=\"hidden\" id=\"book_interval\" value=\"1\">\n\t<input type=\"hidden\" id=\"book_min_allowed_slot\" value=\"\">\n\t<input type=\"hidden\" id=\"book_max_allowed_slot\" value=\"\">\n\t<input type=\"hidden\" name=\"persons_as_booking\" id=\"persons_as_booking\" value=\"no\">\n\t\t<input type=\"hidden\" id=\"min_avail_date\" value=\"+51 days\">\n\t<input type=\"hidden\" id=\"max_avail_date\" value=\"+153 days\">\n\n\t<!-- <div class=\"callender-msg\"><php _e( $booking_text, 'bookings-and-appointments-for-woocommerce' )?><\/div> -->\n\t\n\t\t<div  class=\"ph-calendar-container\">\n\t\t<div class=\"time-calendar-date-section\">\n\t\t\t\t\t<div class=\"ph-calendar-month\">\n\t\t\t<ul>\n\n\t\t\t\t<li class=\"ph-prev\" >&#10094;<\/li>\n\t\t\t\t<li class=\"ph-next\" >&#10095;<\/li>\n\n\n\t\t\t\t<li class=\"ph-month\">\n\t\t\t\t\t<div class=\"month-year-wraper\">\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<span class=\"span-month\">December<\/span>\n\t\t\t\t\t\t\t<span class=\"span-year\">2026<\/span>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<input type=\"text\" readonly size=\"12\" class=\"callender-month\" value=\"December\" style=\"opacity: 0 !important; filter: alpha(opacity=0)!important;\">\n\t\t\t\t\t\t<input type=\"text\" readonly size=\"5\" class=\"callender-year\" value=\"2026\" style=\"opacity: 0 !important; filter: alpha(opacity=0)!important;\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t<\/ul>\n\t\t<\/div>\n\n\t\t<ul class=\"ph-calendar-weekdays \">\n\t\t\t<li>Mo<\/li><li>Tu<\/li><li>We<\/li><li>Th<\/li><li>Fr<\/li><li>Sa<\/li><li>Su<\/li>\t\t<\/ul>\n\t\t<ul class=\"ph-calendar-days ph-ul-date ph_booking_no_place_left\" id=\"ph-calendar-days\" style=\"text-align: left !important;\">\n\t\t\t<div class=\"ph-calendar-overlay\" id=\"ph-calendar-overlay\" style=\"display:none\"><\/div><li class=\"ph-calendar-date\"><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-01\"><span class=\"ph_calendar_day\">01<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-02\"><span class=\"ph_calendar_day\">02<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-03\"><span class=\"ph_calendar_day\">03<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-04\"><span class=\"ph_calendar_day\">04<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-05\"><span class=\"ph_calendar_day\">05<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-06\"><span class=\"ph_calendar_day\">06<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-07\"><span class=\"ph_calendar_day\">07<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-08\"><span class=\"ph_calendar_day\">08<\/span><\/li><li class=\"ph-calendar-date de-active not-available\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-09\"><span class=\"ph_calendar_day\">09<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-10\"><span class=\"ph_calendar_day\">10<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-11\"><span class=\"ph_calendar_day\">11<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-12\"><span class=\"ph_calendar_day\">12<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-13\"><span class=\"ph_calendar_day\">13<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-14\"><span class=\"ph_calendar_day\">14<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-15\"><span class=\"ph_calendar_day\">15<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-16\"><span class=\"ph_calendar_day\">16<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-17\"><span class=\"ph_calendar_day\">17<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-18\"><span class=\"ph_calendar_day\">18<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-19\"><span class=\"ph_calendar_day\">19<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-20\"><span class=\"ph_calendar_day\">20<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-21\"><span class=\"ph_calendar_day\">21<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-22\"><span class=\"ph_calendar_day\">22<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-23\"><span class=\"ph_calendar_day\">23<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-24\"><span class=\"ph_calendar_day\">24<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-25\"><span class=\"ph_calendar_day\">25<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-26\"><span class=\"ph_calendar_day\">26<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-27\"><span class=\"ph_calendar_day\">27<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-28\"><span class=\"ph_calendar_day\">28<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-29\"><span class=\"ph_calendar_day\">29<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-30\"><span class=\"ph_calendar_day\">30<\/span><\/li><li class=\"ph-calendar-date\">  <input type=\"hidden\" class=\"callender-full-date\"  value=\"2026-12-31\"><span class=\"ph_calendar_day\">31<\/span><\/li>\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t<!-- <br> -->\n\t\t<div class=\"time-picker\" style=\"margin-top:1em !important;\">\n\t\t\t<ul class=\"ph-calendar-days ph-ul-time ph_booking_no_place_left\" id=\"ph-calendar-time\" style=\"display:none;\">\n\t\t\t\t\n\t\t\t<\/ul>\n\t\t<\/div>\n\t\t\n\t<\/div>\n\t\t\t\t<div class=\"extra-resources participant_section\">\n\t\t\t\t\t\t\t\t<div class=\"participant_inner_section\">\n\t\t\t\t\t\t<div class=\"persons-title\">\n\t\t\t\t\t\t\t<label class=\"label-person\">Personas<\/label>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"person-value button-group-container\">\n\t\t\t\t\t\t\t<a href=\"#\" class=\"input-person-minus\">&minus;<\/a>\n\t\t\t\t\t\t\t<input type=\"number\" name=\"phive_book_persons[]\" class=\"input-person shipping-price-related\" rule-key=\"persons-0\" value=\"0\" min=\"\" max=\"13\" last-val=\"\"  data-name=\"Personas\">\t\t\t\t\t\t\n\t\t\t\t\t\t\t<a href=\"#\" class=\"input-person-plus\">&plus;<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"participant_count_error participant_count_error_persons-0\"><\/div>\n\t\t\t\t\t\n\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"booking-info-wraper\">\n\t<p id=\"booking_info_text\" style=\"text-align:center;\"> \n\t\t\t\tPlease Pick a Date\t<\/p>\n\t<p id=\"booking_price_text\"> <\/p>\n<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t\t\t<input type=\"hidden\" name=\"add-to-cart\" value=\"764\">\n\t\t<button type=\"submit\" name=\"add-to-cart\" value=\"764\" class=\"single_add_to_cart_button button alt ph_book_now_button disabled\">\n\t\t\tBook Now\t\t<\/button>\n\t\t\t<\/form>\n\n\t\n<div class=\"product_meta\">\n\n\t\n\t\n\t\t<span class=\"sku_wrapper\">SKU: <span class=\"sku\">TUR-BAL-PRV<\/span><\/span>\n\n\t\n\t<span class=\"posted_in\">Category: <a href=\"https:\/\/www.puntamitaexperience.com\/product-category\/tours-privados\/\" rel=\"tag\">Tours Privados<\/a><\/span>\n\t\n\t\n<\/div>\n\t<\/div>\n\n\t\n\t<div class=\"woocommerce-tabs wc-tabs-wrapper\">\n\t\t<ul class=\"tabs wc-tabs\" role=\"tablist\">\n\t\t\t\t\t\t\t<li role=\"presentation\" class=\"description_tab\" id=\"tab-title-description\">\n\t\t\t\t\t<a href=\"#tab-description\" role=\"tab\" aria-controls=\"tab-description\">\n\t\t\t\t\t\tDescription\t\t\t\t\t<\/a>\n\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li role=\"presentation\" class=\"reviews_tab\" id=\"tab-title-reviews\">\n\t\t\t\t\t<a href=\"#tab-reviews\" role=\"tab\" aria-controls=\"tab-reviews\">\n\t\t\t\t\t\tReviews (0)\t\t\t\t\t<\/a>\n\t\t\t\t<\/li>\n\t\t\t\t\t<\/ul>\n\t\t\t\t\t<div class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\" id=\"tab-description\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\">\n\t\t\t\t\n\n<h2>\ud83d\udc0b Private Humpback Whale Tour &#8211; Watching Season<\/h2> \r\n\t\t\t<\/div>\n\t\t\t\t\t<div class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--reviews panel entry-content wc-tab\" id=\"tab-reviews\" role=\"tabpanel\" aria-labelledby=\"tab-title-reviews\">\n\t\t\t\t<div id=\"reviews\" class=\"woocommerce-Reviews\">\n\t<div id=\"comments\">\n\t\t<h2 class=\"woocommerce-Reviews-title\">\n\t\t\tReviews\t\t<\/h2>\n\n\t\t\t\t\t<p class=\"woocommerce-noreviews\">There are no reviews yet<\/p>\n\t\t\t<\/div>\n\n\t\t\t<p class=\"woocommerce-verification-required\">Only logged in customers who have purchased this product may leave a review.<\/p>\n\t\n\t<div class=\"clear\"><\/div>\n<\/div>\n\t\t\t<\/div>\n\t\t\n\t\t\t<\/div>\n\n<\/div>\n\n\t\t\t<\/div>\n\t\t\t<\/div>\n<\/div>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_961404-d0 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_961404-d0 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_961404-d0 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_961404-d0 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_961404-d0{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_961404-d0 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_961404-d0 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_961404-d0\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 9 \u00b7 ITINERARY + FAQ -->\n<!-- MARKUP CONTRACT (do not change): .pme-faq-wrapper > details > summary .pme-summary-text \/ .pme-details-content -->\n<!-- pme_extraer_faqs() reads exactly that structure to build the FAQPage schema. -->\n\n<section class=\"pme-b-itin\">\n    <div class=\"pme-b-itin__inner\">\n\n        <div class=\"pme-b-itin__head\">\n            <h2 class=\"pme-b-h2\">How the tour goes<\/h2>\n            <p>The route and the search area shift day to day, based on where the captain has seen recent activity.<\/p>\n        <\/div>\n\n        <div class=\"pme-accordion-wrapper\">\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <div class=\"pme-summary-left\"><span class=\"pme-step-number\">01<\/span><span class=\"pme-summary-text\">Arrival and safety briefing<\/span><\/div>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <span class=\"pme-time-badge\">15 minutes before<\/span>\n                    <p>We meet you at Punta de Mita Marina. The captain runs through safety on board and how the boat behaves near whales: how far back we stay, when we cut the engine, and why.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <div class=\"pme-summary-left\"><span class=\"pme-step-number\">02<\/span><span class=\"pme-summary-text\">Heading out and searching<\/span><\/div>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>We head into Banderas Bay. The captain reads the signs that give a whale away before you ever see it: the blow as it breathes, a tail slap, a breach on the horizon. This is where you learn to read the water.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <div class=\"pme-summary-left\"><span class=\"pme-step-number\">03<\/span><span class=\"pme-summary-text\">Watching from 60 metres<\/span><\/div>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <span class=\"pme-time-badge\">Up to 30 minutes per group<\/span>\n                    <p>Once we find a group, we hold at the legal distance and stop. From there you see natural behaviour: a mother with her calf, males competing, breaching. This is the part for your camera, and for staying quiet.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <div class=\"pme-summary-left\"><span class=\"pme-step-number\">04<\/span><span class=\"pme-summary-text\">Back to the marina<\/span><\/div>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>The run back to Punta de Mita Marina. Time to have a drink, go through your photos, and ask the captain whatever you didn&#8217;t get to.<\/p>\n                <\/div>\n            <\/details>\n\n        <\/div>\n    <\/div>\n<\/section>\n\n<section class=\"pme-b-faq\">\n    <div class=\"pme-b-faq__inner\">\n\n        <h2 class=\"pme-b-h2 pme-b-faq__title\">Frequently asked questions<\/h2>\n\n        <div class=\"pme-accordion-wrapper pme-faq-wrapper\">\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">When is whale watching season in Punta Mita?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>Our private whale watching tour in Punta Mita runs from December 10 to March 22, with departures every hour between 8:00 AM and 5:00 PM. That window is shorter than other Banderas Bay operators advertise, and it&#8217;s deliberate: we only sail during the weeks when humpback whales are reliably in the bay.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">How much does the private tour cost for my group?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>The price is per boat, not per person. The base rate covers 1 to 4 people and each additional person adds a fixed amount, up to 13 per boat. The full table sits next to the quote card at the top of this page, in the currency you&#8217;re viewing. Groups over 13 book two separate boats.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">How many people fit on the boat?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>Up to 13 people per boat, with certified life jackets in every size, children&#8217;s included. Larger groups book two boats that sail together. Message us on WhatsApp and we&#8217;ll set it up.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">What if we don&#8217;t see any whales?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>We have seen whales on 100% of our departures so far. They&#8217;re still wild animals, so if none turn up on your tour, you go again at no cost. We can offer that because we keep the season tight around the dates when the bay is busiest.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">How close do you get to the whales?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>No closer than 60 metres, about 200 feet, the minimum set by Mexico&#8217;s NOM-131-SEMARNAT-2010 for small boats like ours. The same rule caps watching one group at 30 minutes and allows a maximum of four boats at a time. We don&#8217;t chase: if a whale decides to come closer to the boat, that&#8217;s the whale&#8217;s call.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">Can you swim with the whales?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>No. NOM-131-SEMARNAT-2010 prohibits swimming, diving or snorkelling with whales in Mexican waters, and no operator following the rule offers it. Watching happens from the boat, which is also the safest way to see a 40-ton animal breach.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">How long is the tour and where does it leave from?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>It runs 2 hours and leaves from Punta de Mita Marina, at the northern end of Banderas Bay, Nayarit. Please arrive 15 minutes before your departure time for check-in and the safety briefing.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">Is it suitable for kids and older adults?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>Yes, there&#8217;s no minimum age. Because the tour is private, the captain runs at your group&#8217;s pace, and the boat carries certified life jackets for all ages. If you&#8217;re travelling with a baby or with someone who needs help getting aboard, tell us when you book.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">What should we bring on board?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>Reef-safe sunscreen, a hat that won&#8217;t blow off, sunglasses, and a camera with a zoom: at 200 feet a phone catches the breach but not the detail. In December and January a light windbreaker helps on the way back. Water and cold drinks are included.<\/p>\n                <\/div>\n            <\/details>\n\n            <details class=\"pme-editorial-details\">\n                <summary class=\"pme-editorial-summary\">\n                    <span class=\"pme-summary-text\">Can I cancel my booking?<\/span>\n                    <span class=\"pme-icon-wrapper\"><svg class=\"pme-chevron\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><\/span>\n                <\/summary>\n                <div class=\"pme-details-content\">\n                    <p>Yes. Cancel 24 hours ahead and you get a full refund.<\/p>\n                <\/div>\n            <\/details>\n\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-itin { background: #ffffff; padding: 80px 20px 40px 20px; }\n.pme-b-itin__inner, .pme-b-faq__inner { max-width: 850px; margin: 0 auto; }\n.pme-b-itin__head { text-align: center; margin-bottom: 36px; }\n.pme-b-itin__head p { font-size: 16px; color: #718096; margin: 0; line-height: 1.6; }\n.pme-b-itin__head .pme-b-h2 { margin-bottom: 12px; }\n\n.pme-b-faq { background: #F7FAFC; padding: 60px 20px 80px 20px; }\n.pme-b-faq__title { text-align: center; margin-bottom: 36px !important; }\n\n\/* Accordion, same classes as the Spanish page *\/\n.pme-accordion-wrapper { display: flex; flex-direction: column; gap: 12px; }\n.pme-editorial-details { background: #ffffff; border: 1px solid #E2E8F0; border-radius: 8px; overflow: hidden; transition: border-color 0.25s ease, box-shadow 0.25s ease; }\n.pme-editorial-details[open] { border-color: #00A0A0; box-shadow: 0 8px 25px rgba(0,160,160,0.08); }\n.pme-editorial-summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; cursor: pointer; list-style: none; user-select: none; background: #ffffff; transition: background 0.25s ease; }\n.pme-editorial-summary:hover { background: #F7FAFC; }\n.pme-editorial-summary::-webkit-details-marker { display: none; }\n.pme-editorial-summary:focus-visible { outline: 3px solid #00A0A0; outline-offset: -3px; }\n.pme-summary-left { display: flex; align-items: center; gap: 15px; }\n\n.pme-step-number { font-family: 'Oswald', sans-serif; font-size: 14px; font-weight: 500; color: #00A0A0; background: #E6F5F5; padding: 4px 8px; border-radius: 4px; }\n.pme-summary-text { font-size: 16px; font-weight: 700; color: #1A202C; line-height: 1.4; transition: color 0.25s ease; }\n\n.pme-icon-wrapper { width: 32px; height: 32px; border-radius: 50%; background: #F1F5F9; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #718096; transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease; }\n.pme-editorial-details[open] .pme-icon-wrapper { background: #00A0A0; color: #ffffff; transform: rotate(180deg); }\n.pme-editorial-details[open] .pme-summary-text { color: #00A0A0; }\n\n.pme-details-content { padding: 0 24px 24px 24px; color: #4A5568; font-size: 15px; line-height: 1.7; }\n.pme-details-content p { margin: 0; }\n\n.pme-time-badge { display: inline-block; font-size: 12px; font-weight: 700; color: #4A5568; background: #F1F5F9; padding: 6px 12px; border-radius: 50px; margin-bottom: 14px; }\n\n@media (max-width: 768px) {\n    .pme-editorial-summary { padding: 16px 20px; }\n    .pme-summary-text { font-size: 15px; }\n    .pme-details-content { padding: 0 20px 20px 20px; font-size: 14px; }\n}\n@media (prefers-reduced-motion: reduce) {\n    .pme-editorial-details, .pme-editorial-summary, .pme-summary-text, .pme-icon-wrapper { transition: none; }\n}\n<\/style>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_bd3d3b-10{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_bd3d3b-10 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_bd3d3b-10\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 10 \u00b7 REVIEWS \u00b7 now BEFORE the final CTA -->\n<!--\n  - Karen: the only WooCommerce verified booking. Written in Spanish,\n    shown here translated and labelled as such. Do not present a\n    translation as if it were the original.\n  - The hydrophone review is gone: it described gear that isn't on board.\n  - Carousel cards: fill data-fuente=\"WhatsApp\" or \"Facebook\".\n    DELETE any card you can't trace to a real message.\n-->\n\n<section class=\"pme-b-rev\">\n    <div class=\"pme-b-rev__inner\">\n\n        <div class=\"pme-b-rev__head\">\n            <h2 class=\"pme-b-h2\">What people say after going out<\/h2>\n            <a href=\"https:\/\/maps.google.com\/?cid=2088418047162604318\" target=\"_blank\" rel=\"noopener\" class=\"pme-b-rev__google\">\n                <span class=\"pme-b-rev__stars\" aria-hidden=\"true\">\u2605\u2605\u2605\u2605\u2605<\/span>\n                <span>5.0 on Google<\/span>\n            <\/a>\n        <\/div>\n\n        <blockquote class=\"pme-b-rev__featured\">\n            <p>Eduardo took us right to the whales. We even saw a calf less than a week old. Truly an excellent trip!<\/p>\n            <footer>\n                <span class=\"pme-b-rev__name\">Karen N.<\/span>\n                <span class=\"pme-b-rev__tag\">Verified booking<\/span>\n                <span class=\"pme-b-rev__meta\">Translated from Spanish<\/span>\n            <\/footer>\n        <\/blockquote>\n\n        <div class=\"carrusel-container pme-b-rev__carousel\">\n\n            <button id=\"prevBtn\" class=\"pme-nav-btn pme-nav-left\" aria-label=\"Previous\"><svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"15 18 9 12 15 6\"><\/polyline><\/svg><\/button>\n            <button id=\"nextBtn\" class=\"pme-nav-btn pme-nav-right\" aria-label=\"Next\"><svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg><\/button>\n\n            <div style=\"overflow: hidden; padding: 10px 0;\">\n                <div id=\"carruselRese\u00f1as\" style=\"display: flex; transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);\">\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>Best experience ever! We saw a mother teaching her baby to breach. Our captain was amazing. Highly recommend.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Jennifer S.<\/span><span class=\"pme-b-rev__meta\">Los Angeles, USA \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>Amazing photographic opportunity. The captain got us close enough to get incredible shots but kept a respectful distance. 10\/10.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Mark T.<\/span><span class=\"pme-b-rev__meta\">Vancouver, Canada \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>Watching a whale breach that close was magical. The kids were spellbound, and so were we. Highly recommended.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Patricia R.<\/span><span class=\"pme-b-rev__meta\">Mexico City \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>The captain was a real professional and explained everything about their behaviour. We saw around eight different whales. Absolutely worth it.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Miguel A.<\/span><span class=\"pme-b-rev__meta\">Guadalajara \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>VIP treatment from the moment we arrived at the marina. Very comfortable, very safe boat, and the whale watching was a ten.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Sof\u00eda V.<\/span><span class=\"pme-b-rev__meta\">Tijuana \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>Spectacular. A private tour lets you sit in silence and take it in, without the crowds on the big boats. Worth every peso.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Carlos M.<\/span><span class=\"pme-b-rev__meta\">Puebla \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"rese\u00f1a-card\" data-fuente=\"\">\n                        <div class=\"pme-review-box\">\n                            <p>Whale tails against the sunset is the most beautiful image from our whole holiday. Thank you, Punta Mita Experience.<\/p>\n                            <footer><span class=\"pme-b-rev__name\">Laura S.<\/span><span class=\"pme-b-rev__meta\">M\u00e9rida \u00b7 <em class=\"pme-b-rev__src\"><\/em><\/span><\/footer>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n\n            <div id=\"dotsContainer\" class=\"pme-b-rev__dots\"><\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-rev { background: #ffffff; padding: 80px 20px 60px 20px; }\n.pme-b-rev__inner { max-width: 1100px; margin: 0 auto; position: relative; }\n.pme-b-rev__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 40px; }\n.pme-b-rev__head .pme-b-h2 { margin: 0; }\n.pme-b-rev__google { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #1A202C; font-weight: 700; font-size: 15px; }\n.pme-b-rev__google:hover span:last-child { text-decoration: underline; }\n.pme-b-rev__stars { color: #F5B301; letter-spacing: 2px; font-size: 16px; }\n\n.pme-b-rev__featured { max-width: 820px; margin: 0 auto 56px auto; padding: 0 0 0 28px; border-left: 3px solid #00A0A0; }\n.pme-b-rev__featured p { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.6vw, 27px); font-style: italic; line-height: 1.45; color: #1A202C; margin: 0 0 14px 0; }\n.pme-b-rev__featured footer { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }\n.pme-b-rev__name { font-weight: 700; color: #1A202C; font-size: 14px; }\n.pme-b-rev__tag { font-size: 12px; font-weight: 700; color: #00A0A0; background: #E6F5F5; padding: 4px 10px; border-radius: 50px; }\n.pme-b-rev__meta { font-size: 12px; color: #718096; }\n.pme-b-rev__src { font-style: normal; }\n\n.rese\u00f1a-card { min-width: 33.333%; padding: 0 15px; box-sizing: border-box; }\n.pme-review-box { background: #F7FAFC; border: 1px solid #E2E8F0; border-radius: 8px; padding: 30px; height: 100%; display: flex; flex-direction: column; box-sizing: border-box; }\n.pme-review-box p { font-size: 15px; color: #1A202C; margin: 0 0 22px 0; line-height: 1.6; flex-grow: 1; }\n.pme-review-box footer { display: flex; flex-direction: column; gap: 3px; border-top: 1px solid #E2E8F0; padding-top: 14px; }\n\n.pme-nav-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; background: transparent; border: none; color: #94A3B8; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: color 0.25s ease; }\n.pme-nav-btn:hover { color: #1A202C; }\n.pme-nav-btn:focus-visible { outline: 3px solid #00A0A0; outline-offset: 2px; border-radius: 50%; }\n.pme-nav-left { left: -20px; }\n.pme-nav-right { right: -20px; }\n.pme-b-rev__dots { display: flex; justify-content: center; gap: 8px; margin-top: 36px; }\n\n@media (max-width: 968px) {\n    .rese\u00f1a-card { min-width: 100% !important; }\n    .pme-nav-btn { display: none !important; }\n    .pme-review-box { padding: 24px; }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n    document.querySelectorAll('.rese\u00f1a-card[data-fuente]').forEach(function (card) {\n        var src = card.getAttribute('data-fuente');\n        var el = card.querySelector('.pme-b-rev__src');\n        if (el) el.textContent = src ? 'via ' + src : '';\n    });\n\n    var carrusel = document.getElementById('carruselRese\u00f1as');\n    if (!carrusel) return;\n    var cards = carrusel.querySelectorAll('.rese\u00f1a-card');\n    var dotsContainer = document.getElementById('dotsContainer');\n    var prevBtn = document.getElementById('prevBtn');\n    var nextBtn = document.getElementById('nextBtn');\n    var currentIndex = 0;\n\n    function cardsToShow() { return window.innerWidth <= 968 ? 1 : 3; }\n\n    function createDots() {\n        var total = cards.length - cardsToShow() + 1;\n        dotsContainer.innerHTML = '';\n        if (total <= 0) return;\n        for (var i = 0; i < total; i++) {\n            var dot = document.createElement('button');\n            dot.type = 'button';\n            dot.setAttribute('aria-label', 'Go to review ' + (i + 1));\n            dot.style.cssText = 'width:8px;height:8px;border-radius:50%;border:none;padding:0;cursor:pointer;background:' + (i === currentIndex ? '#00A0A0' : '#CBD5E1') + ';';\n            (function (idx) { dot.addEventListener('click', function () { currentIndex = idx; move(); }); })(i);\n            dotsContainer.appendChild(dot);\n        }\n    }\n\n    function move() {\n        var n = cardsToShow();\n        carrusel.style.transform = 'translateX(' + (-(currentIndex * (100 \/ n))) + '%)';\n        dotsContainer.querySelectorAll('button').forEach(function (d, i) {\n            d.style.background = i === currentIndex ? '#00A0A0' : '#CBD5E1';\n            d.style.transform = i === currentIndex ? 'scale(1.5)' : 'scale(1)';\n        });\n    }\n\n    nextBtn.addEventListener('click', function () {\n        var max = cards.length - cardsToShow();\n        currentIndex = currentIndex >= max ? 0 : currentIndex + 1;\n        move();\n    });\n    prevBtn.addEventListener('click', function () {\n        var max = cards.length - cardsToShow();\n        currentIndex = currentIndex <= 0 ? max : currentIndex - 1;\n        move();\n    });\n\n    var tsx = 0, tex = 0;\n    carrusel.addEventListener('touchstart', function (e) { tsx = e.changedTouches[0].screenX; }, { passive: true });\n    carrusel.addEventListener('touchend', function (e) {\n        tex = e.changedTouches[0].screenX;\n        if (tex < tsx - 50) nextBtn.click();\n        if (tex > tsx + 50) prevBtn.click();\n    }, { passive: true });\n\n    window.addEventListener('resize', function () { currentIndex = 0; createDots(); move(); });\n\n    createDots();\n    move();\n});\n<\/script>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_b62df3-2d > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_b62df3-2d > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_b62df3-2d > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_b62df3-2d > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_b62df3-2d{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_b62df3-2d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_b62df3-2d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_b62df3-2d\"><div class=\"kt-inside-inner-col\">\n<!-- BLOCK 11 \u00b7 FINAL CTA \u00b7 goes AFTER the reviews -->\n<!-- Reuses .pme-b-btn defined in 01-hero.html -->\n\n<section class=\"pme-b-cta\">\n    <div class=\"pme-b-cta__inner\">\n\n        <p class=\"pme-b-cta__season\">Season runs December 10 to March 22<\/p>\n\n        <h2 class=\"pme-b-cta__title\">Book your boat<\/h2>\n\n        <p class=\"pme-b-cta__text\">\n            Up to 13 people, an expert captain, and two hours out in Banderas Bay.\n            Free cancellation up to 24 hours before.\n        <\/p>\n\n        <button type=\"button\" onclick=\"abrirPmeBottomSheet(event)\" class=\"pme-b-btn pme-b-btn--solid\">\n            Check availability\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line><polyline points=\"19 12 12 19 5 12\"><\/polyline><\/svg>\n        <\/button>\n\n    <\/div>\n<\/section>\n\n<style>\n.pme-b-cta { padding: 100px 20px; background: #0F172A; text-align: center; }\n.pme-b-cta__inner { max-width: 700px; margin: 0 auto; }\n.pme-b-cta__season { font-family: 'Oswald', sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: #3fd1bd; margin: 0 0 20px 0; }\n.pme-b-cta__title { font-family: 'Playfair Display', serif; color: #ffffff; font-size: clamp(32px, 5vw, 48px); margin: 0 0 20px 0; font-weight: 700; line-height: 1.1; }\n.pme-b-cta__text { color: #94A3B8; font-size: 18px; margin: 0 auto 40px auto; line-height: 1.6; font-weight: 300; }\n.pme-b-cta .pme-b-btn { border-radius: 50px; padding: 18px 44px; }\n<\/style>\n<\/div><\/div>\n\n\n<style>.kadence-column3921_c6eefc-6a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3921_c6eefc-6a > .kt-inside-inner-col{flex-direction:column;}.kadence-column3921_c6eefc-6a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3921_c6eefc-6a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3921_c6eefc-6a{position:relative;}@media all and (max-width: 1024px){.kadence-column3921_c6eefc-6a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3921_c6eefc-6a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3921_c6eefc-6a\"><div class=\"kt-inside-inner-col\">\n<!-- BOT\u00d3N FLOTANTE + PANEL DE RESERVA (v2.1 \u00b7 EN) -->\n<!--\n  v2.1: el bot\u00f3n se ancla al widget del cotizador (precio + reserva), no a\n  toda la tarjeta. En m\u00f3vil la tarjeta apila los datos del tour y es muy\n  alta; ahora el bot\u00f3n aparece en cuanto el cotizador sale de pantalla.\n  v2.0:\n  - El panel muestra el cotizador (#pme-cotizador-widget) en vez del\n    calendario de PluginHive. Es el MISMO nodo, movido: personas, fecha y\n    hora elegidas se conservan al abrir y cerrar.\n  - Respaldo: si la reserva directa no arranc\u00f3 (#pme-reserva oculto) o la\n    p\u00e1gina no tiene cotizador, el panel muestra PluginHive como antes.\n  - El bot\u00f3n aparece solo despu\u00e9s de pasar el cotizador y se oculta al\n    llegar al pie de p\u00e1gina. Usa IntersectionObserver en lugar de revisar\n    el scroll cada 250 ms.\n  - Escape cierra el panel (si no hay un desplegable de fecha u hora abierto).\n  EN\/FR: traducir \"RESERVAR\", \"Configurar expedici\u00f3n\" y el mensaje de respaldo.\n-->\n\n<div id=\"pme-sheet-bar\" class=\"pme-sheet-bar\">\n    <button id=\"pme-sheet-trigger\" onclick=\"abrirPmeBottomSheet(event)\" class=\"pme-btn-dominante\">\n        BOOK NOW\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n            <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n            <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n            <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n            <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n            <path d=\"M9 16l2 2 4-4\"><\/path>\n        <\/svg>\n    <\/button>\n<\/div>\n\n<div id=\"pme-bottom-sheet\" class=\"pme-bottom-sheet\" role=\"dialog\" aria-labelledby=\"pme-sheet-titulo\">\n    <div id=\"pme-sheet-header\" class=\"pme-sheet-header\">\n        <div>\n            <div style=\"font-size: 11px; color: #00A0A0; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 2px;\">Plan your tour<\/div>\n            <h3 id=\"pme-sheet-titulo\" style=\"font-size: 18px; font-weight: 800; color: #1A202C; margin: 0; letter-spacing: -0.5px;\">Punta Mita Whale Watching | Private Tour<\/h3>\n        <\/div>\n\n        <button id=\"pme-sheet-close\" onclick=\"cerrarPmeBottomSheet(event)\" aria-label=\"Close\" style=\"background: #F8FAFC; border: 2px solid #94A3B8; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #0F172A; box-shadow: 0 4px 10px rgba(0,0,0,0.1); transition: all 0.2s ease;\">\n            <svg class=\"pme-close-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" style=\"width: 28px !important; height: 28px !important; min-width: 28px !important; margin: 0 !important;\">\n                <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n            <\/svg>\n        <\/button>\n    <\/div>\n\n    <div id=\"pme-sheet-content\" class=\"pme-sheet-content\"><\/div>\n\n    <div id=\"pme-safe-area\" class=\"pme-safe-area\" style=\"height: env(safe-area-inset-bottom, 0px); background: #ffffff;\"><\/div>\n<\/div>\n\n<style>\n.pme-btn-dominante {\n    background: linear-gradient(135deg, #00B4B4 0%, #008B8B 100%);\n    color: #ffffff;\n    padding: 16px 32px;\n    border-radius: 50px;\n    font-size: 16px;\n    font-weight: 800;\n    letter-spacing: 1px;\n    border: none;\n    box-shadow: 0 8px 25px rgba(0, 160, 160, 0.45), inset 0 2px 0 rgba(255, 255, 255, 0.2);\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    cursor: pointer;\n    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);\n}\n.pme-btn-dominante:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 12px 30px rgba(0, 160, 160, 0.55), inset 0 2px 0 rgba(255, 255, 255, 0.3); }\n.pme-btn-dominante:active { transform: translateY(2px) scale(0.96); box-shadow: 0 4px 12px rgba(0, 160, 160, 0.4); }\n.pme-sheet-bar { position: fixed !important; bottom: 25px !important; right: 20px !important; left: auto !important; background: transparent !important; z-index: 2147483646 !important; opacity: 0 !important; visibility: hidden !important; transform: scale(0.8) !important; pointer-events: none !important; transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1) !important; }\n.pme-sheet-bar.pme-mostrar { opacity: 1 !important; visibility: visible !important; transform: scale(1) !important; pointer-events: auto !important; }\n.pme-sheet-bar.is-hidden { opacity: 0 !important; visibility: hidden !important; transform: scale(0.8) !important; pointer-events: none !important; }\n.pme-bottom-sheet { position: fixed !important; background: #ffffff !important; z-index: 2147483647 !important; display: flex !important; flex-direction: column !important; opacity: 0 !important; visibility: hidden !important; }\nbody.pme-drawer-active .pme-wa-flotante { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; transform: scale(0.8) !important; transition: all 0.4s ease !important; }\n#pme-sheet-close:hover { background: #E2E8F0 !important; border-color: #64748B !important; transform: scale(1.05); }\n\n@media (max-width: 991px) {\n    .pme-bottom-sheet { bottom: 0 !important; left: 0 !important; right: 0 !important; height: 84.5vh !important; border-radius: 20px 20px 0 0 !important; transform: scale(0.95) !important; transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important; box-shadow: 0 -10px 40px rgba(0,0,0,0.2) !important; }\n    .pme-bottom-sheet.is-open { transform: scale(1) !important; opacity: 1 !important; visibility: visible !important; }\n    .pme-sheet-header { display: flex !important; padding: 12px 20px; border-bottom: 1px solid #E2E8F0; align-items: center; justify-content: space-between; border-radius: 20px 20px 0 0; }\n    .pme-sheet-content { display: block !important; padding: 10px 15px; overflow-y: auto; background: #F8FAFC; flex-grow: 1; }\n}\n@media (min-width: 992px) {\n    .pme-sheet-bar { bottom: 35px !important; right: 35px !important; }\n    .pme-bottom-sheet { top: 70px !important; bottom: 0 !important; right: 0 !important; left: auto !important; width: 450px !important; height: calc(100vh - 70px) !important; border-top: none !important; border-radius: 0 !important; transform: translateX(40px) scale(0.98) !important; transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important; box-shadow: -10px 0 50px rgba(0,0,0,0.2) !important; }\n    .pme-bottom-sheet.is-open { transform: translateX(0) scale(1) !important; opacity: 1 !important; visibility: visible !important; }\n    .pme-sheet-header { display: flex !important; padding: 16px 20px; border-bottom: 1px solid #E2E8F0; align-items: center; justify-content: space-between; }\n    .pme-sheet-content { display: block !important; padding: 10px 15px; overflow-y: auto; background: #F8FAFC; flex-grow: 1; }\n    .pme-close-icon { transform: rotate(-90deg); transition: transform 0.3s ease; }\n    .pme-safe-area { display: none !important; }\n}\n<\/style>\n\n<script>\n(function () {\n    \/\/ Donde estaba cada pieza antes de moverla al panel.\n    var wooOriginalParent = null;\n    var placeholder = null;\n\n    function widget() { return document.getElementById('pme-cotizador-widget'); }\n\n    \/\/ La reserva directa arranco solo si la fachada encontro PluginHive y\n    \/\/ mostro #pme-reserva. Si no, el panel usa PluginHive como antes.\n    function reservaDirectaActiva() {\n        var r = document.getElementById('pme-reserva');\n        return !!(widget() && r && !r.hidden);\n    }\n\n    window.cerrarPmeBottomSheet = function (e) {\n        if (e && e.preventDefault) e.preventDefault();\n        var bottomSheet = document.getElementById('pme-bottom-sheet');\n        var sheetBar = document.getElementById('pme-sheet-bar');\n        var w = widget();\n        var wooWrapper = document.querySelector('.pme-woo-wrapper');\n\n        \/\/ Devolver el cotizador a su sitio en la pagina.\n        if (placeholder && w) {\n            placeholder.parentNode.replaceChild(w, placeholder);\n            placeholder = null;\n        }\n        \/\/ Respaldo: devolver PluginHive si se habia movido.\n        if (wooOriginalParent && wooWrapper && wooWrapper.parentNode !== wooOriginalParent) {\n            wooOriginalParent.appendChild(wooWrapper);\n        }\n\n        if (bottomSheet) bottomSheet.classList.remove('is-open');\n        if (sheetBar) sheetBar.classList.remove('is-hidden');\n        document.body.classList.remove('pme-drawer-active');\n    };\n\n    window.abrirPmeBottomSheet = function (e) {\n        if (e && e.preventDefault) e.preventDefault();\n        var bottomSheet = document.getElementById('pme-bottom-sheet');\n        var sheetBar = document.getElementById('pme-sheet-bar');\n        var contentView = document.getElementById('pme-sheet-content');\n        if (!bottomSheet || !contentView) return;\n\n        if (bottomSheet.classList.contains('is-open')) {\n            window.cerrarPmeBottomSheet(e);\n            return;\n        }\n\n        contentView.innerHTML = '';\n\n        if (reservaDirectaActiva()) {\n            \/\/ El cotizador se mueve, no se copia: conserva personas, fecha y\n            \/\/ hora. Un hueco de la misma altura evita que la pagina salte.\n            var w = widget();\n            placeholder = document.createElement('div');\n            placeholder.style.height = w.offsetHeight + 'px';\n            w.parentNode.replaceChild(placeholder, w);\n            contentView.appendChild(w);\n        } else {\n            var wooWrapper = document.querySelector('.pme-woo-wrapper');\n            if (wooWrapper) {\n                if (!wooOriginalParent) wooOriginalParent = wooWrapper.parentNode;\n                contentView.appendChild(wooWrapper);\n            } else {\n                contentView.innerHTML = '<div style=\"padding: 40px 20px; text-align: center; color: #64748B;\"><p>The booking calendar is not available right now.<\/p><\/div>';\n            }\n        }\n\n        bottomSheet.classList.add('is-open');\n        if (sheetBar) sheetBar.classList.add('is-hidden');\n        document.body.classList.add('pme-drawer-active');\n    };\n\n    function iniciar() {\n        var bottomSheet = document.getElementById('pme-bottom-sheet');\n        var sheetBar = document.getElementById('pme-sheet-bar');\n        var contentView = document.getElementById('pme-sheet-content');\n        if (!bottomSheet || !sheetBar || sheetBar.getAttribute('data-pme-listo')) return;\n        sheetBar.setAttribute('data-pme-listo', '1');\n\n        if (bottomSheet.parentNode !== document.body) document.body.appendChild(bottomSheet);\n        if (sheetBar.parentNode !== document.body) document.body.appendChild(sheetBar);\n\n        \/\/ \"Ver todos los precios\" dentro del panel: se cierra el panel para\n        \/\/ que la tabla se vea en la pagina.\n        contentView.addEventListener('click', function (e) {\n            if (e.target.closest && e.target.closest('[data-pme=\"ver-tabla\"]')) {\n                window.cerrarPmeBottomSheet();\n            }\n        });\n\n        \/\/ Escape cierra el panel, salvo que haya un desplegable abierto\n        \/\/ (ese lo cierra primero el script de reserva).\n        document.addEventListener('keydown', function (e) {\n            if (e.key !== 'Escape' || !bottomSheet.classList.contains('is-open')) return;\n            if (document.querySelector('#pme-reserva [aria-expanded=\"true\"]')) return;\n            window.cerrarPmeBottomSheet();\n        });\n\n        \/\/ ------------------------------------------------------------\n        \/\/ Visibilidad del boton\n        \/\/ Aparece cuando el cotizador ya quedo arriba de la pantalla y\n        \/\/ desaparece cuando el pie de pagina entra en pantalla.\n        \/\/ ------------------------------------------------------------\n        \/\/ El widget y no la tarjeta: en movil la tarjeta es mucho mas alta.\n        var ancla = document.getElementById('pme-cotizador-widget') || document.getElementById('pme-quote-block');\n        var pie = document.getElementById('colophon') || document.querySelector('.site-footer') || document.querySelector('.pme-footer');\n        var pasado = false, enPie = false;\n\n        function actualizar() {\n            sheetBar.classList.toggle('pme-mostrar', pasado && !enPie);\n        }\n\n        if (ancla && 'IntersectionObserver' in window) {\n            new IntersectionObserver(function (entradas) {\n                var e = entradas[0];\n                \/\/ Solo cuenta si el cotizador quedo ARRIBA, no si aun no se llega a el.\n                pasado = !e.isIntersecting && e.boundingClientRect.bottom < 0;\n                actualizar();\n            }).observe(ancla);\n\n            if (pie) {\n                new IntersectionObserver(function (entradas) {\n                    enPie = entradas[0].isIntersecting;\n                    actualizar();\n                }).observe(pie);\n            }\n        } else {\n            \/\/ Paginas sin cotizador: comportamiento anterior (400 px desde\n            \/\/ arriba, oculto a 300 px del final), por evento de scroll.\n            var revisar = function () {\n                var y = window.scrollY || document.documentElement.scrollTop || 0;\n                var fin = document.body.scrollHeight - 300;\n                pasado = y >= 400;\n                enPie = (y + window.innerHeight) >= fin;\n                actualizar();\n            };\n            window.addEventListener('scroll', revisar, { passive: true });\n            window.addEventListener('resize', revisar);\n            revisar();\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', iniciar);\n    } else {\n        iniciar();\n    }\n})();\n<\/script>\n<\/div><\/div>\n\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Two hours, a boat that&#8217;s yours alone, and the humpback whales that come to Banderas Bay every winter. Check availability Private tour Season December 10 to March 22 DecJanFebMar Departures Every hour, 8:00 AM to 5:00 PM Duration 2 hours on a private boat Capacity Up to 13 people per boat Crew Captain experienced in&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3932,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-3921","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/pages\/3921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/comments?post=3921"}],"version-history":[{"count":14,"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/pages\/3921\/revisions"}],"predecessor-version":[{"id":5182,"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/pages\/3921\/revisions\/5182"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/media\/3932"}],"wp:attachment":[{"href":"https:\/\/www.puntamitaexperience.com\/en\/wp-json\/wp\/v2\/media?parent=3921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}