/* ============================================================
   RURALINT — Design System v1.0
   Basado en Brandbook Smart Terra Ibérica
   Paleta: Verde #315A3A · Dorado #FBB543 · Crema #F5F0AC · Blanco #FFFFFF
   Tipografía: Parkinsans (Regular 400 / Bold 700)
   ============================================================ */

/* ── TOKENS ── */
:root {
  --verde:    #315A3A;
  --verde-dk: #1A2A1E;
  --dorado:   #FBB543;
  --crema:    #F5F0AC;
  --blanco:   #FFFFFF;
  --texto:    #223127;
  --muted:    #5C6A61;
  --borde:    #E6ECEE;
  --shadow:   0 12px 32px rgba(0,0,0,.09);
  --shadow-sm:0 4px 12px rgba(0,0,0,.06);
  --wrap:     1200px;
  --pad:      20px;
  --r:        18px;
  --r-sm:     12px;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: "Parkinsans", Georgia, serif;
  background: var(--blanco);
  color: var(--texto);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* ── HEADER ── */
.sti-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--blanco);
  border-bottom: 1px solid var(--borde);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.sti-bar {
  max-width: var(--wrap); margin: 0 auto;
  padding: 0 var(--pad); height: 68px;
  display: flex; align-items: center; gap: 18px;
}
.sti-brand { display: flex; align-items: center; gap: 12px; }
.sti-brand-icon {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--verde);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; color: #fff; font-size: 14px; letter-spacing: .5px;
  box-shadow: 0 4px 12px rgba(49,90,58,.3);
  flex-shrink: 0;
}
.sti-brand-name { font-weight: 700; font-size: 18px; color: var(--verde); }
.sti-brand-sub  { font-size: 12px; color: var(--muted); margin-left: 4px; }

.sti-nav { margin-left: auto; display: flex; gap: 4px; }
.sti-nav a {
  font-weight: 700; font-size: 15px; padding: 8px 14px;
  border-radius: 10px; color: var(--texto);
  transition: background .15s, color .15s;
}
.sti-nav a:hover,
.sti-nav a[aria-current="page"] { background: rgba(49,90,58,.08); color: var(--verde); }

/* ── PAGE HERO (inner pages) ── */
.sti-page-hero {
  background: var(--crema);
  border-bottom: 1px solid rgba(49,90,58,.15);
  padding: 40px var(--pad);
}
.sti-page-hero-inner {
  max-width: var(--wrap); margin: 0 auto;
}
.sti-page-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--verde); color: #fff;
  padding: 6px 14px; border-radius: 999px;
  font-weight: 700; font-size: 12px; letter-spacing: .3px;
  margin-bottom: 16px;
}
.sti-page-kicker::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dorado);
}
.sti-page-hero h1 {
  font-size: clamp(28px, 3.5vw, 40px);
  line-height: 1.12; font-weight: 700; color: var(--verde);
  margin-bottom: 10px;
}
.sti-page-hero p {
  font-size: 16px; line-height: 1.65; color: var(--muted); max-width: 680px;
}

/* ── SECTION ── */
.sti-section {
  max-width: var(--wrap); margin: 0 auto; padding: 48px var(--pad);
}
.sti-section-heading {
  display: flex; align-items: center; gap: 12px; margin-bottom: 24px;
}
.sti-heading-pill {
  width: 16px; height: 16px; background: var(--dorado);
  border-radius: 4px; flex-shrink: 0;
}
.sti-section-heading h2 {
  font-size: 28px; font-weight: 700; color: var(--texto);
}
.sti-divider {
  border: none; border-top: 1px solid var(--borde); margin: 0;
}

/* ── CARD (base) ── */
.sti-card {
  background: #fff; border: 1px solid var(--borde);
  border-radius: var(--r); box-shadow: var(--shadow);
  padding: 24px;
}

