
:root{
  --ivory:#FBFAF6;
  --ivory-2:#F4F2EA;
  --white:#FFFFFF;
  --green-900:#0F3319;
  --green-800:#164A26;
  --green-700:#1D6132;
  --green-500:#46B446;
  --green-50:#EAF6EC;
  --lime:#C9F04A;
  --lime-soft:#E8FBB8;
  --gold:#FAC800;
  --maroon:#6B1414;
  --ink:#12190F;
  --ink-2:#3D473C;
  --ink-3:#6E786C;
  --line:#E4E2D7;
  --line-2:#EFEDE4;
  --danger:#C0392B;
  --danger-bg:#FDEDEB;
  --warn:#B87A00;
  --warn-bg:#FFF6E0;
  --ok:#1D6132;
  --ok-bg:#EAF6EC;
  --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:28px;
  --sh-sm:0 2px 8px rgba(18,25,15,.05);
  --sh:0 8px 28px rgba(18,25,15,.07);
  --sh-lg:0 20px 56px rgba(18,25,15,.12);
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  font-family:'Inter',system-ui,sans-serif;background:var(--ivory);color:var(--ink);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
.dsp{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.13}
.mono{font-family:'IBM Plex Mono',monospace}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2.5px solid var(--green-700);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;
  border-radius:100px;font-weight:600;font-size:.94rem;transition:.16s ease;white-space:nowrap;line-height:1.2}
.btn svg{width:17px;height:17px;flex-shrink:0}
.btn-p{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff;
  box-shadow:0 2px 8px rgba(15,51,25,.18)}
.btn-p:hover{background:linear-gradient(135deg,var(--green-900),var(--green-800));transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(15,51,25,.32)}
.btn-lime{background:linear-gradient(135deg,var(--lime),#B4E634);color:var(--green-900);
  box-shadow:0 2px 8px rgba(201,240,74,.3)}
.btn-lime:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(201,240,74,.45)}
.btn-o{background:var(--white);color:var(--ink);border:1.5px solid var(--line)}
.btn-o:hover{border-color:var(--green-600,var(--green-500));color:var(--green-800);transform:translateY(-2px);
  background:var(--green-50);box-shadow:0 6px 16px rgba(29,97,50,.14)}
.btn-wa{background:linear-gradient(135deg,#25D366,#1FB855);color:#fff;box-shadow:0 2px 8px rgba(37,211,102,.28)}
.btn-wa:hover{background:linear-gradient(135deg,#1FB855,#17A047);transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(37,211,102,.4)}
.btn-sm{padding:9px 17px;font-size:.85rem}
.btn-xs{padding:7px 13px;font-size:.78rem}
.btn-block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}

/* ---------- TAGS ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--green-800);
  background:var(--green-50);padding:6px 13px;border-radius:100px;font-weight:600;margin-bottom:16px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;
  padding:4px 11px;border-radius:100px;letter-spacing:.01em}
.pill-ok{background:var(--ok-bg);color:var(--ok)}
.pill-warn{background:var(--warn-bg);color:var(--warn)}
.pill-dan{background:var(--danger-bg);color:var(--danger)}
.pill-neu{background:var(--ivory-2);color:var(--ink-2)}
.pill::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.75}

/* ---------- SECTIONS ---------- */
section{padding:84px 0}
@media(max-width:820px){section{padding:56px 0}}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem)}
h2{font-size:clamp(1.65rem,3.3vw,2.4rem)}
h3{font-size:1.12rem;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif}
.sec-head{max-width:660px;margin-bottom:44px}
.sec-head p{color:var(--ink-2);font-size:1.03rem;margin-top:13px}
.g-accent{color:var(--green-700)}

/* ---------- CARDS ---------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;
  transition:.18s ease}
.card-h:hover{transform:translateY(-4px);box-shadow:var(--sh-lg);border-color:transparent}
.ico{width:46px;height:46px;border-radius:13px;background:var(--green-50);display:flex;
  align-items:center;justify-content:center;flex-shrink:0}
.ico svg{width:22px;height:22px;color:var(--green-800)}
.ico-lime{background:var(--lime-soft)}

/* ---------- PROMO BAR ---------- */
.promo-bar{background:linear-gradient(90deg,var(--green-900),var(--green-700));color:#fff;padding:10px 0}
.promo-in{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;text-align:center}
.promo-in span{font-size:.86rem}
.promo-in b{color:var(--lime)}
.promo-cta{background:var(--lime);color:var(--green-900);font-weight:700;font-size:.8rem;
  padding:7px 14px;border-radius:100px;white-space:nowrap;transition:.15s;flex-shrink:0}
.promo-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(201,240,74,.4)}
@media(max-width:640px){.promo-in{flex-direction:column;gap:8px}.promo-in span{font-size:.8rem}}

/* ---------- HEADER ---------- */
.hdr{position:sticky;top:0;z-index:200;background:var(--ivory);border-bottom:1px solid transparent;transition:.2s}
.hdr.scr{border-color:var(--line);box-shadow:0 2px 18px rgba(18,25,15,.05)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0}
.logo{display:flex;align-items:center;gap:9px;flex-shrink:0}
.logo img{height:46px;width:auto;object-fit:contain;max-width:150px}
.logo-txt{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:.98rem;
  color:var(--green-800);letter-spacing:-.02em;line-height:1.1}
.logo-txt small{display:block;font-size:.6rem;font-weight:600;color:var(--ink-3);letter-spacing:.09em;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:26px}
.nav>a{font-size:.88rem;font-weight:500;color:var(--ink-2);transition:.15s;white-space:nowrap}
.nav>a:hover{color:var(--green-800)}
.hdr-act{display:flex;align-items:center;gap:9px;flex-shrink:0}
.dd{position:relative}
.dd-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 17px;border-radius:100px;
  border:1.5px solid var(--green-800);color:var(--green-800);font-weight:600;font-size:.85rem;transition:.15s}
.dd-btn:hover{background:var(--green-800);color:#fff}
.dd-btn svg{width:13px;height:13px;transition:transform .2s}
.dd.open .dd-btn svg{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 9px);right:0;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-lg);min-width:232px;padding:7px;opacity:0;visibility:hidden;
  transform:translateY(-7px);transition:.17s ease;z-index:210}
.dd.open .dd-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dd-menu a{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;border-radius:var(--r-sm);transition:.13s}
.dd-menu a:hover{background:var(--green-50)}
.dd-menu svg{width:18px;height:18px;color:var(--green-800);flex-shrink:0;margin-top:2px}
.dd-menu b{display:block;font-size:.88rem;font-weight:600}
.dd-menu span{display:block;font-size:.74rem;color:var(--ink-3);line-height:1.4}
.burger{display:none;flex-direction:column;gap:5px;padding:9px;border-radius:9px}
.burger span{width:21px;height:2px;background:var(--ink);border-radius:2px;transition:.2s}
.hdr-wa{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:50%;background:#25D366;color:#fff;flex-shrink:0}
.hdr-wa svg{width:20px;height:20px}

@media(max-width:1140px){.nav>a{font-size:.83rem}.nav{gap:18px}}
@media(max-width:1000px){
  .nav{position:fixed;inset:62px 0 0 auto;width:min(320px,84vw);background:var(--white);
    flex-direction:column;align-items:stretch;gap:0;padding:22px 20px;box-shadow:var(--sh-lg);
    transform:translateX(105%);transition:transform .26s ease,visibility .26s;overflow-y:auto;
    z-index:205;border-left:1px solid var(--line);visibility:hidden}
  .nav.open{transform:translateX(0);visibility:visible}
  .nav>a{font-size:1rem;padding:13px 0;border-bottom:1px solid var(--line-2)}
  .burger{display:none}
  .nav-ov{position:fixed;inset:62px 0 0 0;background:rgba(18,25,15,.32);opacity:0;visibility:hidden;
    transition:.24s;z-index:204}
  .nav-ov.on{opacity:1;visibility:visible}
}
@media(max-width:680px){
  .logo img{height:36px}
  .logo-txt{display:none}
  .hdr-act .dd-btn span{display:none}
  .hdr-act .dd-btn{padding:9px 12px}
  .hdr-in{gap:8px}
  .hdr-act{gap:7px}
  .hdr-act .btn-p{padding:9px 14px;font-size:.82rem}
  .hdr-wa{width:38px;height:38px}
}
@media(max-width:400px){
  .hdr-act .btn-p{padding:9px 12px;font-size:.78rem}
}

/* ---------- PAGE ROUTER ---------- */
.page{display:none;animation:pgin .32s ease}
.page.on{display:block}
@keyframes pgin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.nav>a.on{color:var(--green-800);font-weight:600;position:relative}
.nav>a.on::after{content:'';position:absolute;left:0;right:0;bottom:-15px;height:2.5px;
  background:var(--green-700);border-radius:2px}
@media(max-width:1000px){.nav>a.on::after{display:none}
  .nav>a.on{background:var(--green-50);border-radius:8px;padding-left:10px;padding-right:10px}}

/* encabezado de página interna */

.phead h1{font-size:clamp(1.7rem,3.6vw,2.6rem);margin-bottom:10px}
.phead p{color:var(--ink-2);font-size:1rem;max-width:620px}
.crumb{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:11px}
.crumb b{color:var(--green-800)}

/* cuadrícula de accesos (inicio móvil y escritorio) */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:820px){.tiles{grid-template-columns:repeat(2,1fr);gap:11px}}
.tile{background:var(--white);border:1.5px solid var(--line);border-radius:var(--r-lg);
  padding:20px 18px;text-align:left;transition:.16s;display:flex;flex-direction:column;gap:11px}
.tile:hover{border-color:var(--green-500);transform:translateY(-3px);box-shadow:var(--sh)}
.tile .ico{width:42px;height:42px;border-radius:12px}
.tile b{font-family:'Plus Jakarta Sans',sans-serif;font-size:.98rem;font-weight:700;display:block}
.tile span{font-size:.82rem;color:var(--ink-3);line-height:1.45}
.tile svg.arw{width:15px;height:15px;color:var(--green-700);margin-top:auto}
@media(max-width:520px){.tile{padding:15px 14px;gap:8px}.tile b{font-size:.88rem}.tile span{font-size:.75rem}}

