{"id":1880,"date":"2026-03-26T08:59:40","date_gmt":"2026-03-26T14:59:40","guid":{"rendered":"https:\/\/casamajeva.com\/?page_id=1880"},"modified":"2026-03-26T23:21:20","modified_gmt":"2026-03-27T05:21:20","slug":"1880-2","status":"publish","type":"page","link":"https:\/\/casamajeva.com\/en\/1880-2\/","title":{"rendered":""},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1880\" class=\"elementor elementor-1880\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57e15b2 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"57e15b2\" data-element_type=\"container\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e03180 elementor-widget elementor-widget-html\" data-id=\"1e03180\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Cotizador \u2014 Casa Majeva 2026<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  :root {\r\n    --sand: #f5f0e8; --cream: #faf8f4; --ocean: #2d6a7f; --ocean-light: #4a8fa6;\r\n    --ocean-pale: #e8f4f8; --coral: #c7623a; --coral-pale: #fdf0ea;\r\n    --gold: #b8924a; --gold-pale: #faf4e8; --text: #1c2b30; --text-muted: #6b8590;\r\n    --border: #e2ddd5; --white: #ffffff; --shadow: rgba(45,106,127,0.12);\r\n  }\r\n  * { box-sizing: border-box; margin: 0; padding: 0; }\r\n  body { font-family: 'DM Sans', sans-serif; background: var(--cream); color: var(--text); min-height: 100vh; }\r\n  header { background: var(--white); border-bottom: 1px solid var(--border); padding: 0 2rem; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 20px var(--shadow); }\r\n  .header-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 1rem; flex-wrap: wrap; }\r\n  .logo { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; letter-spacing: 0.08em; }\r\n  .logo span { color: var(--ocean); font-style: italic; }\r\n  .toggle-group { display: flex; background: var(--sand); border-radius: 100px; padding: 3px; gap: 2px; }\r\n  .toggle-btn { padding: 6px 16px; border-radius: 100px; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.05em; transition: all 0.2s; background: transparent; color: var(--text-muted); }\r\n  .toggle-btn.active { background: var(--white); color: var(--ocean); box-shadow: 0 1px 6px var(--shadow); }\r\n  .hero { background: linear-gradient(135deg, var(--ocean) 0%, #1e4d5e 100%); color: var(--white); text-align: center; padding: 3rem 2rem 2.5rem; position: relative; overflow: hidden; }\r\n  .hero::before { content: ''; position: absolute; inset: 0; background: url(\"data:image\/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'\/%3E%3C\/g%3E%3C\/svg%3E\"); }\r\n  .hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem,4.5vw,2.8rem); font-weight: 300; letter-spacing: 0.06em; margin-bottom: 0.4rem; position: relative; }\r\n  .hero p { font-size: 0.85rem; opacity: 0.75; letter-spacing: 0.08em; text-transform: uppercase; position: relative; }\r\n  .container { max-width: 1100px; margin: 0 auto; padding: 2rem 1.5rem; display: grid; grid-template-columns: 1fr 340px; gap: 2rem; align-items: start; }\r\n  .section { background: var(--white); border-radius: 16px; border: 1px solid var(--border); overflow: hidden; margin-bottom: 1.5rem; box-shadow: 0 2px 16px var(--shadow); transition: box-shadow 0.2s; animation: fadeIn 0.4s ease both; }\r\n  .section:hover { box-shadow: 0 4px 24px var(--shadow); }\r\n  .section-header { padding: 1.1rem 1.5rem; display: flex; align-items: center; gap: 0.8rem; border-bottom: 1px solid var(--border); }\r\n  .section-icon { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }\r\n  .icon-ocean{background:var(--ocean-pale)} .icon-coral{background:var(--coral-pale)} .icon-gold{background:var(--gold-pale)}\r\n  .section-title { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 600; letter-spacing: 0.04em; }\r\n  .section-subtitle { font-size: 0.78rem; color: var(--text-muted); margin-top: 1px; }\r\n  .section-body { padding: 1.2rem 1.5rem; }\r\n  .pkg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }\r\n  .pkg-card { border: 2px solid var(--border); border-radius: 14px; padding: 1.2rem 1rem; cursor: pointer; transition: all 0.25s; background: var(--cream); text-align: center; position: relative; }\r\n  .pkg-card:hover { border-color: var(--ocean-light); background: var(--ocean-pale); transform: translateY(-2px); box-shadow: 0 6px 20px var(--shadow); }\r\n  .pkg-card.active { border-color: var(--ocean); background: var(--ocean-pale); box-shadow: 0 4px 16px var(--shadow); }\r\n  .pkg-card.active::after { content: '\\2713'; position: absolute; top: 8px; right: 10px; background: var(--ocean); color: #fff; width: 20px; height: 20px; border-radius: 50%; font-size: 0.65rem; display: flex; align-items: center; justify-content: center; }\r\n  .pkg-emoji { font-size: 2rem; margin-bottom: 0.5rem; display: block; }\r\n  .pkg-name { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 600; margin-bottom: 0.3rem; color: var(--ocean); }\r\n  .pkg-desc { font-size: 0.72rem; color: var(--text-muted); line-height: 1.45; }\r\n  .pkg-badge { display: inline-block; font-size: 0.65rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; padding: 3px 10px; border-radius: 100px; margin-top: 0.6rem; }\r\n  .badge-popular { background: var(--coral-pale); color: var(--coral); }\r\n  .badge-flex { background: var(--gold-pale); color: var(--gold); }\r\n  .includes-bar { background: var(--ocean-pale); border-radius: 10px; padding: 0.7rem 1rem; margin-bottom: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }\r\n  .inc-chip { font-size: 0.72rem; background: var(--white); color: var(--ocean); padding: 3px 10px; border-radius: 100px; font-weight: 500; white-space: nowrap; }\r\n  .form-label { display: block; font-size: 0.76rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 0.35rem; }\r\n  .select-wrap { position: relative; }\r\n  select { width: 100%; padding: 0.55rem 1rem; border: 1.5px solid var(--border); border-radius: 10px; font-family: 'DM Sans', sans-serif; font-size: 0.88rem; color: var(--text); background: var(--cream); appearance: none; cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s; outline: none; }\r\n  select:focus { border-color: var(--ocean); box-shadow: 0 0 0 3px rgba(45,106,127,0.1); }\r\n  .select-wrap::after { content: '\\25BE'; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); pointer-events: none; font-size: 0.9rem; }\r\n  .date-row { display: flex; align-items: flex-end; gap: 0.6rem; margin-top: 0.8rem; }\r\n  .date-field { flex: 1; }\r\n  .date-input { width: 100%; padding: 0.55rem 0.8rem; border: 1.5px solid var(--border); border-radius: 10px; font-family: 'DM Sans', sans-serif; font-size: 0.86rem; color: var(--text); background: var(--cream); cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s; outline: none; }\r\n  .date-input:focus { border-color: var(--ocean); box-shadow: 0 0 0 3px rgba(45,106,127,0.1); }\r\n  .date-input::-webkit-calendar-picker-indicator { cursor: pointer; opacity: 0.5; }\r\n  .date-arrow { display: flex; align-items: center; justify-content: center; color: var(--ocean); font-size: 1.1rem; padding-bottom: 0.3rem; flex-shrink: 0; }\r\n  .nights-badge { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.76rem; background: var(--ocean-pale); color: var(--ocean); padding: 5px 14px; border-radius: 100px; font-weight: 500; flex-shrink: 0; margin-bottom: 0.1rem; white-space: nowrap; }\r\n  .guide-row { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }\r\n  .guide-field { flex: 1; min-width: 120px; }\r\n  .small-select { padding: 0.5rem 0.8rem; font-size: 0.84rem; }\r\n  .item { display: flex; align-items: flex-start; justify-content: space-between; padding: 0.8rem 0; border-bottom: 1px dashed var(--border); gap: 1rem; }\r\n  .item:last-child{border-bottom:none}\r\n  .item-name { font-size: 0.86rem; font-weight: 500; margin-bottom: 0.1rem; }\r\n  .item-desc { font-size: 0.73rem; color: var(--text-muted); line-height: 1.4; }\r\n  .item-price { font-size: 0.92rem; font-weight: 500; color: var(--ocean); }\r\n  .item-unit { font-size: 0.68rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }\r\n  .info-chip { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.68rem; background: var(--ocean-pale); color: var(--ocean); padding: 2px 8px; border-radius: 100px; margin-top: 0.35rem; }\r\n  .check-item { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.8rem 0; border-bottom: 1px dashed var(--border); cursor: pointer; transition: background 0.15s; border-radius: 8px; padding-left: 0.3rem; }\r\n  .check-item:last-child{border-bottom:none}\r\n  .check-item:hover{background:var(--sand)}\r\n  .check-item input[type=\"checkbox\"] { width: 18px; height: 18px; accent-color: var(--ocean); cursor: pointer; flex-shrink: 0; margin-top: 2px; }\r\n  .check-name { font-size: 0.86rem; font-weight: 500; margin-bottom: 0.1rem; }\r\n  .check-desc { font-size: 0.72rem; color: var(--text-muted); line-height: 1.4; }\r\n  .check-price { font-size: 0.86rem; font-weight: 500; color: var(--ocean); white-space: nowrap; text-align: right; flex-shrink: 0; }\r\n  .check-unit { font-size: 0.66rem; color: var(--text-muted); text-transform: uppercase; }\r\n  .surf-hint { font-size: 0.73rem; color: var(--text-muted); margin-bottom: 0.8rem; line-height: 1.5; background: var(--sand); border-radius: 8px; padding: 0.55rem 0.8rem; }\r\n  .day-row { display: flex; align-items: center; gap: 0.7rem; padding: 0.55rem 0; border-bottom: 1px dashed var(--border); }\r\n  .day-row:last-child{border-bottom:none}\r\n  .day-label { font-size: 0.76rem; font-weight: 600; color: var(--ocean); background: var(--ocean-pale); border-radius: 8px; padding: 3px 10px; white-space: nowrap; min-width: 50px; text-align: center; }\r\n  .day-select-wrap { flex: 1; position: relative; }\r\n  .day-select { width: 100%; padding: 0.4rem 2rem 0.4rem 0.7rem; border: 1.5px solid var(--border); border-radius: 8px; font-family: 'DM Sans', sans-serif; font-size: 0.8rem; color: var(--text); background: var(--cream); appearance: none; cursor: pointer; transition: border-color 0.2s; outline: none; }\r\n  .day-select:focus{border-color:var(--ocean)}\r\n  .day-select-wrap::after { content: '\\25BE'; position: absolute; right: 0.6rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); pointer-events: none; font-size: 0.8rem; }\r\n  .day-price-tag { font-size: 0.78rem; font-weight: 600; color: var(--coral); white-space: nowrap; min-width: 60px; text-align: right; }\r\n  .transport-option { border: 1.5px solid var(--border); border-radius: 10px; padding: 0.75rem 1rem; cursor: pointer; margin-bottom: 0.5rem; display: flex; justify-content: space-between; align-items: center; transition: all 0.2s; background: var(--cream); }\r\n  .transport-option:hover{border-color:var(--gold);background:var(--gold-pale)}\r\n  .transport-option.selected{border-color:var(--gold);background:var(--gold-pale)}\r\n  .transport-option.selected .to-name{color:var(--gold)}\r\n  .to-name{font-size:0.84rem;font-weight:500}\r\n  .to-desc{font-size:0.71rem;color:var(--text-muted);margin-top:1px}\r\n  .to-price{font-size:0.86rem;font-weight:600;color:var(--gold);white-space:nowrap}\r\n  .transport-none-label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.78rem; color: var(--text-muted); cursor: pointer; padding: 0.3rem 0; margin-top: 0.15rem; }\r\n  .transport-none-label input{accent-color:var(--text-muted)}\r\n  .summary{position:sticky;top:90px}\r\n  .summary-card{background:var(--white);border-radius:16px;border:1px solid var(--border);overflow:hidden;box-shadow:0 4px 24px var(--shadow)}\r\n  .summary-header{background:var(--ocean);color:var(--white);padding:1.1rem 1.4rem;display:flex;align-items:center;gap:0.6rem}\r\n  .summary-header h2{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:400;letter-spacing:0.05em}\r\n  .summary-body{padding:1.1rem 1.4rem}\r\n  .summary-config{background:var(--sand);border-radius:10px;padding:0.7rem 1rem;margin-bottom:0.8rem;font-size:0.8rem}\r\n  .summary-config-row{display:flex;justify-content:space-between;align-items:center;padding:0.15rem 0}\r\n  .summary-row{display:flex;justify-content:space-between;align-items:flex-start;font-size:0.8rem;padding:0.4rem 0;border-bottom:1px dashed var(--border);gap:0.5rem}\r\n  .summary-row:last-of-type{border-bottom:none}\r\n  .summary-row-name{color:var(--text-muted);flex:1;line-height:1.4}\r\n  .summary-row-val{font-weight:500;white-space:nowrap}\r\n  .summary-empty{text-align:center;color:var(--text-muted);font-size:0.8rem;padding:1.2rem 0;font-style:italic}\r\n  .total-block{background:linear-gradient(135deg,var(--ocean) 0%,#1e4d5e 100%);border-radius:12px;padding:1.1rem;margin-top:0.8rem;color:var(--white);text-align:center}\r\n  .total-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;opacity:0.75;margin-bottom:0.25rem}\r\n  .total-amount{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;letter-spacing:0.04em;line-height:1}\r\n  .total-ppp{font-size:0.73rem;opacity:0.7;margin-top:0.25rem}\r\n  .btn-contact{display:flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;margin-top:0.8rem;padding:0.8rem;background:var(--coral);color:var(--white);border:none;border-radius:12px;font-family:'DM Sans',sans-serif;font-size:0.83rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;transition:background 0.2s,transform 0.1s}\r\n  .btn-contact:hover:not(:disabled){background:#b5552e;transform:translateY(-1px)}\r\n  .btn-contact:disabled{opacity:0.65;cursor:not-allowed;transform:none}\r\n  .note-text{font-size:0.7rem;color:var(--text-muted);text-align:center;margin-top:0.6rem;line-height:1.5}\r\n  .hidden{display:none!important}\r\n  .btn-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,0.35);border-top-color:#fff;border-radius:50%;animation:spin 0.7s linear infinite;flex-shrink:0;display:inline-block}\r\n  @keyframes spin{to{transform:rotate(360deg)}}\r\n  .overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(28,43,48,0.6);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity 0.25s ease}\r\n  .overlay.visible{opacity:1;pointer-events:all}\r\n  .cf-card{background:var(--white);border-radius:20px;box-shadow:0 24px 60px rgba(28,43,48,0.25);max-width:400px;width:100%;overflow:hidden;transform:translateY(20px) scale(0.97);opacity:0;transition:transform 0.32s cubic-bezier(0.34,1.45,0.64,1),opacity 0.25s ease}\r\n  .overlay.visible .cf-card{transform:translateY(0) scale(1);opacity:1}\r\n  .cf-header{background:linear-gradient(135deg,var(--ocean) 0%,#1e4d5e 100%);padding:1.3rem 1.5rem 1.1rem;color:var(--white)}\r\n  .cf-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.2rem}\r\n  .cf-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;letter-spacing:0.04em}\r\n  .cf-close-x{background:none;border:none;color:rgba(255,255,255,0.55);font-size:1.25rem;cursor:pointer;padding:2px 5px;border-radius:6px;line-height:1;transition:color 0.15s}\r\n  .cf-close-x:hover{color:#fff}\r\n  .cf-subtitle{font-size:0.72rem;opacity:0.7;letter-spacing:0.04em}\r\n  .cf-body{padding:1.3rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:0.85rem}\r\n  .cf-mini-summary{background:var(--sand);border-radius:10px;padding:0.6rem 1rem;display:flex;justify-content:space-between;align-items:center;font-size:0.78rem;margin-bottom:0.1rem}\r\n  .cf-mini-label{color:var(--text-muted)}\r\n  .cf-mini-total{font-weight:600;color:var(--ocean);font-size:0.92rem}\r\n  .cf-field{display:flex;flex-direction:column;gap:0.25rem}\r\n  .cf-label{font-size:0.7rem;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted)}\r\n  .cf-input{padding:0.55rem 0.85rem;border:1.5px solid var(--border);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:0.88rem;color:var(--text);background:var(--cream);outline:none;width:100%;transition:border-color 0.2s,box-shadow 0.2s}\r\n  .cf-input:focus{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(45,106,127,0.1)}\r\n  .cf-input.invalid{border-color:var(--coral)!important;box-shadow:0 0 0 3px rgba(199,98,58,0.1)!important}\r\n  .cf-err{font-size:0.68rem;color:var(--coral);display:none;margin-top:1px}\r\n  .cf-err.show{display:block}\r\n  .cf-actions{display:flex;gap:0.6rem;margin-top:0.2rem}\r\n  .cf-btn-cancel{flex:1;padding:0.7rem;border-radius:10px;border:1.5px solid var(--border);background:var(--white);font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all 0.15s}\r\n  .cf-btn-cancel:hover{border-color:var(--text-muted);color:var(--text)}\r\n  .cf-btn-send{flex:2;padding:0.7rem;border-radius:10px;border:none;background:var(--coral);color:var(--white);font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:500;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.4rem;transition:background 0.2s,transform 0.1s}\r\n  .cf-btn-send:hover:not(:disabled){background:#b5552e;transform:translateY(-1px)}\r\n  .cf-btn-send:disabled{opacity:0.6;cursor:not-allowed;transform:none}\r\n  .result-card{background:var(--white);border-radius:20px;box-shadow:0 24px 60px rgba(28,43,48,0.25);padding:2.2rem 1.8rem 1.8rem;max-width:420px;width:100%;text-align:center;transform:translateY(20px) scale(0.97);opacity:0;transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1),opacity 0.3s ease}\r\n  .overlay.visible .result-card{transform:translateY(0) scale(1);opacity:1}\r\n  .result-icon{font-size:2.8rem;margin-bottom:0.8rem;display:block;animation:waveBob 2.5s ease-in-out infinite}\r\n  @keyframes waveBob{0%,100%{transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-6px) rotate(5deg)}}\r\n  .result-title{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:600;color:var(--ocean);margin-bottom:0.6rem;line-height:1.25}\r\n  .result-msg{font-size:0.84rem;color:var(--text-muted);line-height:1.6;margin-bottom:1.2rem}\r\n  .result-chip{background:var(--ocean-pale);border-radius:10px;padding:0.65rem 1rem;margin-bottom:1.2rem;font-size:0.76rem;color:var(--ocean);display:flex;align-items:center;gap:0.5rem;justify-content:center}\r\n  .result-close{background:var(--ocean);color:var(--white);border:none;border-radius:12px;padding:0.75rem 2rem;font-family:'DM Sans',sans-serif;font-size:0.83rem;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:background 0.2s,transform 0.1s}\r\n  .result-close:hover{background:#1e4d5e;transform:translateY(-1px)}\r\n  .result-card.is-error .result-title{color:var(--coral)}\r\n  .result-card.is-error .result-chip{background:var(--coral-pale);color:var(--coral)}\r\n  .result-card.is-error .result-close{background:var(--coral)}\r\n  .result-card.is-error .result-close:hover{background:#b5552e}\r\n  .ppp-highlight { background: var(--gold-pale); border: 1.5px solid var(--gold); border-radius: 12px; padding: 1rem; text-align: center; margin-top: 0.5rem; }\r\n  .ppp-highlight .ppp-amount { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 600; color: var(--gold); }\r\n  .ppp-highlight .ppp-label { font-size: 0.72rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 0.15rem; }\r\n  @media(max-width:768px){\r\n    .container{grid-template-columns:1fr}.summary{position:static}\r\n    .pkg-grid{grid-template-columns:1fr}.date-row{flex-wrap:wrap}\r\n    .date-field{min-width:calc(50% - 1.5rem)}.date-arrow{display:none}\r\n    .guide-row{flex-direction:column;gap:0.6rem}\r\n  }\r\n  @keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"overlay\" id=\"cf-overlay\"><div class=\"cf-card\"><div class=\"cf-header\"><div class=\"cf-header-top\"><span class=\"cf-title\" id=\"cf-title\"><\/span><button class=\"cf-close-x\" onclick=\"closeCF()\">&#10005;<\/button><\/div><div class=\"cf-subtitle\" id=\"cf-subtitle\"><\/div><\/div><div class=\"cf-body\"><div class=\"cf-mini-summary\"><span class=\"cf-mini-label\" id=\"cf-mini-label\"><\/span><span class=\"cf-mini-total\" id=\"cf-mini-total\"><\/span><\/div><div class=\"cf-field\"><label class=\"cf-label\" id=\"cf-label-name\"><\/label><input class=\"cf-input\" type=\"text\" id=\"cf-name\" autocomplete=\"name\" placeholder=\"Ej. Mar\u00eda Garc\u00eda\"><span class=\"cf-err\" id=\"cf-err-name\"><\/span><\/div><div class=\"cf-field\"><label class=\"cf-label\" id=\"cf-label-email\"><\/label><input class=\"cf-input\" type=\"email\" id=\"cf-email\" autocomplete=\"email\" placeholder=\"correo@ejemplo.com\"><span class=\"cf-err\" id=\"cf-err-email\"><\/span><\/div><div class=\"cf-field\"><label class=\"cf-label\" id=\"cf-label-phone\"><\/label><input class=\"cf-input\" type=\"tel\" id=\"cf-phone\" autocomplete=\"tel\" placeholder=\"+52 958 000 0000\"><span class=\"cf-err\" id=\"cf-err-phone\"><\/span><\/div><div class=\"cf-actions\"><button class=\"cf-btn-cancel\" id=\"cf-btn-cancel\" onclick=\"closeCF()\"><\/button><button class=\"cf-btn-send\" id=\"cf-btn-send\" onclick=\"confirmAndSend()\"><span id=\"cf-btn-label\"><\/span><\/button><\/div><\/div><\/div><\/div>\r\n<div class=\"overlay\" id=\"result-overlay\"><div class=\"result-card\" id=\"result-card\"><span class=\"result-icon\" id=\"result-icon\"><\/span><div class=\"result-title\" id=\"result-title\"><\/div><p class=\"result-msg\" id=\"result-msg\"><\/p><div class=\"result-chip\"><span>&#128242;<\/span><span id=\"result-chip-text\"><\/span><\/div><button class=\"result-close\" id=\"result-close-btn\" onclick=\"closeResult()\"><\/button><\/div><\/div>\r\n<header><div class=\"header-inner\"><div class=\"logo\">Casa <span>Majeva<\/span><\/div><div class=\"toggle-group\"><button class=\"toggle-btn active\" onclick=\"setLang('es')\" id=\"btn-es\">\ud83c\uddf2\ud83c\uddfd ES<\/button><button class=\"toggle-btn\" onclick=\"setLang('en')\" id=\"btn-en\">\ud83c\uddfa\ud83c\uddf8 EN<\/button><\/div><\/div><\/header>\r\n<div class=\"hero\"><h1 id=\"hero-title\">Cotizador de Estad\u00eda 2026<\/h1><p>Oaxaca \u00b7 Istmo de Tehuantepec \u00b7 Surf & Adventure<\/p><\/div>\r\n<div class=\"container\"><div class=\"left-col\">\r\n<!-- PKG SELECTOR -->\r\n<div class=\"section\" id=\"sec-package\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83d\udce6<\/div><div><div class=\"section-title\" id=\"t-pkg-title\">Selecciona tu paquete<\/div><\/div><\/div><div class=\"section-body\"><div class=\"pkg-grid\"><div class=\"pkg-card active\" onclick=\"setPkg('allinclusive')\" id=\"pkg-allinclusive\"><span class=\"pkg-emoji\">\ud83c\udfc4\u200d\u2642\ufe0f<\/span><div class=\"pkg-name\" id=\"t-pkg1-name\">Todo Incluido<\/div><div class=\"pkg-desc\" id=\"t-pkg1-desc\">Habitaci\u00f3n, alimentos, 4x4 y gu\u00eda incluidos<\/div><span class=\"pkg-badge badge-popular\" id=\"t-pkg1-badge\">Popular<\/span><\/div><div class=\"pkg-card\" onclick=\"setPkg('room_surf')\" id=\"pkg-room_surf\"><span class=\"pkg-emoji\">\ud83c\udfe0<\/span><div class=\"pkg-name\" id=\"t-pkg2-name\">Hospedaje + Surf<\/div><div class=\"pkg-desc\" id=\"t-pkg2-desc\">Habitaci\u00f3n y traslados a spots de surf<\/div><\/div><div class=\"pkg-card\" onclick=\"setPkg('custom')\" id=\"pkg-custom\"><span class=\"pkg-emoji\">\u2699\ufe0f<\/span><div class=\"pkg-name\" id=\"t-pkg3-name\">Personalizar<\/div><div class=\"pkg-desc\" id=\"t-pkg3-desc\">Arma tu paquete a la medida<\/div><span class=\"pkg-badge badge-flex\" id=\"t-pkg3-badge\">Flexible<\/span><\/div><\/div><\/div><\/div>\r\n<!-- CONFIG -->\r\n<div class=\"section\" id=\"sec-config\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83d\udcc5<\/div><div><div class=\"section-title\" id=\"t-config-title\">Fechas y hu\u00e9spedes<\/div><\/div><\/div><div class=\"section-body\"><div><label class=\"form-label\" id=\"t-persons-label\">N\u00famero de personas<\/label><div class=\"select-wrap\" style=\"max-width:220px\"><select id=\"persons\" onchange=\"recalculate()\"><option value=\"1\" id=\"opt1\">1 persona<\/option><option value=\"2\" id=\"opt2\" selected>2 personas<\/option><option value=\"3\" id=\"opt3\">3 personas<\/option><option value=\"4\" id=\"opt4\">4 personas<\/option><\/select><\/div><\/div><div class=\"date-row\"><div class=\"date-field\"><label class=\"form-label\" id=\"t-arrival-label\">Fecha de llegada<\/label><input type=\"date\" class=\"date-input\" id=\"date-arrival\" onchange=\"onDateChange()\" onclick=\"this.showPicker&&this.showPicker()\" onkeydown=\"event.preventDefault()\"><\/div><div class=\"date-arrow\">\u2192<\/div><div class=\"date-field\"><label class=\"form-label\" id=\"t-departure-label\">Fecha de salida<\/label><input type=\"date\" class=\"date-input\" id=\"date-departure\" onchange=\"onDateChange()\" onclick=\"this.showPicker&&this.showPicker()\" onkeydown=\"event.preventDefault()\"><\/div><div style=\"display:flex;align-items:flex-end\"><div class=\"nights-badge\" id=\"nights-badge\">\ud83c\udf19 3 noches<\/div><\/div><\/div><\/div><\/div>\r\n<!-- ALL INCLUSIVE -->\r\n<div class=\"section\" id=\"sec-allinclusive\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\u2728<\/div><div><div class=\"section-title\" id=\"t-ai-title\">Tu paquete incluye<\/div><div class=\"section-subtitle\" id=\"t-ai-sub\">Todo lo que necesitas<\/div><\/div><\/div><div class=\"section-body\"><div class=\"includes-bar\" id=\"ai-chips\"><\/div><div class=\"item\"><div style=\"flex:1\"><div class=\"item-name\" id=\"t-ai-room\">\ud83d\udecf\ufe0f Suite Casa Majeva<\/div><div class=\"item-desc\" id=\"t-ai-room-desc\">2 camas matrimoniales + 2 individuales \u00b7 Cocina \u00b7 Refrigerador \u00b7 A\/C \u00b7 Agua, hielos, caf\u00e9 y mezcal 750ml<\/div><\/div><\/div><div class=\"item\"><div style=\"flex:1\"><div class=\"item-name\" id=\"t-ai-food\">\ud83c\udf7d\ufe0f Alimentos completos<\/div><div class=\"item-desc\" id=\"t-ai-food-desc\">3 comidas diarias con prote\u00edna, sopa, 2 guarniciones \u00b7 1L agua\/persona\/d\u00eda<\/div><\/div><\/div><div class=\"item\"><div style=\"flex:1\"><div class=\"item-name\" id=\"t-ai-truck\">\ud83d\ude99 Pick-up 4x4<\/div><div class=\"item-desc\" id=\"t-ai-truck-desc\">Combustible lleno \u00b7 Kit de sombra, sillas y hielera<\/div><\/div><\/div><div class=\"item\"><div style=\"flex:1\"><div class=\"item-name\" id=\"t-ai-guide\">\ud83e\udded Gu\u00eda dedicado<\/div><div class=\"item-desc\" id=\"t-ai-guide-desc\">5AM a 8PM para puntas de surf y \u00e1reas recreativas \u00b7 Por persona<\/div><\/div><\/div><div class=\"ppp-highlight\"><div class=\"ppp-amount\" id=\"ai-ppp-amount\">\u2014<\/div><div class=\"ppp-label\" id=\"t-ai-ppp-label\">por persona \/ por noche<\/div><\/div><\/div><\/div>\r\n<!-- ROOM -->\r\n<div class=\"section hidden\" id=\"sec-room\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83d\udecf\ufe0f<\/div><div><div class=\"section-title\" id=\"t-room-title\">Habitaci\u00f3n<\/div><\/div><\/div><div class=\"section-body\"><div class=\"item\"><div style=\"flex:1\"><div class=\"item-name\" id=\"t-room-name\">Suite Casa Majeva<\/div><div class=\"item-desc\" id=\"t-room-desc\">2 camas matrimoniales + 2 individuales \u00b7 Cocina \u00b7 Refrigerador \u00b7 A\/C \u00b7 Agua, hielos, caf\u00e9 y mezcal 750ml \u00b7 M\u00e1x. 4 personas<\/div><div class=\"info-chip\" id=\"t-room-chip\">\u2713 Incluido autom\u00e1ticamente<\/div><\/div><div style=\"text-align:right;flex-shrink:0\"><div class=\"item-price\" id=\"room-price\">\u2014<\/div><div class=\"item-unit\" id=\"t-room-unit\">por noche<\/div><\/div><\/div><\/div><\/div>\r\n<!-- SERVICES (custom) -->\r\n<!-- PICKUP (room_surf only) -->\r\n<div class=\"section hidden\" id=\"sec-pickup\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83d\ude99<\/div><div><div class=\"section-title\" id=\"t-pickup-title\">Pick-up 4x4<\/div><div class=\"section-subtitle\" id=\"t-pickup-sub\">Requerido para servicio de gu\u00eda<\/div><\/div><\/div><div class=\"section-body\"><label class=\"check-item\"><input type=\"checkbox\" id=\"pickup-rs\" onchange=\"onPickupChange()\"><div style=\"flex:1\"><div class=\"check-name\" id=\"t-pickup-name\">Pick-up 4x4 todo el d\u00eda<\/div><div class=\"check-desc\" id=\"t-pickup-desc\">Gasolina llena + Kit de sombra, sillas y hielera<\/div><\/div><div style=\"text-align:right;flex-shrink:0\"><div class=\"check-price\" id=\"pickup-rs-price\">\u2014<\/div><div class=\"check-unit\" id=\"t-pickup-unit\">por d\u00eda<\/div><\/div><\/label><\/div><\/div>\r\n<!-- SERVICES (custom only) -->\r\n<div class=\"section hidden\" id=\"sec-services\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83c\udf7d\ufe0f<\/div><div><div class=\"section-title\" id=\"t-svc-title\">Servicios adicionales<\/div><\/div><\/div><div class=\"section-body\"><label class=\"check-item\"><input type=\"checkbox\" id=\"food\" onchange=\"recalculate()\"><div style=\"flex:1\"><div class=\"check-name\" id=\"t-food-name\">Alimentos<\/div><div class=\"check-desc\" id=\"t-food-desc\">3 comidas diarias con prote\u00edna, sopa y 2 guarniciones \u00b7 1L agua\/persona\/d\u00eda<\/div><\/div><div style=\"text-align:right;flex-shrink:0\"><div class=\"check-price\" id=\"food-price\">\u2014<\/div><div class=\"check-unit\" id=\"t-food-unit\">por d\u00eda<\/div><\/div><\/label><label class=\"check-item\"><input type=\"checkbox\" id=\"truck\" onchange=\"onPickupChange()\"><div style=\"flex:1\"><div class=\"check-name\" id=\"t-truck-name\">Pick-up 4x4 todo el d\u00eda<\/div><div class=\"check-desc\" id=\"t-truck-desc\">Gasolina llena + Kit de sombra, sillas y hielera<\/div><\/div><div style=\"text-align:right;flex-shrink:0\"><div class=\"check-price\" id=\"truck-price\">\u2014<\/div><div class=\"check-unit\" id=\"t-truck-unit\">por d\u00eda<\/div><\/div><\/label><label class=\"check-item\"><input type=\"checkbox\" id=\"board-check\" onchange=\"onBoardCheck()\"><div style=\"flex:1\"><div class=\"check-name\" id=\"t-board-name\">Renta de tablas de surf<\/div><div class=\"check-desc\" id=\"t-board-desc\">US$ 25 por tabla \/ d\u00eda \u00b7 Varios tama\u00f1os disponibles<\/div><\/div><\/label><\/div><\/div>\r\n<!-- GUIDE -->\r\n<div class=\"section hidden\" id=\"sec-guide\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83e\udded<\/div><div><div class=\"section-title\" id=\"t-guide-title\">Servicio de gu\u00eda<\/div><div class=\"section-subtitle\" id=\"t-guide-sub\">5AM \u2013 8PM \u00b7 Puntas de surf y \u00e1reas recreativas<\/div><\/div><\/div><div class=\"section-body\"><div class=\"guide-row\"><div class=\"guide-field\"><label class=\"form-label\" id=\"t-guide-persons-label\">\u00bfCu\u00e1ntas personas requieren gu\u00eda?<\/label><div class=\"select-wrap\"><select id=\"guide-persons\" class=\"small-select\" onchange=\"recalculate()\"><\/select><\/div><\/div><div class=\"guide-field\"><label class=\"form-label\" id=\"t-guide-days-label\">\u00bfCu\u00e1ntos d\u00edas?<\/label><div class=\"select-wrap\"><select id=\"guide-days\" class=\"small-select\" onchange=\"recalculate()\"><\/select><\/div><\/div><div style=\"flex-shrink:0;text-align:right;padding-bottom:0.1rem\"><div class=\"check-price\" id=\"guide-price-display\">\u2014<\/div><div class=\"check-unit\" id=\"t-guide-price-unit\">por persona\/d\u00eda<\/div><\/div><\/div><\/div><\/div>\r\n<!-- BOARD RENTAL -->\r\n<div class=\"section hidden\" id=\"sec-board\"><div class=\"section-header\"><div class=\"section-icon icon-ocean\">\ud83c\udfc4<\/div><div><div class=\"section-title\" id=\"t-board-title\">Renta de tablas de surf<\/div><div class=\"section-subtitle\" id=\"t-board-sub\">US$ 25 por tabla \/ d\u00eda<\/div><\/div><\/div><div class=\"section-body\"><div class=\"surf-hint\" id=\"board-hint\">Selecciona cu\u00e1ntas tablas necesitas cada d\u00eda.<\/div><div id=\"board-days-container\"><\/div><div style=\"display:flex;justify-content:flex-end;margin-top:0.6rem\"><div class=\"check-price\" id=\"board-total-display\">\u2014<\/div><\/div><\/div><\/div>\r\n<!-- SURF DAYS -->\r\n<div class=\"section hidden\" id=\"sec-surf\"><div class=\"section-header\"><div class=\"section-icon icon-coral\">\ud83c\udf0a<\/div><div><div class=\"section-title\" id=\"t-surf-title\">Traslado a puntos de surf<\/div><div class=\"section-subtitle\" id=\"t-surf-sub\">Veh\u00edculo, sombra, sillas, hielera, tablas y gu\u00eda<\/div><\/div><\/div><div class=\"section-body\"><div class=\"surf-hint\" id=\"surf-hint\">Selecciona la playa para cada d\u00eda. Elige <em>Sin traslado<\/em> los d\u00edas de descanso.<\/div><div id=\"surf-days-container\"><\/div><\/div><\/div>\r\n<!-- TRANSPORT -->\r\n<div class=\"section\" id=\"sec-transport\"><div class=\"section-header\"><div class=\"section-icon icon-gold\">\u2708\ufe0f<\/div><div><div class=\"section-title\" id=\"t-trans-title\">Transporte aeropuerto<\/div><div class=\"section-subtitle\" id=\"t-trans-sub\">Aeropuerto Huatulco \u2014 Casa Majeva<\/div><\/div><\/div><div class=\"section-body\"><div class=\"transport-option\" onclick=\"selectTransport('car')\" id=\"tr-car\"><div><div class=\"to-name\" id=\"t-car-name\">\ud83d\ude97 Auto (1\u20134 personas + tablas)<\/div><div class=\"to-desc\" id=\"t-car-desc\">Huatulco \u2014 Casa Majeva<\/div><\/div><div><div class=\"to-price\" id=\"tr-car-price\">\u2014<\/div><div class=\"check-unit\" id=\"t-car-unit\">viaje redondo<\/div><\/div><\/div><label class=\"transport-none-label\"><input type=\"radio\" name=\"transport\" id=\"tr-none-radio\" onchange=\"selectTransport('none')\" checked><span id=\"t-trans-none\">Sin transporte aeropuerto<\/span><\/label><\/div><\/div>\r\n<\/div>\r\n<!-- SUMMARY -->\r\n<div class=\"summary\"><div class=\"summary-card\"><div class=\"summary-header\"><span>\ud83e\uddfe<\/span><h2 id=\"t-quote-title\">Tu cotizaci\u00f3n<\/h2><\/div><div class=\"summary-body\"><div class=\"summary-config\"><div class=\"summary-config-row\"><span id=\"t-sum-pkg-key\">Paquete<\/span><span style=\"font-weight:600\" id=\"sum-pkg-label\">Todo Incluido<\/span><\/div><div class=\"summary-config-row\"><span id=\"t-sum-dates-key\">Fechas<\/span><span style=\"font-weight:600\" id=\"sum-dates-label\">\u2014<\/span><\/div><div class=\"summary-config-row\"><span id=\"t-sum-config-key\">Noches \u00b7 Personas<\/span><span style=\"font-weight:600\" id=\"sum-config-label\">3 noches \u00b7 2 personas<\/span><\/div><\/div><div id=\"summary-items\"><div class=\"summary-empty\" id=\"summary-empty-msg\"><\/div><\/div><div class=\"total-block\"><div class=\"total-label\" id=\"t-total-label\">Total estimado<\/div><div class=\"total-amount\" id=\"total-display\">\u2014<\/div><div class=\"total-ppp\" id=\"ppp-display\"><\/div><\/div><button class=\"btn-contact\" onclick=\"openCF()\"><span id=\"btn-contact-label\">\ud83d\udce9 Solicitar reservaci\u00f3n<\/span><\/button><p class=\"note-text\" id=\"note-currency\"><\/p><\/div><\/div><\/div>\r\n<\/div>\r\n<script>\r\nconst PRICES={USD:{allinclusive_pp:{1:300,2:170,3:150,4:140},room:{1:110,2:110,3:125,4:140},food:{1:52.5,2:105,3:157.5,4:210},guide_pp:30,truck:95,board:25,surf:{conejo:30,chivo:42,chipehua:52,bamba:62,sandiego:75},transport:165}};\r\nconst I18N={\r\nes:{'hero-title':'Cotizador de Estad\u00eda 2026','t-pkg-title':'Selecciona tu paquete','t-pkg1-name':'Todo Incluido','t-pkg1-desc':'Habitaci\u00f3n, alimentos, 4x4 y gu\u00eda incluidos','t-pkg1-badge':'Popular','t-pkg2-name':'Hospedaje + Surf','t-pkg2-desc':'Habitaci\u00f3n y traslados a spots de surf','t-pkg3-name':'Personalizar','t-pkg3-desc':'Arma tu paquete a la medida','t-pkg3-badge':'Flexible','t-config-title':'Fechas y hu\u00e9spedes','t-persons-label':'N\u00famero de personas','opt1':'1 persona','opt2':'2 personas','opt3':'3 personas','opt4':'4 personas','t-arrival-label':'Fecha de llegada','t-departure-label':'Fecha de salida','t-ai-title':'Tu paquete incluye','t-ai-sub':'Todo lo que necesitas','t-ai-room':'\ud83d\udecf\ufe0f Suite Casa Majeva','t-ai-room-desc':'2 camas matrimoniales + 2 individuales \u00b7 Cocina \u00b7 Refrigerador \u00b7 A\/C \u00b7 Agua, hielos, caf\u00e9 y mezcal 750ml','t-ai-food':'\ud83c\udf7d\ufe0f Alimentos completos','t-ai-food-desc':'3 comidas diarias con prote\u00edna, sopa, 2 guarniciones \u00b7 1L agua\/persona\/d\u00eda','t-ai-truck':'\ud83d\ude99 Pick-up 4x4','t-ai-truck-desc':'Combustible lleno \u00b7 Kit de sombra, sillas y hielera','t-ai-guide':'\ud83e\udded Gu\u00eda dedicado','t-ai-guide-desc':'5AM a 8PM para puntas de surf y \u00e1reas recreativas \u00b7 Por persona','t-ai-ppp-label':'por persona \/ por noche',ai_chips:['Habitaci\u00f3n','Alimentos','4x4','Gu\u00eda','Agua','Caf\u00e9','Mezcal'],'t-room-title':'Habitaci\u00f3n','t-room-name':'Suite Casa Majeva','t-room-desc':'2 camas matrimoniales + 2 individuales \u00b7 Cocina \u00b7 Refrigerador \u00b7 A\/C \u00b7 Agua, hielos, caf\u00e9 y mezcal 750ml \u00b7 M\u00e1x. 4 personas','t-room-chip':'\u2713 Incluido','t-room-unit':'por noche','t-svc-title':'Servicios adicionales','t-food-name':'Alimentos','t-food-desc':'3 comidas diarias con prote\u00edna, sopa y 2 guarniciones \u00b7 1L agua\/persona\/d\u00eda','t-food-unit':'por d\u00eda','t-truck-name':'Pick-up 4x4 todo el d\u00eda','t-truck-desc':'Gasolina llena + Kit de sombra, sillas y hielera','t-truck-unit':'por d\u00eda','t-board-name':'Renta de tabla de surf','t-board-desc':'Tablas en varios tama\u00f1os disponibles','t-board-unit':'por d\u00eda','t-board-title':'Renta de tablas de surf','t-board-sub':'US$ 25 por tabla \/ d\u00eda','board-hint':'Selecciona cu\u00e1ntas tablas necesitas cada d\u00eda.','t-guide-title':'Servicio de gu\u00eda','t-guide-sub':'5AM \u2013 8PM \u00b7 Puntas de surf y \u00e1reas recreativas','t-guide-persons-label':'\u00bfCu\u00e1ntas personas requieren gu\u00eda?','t-guide-days-label':'\u00bfCu\u00e1ntos d\u00edas?','gp0':'Sin gu\u00eda','gp1':'1 persona','gp2':'2 personas','gp3':'3 personas','gp4':'4 personas','t-guide-price-unit':'por persona\/d\u00eda','t-pickup-title':'Pick-up 4x4','t-pickup-sub':'Requerido para servicio de gu\u00eda','t-pickup-name':'Pick-up 4x4 todo el d\u00eda','t-pickup-desc':'Gasolina llena + Kit de sombra, sillas y hielera','t-pickup-unit':'por d\u00eda','t-surf-title':'Traslado a puntos de surf','t-surf-sub':'Veh\u00edculo, sombra, sillas, hielera, tablas y gu\u00eda','surf-hint':'Selecciona la playa para cada d\u00eda de gu\u00eda. Elige <em>Sin traslado<\/em> los d\u00edas de descanso.','surf-none':'Sin traslado','t-trans-title':'Transporte aeropuerto','t-trans-sub':'Aeropuerto Huatulco \u2014 Casa Majeva','t-car-name':'\ud83d\ude97 Auto (1\u20134 personas + tablas)','t-car-desc':'Huatulco \u2014 Casa Majeva','t-car-unit':'viaje redondo','t-trans-none':'Sin transporte aeropuerto','t-quote-title':'Tu cotizaci\u00f3n','t-sum-pkg-key':'Paquete','t-sum-dates-key':'Fechas','t-sum-config-key':'Noches \u00b7 Personas','t-total-label':'Total estimado','btn-contact':'\ud83d\udce9 Solicitar reservaci\u00f3n',day:i=>'D\u00eda '+i,guide_days_opt:(i,mx)=>i===mx?i+' (todos)':i+' d\u00eda'+(i!==1?'s':''),nights_config:(n,p)=>n+' noche'+(n!==1?'s':'')+' \u00b7 '+p+' persona'+(p>1?'s':''),nights_badge:n=>'\ud83c\udf19 '+n+' noche'+(n!==1?'s':''),ppp:v=>v+' por persona',note:'Precios en USD. Tarifa 2026. Sujeto a disponibilidad.',no_dates:'Selecciona fechas',pkg_labels:{allinclusive:'Todo Incluido',room_surf:'Hospedaje + Surf',custom:'Personalizado'},ai_line:(n,p)=>'Todo Incluido \u00d7 '+n+' noches \u00d7 '+p+'p',room_line:n=>'Habitaci\u00f3n \u00d7 '+n+' noches',food_line:n=>'Alimentos \u00d7 '+n+' d\u00edas',guide_line:(p,d)=>'Gu\u00eda \u00d7 '+p+'p \u00d7 '+d+'d',truck_line:n=>'4x4 \u00d7 '+n+' d\u00edas',board_line:(q,d)=>q+' tabla'+(q!==1?'s':'')+' \u00d7 '+d+' d\u00eda'+(d!==1?'s':''),board_total_line:'Renta tablas surf',surf_total:'Traslados surf',trans_line:'Transporte aero (RT)',empty:'Configura tu viaje para ver el desglose',btn_sending:'Enviando\u2026',cf_title:'Un paso m\u00e1s\u2026',cf_subtitle:'D\u00e9janos tus datos y te contactamos',cf_mini_label:'Total estimado',cf_label_name:'Nombre completo',cf_label_email:'Correo electr\u00f3nico',cf_label_phone:'Tel\u00e9fono \/ WhatsApp',cf_err_name:'Ingresa tu nombre completo',cf_err_email:'Ingresa un correo v\u00e1lido',cf_err_phone:'Ingresa un n\u00famero de tel\u00e9fono',cf_cancel:'Cancelar',cf_send:'Confirmar y enviar \ud83d\udce9',success_icon:'\ud83c\udf0a',success_title:'\u00a1Tu solicitud est\u00e1 en camino!',success_msg:'Hemos recibido tu cotizaci\u00f3n. Un agente revisar\u00e1 tu solicitud y te contactar\u00e1 para confirmar disponibilidad. \u00a1Nos vemos en el agua! \ud83e\udd19',success_chip:'Respuesta habitual: menos de 24 horas',error_icon:'\ud83d\ude15',error_title:'Algo sali\u00f3 mal',error_msg:'No pudimos enviar tu solicitud. Intenta de nuevo o cont\u00e1ctanos por WhatsApp.',error_chip:'Error de conexi\u00f3n',result_close:'Entendido'},\r\nen:{'hero-title':'Stay Quoter 2026','t-pkg-title':'Choose your package','t-pkg1-name':'All Inclusive','t-pkg1-desc':'Room, meals, 4x4 & guide included','t-pkg1-badge':'Popular','t-pkg2-name':'Room + Surf','t-pkg2-desc':'Room and surf spot transfers','t-pkg3-name':'Customize','t-pkg3-desc':'Build your own package','t-pkg3-badge':'Flexible','t-config-title':'Dates & Guests','t-persons-label':'Number of guests','opt1':'1 person','opt2':'2 persons','opt3':'3 persons','opt4':'4 persons','t-arrival-label':'Arrival date','t-departure-label':'Departure date','t-ai-title':'Your package includes','t-ai-sub':'Everything you need','t-ai-room':'\ud83d\udecf\ufe0f Casa Majeva Suite','t-ai-room-desc':'2 double + 2 single beds \u00b7 Kitchen \u00b7 Fridge \u00b7 A\/C \u00b7 Water, ice, coffee & 750ml mezcal','t-ai-food':'\ud83c\udf7d\ufe0f Full meals','t-ai-food-desc':'3 daily meals with protein, soup, 2 sides \u00b7 1L water\/person\/day','t-ai-truck':'\ud83d\ude99 4x4 Pick-up','t-ai-truck-desc':'Full gas tank \u00b7 Shade kit, chairs & cooler','t-ai-guide':'\ud83e\udded Dedicated guide','t-ai-guide-desc':'5AM\u20138PM for surf spots & recreation \u00b7 Per person','t-ai-ppp-label':'per person \/ per night',ai_chips:['Room','Meals','4x4','Guide','Water','Coffee','Mezcal'],'t-room-title':'Room','t-room-name':'Casa Majeva Suite','t-room-desc':'2 double + 2 single beds \u00b7 Kitchen \u00b7 Fridge \u00b7 A\/C \u00b7 Water, ice, coffee & 750ml mezcal \u00b7 Max 4','t-room-chip':'\u2713 Included','t-room-unit':'per night','t-svc-title':'Additional Services','t-food-name':'Meals','t-food-desc':'3 daily meals with protein, soup & 2 sides \u00b7 1L water\/person\/day','t-food-unit':'per day','t-truck-name':'4x4 pick-up full day','t-truck-desc':'Full gas + shade kit, chairs & cooler','t-truck-unit':'per day','t-board-name':'Surfboard rental','t-board-desc':'Various sizes available','t-board-unit':'per day','t-board-title':'Surfboard rental','t-board-sub':'US$ 25 per board \/ day','board-hint':'Select how many boards you need each day.','t-guide-title':'Guide service','t-guide-sub':'5AM \u2013 8PM \u00b7 Surf spots & recreation','t-guide-persons-label':'How many people need a guide?','t-guide-days-label':'How many days?','gp0':'No guide','gp1':'1 person','gp2':'2 persons','gp3':'3 persons','gp4':'4 persons','t-guide-price-unit':'per person\/day','t-pickup-title':'4x4 Pick-up','t-pickup-sub':'Required for guide service','t-pickup-name':'4x4 pick-up full day','t-pickup-desc':'Full gas + shade kit, chairs & cooler','t-pickup-unit':'per day','t-surf-title':'Surf spot transfers','t-surf-sub':'Vehicle, shade, chairs, cooler, boards & guide','surf-hint':'Pick a beach for each guide day. Choose <em>No transfer<\/em> on rest days.','surf-none':'No transfer','t-trans-title':'Airport transfer','t-trans-sub':'Huatulco Airport \u2014 Casa Majeva','t-car-name':'\ud83d\ude97 Car (1\u20134 people + boards)','t-car-desc':'Huatulco \u2014 Casa Majeva','t-car-unit':'round trip','t-trans-none':'No airport transfer','t-quote-title':'Your quote','t-sum-pkg-key':'Package','t-sum-dates-key':'Dates','t-sum-config-key':'Nights \u00b7 Guests','t-total-label':'Estimated total','btn-contact':'\ud83d\udce9 Request reservation',day:i=>'Day '+i,guide_days_opt:(i,mx)=>i===mx?i+' (all)':i+' day'+(i!==1?'s':''),nights_config:(n,p)=>n+' night'+(n!==1?'s':'')+' \u00b7 '+p+' guest'+(p>1?'s':''),nights_badge:n=>'\ud83c\udf19 '+n+' night'+(n!==1?'s':''),ppp:v=>v+' per person',note:'Prices in USD. 2026 rate. Subject to availability.',no_dates:'Select dates',pkg_labels:{allinclusive:'All Inclusive',room_surf:'Room + Surf',custom:'Custom'},ai_line:(n,p)=>'All Inclusive \u00d7 '+n+' nights \u00d7 '+p+'p',room_line:n=>'Room \u00d7 '+n+' nights',food_line:n=>'Meals \u00d7 '+n+' days',guide_line:(p,d)=>'Guide \u00d7 '+p+'p \u00d7 '+d+'d',truck_line:n=>'4x4 \u00d7 '+n+' days',board_line:(q,d)=>q+' board'+(q!==1?'s':'')+' \u00d7 '+d+' day'+(d!==1?'s':''),board_total_line:'Surfboard rental',surf_total:'Surf transfers',trans_line:'Airport transfer (RT)',empty:'Set up your trip to see breakdown',btn_sending:'Sending\u2026',cf_title:'Almost there\u2026',cf_subtitle:'Leave your details so we can reach you',cf_mini_label:'Estimated total',cf_label_name:'Full name',cf_label_email:'Email',cf_label_phone:'Phone \/ WhatsApp',cf_err_name:'Enter your full name',cf_err_email:'Enter a valid email',cf_err_phone:'Enter a phone number',cf_cancel:'Cancel',cf_send:'Confirm & send \ud83d\udce9',success_icon:'\ud83c\udf0a',success_title:'Request sent!',success_msg:\"We've received your quote. An agent will reach out to confirm availability. See you in the water! \ud83e\udd19\",success_chip:'Response time: under 24 hours',error_icon:'\ud83d\ude15',error_title:'Something went wrong',error_msg:'Could not send. Try again or contact us via WhatsApp.',error_chip:'Connection error',result_close:'Got it'}\r\n};\r\nlet lang='es',nights=3,pkg='allinclusive',selectedTransport='none',daySelections={},boardSelections={};\r\nconst P=()=>PRICES.USD, N=()=>parseInt(document.getElementById('persons').value), T=()=>I18N[lang];\r\nfunction fmt(n){if(n==null)return '\u2014';return 'US$ '+n.toLocaleString('es-MX',{minimumFractionDigits:2,maximumFractionDigits:2})}\r\nfunction isoDate(d){return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0')}\r\nfunction fmtDateShort(ds){if(!ds)return '\u2014';const[y,m,d]=ds.split('-');const mo=lang==='es'?['ene','feb','mar','abr','may','jun','jul','ago','sep','oct','nov','dic']:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];return parseInt(d)+' '+mo[parseInt(m)-1]}\r\nfunction initDates(){const today=new Date(),a=new Date(today);a.setDate(today.getDate()+7);const dep=new Date(a);dep.setDate(a.getDate()+3);document.getElementById('date-arrival').value=isoDate(a);document.getElementById('date-departure').value=isoDate(dep);document.getElementById('date-arrival').min=isoDate(today);document.getElementById('date-departure').min=isoDate(today)}\r\nfunction onDateChange(){const a=document.getElementById('date-arrival').value,d=document.getElementById('date-departure').value;if(a)document.getElementById('date-departure').min=a;if(a&&d){const diff=Math.round((new Date(d)-new Date(a))\/864e5);if(diff<1){const nd=new Date(a);nd.setDate(nd.getDate()+1);document.getElementById('date-departure').value=isoDate(nd);nights=1}else nights=diff}document.getElementById('nights-badge').textContent=T().nights_badge(nights);buildGuidePersonsOpts();buildGuideDaysOpts();buildBoardDays();buildSurfDays();recalculate()}\r\nfunction setPkg(p){pkg=p;document.querySelectorAll('.pkg-card').forEach(c=>c.classList.remove('active'));document.getElementById('pkg-'+p).classList.add('active');const show=id=>document.getElementById(id).classList.remove('hidden'),hide=id=>document.getElementById(id).classList.add('hidden');['sec-allinclusive','sec-room','sec-services','sec-pickup','sec-guide','sec-board','sec-surf'].forEach(hide);const bc=document.getElementById('board-check');if(bc)bc.checked=false;if(p==='allinclusive'){show('sec-allinclusive')}else if(p==='room_surf'){show('sec-room');show('sec-pickup');updateGuideVisibility()}else{show('sec-room');show('sec-services');updateBoardVisibility();updateGuideVisibility()}buildGuidePersonsOpts();buildGuideDaysOpts();buildBoardDays();buildSurfDays();recalculate()}\r\nfunction buildGuideDaysOpts(){const sel=document.getElementById('guide-days'),prev=parseInt(sel.value)||nights,t=T();sel.innerHTML='';for(let i=1;i<=nights;i++){const o=document.createElement('option');o.value=i;o.textContent=t.guide_days_opt(i,nights);if(i===Math.min(prev,nights))o.selected=true;sel.appendChild(o)}}\r\nfunction buildGuidePersonsOpts(){const sel=document.getElementById('guide-persons'),prev=parseInt(sel.value)||0,n=N(),t=T();sel.innerHTML='';const labels=lang==='es'?['Sin gu\u00eda','1 persona','2 personas','3 personas','4 personas']:['No guide','1 person','2 persons','3 persons','4 persons'];for(let i=0;i<=n;i++){const o=document.createElement('option');o.value=i;o.textContent=labels[i];if(i===Math.min(prev,n))o.selected=true;sel.appendChild(o)}}\r\nfunction isPickupActive(){if(pkg==='room_surf')return document.getElementById('pickup-rs').checked;if(pkg==='custom')return document.getElementById('truck').checked;return false}\r\nfunction updateGuideVisibility(){if(pkg==='allinclusive')return;const show=id=>document.getElementById(id).classList.remove('hidden'),hide=id=>document.getElementById(id).classList.add('hidden');if(isPickupActive()){show('sec-guide')}else{hide('sec-guide');hide('sec-surf');document.getElementById('guide-persons').value='0'}const gp=parseInt(document.getElementById('guide-persons').value)||0,gd=parseInt(document.getElementById('guide-days').value)||0;if(gp>0&&gd>0){show('sec-surf');buildSurfDays()}else{hide('sec-surf')}}\r\nfunction onPickupChange(){updateGuideVisibility();recalculate()}\r\nfunction onBoardCheck(){updateBoardVisibility();recalculate()}\r\nfunction updateBoardVisibility(){const show=id=>document.getElementById(id).classList.remove('hidden'),hide=id=>document.getElementById(id).classList.add('hidden');const cb=document.getElementById('board-check');if(cb&&cb.checked){show('sec-board');buildBoardDays()}else{hide('sec-board');for(let k in boardSelections)boardSelections[k]=0}}\r\nfunction buildBoardDays(){const c=document.getElementById('board-days-container');c.innerHTML='';const p=P(),n=N(),t=T();Object.keys(boardSelections).forEach(k=>{if(parseInt(k)>nights)delete boardSelections[k]});for(let i=1;i<=nights;i++){if(!(i in boardSelections))boardSelections[i]=0;const row=document.createElement('div');row.className='day-row';const lbl=document.createElement('div');lbl.className='day-label';lbl.textContent=t.day(i);const wrap=document.createElement('div');wrap.className='day-select-wrap';const sel=document.createElement('select');sel.className='day-select';const noLabel=lang==='es'?'Sin tabla':'No board';sel.appendChild(Object.assign(document.createElement('option'),{value:'0',textContent:noLabel,selected:boardSelections[i]===0}));for(let j=1;j<=n;j++){const lb=j===1?(lang==='es'?'1 tabla':'1 board'):(lang==='es'?j+' tablas':j+' boards');sel.appendChild(Object.assign(document.createElement('option'),{value:String(j),textContent:lb,selected:boardSelections[i]===j}))}const di=i;sel.addEventListener('change',e=>{boardSelections[di]=parseInt(e.target.value)||0;updateBoardPrices();updateSummary()});wrap.appendChild(sel);const tag=document.createElement('div');tag.className='day-price-tag';tag.id='board-day-price-'+i;const v=boardSelections[i]*p.board;tag.textContent=v>0?fmt(v):'\u2014';row.appendChild(lbl);row.appendChild(wrap);row.appendChild(tag);c.appendChild(row)}}\r\nfunction updateBoardPrices(){const p=P();let tot=0;for(let i=1;i<=nights;i++){const v=(boardSelections[i]||0)*p.board;tot+=v;const tag=document.getElementById('board-day-price-'+i);if(tag)tag.textContent=v>0?fmt(v):'\u2014'}document.getElementById('board-total-display').textContent=tot>0?(lang==='es'?'Total tablas: ':'Boards total: ')+fmt(tot):'\u2014'}\r\nfunction getBoardTotal(){const p=P();let t=0;for(let i=1;i<=nights;i++)t+=(boardSelections[i]||0)*p.board;return t}\r\nfunction getGuideDays(){return parseInt(document.getElementById('guide-days').value)||0}\r\nfunction buildSurfDays(){const c=document.getElementById('surf-days-container');c.innerHTML='';const p=P(),t=T(),gd=getGuideDays();Object.keys(daySelections).forEach(k=>{if(parseInt(k)>gd)delete daySelections[k]});for(let i=1;i<=gd;i++){if(!(i in daySelections))daySelections[i]='none';const row=document.createElement('div');row.className='day-row';const lbl=document.createElement('div');lbl.className='day-label';lbl.textContent=t.day(i);const wrap=document.createElement('div');wrap.className='day-select-wrap';const sel=document.createElement('select');sel.className='day-select';[{val:'none',label:t['surf-none']},{val:'conejo',label:'\ud83c\udfc4 Conejo'},{val:'chivo',label:'\ud83c\udfc4 Chivo'},{val:'chipehua',label:'\ud83c\udfc4 Chipehua'},{val:'bamba',label:'\ud83c\udfc4 Bamba'},{val:'sandiego',label:'\ud83c\udfc4 San Diego'}].forEach(o=>{const opt=document.createElement('option');opt.value=o.val;opt.textContent=o.label;if(daySelections[i]===o.val)opt.selected=true;sel.appendChild(opt)});const di=i;sel.addEventListener('change',e=>{daySelections[di]=e.target.value;document.getElementById('day-price-'+di).textContent=e.target.value!=='none'?fmt(P().surf[e.target.value]):'\u2014';updateSummary()});wrap.appendChild(sel);const tag=document.createElement('div');tag.className='day-price-tag';tag.id='day-price-'+i;tag.textContent=daySelections[i]!=='none'?fmt(p.surf[daySelections[i]]):'\u2014';row.appendChild(lbl);row.appendChild(wrap);row.appendChild(tag);c.appendChild(row)}}\r\nfunction selectTransport(type){selectedTransport=type;document.getElementById('tr-car').classList.toggle('selected',type==='car');if(type!=='none')document.getElementById('tr-none-radio').checked=false;recalculate()}\r\nfunction updatePriceLabels(){const p=P(),n=N();document.getElementById('ai-ppp-amount').textContent=fmt(p.allinclusive_pp[n]);const rp=document.getElementById('room-price');if(rp)rp.textContent=fmt(p.room[n]);const fp=document.getElementById('food-price');if(fp)fp.textContent=fmt(p.food[n]);const tp=document.getElementById('truck-price');if(tp)tp.textContent=fmt(p.truck);const bp=document.getElementById('board-total-display');updateBoardPrices();document.getElementById('guide-price-display').textContent=fmt(p.guide_pp);document.getElementById('tr-car-price').textContent=fmt(p.transport*2);const prs=document.getElementById('pickup-rs-price');if(prs)prs.textContent=fmt(p.truck);const t=T();document.getElementById('ai-chips').innerHTML=t.ai_chips.map(c=>'<span class=\"inc-chip\">'+c+'<\/span>').join('');const _gd=getGuideDays();for(let i=1;i<=_gd;i++){const tag=document.getElementById('day-price-'+i);if(tag)tag.textContent=(daySelections[i]&&daySelections[i]!=='none')?fmt(p.surf[daySelections[i]]):'\u2014'}}\r\nfunction updateSummary(){const p=P(),n=N(),t=T(),rows=[];let total=0;if(pkg==='allinclusive'){const pp=p.allinclusive_pp[n],sub=pp*n*nights;total+=sub;rows.push({name:t.ai_line(nights,n),val:fmt(sub)})}else{const rt=p.room[n]*nights;total+=rt;rows.push({name:t.room_line(nights),val:fmt(rt)});if(pkg==='custom'){if(document.getElementById('food').checked){const v=p.food[n]*nights;total+=v;rows.push({name:t.food_line(nights),val:fmt(v)})}if(document.getElementById('truck').checked){const v=p.truck*nights;total+=v;rows.push({name:t.truck_line(nights),val:fmt(v)})}}if(pkg==='room_surf'&&document.getElementById('pickup-rs').checked){const v=p.truck*nights;total+=v;rows.push({name:t.truck_line(nights),val:fmt(v)})}const _bt=getBoardTotal();if(_bt>0){total+=_bt;rows.push({name:t.board_total_line,val:fmt(_bt)})}const _pu=isPickupActive(),gp=_pu?(parseInt(document.getElementById('guide-persons').value)||0):0,gd=_pu?(parseInt(document.getElementById('guide-days').value)||0):0;if(gp>0&&gd>0){const v=p.guide_pp*gp*gd;total+=v;rows.push({name:t.guide_line(gp,gd),val:fmt(v)})}let surfT=0;const _sd=gd||0;for(let i=1;i<=_sd;i++){if(daySelections[i]&&daySelections[i]!=='none')surfT+=p.surf[daySelections[i]]}if(surfT>0){total+=surfT;rows.push({name:t.surf_total,val:fmt(surfT)})}}if(selectedTransport==='car'){const v=p.transport*2;total+=v;rows.push({name:t.trans_line,val:fmt(v)})}document.getElementById('summary-items').innerHTML=rows.length?rows.map(r=>'<div class=\"summary-row\"><span class=\"summary-row-name\">'+r.name+'<\/span><span class=\"summary-row-val\">'+r.val+'<\/span><\/div>').join(''):'<div class=\"summary-empty\">'+t.empty+'<\/div>';const arrival=document.getElementById('date-arrival').value,departure=document.getElementById('date-departure').value;document.getElementById('sum-dates-label').textContent=(arrival&&departure)?fmtDateShort(arrival)+' \u2192 '+fmtDateShort(departure):t.no_dates;document.getElementById('sum-pkg-label').textContent=t.pkg_labels[pkg];document.getElementById('total-display').textContent=fmt(total);document.getElementById('ppp-display').textContent=t.ppp(fmt(total\/(n||1)));document.getElementById('sum-config-label').textContent=t.nights_config(nights,n);document.getElementById('note-currency').textContent=t.note}\r\nfunction recalculate(){buildGuidePersonsOpts();buildGuideDaysOpts();buildBoardDays();updateGuideVisibility();updatePriceLabels();updateSummary()}\r\nfunction buildPayload(){const p=P(),n=N(),t=T(),si=lang==='es'?'s\u00ed':'yes',no='no',arrival=document.getElementById('date-arrival').value,departure=document.getElementById('date-departure').value;let total=0;const payload={enviado:new Date().toISOString(),idioma:lang,paquete:pkg==='allinclusive'?(lang==='es'?'Todo Incluido':'All Inclusive'):pkg==='room_surf'?(lang==='es'?'Hospedaje + Surf':'Room + Surf'):(lang==='es'?'Personalizado':'Custom'),llegada:arrival||null,salida:departure||null,noches:nights,personas:n};if(pkg==='allinclusive'){const pp=p.allinclusive_pp[n];total=pp*n*nights;payload.precio_pp_noche=pp;payload.alimentos=si;payload.guia=si;payload.pickup_4x4=si}else{total=p.room[n]*nights;payload.habitacion_noche=p.room[n];if(pkg==='custom'){payload.alimentos=document.getElementById('food').checked?si:no;payload.pickup_4x4=document.getElementById('truck').checked?si:no;if(document.getElementById('food').checked)total+=p.food[n]*nights;if(document.getElementById('truck').checked)total+=p.truck*nights}else{payload.alimentos=no;payload.pickup_4x4=document.getElementById('pickup-rs').checked?si:no;if(document.getElementById('pickup-rs').checked)total+=p.truck*nights}const _pu2=isPickupActive(),gp=_pu2?(parseInt(document.getElementById('guide-persons').value)||0):0,gd=_pu2?(parseInt(document.getElementById('guide-days').value)||0):0;if(gp>0&&gd>0){payload.guia={personas:gp,dias:gd,precio_pp_dia:p.guide_pp};total+=p.guide_pp*gp*gd}else{payload.guia=no}const _boardDays={};let _boardT=0;for(let i=1;i<=nights;i++){const bv=boardSelections[i]||0;if(bv>0){_boardDays['dia_'+i]=bv;_boardT+=bv*p.board}}if(_boardT>0){payload.renta_tabla=_boardDays;total+=_boardT}else{payload.renta_tabla=no}const surfDays={};let surfT=0;for(let i=1;i<=gd;i++){const s=daySelections[i]||'none';if(s!=='none'){surfDays['dia_'+i]=s;surfT+=p.surf[s]}}payload.traslados_surf=Object.keys(surfDays).length?surfDays:no;total+=surfT}if(selectedTransport==='car'){payload.transporte_aeropuerto=si;total+=p.transport*2}else{payload.transporte_aeropuerto=no}payload.total=total;payload.total_formateado=fmt(total);payload.por_persona=fmt(total\/(n||1));return payload}\r\nfunction openCF(){const t=T(),payload=buildPayload();document.getElementById('cf-title').textContent=t.cf_title;document.getElementById('cf-subtitle').textContent=t.cf_subtitle;document.getElementById('cf-mini-label').textContent=t.cf_mini_label;document.getElementById('cf-mini-total').textContent=payload.total_formateado;document.getElementById('cf-label-name').textContent=t.cf_label_name;document.getElementById('cf-label-email').textContent=t.cf_label_email;document.getElementById('cf-label-phone').textContent=t.cf_label_phone;document.getElementById('cf-err-name').textContent=t.cf_err_name;document.getElementById('cf-err-email').textContent=t.cf_err_email;document.getElementById('cf-err-phone').textContent=t.cf_err_phone;document.getElementById('cf-btn-cancel').textContent=t.cf_cancel;document.getElementById('cf-btn-label').textContent=t.cf_send;['cf-name','cf-email','cf-phone'].forEach(id=>document.getElementById(id).classList.remove('invalid'));['cf-err-name','cf-err-email','cf-err-phone'].forEach(id=>document.getElementById(id).classList.remove('show'));document.getElementById('cf-overlay').classList.add('visible');document.body.style.overflow='hidden';setTimeout(()=>document.getElementById('cf-name').focus(),320)}\r\nfunction closeCF(){document.getElementById('cf-overlay').classList.remove('visible');document.body.style.overflow=''}\r\nfunction validateCF(){let ok=true;const name=document.getElementById('cf-name').value.trim(),email=document.getElementById('cf-email').value.trim(),phone=document.getElementById('cf-phone').value.trim(),re=\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;const chk=(inp,err,bad)=>{document.getElementById(inp).classList.toggle('invalid',bad);document.getElementById(err).classList.toggle('show',bad);if(bad)ok=false};chk('cf-name','cf-err-name',name.length<2);chk('cf-email','cf-err-email',!re.test(email));chk('cf-phone','cf-err-phone',phone.length<6);return ok}\r\nasync function confirmAndSend(){if(!validateCF())return;const t=T(),btn=document.getElementById('cf-btn-send'),label=document.getElementById('cf-btn-label');btn.disabled=true;label.innerHTML='<span class=\"btn-spinner\"><\/span> '+t.btn_sending;const contact={nombre:document.getElementById('cf-name').value.trim(),email:document.getElementById('cf-email').value.trim(),telefono:document.getElementById('cf-phone').value.trim()};const payload={contacto:contact,...buildPayload()};try{const res=await fetch('https:\/\/vmi3015988.contaboserver.net\/webhook\/reserva',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(payload)});if(!res.ok)throw new Error('HTTP '+res.status);closeCF();showResult(true)}catch(err){console.error(err);closeCF();showResult(false)}finally{btn.disabled=false;label.textContent=t.cf_send}}\r\nfunction showResult(ok){const t=T(),card=document.getElementById('result-card');card.classList.toggle('is-error',!ok);document.getElementById('result-icon').textContent=ok?t.success_icon:t.error_icon;document.getElementById('result-title').textContent=ok?t.success_title:t.error_title;document.getElementById('result-msg').textContent=ok?t.success_msg:t.error_msg;document.getElementById('result-chip-text').textContent=ok?t.success_chip:t.error_chip;document.getElementById('result-close-btn').textContent=t.result_close;document.getElementById('result-overlay').classList.add('visible');document.body.style.overflow='hidden'}\r\nfunction closeResult(){document.getElementById('result-overlay').classList.remove('visible');document.body.style.overflow=''}\r\ndocument.getElementById('cf-overlay').addEventListener('click',function(e){if(e.target===this)closeCF()});\r\ndocument.getElementById('result-overlay').addEventListener('click',function(e){if(e.target===this)closeResult()});\r\ndocument.addEventListener('keydown',e=>{if(e.key==='Escape'){closeCF();closeResult()}});\r\nfunction setLang(l){lang=l;document.getElementById('btn-es').classList.toggle('active',l==='es');document.getElementById('btn-en').classList.toggle('active',l==='en');const t=I18N[l];['hero-title','t-pkg-title','t-pkg1-name','t-pkg1-desc','t-pkg1-badge','t-pkg2-name','t-pkg2-desc','t-pkg3-name','t-pkg3-desc','t-pkg3-badge','t-config-title','t-persons-label','opt1','opt2','opt3','opt4','t-arrival-label','t-departure-label','t-ai-title','t-ai-sub','t-ai-room','t-ai-room-desc','t-ai-food','t-ai-food-desc','t-ai-truck','t-ai-truck-desc','t-ai-guide','t-ai-guide-desc','t-ai-ppp-label','t-room-title','t-room-name','t-room-desc','t-room-chip','t-room-unit','t-svc-title','t-food-name','t-food-desc','t-food-unit','t-truck-name','t-truck-desc','t-truck-unit','t-board-name','t-board-desc','t-board-unit','t-board-title','t-board-sub','t-pickup-title','t-pickup-sub','t-pickup-name','t-pickup-desc','t-pickup-unit','t-guide-title','t-guide-sub','t-guide-persons-label','t-guide-days-label','t-guide-price-unit','t-surf-title','t-surf-sub','t-trans-title','t-trans-sub','t-car-name','t-car-desc','t-car-unit','t-trans-none','t-quote-title','t-sum-pkg-key','t-sum-dates-key','t-sum-config-key','t-total-label'].forEach(id=>{const el=document.getElementById(id);if(el&&t[id]!==undefined)el.textContent=t[id]});document.getElementById('btn-contact-label').textContent=t['btn-contact'];document.getElementById('surf-hint').innerHTML=t['surf-hint'];document.getElementById('board-hint').textContent=t['board-hint'];document.getElementById('nights-badge').textContent=t.nights_badge(nights);buildGuidePersonsOpts();buildGuideDaysOpts();buildBoardDays();buildSurfDays();recalculate()}\r\ninitDates();buildGuidePersonsOpts();buildGuideDaysOpts();buildBoardDays();buildSurfDays();setPkg('allinclusive');\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Cotizador \u2014 Casa Majeva 2026 &#10005; &#128242; Casa Majeva\ud83c\uddf2\ud83c\uddfd ES\ud83c\uddfa\ud83c\uddf8 EN Cotizador de Estad\u00eda 2026 Oaxaca \u00b7 Istmo de Tehuantepec \u00b7 Surf &#038; Adventure \ud83d\udce6Selecciona tu paquete\ud83c\udfc4\u200d\u2642\ufe0fTodo IncluidoHabitaci\u00f3n, alimentos, 4&#215;4 y gu\u00eda incluidosPopular\ud83c\udfe0Hospedaje + SurfHabitaci\u00f3n y traslados a spots de surf\u2699\ufe0fPersonalizarArma tu paquete a la medidaFlexible \ud83d\udcc5Fechas y hu\u00e9spedesN\u00famero de personas1 persona2 personas3 personas4 personasFecha [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Casa Majeva<\/title>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"- Casa Majeva\" \/>\n<meta property=\"og:description\" content=\"Cotizador \u2014 Casa Majeva 2026 &#10005; &#128242; Casa Majeva\ud83c\uddf2\ud83c\uddfd ES\ud83c\uddfa\ud83c\uddf8 EN Cotizador de Estad\u00eda 2026 Oaxaca \u00b7 Istmo de Tehuantepec \u00b7 Surf &#038; Adventure \ud83d\udce6Selecciona tu paquete\ud83c\udfc4\u200d\u2642\ufe0fTodo IncluidoHabitaci\u00f3n, alimentos, 4&#215;4 y gu\u00eda incluidosPopular\ud83c\udfe0Hospedaje + SurfHabitaci\u00f3n y traslados a spots de surf\u2699\ufe0fPersonalizarArma tu paquete a la medidaFlexible \ud83d\udcc5Fechas y hu\u00e9spedesN\u00famero de personas1 persona2 personas3 personas4 personasFecha [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/casamajeva.com\/en\/1880-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Casa Majeva\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61556484365892&amp;locale=es_LA\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-27T05:21:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/casamajeva.com\/1880-2\/\",\"url\":\"https:\/\/casamajeva.com\/1880-2\/\",\"name\":\"- Casa Majeva\",\"isPartOf\":{\"@id\":\"https:\/\/casamajeva.com\/#website\"},\"datePublished\":\"2026-03-26T14:59:40+00:00\",\"dateModified\":\"2026-03-27T05:21:20+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/casamajeva.com\/1880-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/casamajeva.com\/#website\",\"url\":\"https:\/\/casamajeva.com\/\",\"name\":\"Casa Majeva\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/casamajeva.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/casamajeva.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/casamajeva.com\/#organization\",\"name\":\"Casa Majeva\",\"url\":\"https:\/\/casamajeva.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/casamajeva.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/casamajeva.com\/wp-content\/uploads\/2024\/03\/cropped-Majeva-logo-blanco.png\",\"contentUrl\":\"https:\/\/casamajeva.com\/wp-content\/uploads\/2024\/03\/cropped-Majeva-logo-blanco.png\",\"width\":512,\"height\":512,\"caption\":\"Casa Majeva\"},\"image\":{\"@id\":\"https:\/\/casamajeva.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/profile.php?id=61556484365892&locale=es_LA\",\"https:\/\/www.instagram.com\/casa_majeva\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"- Casa Majeva","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"- Casa Majeva","og_description":"Cotizador \u2014 Casa Majeva 2026 &#10005; &#128242; Casa Majeva\ud83c\uddf2\ud83c\uddfd ES\ud83c\uddfa\ud83c\uddf8 EN Cotizador de Estad\u00eda 2026 Oaxaca \u00b7 Istmo de Tehuantepec \u00b7 Surf &#038; Adventure \ud83d\udce6Selecciona tu paquete\ud83c\udfc4\u200d\u2642\ufe0fTodo IncluidoHabitaci\u00f3n, alimentos, 4&#215;4 y gu\u00eda incluidosPopular\ud83c\udfe0Hospedaje + SurfHabitaci\u00f3n y traslados a spots de surf\u2699\ufe0fPersonalizarArma tu paquete a la medidaFlexible \ud83d\udcc5Fechas y hu\u00e9spedesN\u00famero de personas1 persona2 personas3 personas4 personasFecha [&hellip;]","og_url":"https:\/\/casamajeva.com\/en\/1880-2\/","og_site_name":"Casa Majeva","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61556484365892&locale=es_LA","article_modified_time":"2026-03-27T05:21:20+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/casamajeva.com\/1880-2\/","url":"https:\/\/casamajeva.com\/1880-2\/","name":"- Casa Majeva","isPartOf":{"@id":"https:\/\/casamajeva.com\/#website"},"datePublished":"2026-03-26T14:59:40+00:00","dateModified":"2026-03-27T05:21:20+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/casamajeva.com\/1880-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/casamajeva.com\/#website","url":"https:\/\/casamajeva.com\/","name":"Casa Majeva","description":"","publisher":{"@id":"https:\/\/casamajeva.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/casamajeva.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/casamajeva.com\/#organization","name":"Casa Majeva","url":"https:\/\/casamajeva.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/casamajeva.com\/#\/schema\/logo\/image\/","url":"https:\/\/casamajeva.com\/wp-content\/uploads\/2024\/03\/cropped-Majeva-logo-blanco.png","contentUrl":"https:\/\/casamajeva.com\/wp-content\/uploads\/2024\/03\/cropped-Majeva-logo-blanco.png","width":512,"height":512,"caption":"Casa Majeva"},"image":{"@id":"https:\/\/casamajeva.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61556484365892&locale=es_LA","https:\/\/www.instagram.com\/casa_majeva"]}]}},"_links":{"self":[{"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/pages\/1880"}],"collection":[{"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/comments?post=1880"}],"version-history":[{"count":49,"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/pages\/1880\/revisions"}],"predecessor-version":[{"id":1929,"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/pages\/1880\/revisions\/1929"}],"wp:attachment":[{"href":"https:\/\/casamajeva.com\/en\/wp-json\/wp\/v2\/media?parent=1880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}