/* ===== VisaXpert Legal — estilos compartidos =====
   Fondo: degradado slate uniforme en todo el sitio. Logo blanco. */
:root{
  color-scheme: dark;
  --slate:#22467a;          /* azul pizarra medio */
  --slate-deep:#152b47;     /* azul profundo */
  --slate-2:#2c568c;        /* azul acento */
  --sky:#6f9fd8;            /* celeste para acentos y subrayados */
  --sky-soft:#a9c6ec;
  --red:#e7343f;            /* rojo del logo (detalle) */
  --ink:#ffffff;           /* texto principal (sobre slate) */
  --ink-soft:#cbd9ee;      /* texto secundario */
  --ink-mut:#9db0cd;       /* texto tenue */
  --panel:rgba(255,255,255,.06);      /* tarjetas sobre slate */
  --panel-2:rgba(255,255,255,.10);
  --panel-solid:#ffffff;              /* tarjetas blancas (calendario, cards claras) */
  --on-panel:#1c2739;                 /* texto sobre tarjeta blanca */
  --on-panel-soft:#54607a;
  --line:rgba(255,255,255,.16);
  --line-solid:#e0e5ee;
  --maxw:1120px;
  --r:10px;
  --shadow:0 18px 48px -22px rgba(0,0,0,.55);
  --font-d:"Oswald","Arial Narrow",system-ui,sans-serif;
  --font-b:"Inter",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;color:var(--ink);
  font-family:var(--font-b);line-height:1.62;font-size:16px;
  -webkit-font-smoothing:antialiased;
  /* degradado slate celeste, fijo en todo el sitio */
  background:linear-gradient(165deg,var(--slate-deep) 0%,var(--slate) 48%,var(--slate-2) 100%);
  background-attachment:fixed;
  min-height:100vh;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5{margin:0;font-family:var(--font-d);font-weight:600;line-height:1.06;text-wrap:balance;letter-spacing:.005em}
p{margin:0}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}
.eyebrow{font-family:var(--font-d);font-weight:600;text-transform:uppercase;
  letter-spacing:.18em;font-size:.82rem;color:var(--sky)}
.section{padding-block:80px}
.lead{color:var(--ink-soft);font-size:1.08rem;max-width:62ch}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-b);
  font-weight:600;font-size:.98rem;padding:13px 22px;border-radius:8px;
  cursor:pointer;border:2px solid transparent;transition:transform .12s ease,background .18s;line-height:1}
