.tc-home,
.tc-home *{box-sizing:border-box;}
.tc-home{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}

/* Full width real fuera del container del tema */
.tc-full{
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

.tc-promo{
  width:100vw !important;
  max-width:none !important;
  overflow:hidden !important;
  background:transparent !important;
}

.tc-slider{
  position:relative;
  width:100vw !important;
  max-width:none !important;
  overflow:hidden !important;
  background:transparent !important;
}

.tc-track{
  display:flex;
  width:100%;
  transition:transform .55s ease;
  will-change:transform;
  background:transparent !important;
}

.tc-slide{
  min-width:100%;
  width:100%;
  flex:0 0 100%;
  background:transparent !important;
}

.tc-frame{
  width:100%;
  display:block;
  overflow:hidden;
  background:transparent !important;
  line-height:0;
}

.tc-frame picture,
.tc-frame img{
  width:100%;
  display:block;
  margin:0;
  padding:0;
  background:transparent !important;
}

/* PC: full width, alto profesional, recorte controlado */
.tc-frame{
  height:clamp(520px, 39vw, 720px);
}

.tc-frame img{
  height:100%;
  object-fit:cover;
  object-position:center center;
}

/* Flechas */
.tc-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:0;
  border-radius:50%;
  background:rgba(0,0,0,.38);
  color:#fff;
  font-size:25px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:12;
  opacity:0;
  transition:opacity .2s ease,background .2s ease;
}
.tc-arrow:hover{background:rgba(0,0,0,.55);}
.tc-arrow.left{left:18px;}
.tc-arrow.right{right:18px;}
.tc-slider:hover .tc-arrow{opacity:1;}

/* Dots */
.tc-dots{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  justify-content:center;
  gap:10px;
  padding:0;
  background:transparent;
  z-index:11;
}
.tc-dot{
  width:11px;
  height:11px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.65);
  cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
  transition:transform .2s ease,background .2s ease;
}
.tc-dot.active{
  background:#2DB6E8;
  transform:scale(1.28);
}

/* Quiénes somos */
.tc-pattern{
  padding:80px 0;
  background-color:#f6f7f9;
  background-image:var(--tc-pattern);
  background-repeat:repeat;
  background-size:220px 220px;
}
.tc-container{
  max-width:1200px;
  margin:0 auto;
  padding:0 22px;
}
.tc-q-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:50px;
  align-items:center;
}
.tc-q-left{text-align:center;}
.tc-q-left img{
  max-width:420px;
  width:100%;
  height:auto;
}
.tc-q-tag{
  margin-top:10px;
  font-weight:900;
  letter-spacing:.08em;
  color:#2DB6E8;
}
.tc-q-right h2{
  font-size:clamp(32px,4vw,46px);
  line-height:1.1;
  margin:0 0 16px;
  font-weight:900;
}
.tc-q-right p{
  font-size:18px;
  line-height:1.6;
  margin:0 0 14px;
}
.tc-btn{
  display:inline-block;
  margin-top:10px;
  padding:12px 20px;
  background:#2DB6E8;
  color:#fff!important;
  font-weight:900;
  border-radius:10px;
  text-decoration:none;
  transition:background .2s ease;
}
.tc-btn:hover{background:#1fa3d4;}

/* Tablet: mantiene full width con altura moderada */
@media (min-width:761px) and (max-width:1024px){
  .tc-frame{
    height:clamp(360px, 48vw, 520px) !important;
  }
  .tc-arrow{opacity:1;}
}

/* Móvil: NO recortar, NO zoom. Imagen completa y sin franja */
@media (max-width:760px){
  .tc-promo,
  .tc-slider,
  .tc-track,
  .tc-slide,
  .tc-frame{
    background:transparent !important;
  }

  .tc-frame{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    line-height:0 !important;
  }

  .tc-frame picture{
    width:100% !important;
    height:auto !important;
    display:block !important;
    line-height:0 !important;
  }

  .tc-frame img{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center top !important;
    display:block !important;
    vertical-align:top !important;
  }

  .tc-arrow{
    opacity:1;
    width:34px;
    height:34px;
    font-size:20px;
  }
  .tc-arrow.left{left:10px;}
  .tc-arrow.right{right:10px;}
  .tc-dots{bottom:8px;gap:8px;}
  .tc-dot{width:9px;height:9px;}

  .tc-pattern{
    padding:52px 0;
    background-size:170px 170px;
  }
  .tc-q-grid{grid-template-columns:1fr;gap:26px;}
  .tc-q-left img{max-width:290px;}
  .tc-q-right{text-align:center;}
  .tc-q-right p{font-size:16px;}
  .tc-container{padding:0 16px;}
}