/* ---------- QUICK ACTIONS (draggable) ---------- */
.qa{background:var(--white);border-bottom:1px solid var(--line);padding:13px 0;position:relative;z-index:5}
.qa-in{display:flex;align-items:center;gap:10px;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.qa-track{display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;
  padding:3px 1px;cursor:grab;flex:1}
.qa-track::-webkit-scrollbar{display:none}
.qa-track.drag{cursor:grabbing;scroll-behavior:auto}
.qa-item{display:flex;align-items:center;gap:9px;padding:11px 17px;background:var(--ivory);
  border:1.5px solid var(--line);border-radius:100px;font-size:.86rem;font-weight:600;
  white-space:nowrap;flex-shrink:0;transition:.15s;user-select:none}
.qa-item:hover{border-color:var(--green-700);background:var(--green-50);color:var(--green-800)}
.qa-item svg{width:17px;height:17px;color:var(--green-700)}
.qa-item.on{background:var(--green-800);border-color:var(--green-800);color:#fff}
.qa-item.on svg{color:var(--lime)}
.qa-arw{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:var(--white);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s}
.qa-arw:hover{border-color:var(--green-700);background:var(--green-50)}
.qa-arw svg{width:15px;height:15px;color:var(--ink-2)}
.qa-arw:disabled{opacity:.3;cursor:default}
.qa-dots{display:none;justify-content:center;gap:5px;margin-top:9px}
.qa-dots i{width:5px;height:5px;border-radius:50%;background:var(--line);transition:.2s}
.qa-dots i.on{background:var(--green-700);width:16px;border-radius:3px}
@media(max-width:900px){.qa-arw{display:none}.qa-dots{display:flex}}

/* ---------- HERO ---------- */
.hero{padding:60px 0 46px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-180px;right:-140px;width:520px;height:520px;
  background:radial-gradient(circle,rgba(201,240,74,.28),transparent 68%);pointer-events:none}
.hero-in{display:grid;grid-template-columns:1.06fr .94fr;gap:52px;align-items:center;position:relative}
@media(max-width:940px){.hero-in{grid-template-columns:1fr;gap:40px}.hero{padding:36px 0 40px}}
.hero h1{margin-bottom:18px}
.hero-lead{font-size:1.07rem;color:var(--ink-2);max-width:520px;margin-bottom:28px}
.hero-cta{display:flex;gap:11px;flex-wrap:wrap}
.hero-facts{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.fact{display:flex;align-items:center;gap:9px;font-size:.85rem;font-weight:500;color:var(--ink-2)}
.fact svg{width:17px;height:17px;color:var(--green-700);flex-shrink:0}

/* hero visual */
.hv{position:relative;display:flex;align-items:center;justify-content:center;min-height:400px}
.hv-ring{position:absolute;border-radius:50%;border:1px solid var(--line)}
.hv-r1{width:400px;height:400px}
.hv-r2{width:296px;height:296px;border-style:dashed;animation:sp 46s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media(max-width:940px){.hv{min-height:340px}.hv-r1{width:320px;height:320px}.hv-r2{width:240px;height:240px}}
.hv-card{position:relative;width:290px;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:24px;z-index:2}
.hv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}
.hv-brand{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:.72rem;
  color:var(--green-800);letter-spacing:.02em}
.hv-plate{font-family:'IBM Plex Mono',monospace;font-size:1.5rem;font-weight:600;letter-spacing:.09em;
  background:var(--ink);color:var(--gold);padding:11px;border-radius:10px;text-align:center;margin-bottom:17px}
.hv-row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line-2);font-size:.81rem}
.hv-row span:first-child{color:var(--ink-3)}
.hv-row span:last-child{font-weight:600}
.hv-chip{position:absolute;background:var(--white);border:1px solid var(--line);border-radius:100px;
  padding:9px 15px;box-shadow:var(--sh);font-size:.77rem;font-weight:600;display:flex;align-items:center;gap:7px;z-index:3}
.hv-chip svg{width:14px;height:14px;flex-shrink:0}
.hv-c1{bottom:-14px;left:-14px;color:var(--green-800)}
.hv-c2{top:8px;left:-26px;color:var(--maroon)}
@media(max-width:520px){.hv-c1,.hv-c2{left:-4px}.hv-card{width:262px}}

/* ---------- STRIP (marquesina en loop) ---------- */
.strip{background:linear-gradient(100deg,var(--green-900) 0%,var(--green-700) 50%,var(--green-900) 100%);
  padding:26px 0;overflow:hidden;position:relative}
.strip::before,.strip::after{content:'';position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.strip::before{left:0;background:linear-gradient(90deg,var(--green-900),transparent)}
.strip::after{right:0;background:linear-gradient(270deg,var(--green-900),transparent)}
.strip-track{display:flex;gap:46px;width:max-content;animation:marquee 34s linear infinite}
.strip:hover .strip-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.strip-item{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.18rem;font-weight:700;
  color:#fff;letter-spacing:-.01em;display:flex;align-items:center;gap:12px;white-space:nowrap}
.strip-item svg{width:22px;height:22px;color:var(--lime);flex-shrink:0}
@media(max-width:600px){.strip{padding:20px 0}.strip-item{font-size:1rem}.strip-track{gap:32px}}
@media (prefers-reduced-motion:reduce){.strip-track{animation:none}}

/* ---------- VEHICLE SELECTOR (cascada) ---------- */
.vsel{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:660px}
@media(max-width:560px){.vsel{grid-template-columns:1fr}}
.vcard{background:var(--white);border:2px solid var(--line);border-radius:var(--r-lg);padding:24px;
  text-align:left;transition:.17s;position:relative}
.vcard:hover{border-color:var(--green-500);transform:translateY(-3px);
  box-shadow:0 10px 26px rgba(29,97,50,.16);background:linear-gradient(160deg,var(--white),var(--green-50))}
.vcard.sel{border-color:var(--green-700);
  background:linear-gradient(150deg,var(--green-50),#DDF3E1);box-shadow:0 6px 20px rgba(29,97,50,.18)}
.vcard.sel svg{color:var(--green-800)}
.vcard.sel::after{content:'✓';position:absolute;top:15px;right:17px;width:23px;height:23px;
  background:var(--green-700);color:#fff;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:.75rem;font-weight:700}
.vcard svg{width:34px;height:34px;color:var(--green-700);margin-bottom:13px}
.vcard b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;margin-bottom:4px}
.vcard span{font-size:.84rem;color:var(--ink-3)}
.vgroup-sel{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px}
@media(max-width:760px){.vgroup-sel{grid-template-columns:1fr}}
.vsub-wrap{margin-top:26px;max-width:900px}
.vsub-lbl{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:11px;font-weight:600}
.vsub-sel{display:flex;flex-wrap:wrap;gap:9px}
.vsub-chip{padding:10px 18px;border-radius:100px;border:1.5px solid var(--line);background:var(--white);
  font-size:.87rem;font-weight:600;transition:.15s;position:relative}
.vsub-chip:hover:not(.soon){border-color:var(--green-500);background:var(--green-50);
  color:var(--green-800);transform:translateY(-1px);box-shadow:0 4px 12px rgba(29,97,50,.14)}
.vsub-chip.sel{background:linear-gradient(135deg,var(--green-800),var(--green-600,var(--green-700)));
  border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(29,97,50,.32)}
.vsub-chip.soon{opacity:.6;cursor:not-allowed;color:var(--ink-3)}
.vsub-chip .soon-tag{display:block;font-size:.63rem;color:var(--gold);font-weight:700;letter-spacing:.04em;margin-top:1px}
.vsub-chip.sel .soon-tag{color:var(--lime)}

/* ---------- GRIDS ---------- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:940px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- STEPS ---------- */
.steps{background:var(--ivory-2)}
.step{position:relative;padding-right:22px}
.step-n{width:44px;height:44px;border:1.5px solid var(--green-800);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.9rem;color:var(--green-800);margin-bottom:16px;background:var(--ivory-2)}
.step h3{margin-bottom:7px}
.step p{font-size:.9rem;color:var(--ink-2)}

/* ---------- CALC ---------- */
.calc{background:var(--ink);border-radius:var(--r-xl);padding:38px;color:#fff;
  display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
@media(max-width:800px){.calc{grid-template-columns:1fr;padding:26px;gap:26px}}
.calc h3{color:#fff;font-size:1.32rem;margin-bottom:9px}
.calc>div>p{color:#A9B4A6;font-size:.88rem;margin-bottom:20px}
.fld{margin-bottom:15px}
.fld label{display:block;font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.09em;
  text-transform:uppercase;color:#93A091;margin-bottom:7px;font-weight:600}
.calc select,.calc input{width:100%;padding:13px 15px;border-radius:11px;border:1px solid #2B382B;
  background:#1C251A;color:#fff;font-size:.93rem}
.calc select:focus,.calc input:focus{outline:none;border-color:var(--lime)}
.calc-out{background:#1C251A;border:1px solid #2B382B;border-radius:var(--r);padding:26px;text-align:center}
.calc-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:2.3rem;font-weight:800;color:var(--lime);line-height:1.1}
.calc-price.pend{font-size:1.05rem;color:#C6D1C4;font-weight:600;line-height:1.45}
.calc-note{font-size:.76rem;color:#93A091;margin-top:9px}

/* ---------- FORMS ---------- */
.finput{width:100%;padding:13px 15px;border-radius:11px;border:1.5px solid var(--line);
  background:var(--white);font-size:.93rem;transition:.15s}
.finput:focus{outline:none;border-color:var(--green-700);box-shadow:0 0 0 3px rgba(29,97,50,.09)}
.finput::placeholder{color:var(--ink-3)}
.flabel{display:block;font-size:.79rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
.fchk{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--ink-2);line-height:1.5}
.fchk input{width:17px;height:17px;margin-top:2px;flex-shrink:0;accent-color:var(--green-700)}
.ferr{color:var(--danger);font-size:.76rem;margin-top:5px;display:none}
.ferr.on{display:block}
.finput.bad{border-color:var(--danger);background:#FFF8F7}
.finput.good{border-color:var(--green-500);background:#F6FCF7}
.finput.good + .fok, .fok{display:none}
.finput.good ~ .ferr{display:none}
.fieldwrap{position:relative}
.fieldwrap .fmark{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;
  display:none;pointer-events:none}
.fieldwrap .finput.good ~ .fmark.ok{display:block;color:var(--green-600,var(--green-500))}
.fieldwrap .finput.bad ~ .fmark.no{display:block;color:var(--danger)}
.plate-hint{font-size:.76rem;color:var(--green-800);background:var(--green-50);border-radius:8px;
  padding:7px 11px;margin-top:7px;display:none;align-items:center;gap:7px}
.plate-hint.on{display:flex}
.plate-hint b{font-weight:700}

/* booking slots */
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:9px}
.slot{padding:11px 6px;border:1.5px solid var(--line);border-radius:10px;background:var(--white);
  font-size:.85rem;font-weight:600;font-family:'IBM Plex Mono',monospace;transition:.14s;text-align:center}
.slot:hover:not(:disabled){border-color:var(--green-700);background:var(--green-50)}
.slot.sel{background:var(--green-800);color:#fff;border-color:var(--green-800)}
.slot:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.bk-steps{display:flex;gap:6px;margin-bottom:24px;flex-wrap:wrap}
.bk-step{flex:1;min-width:70px;height:4px;border-radius:3px;background:var(--line);transition:.3s}
.bk-step.on{background:var(--green-700)}
.bk-lbl{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:6px;font-weight:600}

/* success state */
.done{text-align:center;padding:30px 16px}
.done-ico{width:62px;height:62px;border-radius:50%;background:var(--green-50);display:flex;
  align-items:center;justify-content:center;margin:0 auto 17px;animation:pop .4s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.done-ico svg{width:30px;height:30px;color:var(--green-700)}
.done h3{margin-bottom:8px;font-size:1.25rem}
.done p{color:var(--ink-2);font-size:.9rem;max-width:390px;margin:0 auto 18px}
.done-box{background:var(--green-50);border-radius:var(--r);padding:16px;max-width:340px;margin:0 auto 18px;text-align:left}
.done-box div{display:flex;justify-content:space-between;padding:6px 0;font-size:.84rem}
.done-box div span:last-child{font-weight:600}

/* ---------- GIFT BANNER ---------- */
.gift-banner{display:flex;align-items:center;gap:24px;background:linear-gradient(120deg,#241B00,#4A3800);
  border:1.5px solid var(--gold);border-radius:var(--r-xl);padding:30px 34px;margin-bottom:24px;color:#fff}
.gift-banner h2{color:#fff;font-size:1.5rem;margin:6px 0 8px}
.gift-banner p{color:rgba(255,255,255,.82);font-size:.92rem;max-width:560px}
.gift-tag{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);font-weight:700}
.gift-ico{font-size:2.6rem;flex-shrink:0;background:rgba(240,180,0,.15);width:76px;height:76px;
  border-radius:50%;display:flex;align-items:center;justify-content:center}
@media(max-width:640px){.gift-banner{flex-direction:column;text-align:center;padding:26px 22px}}

/* ---------- FAQ ---------- */
.faq-nav{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px}
.faq-cat{padding:10px 17px;border-radius:100px;border:1.5px solid var(--line);background:var(--white);
  font-size:.85rem;font-weight:600;color:var(--ink-2);transition:.15s}
.faq-cat:hover{border-color:var(--green-500);background:var(--green-50);color:var(--green-800);transform:translateY(-1px)}
.faq-cat.on{background:linear-gradient(135deg,var(--green-800),var(--green-700));border-color:transparent;
  color:#fff;box-shadow:0 4px 14px rgba(29,97,50,.3)}
.faq-num{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--green-600,var(--green-500));
  font-weight:700;margin-right:11px;flex-shrink:0}
.faq-i{border-bottom:1px solid var(--line);transition:.15s}
.faq-i:hover{background:var(--green-50);border-radius:var(--r-sm)}
.faq-i.open{background:var(--green-50);border-radius:var(--r-sm)}
.faq-q{padding:20px 16px}
.faq-i.open .faq-q{color:var(--green-800)}
.faq-a p{padding:0 16px 20px 16px}
.faq-cta{margin-top:34px;background:linear-gradient(135deg,var(--green-50),#DDF3E1);
  border:1.5px solid var(--green-500);border-radius:var(--r-lg);padding:28px 30px;
  display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;max-width:760px}

.faq{max-width:760px}
.faq-i{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;padding:20px 16px;display:flex;align-items:center;gap:0;
  font-weight:600;font-size:.98rem;font-family:'Plus Jakarta Sans',sans-serif;line-height:1.4}
.faq-q svg{margin-left:auto}
.faq-q svg{width:17px;height:17px;flex-shrink:0;color:var(--green-700);transition:transform .22s}
.faq-i.open .faq-q svg{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .26s ease}
.faq-a p{padding-bottom:19px;color:var(--ink-2);font-size:.9rem}

/* ---------- MAP / CONTACT ---------- */
.map{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);height:330px;background:var(--ivory-2)}
.map iframe{width:100%;height:100%;border:0}
.cinfo{display:flex;gap:14px;align-items:flex-start;padding:20px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-lg)}
.cinfo h4{font-size:.95rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;margin-bottom:3px}
.cinfo p{font-size:.86rem;color:var(--ink-2)}
.cinfo a{color:var(--green-800);font-weight:600}

/* ---------- CTA FINAL ---------- */
.cta{background:linear-gradient(135deg,var(--green-900),var(--green-700));border-radius:var(--r-xl);
  padding:52px 44px;color:#fff;text-align:center;position:relative;overflow:hidden}
.cta::before{content:'';position:absolute;top:-90px;right:-60px;width:290px;height:290px;
  background:radial-gradient(circle,rgba(201,240,74,.22),transparent 70%)}
.cta h2{color:#fff;margin-bottom:12px;position:relative}
.cta p{color:rgba(255,255,255,.84);max-width:520px;margin:0 auto 26px;position:relative;font-size:1rem}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative}
@media(max-width:600px){.cta{padding:36px 22px}}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:#A9B4A6;padding:54px 0 22px}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:34px;margin-bottom:36px}
@media(max-width:820px){.f-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:480px){.f-grid{grid-template-columns:1fr}}
.f-logo{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.f-logo img{height:38px;width:auto;object-fit:contain;background:#fff;padding:4px 6px;border-radius:8px}
.f-logo b{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:#fff;font-size:.95rem}
footer p{font-size:.85rem;line-height:1.65}
footer h5{color:#fff;font-family:'IBM Plex Mono',monospace;font-size:.72rem;text-transform:uppercase;
  letter-spacing:.1em;margin-bottom:14px}
footer li{margin-bottom:9px;font-size:.86rem}
footer li a:hover{color:#fff}
.f-bot{border-top:1px solid #263025;padding-top:20px;display:flex;justify-content:space-between;
  gap:12px;flex-wrap:wrap;font-size:.77rem}

/* ---------- ASISTENTE IA (FAQ) ---------- */
.ai-f{position:fixed;bottom:22px;right:88px;width:56px;height:56px;border-radius:50%;background:var(--green-800);
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.24);z-index:150;transition:.15s}
.ai-f:hover{transform:scale(1.08);background:var(--green-900)}
.ai-f svg{width:26px;height:26px;color:#fff}
@media(max-width:600px){.ai-f{bottom:16px;right:80px;width:52px;height:52px}}
.ai-panel{position:fixed;bottom:90px;right:22px;width:360px;max-width:calc(100vw - 32px);height:480px;max-height:70vh;
  background:var(--white);border-radius:var(--r-lg);box-shadow:var(--sh-lg);border:1px solid var(--line);
  display:none;flex-direction:column;overflow:hidden;z-index:160}
.ai-panel.on{display:flex}
.ai-hd{background:var(--green-800);padding:14px 16px;display:flex;justify-content:space-between;align-items:center}
.ai-hd-brand{display:flex;align-items:center;gap:10px}
.ai-hd-brand img{height:28px;background:#fff;padding:3px;border-radius:6px}
.ai-hd-brand b{color:#fff;font-size:.88rem;display:block}
.ai-hd-brand span{color:rgba(255,255,255,.7);font-size:.7rem}
.ai-hd .iconbtn{background:rgba(255,255,255,.15);border-color:transparent}
.ai-hd .iconbtn svg{color:#fff}
.ai-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--ivory)}
.ai-msg{max-width:84%;padding:10px 13px;border-radius:14px;font-size:.85rem;line-height:1.5}
.ai-msg.bot{background:var(--white);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.ai-msg.user{background:var(--green-800);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.ai-msg a{color:var(--green-700);font-weight:600}
.ai-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:7px;width:100%;
  margin-top:11px;padding:10px 16px;border-radius:100px;background:linear-gradient(135deg,var(--green-700),var(--green-500));
  color:#fff!important;font-weight:700;font-size:.82rem;text-decoration:none!important;
  box-shadow:0 3px 10px rgba(29,97,50,.28);transition:.16s}
.ai-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(29,97,50,.4);
  background:linear-gradient(135deg,var(--green-800),var(--green-700))}
.ai-btn svg{width:14px;height:14px;flex-shrink:0}
.ai-typing{display:flex!important;gap:4px;align-items:center;padding:14px 15px!important}
.ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-3);animation:aiblink 1.2s infinite}
.ai-typing span:nth-child(2){animation-delay:.2s}
.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes aiblink{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.ai-msg.bot a{text-decoration:underline}
.ai-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 14px 10px}
.ai-chip{font-size:.72rem;padding:6px 11px;border-radius:100px;border:1px solid var(--line);background:var(--white);font-weight:600;color:var(--ink-2)}
.ai-chip:hover{border-color:var(--green-500);color:var(--green-800)}
.ai-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--white)}
.ai-input input{flex:1;border:1.5px solid var(--line);border-radius:100px;padding:10px 15px;font-size:.85rem}
.ai-input input:focus{outline:none;border-color:var(--green-700)}
.ai-input button{width:38px;height:38px;border-radius:50%;background:var(--green-800);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-input button svg{width:16px;height:16px}

/* ---------- WA FLOAT ---------- */
.wa-f{position:fixed;bottom:22px;right:22px;width:56px;height:56px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.24);
  z-index:150;transition:.15s}
.wa-f:hover{transform:scale(1.08)}
.wa-f svg{width:28px;height:28px;color:#fff}
@media(max-width:600px){.wa-f{bottom:16px;right:16px;width:52px;height:52px}}




/* ═══ MENÚ HAMBURGUESA DE PORTALES — delegación global ═══ */
document.addEventListener('click', e=>{
  const btn = e.target.closest('[data-sideopen]');
  if(!btn) return;
  const target = btn.dataset.sideopen;
  const side = target==='cli' ? document.getElementById('cliSide') : document.getElementById('admSide');
  if(!side) return;
  e.stopPropagation();
  const isOpen = side.classList.toggle('open');
  let ov = side.parentElement.querySelector('.side-ov');
  if(!ov){ ov=document.createElement('div'); ov.className='side-ov'; side.parentElement.appendChild(ov); }
  ov.classList.toggle('on', isOpen);
  ov.onclick = ()=>{ side.classList.remove('open'); ov.classList.remove('on'); };
});

/* ---------- REVEAL ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}

/* ---------- SIMULADOR DE TARIFAS ---------- */
.sim-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:22px;align-items:start;max-width:1000px}
@media(max-width:900px){.sim-layout{grid-template-columns:1fr}}
.sim-card{padding:18px 20px}
.sim-card svg{width:28px;height:28px;margin-bottom:9px}
.sim-srv-grid{display:flex;flex-direction:column;gap:10px}
.sim-srv-grid .vsub-chip{text-align:left;padding:14px 18px;font-size:.9rem;border-radius:var(--r)}
.sim-summary{background:linear-gradient(160deg,var(--green-900),var(--green-700));border-radius:var(--r-lg);
  padding:24px;color:#fff;position:sticky;top:90px}
.sim-sum-hd{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--lime);font-weight:700;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:6px}
.sim-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.1);font-size:.85rem}
.sim-k{color:rgba(255,255,255,.65)}
.sim-v{font-weight:700;text-align:right}
.sim-row.done .sim-v{color:var(--lime)}
.sim-price{margin-top:18px;background:rgba(255,255,255,.09);border-radius:var(--r);padding:16px;text-align:center}
.sim-price-lbl{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:5px}
.sim-price-val{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1rem;line-height:1.35;color:var(--lime)}
.sim-trust{display:flex;flex-direction:column;gap:6px;margin-top:16px;font-size:.76rem;color:rgba(255,255,255,.78)}

/* ---------- HORARIOS ---------- */
.hrs-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
@media(max-width:480px){.hrs-grid{grid-template-columns:1fr}}
.hrs-card{background:var(--white);border:1.5px solid var(--line);border-radius:var(--r);
  padding:13px 15px;display:flex;flex-direction:column;gap:3px;transition:.15s;position:relative}
.hrs-card:hover{border-color:var(--green-500);background:linear-gradient(160deg,var(--white),var(--green-50));
  transform:translateY(-2px);box-shadow:0 6px 16px rgba(29,97,50,.13)}
.hrs-star{background:linear-gradient(150deg,var(--green-50),#DDF3E1);border-color:var(--green-500);
  grid-column:1/-1;padding-top:34px}
.hrs-badge{position:absolute;top:9px;left:15px;background:var(--green-800);color:#fff;
  font-size:.6rem;font-weight:800;letter-spacing:.07em;padding:3px 8px;border-radius:100px}
.hrs-day{font-size:.78rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.hrs-time{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.02rem;font-weight:700;color:var(--green-800)}
.hrs-star .hrs-time{font-size:1.18rem}
.hrs-note{margin-top:12px;font-size:.82rem;color:var(--green-800);background:var(--green-50);
  padding:10px 13px;border-radius:var(--r-sm);line-height:1.5}

/* ---------- SERVICIOS ---------- */
.svc-card{position:relative;display:flex;flex-direction:column}
.svc-time{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:14px;
  font-size:.78rem;font-weight:600;color:var(--green-800)}
.svc-time svg{width:14px;height:14px}
.svc-tag-free{position:absolute;top:14px;right:14px;background:var(--gold);color:#241900;
  font-size:.66rem;font-weight:800;padding:4px 9px;border-radius:100px;letter-spacing:.03em}

/* ---------- CÓDIGOS ---------- */
.code-box{display:flex;flex-direction:column;align-items:center;gap:4px;
  background:linear-gradient(135deg,#241B00,#4A3800);border:1.5px dashed var(--gold);
  border-radius:var(--r);padding:16px 20px;margin-bottom:16px;max-width:340px}
.code-lbl{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gold);font-weight:700}
.code-val{font-family:'IBM Plex Mono',monospace;font-size:1.5rem;font-weight:600;color:#fff;letter-spacing:.08em}
.code-hint{font-size:.72rem;color:rgba(255,255,255,.65)}
.done-box .code-box{max-width:none;margin-bottom:14px}

/* ---------- LEGAL ---------- */
.legal-nav{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}
.legal-tab{padding:10px 18px;border-radius:100px;border:1.5px solid var(--line);background:var(--white);
  font-size:.86rem;font-weight:600;color:var(--ink-2);transition:.15s}
.legal-tab:hover{border-color:var(--green-500);color:var(--green-800);background:var(--green-50)}
.legal-tab.on{background:linear-gradient(135deg,var(--green-800),var(--green-700));border-color:transparent;color:#fff;
  box-shadow:0 4px 12px rgba(29,97,50,.25)}
.legal-body{max-width:760px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:34px}
.legal-body h2{font-size:1.4rem;margin-bottom:20px;padding-bottom:14px;border-bottom:2px solid var(--green-50)}
.legal-body h3{font-size:1rem;color:var(--green-800);margin:24px 0 8px}
.legal-body p{font-size:.92rem;color:var(--ink-2);margin-bottom:12px;line-height:1.7}
.legal-body ul{margin:0 0 14px 20px;padding:0}
.legal-body li{font-size:.92rem;color:var(--ink-2);margin-bottom:8px;line-height:1.65}
.legal-body b{color:var(--ink)}
.legal-upd{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:.8rem!important;
  color:var(--ink-3)!important;font-style:italic}
@media(max-width:600px){.legal-body{padding:22px 18px}}

/* ---------- SELECTOR DE CREDENCIALES ---------- */
.cred-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cred-pick{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;
  background:rgba(255,255,255,.6);border:1px solid #E8DCB8;border-radius:9px;transition:.14s}
.cred-pick:hover{background:#fff;border-color:var(--gold);transform:translateX(2px)}
.cred-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.cred-pick b{display:block;font-size:.82rem;color:#5A4300;line-height:1.2}
.cred-pick small{display:block;font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:#8A6D14}

/* ---------- ROLES ---------- */
.role-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;transition:.15s}
.role-card:hover{box-shadow:0 6px 18px rgba(18,25,15,.1)}
.role-card b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;display:block}
.role-card p{font-size:.8rem;color:var(--ink-3);margin:3px 0 10px}
.role-mods{display:flex;flex-wrap:wrap;gap:5px}
.role-mods span{font-size:.68rem;background:var(--ivory-2);color:var(--ink-2);padding:3px 8px;border-radius:100px}

/* ---------- VISTAS POR PERFIL ---------- */
.ger-hero,.ase-hero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--green-900),var(--green-700));border-radius:var(--r-lg);
  padding:26px 30px;color:#fff;margin-bottom:20px}
.ase-hero{background:linear-gradient(135deg,#3A2A00,#7A5A00)}
.ger-hero h2,.ase-hero h2{color:#fff;font-size:1.5rem;margin:4px 0}
.ger-hero p,.ase-hero p{color:rgba(255,255,255,.75);font-size:.86rem}
.ger-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--lime);font-weight:700}
.ger-hero>div:first-child,.ase-hero>div:first-child{flex:1;min-width:220px}
.ger-hero-kpi{text-align:center;padding:0 18px;border-left:1px solid rgba(255,255,255,.18)}
.ger-hero-kpi span{display:block;font-size:.7rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.05em}
.ger-hero-kpi b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.9rem;color:var(--lime)}
.ase-meta{min-width:250px;background:rgba(0,0,0,.2);border-radius:var(--r);padding:16px 20px}
.ase-meta-lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.65)}
.ase-meta-num{font-family:'Plus Jakarta Sans',sans-serif;font-size:2rem;font-weight:800;color:var(--gold);line-height:1.1;margin:3px 0 8px}
.ase-meta-num small{font-size:1rem;color:rgba(255,255,255,.55);font-weight:600}
.ase-meta-ft{display:block;margin-top:9px;font-size:.76rem;color:rgba(255,255,255,.8)}
.ger-bar-row{display:flex;justify-content:space-between;font-size:.86rem;margin-bottom:6px}
.ger-bar-row b{font-family:'IBM Plex Mono',monospace;color:var(--green-800)}
.ger-total{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;
  border-top:2px solid var(--line);font-size:.9rem}
.ger-total b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.2rem;color:var(--green-800)}
.ger-adv{padding:14px 0;border-bottom:1px solid var(--line-2)}
.ger-adv:last-child{border-bottom:none}
.ger-adv-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ger-adv-ft{margin-top:7px;font-size:.8rem}
.kpi-win{background:linear-gradient(140deg,#EAF6EC,#D3EFD9);border-color:var(--green-500)}
.kpi-win .kpi-v{color:var(--green-800);font-size:1.85rem}
.ase-cita{display:flex;align-items:center;gap:16px;padding:14px;border:1.5px solid var(--line);
  border-radius:var(--r);margin-bottom:10px;transition:.15s;flex-wrap:wrap}
.ase-cita:hover{border-color:var(--green-500);box-shadow:0 6px 18px rgba(29,97,50,.12)}
.ase-cita.llego{background:linear-gradient(120deg,#EAF6EC,#F6FCF7);border-color:var(--green-500)}
.ase-cita.nollego{background:var(--danger-bg);border-color:#F3C9C3}
.ase-cita-time{font-family:'IBM Plex Mono',monospace;font-size:1.05rem;font-weight:600;
  color:var(--green-800);background:var(--green-50);padding:9px 13px;border-radius:9px;flex-shrink:0}
.ase-cita-body{flex:1;min-width:150px}
.ase-cita-body b{display:block;font-size:.95rem}
.ase-cita-body span{font-size:.8rem;color:var(--ink-3);font-family:'IBM Plex Mono',monospace}
.ase-cita-act{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.prev-banner{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,#241B00,#4A3800);
  border:1.5px solid var(--gold);border-radius:var(--r-lg);padding:22px 26px;margin-bottom:20px;color:#fff}
.prev-ico{font-size:2.2rem}
.prev-banner b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.1rem;display:block;margin-bottom:4px}
.prev-banner p{font-size:.86rem;color:rgba(255,255,255,.78)}
.prev-ev{background:#FFF6E0!important;border-color:var(--gold)!important;color:#7A5A00!important}
.code-chip{font-family:'IBM Plex Mono',monospace;font-size:.78rem;background:var(--ink);color:var(--gold);
  padding:4px 9px;border-radius:6px;letter-spacing:.04em}
.rep-card{display:flex;align-items:center;gap:16px;padding:15px;border:1.5px solid var(--line);
  border-radius:var(--r);margin-bottom:10px;transition:.15s}
.rep-card:hover{border-color:var(--green-500);box-shadow:0 6px 16px rgba(29,97,50,.12)}
.rep-card b{font-size:.94rem;display:block}
.rep-card p{font-size:.8rem;color:var(--ink-3);margin-top:2px}
.rep-ico{font-size:1.5rem;flex-shrink:0}
.rep-lock{opacity:.5;background:var(--ivory-2)}
.rep-lock:hover{border-color:var(--line);box-shadow:none}

/* ---------- BOTONES CLIENTE ---------- */
.btn-cta-green{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:linear-gradient(135deg,#25D366,#1FB855);color:#fff;font-weight:700;font-size:.95rem;
  padding:15px 26px;border-radius:100px;box-shadow:0 4px 14px rgba(37,211,102,.35);transition:.16s}
.btn-cta-green:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(37,211,102,.45)}
.btn-cta-green svg{width:19px;height:19px;flex-shrink:0}
.btn-soft-green{background:var(--green-50);color:var(--green-800);border:1.5px solid var(--green-500);
  font-weight:700;padding:11px 20px;border-radius:100px;font-size:.86rem;transition:.15s;
  display:inline-flex;align-items:center;gap:6px}
.btn-soft-green:hover{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff;
  border-color:transparent;transform:translateY(-2px);box-shadow:0 6px 18px rgba(29,97,50,.3)}
.btn-soft-red{background:var(--danger-bg);color:var(--danger);border:1.5px solid #F3C9C3;
  font-weight:700;padding:11px 20px;border-radius:100px;font-size:.86rem;transition:.15s}
.btn-soft-red:hover{background:var(--danger);color:#fff;border-color:transparent;transform:translateY(-2px)}
.btn-soft-green.btn-xs,.btn-soft-red.btn-xs{padding:7px 14px;font-size:.78rem}
.cli-code{margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--green-800);
  background:var(--green-50);padding:7px 12px;border-radius:8px;display:inline-block}
.cli-code b{letter-spacing:.05em}

/* ---------- CRÉDITOS CLIENTE ---------- */
.credit-card{border:1.5px solid var(--line);border-radius:var(--r-lg);padding:20px;margin-bottom:14px;transition:.15s}
.credit-card:hover{border-color:var(--green-500);box-shadow:0 6px 18px rgba(29,97,50,.12)}
.credit-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding-bottom:14px;border-bottom:1px solid var(--line-2);margin-bottom:14px}
.credit-hd b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;display:block}
.credit-hd small{color:var(--ink-3);font-size:.78rem}
.credit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.credit-grid{grid-template-columns:1fr}}
.credit-item{background:var(--ivory);border-radius:var(--r-sm);padding:11px 13px}
.credit-item span{display:block;font-size:.73rem;color:var(--ink-3);text-transform:uppercase;
  letter-spacing:.04em;font-weight:600;margin-bottom:3px}
.credit-item b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;color:var(--green-800)}
.credit-full{grid-column:1/-1;background:var(--green-50)}
.credit-pending{font-size:.88rem;color:var(--ink-2);background:var(--ivory);padding:14px;border-radius:var(--r-sm)}





/* ---------- ENCABEZADO DE PÁGINA CON FOTO DE FONDO ---------- */

.phead .wrap{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:inherit}
.phead-bg{position:absolute;inset:0 0 0 auto;width:72%;z-index:0;pointer-events:none;overflow:hidden}
.phead-bg img{width:100%;height:100%;object-fit:cover;object-position:center 45%;opacity:.88;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 12%,rgba(0,0,0,.55) 28%,rgba(0,0,0,.92) 48%,#000 66%),
                     linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 12%,rgba(0,0,0,.55) 28%,rgba(0,0,0,.92) 48%,#000 66%),
                     linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);
          mask-composite:intersect}
.phead-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ivory-2) 0%,rgba(244,242,234,.88) 9%,rgba(244,242,234,.42) 24%,rgba(244,242,234,.06) 44%,rgba(244,242,234,0) 58%)}
.phead h1,.phead p,.phead .crumb{max-width:380px}
@media(max-width:940px){
    .phead-bg{width:100%}
  .phead-bg img{opacity:.55;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.55) 35%,#000 100%);
            mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.55) 35%,#000 100%)}
  .phead-bg::after{background:linear-gradient(180deg,rgba(244,242,234,.90) 0%,rgba(244,242,234,.34) 55%,rgba(244,242,234,.66) 100%)}
  .phead h1,.phead p,.phead .crumb{max-width:none}
}

/* ═══════ ENCABEZADO CON FOTO (definitivo) ═══════ */
.phead{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--ivory-2);border-bottom:1px solid var(--line);
  padding:42px 0 38px;min-height:180px;
}
.phead .wrap{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:inherit}
.phead h1,.phead p,.phead .crumb{max-width:380px}

.phead-bg{
  position:absolute;top:0;right:0;bottom:0;left:auto;
  width:65%;z-index:0;pointer-events:none;overflow:hidden;
}
.phead-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 45%;
  opacity:.75;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.15) 15%,rgba(0,0,0,.6) 35%,#000 60%);
          mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.15) 15%,rgba(0,0,0,.6) 35%,#000 60%);
}
.phead-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ivory-2) 0%,rgba(244,242,234,.85) 12%,rgba(244,242,234,.35) 28%,transparent 52%),
             linear-gradient(180deg,transparent 0%,transparent 78%,var(--ivory-2) 100%);
}

@media(max-width:940px){
  .phead{min-height:140px;padding:30px 0 26px}
  .phead-bg{width:100%;opacity:.7}
  .phead-bg img{opacity:.45;
    -webkit-mask-image:none;mask-image:none}
  .phead-bg::after{background:linear-gradient(180deg,
    rgba(244,242,234,.88) 0%,rgba(244,242,234,.45) 50%,rgba(244,242,234,.82) 100%)}
  .phead h1,.phead p,.phead .crumb{max-width:none}
}
@media(max-width:640px){
  .phead{min-height:120px;padding:24px 0 22px}
}

/* ---------- FONDO FOTOGRÁFICO DEL HERO ---------- */
.hero{position:relative;overflow:hidden}
.hero-in{position:relative;z-index:2;grid-template-columns:1fr!important;max-width:var(--maxw)}
.hero-in > div{max-width:440px}
.hero-bg{position:absolute;top:0;right:0;bottom:0;width:74%;z-index:0;pointer-events:none}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 42%;opacity:.90;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 14%,rgba(0,0,0,.55) 30%,rgba(0,0,0,.92) 50%,#000 68%),
                     linear-gradient(180deg,#000 0%,#000 62%,transparent 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 14%,rgba(0,0,0,.55) 30%,rgba(0,0,0,.92) 50%,#000 68%),
                     linear-gradient(180deg,#000 0%,#000 62%,transparent 100%);
          mask-composite:intersect}
.hero-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ivory) 0%,rgba(251,250,246,.86) 10%,rgba(251,250,246,.40) 26%,rgba(251,250,246,.06) 46%,rgba(251,250,246,0) 60%)}
@media(max-width:940px){
  .hero-bg{width:100%;opacity:1}
  .hero-bg img{object-position:center 44%;opacity:.62;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 30%,#000 100%);
            mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 30%,#000 100%)}
  .hero-bg::after{background:linear-gradient(180deg,rgba(251,250,246,.90) 0%,rgba(251,250,246,.30) 50%,rgba(251,250,246,.62) 100%)}
  .hero-in > div{max-width:none}
}

/* Foto de fondo en el hero (obsoleto) */
.hv-photo{position:absolute;inset:0 -4% 8% 14%;border-radius:var(--r-xl);overflow:hidden;z-index:0;
  box-shadow:0 18px 50px rgba(15,51,25,.22)}
.hv-photo img{width:100%;height:100%;object-fit:cover}
.hv-photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(15,51,25,.42))}
.hv-card{z-index:3;margin-right:auto;margin-left:-6%;margin-top:14%}
.hv-chip{z-index:4}
.hv-ring{z-index:1;opacity:.5}
@media(max-width:940px){.hv-photo{inset:0 0 10% 10%}.hv-card{margin-left:0;margin-top:8%}}
@media(max-width:600px){.hv-photo{inset:0 0 14% 6%;border-radius:var(--r-lg)}.hv-card{margin-top:6%}}

/* ═══════════ COMPONENTES CON FOTOGRAFÍA ═══════════ */

/* --- Banda ancha con foto de fondo y texto encima --- */
.photo-band{position:relative;border-radius:var(--r-xl);overflow:hidden;
  min-height:340px;display:flex;align-items:center;isolation:isolate}
.photo-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 9s ease}
.photo-band:hover img{transform:scale(1.05)}
.photo-band::after{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(15,51,25,.93) 0%,rgba(15,51,25,.80) 38%,rgba(15,51,25,.34) 62%,rgba(15,51,25,.12) 100%)}
.photo-band-txt{padding:34px 38px;color:#fff;max-width:640px}
.photo-band-txt .eyebrow{background:rgba(201,240,74,.18);color:var(--lime);backdrop-filter:blur(4px)}
.photo-band-txt h2{color:#fff;margin-bottom:9px}
.photo-band-txt p{color:rgba(255,255,255,.85);font-size:.95rem}
.photo-band-txt .btn{margin-top:18px}
@media(max-width:600px){.photo-band{min-height:280px}.photo-band-txt{padding:24px 22px}}

/* --- Tarjeta de foto con pie que sube al pasar el cursor --- */
.photo-card{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;
  box-shadow:var(--sh);transition:.2s ease}
.photo-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.photo-card:hover img{transform:scale(1.07)}
.photo-card figcaption{position:absolute;inset:auto 0 0 0;padding:34px 20px 18px;color:#fff;
  background:linear-gradient(0deg,rgba(15,51,25,.93),transparent);
  font-family:'Plus Jakarta Sans',sans-serif}
.photo-card figcaption b{display:block;font-size:1rem;font-weight:700;margin-bottom:2px}
.photo-card figcaption span{font-size:.8rem;color:rgba(255,255,255,.8)}
.photo-card .tagx{position:absolute;top:14px;left:14px;background:var(--lime);color:var(--green-900);
  font-size:.66rem;font-weight:800;letter-spacing:.05em;padding:5px 11px;border-radius:100px}

/* --- Galería --- */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.photo-grid{grid-template-columns:1fr}}

/* --- Foto dentro del hero --- */
.hero-photo{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);
  aspect-ratio:16/11}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(200deg,transparent 45%,rgba(15,51,25,.55) 100%)}
.hero-photo-badge{position:absolute;left:16px;bottom:16px;z-index:2;display:flex;align-items:center;gap:9px;
  background:rgba(255,255,255,.94);border-radius:100px;padding:9px 16px;box-shadow:var(--sh);
  font-size:.82rem;font-weight:700;color:var(--green-800)}
.hero-photo-badge svg{width:15px;height:15px;color:var(--green-700)}

/* --- Bloque con foto al lado --- */
.photo-split{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}
@media(max-width:860px){.photo-split{grid-template-columns:1fr;gap:24px}}
.photo-split .ph{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh)}
.photo-split .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.photo-split .ph:hover img{transform:scale(1.05)}