/* ── TECH BLOCK ── */
.sti-tech-block {
  background: #fff; border: 1px solid var(--borde);
  border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden;
}
.sti-tech-header {
  background: var(--verde); color: #fff;
  padding: 20px 24px; display: flex; align-items: center; gap: 14px;
}
.sti-tech-header-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.sti-tech-header h3 { font-size: 20px; font-weight: 700; }
.sti-tech-header p  { font-size: 14px; opacity: .8; margin-top: 2px; }
.sti-tech-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0; border-top: 1px solid var(--borde);
}
.sti-tech-item {
  padding: 20px 22px;
  border-right: 1px solid var(--borde); border-bottom: 1px solid var(--borde);
}
.sti-tech-item:nth-child(3n)      { border-right: none; }
.sti-tech-item:nth-last-child(-n+3){ border-bottom: none; }
.sti-tech-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--dorado); margin-bottom: 10px;
}
.sti-tech-item strong { display: block; font-size: 15px; color: var(--texto); margin-bottom: 4px; }
.sti-tech-item span   { font-size: 13px; color: var(--muted); line-height: 1.5; }

/* ── MAP WRAPPER ── */
.sti-map-outer {
  background: #fff; border: 1px solid var(--borde);
  border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden;
}
.sti-map-topbar {
  background: var(--crema); border-bottom: 1px solid rgba(49,90,58,.15);
  padding: 12px 18px; display: flex; align-items: center; justify-content: space-between;
}
.sti-map-label {
  font-weight: 700; font-size: 14px; color: var(--verde);
  display: flex; align-items: center; gap: 8px;
}
.sti-map-label::before {
  content: ""; width: 8px; height: 8px; background: var(--verde); border-radius: 50%;
}
.sti-map-tag {
  background: #fff; border: 1px solid rgba(49,90,58,.2);
  padding: 5px 12px; border-radius: 999px;
  font-size: 13px; font-weight: 700; color: #2a3f31;
}
.sti-map-outer iframe {
  width: 100%; height: 64vh; min-height: 400px; border: 0; display: block;
}
.sti-map-note {
  padding: 12px 18px; font-size: 13px; color: var(--muted);
  border-top: 1px solid var(--borde);
  display: flex; align-items: flex-start; gap: 8px;
}
.sti-map-note::before { content: "ℹ️"; flex-shrink: 0; }
.sti-map-note a { color: var(--verde); font-weight: 700; }

/* ── INFORME CARDS (3-col grid) ── */
.sti-informe-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.sti-informe-card {
  background: #fff; border: 1px solid var(--borde);
  border-radius: var(--r); padding: 28px 24px;
  box-shadow: var(--shadow);
  display: flex; flex-direction: column; gap: 10px;
  position: relative; overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.sti-informe-card:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(0,0,0,.12); }
.sti-informe-card::after {
  content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 4px;
  background: var(--dorado);
}
.sti-informe-card-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--crema); border: 2px solid var(--dorado);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 4px;
}
.sti-informe-card h3 { font-size: 18px; font-weight: 700; color: var(--texto); }
.sti-informe-card p  { font-size: 14px; color: var(--muted); line-height: 1.55; }

/* ── TABS ── */
.sti-tabs {
  display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px;
}
.sti-tab {
  padding: 10px 18px; border-radius: 10px;
  border: 2px solid var(--borde); background: #fff;
  font-family: inherit; font-weight: 700; font-size: 14px; color: var(--texto);
  cursor: pointer; transition: all .15s;
}
.sti-tab:hover { border-color: var(--dorado); }
.sti-tab[aria-selected="true"] {
  background: var(--verde); color: #fff; border-color: var(--verde);
}

/* ── CONTACTO ── */
.sti-contacto-wrap {
  background: var(--verde); border-radius: var(--r); padding: 40px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start;
  box-shadow: var(--shadow);
}
.sti-contacto-left h2 { font-size: 28px; font-weight: 700; color: #fff; margin-bottom: 12px; }
.sti-contacto-left p  { color: rgba(255,255,255,.75); font-size: 15px; line-height: 1.6; }
.sti-email-link {
  margin-top: 20px;
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3);
  padding: 10px 18px; border-radius: 999px;
  font-weight: 700; color: #fff; font-size: 15px;
}
.sti-form { display: grid; gap: 12px; }
.sti-input, .sti-textarea {
  font-family: inherit; font-size: 15px; padding: 13px 16px;
  border: 1px solid rgba(255,255,255,.3); border-radius: var(--r-sm);
  background: rgba(255,255,255,.12); color: #fff; outline: none;
  transition: border-color .15s, background .15s;
}
.sti-input::placeholder, .sti-textarea::placeholder { color: rgba(255,255,255,.5); }
.sti-input:focus, .sti-textarea:focus {
  border-color: var(--dorado); background: rgba(255,255,255,.18);
}
.sti-textarea { resize: vertical; min-height: 110px; }
.sti-submit {
  background: var(--dorado); color: #1a1a1a; border: none;
  border-radius: var(--r-sm); padding: 14px 20px;
  font-weight: 700; font-size: 16px; font-family: inherit;
  cursor: pointer; box-shadow: 0 8px 20px rgba(0,0,0,.2);
  transition: transform .15s, filter .15s;
}
.sti-submit:hover { transform: translateY(-2px); filter: brightness(1.05); }

