/* Sofisis 2026 — páginas interiores (todo lo que no es la portada).
 *
 * Mismo criterio que shell_2026.css: nada de reset global ni de selectores de
 * elemento sueltos. La tipografía cuelga de `body.s26-body` y el resto de
 * `.s26-page`, para que las pantallas que además cargan bootstrap (registro,
 * login) no se desarmen. Los estilos de formulario cubren el markup que emite el
 * filtro `|bootstrap`, de modo que no haga falta traer la hoja de bootstrap solo
 * para que un formulario se vea decente.
 */

body.s26-body{
  margin:0;
  font-family:'Inter',system-ui,sans-serif;
  background:var(--s26-paper);
  color:var(--s26-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body.s26-body *{box-sizing:border-box}

/* ---------- Encabezado de página ---------- */
.s26-page-head{padding:56px 0 28px;border-bottom:1px solid var(--s26-line);background:var(--s26-card)}
.s26-eyebrow{
  display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--s26-teal);
  background:#E6F3FB;border:1px solid #C3E2F6;
  padding:6px 14px;border-radius:999px;margin-bottom:18px;
}
.s26-page-head h1{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(1.9rem,4vw,2.7rem);font-weight:700;letter-spacing:-.03em;line-height:1.15;
  margin:0 0 14px;max-width:820px;
}
.s26-lead{font-size:1.1rem;color:var(--s26-muted);max-width:720px;margin:0}
.s26-breadcrumb{font-size:.8rem;color:var(--s26-muted);margin-bottom:16px}
.s26-breadcrumb a{color:var(--s26-muted);text-decoration:none}
.s26-breadcrumb a:hover{color:var(--s26-teal)}

/* ---------- Cuerpo ---------- */
.s26-page{padding:44px 0 72px}
.s26-page h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:1.45rem;font-weight:700;letter-spacing:-.02em;
  margin:38px 0 12px;
}
.s26-page h2:first-child{margin-top:0}
.s26-page h3{font-size:1.08rem;font-weight:700;margin:24px 0 8px;color:var(--s26-ink-2)}
.s26-page p{margin:0 0 14px;color:var(--s26-ink-2)}
.s26-page ul,.s26-page ol{margin:0 0 16px;padding-left:22px;color:var(--s26-ink-2)}
.s26-page li{margin-bottom:7px}
.s26-page a{color:var(--s26-teal);text-decoration:none}
.s26-page a:hover{text-decoration:underline}
.s26-page strong,.s26-page b{color:var(--s26-ink);font-weight:600}
.s26-page img{max-width:100%;height:auto}
.s26-page video{max-width:100%;border-radius:12px;border:1px solid var(--s26-line);background:#000}
.s26-narrow{max-width:760px}
.s26-video{display:block;max-width:860px;margin:0 auto 28px}

/* ---------- Bloques ---------- */
.s26-card{
  background:var(--s26-card);border:1px solid var(--s26-line);border-radius:16px;
  padding:24px 26px;margin-bottom:16px;
}
.s26-card h3{margin-top:0}
.s26-card > :last-child{margin-bottom:0}
.s26-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.s26-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:820px){.s26-grid-2,.s26-grid-3{grid-template-columns:1fr}}

.s26-note{
  background:#E6F3FB;border:1px solid #C3E2F6;border-radius:12px;
  padding:16px 20px;margin:0 0 20px;color:#12699C;font-size:.94rem;
}
.s26-note > :last-child{margin-bottom:0}
.s26-note p{color:#12699C}

/* Pasos numerados: el número es el protagonista, no la viñeta del navegador. */
.s26-steps{list-style:none;counter-reset:s26step;padding:0;margin:0 0 24px}
.s26-steps > li{
  counter-increment:s26step;position:relative;
  padding:0 0 0 52px;margin-bottom:22px;
}
.s26-steps > li::before{
  content:counter(s26step);
  position:absolute;left:0;top:-2px;
  width:34px;height:34px;border-radius:50%;
  background:var(--s26-teal);color:#fff;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.95rem;
  display:flex;align-items:center;justify-content:center;
}
.s26-steps > li b{display:block;color:var(--s26-ink);margin-bottom:2px}

.s26-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 8px}
.s26-stat{background:var(--s26-card);border:1px solid var(--s26-line);border-radius:12px;padding:20px 18px;text-align:center}
.s26-stat b{display:block;font-family:'Space Grotesk',sans-serif;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;color:var(--s26-teal)}
.s26-stat span{font-size:.8rem;color:var(--s26-muted)}
@media (max-width:820px){.s26-stats{grid-template-columns:1fr 1fr}}

/* ---------- Muro de logos de clientes ---------- */
.s26-logos{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;margin:6px 0 16px}
.s26-logo{
  background:var(--s26-card);border:1px solid var(--s26-line);border-radius:12px;
  width:152px;height:92px;padding:14px 18px;
  display:flex;align-items:center;justify-content:center;
}
.s26-logo img{
  max-height:58px;max-width:116px;object-fit:contain;
  filter:grayscale(1);opacity:.72;transition:filter .2s ease, opacity .2s ease;
}
.s26-logo img:hover{filter:none;opacity:1}

/* ---------- Preguntas frecuentes ---------- */
.s26-faq{max-width:760px;margin-bottom:8px}
.s26-faq-item{background:var(--s26-card);border:1px solid var(--s26-line);border-radius:12px;padding:0 20px;margin-bottom:10px}
.s26-faq-item summary{cursor:pointer;font-weight:600;font-size:.98rem;padding:16px 0;list-style:none;position:relative;padding-right:28px}
.s26-faq-item summary::-webkit-details-marker{display:none}
.s26-faq-item summary::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-family:'Space Grotesk',sans-serif;font-size:1.3rem;color:var(--s26-teal)}
.s26-faq-item[open] summary::after{content:"−"}
.s26-faq-item p{font-size:.92rem;color:var(--s26-muted);padding:0 0 16px;margin:0}