/* Aparición suave de las fotos */
.ph-rv{opacity:0;transform:scale(.97);transition:opacity .7s ease,transform .7s ease}
.ph-rv.in{opacity:1;transform:none}


/* ═══════════ AJUSTES DE ENCUADRE, ANIMACIÓN Y MÓVIL ═══════════ */

/* Logo sin recortes */
.logo{padding-left:2px;min-width:0}
.logo img{height:44px;width:auto;max-width:170px;object-fit:contain;display:block;flex-shrink:0}
.hdr-in{padding-left:4px;padding-right:4px}

/* Márgenes laterales seguros */
.wrap{padding-left:22px;padding-right:22px}
@media(max-width:600px){.wrap{padding-left:18px;padding-right:18px}}
@media(max-width:380px){.wrap{padding-left:15px;padding-right:15px}}

/* Separación hero / banda siguiente */
.hero{padding-bottom:66px}
@media(max-width:940px){.hero{padding-bottom:42px}}

/* Animación de entrada de fotos */
.ph-rv{opacity:0;transform:translateY(26px) scale(.985);
  transition:opacity .75s cubic-bezier(.22,.9,.3,1), transform .75s cubic-bezier(.22,.9,.3,1)}
.ph-rv.in{opacity:1;transform:none}
.photo-grid .ph-rv:nth-child(2){transition-delay:.09s}
.photo-grid .ph-rv:nth-child(3){transition-delay:.18s}