.btn:active{transform:translateY(1px)}
.btn-wa{background:#25D366;color:#062e17}
.btn-wa:hover{background:#1fbe5b}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.wa-ic{width:20px;height:20px;flex:none}

/* HEADER */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;
  background:rgba(21,43,71,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.nav-logo{height:38px;width:auto}
.nav-links{display:flex;gap:26px;font-weight:500;font-size:.95rem;color:var(--ink-soft)}
.nav-links a:hover,.nav-links a.active{color:#fff}
.nav-links a.active{border-bottom:2px solid var(--sky);padding-bottom:2px}
.nav-right{display:flex;align-items:center;gap:14px}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:6px;color:#fff}
.menu-btn svg{width:26px;height:26px}
.mobile-menu{display:none}

/* PAGE HERO (interior pages) */
.page-hero{padding-block:64px 40px}
.page-hero .eyebrow{color:var(--sky)}
.page-hero h1{font-size:clamp(2.2rem,4.6vw,3.2rem);text-transform:uppercase;color:#fff;margin-top:12px}
.page-hero .lead{margin-top:16px;color:var(--ink-soft)}

/* SECTION HEAD */
.shead{max-width:64ch;margin-bottom:44px}
.shead h2{font-size:clamp(1.8rem,3.8vw,2.6rem);text-transform:uppercase;margin-top:12px;color:#fff}
.shead .lead{margin-top:14px}

/* generic panel card */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 24px}
.card h4{font-family:var(--font-b);font-weight:700;font-size:1.06rem;color:#fff}
.card p{color:var(--ink-soft);font-size:.94rem;margin-top:7px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.chip{font-size:.76rem;font-weight:500;color:var(--ink-soft);background:var(--panel-2);
  border-radius:5px;padding:4px 10px}

/* FOOTER */
footer{background:var(--slate-deep);color:var(--ink-mut);padding-block:52px 40px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;align-items:start}
.foot-logo{height:40px;width:auto;margin-bottom:16px}
.foot-grid h5{font-family:var(--font-d);text-transform:uppercase;color:#fff;font-size:.95rem;letter-spacing:.06em;margin-bottom:14px;font-weight:600}
.foot-grid a,.foot-grid p{color:var(--ink-mut);font-size:.92rem;line-height:1.9}
.foot-grid a:hover{color:#fff}
.foot-social{display:flex;gap:10px;margin-top:8px}
.foot-social a{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--ink-soft)}
.foot-social a:hover{border-color:var(--sky);color:#fff}
.foot-social svg{width:18px;height:18px}
.disclaimer{margin-top:40px;padding-top:26px;border-top:1px solid var(--line);
  font-size:.84rem;color:var(--ink-mut);line-height:1.7}
.disclaimer strong{color:#fff;font-weight:600}
.copy{margin-top:18px;font-size:.8rem;color:#7488a8}

/* WhatsApp floating */
.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;
  width:58px;height:58px;border-radius:50%;background:#25D366;display:grid;place-items:center;
  box-shadow:0 8px 24px -6px rgba(0,0,0,.5);transition:transform .15s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:30px;height:30px;color:#062e17}

@media (max-width:880px){
  .nav-links{display:none}
  .nav-right .btn{display:none}
  .menu-btn{display:block}
  .foot-grid{grid-template-columns:1fr;gap:28px}
  .section{padding-block:56px}
  .mobile-menu.open{display:block;border-bottom:1px solid var(--line);background:var(--slate-deep)}
  .mobile-menu.open .wrap{display:flex;flex-direction:column;gap:4px;padding-block:14px}
  .mobile-menu a{padding:12px 4px;font-weight:600;color:#fff;border-bottom:1px solid var(--line)}
  .mobile-menu a:last-child{border-bottom:0}
}

/* ================= CALENDARIO ================= */
.price-pill{display:inline-flex;align-items:center;gap:8px;margin-top:14px;
  background:rgba(255,255,255,.12);border:1px solid var(--line);color:#fff;font-size:.95rem;font-weight:500;
  padding:8px 16px;border-radius:30px}
.price-pill strong{font-family:var(--font-d);font-size:1.1rem;letter-spacing:.02em;color:var(--sky-soft)}
.cal-wrap{display:grid;grid-template-columns:1fr .9fr;gap:28px;align-items:start;margin-top:8px}
.cal-box{background:var(--panel-solid);border:1px solid var(--line-solid);border-radius:14px;
  padding:24px;box-shadow:var(--shadow);color:var(--on-panel)}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}
.cal-top h4{font-family:var(--font-d);text-transform:uppercase;font-size:1.15rem;color:var(--on-panel);letter-spacing:.02em}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-solid);
  background:#f5f7fa;color:var(--on-panel);cursor:pointer;font-size:1.1rem;line-height:1;display:grid;place-items:center}
.cal-nav button:disabled{opacity:.35;cursor:not-allowed}
.cal-nav button:not(:disabled):hover{border-color:var(--slate);color:var(--slate)}
.days-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.dow{text-align:center;font-size:.72rem;font-weight:600;color:var(--on-panel-soft);text-transform:uppercase;letter-spacing:.04em;padding-block:4px}
.grid-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day{aspect-ratio:1;border:1px solid transparent;border-radius:8px;background:#f5f7fa;
  color:var(--on-panel);font-weight:600;font-size:.95rem;cursor:pointer;display:grid;place-items:center;
  font-variant-numeric:tabular-nums;transition:background .12s,border-color .12s}
.day.empty{background:transparent;cursor:default}
.day.disabled{color:var(--on-panel-soft);opacity:.4;cursor:not-allowed;background:transparent}
.day.avail:hover{border-color:var(--slate)}
.day.sel{background:var(--slate);color:#fff}
.cal-legend{font-size:.8rem;color:var(--on-panel-soft);margin-top:14px;display:flex;gap:16px;flex-wrap:wrap}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}
.lg-dot{width:10px;height:10px;border-radius:3px;display:inline-block}

.slots-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}
.slots-panel h4{font-family:var(--font-d);text-transform:uppercase;font-size:1.1rem;color:#fff;letter-spacing:.02em}
.slots-panel .sub{color:var(--ink-soft);font-size:.9rem;margin-top:4px}
.slot-price{font-size:.86rem;color:var(--ink-soft);margin-top:8px}
.slot-price strong{color:var(--sky-soft)}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.slot{padding:10px 6px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.05);
  color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;text-align:center;font-variant-numeric:tabular-nums}
.slot:hover{border-color:var(--sky);color:var(--sky-soft)}
.slot.sel{background:var(--sky);color:var(--slate-deep);border-color:var(--sky)}
.slot-empty{color:var(--ink-soft);font-size:.92rem;margin-top:16px;padding:16px;background:var(--panel-2);border-radius:8px;text-align:center}
.name-field{margin-top:18px}
.name-field label{display:block;font-weight:600;font-size:.88rem;margin-bottom:6px;color:#fff}
.name-field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;
  font-family:var(--font-b);font-size:1rem;background:rgba(255,255,255,.08);color:#fff}
.name-field input::placeholder{color:var(--ink-mut)}
.name-field input:focus{outline:2px solid var(--sky);outline-offset:1px;border-color:transparent}
.cal-cta{margin-top:16px}
.cal-cta .btn{width:100%;justify-content:center}
.cal-cta .btn:disabled{opacity:.5;cursor:not-allowed}
.cal-disc{font-size:.8rem;color:var(--ink-mut);margin-top:14px;display:flex;gap:9px;align-items:flex-start}
.cal-disc svg{width:16px;height:16px;color:var(--sky);flex:none;margin-top:2px}

/* FAQ */
.faq{max-width:820px;margin-inline:auto}
.qa-item{border-bottom:1px solid var(--line)}
.qa{width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:22px 0;display:flex;justify-content:space-between;gap:20px;align-items:center;
  font-family:var(--font-b);font-weight:600;font-size:1.06rem;color:#fff}
.qa .ic{flex:none;width:22px;height:22px;color:var(--sky);transition:transform .2s}
.qa[aria-expanded="true"] .ic{transform:rotate(45deg)}
.qa-body{color:var(--ink-soft);font-size:.98rem;padding:0 0 22px;max-width:72ch}

@media (max-width:880px){ .cal-wrap{grid-template-columns:1fr} }
@media (max-width:520px){ .slots{grid-template-columns:repeat(2,1fr)} }
