@charset "utf-8";

/* ===== Base ===== */
:root{
  --header-h: 84px;
  --black: ##3b3b3b;
  --white: #ffffff;
  --highlight: #CCC;
  --button-outline: rgba(255,255,255,0.35);
}

*{ margin:0; padding:0; box-sizing:border-box; }

html, body{
  width:100%;
  height:100%;
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  font-family:"Inter", sans-serif;
  background: linear-gradient(135deg, #e5e5e5, #ffffff);
  color: var(--black);
}

/* Anclas con header sticky */
#divisiones, #marcas, #contacto{ scroll-margin-top: calc(var(--header-h) + 18px); }

/* ===== Header ===== */
header{
  width:100%;
  background-color: rgba(51,51,51,0.55);
  padding: 0rem 2.2rem;
  position: fixed;
  top:0;
  left:0;
  z-index:1000;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: 0 2px 10px rgba(0,0,0,0.14);
  transition: background-color .25s ease, box-shadow .25s ease;
}

.nav-container{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.left{

text-align:left; float:left;
}
.logo{ display:block; }

.nav-links{
  display:flex;
  gap:2rem;
  font-size:18px;
}

.nav-links a{
  color: #ccc;
  text-decoration:none;
  font-weight:500;
  transition: color .2s ease;
}

.nav-links a:hover{ color: #666; }

.menutheta{
  display:none;
  font-size: 1.8rem;
  background:none;
  border:none;
  color: #ccc;
  cursor:pointer;
}

/* ===== Banner slideshow ===== */
.banner{
  width:100%;
  min-height: 100vh;   /* menos alto */
  max-height: 820px;
  position: relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding: calc(4rem + 240px) 2.2rem 4.5rem;
}

.banner-slides{
  position:absolute;
  inset:0;
  z-index:0;
}

.banner-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0;
  transform: scale(1.02);
  animation: bannerFade 25s infinite;
}

.banner-slide:nth-child(1){ animation-delay: 0s; }
.banner-slide:nth-child(2){ animation-delay: 5s; }
.banner-slide:nth-child(3){ animation-delay: 10s; }
.banner-slide:nth-child(4){ animation-delay: 15s; }
.banner-slide:nth-child(5){ animation-delay: 20s; }
@keyframes bannerFade{
  0%{ opacity:0; }
  8%{ opacity:1; }
  33%{ opacity:1; }
  41%{ opacity:0; }
  100%{ opacity:0; }
}

.banner::after{
  content:"";
  position:absolute;
  inset:0;
  
  z-index:1;
}

.banner-content{
  position: relative;
  z-index:2;
  max-width: 980px;
  padding: 1.6rem 1.6rem;
}

.banner h1{
  font-size: 2.6rem;
  color:#fff;
  line-height:1.2;
  margin-bottom: 0.8rem;
  text-shadow: 0 2px 10px rgba(0,0,0,0.45);
}

.banner-subtitle{
  color: rgba(255,255,255,0.92);
  line-height:1.7;
  margin-bottom: 1.6rem;
  text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}

.modern-btn{
  display:inline-block;
  padding: .9rem 1.6rem;
  border-radius: 10px;
  border: 1px solid var(--button-outline);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(6px);
  transition: .2s ease;
}

.modern-btn:hover{
  background: rgba(255,255,255,0.12);
}

/* ===== Divisiones ===== */
.divisiones-section{
  width:100%;
  padding: 2.5rem 0 3.5rem; /* menos top */
  background: linear-gradient(to bottom, #ffffff, rgba(240,248,255,0.65));
}

.divisiones-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding: 0 2.2rem;
}

.divisiones-header{
  max-width: 900px;
  margin: 0 auto 1.6rem auto;
  text-align:center;
}

.divisiones-header h2{
  font-size: 2rem;
  margin-bottom: .35rem;
}

.divisiones-header p{
  color:#334155;
  line-height:1.6;
}

.divisiones-grid{
  width:100%;
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}

.division-card{
  position:relative;
  display:block;
  border-radius: 16px;
  overflow:hidden;
  text-decoration:none;
  min-height: 240px;
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
}

.division-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  transform: scale(1.04);
  transition: transform .35s ease;
}

.division-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(0,0,0,0.70), rgba(0,0,0,0.18) 55%, rgba(0,0,0,0.05));
}