/* Fondos fotográficos: entran deslizando */
.hero-bg,.phead-bg{opacity:0;transform:translateX(30px);
  transition:opacity .9s cubic-bezier(.22,.9,.3,1), transform 1.1s cubic-bezier(.22,.9,.3,1)}
.page.on .hero-bg,.page.on .phead-bg{opacity:1;transform:none}

@keyframes slowzoom{from{transform:scale(1)}to{transform:scale(1.07)}}
.photo-band.in img{animation:slowzoom 22s ease-out forwards}
@media (prefers-reduced-motion:reduce){
  .ph-rv,.hero-bg,.phead-bg{transition:none}.photo-band.in img{animation:none}}

/* Ventajas en 2 columnas, más grandes en desktop */
.ventajas{gap:18px;max-width:960px}
.ventajas .card{padding:28px 26px;display:flex;align-items:flex-start;gap:18px;min-height:120px}
.ventajas .card .ico{flex-shrink:0;width:52px;height:52px;margin:0;border-radius:14px}
.ventajas .card .ico svg{width:24px;height:24px}
.ventajas .card h3{margin:0 0 6px!important;font-size:1.1rem}
.ventajas .card p{font-size:.94rem!important;margin:0;line-height:1.55}
@media(max-width:560px){.ventajas{grid-template-columns:1fr;gap:12px}
  .ventajas .card{padding:18px 16px;gap:13px;min-height:auto}
  .ventajas .card .ico{width:40px;height:40px;border-radius:11px}
  .ventajas .card .ico svg{width:20px;height:20px}
  .ventajas .card h3{font-size:.94rem}.ventajas .card p{font-size:.84rem!important}}

