:root {
    --base-color: #a81616;
}

/* Fondo degradado moderno */
.bg-gradient {
    background: linear-gradient(135deg, #0f0f0f, #1a1a1a, #2b2b2b);
    position: relative;
}
.bg-base {
    background-color: var(--base-color);
}
.bg-base-2 {
    background-color: #1d1d1d;
}
.bg-base-3 {
    background-color: #323232;
}
/* Logo texto */
.navbar-brand span.brand-text {
    font-size: 1.3rem;
    font-weight: 700;
    color: #a81616;
    letter-spacing: 1px;
}

/* Links */
.nav-link {
    font-weight: 500;
    color: #333 !important;
    position: relative;
    transition: all 0.3s ease;
}
.nav-link::after {
    content: "";
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%);
    width: 0%;
    height: 2px;
    background: #a81616;
    transition: width 0.3s ease;
}
.nav-link:hover {
    color: #a81616 !important;
}
.nav-link:hover::after {
    width: 100%;
}
/* Redes Sociales */
.social-link {
    font-size: 1.2rem;
    color: #333;
    transition: transform 0.3s, color 0.3s;
}
.social-link:hover {
    color: #a81616;
    transform: scale(1.2);
}
.top-header {
    background: #000;
    color: #fff;
    font-size: 0.9rem;
}
.top-header a {
    color: #fff;
    margin-right: 15px;
    text-decoration: none;
}
.swiper-slide {
    background-size: cover;
    background-position: center;
    position: relative;
    height: 100vh;
}
.overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
}
.slide-content {
    position: relative;
    z-index: 2;
}
.btn-custom {
    min-width: 140px;
    max-width: 240px;
    padding: 6px 12px;
    background-color: var(--base-color);
    border: none;
    color: #fff;
    transition: 0.3s;
}
.btn-custom:hover {
    background-color: #7e1010;
}
.hover-scale {
    transition: transform 0.3s, box-shadow 0.3s;
}
.hover-scale:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.15);
}
.parallax-section {
    position: relative;
}
.parallax-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0,0,0,0.5);
}
.parallax-section .container {
    position: relative;
    z-index: 2;
}
.card-hover {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  cursor: pointer;
  background-color: #1a1a1a; /* color base oscuro */
  color: #fff;
}

/* Imagen dentro de la card 
.card-hover img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  transition: transform 0.5s ease, filter 0.5s ease;
}*/

/* Contenido de la card */
.card-hover .card-body {
  padding: 20px;
  position: relative;
  z-index: 2;
}

/* Título de la card */
.card-hover .card-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 10px;
  background: linear-gradient(90deg, #a81616, #ff9a3c);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: transform 0.3s ease;
}

/* Texto de descripción */
.card-hover .card-text {
  font-size: 1rem;
  color: #ccc;
  line-height: 1.5;
  transition: color 0.3s ease;
}

/* Overlay para efecto glow al hover */
.card-hover::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, #a81616, #ff6b6b, #ffd166);
  filter: blur(20px);
  opacity: 0;
  transition: opacity 0.4s ease, transform 0.4s ease;
  z-index: 1;
  border-radius: 20px;
}

/* Hover effects */
.card-hover:hover {
  transform: translateY(-10px) scale(1.03);
  box-shadow: 0 25px 50px rgba(0,0,0,0.3);
}

.card-hover:hover img {
  transform: scale(1.1);
  filter: brightness(1.1);
}

.card-hover:hover .card-title {
  transform: translateY(-5px);
}

.card-hover:hover::before {
  opacity: 0.4;
  transform: scale(1.05);
}