.division-title{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  color:#fff;
  font-weight:800;
  letter-spacing:1px;
  text-shadow: 0 10px 20px rgba(0,0,0,0.45);
}

.division-card:hover .division-bg{ transform: scale(1.09); }



/* Texto debajo de cada división */
.division-item{
  display: flex;
  flex-direction: column;
}

.division-info{
  padding: 1.05rem 0 .2rem;
  text-align: left;
}

.division-name{
  font-size: 1.55rem;
  color: #1f2937;
  font-weight: 700;
  letter-spacing: .2px;
  margin-bottom: .55rem;
}

.division-line{
	display: block;
	width: 60%;
	height: 1px;
	
	background: #c1c1c1;
	border-radius: 999px;
}

.division-desc{
  color: #6b7280;
  font-size: 1.05rem;
  line-height: 1.55;
  padding: 10px 0px 0px;
}
/* Equipo (imagen izq + texto der) */
.divisiones-photo{
  width:100%;
  margin-top: 2.2rem;
  border-radius: 18px;
  overflow:hidden;
  box-shadow: 0 18px 44px rgba(0,0,0,0.10);
  background:#d7d7d7;
}

.team-split{
  display: grid;
  grid-template-columns: 45% 55%;
  align-items: stretch;
}

.team-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  min-height: 320px;
}

.team-text{
	width: 90%;
	padding: 6rem;
	color: #333;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: left;
}

.team-text h3{
  font-size: 1.6rem;
  margin-bottom: .6rem;
}

.team-text p{
  color: #333;
  line-height:1.7;
  margin-bottom: 1.2rem;
}

.team-cta{
  align-self:flex-start;
  display:inline-block;
  padding: .75rem 1.2rem;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.22);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  background: rgba(255,255,255,0.06);
  transition: .2s ease;
}

.team-cta:hover{ background: rgba(255,255,255,0.12); }

/* ===== Marcas ===== */
.marcas-section{
  width:100%;
  padding: 4rem 0 5rem;
  background: linear-gradient(to bottom, rgba(240,248,255,0.8), rgba(255,255,255,1));
}

.marcas-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding: 0 2.2rem;
}

.marcas-title{
  text-align:center;
  font-size: 1.6rem;
  color:#1f2937;
  margin-bottom: .6rem;
}

.divider{
	height: 1px;
	width: 220px;
	margin: 0.2rem auto 0.9rem;
	background: #c1c1c1;
	border-radius: 999px;
}