/* Portal admin: menú lateral sin recortes */
.side{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}
.side::-webkit-scrollbar{width:5px}
.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.snav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}
.snav::-webkit-scrollbar{width:4px}
.snav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:3px}
.side-foot{flex-shrink:0;position:sticky;bottom:0;background:var(--green-900);
  padding-top:12px;box-shadow:0 -12px 20px rgba(15,51,25,.6)}
.side .logo,.side-user{flex-shrink:0}
.snav a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmain,.pbody{min-width:0;overflow-x:hidden;max-width:100%}

/* Acceso administrativo */
.login-box h1{font-size:1.72rem;letter-spacing:-.02em}
.login-field{position:relative;margin-bottom:16px}
.login-field .flabel{display:flex;align-items:center;gap:7px;font-size:.76rem;
  text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:700;margin-bottom:7px}
.login-field .flabel svg{width:14px;height:14px;color:var(--green-700)}
.login-field .finput{padding:15px 17px;border-radius:13px;font-size:.96rem;border-width:1.5px;transition:.16s}
.login-field .finput:focus{border-color:var(--green-700);box-shadow:0 0 0 4px rgba(29,97,50,.10);transform:translateY(-1px)}
.login-box form .btn{padding:16px;font-size:1rem;border-radius:100px;margin-top:6px;
  box-shadow:0 6px 20px rgba(15,51,25,.24)}
