{"id":442,"date":"2026-05-08T21:51:04","date_gmt":"2026-05-08T21:51:04","guid":{"rendered":"https:\/\/lafao.dev\/?page_id=442"},"modified":"2026-05-13T21:40:34","modified_gmt":"2026-05-13T21:40:34","slug":"contacto","status":"publish","type":"page","link":"https:\/\/lafao.dev\/en\/contacto\/","title":{"rendered":"Contacto"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@400;500;600;700&family=Sora:wght@300;400;500;600;700;800&display=swap');\n\n\/* \u2500\u2500 Reset \u2500\u2500 *\/\n.lfc-wrap *, .lfc-wrap *::before, .lfc-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }\n.lfc-wrap a { text-decoration: none; }\n.lfc-wrap button { cursor: pointer; font-family: inherit; }\n\n\/* \u2500\u2500 Variables \u2500\u2500 *\/\n.lfc-wrap {\n    --lfc-blue:       #1d4ed8;\n    --lfc-blue-light: #3b82f6;\n    --lfc-navy:       #1a2744;\n    --lfc-text:       #0d1b4b;\n    --lfc-muted:      #64748b;\n    --lfc-bg:         #eef4ff;\n    --lfc-white:      #ffffff;\n    --lfc-border:     rgba(29,78,216,0.12);\n    --lfc-radius:     16px;\n    --lfc-shadow:     0 4px 24px rgba(30,41,59,0.08);\n\n    position: relative;\n    left: 50%;\n    transform: translateX(-50%);\n    width: 100vw;\n    max-width: 100vw;\n    font-family: 'DM Sans', sans-serif;\n    background: var(--lfc-bg);\n    overflow-x: hidden;\n}\n\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   CONTENT GRID\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-content {\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 80px 24px 80px;\n    display: grid;\n    grid-template-columns: 1fr 1.5fr;\n    gap: 48px;\n    align-items: start;\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   LEFT COLUMN\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-left-title {\n    font-family: 'Sora', sans-serif;\n    font-size: clamp(2.8rem, 5.5vw, 4.2rem);\n    font-weight: 700;\n    color: var(--lfc-text);\n    line-height: 1.1;\n    letter-spacing: -0.02em;\n    margin-bottom: 10px;\n}\n.lfc-left-title .accent {\n    color: #FF7A00;\n}\n.lfc-left-subtitle {\n    font-size: .95rem; color: var(--lfc-muted);\n    line-height: 1.65; margin-bottom: 32px;\n}\n.lfc-info-cards { display: flex; flex-direction: column; gap: 14px; margin-bottom: 36px; }\n.lfc-info-card {\n    display: flex; align-items: center; gap: 16px;\n    background: var(--lfc-white); border-radius: 14px;\n    padding: 18px 20px; border: 1px solid var(--lfc-border);\n    box-shadow: var(--lfc-shadow);\n    transition: box-shadow .2s, transform .2s;\n}\n.lfc-info-card:hover { box-shadow: 0 8px 32px rgba(29,78,216,.12); transform: translateY(-2px); }\n.lfc-info-icon {\n    width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px;\n    background: #eff6ff; display: flex; align-items: center; justify-content: center;\n}\n.lfc-info-icon svg { width: 20px; height: 20px; stroke: var(--lfc-blue); }\n.lfc-info-label { font-size: 11px; font-weight: 600; color: var(--lfc-muted); text-transform: uppercase; letter-spacing: .08em; }\n.lfc-info-value { font-size: .95rem; font-weight: 600; color: var(--lfc-text); margin-top: 2px; }\n.lfc-info-value a { color: var(--lfc-blue); }\n\n.lfc-why-section { background: var(--lfc-white); border-radius: var(--lfc-radius); padding: 24px; border: 1px solid var(--lfc-border); }\n.lfc-why-title { font-size: .9rem; font-weight: 700; color: var(--lfc-text); margin-bottom: 16px; text-transform: uppercase; letter-spacing: .06em; }\n.lfc-why-list { display: flex; flex-direction: column; gap: 12px; }\n.lfc-why-item { display: flex; align-items: flex-start; gap: 12px; font-size: .9rem; color: var(--lfc-muted); line-height: 1.5; }\n.lfc-why-check {\n    width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%;\n    background: rgba(29,78,216,.1); display: flex; align-items: center; justify-content: center;\n    margin-top: 1px;\n}\n.lfc-why-check svg { width: 10px; height: 10px; stroke: var(--lfc-blue); }\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   BOOKING CARD (RIGHT)\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-booking-card {\n    background: var(--lfc-white);\n    border-radius: 20px;\n    border: 1px solid var(--lfc-border);\n    box-shadow: 0 8px 40px rgba(29,78,216,.1);\n    overflow: hidden;\n}\n.lfc-card-header {\n    background: #f8faff;\n    border-bottom: 1px solid var(--lfc-border);\n    padding: 24px 28px;\n}\n.lfc-card-header-title { font-size: 1.15rem; font-weight: 700; color: var(--lfc-text); margin-bottom: 4px; }\n.lfc-card-header-sub { font-size: .85rem; color: var(--lfc-muted); }\n\n\/* \u2500\u2500 Step Indicator \u2500\u2500 *\/\n.lfc-step-indicator {\n    display: flex; align-items: center;\n    padding: 20px 28px; border-bottom: 1px solid #f1f5f9;\n    gap: 0;\n}\n.lfc-step-item {\n    display: flex; align-items: center; gap: 8px;\n    font-size: .8rem; font-weight: 600; color: #b0bec5;\n    flex: 1;\n}\n.lfc-step-item.active { color: var(--lfc-blue); }\n.lfc-step-item.done   { color: #10b981; }\n.lfc-step-num {\n    width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;\n    background: #f1f5f9; color: #b0bec5;\n    display: flex; align-items: center; justify-content: center;\n    font-size: .75rem; font-weight: 700;\n    transition: background .3s, color .3s;\n}\n.lfc-step-item.active .lfc-step-num { background: var(--lfc-blue); color: #fff; }\n.lfc-step-item.done   .lfc-step-num { background: #10b981; color: #fff; }\n.lfc-step-sep { flex: 0; width: 20px; height: 1px; background: #e2e8f0; margin: 0 4px; }\n\n\/* \u2500\u2500 Step Panels \u2500\u2500 *\/\n.lfc-step-panel { padding: 28px; }\n.lfc-step-panel.lfc-hidden { display: none; }\n\n.lfc-step-panel-title {\n    font-size: 1rem; font-weight: 700; color: var(--lfc-text);\n    margin-bottom: 4px;\n}\n.lfc-step-panel-sub {\n    font-size: .85rem; color: var(--lfc-muted); margin-bottom: 22px; line-height: 1.5;\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   CALENDAR\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-cal-nav {\n    display: flex; align-items: center; justify-content: space-between;\n    margin-bottom: 18px;\n}\n.lfc-cal-month-label {\n    font-size: 1rem; font-weight: 700; color: var(--lfc-text);\n    text-transform: capitalize;\n}\n.lfc-cal-nav-btn {\n    width: 34px; height: 34px; border-radius: 8px;\n    background: #f1f5f9; border: none; color: var(--lfc-muted);\n    display: flex; align-items: center; justify-content: center;\n    transition: background .2s, color .2s;\n}\n.lfc-cal-nav-btn:hover { background: #eff6ff; color: var(--lfc-blue); }\n.lfc-cal-nav-btn:disabled { opacity: .35; cursor: not-allowed; }\n\n.lfc-cal-weekdays {\n    display: grid; grid-template-columns: repeat(7, 1fr);\n    gap: 2px; margin-bottom: 8px;\n}\n.lfc-cal-weekday {\n    text-align: center; font-size: .7rem; font-weight: 600;\n    color: var(--lfc-muted); text-transform: uppercase; letter-spacing: .06em;\n    padding: 6px 0;\n}\n.lfc-cal-weekday.weekend { color: #cbd5e1; }\n\n.lfc-cal-grid {\n    display: grid; grid-template-columns: repeat(7, 1fr);\n    gap: 4px;\n}\n.lfc-cal-day {\n    aspect-ratio: 1; border-radius: 10px; border: none;\n    background: transparent; font-size: .88rem; font-weight: 500;\n    color: var(--lfc-text);\n    display: flex; align-items: center; justify-content: center;\n    transition: background .15s, color .15s, transform .15s;\n}\n.lfc-cal-day:not(:disabled):hover {\n    background: #eff6ff; color: var(--lfc-blue);\n    transform: scale(1.05);\n}\n.lfc-cal-day.selected {\n    background: var(--lfc-blue) !important;\n    color: #fff !important; font-weight: 700;\n    box-shadow: 0 4px 12px rgba(29,78,216,.3);\n}\n.lfc-cal-day.today {\n    border: 1.5px solid var(--lfc-blue); color: var(--lfc-blue);\n}\n.lfc-cal-day:disabled {\n    color: #cbd5e1; cursor: not-allowed; background: transparent;\n}\n.lfc-cal-day.weekend:not(:disabled) { color: #cbd5e1; cursor: not-allowed; }\n.lfc-cal-day.other-month { opacity: .25; }\n.lfc-cal-day.empty { pointer-events: none; }\n.lfc-cal-day.fully-booked { opacity: .3; text-decoration: line-through; pointer-events: none; }\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   TIME SLOTS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-selected-date-display {\n    display: flex; align-items: center; gap: 10px;\n    padding: 12px 16px; background: #eff6ff; border-radius: 10px;\n    margin-bottom: 20px; font-size: .9rem; font-weight: 600; color: var(--lfc-blue);\n    border: 1px solid rgba(29,78,216,.15);\n}\n.lfc-selected-date-display svg { width: 16px; height: 16px; flex-shrink: 0; }\n\n.lfc-time-grid {\n    display: grid; grid-template-columns: repeat(3, 1fr);\n    gap: 10px; margin-bottom: 8px;\n}\n.lfc-time-btn {\n    padding: 14px 10px; border-radius: 12px;\n    border: 1.5px solid #e2e8f0; background: var(--lfc-white);\n    font-size: .88rem; font-weight: 600; color: var(--lfc-text);\n    text-align: center; transition: all .18s ease;\n}\n.lfc-time-btn:hover {\n    border-color: var(--lfc-blue); color: var(--lfc-blue);\n    background: #eff6ff; transform: translateY(-2px);\n}\n.lfc-time-btn.selected {\n    background: var(--lfc-blue); color: #fff;\n    border-color: var(--lfc-blue);\n    box-shadow: 0 4px 14px rgba(29,78,216,.25);\n}\n.lfc-time-note {\n    font-size: .78rem; color: var(--lfc-muted); text-align: center; margin-top: 10px;\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   FORM (STEP 3)\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-summary-bar {\n    display: flex; gap: 12px; flex-wrap: wrap;\n    padding: 12px 16px; background: #f8faff; border-radius: 10px;\n    border: 1px solid var(--lfc-border); margin-bottom: 22px;\n}\n.lfc-summary-chip {\n    display: flex; align-items: center; gap: 6px;\n    font-size: .82rem; font-weight: 600; color: var(--lfc-blue);\n}\n.lfc-summary-chip svg { width: 13px; height: 13px; }\n\n.lfc-form-group { margin-bottom: 16px; }\n.lfc-form-label {\n    display: block; font-size: .82rem; font-weight: 600;\n    color: var(--lfc-text); margin-bottom: 7px;\n}\n.lfc-form-label span { color: #ef4444; margin-left: 2px; }\n.lfc-form-input, .lfc-form-textarea {\n    width: 100%; padding: 13px 16px; border-radius: 10px;\n    border: 1.5px solid #e2e8f0; background: var(--lfc-white);\n    font-family: 'DM Sans', sans-serif; font-size: .92rem; color: var(--lfc-text);\n    transition: border-color .2s, box-shadow .2s;\n    outline: none;\n}\n.lfc-form-input:focus, .lfc-form-textarea:focus {\n    border-color: var(--lfc-blue);\n    box-shadow: 0 0 0 3px rgba(29,78,216,.1);\n}\n.lfc-form-textarea { resize: vertical; min-height: 90px; line-height: 1.55; }\n\n.lfc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }\n\n.lfc-privacy { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 22px; }\n.lfc-privacy input[type=\"checkbox\"] { width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; accent-color: var(--lfc-blue); }\n.lfc-privacy label { font-size: .82rem; color: var(--lfc-muted); line-height: 1.5; }\n.lfc-privacy a { color: var(--lfc-blue); }\n\n.lfc-submit-btn {\n    width: 100%; padding: 15px; border-radius: 50px; border: none;\n    background: var(--lfc-blue); color: #fff;\n    font-family: 'DM Sans', sans-serif; font-size: .95rem; font-weight: 700;\n    letter-spacing: .02em;\n    box-shadow: 0 4px 20px rgba(29,78,216,.28);\n    transition: background .2s, box-shadow .2s, transform .2s;\n    display: flex; align-items: center; justify-content: center; gap: 8px;\n}\n.lfc-submit-btn:hover:not(:disabled) {\n    background: var(--lfc-navy); box-shadow: 0 8px 32px rgba(26,39,68,.3);\n    transform: translateY(-2px);\n}\n.lfc-submit-btn:disabled { opacity: .65; cursor: not-allowed; }\n\n.lfc-back-btn {\n    display: inline-flex; align-items: center; gap: 5px;\n    background: transparent; border: none; padding: 0;\n    font-size: .85rem; font-weight: 600; color: var(--lfc-muted);\n    margin-bottom: 20px; transition: color .2s;\n}\n.lfc-back-btn:hover { color: var(--lfc-blue); }\n\n.lfc-error-msg {\n    display: none; padding: 12px 16px; border-radius: 10px;\n    background: #fef2f2; border: 1px solid #fecaca;\n    color: #b91c1c; font-size: .85rem; margin-bottom: 16px; line-height: 1.5;\n}\n\n\/* \u2500\u2500 Loading spinner \u2500\u2500 *\/\n.lfc-spinner {\n    width: 18px; height: 18px; border-radius: 50%;\n    border: 2.5px solid rgba(255,255,255,.4);\n    border-top-color: #fff;\n    animation: lfc-spin .7s linear infinite;\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   SUCCESS SCREEN (STEP 4)\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.lfc-success-wrap { text-align: center; padding: 8px 0; }\n.lfc-success-icon {\n    width: 64px; height: 64px; border-radius: 50%;\n    background: linear-gradient(135deg, #10b981, #059669);\n    display: flex; align-items: center; justify-content: center;\n    margin: 0 auto 20px;\n    box-shadow: 0 8px 28px rgba(16,185,129,.3);\n    animation: lfc-pop .45s cubic-bezier(.34,1.56,.64,1) both;\n}\n.lfc-success-icon svg { width: 30px; height: 30px; stroke: #fff; }\n.lfc-success-title {\n    font-family: 'Playfair Display', serif;\n    font-size: 1.5rem; font-weight: 700;\n    color: var(--lfc-text); margin-bottom: 8px;\n}\n.lfc-success-sub { font-size: .92rem; color: var(--lfc-muted); line-height: 1.65; margin-bottom: 24px; }\n\n.lfc-success-details {\n    background: #f8faff; border-radius: 12px;\n    border: 1px solid var(--lfc-border); padding: 20px 24px;\n    text-align: left; margin-bottom: 20px;\n}\n.lfc-success-detail-row {\n    display: flex; align-items: flex-start; gap: 10px;\n    padding: 7px 0; border-bottom: 1px solid #e2e8f5;\n}\n.lfc-success-detail-row:last-child { border-bottom: none; }\n.lfc-success-detail-label { font-size: .8rem; color: var(--lfc-muted); min-width: 60px; padding-top: 1px; }\n.lfc-success-detail-value { font-size: .9rem; font-weight: 600; color: var(--lfc-text); flex: 1; }\n.lfc-success-detail-value a { color: var(--lfc-blue); word-break: break-all; }\n\n.lfc-gcal-btn {\n    display: inline-flex; align-items: center; gap: 8px;\n    width: 100%; justify-content: center;\n    padding: 13px 20px; border-radius: 50px;\n    border: 1.5px solid rgba(29,78,216,.3); background: transparent;\n    font-size: .88rem; font-weight: 700; color: var(--lfc-blue);\n    text-decoration: none; transition: background .2s, border-color .2s;\n}\n.lfc-gcal-btn:hover { background: #eff6ff; border-color: var(--lfc-blue); }\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   KEYFRAMES\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@keyframes lfc-up   { from { opacity:0; transform: translateY(16px); } to { opacity:1; transform:none; } }\n@keyframes lfc-spin { to { transform: rotate(360deg); } }\n@keyframes lfc-pop  { from { transform: scale(.5); opacity:0; } to { transform:scale(1); opacity:1; } }\n@keyframes lfc-pulse {\n    0%   { box-shadow: 0 0 0 0 rgba(29,78,216,.45); }\n    70%  { box-shadow: 0 0 0 6px rgba(29,78,216,0); }\n    100% { box-shadow: 0 0 0 0 rgba(29,78,216,0); }\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   RESPONSIVE\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 900px) {\n    .lfc-content { grid-template-columns: 1fr; gap: 36px; }\n    .lfc-left-section { \n        order: 2; \n        opacity: 0;\n        visibility: hidden;\n        transform: translateY(80px);\n        transition: opacity 0.7s ease-out, transform 0.7s ease-out, visibility 0.7s;\n    }\n    .lfc-left-section.in-view { opacity: 1; visibility: visible; transform: translateY(0); }\n    .lfc-right-section { \n        order: 1; \n        opacity: 1 !important;\n        transform: none !important;\n        animation: none !important;\n    }\n}\n@media (max-width: 768px) {\n    .lfc-left-title { font-size: 30px; line-height: 1.2; }\n}\n@media (max-width: 560px) {\n    .lfc-hero { padding: 72px 16px 60px; }\n    .lfc-content { padding: 60px 14px 60px; }\n    .lfc-step-panel { padding: 20px 16px; }\n    .lfc-time-grid { grid-template-columns: repeat(2, 1fr); }\n    .lfc-form-row { grid-template-columns: 1fr; }\n    .lfc-step-sep { width: 12px; }\n    .lfc-card-header { padding: 20px 20px; }\n    .lfc-booking-card { border-radius: 16px; }\n}\n@media (max-width: 480px) {\n    .lfc-left-title { font-size: 26px; }\n}\n<\/style>\n\n<div class=\"lfc-wrap\" id=\"lfc-wrap\">\n\n    <!-- \u2550\u2550\u2550 CONTENT \u2550\u2550\u2550 -->\n    <div class=\"lfc-content\">\n\n        <!-- \u2500\u2500 LEFT \u2500\u2500 -->\n        <div class=\"lfc-left-section\">\n            <h2 class=\"lfc-left-title\">Hablemos de lo que <span class=\"accent\">necesitas<\/span><\/h2>\n            <p class=\"lfc-left-subtitle\">Una llamada de 30 minutos es suficiente para entender tu proyecto y ver juntos si hay una buena oportunidad de trabajo.<\/p>\n\n            <div class=\"lfc-info-cards\">\n                <div class=\"lfc-info-card\">\n                    <div class=\"lfc-info-icon\">\n                        <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"3\"\/>\n                            <path d=\"M2 8l10 7 10-7\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div>\n                        <div class=\"lfc-info-label\">Email<\/div>\n                        <div class=\"lfc-info-value\"><a href=\"mailto:suarezlafao@gmail.com\">suarezlafao@gmail.com<\/a><\/div>\n                    <\/div>\n                <\/div>\n                <a href=\"https:\/\/wa.me\/593979429949\" target=\"_blank\" rel=\"noopener\" class=\"lfc-info-card\" style=\"color:inherit;\">\n                    <div class=\"lfc-info-icon\" style=\"background:#f0fdf4;\">\n                        <svg fill=\"#25D366\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\n                            <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div>\n                        <div class=\"lfc-info-label\">WhatsApp<\/div>\n                        <div class=\"lfc-info-value\" style=\"color:#16a34a;\">Escr\u00edbenos directo<\/div>\n                    <\/div>\n                <\/a>\n                <div class=\"lfc-info-card\">\n                    <div class=\"lfc-info-icon\">\n                        <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <circle cx=\"12\" cy=\"12\" r=\"10\"\/>\n                            <path d=\"M12 6v6l4 2\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div>\n                        <div class=\"lfc-info-label\">Tiempo de respuesta<\/div>\n                        <div class=\"lfc-info-value\">Menos de 24 horas<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"lfc-why-section\">\n                <div class=\"lfc-why-title\">\u00bfPor qu\u00e9 agendar una llamada?<\/div>\n                <div class=\"lfc-why-list\">\n                    <div class=\"lfc-why-item\">\n                        <div class=\"lfc-why-check\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                        <\/div>\n                        Evaluamos tu proyecto juntos y sin rodeos\n                    <\/div>\n                    <div class=\"lfc-why-item\">\n                        <div class=\"lfc-why-check\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                        <\/div>\n                        Te damos una propuesta clara antes de empezar\n                    <\/div>\n                    <div class=\"lfc-why-item\">\n                        <div class=\"lfc-why-check\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                        <\/div>\n                        Sin compromisos \u2014 solo una conversaci\u00f3n honesta\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div><!-- \/left -->\n\n        <!-- \u2500\u2500 RIGHT \u2500\u2500 -->\n        <div class=\"lfc-right-section\">\n            <div class=\"lfc-booking-card\">\n\n                <div class=\"lfc-card-header\">\n                    <div class=\"lfc-card-header-title\">Agenda tu llamada gratuita<\/div>\n                    <div class=\"lfc-card-header-sub\">30 minutos \u00b7 Videollamada \u00b7 Sin costo<\/div>\n                <\/div>\n\n                <!-- Progress steps -->\n                <div class=\"lfc-step-indicator\" id=\"lfc-step-indicator\">\n                    <div class=\"lfc-step-item active\" data-step=\"1\">\n                        <div class=\"lfc-step-num\">1<\/div>\n                        <span>Fecha<\/span>\n                    <\/div>\n                    <div class=\"lfc-step-sep\"><\/div>\n                    <div class=\"lfc-step-item\" data-step=\"2\">\n                        <div class=\"lfc-step-num\">2<\/div>\n                        <span>Hora<\/span>\n                    <\/div>\n                    <div class=\"lfc-step-sep\"><\/div>\n                    <div class=\"lfc-step-item\" data-step=\"3\">\n                        <div class=\"lfc-step-num\">3<\/div>\n                        <span>Datos<\/span>\n                    <\/div>\n                <\/div>\n\n                <!-- \u2500\u2500 STEP 1: CALENDAR \u2500\u2500 -->\n                <div class=\"lfc-step-panel\" id=\"lfc-panel-1\">\n                    <p class=\"lfc-step-panel-title\">Elige un d\u00eda disponible<\/p>\n                    <p class=\"lfc-step-panel-sub\">Selecciona el d\u00eda que mejor te convenga.<\/p>\n\n                    <div class=\"lfc-cal-nav\">\n                        <button class=\"lfc-cal-nav-btn\" id=\"lfc-cal-prev\" aria-label=\"Mes anterior\">\n                            <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg>\n                        <\/button>\n                        <span class=\"lfc-cal-month-label\" id=\"lfc-cal-month-label\"><\/span>\n                        <button class=\"lfc-cal-nav-btn\" id=\"lfc-cal-next\" aria-label=\"Mes siguiente\">\n                            <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M9 18l6-6-6-6\"\/><\/svg>\n                        <\/button>\n                    <\/div>\n\n                    <div class=\"lfc-cal-weekdays\">\n                        <div class=\"lfc-cal-weekday\">Lu<\/div>\n                        <div class=\"lfc-cal-weekday\">Ma<\/div>\n                        <div class=\"lfc-cal-weekday\">Mi<\/div>\n                        <div class=\"lfc-cal-weekday\">Ju<\/div>\n                        <div class=\"lfc-cal-weekday\">Vi<\/div>\n                        <div class=\"lfc-cal-weekday\">S\u00e1<\/div>\n                        <div class=\"lfc-cal-weekday\">Do<\/div>\n                    <\/div>\n                    <div class=\"lfc-cal-grid\" id=\"lfc-cal-grid\"><\/div>\n                <\/div>\n\n                <!-- \u2500\u2500 STEP 2: TIME SLOTS \u2500\u2500 -->\n                <div class=\"lfc-step-panel lfc-hidden\" id=\"lfc-panel-2\">\n                    <button class=\"lfc-back-btn\" id=\"lfc-back-to-1\">\n                        <svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M19 12H5M12 5l-7 7 7 7\"\/><\/svg>\n                        Cambiar fecha\n                    <\/button>\n\n                    <div class=\"lfc-selected-date-display\" id=\"lfc-date-display\">\n                        <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg>\n                        <span id=\"lfc-date-display-text\"><\/span>\n                    <\/div>\n\n                    <p class=\"lfc-step-panel-title\">Elige un horario<\/p>\n                    <p class=\"lfc-step-panel-sub\">Todos los horarios son en hora de Colombia \/ Ecuador (UTC\u22125).<\/p>\n\n                    <div class=\"lfc-time-grid\" id=\"lfc-time-grid\">\n                        <!-- Generado por JS -->\n                    <\/div>\n                    <p class=\"lfc-time-note\">Duraci\u00f3n estimada: 30 min<\/p>\n                <\/div>\n\n                <!-- \u2500\u2500 STEP 3: FORM \u2500\u2500 -->\n                <div class=\"lfc-step-panel lfc-hidden\" id=\"lfc-panel-3\">\n                    <button class=\"lfc-back-btn\" id=\"lfc-back-to-2\">\n                        <svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M19 12H5M12 5l-7 7 7 7\"\/><\/svg>\n                        Cambiar horario\n                    <\/button>\n\n                    <div class=\"lfc-summary-bar\" id=\"lfc-summary-bar\">\n                        <div class=\"lfc-summary-chip\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg>\n                            <span id=\"lfc-summary-date\"><\/span>\n                        <\/div>\n                        <div class=\"lfc-summary-chip\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg>\n                            <span id=\"lfc-summary-time\"><\/span>\n                        <\/div>\n                    <\/div>\n\n                    <p class=\"lfc-step-panel-title\">Cu\u00e9ntanos de ti<\/p>\n                    <p class=\"lfc-step-panel-sub\">Con estos datos te enviamos la confirmaci\u00f3n y el enlace de videollamada.<\/p>\n\n                    <div class=\"lfc-error-msg\" id=\"lfc-error-msg\"><\/div>\n\n                    <form id=\"lfc-booking-form\" novalidate>\n                        <div class=\"lfc-form-row\">\n                            <div class=\"lfc-form-group\">\n                                <label class=\"lfc-form-label\" for=\"lfc-name\">Nombre completo <span>*<\/span><\/label>\n                                <input class=\"lfc-form-input\" type=\"text\" id=\"lfc-name\" name=\"name\" placeholder=\"Juan P\u00e9rez\" required>\n                            <\/div>\n                            <div class=\"lfc-form-group\">\n                                <label class=\"lfc-form-label\" for=\"lfc-email\">Correo electr\u00f3nico <span>*<\/span><\/label>\n                                <input class=\"lfc-form-input\" type=\"email\" id=\"lfc-email\" name=\"email\" placeholder=\"juan@ejemplo.com\" required>\n                            <\/div>\n                        <\/div>\n                        <div class=\"lfc-form-group\">\n                            <label class=\"lfc-form-label\" for=\"lfc-message\">\u00bfEn qu\u00e9 consiste tu proyecto? <small style=\"font-weight:400;color:#94a3b8;\">(opcional)<\/small><\/label>\n                            <textarea class=\"lfc-form-textarea\" id=\"lfc-message\" name=\"message\" placeholder=\"Cu\u00e9ntanos brevemente: \u00bfqu\u00e9 tipo de sitio o aplicaci\u00f3n necesitas? \u00bfpara qu\u00e9 negocio?\"><\/textarea>\n                        <\/div>\n                        <div class=\"lfc-privacy\">\n                            <input type=\"checkbox\" id=\"lfc-privacy-check\" required>\n                            <label for=\"lfc-privacy-check\">Acepto la <a href=\"\/politica-de-privacidad\" target=\"_blank\">pol\u00edtica de privacidad<\/a> y que LaFao.dev me contacte sobre mi solicitud.<\/label>\n                        <\/div>\n                        <button type=\"submit\" class=\"lfc-submit-btn\" id=\"lfc-submit-btn\">\n                            <span id=\"lfc-submit-text\">Confirmar llamada<\/span>\n                        <\/button>\n                    <\/form>\n                <\/div>\n\n                <!-- \u2500\u2500 STEP 4: SUCCESS \u2500\u2500 -->\n                <div class=\"lfc-step-panel lfc-hidden\" id=\"lfc-panel-4\">\n                    <div class=\"lfc-success-wrap\">\n                        <div class=\"lfc-success-icon\">\n                            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n                        <\/div>\n                        <p class=\"lfc-success-title\">\u00a1Llamada confirmada!<\/p>\n                        <p class=\"lfc-success-sub\">Te enviamos un correo con el enlace de videollamada y todos los detalles.<br>Revisa tu bandeja de entrada (y spam, por si acaso).<\/p>\n\n                        <div class=\"lfc-success-details\">\n                            <div class=\"lfc-success-detail-row\">\n                                <span class=\"lfc-success-detail-label\">Fecha<\/span>\n                                <span class=\"lfc-success-detail-value\" id=\"lfc-ok-date\"><\/span>\n                            <\/div>\n                            <div class=\"lfc-success-detail-row\">\n                                <span class=\"lfc-success-detail-label\">Hora<\/span>\n                                <span class=\"lfc-success-detail-value\" id=\"lfc-ok-time\"><\/span>\n                            <\/div>\n                            <div class=\"lfc-success-detail-row\">\n                                <span class=\"lfc-success-detail-label\">Enlace<\/span>\n                                <span class=\"lfc-success-detail-value\"><a id=\"lfc-ok-meet\" href=\"#\" target=\"_blank\" rel=\"noopener\">Abrir videollamada \u2192<\/a><\/span>\n                            <\/div>\n                        <\/div>\n\n                        <a id=\"lfc-gcal-link\" href=\"#\" target=\"_blank\" rel=\"noopener\" class=\"lfc-gcal-btn\">\n                            <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg>\n                            Agregar a Google Calendar\n                        <\/a>\n                    <\/div>\n                <\/div>\n\n            <\/div><!-- \/booking-card -->\n        <\/div><!-- \/right -->\n\n    <\/div><!-- \/content -->\n\n<\/div><!-- \/lfc-wrap -->\n\n<script>\n(function () {\n    'use strict';\n\n    \/* \u2500\u2500 Config \u2500\u2500 *\/\n    var AJAX_URL  = \"https:\\\/\\\/lafao.dev\\\/wp-admin\\\/admin-ajax.php\";\n    var NONCE     = \"b12716de50\";\n    var MAX_AHEAD = 60; \/\/ d\u00edas m\u00e1ximos hacia adelante\n\n    var MONTHS_ES = ['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'];\n    var DAYS_ES   = ['lunes','martes','mi\u00e9rcoles','jueves','viernes','s\u00e1bado','domingo'];\n\n    \/* \u2500\u2500 State \u2500\u2500 *\/\n    var today        = new Date();\n    today.setHours(0,0,0,0);\n    var calYear      = today.getFullYear();\n    var calMonth     = today.getMonth();\n    var selectedDate = null; \/\/ 'YYYY-MM-DD'\n    var selectedTime = null; \/\/ 'HH:MM'\n    var bookedSlots  = {};\n    var fullDays     = [];\n\n    \/* \u2500\u2500 Autocompletar mensaje \u2500\u2500 *\/\n    var urlParams = new URLSearchParams(window.location.search);\n    var servicio  = urlParams.get('servicio');\n    if (servicio) {\n        var msgField = document.getElementById('lfc-message');\n        if (msgField) {\n            msgField.value = \"Hola, me interesa el servicio de \" + servicio + \".\\n\\nMi proyecto consiste en: \";\n        }\n    }\n\n    \/* \u2500\u2500 DOM refs \u2500\u2500 *\/\n    var calGrid     = document.getElementById('lfc-cal-grid');\n    var calLabel    = document.getElementById('lfc-cal-month-label');\n    var btnPrev     = document.getElementById('lfc-cal-prev');\n    var btnNext     = document.getElementById('lfc-cal-next');\n    var timeGrid    = document.getElementById('lfc-time-grid');\n    var dateDisplay = document.getElementById('lfc-date-display-text');\n    var summaryDate = document.getElementById('lfc-summary-date');\n    var summaryTime = document.getElementById('lfc-summary-time');\n    var form        = document.getElementById('lfc-booking-form');\n    var submitBtn   = document.getElementById('lfc-submit-btn');\n    var submitText  = document.getElementById('lfc-submit-text');\n    var errorMsg    = document.getElementById('lfc-error-msg');\n    var indicator   = document.getElementById('lfc-step-indicator');\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       CALENDAR\n    \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function fetchAvailability(year, month, callback) {\n        var body = new FormData();\n        body.append('action', 'lafao_get_availability');\n        body.append('year', year);\n        body.append('month', month);\n\n        fetch(AJAX_URL, { method: 'POST', body: body })\n            .then(function(r){ return r.json(); })\n            .then(function(data) {\n                if (data.success) {\n                    bookedSlots = data.data.booked_slots;\n                    fullDays = data.data.full_days;\n                }\n                callback();\n            }).catch(function(){ callback(); });\n    }\n\n    function pad(n) { return n < 10 ? '0' + n : '' + n; }\n\n    function dateToStr(y, m, d) {\n        return y + '-' + pad(m + 1) + '-' + pad(d);\n    }\n\n    function buildCalendar(year, month) {\n        calYear  = year;\n        calMonth = month;\n        calGrid.innerHTML = '<div style=\"grid-column:1\/-1;text-align:center;padding:20px;color:var(--lfc-muted);\">Cargando disponibilidad...<\/div>';\n\n        fetchAvailability(year, month, function() {\n            var monthNames = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];\n            calLabel.textContent = monthNames[month] + ' ' + year;\n\n            var minDate = new Date(today.getFullYear(), today.getMonth(), 1);\n            var maxDate = new Date(today.getFullYear(), today.getMonth() + 2, 1);\n            btnPrev.disabled = (new Date(year, month, 1) <= minDate);\n            btnNext.disabled = (new Date(year, month + 1, 1) >= maxDate);\n\n            var firstDay = new Date(year, month, 1);\n            var lastDay  = new Date(year, month + 1, 0);\n            var startDow = (firstDay.getDay() + 6) % 7; \/\/ 0=Mon\n            var maxDay   = lastDay.getDate();\n            var maxSelect = new Date(today.getTime() + MAX_AHEAD * 86400000);\n\n            var html = '';\n            for (var e = 0; e < startDow; e++) {\n                html += '<button class=\"lfc-cal-day empty\" disabled><\/button>';\n            }\n\n            for (var d = 1; d <= maxDay; d++) {\n                var cellDate = new Date(year, month, d);\n                var dateStr  = dateToStr(year, month, d);\n                var isPast    = cellDate < today;\n                var isFuture  = cellDate > maxSelect;\n                var isToday   = cellDate.getTime() === today.getTime();\n                var isSel     = dateStr === selectedDate;\n                var isBlockedDay = (month === 4 && (d === 28 || d === 29 || d === 30 || d === 31)); \/\/ El mes 4 en JavaScript es Mayo (0=Enero)\n                var isFull       = fullDays.includes(dateStr);\n\n                var cls = 'lfc-cal-day';\n                if (isToday)         cls += ' today';\n                if (isSel)           cls += ' selected';\n                if (isFull)          cls += ' fully-booked';\n\n                var disabled = isPast || isToday || isFuture || isBlockedDay || isFull;\n\n                html += '<button class=\"' + cls + '\"'\n                     + (disabled ? ' disabled' : '')\n                     + ' data-date=\"' + dateStr + '\"'\n                     + ' aria-label=\"' + d + ' de ' + MONTHS_ES[month] + '\">'\n                     + d + '<\/button>';\n            }\n\n            calGrid.innerHTML = html;\n            calGrid.querySelectorAll('.lfc-cal-day:not(:disabled)').forEach(function(btn) {\n                btn.addEventListener('click', function() {\n                    selectedDate = this.getAttribute('data-date');\n                    calGrid.querySelectorAll('.lfc-cal-day').forEach(function(b){ b.classList.remove('selected'); });\n                    this.classList.add('selected');\n                    renderTimeSlots(selectedDate);\n                    goToStep(2);\n                });\n            });\n        });\n    }\n\n    btnPrev.addEventListener('click', function() { buildCalendar(calYear, calMonth - 1); });\n    btnNext.addEventListener('click', function() { buildCalendar(calYear, calMonth + 1); });\n    buildCalendar(calYear, calMonth);\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       STEP NAVIGATION\n    \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function goToStep(step) {\n        [1,2,3,4].forEach(function(s) {\n            var panel = document.getElementById('lfc-panel-' + s);\n            if (panel) {\n                if (s === step) panel.classList.remove('lfc-hidden');\n                else panel.classList.add('lfc-hidden');\n            }\n        });\n        updateStepIndicator(step);\n\n        if (step === 2 && selectedDate) {\n            var parts = selectedDate.split('-');\n            var y = parseInt(parts[0]), m = parseInt(parts[1]) - 1, d = parseInt(parts[2]);\n            var dow = (new Date(y, m, d).getDay() + 6) % 7;\n            var label = DAYS_ES[dow] + ', ' + d + ' de ' + MONTHS_ES[m];\n            dateDisplay.textContent = label;\n        }\n        if (step === 3 && selectedDate && selectedTime) {\n            var parts2 = selectedDate.split('-');\n            var y2 = parseInt(parts2[0]), m2 = parseInt(parts2[1]) - 1, d2 = parseInt(parts2[2]);\n            var dow2 = (new Date(y2, m2, d2).getDay() + 6) % 7;\n            summaryDate.textContent = DAYS_ES[dow2] + ', ' + d2 + ' de ' + MONTHS_ES[m2];\n            summaryTime.textContent = formatTime(selectedTime);\n        }\n\n        \/\/ En m\u00f3viles, hacer scroll hacia el inicio de la tarjeta al mostrar la pantalla de \u00e9xito\n        if (step === 4 && window.innerWidth <= 900) {\n            var bookingCard = document.querySelector('.lfc-booking-card');\n            if (bookingCard) {\n                var yPos = bookingCard.getBoundingClientRect().top + window.pageYOffset - 80;\n                window.scrollTo({ top: yPos, behavior: 'smooth' });\n            }\n        }\n    }\n\n    function updateStepIndicator(activeStep) {\n        indicator.querySelectorAll('.lfc-step-item').forEach(function(item) {\n            var s = parseInt(item.getAttribute('data-step'));\n            item.classList.remove('active', 'done');\n            if (s === activeStep) item.classList.add('active');\n            else if (s < activeStep) item.classList.add('done');\n        });\n    }\n\n    document.getElementById('lfc-back-to-1').addEventListener('click', function(){ goToStep(1); });\n    document.getElementById('lfc-back-to-2').addEventListener('click', function(){ goToStep(2); });\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       TIME SLOTS\n    \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function formatTime(t) {\n        var parts = t.split(':');\n        var h = parseInt(parts[0]);\n        var ampm = h >= 12 ? 'PM' : 'AM';\n        var h12  = h > 12 ? h - 12 : h;\n        return h12 + ':00 ' + ampm;\n    }\n\n    function renderTimeSlots(dateStr) {\n        var parts = dateStr.split('-');\n        var y = parseInt(parts[0]), m = parseInt(parts[1]) - 1, d = parseInt(parts[2]);\n        var jsDow = new Date(y, m, d).getDay(); \/\/ 0=Sun, 1=Mon...\n        \n        var slots = [];\n        if (jsDow === 4) { \/\/ Jueves\n            slots = ['10:00','11:00','12:00','13:00','14:00','15:00','19:00','20:00','21:00'];\n        } else if (jsDow === 0) { \/\/ Domingo\n            slots = ['13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00','21:00'];\n        } else {\n            slots = ['10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00','21:00'];\n        }\n\n        var isToday = (dateStr === dateToStr(today.getFullYear(), today.getMonth(), today.getDate()));\n        var currentHour = new Date().getHours();\n        var booked = bookedSlots[dateStr] || [];\n\n        var html = '';\n        var availableCount = 0;\n        slots.forEach(function(s) {\n            var isBooked = booked.includes(s);\n            var h = parseInt(s.split(':')[0]);\n            var isPastToday = (isToday && h <= currentHour);\n\n            if (isBooked || isPastToday) return;\n\n            availableCount++;\n            html += '<button class=\"lfc-time-btn\" data-time=\"'+s+'\">' + formatTime(s) + '<\/button>';\n        });\n\n        if (availableCount === 0) {\n            html = '<div style=\"grid-column:1\/-1;text-align:center;color:var(--lfc-muted);font-size:.9rem;padding:10px;\">No hay horarios disponibles para este d\u00eda.<\/div>';\n        }\n        timeGrid.innerHTML = html;\n\n        timeGrid.querySelectorAll('.lfc-time-btn').forEach(function(btn) {\n            btn.addEventListener('click', function() {\n                selectedTime = this.getAttribute('data-time');\n                timeGrid.querySelectorAll('.lfc-time-btn').forEach(function(b){ b.classList.remove('selected'); });\n                this.classList.add('selected');\n                setTimeout(function(){ goToStep(3); }, 180);\n            });\n        });\n    }\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       FORM SUBMISSION\n    \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    form.addEventListener('submit', function(e) {\n        e.preventDefault();\n\n        var name    = document.getElementById('lfc-name').value.trim();\n        var email   = document.getElementById('lfc-email').value.trim();\n        var message = document.getElementById('lfc-message').value.trim();\n        var privacy = document.getElementById('lfc-privacy-check').checked;\n\n        errorMsg.style.display = 'none';\n\n        if (!name) { showError('Por favor ingresa tu nombre.'); return; }\n        if (!email || !isValidEmail(email)) { showError('Por favor ingresa un correo v\u00e1lido.'); return; }\n        if (!selectedDate) { showError('Selecciona una fecha.'); return; }\n        if (!selectedTime) { showError('Selecciona un horario.'); return; }\n        if (!privacy) { showError('Debes aceptar la pol\u00edtica de privacidad para continuar.'); return; }\n\n        \/\/ Loading state\n        submitBtn.disabled = true;\n        submitText.innerHTML = '';\n        var spinner = document.createElement('div');\n        spinner.className = 'lfc-spinner';\n        submitBtn.appendChild(spinner);\n        submitBtn.append(' Enviando...');\n\n        var body = new FormData();\n        body.append('action',  'lafao_book_meeting');\n        body.append('nonce',   NONCE);\n        body.append('name',    name);\n        body.append('email',   email);\n        body.append('date',    selectedDate);\n        body.append('time',    selectedTime);\n        body.append('message', message);\n\n        fetch(AJAX_URL, { method: 'POST', body: body })\n            .then(function(r){ return r.json(); })\n            .then(function(data) {\n                if (data.success) {\n                    document.getElementById('lfc-ok-date').textContent = data.data.date_nice;\n                    document.getElementById('lfc-ok-time').textContent = formatTime(data.data.time) + ' (Col\/Ecu)';\n                    var meetLink = document.getElementById('lfc-ok-meet');\n                    meetLink.href = data.data.meet_url;\n                    meetLink.textContent = 'Abrir videollamada \u2192';\n                    document.getElementById('lfc-gcal-link').href = data.data.gcal_url;\n                    goToStep(4);\n                } else {\n                    showError(data.data.msg || 'Ocurri\u00f3 un error. Int\u00e9ntalo de nuevo.');\n                    resetBtn();\n                }\n            })\n            .catch(function() {\n                showError('Error de conexi\u00f3n. Por favor int\u00e9ntalo de nuevo.');\n                resetBtn();\n            });\n    });\n\n    function showError(msg) {\n        errorMsg.textContent = msg;\n        errorMsg.style.display = 'block';\n        errorMsg.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n    }\n\n    function resetBtn() {\n        submitBtn.disabled = false;\n        submitText.textContent = 'Confirmar llamada';\n        var sp = submitBtn.querySelector('.lfc-spinner');\n        if (sp) submitBtn.removeChild(sp);\n        \/\/ Remove text node\n        submitBtn.childNodes.forEach(function(n){ if (n.nodeType === 3) submitBtn.removeChild(n); });\n        submitBtn.appendChild(submitText);\n    }\n\n    function isValidEmail(e) {\n        return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(e);\n    }\n\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       ANIMACI\u00d3N EN M\u00d3VIL (LEFT SECTION)\n    \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    if ('IntersectionObserver' in window) {\n        var leftSection = document.querySelector('.lfc-left-section');\n        if (leftSection) {\n            var observer = new IntersectionObserver(function(entries) {\n                entries.forEach(function(entry) {\n                    if (entry.isIntersecting) {\n                        entry.target.classList.add('in-view');\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, { threshold: 0.15, rootMargin: '0px 0px -10% 0px' });\n            \n            \/\/ Esperar a que el calendario termine de cargar por AJAX para no disparar la animaci\u00f3n en la carga inicial\n            setTimeout(function() {\n                observer.observe(leftSection);\n            }, 1000);\n        }\n    } else {\n        var leftSec = document.querySelector('.lfc-left-section');\n        if (leftSec) leftSec.classList.add('in-view');\n    }\n\n})();\n<\/script>\n\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-442","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contacto y Cotizaciones: Hablemos de tu Proyecto<\/title>\n<meta name=\"description\" content=\"\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lafao.dev\/en\/contacto\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:locale:alternate\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contacto y Cotizaciones: Hablemos de tu Proyecto\" \/>\n<meta property=\"og:description\" content=\"\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lafao.dev\/en\/contacto\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T21:40:34+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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/lafao.dev\\\/contacto\\\/\",\"url\":\"https:\\\/\\\/lafao.dev\\\/contacto\\\/\",\"name\":\"Contacto y Cotizaciones: Hablemos de tu Proyecto\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lafao.dev\\\/#website\"},\"datePublished\":\"2026-05-08T21:51:04+00:00\",\"dateModified\":\"2026-05-13T21:40:34+00:00\",\"description\":\"\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/lafao.dev\\\/contacto\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/lafao.dev\\\/contacto\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/lafao.dev\\\/contacto\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/lafao.dev\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contacto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/lafao.dev\\\/#website\",\"url\":\"https:\\\/\\\/lafao.dev\\\/\",\"name\":\"\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/lafao.dev\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contacto y Cotizaciones: Hablemos de tu Proyecto","description":"\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lafao.dev\/en\/contacto\/","og_locale":"en_US","og_type":"article","og_title":"[:es]Contacto y Cotizaciones: Hablemos de tu Proyecto[:]","og_description":"[:es]\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.[:]","og_url":"https:\/\/lafao.dev\/en\/contacto\/","article_modified_time":"2026-05-13T21:40:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/lafao.dev\/contacto\/","url":"https:\/\/lafao.dev\/contacto\/","name":"Contacto y Cotizaciones: Hablemos de tu Proyecto","isPartOf":{"@id":"https:\/\/lafao.dev\/#website"},"datePublished":"2026-05-08T21:51:04+00:00","dateModified":"2026-05-13T21:40:34+00:00","description":"\u00bfListo para escalar tu negocio? Agenda una videollamada gratuita de 30 minutos. Evaluamos tu proyecto web sin rodeos y con total transparencia.","breadcrumb":{"@id":"https:\/\/lafao.dev\/contacto\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lafao.dev\/contacto\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/lafao.dev\/contacto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/lafao.dev\/"},{"@type":"ListItem","position":2,"name":"Contacto"}]},{"@type":"WebSite","@id":"https:\/\/lafao.dev\/#website","url":"https:\/\/lafao.dev\/","name":"","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lafao.dev\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/pages\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":1,"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/pages\/442\/revisions"}],"predecessor-version":[{"id":443,"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/pages\/442\/revisions\/443"}],"wp:attachment":[{"href":"https:\/\/lafao.dev\/en\/wp-json\/wp\/v2\/media?parent=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}