body {
    background: #000;
    color: #fff;
}

.thin-line {
    height: 2px;
    width: 60px;
    background: #fff;
    margin: 15px 0;
}

.project-img {
    max-width: 100%;
    border-radius: 2px;
}

.slider-dots span {
    display: inline-block;
    height: 6px;
    width: 6px;
    background: #fff;
    border-radius: 50%;
    margin: 0 4px;
    opacity: 0.5;
}

.slider-dots span.active {
    opacity: 1;
}

.footer-icons i {
    font-size: 20px;
    margin: 0 10px;
    cursor: pointer;
    transition: 0.3s ease;
}

.footer-icons i:hover {
    opacity: 0.6;
}

.header-mini {
    padding: 15px 0;
    border-bottom: 1px solid #333;
}

.header-bars div {
    height: 4px;
    background: #fff;
    margin-bottom: 6px;
    width: 40px;
}


/* VIDEO DE FONDO */
.hero-nosotros {
    position: relative;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: white;
    text-align: center;
    overflow: hidden;
}

/* Video ocupando el fondo completo */
.hero-nosotros .hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 0;
}

/* Capa negra semi transparente */
.hero-nosotros .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.55);
    z-index: 1;
}

/* Texto del hero */
.hero-nosotros h2 {
    font-size: 2.4rem;
    font-weight: bold;
    z-index: 3;
}

.hero-nosotros p {
    max-width: 600px;
    font-size: 1.1rem;
    z-index: 4;
}

/* Flecha */
.scroll-down {
    font-size: 2rem;
    margin-top: 25px;
    animation: bounce 1.5s infinite;
    cursor: pointer;
    z-index: 5;
}

/* Animación de rebote */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(10px); }
}

.carousel-control-prev {
  margin-left: 416px;
  display: none !important;
}
.carousel-control-next {
  display: none !important;
}

.carousel-item p {
  display: none;
}
.service-indicators.text-start {
  text-align: center !important;
}
.carousel-item .fw-bold {
  text-align: center;
}


.hero-nosotros h2 {
  font-size: 50px;
  font-weight: bold;
  z-index: 3;
}
.hero-nosotros p {
  max-width: 900px;
  font-size: 23px;
  z-index: 4;
}


.carousel-item .project-img {
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.carousel-item:hover .project-img {
  filter: grayscale(0%);
}


/* Para el sistema reveal (si ya lo tienes global, esto no estorba) */
.reveal { opacity: 0; }
.animate__animated { opacity: 1; }

/* Evita “flash” en slides */
.carousel-item .project-img,
.carousel-item h5,
.carousel-item p,
.carousel-item .service-indicators {
  will-change: transform, opacity;
}





/* ================================
   RESPONSIVE: PORTAFOLIO
   Pegar al FINAL de /assets/css/portafolio.css
================================ */

.hero-nosotros{
  height: 100svh;
}

/* ===== Tablet ===== */
@media (max-width: 992px){

  .hero-nosotros h2{
    font-size: 40px;
    letter-spacing: .5px;
  }

  .hero-nosotros p{
    max-width: 820px;
    font-size: 18px;
    padding: 0 18px;
  }

  .proyecto{
    margin-bottom: 56px;
  }

  .carousel-item{
    padding: 10px 0;
  }

  /* Imagen y texto: más aire */
  .carousel-item .row{
    row-gap: 16px;
  }
}

/* ===== Mobile ===== */
@media (max-width: 768px){

  /* Hero */
  .hero-nosotros h2{
    font-size: 30px;
  }

  .hero-nosotros p{
    font-size: 16px;
    max-width: 92%;
  }

  /* Flecha: más sutil en móvil */
  .scroll-down{
    font-size: 28px;
    margin-top: 16px;
    animation: none; /* evita choque con animate.css y se ve más premium */
  }

  /* Contenedor general: menos padding vertical */
  .container.py-4{
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  /* Título de cada proyecto */
  .proyecto > h5.fw-bold{
    font-size: 18px;
    margin-top: 34px !important;
    text-align: center;
  }

  .thin-line{
    margin: 10px auto 18px auto;
    width: 70px;
  }

  /* Carrusel: apilado + centrado */
  .carousel-item .row{
    text-align: center;
    row-gap: 14px;
  }

  .carousel-item .col-md-4,
  .carousel-item .col-md-8{
    padding-left: 12px;
    padding-right: 12px;
  }

  .project-img{
    border-radius: 8px;
  }

  /* Subtítulo dentro del slide */
  .carousel-item .fw-bold{
    font-size: 16px;
    letter-spacing: .6px;
  }

  /* Indicadores centrados y con buen touch */
  .service-indicators{
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 10px 0 6px;
  }

  .service-indicators button{
    width: 12px;
    height: 12px;
  }

  /* En móvil conviene mostrar una línea de texto (si quieres) */
  .carousel-item p{
    display: block;              /* antes lo tenías en none */
    font-size: 14px;
    opacity: .85;
    margin: 6px auto 0;
    max-width: 520px;
  }
}

/* ===== Mobile pequeño ===== */
@media (max-width: 576px){

  .hero-nosotros h2{
    font-size: 26px;
  }

  .hero-nosotros p{
    font-size: 15px;
  }

  .carousel-item .fw-bold{
    font-size: 15px;
  }

  .carousel-item p{
    font-size: 13px;
  }
}


/* HERO (Portafolio): chevron abajo + movimiento visible */
.hero-nosotros .scroll-down{
  position: absolute;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  margin-top: 0 !important;
  z-index: 6;
  font-size: 34px;
  cursor: pointer;
  animation: vsqChevronPort 1.15s ease-in-out infinite;
}

@keyframes vsqChevronPort{
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: .95; }
  50%      { transform: translateX(-50%) translateY(10px); opacity: 1; }
}

@media (max-width: 768px){
  .hero-nosotros .scroll-down{
    bottom: 18px;
    font-size: 30px;
  }
}


/* Cada proyecto ocupa pantalla completa */
.proyecto{
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px 0;   /* aire para que no quede pegado al navbar */
  margin-bottom: 0 !important; /* quita el espacio entre proyectos */
}

/* En móvil un poco menos padding */
@media (max-width: 768px){
  .proyecto{
    padding: 70px 0;
  }
}



/* ================================
   Portafolio: frase final
================================ */
.portfolio-closing-text {
  padding: 30vh 0px;
}

.portfolio-closing-text p{
  color: #fff;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: .5px;
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.3;
}

/* Tablet */
@media (max-width: 992px){
  .portfolio-closing-text{
    padding: 90px 0 70px;
  }

  .portfolio-closing-text p{
    font-size: 26px;
  }
}

/* Mobile */
@media (max-width: 768px){
  .portfolio-closing-text{
    padding: 70px 0 50px;
  }

  .portfolio-closing-text p{
    font-size: 20px;
  }
}


/* Portfolio: force 2-line service text (responsive-safe) */
.service-lines .line-1,
.service-lines .line-2{
  display: inline; /* desktop: se comporta como una sola línea */
}

/* En pantallas grandes/medianas: respeta el “bajar abajo” como tú lo quieres */
.service-lines .line-2{
  display: block;  /* siempre abajo */
}

/* Opcional: en móvil ajusta tamaño/espaciado */
@media (max-width: 768px){
  .service-lines .line-1,
  .service-lines .line-2{
    line-height: 1.35;
  }
}



.proyecto .carousel {
  height: 400px;
  display: flex;
  align-items: center;
}