.login-box form .btn:hover{box-shadow:0 12px 30px rgba(15,51,25,.34)}
.login-secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:20px;
  font-size:.77rem;color:var(--ink-3)}
.login-secure svg{width:14px;height:14px;color:var(--green-700)}

/* ═══════════ CELULAR ═══════════ */
@media(max-width:640px){
  :root{font-size:15px}
  h1{font-size:1.72rem!important;line-height:1.16}
  h2{font-size:1.34rem!important;line-height:1.2}
  h3{font-size:1rem}
  .hero-lead,.sec-head p,p{font-size:.9rem}
  .eyebrow{font-size:.62rem;padding:5px 10px;margin-bottom:12px}
  .crumb{font-size:.62rem}
  section{padding:38px 0}
  .sec-head{margin-bottom:26px}
  .hero{padding:26px 0 34px}
  
  .btn{padding:11px 18px;font-size:.87rem}
  .btn-sm{padding:8px 14px;font-size:.8rem}
  .hero-cta{gap:8px}
  .hero-cta .btn{flex:1 1 auto;justify-content:center}
  .hdr-in{padding-top:9px;padding-bottom:9px;gap:7px}
  .logo img{height:36px;max-width:132px}
  .hdr-act{gap:6px}
  .hdr-wa{width:35px;height:35px}
  .hdr-wa svg{width:17px;height:17px}
  .hdr-act .btn-p{padding:8px 13px;font-size:.77rem}
  .promo-bar{padding:8px 0}
  .promo-in span{font-size:.72rem;line-height:1.4}
  .promo-cta{font-size:.72rem;padding:6px 12px}
  .qa{padding:10px 0}
  .qa-item{padding:9px 14px;font-size:.78rem}
  .qa-item svg{width:15px;height:15px}
  .card{padding:18px 16px;border-radius:16px}
  .tile{padding:14px 13px;gap:7px;border-radius:15px}
  .tile b{font-size:.85rem}
  .tile span{font-size:.72rem;line-height:1.35}
  .tile .ico{width:36px;height:36px;border-radius:10px}
  .tile .ico svg{width:18px;height:18px}
  .ico{width:40px;height:40px;border-radius:11px}
  .ico svg{width:19px;height:19px}
  .hero-facts{gap:9px;margin-top:22px}
  .fact{font-size:.79rem}
  .strip{padding:15px 0}
  .strip-item{font-size:.9rem;gap:9px}
  .strip-item svg{width:17px;height:17px}
  .strip-track{gap:26px}
  .photo-band{min-height:230px;border-radius:18px}
  .photo-band-txt{padding:20px 18px}
  .photo-band-txt h2{font-size:1.24rem!important}
  .photo-band-txt p{font-size:.84rem}
  .photo-card{border-radius:15px}
  .photo-card figcaption{padding:26px 14px 13px}
  .photo-card figcaption b{font-size:.88rem}
  .photo-card figcaption span{font-size:.73rem}
  .tagx{font-size:.6rem;padding:4px 9px}
  .photo-grid{gap:11px}
  .photo-split{gap:20px}
  .finput{padding:11px 13px;font-size:.88rem}
  .flabel{font-size:.74rem}
  .fgrid{gap:11px}
  .slots{grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:7px}
  .slot{padding:9px 4px;font-size:.78rem}
  .faq-cat{padding:8px 13px;font-size:.78rem}
  .faq-q{padding:16px 13px;font-size:.88rem}
  .faq-a p{padding:0 13px 16px;font-size:.85rem}
  .faq-num{font-size:.7rem;margin-right:8px}
  .faq-cta{padding:20px 18px;gap:16px}
  .hrs-card{padding:11px 13px}
  .hrs-time{font-size:.94rem}
  .hrs-star .hrs-time{font-size:1.05rem}
  .cinfo{padding:15px;gap:11px}
  .cinfo h4{font-size:.88rem}
  .cinfo p{font-size:.81rem}
  .cta{padding:30px 20px;border-radius:18px}
  .cta h2{font-size:1.3rem!important}
  .cta p{font-size:.88rem}
  .gift-banner{padding:20px 17px;gap:15px}
  .gift-banner h2{font-size:1.2rem!important}
  .gift-banner p{font-size:.83rem}
  .gift-ico{width:56px;height:56px;font-size:1.9rem}
  footer{padding:38px 0 18px}
  footer p,footer li{font-size:.8rem}
  .wa-f,.ai-f{width:48px;height:48px}
  .wa-f svg{width:24px;height:24px}
  .ai-f svg{width:22px;height:22px}
  .ai-f{right:72px}
  .login-box h1{font-size:1.45rem}
  .login-field .finput{padding:13px 15px;font-size:.92rem}
  .login-box form .btn{padding:14px;font-size:.94rem}
}
@media(max-width:380px){
  :root{font-size:14.5px}
  h1{font-size:1.56rem!important}
  .hdr-act .btn-p{padding:7px 11px;font-size:.73rem}
  .logo img{height:32px;max-width:112px}
}




/* ═══════ PORTALES: OPTIMIZACIÓN MÓVIL ═══════ */

@media(max-width:640px){
  /* Portales: todo más pequeño y cómodo */
  .pmain{padding:14px!important}
  .ptop{padding:10px 14px!important;gap:8px}
  .ptop h2{font-size:1.1rem!important}
  .ptop .btn{padding:8px 13px!important;font-size:.78rem!important}

  /* KPIs compactos */
  .kpis{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}
  .kpi{padding:14px 12px!important}
  .kpi-v{font-size:1.4rem!important}
  .kpi-t{font-size:.68rem!important}
  .kpi-d{font-size:.68rem!important}

  /* Paneles */
  .panel{margin-bottom:14px!important}
  .panel-h{padding:14px 16px!important;gap:10px}
  .panel-h h3{font-size:.96rem!important}
  .panel-h p{font-size:.76rem!important}
  .panel-b{padding:14px 16px!important}

  /* Tablas */
  .tw{font-size:.78rem}
  .tw th{padding:8px 10px!important;font-size:.68rem!important}
  .tw td{padding:8px 10px!important;font-size:.78rem!important}

  /* Botones del portal */
  .panel-h .btn{padding:7px 12px!important;font-size:.74rem!important}
  .iconbtn{width:32px!important;height:32px!important}
  .iconbtn svg{width:15px!important;height:15px!important}

  /* Calendarios */
  .cal-grid{font-size:.72rem}
  .cal-hcell{padding:6px 4px!important}
  .cal-tcell{padding:6px 4px!important;font-size:.7rem}
  .cal-cell{padding:4px!important;min-height:44px}
  .cal-ev{font-size:.68rem!important;padding:4px 6px!important}
  .cal-free{font-size:.64rem!important;padding:3px!important}

  /* Gráficas */
  .chart{gap:6px}
  .chart-b b{font-size:.72rem}
  .chart-b span{font-size:.66rem}

  /* Alertas */
  .alertbar{padding:12px 14px!important;font-size:.82rem!important;gap:10px}
  .alertbar b{font-size:.84rem}
  .alertbar p{font-size:.78rem}

  /* Citas del asesor */
  .ase-cita{padding:11px!important;gap:10px}
  .ase-cita-time{padding:7px 10px!important;font-size:.9rem!important}
  .ase-cita-body b{font-size:.86rem!important}
  .ase-cita-body span{font-size:.72rem!important}

  /* Hero del panel gerencial y asesor */
  .ger-hero,.ase-hero{padding:18px 20px!important;gap:16px;flex-direction:column;align-items:flex-start}
  .ger-hero h2,.ase-hero h2{font-size:1.2rem!important}
  .ger-hero p,.ase-hero p{font-size:.78rem!important}
  .ger-hero-kpi{padding:0 12px;border-left:none;border-top:1px solid rgba(255,255,255,.18);padding-top:10px}
  .ger-hero-kpi b{font-size:1.4rem!important}
  .ger-hero-kpi span{font-size:.62rem!important}
  .ase-meta{min-width:auto;width:100%;padding:12px 16px!important}
  .ase-meta-num{font-size:1.6rem!important}

  /* Sidebar contenido */
  .side{width:240px}
  .side .logo img{height:34px!important}
  .snav a{padding:10px 14px!important;font-size:.82rem!important;gap:9px}
  .snav a svg{width:17px!important;height:17px!important}
  .snav-lbl{font-size:.6rem!important;padding:16px 14px 5px!important}
  .side-user{padding:12px 14px!important}
  .side-user b{font-size:.84rem!important}
  .side-user span{font-size:.68rem!important}
  .side-foot{padding:10px 14px!important}

  /* Formularios en portales */
  .fgrid{grid-template-columns:1fr!important}
  .modal-box{width:95vw!important;max-height:88vh;padding:20px!important}
  .modal-box h2{font-size:1.1rem!important}

  /* Notas y cajas de info */
  .note-box{padding:14px 16px!important;font-size:.82rem!important}
  .demo-hint{padding:10px 13px!important;font-size:.76rem!important}

  /* Portal cliente */
  .cli-welcome{padding:18px 20px!important}
  .cli-welcome h2{font-size:1.15rem!important}
  .cli-welcome p{font-size:.82rem!important}
  .credit-card{padding:14px!important}
  .credit-grid{gap:8px!important}
  .credit-item{padding:9px 11px!important}
  .credit-item span{font-size:.66rem!important}
  .credit-item b{font-size:.88rem!important}

  /* Navegación del portal cliente */
  .cv-nav{gap:6px}
  .cv-nav a{padding:9px 13px!important;font-size:.78rem!important}
}

@media(max-width:380px){
  .kpis{grid-template-columns:1fr!important}
  .ger-hero-kpi{display:flex;justify-content:space-between;align-items:center}
  .side{width:220px}
}