/* ---------- Índice lateral (política de privacidad) ---------- */
.s26-toc{background:var(--s26-card);border:1px solid var(--s26-line);border-radius:16px;padding:20px 24px;margin-bottom:28px}
.s26-toc b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--s26-teal);margin-bottom:10px}
.s26-toc ol{columns:2;column-gap:28px;margin:0;padding-left:18px;font-size:.9rem}
@media (max-width:640px){.s26-toc ol{columns:1}}

/* ---------- Banda de cierre ---------- */
.s26-cta-band{
  background:var(--s26-ink);color:#fff;border-radius:16px;
  padding:30px 32px;display:flex;align-items:center;gap:28px;justify-content:space-between;
  margin-top:40px;
}
.s26-cta-band h2{font-family:'Space Grotesk',sans-serif;font-size:1.3rem;font-weight:700;margin:0 0 6px;color:#fff}
.s26-cta-band p{color:#B8C7CC;font-size:.95rem;margin:0;max-width:620px}
.s26-cta-band .s26-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);white-space:nowrap}
.s26-cta-band .s26-btn-ghost:hover{border-color:#9CD4F5;color:#9CD4F5}
@media (max-width:820px){.s26-cta-band{flex-direction:column;align-items:flex-start;gap:18px}}

/* ---------- Contacto ---------- */
.s26-contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;align-items:start}
@media (max-width:900px){.s26-contact-grid{grid-template-columns:1fr}}
.s26-channel{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px dashed var(--s26-line)}
.s26-channel:last-child{border-bottom:none}
.s26-channel-ico{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:#fff;background:var(--s26-teal);
}
.s26-channel-ico.is-wa{background:#25D366}
.s26-channel b{display:block;color:var(--s26-ink)}
.s26-channel span{font-size:.86rem;color:var(--s26-muted)}

/* ---------- Formularios (markup del filtro |bootstrap) ---------- */
.s26-form{background:var(--s26-card);border:1px solid var(--s26-line);border-radius:16px;padding:26px 28px}
.s26-form .form-group,.s26-form .control-group{margin-bottom:16px}
.s26-form label,.s26-form .control-label{
  display:block;font-size:.85rem;font-weight:600;color:var(--s26-ink-2);margin-bottom:6px;
}
.s26-form input[type=text],.s26-form input[type=email],.s26-form input[type=tel],
.s26-form input[type=password],.s26-form input[type=number],.s26-form input[type=url],
.s26-form select,.s26-form textarea,.s26-form .form-control{
  width:100%;font-family:'Inter',system-ui,sans-serif;font-size:.95rem;color:var(--s26-ink);
  background:var(--s26-paper);border:1.5px solid var(--s26-line);border-radius:10px;
  padding:11px 14px;transition:border-color .15s ease, box-shadow .15s ease;
}
.s26-form input:focus,.s26-form select:focus,.s26-form textarea:focus,.s26-form .form-control:focus{
  outline:none;border-color:var(--s26-teal);box-shadow:0 0 0 3px rgba(30,156,216,.15);
}
.s26-form textarea{min-height:130px;resize:vertical}
.s26-form input[type=checkbox],.s26-form input[type=radio]{width:auto;margin-right:8px}
.s26-form .help-block,.s26-form .form-text,.s26-form small{display:block;font-size:.8rem;color:var(--s26-muted);margin-top:5px}
.s26-optional{font-weight:400;color:var(--s26-muted)}
.s26-form .errorlist,.s26-form .invalid-feedback,.s26-form .alert-danger{
  list-style:none;padding:0;margin:6px 0 0;font-size:.83rem;color:#B4534B;
}
.s26-form .has-error input,.s26-form .is-invalid{border-color:#B4534B}
.s26-form-actions{margin-top:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.s26-form-legal{font-size:.82rem;color:var(--s26-muted);margin:0}

/* ---------- Ingreso ---------- */
.s26-login{max-width:440px;margin:0 auto;text-align:center}
.s26-login h1{font-family:'Space Grotesk',sans-serif;font-size:1.8rem;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.s26-login-sub{color:var(--s26-muted);margin-bottom:22px}
.s26-login .s26-form{text-align:left}
.s26-login-forgot{text-align:center;margin:22px 0 0}
.s26-linkbtn{
  background:none;border:none;padding:0;cursor:pointer;
  font-family:inherit;font-size:.85rem;color:var(--s26-teal);text-decoration:underline;
}
.s26-linkbtn:hover{color:var(--s26-ink)}

/* Mensajes del framework (messages framework) */
.s26-msg{border-radius:12px;padding:13px 18px;margin-bottom:14px;font-size:.92rem;border:1px solid}
.s26-msg-info{background:#E6F3FB;border-color:#C3E2F6;color:#12699C}
.s26-msg-success{background:#E7F4EC;border-color:#C5E5D2;color:#155F36}
.s26-msg-error{background:#FBEFEA;border-color:#F0D3C8;color:#8E3A33}

/* ---------- Páginas de error ---------- */
.s26-error{text-align:center;padding:90px 0 110px}
.s26-error-code{
  font-family:'Space Grotesk',sans-serif;font-size:clamp(3.4rem,11vw,6rem);font-weight:700;
  letter-spacing:-.04em;color:var(--s26-teal);line-height:1;margin:0 0 8px;
}
.s26-error h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.4rem,3.4vw,2rem);margin:0 0 12px}
.s26-error p{max-width:520px;margin:0 auto 26px}
.s26-error-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

@media (max-width:600px){
  .s26-page-head{padding:38px 0 24px}
  .s26-page{padding:32px 0 56px}
}