/* ── BUTTONS ── */
.sti-btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 20px; border-radius: 14px;
  font-weight: 700; font-size: 15px; font-family: inherit;
  border: 2px solid transparent; cursor: pointer;
  transition: transform .15s, box-shadow .15s;
  box-shadow: 0 6px 18px rgba(0,0,0,.1);
}
.sti-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.15); }
.sti-btn-primary   { background: var(--verde);  color: #fff; border-color: var(--verde); }
.sti-btn-secondary { background: var(--dorado); color: #1a1a1a; border-color: var(--dorado); }
.sti-btn-ghost     { background: #fff; color: var(--verde); border-color: rgba(49,90,58,.35); }

/* ── FLOATING BUTTONS ── */
.sti-floating {
  position: fixed; right: 18px; bottom: 18px; z-index: 200;
  display: flex; flex-direction: column; gap: 10px; align-items: flex-end;
}
.sti-fab {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px; border-radius: 999px;
  font-weight: 700; font-size: 14px; font-family: inherit;
  border: none; cursor: pointer;
  box-shadow: 0 8px 24px rgba(0,0,0,.2); transition: transform .15s;
}
.sti-fab:hover { transform: scale(1.04); }
.sti-fab-primary   { background: var(--verde);  color: #fff; }
.sti-fab-secondary { background: var(--dorado); color: #1a1a1a; }

/* ── SOCIAL BAR ── */
.sti-social-bar { background: var(--verde-dk); color: rgba(255,255,255,.7); }
.sti-social-wrap {
  max-width: var(--wrap); margin: 0 auto; padding: 14px var(--pad);
  display: flex; gap: 16px; flex-wrap: wrap; align-items: center;
}
.sti-social-chip {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 14px; color: #fff;
}
.sti-social-icon {
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 900;
}

/* ── FOOTER (versión simple, una línea centrada) ── */
.sti-footer {
  background: var(--verde-dk); color: rgba(255,255,255,.5);
  text-align: center; padding: 24px var(--pad); font-size: 13px;
}
.sti-footer a { color: rgba(255,255,255,.65); }
.sti-footer a:hover { color: var(--dorado); }

/* ── FOOTER (versión completa con marca + columnas) ── */
.sti-footer-nuevo {
  background: var(--verde-dk); color: rgba(255,255,255,.7);
  padding: 40px var(--pad) 0; margin-top: 56px;
}
.sti-footer-inner {
  max-width: var(--wrap); margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px;
  align-items: start;
}
.sti-footer-brand img {
  height: 64px; width: auto; max-width: 220px;
  margin-bottom: 14px; opacity: .95; display: block;
}
.sti-footer-brand p {
  font-size: 13px; line-height: 1.55;
  color: rgba(255,255,255,.55); margin: 0;
}
.sti-footer-col h4 {
  font-size: 14px; font-weight: 700; color: #fff;
  margin: 0 0 12px; letter-spacing: .3px;
}
.sti-footer-col ul { list-style: none; padding: 0; margin: 0; }
.sti-footer-col li { margin: 0 0 8px; }
.sti-footer-col a {
  color: rgba(255,255,255,.65); font-size: 13px;
  transition: color .15s;
}
.sti-footer-col a:hover { color: var(--dorado); }
.sti-footer-bottom {
  max-width: var(--wrap); margin: 28px auto 0;
  padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 8px;
  font-size: 12px; color: rgba(255,255,255,.5);
}
.sti-footer-bottom a { color: var(--dorado); }
.sti-footer-bottom a:hover { text-decoration: underline; }

/* ── BARRA INFERIOR MÓVIL (estilo app, 7 iconos) ── */
.sti-mobile-nav {
  display: none; /* se muestra solo en móvil */
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 300;
  background: #fff; border-top: 1px solid var(--borde);
  box-shadow: 0 -4px 18px rgba(0,0,0,.08);
  padding: 6px 4px env(safe-area-inset-bottom);
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.sti-mobile-nav::-webkit-scrollbar { display: none; }
.sti-mnav-inner {
  display: flex; gap: 2px; min-width: 100%; justify-content: space-around;
}
.sti-mnav-item {
  flex: 1 1 auto; min-width: 54px;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 6px 4px 4px; border-radius: 10px;
  font-family: inherit; color: var(--muted);
  transition: background .15s, color .15s;
}
.sti-mnav-item:hover { background: rgba(49,90,58,.06); color: var(--verde); }
.sti-mnav-item[aria-current="page"] {
  color: var(--verde); background: rgba(49,90,58,.08);
}
.sti-mnav-item[aria-current="page"] .sti-mnav-label { font-weight: 700; }
.sti-mnav-icon  { font-size: 18px; line-height: 1; }
.sti-mnav-label { font-size: 10.5px; font-weight: 600; letter-spacing: .2px; line-height: 1.1; text-align: center; }

/* ── BADGE / SEMÁFORO ── */
.sti-badge {
  font-size: 11px; border-radius: 999px; padding: .15rem .45rem;
  border: 1px solid; font-weight: 700; display: inline-block;
}
.sti-badge-up   { color: #0c5132; border-color: #99f6e4; background: #ecfeff; }
.sti-badge-flat { color: #4b5563; border-color: #e5e7eb; background: #f3f4f6; }
.sti-badge-down { color: #7f1d1d; border-color: #fecaca; background: #fff1f2; }

/* ── ALERT / NOTE ── */
.sti-note {
  padding: 12px 14px; border-left: 5px solid var(--dorado);
  background: rgba(251,181,67,.08); border-radius: 0 var(--r-sm) var(--r-sm) 0;
  font-size: 14px; color: var(--muted); line-height: 1.5;
}

/* ── RESPONSIVE ── */
@media (max-width: 980px) {
  .sti-tech-grid     { grid-template-columns: 1fr 1fr; }
  .sti-informe-grid  { grid-template-columns: 1fr; }
  .sti-contacto-wrap { grid-template-columns: 1fr; padding: 28px; }
  .sti-nav           { gap: 2px; }
  .sti-nav a         { font-size: 14px; padding: 7px 10px; }
  .sti-tabs          { gap: 4px; }
  .sti-tab           { font-size: 13px; padding: 8px 14px; }
}
@media (max-width: 760px) {
  /* footer completo: apilar columnas */
  .sti-footer-inner   { grid-template-columns: 1fr; gap: 24px; }
  .sti-footer-bottom  { flex-direction: column; align-items: flex-start; }
  /* mobile bottom nav: visible solo aquí */
  .sti-mobile-nav     { display: block; }
  body                { padding-bottom: 64px; }
}
@media (max-width: 640px) {
  .sti-tech-grid { grid-template-columns: 1fr; }
  .sti-tech-item { border-right: none; }
  .sti-floating  { right: 12px; bottom: 80px; } /* sube por encima de la mobile-nav */
  .sti-fab       { font-size: 13px; padding: 10px 14px; }
}


/* ════════════════════════════════════════════════════════════
   V2 POLISH — Microinteracciones y enriquecimiento visual
   Sin romper funcionalidad existente. Solo capa visual.
   ════════════════════════════════════════════════════════════ */

:root{
  --t-fast: 120ms cubic-bezier(.4,0,.2,1);
  --t-med:  220ms cubic-bezier(.4,0,.2,1);
  --t-slow: 380ms cubic-bezier(.4,0,.2,1);
  --t-bounce: 320ms cubic-bezier(.34,1.56,.64,1);
  --shadow-hover: 0 20px 48px rgba(0,0,0,.13);
  --glow-verde: 0 0 0 3px rgba(49,90,58,.15);
  --glow-dorado: 0 0 0 3px rgba(251,181,67,.25);
}

/* ── Smooth scroll global y fade-in al cargar página ─────── */
html{scroll-behavior:smooth;}
body{animation: stiPageIn .35s ease-out both;}
@keyframes stiPageIn{
  from{opacity:0; transform: translateY(4px);}
  to  {opacity:1; transform: translateY(0);}
}

/* ── Focus visible accesible (todos los elementos) ──────── */
*:focus-visible{
  outline: 3px solid rgba(251,181,67,.55);
  outline-offset: 2px;
  border-radius: 4px;
}
button:focus-visible, a:focus-visible{
  outline-offset: 3px;
}

/* ── HEADER NAV: hover con pill animado + underline ─────── */
.sti-nav a{
  position: relative;
  transition: color var(--t-med), background var(--t-med), transform var(--t-fast);
  z-index: 1;
}
.sti-nav a::after{
  content: "";
  position: absolute;
  left: 50%; right: 50%; bottom: 4px;
  height: 2px; background: var(--dorado);
  border-radius: 2px;
  transition: left var(--t-med), right var(--t-med);
  pointer-events: none;
}
.sti-nav a:hover::after{ left: 14px; right: 14px; }
.sti-nav a:hover{ transform: translateY(-1px); }
.sti-nav a[aria-current="page"]{
  background: rgba(49,90,58,.10);
  color: var(--verde);
  box-shadow: 0 1px 0 0 rgba(251,181,67,.7) inset;
}
.sti-nav a[aria-current="page"]::after{
  left: 14px; right: 14px;
  background: var(--dorado);
  height: 2.5px;
}

/* ── HEADER: ligera elevación al scroll (clase opcional) ─ */
.sti-header{transition: box-shadow var(--t-med), background var(--t-med);}

/* ── CARDS (sti-card, sti-tech, sti-informe, etc.) ──────── */
.sti-card,
.sti-tech-block,
.sti-informe-card,
.informe-preview-card,
.tech-block{
  transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
  will-change: transform;
}
.sti-card:hover,
.sti-tech-block:hover,
.sti-informe-card:hover,
.informe-preview-card:hover,
.tech-block:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(49,90,58,.22);
}

/* Tech items dentro del bloque: hover sutil */
.sti-tech-item{
  transition: background var(--t-fast);
}
.sti-tech-item:hover{
  background: rgba(251,240,172,.35);
}
.sti-tech-item:hover .sti-tech-dot,
.sti-tech-item:hover .tech-item-dot{
  transform: scale(1.4);
  transition: transform var(--t-bounce);
}

/* ── BOTONES principales ─────────────────────────────────── */
.sti-btn,
.btn,
.sti-submit,
.reset-btn,
.btn-view{
  transition: transform var(--t-fast), box-shadow var(--t-med), filter var(--t-fast);
}
.sti-btn:hover,
.btn:hover,
.sti-submit:hover,
.reset-btn:hover,
.btn-view:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
}
.sti-btn:active,
.btn:active,
.sti-submit:active,
.reset-btn:active,
.btn-view:active{
  transform: translateY(0);
  transition: transform 80ms;
}

/* ── CHIPS (varios tipos) ────────────────────────────────── */
.chip,
.ia-chip,
.sti-page-kicker{
  transition: background var(--t-fast), transform var(--t-fast), border-color var(--t-fast);
}
.chip:hover,
.ia-chip:hover{
  transform: scale(1.04);
}

/* ── TABS: indicador animado bajo el activo ─────────────── */
.sti-tab{
  position: relative;
  transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.sti-tab:hover{
  border-color: var(--dorado);
  transform: translateY(-1px);
}
.sti-tab[aria-selected="true"]{
  position: relative;
}
.sti-tab[aria-selected="true"]::after{
  content: "";
  position: absolute;
  left: 12px; right: 12px; bottom: -6px;
  height: 3px; background: var(--dorado);
  border-radius: 3px;
  animation: stiTabIn var(--t-med) ease-out;
}
@keyframes stiTabIn{
  from{transform: scaleX(.4); opacity: 0;}
  to  {transform: scaleX(1);  opacity: 1;}
}

/* ── INPUTS: focus con glow verde + transición ──────────── */
input[type="text"], input[type="search"], input[type="email"],
select, textarea,
.search-input, .filter-select, .ia-textarea, .ia-select,
.sti-input, .sti-textarea{
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}
input[type="text"]:focus, input[type="search"]:focus, input[type="email"]:focus,
select:focus, textarea:focus,
.search-input:focus, .filter-select:focus, .ia-textarea:focus, .ia-select:focus{
  border-color: var(--verde);
  box-shadow: var(--glow-verde);
  outline: none;
}

/* ── FAB (botones flotantes): pulse al cargar + bounce ── */
.sti-fab{
  transition: transform var(--t-bounce), box-shadow var(--t-med), filter var(--t-fast);
  animation: stiFabIn .55s var(--t-bounce) both;
}
.sti-fab:nth-child(1){ animation-delay: .15s; }
.sti-fab:nth-child(2){ animation-delay: .25s; }
.sti-fab:hover{
  transform: scale(1.06) translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.25);
}
.sti-fab:active{ transform: scale(.97); }
@keyframes stiFabIn{
  from{transform: translateY(20px) scale(.8); opacity: 0;}
  to  {transform: translateY(0)     scale(1);  opacity: 1;}
}

/* ── MOBILE NAV: press effect + animación entrada ──────── */
.sti-mnav-item{
  transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.sti-mnav-item:active{
  transform: scale(.92);
  background: rgba(49,90,58,.14);
}
.sti-mnav-item[aria-current="page"] .sti-mnav-icon{
  animation: stiIconBob 1.8s ease-in-out infinite;
}
@keyframes stiIconBob{
  0%, 100%{transform: translateY(0);}
  50%     {transform: translateY(-2px);}
}

/* ── DRAWER (en buenas prácticas y marco normativo) ──── */
.drawer{transition: transform .32s cubic-bezier(.4,0,.2,1);}
.drawer-bg{transition: opacity .28s ease;}

/* ── ENLACES dentro de prosa: subrayado animado ───────── */
main a, footer a, .sti-section a, .drawer a{
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size var(--t-med);
}
main a:hover, .sti-section a:hover, .drawer a:hover{
  background-size: 100% 1px;
}

/* ── BADGES con pequeño hover ─────────────────────────── */
.badge, .sti-badge, .pdf-pill, .source-pill{
  transition: transform var(--t-fast), filter var(--t-fast);
}
.badge:hover, .sti-badge:hover{
  transform: scale(1.06);
}

/* ── BRAND LOGO: leve highlight al hover ──────────────── */
.sti-brand img{
  transition: transform var(--t-med), filter var(--t-med);
}
.sti-brand:hover img,
.brand:hover img{
  transform: scale(1.04);
  filter: drop-shadow(0 4px 8px rgba(49,90,58,.15));
}

/* ── HERO (page hero band): suaviza la entrada ───────── */
.sti-page-hero, .visor-hero-band, .ia-hero-band, .page-hero, .hero-section{
  animation: stiHeroIn .5s ease-out both;
}
@keyframes stiHeroIn{
  from{opacity: 0; transform: translateY(-8px);}
  to  {opacity: 1; transform: translateY(0);}
}

/* ── HORIZONTAL DIVIDER: degradado dorado ────────────── */
.sti-divider{
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(251,181,67,.55) 50%, transparent 100%);
  margin: 32px 0;
}

/* ── SCROLLBAR custom (webkit) ─────────────────────── */
::-webkit-scrollbar{width: 10px; height: 10px;}
::-webkit-scrollbar-track{background: #f0eee7;}
::-webkit-scrollbar-thumb{
  background: rgba(49,90,58,.35); border-radius: 6px;
  border: 2px solid #f0eee7;
}
::-webkit-scrollbar-thumb:hover{background: rgba(49,90,58,.55);}

/* ── PRINT: limpiar animaciones ──────────────────────── */
@media print{
  *, *::before, *::after{animation: none !important; transition: none !important;}
}

/* ── PREFERENCIAS DE USUARIO: respeta reduce-motion ─ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
