:root{
  --brand-primary: #3c4389;
  --brand-dark: #364150;
  --brand-accent: #6c77ee;
  --brand-accent-2: #37a976;
  --brand-gradient: linear-gradient(-90deg, #8487e7, #364150);
  --border-subtle: #36415053;
  --nav-z: 1030;
}

/* Base */
body { background: rgb(226, 227, 227); font-family: 'Nunito', sans-serif; font-size: 16px; }
.tablas p { text-align: justify; }
footer a { color: white; }

/* Navbar */
.navigator-container { position: fixed; top: 0; left: 0; right: 0; z-index: var(--nav-z); padding-left: 0; padding-right: 0; }
.navigator { background: var(--brand-gradient); border-bottom: 1px solid rgba(255, 255, 255, 0.125); }
.navigator.scrolled { background: var(--brand-dark); }
.demo.scrolled { color: #fff; background-color: var(--brand-accent-2); border-color: var(--brand-accent-2); }
.demo.scrolled:hover { color: #fff; background-color: #17a2b8; border-color: #17a2b8; }
/* Logo sizing */
.navbar-brand img { height: 50px; width: auto; display: block; }
@media (min-width: 768px) { .navbar-brand img { height: 70px; } }

/* Hero */
.first, .fila-intermedia { background: var(--brand-gradient); }
.hero { min-height: 95vh; }
.hero-title { font-weight: 300; color: #fff; }
.hero-subtitle { color: #fff; }

/* Buttons */
.demo:hover { color: #fff; background-color: #17a2b8; border-color: #17a2b8; }
.boton-secundario { color: #fff; background: var(--brand-accent); border-color: var(--brand-accent); }
.boton-secundario:hover { color: #fff; background-color: #17a2b8; border-color: #17a2b8; }
.demo2 { color: #fff; background-color: var(--brand-accent-2); border-color: var(--brand-accent-2); }
.demo2:hover { color: #fff; background-color: #34b8bc; border-color: #34b8bc; }

/* Cards */
.card:hover { transform: scale(1.05); transition: 0.5s all; }
@media (prefers-reduced-motion: reduce) {
  .card:hover { transform: none; transition: none; }
}
.tarjeta { border: none; border-radius: 0.5rem; height: 100%; }
.tarjeta-borde-gris { border: 1px solid rgba(80, 80, 80, 0.639); border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }

/* Borders and colors */
.border-brand { border-color: var(--border-subtle) !important; }
.text-brand { color: var(--brand-primary); }

/* Anchor offset */
.anchor-target { scroll-margin-top: 80px; }

/* Cookie banner */
.cookiealert { padding: 1px; }
.cookiealert a, .cookiealert .acceptcookies { font-size: 13px; }

/* Footer */
.site-footer { background: #1C2833; }

/* Responsive specifics */
@media (max-width: 767px) {
  .terminos { text-align: center !important; }
  header .menu {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
    flex-wrap: nowrap;              /* una sola línea */
    overflow-x: auto;               /* scroll horizontal si no cabe */
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: .25rem 0;
  }
  header .menu .btn { white-space: nowrap; }
  header .menu::-webkit-scrollbar { display: none; } /* oculta scrollbar en iOS/Chrome */
}

/* Optional helpers */
.bg-brand { background: var(--brand-dark) !important; }
.border-light-subtle { border-color: rgba(255, 255, 255, 0.125) !important; }
.contact-underline { border-bottom: 1px solid var(--brand-accent); display: inline; }