/* ═══════ TARJETAS DE VEHÍCULO CON FOTO ═══════ */
.vcard{position:relative;overflow:hidden;min-height:160px}
.vcard-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.vcard-bg img{width:100%;height:100%;object-fit:cover;opacity:.30;transition:opacity .3s ease}
.vcard-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.65) 50%,rgba(255,255,255,.85) 100%)}
.vcard:hover .vcard-bg img{opacity:.42}
.vcard.sel .vcard-bg img{opacity:.38}
.vcard.sel .vcard-bg::after{
  background:linear-gradient(180deg,rgba(234,246,236,.90) 0%,rgba(234,246,236,.60) 50%,rgba(234,246,236,.85) 100%)}
.vcard svg,.vcard b,.vcard span{position:relative;z-index:1}
@media(max-width:640px){.vcard{min-height:130px}}


/* ═══════ SECCIÓN EQUIPO ═══════ */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.team-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:420px){.team-grid{gap:10px}}

.team-card{background:var(--white);border:1.5px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;transition:.22s ease;position:relative}
.team-card:hover{transform:translateY(-6px);border-color:var(--green-500);
  box-shadow:0 18px 44px rgba(18,25,15,.14)}

.team-photo{width:100%;aspect-ratio:3/4;overflow:hidden;position:relative;
  background:linear-gradient(160deg,#F0EDE6,#E8E4DB)}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;
  transition:transform .5s ease}
.team-card:hover .team-photo img{transform:scale(1.06)}
.team-photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(15,51,25,.55) 100%);
  opacity:0;transition:.3s}
.team-card:hover .team-photo::after{opacity:1}

.team-badge{position:absolute;top:12px;left:12px;z-index:2;
  background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff;
  font-size:.66rem;font-weight:700;letter-spacing:.04em;padding:5px 12px;border-radius:100px;
  box-shadow:0 4px 12px rgba(15,51,25,.32)}

.team-info{padding:16px 18px 18px;text-align:center}
.team-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:700;
  color:var(--ink);margin:0 0 4px;line-height:1.25}
.team-role{font-size:.8rem;color:var(--green-800);font-weight:600;display:block}

.team-lead{border-color:var(--green-500);
  box-shadow:0 6px 20px rgba(29,97,50,.12)}
.team-lead .team-info{background:linear-gradient(160deg,var(--green-50),#DDF3E1)}

@media(max-width:640px){
  .team-info{padding:12px 13px 14px}
  .team-card h3{font-size:.9rem}
  .team-role{font-size:.73rem}
  .team-badge{font-size:.58rem;padding:4px 9px;top:8px;left:8px}
}


/* ---------- NOTIF BELL ---------- */
.notif-bell{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  background:var(--white);display:flex;align-items:center;justify-content:center;transition:.14s;flex-shrink:0}
.notif-bell:hover{border-color:var(--green-700);background:var(--green-50)}
.notif-bell svg{width:18px;height:18px;color:var(--ink-2)}
.notif-dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--danger);
  display:none;border:1.5px solid var(--white)}

/* ================= PORTAL SHARED ================= */
.app{display:none;min-height:100vh}
.app.on{display:block}
.pub.off{display:none}

