
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--verde:#0F5D46;--verde2:#3B8C72;--vc:#DDF3EA;--w:#fff;--max-w:1200px;--px:40px}
html{scroll-behavior:smooth}
body{font-family:'Manrope',sans-serif;background:#fff;overflow-x:hidden}
/* Componentes globales compartidos: header, footer, formulario/modal y WhatsApp. */
/* HEADER */
header{position:fixed;top:0;left:0;right:0;z-index:1000;height:80px;background:rgba(255,255,255,.97);box-shadow:0 1px 0 rgba(15,93,70,.08);display:flex;align-items:center;padding:0 var(--px);justify-content:space-between;transition:box-shadow .3s}
header.scrolled{box-shadow:0 1px 24px rgba(15,93,70,.09)}
.hd-logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.hd-lm{width:42px;height:42px;border-radius:10px;background:#0F5D46;display:flex;align-items:center;justify-content:center}
.hd-lm span{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:#fff}
.hd-lt strong{display:block;font-size:14px;font-weight:600;color:#0F5D46;line-height:1.2}
.hd-lt small{font-size:9px;color:#3B8C72;letter-spacing:.9px;text-transform:uppercase}
.hd-nav{display:flex;gap:2px}
.hd-nav a{font-size:14px;font-weight:500;color:#374151;text-decoration:none;padding:7px 13px;border-radius:7px;transition:color .2s;position:relative}
.hd-nav a:hover,.hd-nav a.act{color:#0F5D46}
.hd-nav a.act::after{content:'';position:absolute;bottom:2px;left:13px;right:13px;height:2px;background:#0F5D46;border-radius:2px}
.btn-cita-hd{background:#0F5D46;color:#fff;font-size:13.5px;font-weight:500;padding:10px 20px;border-radius:10px;text-decoration:none;font-family:'Manrope',sans-serif;display:inline-flex;align-items:center;gap:7px;box-shadow:0 3px 12px rgba(15,93,70,.22);transition:background .2s,transform .2s;border:none;cursor:pointer}
.btn-cita-hd:hover{background:#0a4a37;transform:translateY(-1px)}
.btn-cita-hd svg{width:15px;height:15px}
.ham{display:none;flex-direction:column;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:9px;border-radius:8px}
.ham span{display:block;height:1.5px;width:22px;background:#374151;border-radius:2px;transition:transform .3s,opacity .3s}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.ham.open span:nth-child(2){opacity:0}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mm{position:fixed;inset:0;z-index:999;background:rgba(255,255,255,.98);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .32s,transform .32s;padding:40px}
.mm.open{opacity:1;pointer-events:all;transform:translateY(0)}
.mm a{font-size:22px;font-weight:500;color:#1a1a1a;text-decoration:none;padding:13px 32px;width:100%;text-align:center;border-radius:12px;transition:color .2s,background .2s}
.mm a:hover{color:#0F5D46;background:rgba(221,243,234,.5)}
.mm-div{width:48px;height:1px;background:#e5e7eb;margin:10px 0}
.mm-btn{background:#0F5D46;color:#fff!important;font-size:16px;font-weight:500;padding:15px 24px;border-radius:12px}



/* UTILITIES */
.inner{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--px)}
.bp{display:inline-flex;align-items:center;gap:8px;font-family:'Manrope',sans-serif;font-size:14px;font-weight:500;color:#fff;background:#0F5D46;border:2px solid #0F5D46;padding:12px 24px;border-radius:10px;text-decoration:none;box-shadow:0 4px 14px rgba(15,93,70,.2);transition:transform .25s,background .25s;cursor:pointer;border:none}
.bp:hover{background:#0a4a37;transform:translateY(-2px)}
.bp svg{width:16px;height:16px;flex-shrink:0}
.slbl{font-size:10.5px;font-weight:600;color:#3B8C72;letter-spacing:2px;text-transform:uppercase;margin-bottom:11px;display:block}
/* FOOTER */
footer{background:#FAFBFA;border-top:1px solid #E8EEEA;padding:60px 0 0}
.ft-g{display:grid;grid-template-columns:200px 1fr 220px;gap:64px;padding-bottom:52px;align-items:start}
.ft-l{display:flex;flex-direction:column;gap:22px}
.ft-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.ft-lm{width:46px;height:46px;border-radius:12px;background:#0F5D46;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ft-lm span{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:#fff}
.ft-lt strong{display:block;font-size:14px;font-weight:600;color:#0a2e22}
.ft-lt small{font-size:9.5px;color:#3B8C72;letter-spacing:.8px;text-transform:uppercase}
.ft-soc{display:flex;gap:8px}
.ft-sb{width:48px;height:48px;border-radius:50%;background:#fff;border:1px solid rgba(15,93,70,.08);display:flex;align-items:center;justify-content:center;text-decoration:none;color:#6b8a7e;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:all .3s ease}
.ft-sb:hover{color:#0F5D46;transform:translateY(-3px);box-shadow:0 12px 25px rgba(15,93,70,.10)}
.ft-sb svg{width:22px;height:22px}
.ft-cl{display:block;font-size:10px;font-weight:700;color:#3B8C72;letter-spacing:3px;text-transform:uppercase;margin-bottom:20px}
.ft-sedes-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ft-sede-item{}
.ft-cy{display:block;font-size:9.5px;font-weight:700;color:#3B8C72;letter-spacing:2px;text-transform:uppercase;margin-bottom:4px}
.ft-sn{font-size:12.5px;font-weight:600;color:#0a2e22;margin-bottom:8px;line-height:1.3}
.ft-row{display:flex;align-items:flex-start;gap:7px;margin-bottom:4px}
.ft-ri{flex-shrink:0;margin-top:1px;opacity:.5}
.ft-ri svg{width:12px;height:12px}
.ft-rt{font-size:12px;color:#5a7a6a;line-height:1.5}
.ft-ml{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:#0F5D46;text-decoration:none;margin-top:6px;transition:gap .2s}
.ft-ml svg{width:10px;height:10px;transition:transform .2s}
.ft-ml:hover svg{transform:translateX(3px)}
.ft-cis{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.ft-ci{display:flex;align-items:flex-start;gap:10px}
.ft-cii{flex-shrink:0;margin-top:1px;opacity:.55}
.ft-cii svg{width:14px;height:14px}
.ft-civ{font-size:13px;font-weight:500;color:#1a3d30;line-height:1.5}
.ft-civ a{color:#1a3d30;text-decoration:none}
.ft-civ a:hover{color:#0F5D46}
.btn-wa{display:inline-flex;align-items:center;gap:7px;font-family:'Manrope',sans-serif;font-size:12.5px;font-weight:600;color:#fff;background:#0F5D46;border:none;border-radius:10px;padding:10px 18px;text-decoration:none;cursor:pointer;box-shadow:0 3px 10px rgba(15,93,70,.16);transition:background .25s,transform .22s}
.btn-wa:hover{background:#0a4a37;transform:translateY(-2px)}
.btn-wa svg{width:14px;height:14px;flex-shrink:0}
.ft-sep{border:none;border-top:1px solid #E8EEEA;margin:0}
.ft-bot{padding:18px 0 28px;text-align:center}
.ft-cp{font-size:12px;color:#a8bfb5}
.ft-cp span{color:#6b8a7e;font-weight:500}
/* MODALS */
.ov{position:fixed;inset:0;z-index:2000;background:rgba(10,46,34,.45);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .32s}
.ov.open{opacity:1;pointer-events:all}
.mb{background:#fff;border-radius:32px;width:100%;max-width:660px;max-height:90vh;overflow-y:auto;padding:48px 44px 40px;position:relative;box-shadow:0 32px 80px rgba(8,30,20,.18);transform:translateY(18px) scale(.98);opacity:0;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .32s}
.ov.open .mb{transform:translateY(0) scale(1);opacity:1}
.mc{position:absolute;top:18px;right:20px;width:36px;height:36px;border-radius:50%;background:#f4f7f5;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5a7a6a;transition:background .2s,transform .2s}
.mc:hover{background:#e8f0ec;transform:rotate(90deg)}
.mc svg{width:16px;height:16px}
.mt{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;color:#0a2e22;margin-bottom:8px;padding-right:40px;line-height:1.18}
.ms{font-size:13.5px;color:#6b8a7e;line-height:1.6;margin-bottom:32px}
.mrow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.mf{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.mf label{font-size:11.5px;font-weight:600;color:#3d6b58;letter-spacing:.4px}
.mf input,.mf select,.mf textarea{width:100%;font-family:'Manrope',sans-serif;font-size:13.5px;color:#0a2e22;background:#fafcfb;border:1px solid #E8EEEA;border-radius:12px;padding:12px 14px;outline:none;resize:none;transition:border-color .2s,box-shadow .2s;appearance:none}
.mf select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230F5D46' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.mf input:focus,.mf select:focus,.mf textarea:focus{border-color:rgba(15,93,70,.4);box-shadow:0 0 0 3px rgba(15,93,70,.07);background:#fff}
.mf input.err,.mf select.err{border-color:#e57373!important}
.mf textarea{min-height:90px;line-height:1.6}
.char-c{font-size:10.5px;color:#9ab8a8;text-align:right;margin-top:3px}
/* DATE TIME PICKER */
.dt-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.mf input[type="date"]{cursor:pointer}
.mf input[type="date"]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.dt-err{font-size:11px;color:#e57373;margin-top:4px;display:none}
.dt-err.show{display:block}
.wknd-info{background:#f0faf5;border:1px solid rgba(15,93,70,.18);border-left:3px solid #3B8C72;border-radius:12px;padding:13px 15px;margin:0 0 14px}
.wknd-info strong{display:block;font-size:11.5px;font-weight:700;color:#0F5D46;margin-bottom:5px;letter-spacing:.3px}
.wknd-info p{font-size:12px;color:#4a6f62;line-height:1.65;margin:0}
.hora-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.hora-chip{font-family:'Manrope',sans-serif;font-size:12.5px;font-weight:500;color:#3d6b58;background:#fafcfb;border:1px solid #E8EEEA;border-radius:8px;padding:7px 12px;cursor:pointer;transition:background .18s,border-color .18s,color .18s;user-select:none}
.hora-chip:hover{background:#f0faf5;border-color:rgba(15,93,70,0.25)}
.hora-chip.sel{background:#DDF3EA;border-color:rgba(15,93,70,0.35);color:#0a2e22;font-weight:600}
.hora-chip.dis{opacity:.35;cursor:not-allowed;pointer-events:none}
.hora-none{font-size:12.5px;color:#9ab8a8;font-style:italic}
.chlbl{font-size:11.5px;font-weight:600;color:#3d6b58;letter-spacing:.4px;margin-bottom:10px;display:block}
.cherr{font-size:11px;color:#e57373;margin-top:4px;display:none}
.cherr.show{display:block}
.chg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cho{display:inline-flex;align-items:center;gap:7px;background:#fafcfb;border:1px solid #E8EEEA;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:500;color:#3d6b58;cursor:pointer;user-select:none;transition:background .2s,border-color .2s}
.cho:hover{background:#f2faf6;border-color:rgba(15,93,70,.2)}
.cho.sel{background:#DDF3EA;border-color:rgba(15,93,70,.3);color:#0a2e22;font-weight:600}
.chk{width:16px;height:16px;border-radius:50%;background:transparent;border:1.5px solid #c0d8cc;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s}
.cho.sel .chk{background:#0F5D46;border-color:#0F5D46}
.chk svg{width:9px;height:9px;opacity:0;transition:opacity .15s}
.cho.sel .chk svg{opacity:1}
.btn-wsub{width:100%;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:9px;font-family:'Manrope',sans-serif;font-size:14.5px;font-weight:600;color:#fff;background:#0F5D46;border:none;border-radius:14px;padding:15px 24px;cursor:pointer;box-shadow:0 4px 14px rgba(15,93,70,.2);transition:background .25s,transform .2s}
.btn-wsub:hover{background:#0a4a37;transform:translateY(-1px)}
.btn-wsub svg{width:17px;height:17px;flex-shrink:0}
/* MODAL TESTIMONIOS */
.ov2{position:fixed;inset:0;z-index:2001;background:rgba(10,46,34,.45);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .32s}
.ov2.open{opacity:1;pointer-events:all}
.mb2{background:#fff;border-radius:28px;width:100%;max-width:520px;padding:44px 40px 36px;position:relative;box-shadow:0 32px 80px rgba(10,46,34,.18);transform:translateY(16px) scale(.98);opacity:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .32s;max-height:90vh;overflow-y:auto}
.ov2.open .mb2{transform:translateY(0) scale(1);opacity:1}
.mt2{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:600;color:#0a2e22;margin-bottom:8px}
.ms2{font-size:13.5px;color:#5a7a6a;margin-bottom:28px;line-height:1.65}
.mrow2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mstars{display:flex;gap:5px;margin-top:4px}
.mstar{width:28px;height:28px;cursor:pointer;color:#D4DDD8;transition:color .18s,transform .18s}
.mstar.sel{color:#2d8a5e}
.mstar:hover{transform:scale(1.15)}
.btn-sm{width:100%;margin-top:24px;font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;color:#fff;background:#0F5D46;border:none;border-radius:14px;padding:14px 24px;cursor:pointer;box-shadow:0 4px 14px rgba(15,93,70,.2);transition:background .25s,transform .2s}
.btn-sm:hover{background:#0a4a37;transform:translateY(-1px)}
.msuc{display:none;flex-direction:column;align-items:center;text-align:center;padding:16px 0 8px;gap:16px}
.msuc.show{display:flex}
.msuc-ic{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#DDF3EA,#a8d8be);display:flex;align-items:center;justify-content:center}
.msuc-ic svg{width:28px;height:28px}
.msuc-t{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;color:#0a2e22}
.msuc-s{font-size:14px;color:#5a7a6a;line-height:1.65;max-width:340px}
.msuc-n{font-size:12px;color:#9ab8a8;background:#f4f7f5;border-radius:10px;padding:10px 16px}



/* CITA FORM FAQ */
.cfq-wrap{margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(15,93,70,.12)}
.cfq-lbl{display:block;margin:0 0 10px;font-family:inherit;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9ab8a8}
.cfq-item{border-bottom:1px solid rgba(15,93,70,.07)}
.cfq-item:last-child{border-bottom:none}
.cfq-q{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 0;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;font-size:12.5px;font-weight:500;color:#1a2e27;transition:color .18s}
.cfq-q:hover,.cfq-q[aria-expanded="true"]{color:#0F5D46}
.cfq-ic{width:14px;height:14px;flex-shrink:0;color:#9ab8a8;transition:transform .28s cubic-bezier(.4,0,.2,1)}
.cfq-q[aria-expanded="true"] .cfq-ic{transform:rotate(180deg)}
.cfq-a{overflow:hidden;max-height:0;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .25s ease;opacity:0}
.cfq-a.open{max-height:120px;opacity:1}
.cfq-a p{margin:0;padding:0 0 11px;font-size:12.5px;line-height:1.6;color:#4a6f62}



/* ════════════════════════════════════════════
   RESPONSIVE — copiado de index.php
════════════════════════════════════════════ */
@media(max-width:960px){
  :root{--px:28px}
  .hd-nav,.btn-cita-hd{display:none}
  .ham{display:flex}
  .ft-g{grid-template-columns:1fr 1fr;gap:40px}
  .ft-l{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}
  .mrow,.mrow2{grid-template-columns:1fr}
  .mb{padding:36px 28px 32px;border-radius:24px}
  .mf{margin-bottom:10px}
  .cfq-wrap{margin:14px 0 0;padding-top:12px}
  .cfq-q{padding:8px 0;font-size:12px}
  .cfq-a p{font-size:12px}
}
@media(max-width:768px){
  header{height:60px;padding:0 var(--px)}
  .hd-logo{gap:9px}
  .hd-lm{width:36px;height:36px;border-radius:8px;flex-shrink:0}
  .hd-lm span{font-size:13px}
  .hd-lt strong{font-size:12.5px}
  .hd-lt small{font-size:8.5px}
  .ham{width:36px;height:36px;padding:8px}
  .ham span{width:20px}
  .ft-cl{font-size:11.5px;letter-spacing:2.5px;margin-bottom:16px}
  .ft-sn{font-size:14px;margin-bottom:10px}
  .ft-rt{font-size:11.5px;color:#6b8a7e}
  .ft-civ{font-size:14.5px}
  .ft-civ a{font-size:14.5px}
  .ft-sede-item{padding-bottom:20px}
  .ft-cis{gap:18px}
}
@media(max-width:640px){
  :root{--px:20px}
  .ft-g{grid-template-columns:1fr;gap:28px}
  .ft-l{flex-direction:column;align-items:flex-start}
  .ft-sedes-grid{grid-template-columns:1fr}
  .mrow,.mrow2{grid-template-columns:1fr}
  .mb{padding:28px 20px 28px;border-radius:20px;max-height:95vh}
  .mf{margin-bottom:8px}
  .mf label{font-size:11px}
  .mf input,.mf select,.mf textarea{font-size:14px;padding:9px 12px}
  .hora-chip{font-size:12px;padding:7px 10px}
  .cfq-wrap{margin:12px 0 0;padding-top:10px}
  .cfq-lbl{font-size:10px;margin-bottom:8px}
  .cfq-q{padding:7px 0;font-size:11.5px}
  .cfq-a p{font-size:11.5px}
  .btn-wsub{padding:13px;font-size:13px}
  .mb2{padding:36px 24px 32px;border-radius:22px}
}


.wa-float{position:fixed;bottom:28px;right:28px;z-index:1500;display:flex;align-items:center;gap:0;cursor:pointer;text-decoration:none}
.wa-float-btn{width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.35),0 2px 8px rgba(0,0,0,.12);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;flex-shrink:0;position:relative;z-index:1}
.wa-float-btn svg{width:30px;height:30px;fill:#fff}
.wa-float-label{background:#fff;color:#0a2e22;font-family:'Manrope',sans-serif;font-size:13px;font-weight:500;white-space:nowrap;padding:9px 18px 9px 20px;border-radius:999px 0 0 999px;box-shadow:0 4px 16px rgba(0,0,0,.10);opacity:0;transform:translateX(12px);transition:opacity .22s ease,transform .22s ease;pointer-events:none;position:absolute;right:48px;border:1px solid rgba(37,211,102,.18);border-right:none}
.wa-float:hover .wa-float-btn{transform:scale(1.08);box-shadow:0 8px 28px rgba(37,211,102,.45),0 3px 12px rgba(0,0,0,.14)}
.wa-float:hover .wa-float-label{opacity:1;transform:translateX(0)}
@media(max-width:768px){
  .wa-float{bottom:20px;right:20px}
  .wa-float-btn{width:52px;height:52px}
  .wa-float-label{display:none}
}
