/* ==========================================================
   Gestión Vial · Capa visual premium
   Objetivo: web más limpia, editorial y SaaS profesional
   ========================================================== */
:root {
  --gv-blue-dark: #0f2f63 !important;
  --gv-blue-brand: #2563eb !important;
  --gv-lime: #b7ff2a !important;
  --gv-lime-soft: #ecffd1 !important;
  --gv-lime-light: #efffcb !important;
  --gv-bg-gray: #f8fafc !important;
  --gv-surface: #ffffff;
  --gv-surface-2: #f1f5f9;
  --gv-border: #e2e8f0;
  --gv-text: #0f172a;
  --gv-muted: #64748b;
  --gv-shadow-soft: 0 18px 45px rgba(15, 23, 42, 0.055);
  --gv-shadow-card: 0 14px 34px rgba(15, 23, 42, 0.06);
  --gv-radius-xl: 24px;
  --gv-radius-lg: 18px;
}

html,
body {
  background: var(--gv-bg-gray) !important;
  color: var(--gv-text) !important;
}

body {
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  font-family: 'Inter', 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  letter-spacing: -0.01em;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand,
.btn,
.badge,
.hero-title,
.offers-title,
.jobs-hero h1 {
  font-family: 'Manrope', 'Inter', 'Outfit', system-ui, sans-serif !important;
}

a { transition: color .18s ease, transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }

/* Navegación */
.navbar {
  background: rgba(255,255,255,.9) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(226,232,240,.82);
  box-shadow: 0 12px 32px rgba(15,23,42,.035) !important;
}
.nav-link {
  color: #334155 !important;
  font-weight: 650 !important;
  font-size: .95rem;
}
.nav-link:hover,
.nav-link:focus {
  color: var(--gv-blue-dark) !important;
}
.navbar .dropdown-menu {
  border: 1px solid rgba(226,232,240,.95) !important;
  box-shadow: 0 20px 45px rgba(15,23,42,.09) !important;
}
.navbar-toggler {
  background: #fff !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 8px 20px rgba(15,23,42,.06) !important;
}
.contact-icons a { color: #334155 !important; }
.contact-icons a:hover { color: var(--gv-blue-brand) !important; }

/* Botones coherentes */
.btn,
.btn-lime,
.btn-dark-blue,
.btn-hero-primary,
.btn-hero-secondary,
.btn-filter,
.btn-clear,
.btn-apply,
.offers-head-link,
.filter-pill,
.quick-link,
.offer-cta {
  border-radius: 999px !important;
  font-weight: 750 !important;
}
.btn-dark-blue,
.btn-hero-primary,
.btn-filter,
.btn-apply,
.offer-cta {
  background: var(--gv-blue-dark) !important;
  color: #fff !important;
  border: 1px solid var(--gv-blue-dark) !important;
  box-shadow: 0 12px 26px rgba(15,47,99,.16) !important;
}
.btn-dark-blue:hover,
.btn-hero-primary:hover,
.btn-filter:hover,
.btn-apply:hover,
.offer-cta:hover {
  background: #0b2450 !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 34px rgba(15,47,99,.20) !important;
}
.btn-lime {
  background: var(--gv-lime) !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid rgba(183,255,42,.75) !important;
  box-shadow: 0 12px 28px rgba(183,255,42,.22) !important;
}
.btn-lime:hover {
  background: #aef127 !important;
  color: var(--gv-blue-dark) !important;
  transform: translateY(-1px) !important;
}
.btn-outline-dark,
.btn-outline-secondary,
.btn-hero-secondary,
.btn-clear,
.offers-head-link {
  background: #fff !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.045) !important;
}
.btn-outline-dark:hover,
.btn-outline-secondary:hover,
.btn-hero-secondary:hover,
.btn-clear:hover,
.offers-head-link:hover {
  background: #f8fafc !important;
  color: var(--gv-blue-dark) !important;
  border-color: #cbd5e1 !important;
  transform: translateY(-1px) !important;
}

/* Hero portada */
.clean-hero {
  background:
    radial-gradient(circle at 18% 12%, rgba(37,99,235,.09), transparent 30%),
    radial-gradient(circle at 84% 10%, rgba(183,255,42,.16), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#f8fafc 100%) !important;
  padding: 4.4rem 0 2.8rem !important;
  border-bottom: 1px solid rgba(226,232,240,.85);
}
.brand-kicker,
.hero-badge,
.offers-kicker {
  background: #fff !important;
  border: 1px solid var(--gv-border) !important;
  color: #475569 !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.045) !important;
  text-transform: none !important;
  letter-spacing: .01em !important;
}
.hero-title {
  color: var(--gv-text) !important;
  line-height: .98 !important;
  letter-spacing: -.055em !important;
  font-weight: 850 !important;
  max-width: 880px !important;
}
.hero-subtitle,
.offers-subtitle,
.results-copy,
.filters-subtitle,
.offer-desc,
.desc-preview {
  color: var(--gv-muted) !important;
}
.hero-subtitle {
  max-width: 710px !important;
  font-size: 1.08rem !important;
}
.hero-premium-actions,
.hero-trust-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .72rem;
}
.hero-trust-row { margin-top: 1rem; }
.hero-trust-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(226,232,240,.9);
  color: #475569;
  border-radius: 999px;
  padding: .55rem .82rem;
  font-size: .86rem;
  font-weight: 700;
}
.hero-trust-chip i { color: var(--gv-blue-brand); }
.clean-search {
  border: 1px solid var(--gv-border) !important;
  border-radius: 999px !important;
  box-shadow: 0 18px 44px rgba(15,23,42,.08) !important;
  max-width: 660px !important;
}
.clean-search:focus-within {
  border-color: rgba(37,99,235,.28) !important;
  box-shadow: 0 20px 46px rgba(37,99,235,.12) !important;
}
.btn-search-circle { background: var(--gv-blue-dark) !important; }
.btn-search-circle:hover { background: var(--gv-lime) !important; color: var(--gv-blue-dark) !important; }

/* Bento / módulos home más sobrios */
.bento-grid { max-width: 840px !important; margin-top: 1.35rem !important; }
.bento-item {
  border-radius: var(--gv-radius-xl) !important;
  box-shadow: var(--gv-shadow-card) !important;
  border: 1px solid rgba(226,232,240,.78) !important;
}
.bento-main {
  background: linear-gradient(180deg, rgba(15,47,99,.10), rgba(15,47,99,.72)), url('../img/1000134277.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.bento-lime {
  background: #fff !important;
  color: var(--gv-blue-dark) !important;
}
.bento-light { background: #fff !important; }

/* Bloque ofertas portada */
.ofertas-wrapper {
  background: #fff !important;
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}
.green-bg-layer { display: none !important; }
.offers-head { align-items: flex-end !important; }
.offers-title {
  color: var(--gv-text) !important;
  letter-spacing: -.04em !important;
}
.filter-pills,
.quick-zones { padding-top: .25rem !important; }
.filter-pill,
.quick-zone,
.swipe-hint,
.offer-date-pill,
.offer-meta-chip,
.badge-pill-light,
.result-pill,
.offer-chip,
.badge-pill-info {
  background: #f8fafc !important;
  border: 1px solid var(--gv-border) !important;
  color: #475569 !important;
  box-shadow: none !important;
}
.filter-pill:hover,
.filter-pill.active {
  background: var(--gv-blue-dark) !important;
  color: #fff !important;
  border-color: var(--gv-blue-dark) !important;
}
.featured-slot-visual {
  background: var(--gv-lime-soft) !important;
  border-color: rgba(183,255,42,.55) !important;
}

/* Tarjetas de oferta */
.myca-card,
.offer-card,
.filters-panel,
.results-panel,
.jobs-hero,
.empty-card,
.home-modal .modal-content {
  background: #fff !important;
  border: 1px solid var(--gv-border) !important;
  border-radius: var(--gv-radius-xl) !important;
  box-shadow: var(--gv-shadow-card) !important;
}
.myca-card::before {
  height: 4px !important;
  background: linear-gradient(90deg, var(--gv-blue-dark), var(--gv-blue-brand), var(--gv-lime)) !important;
}
.myca-card:hover,
.offer-card:hover,
.eco-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 22px 50px rgba(15,23,42,.09) !important;
}
.company-avatar-wrap,
.company-avatar {
  border-radius: 15px !important;
  background: #f8fafc !important;
  border: 1px solid var(--gv-border) !important;
}
.badge-autoescuela,
.company-name,
.offer-title,
.offer-title a,
.salary-value,
.price-amount,
.results-title,
.filters-title {
  color: var(--gv-text) !important;
}
.offer-meta-chip.verified,
.company-verified,
.offer-chip.lime,
.badge-lime {
  background: var(--gv-lime-soft) !important;
  border-color: rgba(183,255,42,.55) !important;
  color: #496300 !important;
}
.offer-card-boosted {
  background: radial-gradient(circle at top right, rgba(183,255,42,.14), transparent 35%), #fff !important;
  border-color: rgba(183,255,42,.7) !important;
}
.price-block,
.offer-footer {
  border-top: 1px solid var(--gv-border) !important;
}

/* Ecosistema inferior: tarjetas premium blancas */
.eco-card,
.eco-card-1,
.eco-card-2,
.eco-card-3,
.eco-card-4 {
  background: #fff !important;
  color: var(--gv-text) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: var(--gv-shadow-card) !important;
}
.eco-card .badge {
  background: #f8fafc !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
}
.eco-card p { color: var(--gv-muted) !important; opacity: 1 !important; }
.eco-bg-icon { color: var(--gv-blue-dark) !important; opacity: .045 !important; }

/* Página de ofertas */
.jobs-shell { background: var(--gv-bg-gray) !important; }
.jobs-hero {
  background:
    radial-gradient(circle at 90% 0%, rgba(183,255,42,.16), transparent 32%),
    linear-gradient(180deg,#fff 0%,#f8fafc 100%) !important;
  padding: 1.6rem !important;
}
.jobs-hero h1 {
  color: var(--gv-text) !important;
  letter-spacing: -.055em !important;
}
.form-control-custom,
.form-select-custom,
.home-modal .form-control,
.home-modal .form-select,
.form-control,
.form-select {
  border-color: var(--gv-border) !important;
}
.form-control-custom:focus,
.form-select-custom:focus,
.form-control:focus,
.form-select:focus {
  border-color: rgba(37,99,235,.32) !important;
  box-shadow: 0 0 0 .2rem rgba(37,99,235,.08) !important;
}

/* Dashboard / paneles */
.gv-pro-metrics-row .rounded-4,
.dashboard-kpi,
.stat-card,
.metric-card {
  background: #f8fafc !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: none !important;
}

/* Footer */
footer { border-top: 0 !important; }
footer .py-5 { background: #f8fafc !important; }
footer .bg-white,
footer form .form-control,
footer form .form-select {
  border: 1px solid var(--gv-border) !important;
}
#cookie-banner {
  background: var(--gv-blue-dark) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.floating-wa {
  width: 54px !important;
  height: 54px !important;
  font-size: 28px !important;
  box-shadow: 0 18px 36px rgba(37,211,102,.24) !important;
}

@media (max-width: 767.98px) {
  .clean-hero { padding: 2.1rem 0 1.45rem !important; }
  .hero-title { font-size: clamp(2rem, 10vw, 3.1rem) !important; letter-spacing: -.06em !important; }
  .hero-subtitle { font-size: .96rem !important; max-width: 94% !important; }
  .hero-premium-actions .btn { width: 100%; max-width: 310px; }
  .hero-trust-row { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding: .2rem 1rem .5rem; scrollbar-width: none; }
  .hero-trust-row::-webkit-scrollbar { display: none; }
  .hero-trust-chip { white-space: nowrap; font-size: .78rem; }
  .clean-search { max-width: 94% !important; }
  .bento-grid { grid-template-columns: 1fr 1fr !important; }
  .offers-head { align-items: flex-start !important; }
  .ofertas-wrapper { padding-top: 2rem !important; padding-bottom: 2rem !important; }
  .myca-card,
  .offer-card,
  .filters-panel,
  .results-panel,
  .jobs-hero { border-radius: 20px !important; }
}


/* ==========================================================
   Gestión Vial · Premium v3
   Corrección: mantiene la versión premium y evita volver al diseño antiguo.
   Mejora: navbar tipo SaaS, tarjetas de ofertas y ecosistema más elegante.
   ========================================================== */
:root {
  --gv-lime: #b9d94a !important;
  --gv-lime-soft: #f1f8d8 !important;
  --gv-lime-light: #f5f9e8 !important;
  --gv-blue-dark: #0d2f5f !important;
  --gv-blue-brand: #2457c5 !important;
  --gv-bg-gray: #f7f9fc !important;
  --gv-border: #e5ebf2 !important;
  --gv-shadow-soft: 0 18px 45px rgba(15, 23, 42, 0.045) !important;
  --gv-shadow-card: 0 16px 36px rgba(15, 23, 42, 0.055) !important;
}

/* Navbar premium */
.navbar {
  background: rgba(255,255,255,.92) !important;
  border-bottom: 1px solid rgba(226,232,240,.86) !important;
  box-shadow: 0 10px 30px rgba(15,23,42,.035) !important;
}
.navbar .container {
  max-width: 1180px;
}
.navbar-brand img {
  filter: saturate(.95) contrast(1.02);
}
.navbar-nav {
  align-items: center;
}
.navbar .nav-link {
  position: relative;
  color: #2f4058 !important;
  font-weight: 760 !important;
  letter-spacing: -.01em;
  padding-inline: .45rem !important;
}
@media (min-width: 992px) {
  .navbar .nav-link::after {
    content: "";
    position: absolute;
    left: .45rem;
    right: .45rem;
    bottom: .22rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--gv-blue-brand), var(--gv-lime));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .18s ease;
  }
  .navbar .nav-link:hover::after { transform: scaleX(1); }
}
.navbar .dropdown-menu {
  border-radius: 20px !important;
  padding: .6rem !important;
}
.navbar .dropdown-item {
  font-weight: 700 !important;
  color: #334155 !important;
  border-radius: 14px !important;
}
.navbar .dropdown-item:hover {
  background: #f8fafc !important;
  color: var(--gv-blue-dark) !important;
}
.gv-nav-publish {
  background: var(--gv-blue-dark) !important;
  color: #fff !important;
  border: 1px solid var(--gv-blue-dark) !important;
  box-shadow: 0 12px 26px rgba(13,47,95,.16) !important;
}
.gv-nav-publish:hover,
.gv-nav-panel:hover {
  background: #092652 !important;
  color: #fff !important;
  transform: translateY(-1px);
}
.gv-nav-login,
.gv-nav-logout {
  background: #fff !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 10px 20px rgba(15,23,42,.045) !important;
}
.gv-nav-login:hover,
.gv-nav-logout:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
  color: var(--gv-blue-dark) !important;
}
.gv-nav-panel {
  background: var(--gv-blue-dark) !important;
  color: #fff !important;
  border: 1px solid var(--gv-blue-dark) !important;
}
@media (max-width: 991.98px) {
  .navbar-collapse {
    border: 1px solid var(--gv-border) !important;
    box-shadow: 0 18px 40px rgba(15,23,42,.10) !important;
    border-radius: 24px !important;
  }
  .navbar-nav { align-items: stretch; }
  .navbar-nav .nav-link {
    padding: .92rem .2rem !important;
    font-size: 1rem !important;
  }
}

/* Ofertas: más premium, menos bloque y menos verde */
.ofertas-wrapper {
  background:
    radial-gradient(circle at top right, rgba(36,87,197,.07), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
}
.offers-kicker {
  color: #41536b !important;
}
.offers-kicker i {
  color: var(--gv-blue-brand) !important;
}
.myca-card,
.offer-card {
  border-radius: 26px !important;
  border: 1px solid #e5ebf2 !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), #fff) !important;
  box-shadow: 0 16px 40px rgba(15,23,42,.055) !important;
}
.myca-card::before,
.offer-card::before {
  height: 4px !important;
  background: linear-gradient(90deg, #0d2f5f 0%, #2457c5 70%, #b9d94a 100%) !important;
}
.myca-card:hover,
.offer-card:hover {
  transform: translateY(-4px) !important;
  border-color: #d8e1ed !important;
  box-shadow: 0 24px 52px rgba(15,23,42,.09) !important;
}
.myca-card-header,
.offer-card .card-header {
  border-bottom: 1px solid #edf2f7 !important;
}
.badge-autoescuela,
.offer-title,
.offer-title a,
.price-amount,
.salary-value {
  color: #0f172a !important;
}
.desc-preview,
.offer-desc {
  color: #64748b !important;
}
.offer-meta-chip,
.badge-pill-light,
.offer-date-pill {
  background: #f8fafc !important;
  color: #506176 !important;
  border: 1px solid #e5ebf2 !important;
}
.offer-meta-chip.verified,
.badge-lime,
.offer-chip.lime {
  background: #f5f9e8 !important;
  border-color: #e2efb4 !important;
  color: #586b0d !important;
}
.price-block,
.offer-footer {
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%) !important;
  border-top: 1px solid #edf2f7 !important;
}
.offer-cta,
.btn-dark-blue {
  background: #0d2f5f !important;
  border-color: #0d2f5f !important;
  color: #fff !important;
}
.offer-cta:hover,
.btn-dark-blue:hover {
  background: #092652 !important;
  border-color: #092652 !important;
}
.slider-dots span { background: #cbd5e1 !important; }
.slider-dots span.active { background: var(--gv-blue-dark) !important; }

/* Ecosistema 360 legible */
.gv-ecosystem-section {
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
  border-top: 1px solid #edf2f7;
}
.gv-section-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: .65rem;
  padding: .4rem .8rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--gv-border);
  color: #586b0d;
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .1em;
  box-shadow: 0 10px 22px rgba(15,23,42,.035);
}
.gv-ecosystem-section h2 {
  color: var(--gv-blue-dark) !important;
  letter-spacing: -.04em;
}
.gv-section-copy {
  max-width: 650px;
  color: #64748b;
  font-weight: 500;
}
.gv-eco-card-polished,
.eco-card.gv-eco-card-polished {
  position: relative !important;
  min-height: 250px !important;
  padding: 1.35rem !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #fff !important;
  color: #0f172a !important;
  border: 1px solid #e5ebf2 !important;
  box-shadow: 0 16px 38px rgba(15,23,42,.055) !important;
  text-decoration: none !important;
}
.gv-eco-card-polished::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 5px;
  background: linear-gradient(90deg, #0d2f5f, #2457c5);
}
.gv-eco-card-polished.eco-card-2::before { background: linear-gradient(90deg, #8faa13, #b9d94a) !important; }
.gv-eco-card-polished.eco-card-3::before { background: linear-gradient(90deg, #18385f, #4f6f9f) !important; }
.gv-eco-card-polished.eco-card-4::before { background: linear-gradient(90deg, #7c1d38, #c24163) !important; }
.gv-eco-card-polished:hover {
  transform: translateY(-4px) !important;
  border-color: #d8e1ed !important;
  box-shadow: 0 24px 52px rgba(15,23,42,.09) !important;
}
.gv-eco-card-polished .eco-kicker {
  display: inline-flex;
  width: fit-content;
  padding: .42rem .75rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e5ebf2;
  color: #35507c;
  font-size: .74rem;
  font-weight: 850;
}
.gv-eco-card-polished h3 {
  max-width: 78%;
  margin: 0 0 .55rem;
  color: #0f172a !important;
  font-size: 1.12rem;
  font-weight: 850;
  letter-spacing: -.035em;
}
.gv-eco-card-polished p {
  max-width: 82%;
  margin: 0;
  color: #64748b !important;
  opacity: 1 !important;
  font-size: .94rem;
  line-height: 1.55;
  font-weight: 520;
}
.gv-eco-card-polished .eco-link {
  position: absolute;
  left: 1.35rem;
  bottom: 1.2rem;
  display: inline-flex;
  gap: .42rem;
  align-items: center;
  color: var(--gv-blue-dark);
  font-size: .84rem;
  font-weight: 850;
}
.gv-eco-card-polished .eco-icon-bubble {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 70px;
  height: 70px;
  border-radius: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  color: #2457c5;
  background: linear-gradient(180deg, #eff5ff 0%, #e3ecfb 100%);
  border: 1px solid #dce7f7;
}
.gv-eco-card-polished.eco-card-2 .eco-icon-bubble { background: linear-gradient(180deg, #fbfde9 0%, #f2f8d1 100%); color: #7c9309; border-color: #e7f0b9; }
.gv-eco-card-polished.eco-card-3 .eco-icon-bubble { background: linear-gradient(180deg, #eef3fa 0%, #e1eaf6 100%); color: #28476f; border-color: #dce5f1; }
.gv-eco-card-polished.eco-card-4 .eco-icon-bubble { background: linear-gradient(180deg, #fff1f5 0%, #ffe4ec 100%); color: #a12045; border-color: #ffd1df; }
.eco-bg-icon { display: none !important; }

@media (max-width: 575.98px) {
  .gv-eco-card-polished,
  .eco-card.gv-eco-card-polished {
    min-height: 220px !important;
    padding: 1.15rem !important;
    border-radius: 24px !important;
  }
  .gv-eco-card-polished h3 { max-width: 72%; font-size: 1.06rem; }
  .gv-eco-card-polished p { max-width: 100%; padding-right: 4.25rem; font-size: .9rem; }
  .gv-eco-card-polished .eco-link { left: 1.15rem; bottom: 1rem; }
  .gv-eco-card-polished .eco-icon-bubble {
    width: 62px;
    height: 62px;
    border-radius: 18px;
    right: .85rem;
    bottom: .85rem;
    font-size: 1.5rem;
  }
}

/* ==========================================================
   Gestión Vial · Premium v4
   Aplicado a app, campus, intensivos, web autoescuelas y dashboard.
   Corrección principal: evita textos blancos sobre tarjetas blancas
   en pricing-card-pro y tarjetas antiguas de servicio.
   ========================================================== */
:root {
  --gv-lime: #b8d94a !important;
  --gv-lime-soft: #f3f8dd !important;
  --gv-lime-light: #f6fae8 !important;
  --gv-blue-dark: #0d2f5f !important;
  --gv-blue-brand: #2457c5 !important;
  --gv-text: #0f172a !important;
  --gv-muted: #667085 !important;
  --gv-border: #e5ebf2 !important;
}

/* Tarjetas antiguas de servicios: aspecto SaaS premium uniforme */
.myca-card,
.card.rounded-4,
.hero-card,
.gv-service-pro-card,
.pricing-card-pro,
.gv-dashboard-intensive-card {
  border: 1px solid var(--gv-border) !important;
  border-radius: 28px !important;
  background: #ffffff !important;
  color: var(--gv-text) !important;
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.055) !important;
}

.myca-card:hover,
.card.rounded-4:hover,
.hero-card:hover,
.gv-service-pro-card:hover,
.gv-dashboard-intensive-card:hover {
  transform: translateY(-3px) !important;
  border-color: #d7e1ee !important;
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.085) !important;
}

/* Tarjetas pro que antes eran azul oscuro: ahora blancas y legibles */
.pricing-card-pro,
.gv-service-pro-card,
.gv-dashboard-intensive-card {
  position: relative !important;
  overflow: hidden !important;
  min-height: unset !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(184, 217, 74, .13), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
}
.pricing-card-pro::before,
.gv-service-pro-card::before,
.gv-dashboard-intensive-card::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--gv-blue-dark) 0%, var(--gv-blue-brand) 72%, var(--gv-lime) 100%);
  z-index: 2;
}

.pricing-card-pro .text-white,
.gv-service-pro-card .text-white,
.gv-dashboard-intensive-card .text-white,
.pricing-card-pro h1,
.pricing-card-pro h2,
.pricing-card-pro h3,
.pricing-card-pro h4,
.pricing-card-pro h5,
.gv-service-pro-card h1,
.gv-service-pro-card h2,
.gv-service-pro-card h3,
.gv-service-pro-card h4,
.gv-service-pro-card h5,
.gv-dashboard-intensive-card h1,
.gv-dashboard-intensive-card h2,
.gv-dashboard-intensive-card h3,
.gv-dashboard-intensive-card h4,
.gv-dashboard-intensive-card h5 {
  color: var(--gv-text) !important;
}
.pricing-card-pro p,
.pricing-card-pro .opacity-75,
.pricing-card-pro small,
.gv-service-pro-card p,
.gv-service-pro-card .opacity-75,
.gv-service-pro-card small,
.gv-dashboard-intensive-card p,
.gv-dashboard-intensive-card .opacity-75,
.gv-dashboard-intensive-card small,
.gv-dashboard-intensive-card td,
.gv-dashboard-intensive-card th {
  color: var(--gv-muted) !important;
  opacity: 1 !important;
}
.pricing-card-pro li,
.pricing-card-pro li span,
.gv-service-pro-card li,
.gv-service-pro-card li span,
.gv-dashboard-intensive-card li,
.gv-dashboard-intensive-card li span {
  color: #26364d !important;
  opacity: 1 !important;
}
.pricing-card-pro .bi-check-circle-fill,
.gv-service-pro-card .bi-check-circle-fill,
.gv-dashboard-intensive-card .bi-check-circle-fill,
.gv-check-icon,
.bi-check-lg.text-success {
  color: #8faa13 !important;
}
.pricing-card-pro .border-end,
.pricing-card-pro .border-secondary,
.pricing-card-pro .border-white,
.gv-service-pro-card .border-end,
.gv-service-pro-card .border-secondary,
.gv-service-pro-card .border-white,
.gv-dashboard-intensive-card .border-end,
.gv-dashboard-intensive-card .border-secondary,
.gv-dashboard-intensive-card .border-white {
  border-color: var(--gv-border) !important;
}
.pricing-card-pro .badge,
.gv-service-pro-card .badge,
.gv-dashboard-intensive-card .badge {
  background: var(--gv-lime-soft) !important;
  color: #52660d !important;
  border: 1px solid #e2efb4 !important;
}
.pricing-card-pro .btn-lime,
.gv-service-pro-card .btn-lime,
.gv-dashboard-intensive-card .btn-lime,
.gv-campus-plans .btn-primary,
.gv-campus-contact .btn-lime {
  background: var(--gv-blue-dark) !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-blue-dark) !important;
  box-shadow: 0 14px 30px rgba(13,47,95,.18) !important;
}
.pricing-card-pro .btn-lime:hover,
.gv-service-pro-card .btn-lime:hover,
.gv-dashboard-intensive-card .btn-lime:hover,
.gv-campus-plans .btn-primary:hover,
.gv-campus-contact .btn-lime:hover {
  background: #092652 !important;
  color: #ffffff !important;
}

/* Dashboard autoescuela: tarjeta de intensivos antes quedaba blanca sin texto */
.gv-dashboard-intensive-card .card-body {
  position: relative;
  z-index: 3;
}
.gv-dashboard-intensive-card table {
  color: var(--gv-text) !important;
}
.gv-dashboard-intensive-card thead tr,
.gv-dashboard-intensive-card tr {
  border-color: var(--gv-border) !important;
}
.gv-dashboard-intensive-card .border-dashed,
.gv-dashboard-intensive-card .border-white {
  background: #f8fafc !important;
  border-color: var(--gv-border) !important;
}
.gv-dashboard-intensive-card .badge.bg-white {
  background: #f8fafc !important;
  color: var(--gv-blue-dark) !important;
}

/* Ecosistema del dashboard con el mismo lenguaje visual que home */
.dashboard-empresa .eco-card,
.gv-eco-card-polished {
  color: var(--gv-text) !important;
}
.gv-eco-card-polished .badge {
  background: #f8fafc !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
}
.gv-eco-card-polished h3,
.gv-eco-card-polished p {
  opacity: 1 !important;
}

/* Campus virtual: hero, planes y formulario coherentes con el nuevo diseño */
.gv-campus-hero {
  background:
    radial-gradient(circle at 12% 0%, rgba(36,87,197,.14), transparent 32%),
    radial-gradient(circle at 88% 6%, rgba(184,217,74,.18), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
  color: var(--gv-text) !important;
  border-bottom: 1px solid var(--gv-border) !important;
}
.gv-campus-hero .text-white,
.gv-campus-hero .hero-title,
.gv-campus-hero h1,
.gv-campus-hero h2,
.gv-campus-hero p {
  color: var(--gv-text) !important;
  opacity: 1 !important;
}
.gv-campus-hero .badge {
  background: #ffffff !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.045) !important;
}
.gv-campus-hero .btn-light {
  background: var(--gv-blue-dark) !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-blue-dark) !important;
}
.gv-campus-plans {
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
}
.gv-campus-plans .card {
  border: 1px solid var(--gv-border) !important;
  border-radius: 28px !important;
  background: #ffffff !important;
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.055) !important;
  overflow: hidden !important;
}
.gv-campus-plans .card.border-primary {
  border-color: #d7e3f7 !important;
  transform: none !important;
}
.gv-campus-plans .bg-primary.text-white {
  background: var(--gv-blue-dark) !important;
  color: #ffffff !important;
  border-radius: 0 !important;
}
.gv-campus-plans .text-primary { color: var(--gv-blue-dark) !important; }
.gv-campus-plans .text-danger,
.gv-campus-plans .text-warning-emphasis { color: #8faa13 !important; }
.gv-campus-contact .bg-dark {
  background:
    radial-gradient(circle at 100% 0%, rgba(184,217,74,.16), transparent 32%),
    #ffffff !important;
  color: var(--gv-text) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.055) !important;
}
.gv-campus-contact .text-white,
.gv-campus-contact .opacity-75,
.gv-campus-contact h3,
.gv-campus-contact p {
  color: var(--gv-text) !important;
  opacity: 1 !important;
}

/* App / intensivos / web: áreas de servicio más limpias */
.saas-hero {
  background:
    radial-gradient(circle at 12% 0%, rgba(36,87,197,.16), transparent 32%),
    radial-gradient(circle at 88% 8%, rgba(184,217,74,.18), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--gv-border) !important;
}
.saas-hero .text-white,
.saas-hero .saas-title,
.saas-hero h1,
.saas-hero h2,
.saas-hero p {
  color: var(--gv-text) !important;
  opacity: 1 !important;
}
.saas-hero .badge.bg-white,
.saas-hero .badge.bg-light {
  background: #ffffff !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
}
.saas-hero .btn-outline-light {
  background: #ffffff !important;
  color: var(--gv-blue-dark) !important;
  border: 1px solid var(--gv-border) !important;
}
.saas-hero .btn-lime {
  background: var(--gv-blue-dark) !important;
  color: #ffffff !important;
  border-color: var(--gv-blue-dark) !important;
}
.hero-device {
  background: rgba(255,255,255,.78) !important;
  border: 1px solid var(--gv-border) !important;
  box-shadow: 0 18px 45px rgba(15,23,42,.08) !important;
}
.hero-device-screen {
  border: 1px solid var(--gv-border) !important;
}

/* Reduce verde dominante en botones grandes generales, pero conserva el acento en badges */
.btn-lime.w-100,
.btn-lime.py-3,
.btn-lime.px-4.py-3 {
  box-shadow: 0 14px 30px rgba(13,47,95,.14) !important;
}

@media (max-width: 767.98px) {
  .pricing-card-pro,
  .gv-service-pro-card,
  .gv-dashboard-intensive-card,
  .gv-campus-plans .card,
  .gv-campus-contact .bg-dark {
    border-radius: 24px !important;
  }
  .pricing-card-pro .row,
  .gv-service-pro-card .row {
    gap: 1rem !important;
  }
  .pricing-card-pro .border-end,
  .gv-service-pro-card .border-end {
    border-right: 0 !important;
    border-bottom: 1px solid var(--gv-border) !important;
    padding-bottom: 1rem !important;
  }
  .saas-hero,
  .gv-campus-hero {
    padding-top: 2.25rem !important;
    padding-bottom: 2.5rem !important;
  }
}