/* Botón dentro de la card */
.card-hover .btn-custom {
  margin-top: 15px;
  background: linear-gradient(135deg, #a81616, #ff7300);
  border: none;
  color: #fff;
  font-weight: 700;
  border-radius: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover .btn-custom:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 12px 25px rgba(168,22,22,0.4);
}
.icon-gradient i {
    background: linear-gradient(45deg, var(--base-color), #ff4d4d);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
/* Texto con efecto glow */
.glow-text {
    background: linear-gradient(90deg, #a81616, #ff9a3c);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 25px rgba(168, 22, 22, 0.5);
}
/* Logo con efecto hover */
.image-medium {
    max-height: 90px;
    filter: drop-shadow(0 0 10px rgba(255,255,255,0.4));
    transition: transform 0.3s ease, filter 0.3s ease;
}
.image-medium:hover {
    transform: scale(1.1);
    filter: drop-shadow(0 0 20px rgba(168,22,22,0.7));
}
.gallery-item {
    aspect-ratio: 1 / 1; /* Hace que todas las imágenes sean cuadradas */
    cursor: pointer;
}
.gallery-item img {
    object-fit: cover;
    transition: transform 0.4s ease;
}
.gallery-item:hover img {
    transform: scale(1.1);
}
.gallery-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.7);
    opacity: 0;
    transition: opacity 0.4s ease;
    text-align: center;
    padding: 15px;
}
.gallery-item:hover .gallery-overlay {
    opacity: 1;
}
.info-section {
    background-color: #ffffff; /* color base */
    position: relative;
    overflow: hidden;
}

.pattern-overlay {
    position: absolute;
    inset: 0;
    background: url('images/pattern.webp') center/cover no-repeat;
    opacity: 1;
    z-index: 1;
}
.info-section .container {
    position: relative;
    z-index: 2; /* Contenido por encima del pattern */
}
.hover-link:hover {
    color: var(--base-color) !important;
    text-decoration: underline;
}
footer .btn-outline-light:hover {
    background-color: var(--base-color);
    border-color: var(--base-color);
    color: #fff;
    transition: 0.3s;
}
/* Header sobre todo */
.header-fixed {
    position: fixed; /* flota sobre todo */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1030; /* encima de todo */
}

/* Top-header */
.top-header {
    background: #000;
    color: #fff;
}

/* Navbar */
.navbar {
    background: rgba(255,255,255,0.95); /* semitransparente */
    backdrop-filter: blur(8px);
}

.text-big {
    font-size: 90px;
}

.text-large {
    font-size: 50px;
}

.text-medium {
    font-size: 30px;
}

/* Tablets (pantallas medianas) */
@media (max-width: 992px) {
    .text-big {
        font-size: 70px;
    }
    .text-large {
        font-size: 40px;
    }
    .text-medium {
        font-size: 24px;
    }
}

/* Móviles (pantallas pequeñas) */
@media (max-width: 576px) {
    .text-big {
        font-size: 48px;
    }
    .text-large {
        font-size: 28px;
    }
    .text-medium {
        font-size: 18px;
    }
}

/* Secciones debajo, sin padding forzado */
section {
    position: relative;
    top: 0; /* al top de la página */
}

.section-padding {padding: 150px 0px 150px 0px;}

/* glow-btn CSS */
.glow-btn{
    --accent: #a81616;         /* color principal */
    --accent2: #ff6b6b;        /* tono secundario del brillo */
    --accent3: #ffd166;        /* destello cálido */
    --bg: #0b0b0b;             /* fondo del botón */
    --txt: #ffffff;            /* color del texto */

    position: relative;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    border: 0;
    display: inline-block;
    padding: 14px 36px;
    border-radius: 8px;
    background: linear-gradient(135deg, #ff004d, #ff7300);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    /*background: var(--bg);
    color: var(--txt);
    font-weight: 700;
    letter-spacing: .4px;
    cursor: pointer;
    isolation: isolate;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);*/
}

/* Borde estático */
.glow-btn::after{
    content:"";
    position:absolute;
    inset:0;
    padding:2px; 
    border-radius:inherit;
    background: linear-gradient(120deg, var(--accent), var(--accent2), var(--accent3), var(--accent2), var(--accent));
    background-size: 300% 300%;
    /* hueco interior para que solo se vea el borde */
    -webkit-mask: 
        linear-gradient(#000 0 0) content-box, 
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
        mask-composite: exclude;
    z-index: 0;
}

/* Halo estático */
.glow-btn::before{
    content:"";
    position:absolute;
    inset:-3px;
    border-radius:inherit;
    background: linear-gradient(120deg, var(--accent), var(--accent2), var(--accent3), var(--accent2), var(--accent));
    background-size: 300% 300%;
    filter: blur(10px);
    opacity:.55;
    transform: translateZ(0); /* evita jank */
    z-index:-1;
    transition: filter .25s ease, opacity .25s ease;
}

/* Texto */
.glow-btn > span{
    position: relative;
    z-index: 1;
    transition: color .25s ease, text-shadow .25s ease;
}

/* Interacciones */
.glow-btn:hover{
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 12px 34px rgba(168,22,22,.35);
}

/* Activa el efecto vistoso y la animación en hover */
.glow-btn:hover > span{
    color: var(--accent3);
    text-shadow: 0 0 8px var(--accent2), 0 0 12px var(--accent3);
}

.glow-btn:hover::before,
.glow-btn:hover::after{
    animation: borderFlow 3s linear infinite;
}

.glow-btn:hover::before{
    filter: blur(16px);
    opacity:.9;
}

.glow-btn:active{
    transform: scale(0.98);
}

/* Enfoque accesible */
.glow-btn:focus-visible{
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, white);
}

/* Animación del borde */
@keyframes borderFlow{
    0%{ background-position: 0% 50%; }
    100%{ background-position: 300% 50%; }
}

/* Versión como enlace (opcional) */
a.glow-btn{
    text-decoration: none;
}
/*glow-btn*/

.top-space-120 {
    margin-top: 120px;
}

.top-space-150 {
    margin-top: 150px;
}
.flat-title {
    font-size: 3rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #ff4d4d; /* color plano llamativo */
    position: relative;
    display: inline-block;
    transition: color 0.3s ease, transform 0.3s ease;
}

/* Subrayado plano animado */
.flat-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, #ff4d4d, #ff7300); /* degradado plano */
    border-radius: 3px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
}

.flat-title:hover {
    color: #ff7300;
    transform: translateY(-2px);
}

.flat-title:hover::after {
    transform: scaleX(1);
}

.link-dark {
    color:#000000;
    text-decoration: none;
}
.icon-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #f8f9fa; /* fondo gris claro */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.hover-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* Hover suave en links */
.breadcrumb a:hover {
    color: #c00;
    text-decoration: underline;
    transition: 0.3s;
}

/* Separador estilo flecha (más grande, bold y un poco más arriba) */
.breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: #000;
    padding: 0 1rem;
    font-size: 1.25rem;  /* tamaño de la flecha */
    font-weight: 700;    /* negrita */
    position: relative;  /* necesario para ajustar con top */
    top: -2px;           /* súbela un poco (ajusta a gusto: -1px, -3px...) */
}