/* login */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--ivory)}
@media(max-width:880px){.login-wrap{grid-template-columns:1fr}.login-side{display:none}}
.login-side{background:linear-gradient(150deg,var(--green-900),var(--green-700));padding:52px;
  color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-side::before{content:'';position:absolute;bottom:-110px;left:-70px;width:340px;height:340px;
  background:radial-gradient(circle,rgba(201,240,74,.2),transparent 70%)}
.login-side h2{color:#fff;margin-bottom:14px;position:relative}
.login-side p{color:rgba(255,255,255,.82);font-size:.95rem;position:relative;max-width:340px}
.login-side ul{position:relative;margin-top:26px}
.login-side li{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px;font-size:.89rem;color:rgba(255,255,255,.9)}
.login-side li svg{width:17px;height:17px;color:var(--lime);flex-shrink:0;margin-top:3px}
.login-main{display:flex;align-items:center;justify-content:center;padding:38px 24px}
.login-box{width:100%;max-width:390px}
.login-box .logo{margin-bottom:28px}
.login-box h1{font-size:1.6rem;margin-bottom:7px}
.login-box>p{color:var(--ink-2);font-size:.9rem;margin-bottom:26px}
.demo-hint{background:var(--warn-bg);border:1px solid #F0DFB0;border-radius:var(--r-sm);padding:12px 14px;
  font-size:.79rem;color:#7A5A00;margin-bottom:20px;line-height:1.5}
.demo-hint b{display:block;margin-bottom:3px}

/* portal shell */
.psh{display:block;min-height:100vh}
.side-ov{display:none}
.pmain{margin-left:246px}
@media(max-width:960px){.pmain{margin-left:0}}
.side{background:var(--green-900);color:#fff;padding:20px 15px;display:flex;flex-direction:column;
  position:fixed;top:0;left:0;bottom:0;width:246px;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;z-index:100}
@media(max-width:960px){
  .side{position:fixed;inset:0 auto 0 0;width:250px;z-index:300;transform:translateX(-105%);
    transition:transform .25s ease;height:100vh}
  .side.open{transform:translateX(0)!important;box-shadow:20px 0 50px rgba(0,0,0,.3)}
  .side-ov{display:block;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:299;opacity:0;visibility:hidden;transition:.24s}
  .side-ov.on{opacity:1;visibility:visible}
}
.side .logo{margin-bottom:24px;padding:0 7px}
.side .logo img{height:34px;background:#fff;padding:3px 5px;border-radius:7px}
.side .logo-txt{color:#fff;font-size:.85rem}
.side .logo-txt small{color:rgba(255,255,255,.55)}
.snav{display:flex;flex-direction:column;gap:2px;flex:1}
.snav-lbl{font-family:'IBM Plex Mono',monospace;font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.42);padding:15px 11px 7px;font-weight:600}
.snav a{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:9px;font-size:.87rem;
  font-weight:500;color:rgba(255,255,255,.76);transition:.14s}
.snav a:hover{background:rgba(255,255,255,.08);color:#fff}
.snav a.on{background:var(--lime);color:var(--green-900);font-weight:600}
.snav a svg{width:17px;height:17px;flex-shrink:0}
.snav a .bdg{margin-left:auto;background:var(--danger);color:#fff;font-size:.66rem;font-weight:700;
  padding:1px 6px;border-radius:100px;min-width:18px;text-align:center}
.snav a.on .bdg{background:var(--green-900);color:#fff}
.side-foot{border-top:1px solid rgba(255,255,255,.12);padding-top:14px;margin-top:14px}
.side-user{display:flex;align-items:center;gap:10px;padding:8px 11px;margin-bottom:6px}
.avatar{width:33px;height:33px;border-radius:50%;background:var(--lime);color:var(--green-900);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;flex-shrink:0}
.side-user b{display:block;font-size:.82rem;color:#fff;line-height:1.25}
.side-user span{display:block;font-size:.7rem;color:rgba(255,255,255,.5)}

.pmain{background:var(--ivory);min-width:0}
.ptop{background:var(--white);border-bottom:1px solid var(--line);padding:14px 26px;display:flex;
  align-items:center;justify-content:space-between;gap:14px;position:sticky;top:0;z-index:100}
@media(max-width:600px){.ptop{padding:12px 16px}}
.ptop h1{font-size:1.22rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700}
.ptop-act{display:flex;align-items:center;gap:9px}
.p-burger{display:none;padding:7px;border-radius:8px;border:1px solid var(--line)}
.p-burger svg{width:19px;height:19px;display:block}
@media(max-width:960px){.p-burger{display:block}}
.pbody{padding:26px}
@media(max-width:600px){.pbody{padding:16px}}
.pview{display:none}
.pview.on{display:block;animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.kpis{grid-template-columns:1fr}}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.kpi-t{display:flex;align-items:center;gap:8px;font-size:.76rem;color:var(--ink-3);margin-bottom:9px;font-weight:500}
.kpi-t svg{width:15px;height:15px;color:var(--green-700)}
.kpi-v{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.65rem;font-weight:800;line-height:1.1}
.kpi-d{font-size:.74rem;margin-top:5px;color:var(--ink-3)}
.kpi-d b{color:var(--green-700)}
.kpi.alert{border-color:#F3C9C3;background:var(--danger-bg)}
.kpi.alert .kpi-v{color:var(--danger)}
.kpi.alert .kpi-t svg{color:var(--danger)}
.kpi.warn{border-color:#F0DFB0;background:var(--warn-bg)}
.kpi.warn .kpi-v{color:var(--warn)}
.kpi.warn .kpi-t svg{color:var(--warn)}

/* panel */
.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:20px;overflow:hidden}
.panel-h{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;
  justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-h h3{font-size:1rem}
.panel-h p{font-size:.79rem;color:var(--ink-3);margin-top:2px}
.panel-b{padding:20px}
.panel-b.flush{padding:0}

/* toolbar */
.tbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.tbar .finput{padding:9px 13px;font-size:.85rem;border-radius:9px;width:auto;min-width:180px}
.tbar select.finput{min-width:auto}
.seg{display:inline-flex;background:var(--ivory-2);border-radius:9px;padding:3px;gap:2px}
.seg button{padding:7px 13px;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--ink-2);transition:.14s}
.seg button.on{background:var(--white);color:var(--green-800);box-shadow:var(--sh-sm)}

/* table */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:640px}
th{text-align:left;padding:11px 16px;font-size:.7rem;font-family:'IBM Plex Mono',monospace;
  letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);background:var(--ivory);
  border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}
td{padding:13px 16px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr{transition:.12s}
tbody tr:hover{background:var(--ivory)}
tbody tr:last-child td{border-bottom:none}
td b{font-weight:600}
td small{display:block;color:var(--ink-3);font-size:.76rem;margin-top:1px}
.plate{font-family:'IBM Plex Mono',monospace;font-weight:600;background:var(--ink);color:var(--gold);
  padding:3px 8px;border-radius:5px;font-size:.79rem;letter-spacing:.05em;display:inline-block}
.num{font-family:'IBM Plex Mono',monospace;font-weight:600}
.tact{display:flex;gap:5px}
.iconbtn{width:29px;height:29px;border-radius:7px;border:1px solid var(--line);background:var(--white);
  display:flex;align-items:center;justify-content:center;transition:.13s}
.iconbtn:hover{border-color:var(--green-700);background:var(--green-50)}
.iconbtn svg{width:14px;height:14px;color:var(--ink-2)}

/* empty / loading */
.empty{text-align:center;padding:44px 20px;color:var(--ink-3)}
.empty svg{width:38px;height:38px;color:var(--line);margin:0 auto 13px}
.empty b{display:block;color:var(--ink-2);font-size:.94rem;margin-bottom:5px;font-family:'Plus Jakarta Sans',sans-serif}
.empty p{font-size:.85rem;max-width:330px;margin:0 auto}
.skel{background:linear-gradient(90deg,var(--ivory-2) 25%,#EAE8DE 50%,var(--ivory-2) 75%);
  background-size:200% 100%;animation:sk 1.3s infinite;border-radius:6px;height:13px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* client portal cards */
.cp-hero{background:linear-gradient(135deg,var(--green-900),var(--green-700));border-radius:var(--r-lg);
  padding:26px;color:#fff;margin-bottom:20px;position:relative;overflow:hidden}
.cp-hero::before{content:'';position:absolute;top:-70px;right:-40px;width:230px;height:230px;
  background:radial-gradient(circle,rgba(201,240,74,.2),transparent 70%)}
.cp-hero h2{color:#fff;font-size:1.3rem;margin-bottom:5px;position:relative}
.cp-hero p{color:rgba(255,255,255,.82);font-size:.88rem;position:relative}
.alertbar{display:flex;gap:12px;align-items:flex-start;padding:15px 18px;border-radius:var(--r);
  margin-bottom:14px;border:1px solid}
.alertbar svg{width:19px;height:19px;flex-shrink:0;margin-top:1px}
.alertbar b{display:block;font-size:.9rem;margin-bottom:2px;font-family:'Plus Jakarta Sans',sans-serif}
.alertbar p{font-size:.83rem}
.alertbar.warn{background:var(--warn-bg);border-color:#F0DFB0;color:#7A5A00}
.alertbar.dan{background:var(--danger-bg);border-color:#F3C9C3;color:#8E2A1E}
.alertbar.ok{background:var(--ok-bg);border-color:#C6E3CC;color:var(--green-800)}
.alertbar .btn{margin-left:auto;flex-shrink:0}
@media(max-width:640px){.alertbar{flex-wrap:wrap}.alertbar .btn{margin-left:0;width:100%}}

.vehcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;transition:.16s}
.vehcard:hover{box-shadow:var(--sh);border-color:transparent}
.vehcard-t{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.vehcard h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:.98rem;font-weight:700}
.vehcard small{color:var(--ink-3);font-size:.79rem}
.vrow{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid var(--line-2);font-size:.83rem}
.vrow span:first-child{color:var(--ink-3)}
.vrow span:last-child{font-weight:600}
.bar{height:6px;background:var(--ivory-2);border-radius:3px;overflow:hidden;margin-top:11px}
.bar i{display:block;height:100%;border-radius:3px;transition:width .8s ease}

/* timeline */
.tl{position:relative;padding-left:26px}
.tl::before{content:'';position:absolute;left:7px;top:6px;bottom:6px;width:1.5px;background:var(--line)}
.tl-i{position:relative;padding-bottom:20px}
.tl-i:last-child{padding-bottom:0}
.tl-i::before{content:'';position:absolute;left:-23px;top:5px;width:11px;height:11px;border-radius:50%;
  background:var(--white);border:2.5px solid var(--green-500)}
.tl-i.dan::before{border-color:var(--danger)}
.tl-d{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--ink-3);margin-bottom:3px}
.tl-i b{font-size:.9rem;display:block;margin-bottom:2px}
.tl-i p{font-size:.83rem;color:var(--ink-2)}

/* modal */
.modal{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:20px}
.modal.on{display:flex}
.modal-bd{position:absolute;inset:0;background:rgba(18,25,15,.5)}
.modal-c{position:relative;background:var(--white);border-radius:var(--r-lg);max-width:520px;width:100%;
  max-height:88vh;overflow-y:auto;box-shadow:var(--sh-lg);animation:mup .25s cubic-bezier(.2,1,.4,1)}
@keyframes mup{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
.modal-h{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:center;gap:12px;position:sticky;top:0;background:var(--white);border-radius:var(--r-lg) var(--r-lg) 0 0}
.modal-h h3{font-size:1.05rem}
.modal-b{padding:24px}
.modal-f{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;
  background:var(--ivory);flex-wrap:wrap}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,90px);
  opacity:0;visibility:hidden;background:var(--ink);color:#fff;
  padding:13px 22px;border-radius:100px;font-size:.87rem;font-weight:500;box-shadow:var(--sh-lg);
  z-index:500;transition:transform .3s cubic-bezier(.2,1.2,.4,1),opacity .25s ease,visibility .25s;display:flex;align-items:center;gap:9px;max-width:90vw}
.toast.on{transform:translate(-50%,0);opacity:1;visibility:visible}
.toast svg{width:17px;height:17px;color:var(--lime);flex-shrink:0}

/* chart */
.chart{display:flex;align-items:stretch;gap:8px;height:170px;padding-top:14px}
.chart-b{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
.chart-bw{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;min-height:0}
.chart-b i{width:100%;max-width:36px;background:var(--green-500);border-radius:5px 5px 0 0;
  transition:height .7s cubic-bezier(.2,1,.4,1);min-height:3px}
.chart-b i:hover{background:var(--green-700)}
.chart-b span{font-size:.68rem;color:var(--ink-3);font-family:'IBM Plex Mono',monospace;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.chart-b b{font-size:.72rem;font-family:'IBM Plex Mono',monospace;color:var(--ink-2)}

/* ---------- AGENDA / CALENDARIO ---------- */
.cal-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-grid{display:grid;grid-template-columns:64px repeat(7,1fr);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;background:var(--white);min-width:780px}
.cal-wrap{overflow-x:auto}
.cal-hcell{background:var(--ivory);border-bottom:1px solid var(--line);padding:9px 6px;text-align:center}
.cal-hcell b{display:block;font-size:.78rem;font-family:'Plus Jakarta Sans',sans-serif}
.cal-hcell span{font-size:.68rem;color:var(--ink-3);font-family:'IBM Plex Mono',monospace}
.cal-hcell.today{background:var(--green-50)}
.cal-hcell.today b{color:var(--green-800)}
.cal-tcell{background:var(--ivory);border-right:1px solid var(--line);border-bottom:1px solid var(--line-2);
  padding:7px 6px;font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--ink-3);text-align:right}
.cal-cell{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:3px;min-height:40px}
.cal-cell:last-child{border-right:none}
.cal-ev{display:block;width:100%;text-align:left;padding:5px 7px;border-radius:6px;font-size:.7rem;
  font-weight:600;line-height:1.3;border-left:3px solid;transition:.13s}
.cal-ev:hover{transform:translateX(1px);filter:brightness(.97)}
.cal-ev small{display:block;font-weight:400;font-size:.66rem;opacity:.8}
.cal-ev.ok{background:var(--ok-bg);border-color:var(--green-700);color:var(--green-800)}
.cal-ev.pend{background:var(--warn-bg);border-color:var(--warn);color:#7A5A00}
.cal-ev.done{background:var(--ivory-2);border-color:var(--ink-3);color:var(--ink-2)}
.cal-ev.canc{background:var(--danger-bg);border-color:var(--danger);color:#8E2A1E;text-decoration:line-through}
.cal-free{width:100%;height:100%;min-height:34px;border-radius:6px;border:1px dashed transparent;
  font-size:.66rem;color:transparent;transition:.13s}
.cal-free:hover{border-color:var(--green-500);background:var(--green-50);color:var(--green-700)}
.cal-cell.cal-cell-multi{display:flex;flex-direction:column;gap:3px;padding:4px}
.cal-ev.noshow{background:var(--danger-bg);border-color:var(--danger);color:#8E2A1E}
.cal-cell-multi .cal-free{min-height:24px;font-size:.62rem;padding:3px}
.cal-cell-multi .cal-free:hover{color:var(--green-700);border-style:dashed}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.75rem;color:var(--ink-2);margin-top:14px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}

/* integraciones */
.intg{display:flex;gap:15px;align-items:flex-start;padding:18px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--white)}
.intg-logo{width:44px;height:44px;border-radius:11px;background:var(--ivory-2);display:flex;
  align-items:center;justify-content:center;flex-shrink:0}
.intg-logo svg{width:24px;height:24px}
.intg b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:.95rem}
.intg p{font-size:.83rem;color:var(--ink-2);margin-top:3px}
.switch{width:42px;height:24px;border-radius:100px;background:var(--line);position:relative;
  transition:.2s;flex-shrink:0;cursor:pointer}
.switch::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on{background:var(--green-600,var(--green-500))}
.switch.on::after{left:21px}

.note-box{background:var(--green-50);border:1px solid #C6E3CC;border-radius:var(--r);padding:14px 16px;
  font-size:.82rem;color:var(--green-800);line-height:1.55}
.note-box b{display:block;margin-bottom:3px;font-family:'Plus Jakarta Sans',sans-serif}
.cfg-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;
  border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.cfg-row:last-child{border-bottom:none}
.cfg-row b{font-size:.88rem;display:block}
.cfg-row small{color:var(--ink-3);font-size:.78rem}
.cfg-row .finput{width:auto;min-width:150px;padding:9px 13px;font-size:.86rem}


/* ═══ TARIFAS: letrero "Consulta las tarifas con nuestros asesores" ═══ */
.tar-sign{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:56px 50px 52px;color:#fff;
  background:linear-gradient(135deg,var(--green-900) 0%,var(--green-800) 55%,var(--green-700) 100%);
  box-shadow:0 22px 50px rgba(15,51,25,.28);border:1px solid rgba(255,255,255,.10)}
.tar-sign::before{content:'';position:absolute;inset:14px;border:2px solid rgba(201,240,74,.38);
  border-radius:calc(var(--r-xl) - 10px);pointer-events:none}
.tar-sign::after{content:'';position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,240,74,.22),transparent 68%);pointer-events:none}
.tar-sign>*{position:relative;z-index:1}
.tar-sign-tag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.2em;
  font-weight:600;color:var(--green-900);background:var(--lime);padding:6px 14px;border-radius:100px;margin-bottom:18px}
.tar-sign h2{color:#fff;font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.08;text-transform:uppercase;
  letter-spacing:-.01em;margin-bottom:14px;max-width:760px}
.tar-sign h2 em{font-style:normal;color:var(--lime)}
.tar-sign p{color:rgba(255,255,255,.88);font-size:1.02rem;line-height:1.6;max-width:600px;margin-bottom:26px}
.tar-sign p b{color:#fff}
.tar-sign-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-ghost-w{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.38)}
.btn-ghost-w:hover{background:rgba(255,255,255,.2)}
.tar-facts{display:flex;flex-direction:column;gap:12px}
.tar-facts .fact{align-items:flex-start;line-height:1.5}
.tar-facts .fact svg{flex-shrink:0;margin-top:3px}
@media(max-width:640px){
  .tar-sign{padding:36px 22px 30px}
  .tar-sign::before{inset:9px}
  .tar-sign h2{font-size:1.7rem!important}
  .tar-sign p{font-size:.9rem;margin-bottom:22px}
  .tar-sign-btns .btn{width:100%;justify-content:center}
}


/* Servicio "Próximamente" (peritaje para carros particulares) */
.svc-card.is-soon{background:linear-gradient(160deg,#fff,#FFFBF0);border-color:#F0DFB0}
.svc-card.is-soon .ico{background:#FFF6E0;color:#7A5A00}
.svc-tag-soon{display:inline-block;align-self:flex-start;width:fit-content;margin-top:12px;background:#FFF6E0;color:#7A5A00;border:1px solid #F0DFB0;
  font-size:.66rem;font-weight:800;letter-spacing:.09em;padding:5px 11px;border-radius:100px}
