/* ==========================================================================0. PROTECCIÓN NATIVA (WORDPRESS EDITOR)========================================================================== */.wp-editor-wrap input[type="button"] {width: auto !important;padding: 3px 8px !important;font-size: 13px !important;border: 1px solid #ccc !important;border-radius: 3px !important;background: #f7f7f7 !important;}.wp-editor-wrap textarea {width: 100% !important;border: none !important;border-radius: 0 !important;padding: 6px !important;box-shadow: none !important;}.wp-editor-wrap * {max-width: none !important;}/* ==========================================================================ESTILOS GLOBALES Y MODALES (COMPARTIDOS) - VARIABLES CSS========================================================================== */.psico-modal {display: none; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; background: rgba(15,23,42,0.8) !important; z-index: 999999 !important; overflow-x: hidden !important; overflow-y: auto !important; padding: 5vh 20px !important; box-sizing: border-box !important;}.psico-modal:not([hidden]) { display: block !important; }.psico-modal-dialog { background: #fff !important; border-radius: 16px !important; padding: 30px 25px !important; width: 100% !important; max-width: 500px !important; margin: 0 auto !important; position: relative !important; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25) !important; box-sizing: border-box !important; }.psico-btn-close { position: absolute !important; top: 15px !important; right: 15px !important; background: none !important; border: none !important; font-size: 28px !important; cursor: pointer !important; color: #64748b !important; padding: 0 !important; margin: 0 !important; z-index: 100 !important; line-height: 1 !important; width: 30px !important; height: 30px !important; display: flex !important; align-items: center !important; justify-content: center !important; }.psico-btn-close:hover { color: #0f172a !important; }.psico-form-group { margin-bottom: 15px; }.psico-form-group label { display: block; font-weight: bold; margin-bottom: 5px; font-size: 13px; color: #475569; }/* ==========================================================================2. PORTALES PRIVADOS (Profesional y Secretaria)========================================================================== */.psico-portal-shell { background: #f8fafc; padding: 20px; border-radius: 16px; font-family: var(--pb-font, system-ui, -apple-system, sans-serif); color: #0f172a; box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; overflow: hidden !important; }.psico-portal-shell *, .psico-portal-shell *::before, .psico-portal-shell *::after { box-sizing: border-box !important; max-width: 100%; }.psico-portal-shell h1, .psico-portal-shell h2, .psico-portal-shell h3 { margin-top: 0; color: #0f172a; word-break: break-word; }.psico-portal-shell input, .psico-portal-shell select { padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 8px; width: 100%; max-width: 100%; font-size: 16px !important; box-sizing: border-box !important; }.psico-portal-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 15px; width: 100%; }.psico-portal-kpi-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 20px; width: 100%; }.psico-portal-kpi { background: #fff; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0; text-align: center; }.psico-portal-kpi span { display: block; font-size: 12px; color: #64748b; text-transform: uppercase; font-weight: bold; margin-bottom: 5px; }.psico-portal-kpi strong { display: block; font-size: 24px; color: var(--pb-primary, #2563eb); margin-top: 5px; }.psico-tabs-nav { display: flex; gap: 10px; margin-bottom: 20px; border-bottom: 2px solid #e2e8f0; overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; width: 100%; }.psico-tab-btn { background: none; border: none; padding: 10px 20px; font-size: 15px; font-weight: 600; color: #64748b; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; white-space: nowrap; flex-shrink: 0; }.psico-tab-btn.active { color: var(--pb-primary, #2563eb); border-color: var(--pb-primary, #2563eb); }.psico-tab-content { display: none; width: 100%; }.psico-tab-content.active { display: block; }.psico-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border-radius: 8px; font-weight: 600; cursor: pointer; border: none; text-align: center; text-decoration: none; transition: 0.2s; }.psico-btn-primary { background: var(--pb-primary, #2563eb); color: #fff; }.psico-btn-primary:hover { background: var(--pb-hover, #1d4ed8); }.psico-booking-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 15px; margin-bottom: 10px; display: flex; align-items: center; flex-wrap: wrap; gap: 15px; box-shadow: 0 2px 4px rgba(0,0,0,0.02); box-sizing: border-box !important; width: 100% !important; }.card-col-main { flex: 1; min-width: 200px; display: flex; align-items: center; gap: 15px; }.psico-avatar { flex: 0 0 40px !important; min-width: 40px !important; min-height: 40px !important; width: 40px !important; height: 40px !important; border-radius: 50% !important; background: var(--pb-light, #e0e7ff); color: var(--pb-primary, #3b82f6); display: flex !important; align-items: center !important; justify-content: center !important; font-weight: bold; font-size: 18px; box-sizing: border-box; overflow: hidden !important; }.card-name { margin: 0 0 4px; font-size: 16px; word-break: break-word; }.card-meta { margin: 0 0 8px; font-size: 13px; color: #64748b; word-break: break-word; }.card-tags { display: flex; gap: 8px; flex-wrap: wrap; }.tag { padding: 4px 8px; border-radius: 6px; font-size: 11px; font-weight: bold; white-space: nowrap; display: inline-flex; align-items: center; }.tag-srv { background: #f1f5f9; color: #475569; }.tag-loc { background: #fef3c7; color: #854d0e; }.tag-status { text-transform: uppercase; }.status-paid { background: #dcfce7; color: #166534; }.status-pending { background: #fef9c3; color: #92400e; }.status-cancelled { background: #fee2e2; color: #991b1b; }.card-col-time { text-align: right; min-width: 100px; }.card-col-time strong { display: block; font-size: 15px; }.card-col-time span { color: #64748b; font-size: 13px; }.card-col-actions { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }.action-btn { width: 36px; height: 36px; border-radius: 8px; border: 1px solid #e2e8f0; background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 16px; text-decoration: none; color: #475569; }.action-btn:hover { background: #f8fafc; }.btn-wa { background: #25D366; color: #fff; border: none; }.btn-wa:hover { background: #20bd5a; color: #fff; }/* Calendario del Portal Privado */.psico-cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; background: #fff; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0; flex-wrap: wrap; gap: 10px; width: 100%; }.psico-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }.psico-cal-day-label { text-align: center; font-weight: bold; color: #64748b; padding: 10px 0; font-size: 12px; }.psico-cal-cell { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; min-height: 80px; padding: 10px; cursor: pointer; transition: 0.2s; position: relative; display: flex; flex-direction: column;}.psico-cal-cell:hover { border-color: var(--pb-primary, #3b82f6); box-shadow: 0 4px 12px rgba(37,99,235,0.1); }.psico-cal-cell.is-empty { background: transparent; cursor: default; border-color: transparent; }.psico-cal-cell.is-blocked { background: #fef2f2; border-color: #fecaca; }.psico-cal-date { font-weight: bold; font-size: 14px; color: #0f172a; margin-bottom: 5px; }.psico-cal-badge { display: inline-flex; align-items:center; justify-content:center; gap:3px; padding: 4px 6px; border-radius: 4px; font-size: 11px; font-weight: 600; margin-bottom: 2px; width: 100%; box-sizing: border-box; text-align: center;}.psico-dot { display:inline-block; width:8px; height:8px; border-radius:50%; flex-shrink:0; }.badge-res { background: #dcfce7; color: #166534; }.badge-free { background: #e0e7ff; color: #1e40af; }.badge-block { background: #fee2e2; color: #991b1b; }.psico-day-agenda { border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; margin-bottom: 15px; max-height: 250px; overflow-y: auto; }.psico-day-slot { display: flex; padding: 10px; border-bottom: 1px solid #f1f5f9; align-items: center; }.psico-day-slot:last-child { border-bottom: none; }.psico-slot-time { width: 60px; font-weight: bold; color: #64748b; font-size: 13px; }.psico-slot-info { flex: 1; font-size: 13px; display: flex; justify-content: space-between; align-items: center;}.psico-slot-free { color: #10b981; font-style: italic; }.psico-slot-booked { background: #eff6ff; padding: 5px 10px; border-radius: 4px; border-left: 3px solid #3b82f6; flex: 1; margin-right: 10px;}.psico-slot-booked strong { color: #1e3a8a; display: block; }.psico-slot-booked span { color: #475569; font-size: 11px; }.psico-slot-blocked { background: #fef2f2; padding: 5px 10px; border-radius: 4px; border-left: 3px solid #ef4444; flex: 1; margin-right: 10px;}.btn-micro { font-size: 11px; padding: 4px 8px; border-radius: 4px; border: none; cursor: pointer; font-weight: bold; }.btn-micro-red { background: #fee2e2; color: #b91c1c; }.btn-micro-green { background: #dcfce7; color: #166534; }@media(max-width: 768px){.psico-cal-grid { grid-template-columns: repeat(7, minmax(40px, 1fr)); gap: 5px; }.psico-cal-day-label { font-size: 10px; overflow: hidden; text-overflow: ellipsis; }.psico-cal-cell { padding: 5px; min-height: 60px; }.psico-cal-date { font-size: 12px; }.psico-cal-badge { font-size: 9px; padding: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }}/* ==========================================================================3. FRONTEND CLIENTE (FORMULARIO PÚBLICO)========================================================================== */.pb-booknetic-shell { font-family: var(--pb-font, system-ui, -apple-system, sans-serif); max-width: 1150px; margin: 0 auto; background: #fff; border-radius: var(--pb-radius, 12px); box-shadow: 0 10px 40px rgba(0,0,0,0.08); overflow: hidden; border: 1px solid #e2e8f0; box-sizing: border-box !important; width: 100% !important; }.pb-booknetic-shell *, .pb-booknetic-shell *::before, .pb-booknetic-shell *::after { box-sizing: border-box !important; }.pb-stepper { display: flex; justify-content: flex-start; align-items: center; padding: 20px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 15px; width: 100%; }.pb-step { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #94a3b8; font-size: 13px; font-weight: 600; position: relative; z-index: 2; min-width: 70px; flex-shrink: 0; }.pb-step.is-active { color: var(--pb-primary, #2563eb); }.pb-step.is-completed { color: #10b981; }.pb-step-icon { width: 36px; height: 36px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-weight: bold; transition: 0.3s; border: 2px solid #e2e8f0; color: #94a3b8; }.pb-step.is-active .pb-step-icon { background: var(--pb-primary, #2563eb); color: #fff; border-color: var(--pb-primary, #2563eb); box-shadow: 0 0 0 4px var(--pb-light, #eff6ff); }.pb-step.is-completed .pb-step-icon { background: #10b981; color: #fff; border-color: #10b981; }.pb-step-divider { flex: 1; height: 2px; background: #e2e8f0; margin: 0 5px; position: relative; top: -10px; min-width: 20px; flex-shrink: 0; }.pb-booknetic-grid { display: flex; flex-wrap: wrap; width: 100%; }.pb-booknetic-main { flex: 999 1 400px; min-width: 280px; padding: 30px; box-sizing: border-box; }.pb-booknetic-sidebar { flex: 1 1 300px; background: #f8fafc; border-left: 1px solid #e2e8f0; padding: 30px; box-sizing: border-box; }.pb-tab { display: none; animation: pbFadeIn 0.4s ease; width: 100%; }.pb-tab.is-active { display: block; }@keyframes pbFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }.pb-tab-header { margin-bottom: 25px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }.pb-tab-header h2 { margin: 0; font-size: 22px; color: #0f172a; word-break: break-word; }.pb-btn-back { background: none; border: none; color: #64748b; cursor: pointer; font-weight: 600; padding: 0; font-size: 14px; display: flex; align-items: center; gap: 5px; transition: 0.2s; }.pb-btn-back:hover { color: var(--pb-primary, #2563eb); }/* Tarjetas de Selección (Sucursal, Servicio, Profesional) */.pb-client-choice { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 15px; border: 2px solid #e2e8f0; border-radius: var(--pb-radius, 12px); margin-bottom: 12px; cursor: pointer; transition: 0.2s; background: #fff; width: 100%; box-sizing: border-box; }.pb-client-choice:hover { border-color: var(--pb-border, #93c5fd); background: #f8fafc; }.pb-client-choice.is-selected { border-color: var(--pb-primary, #2563eb); background: var(--pb-light, #eff6ff); box-shadow: 0 0 0 1px var(--pb-primary, #2563eb); }.pb-client-choice input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }.pb-choice-main { width: 100%; display: flex; flex-direction: column; gap: 4px; }.pb-choice-title { font-size: 16px; font-weight: bold; color: #0f172a; word-break: break-word; }.pb-choice-desc { color: #64748b; font-size: 13px; line-height: 1.4; word-break: break-word; }/* FIX PIN UBICACION (Misma Linea) */.pb-loc-choice .pb-choice-desc small { display: flex; align-items: flex-start; gap: 5px; }.pb-loc-choice .pb-choice-desc small svg { flex-shrink: 0; margin-top: 2px; margin-right: 0 !important; }.pb-choice-meta { width: 100%; text-align: left; display: flex; flex-direction: row; justify-content: space-between; align-items: center; flex-shrink: 0; }.pb-price { font-weight: bold; color: var(--pb-primary, #2563eb); font-size: 16px; }.pb-duration { font-size: 12px; color: #94a3b8; font-style: normal; font-weight: 600; background: #f1f5f9; padding: 4px 8px; border-radius: 6px; }/* Calendario Frontend (Paso 4) */.pb-step-4-layout { display: flex; flex-direction: column; gap: 15px; }.pb-step-4-cal, .pb-step-4-times { width: 100%; min-width: 0; }.pb-calendar-wrapper { width: 100%; border: 1px solid #e2e8f0; border-radius: var(--pb-radius, 12px); overflow: hidden; background: #fff; box-shadow: 0 4px 6px rgba(0,0,0,0.02); }.pb-calendar-header { display: flex; justify-content: space-between; align-items: center; padding: 15px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; }.pb-cal-prev, .pb-cal-next { background: #fff; border: 1px solid #cbd5e1; border-radius: 6px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #475569; font-weight: bold; transition: 0.2s; }.pb-cal-prev:hover:not(:disabled), .pb-cal-next:hover:not(:disabled) { background: var(--pb-light, #eff6ff); color: var(--pb-primary, #2563eb); border-color: var(--pb-primary, #2563eb); }.pb-cal-prev:disabled, .pb-cal-next:disabled { opacity: 0.4; cursor: not-allowed; background: #f8fafc; }.pb-calendar-days-header { display: grid; grid-template-columns: repeat(7, 1fr); background: #fff; border-bottom: 1px solid #e2e8f0; }.pb-calendar-days-header div { text-align: center; padding: 10px 0; font-size: 12px; font-weight: bold; color: #94a3b8; text-transform: uppercase; }.pb-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); background: #fff; padding: 5px; gap: 2px; }.pb-cal-cell { display: flex; align-items: center; justify-content: center; min-height: 45px; border-radius: calc(var(--pb-radius, 12px) - 4px); font-size: 14px; font-weight: 500; color: #0f172a; transition: 0.2s; box-sizing: border-box; }.pb-date-cell { cursor: pointer; border: 1px solid transparent; background: #f8fafc; }.pb-date-cell:hover:not(.is-disabled):not(.is-past) { border-color: var(--pb-border, #93c5fd); background: var(--pb-light, #eff6ff); color: var(--pb-primary, #2563eb); }.pb-date-cell.is-active { background: var(--pb-primary, #2563eb) !important; color: #fff !important; box-shadow: 0 4px 10px rgba(0,0,0,0.15); font-weight: bold; }.pb-date-cell.is-disabled, .pb-date-cell.is-past { color: #cbd5e1; background: transparent; cursor: not-allowed; }.pb-cal-cell.empty { background: transparent; }/* Horarios Disponibles */.pb-times-wrap { width: 100%; border: 1px solid #e2e8f0; border-radius: var(--pb-radius, 12px); overflow: hidden; background: #fff; box-shadow: 0 4px 6px rgba(0,0,0,0.02); }.pb-times-header { padding: 15px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; text-align: center; }.pb-times-header h4 { margin: 0; color: #0f172a; font-size: 14px; font-weight: bold; }.pb-times-grid-container { padding: 15px; max-height: 285px; overflow: auto; }.pb-times-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; width: 100%; }.pb-time-chip { background: #fff; border: 2px solid #e2e8f0; border-radius: calc(var(--pb-radius, 12px) - 4px); padding: 12px 0; text-align: center; font-weight: 600; color: #475569; cursor: pointer; transition: 0.2s; font-size: 14px; }.pb-time-chip:hover { border-color: var(--pb-border, #93c5fd); color: var(--pb-primary, #2563eb); }.pb-time-chip.is-active { background: var(--pb-primary, #2563eb); border-color: var(--pb-primary, #2563eb); color: #fff; }/* Paso Final y Resumen */.pb-form { display: flex; flex-direction: column; gap: 15px; width: 100%; }.pb-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; color: #475569; font-size: 14px; }.pb-form input, .pb-booknetic-shell input[type="text"], .pb-booknetic-shell input[type="number"], .pb-booknetic-shell input[type="email"], .pb-booknetic-shell input[type="tel"], .pb-booknetic-shell select { padding: 10px 12px; border: 2px solid #e2e8f0; border-radius: calc(var(--pb-radius, 12px) - 4px); font-size: 15px !important; transition: 0.2s; outline: none; box-sizing: border-box !important; width: 100% !important; }.pb-form input:focus { border-color: var(--pb-primary, #2563eb); }.pb-form-row { display: grid; grid-template-columns: 1fr; gap: 15px; width: 100%; }/* ZONA DE PAGO Y BOTÓN DE WEBPAY REPARADA */
.pb-payment-section { margin-top: 20px; background: #f8fafc; border: 2px solid #e2e8f0; border-radius: var(--pb-radius, 12px); padding: 20px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
.pb-payment-info { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; }
.pb-payment-action { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }.pb-payment-secure-badge { display: inline-flex; align-items: center; gap: 6px; background: #dcfce7; color: #166534; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; }.pb-payment-total-box { display: flex; flex-direction: column; align-items: center; margin-top: 8px; }.pb-payment-label { color: #64748b; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;}.pb-payment-amount { color: #0f172a; font-size: 28px; font-weight: 900; line-height: 1; margin-top: 4px; }.pb-submit-webpay { background: var(--pb-primary, #2563eb); color: #fff; border: none; padding: 14px 24px; border-radius: calc(var(--pb-radius, 12px) - 4px); font-size: 16px; font-weight: bold; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; box-shadow: 0 4px 10px rgba(0,0,0,0.1); width: 100% !important; }.pb-submit-webpay:hover { background: var(--pb-hover, #1d4ed8); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,0.15); }.pb-payment-methods { color: #64748b; font-size: 11px; margin-top: 4px; text-align: center; }.pb-card-icons { margin-top: 6px; font-size: 20px; display: flex; gap: 6px; justify-content: center; }.pb-summary-card { position: sticky; top: 20px; }.pb-summary-card h3 { margin: 0 0 20px; font-size: 18px; color: #0f172a; padding-bottom: 10px; border-bottom: 2px solid #e2e8f0; }.pb-summary-items { display: flex; flex-direction: column; gap: 15px; }.pb-summary-item { display: flex; flex-direction: column; gap: 4px; }.pb-summary-item span { font-size: 12px; color: #64748b; text-transform: uppercase; font-weight: bold; }.pb-summary-item strong { font-size: 15px; color: #0f172a; line-height: 1.4; word-break: break-word; }.pb-auth-tabs { display:flex; flex-direction: column; gap:10px; padding:15px; background:#f8fafc; border-bottom:1px solid #e2e8f0; width: 100%; box-sizing: border-box; }.pb-auth-tab { background:none; border:none; padding:10px 20px; font-weight:bold; cursor:pointer; color:#64748b; border-bottom:2px solid transparent; transition:0.2s; width: 100%; text-align: center;}.pb-auth-tab.is-active { color:var(--pb-primary, #2563eb); border-color:var(--pb-primary, #2563eb); }.pb-auth-content { display:none; }.pb-auth-content.is-active { display:block; animation: pbFadeIn 0.4s ease;}.pb-auth-content > div { padding: 20px 15px; box-sizing: border-box; }/* Responsive Grid / Desktop View */@media screen and (min-width: 851px) {.pb-booknetic-sidebar { border-left: 1px solid #e2e8f0; border-top: none; }.pb-stepper { flex-wrap: wrap; }.pb-step span { display: block; }.pb-booknetic-main { padding: 30px; }.pb-client-choice { flex-direction: row; align-items: center; padding: 18px; }.pb-choice-meta { width: auto; text-align: right; align-items: flex-end; flex-direction: column; }.pb-auth-tabs { flex-direction: row; }.pb-auth-tab { width: auto; }.pb-form-row { grid-template-columns: 1fr 1fr; }/* REPARACIÓN DEL FLEXBOX DE WEBPAY EN ESCRITORIO */
.pb-payment-section { flex-direction: row; align-items: center; justify-content: space-between; padding: 25px 30px; }
.pb-payment-info { align-items: flex-start; text-align: left; width: auto; }
.pb-payment-action { align-items: flex-end; text-align: right; width: auto; }
.pb-payment-total-box { align-items: flex-start; }
.pb-submit-webpay { width: auto !important; padding: 14px 30px; }
.pb-payment-methods { text-align: right; }
.pb-card-icons { justify-content: flex-end; }

.pb-step-4-layout { grid-template-columns: 1.3fr 1fr; }
}/* ==========================================================================4. SHORTCODE UBICACIONES GLOBALES========================================================================== */.pb-locations-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; font-family: var(--pb-font, system-ui, -apple-system, sans-serif); width: 100%; box-sizing: border-box; align-items: stretch; }.pb-loc-card { background: #fff; border: 1px solid #e2e8f0; border-radius: var(--pb-radius, 12px); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 4px 6px rgba(0,0,0,0.02); transition: transform 0.2s, box-shadow 0.2s; height: 100%; }.pb-loc-card:hover { transform: translateY(-4px); box-shadow: 0 10px 20px rgba(0,0,0,0.08); }.pb-loc-content { padding: 25px; display: flex; flex-direction: column; flex: 1; }.pb-loc-title { font-size: 18px; font-weight: bold; color: #0f172a; margin: 0 0 10px 0; }.pb-loc-address { font-size: 14px; color: #475569; margin: 0 0 15px 0; display: flex; align-items: flex-start; gap: 8px; line-height: 1.4; }.pb-loc-btn { margin-top: auto; background: transparent; color: var(--pb-primary, #2563eb); border: 1px solid #cbd5e1; padding: 10px 15px; text-align: center; border-radius: 8px; text-decoration: none; font-weight: 600; transition: all 0.2s; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: fit-content; }.pb-loc-btn:hover { background: #f8fafc; border-color: var(--pb-primary, #2563eb); }.pb-loc-map-wrap { height: 200px; background: #e2e8f0; position: relative; margin-top: auto; width: 100%; }.pb-loc-online { background: #fff; }.pb-loc-online-banner { background: linear-gradient(135deg, var(--pb-primary, #2563eb), var(--pb-light, #eff6ff)); height: 200px; margin-top: auto; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; position: relative; overflow: hidden; }.pb-loc-online-banner svg { color: var(--pb-primary, #2563eb); width: 60px; height: 60px; margin-bottom: 10px; }.pb-loc-online-banner span { color: var(--pb-primary, #2563eb); font-weight: 600; font-size: 14px; }.pb-loc-online-badge { background: var(--pb-light, #eff6ff); color: var(--pb-primary, #2563eb); padding: 10px 15px; border-radius: 8px; font-weight: bold; font-size: 13px; text-align: center; width: fit-content; margin-top: auto; display: flex; flex-direction: column; }.pb-loc-online-badge small { font-weight: normal; font-size: 11px; margin-top: 2px; }/* ==========================================================================5. WHATSAPP FLOTANTE========================================================================== */.pb-wa-float { position:fixed; bottom:25px; right:25px; background-color:#25D366; color:#fff!important; border-radius:50%; width:60px; height:60px; display:flex; align-items:center; justify-content:center; font-size:30px; box-shadow:0 4px 10px rgba(0,0,0,0.15); z-index:999999; text-decoration:none; transition:transform 0.3s ease; animation:pb-wa-pulse 2s infinite; }.pb-wa-float:hover { transform:scale(1.1); }.pb-wa-float svg { width:35px; height:35px; fill:currentColor; }@keyframes pb-wa-pulse { 0%{box-shadow:0 0 0 0 rgba(37,211,102,0.7);} 70%{box-shadow:0 0 0 15px rgba(37,211,102,0);} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}}@media(max-width:768px){ .pb-wa-float{bottom:20px;right:20px;width:55px;height:55px;} .pb-wa-float svg{width:30px;height:30px;} }