.section-title {
    font-size: 1.8rem;
    position: relative;
    display: inline-block;
}
.section-title::after {
    content: "";
    display: block;
    width: 60px;
    height: 3px;
    background: #dc3545;
    margin: 8px auto 0;
    border-radius: 10px;
}
.partner-card {
    background: #fff;
    padding: 20px;
    border-radius: 15px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease-in-out;
    height: 100%;
}
.partner-card img {
    border-radius: 10px;
    transition: transform 0.4s ease;
}
.partner-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.12);
}
.partner-card:hover img {
    transform: scale(1.05);
}

/* Animación para dropdown */
.animate-dropdown {
    animation: fadeSlide 0.3s ease forwards;
}
@keyframes fadeSlide {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Estilos de items */
.dropdown-menu {
    padding: 0.5rem 0;
}
.dropdown-item {
    padding: 0.6rem 1.2rem;
    transition: all 0.3s ease;
    font-weight: 500;
}
.dropdown-item:hover {
    background-color: #f8f9fa;
    color: #dc3545;
    transform: translateX(5px);
}

/* Quitar borde negro al hacer hover/focus en el dropdown */
.dropdown-item:focus,
.dropdown-item:hover {
    outline: none;  /* elimina el borde del focus */
    box-shadow: none; /* elimina sombra si hubiera */
}