.marcas-grid{
  width:100%;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.marca-card{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding: 14px 14px;
  border-radius: 14px;
  text-decoration:none;
  font-weight:700;
  color:#0f172a;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(34,93,135,0.18);
  box-shadow: 0 10px 26px rgba(0,0,0,0.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  min-height: 54px;
}

.marca-card:hover{
  transform: translateY(-2px);
  border-color: rgba(34,93,135,0.45);
  box-shadow: 0 14px 32px rgba(0,0,0,0.08);
}

/* ===== Footer ===== */
.site-footer{
	width: 100%;
	background: #333;
	color: #fff;
	padding: 44px 0 80px;
}

.footer-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding: 0 2.2rem;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap: 60px;
}

.footer-column{
  flex: 1;
  min-width: 210px;
}

.footer-column h3{
  margin-bottom: 12px;
  font-size: 1.05em;
  color:#f0f0f0;
}

.footer-column p, .footer-column a{
  display:flex;
  align-items:center;
  gap: 8px;
  color:#ccc;
  text-decoration:none;
  font-size: .95em;
  line-height: 1.45;
  margin-bottom: 5px; /* más aire */
}

.footer-column a:hover{ color:#fff; }

.footer-column i{ color:#999; }

.social-icons{
  display:flex;
  gap: 16px;
  margin-top: 6px;
}

.social-icons a{
  font-size: 1.4em;
  color:#ccc;
  transition: color .2s ease;
}

.social-icons a:hover{ color:#fff; }

/* ===== WhatsApp ===== */
.whatsapp-bubble{
  position:fixed;
  right: 22px;
  bottom: 22px;
  z-index:999;
}

.whatsapp-bubble a{
  background-color:#25D366;
  color:#fff;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: 26px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.28);
  text-decoration:none;
}

/* ===== Responsive ===== */
@media (max-width: 1100px){
  .divisiones-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .marcas-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px){
  :root{ --header-h: 74px; }

  .team-section{
    flex-direction: column;
  }

  .team-text,
  .team-photo{
    width: 100%;
  }

  .team-text{
    padding: 2rem 1.5rem;
  }

  .team-photo{
    height: 300px;
  }

.division-name{ font-size: 1.35rem; }
  .division-desc{ font-size: 1rem; }

  header{ padding: 0rem 1.2rem; }

  .menutheta{ display:block; }

  .nav-links{
    display:none;
    flex-direction:column;
    align-items:flex-start;
    background: #333;
    position:absolute;
    top:100%;
    right:0;
    width:100%;
    padding: 1rem 1.2rem;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    gap:0;
  }
  .nav-links.show{ display:flex; }

  .nav-links a{
    width:100%;
    padding: 1rem 0;
    border-bottom: 1px solid #444;
  }

  .banner{
    padding: calc(3rem + 180px) 1.2rem 3.5rem;
    min-height: 60vh;
  }
  .banner h1{ font-size: 2rem; }

  .divisiones-inner, .marcas-inner, .footer-inner{ padding: 0 1.2rem; }

  .team-split{ grid-template-columns: 1fr; }
  .team-photo img{ min-height: 220px; }
  .team-text{ padding: 1.4rem 1.2rem; }

  .nav-links a:hover{ color: #666; }
}
@media (max-width: 680px){
  .divisiones-grid{ grid-template-columns: 1fr; }
  .marcas-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px){
  .marcas-grid{ grid-template-columns: 1fr; }
}


/* Intro Exosound Grupo */
.intro-exosound{
  width: 100%;
  padding: 4rem 1.5rem 3.5rem;
  background: #fff;
}

.intro-inner{
  max-width: 98%;
  margin: 0 auto;
  text-align: left;
}

.intro-title{
	font-size: 2.2rem;
	font-weight: 600;
	letter-spacing: 0em;
	color: #333333;
}

.intro-claim{
  margin-top: 0.6rem;
  font-size: 1.2rem;
  color: #333;
}

.intro-text{
  margin-top: 1.2rem;
  font-size: 1.25rem;
  line-height: 1.6;
  color: #555;
}

/* Header más sólido cuando se scrollea */
header.scrolled{
  background-color: rgba(51,51,51,0.9);
  box-shadow: 0 6px 18px rgba(0,0,0,0.28);
}



/* ===== Marcas (logos en grilla) ===== */
.marcas-logos-grid{
  width:100%;
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 14px;
  margin-top: 1.1rem;
}

.marca-logo-card{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 16px 16px;
  border-radius: 14px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(34,93,135,0.18);
  box-shadow: 0 10px 26px rgba(0,0,0,0.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  min-height: 135px;
}

.marca-logo-card:hover{
  transform: translateY(-2px);
  border-color: rgb(230 235 239 / 45%);
  box-shadow: 0 14px 32px rgba(0,0,0,0.08);
}

.marca-logo-card img{
  width: 100%;
  height: 65px;
  object-fit: contain;
  display:block;
}

/* Responsive logos */
@media (max-width: 1100px){
  .marcas-logos-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 680px){
  .marcas-logos-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px){
  .marcas-logos-grid{ grid-template-columns: 1fr; }
}


/* ===== Marcas – más cuadradas en pantallas grandes ===== */
@media (min-width: 1400px){
  .marca-logo-card{
    min-height: 120px;   /* antes 94px */
    padding: 18px;
  }

  .marca-logo-card img{
    height: 60px;        /* mantiene armonía */
  }
}
