/*
CTC Separate Stylesheet
Updated: 2026-07-05 02:57:31
*/

@font-face {
  font-family: 'Cormorant';
  src: url('./fonts/CormorantGaramond.woff2') format('woff2');
  font-optical-sizing: auto;
  font-weight: 400 800; /* Corregido: removido <weight> */
  font-style: normal;
}

@font-face {
  font-family: 'Instrument';
  /* src: url('./fonts/InstrumentSans.woff2') format('woff2'); */
  src: url('./fonts/Manrope.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
}

.cormorant-400  *{
  font-family: 'Cormorant', serif;

}

h2.cormorant, #cormorant {
  font-family: 'Cormorant', serif;
  font-weight: 800;
  font-style: normal;
  color: #000;
}

.instrument {
  /* Espacio reservado */
}

.instrument, .instrument p {
  font-family: 'Instrument', sans-serif;
  font-weight: 400;
}

.menu-header * {
  font-weight: 600 !important;
}

body {
  font-family: 'Instrument', sans-serif;
  font-weight: 400;
  font-style: normal;
}

/* ==========================================================================
   Carrusel Infinito de Partners
   ========================================================================== */
.clients-carousel {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: 3rem 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
}

.carousel-track {
  display: flex;
  width: max-content;
  will-change: transform;
  cursor: grab;
}

.carousel-track.is-dragging {
  cursor: grabbing;
}

.carousel-group {
  display: flex;
  align-items: center;
}

.carousel-item {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0 3rem; 
}

.carousel-item::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 70px; 
  background-color: rgba(0, 0, 0, 0.12); 
}

.carousel-group img {
  height: 50px !important;
  width: 200px;
  object-fit: contain;
  flex-shrink: 0;
  pointer-events: none; /* Evita que la imagen intercepte el click/drag */
  -webkit-user-drag: none; /* Bloquea el arrastre por defecto del navegador */
  opacity: .7;
  transition: opacity 0.3s ease;
}

/* Aseguramos que el contenedor del item no interfiera con el arrastre nativo */
.carousel-item a {
  display: block;
  line-height: 0;
  -webkit-user-drag: none;
} 

.carousel-item a:hover img {
  opacity: 1;
}

@media screen and (max-width: 1024px) {
  .carousel-group img { height: 40px !important;}
  .carousel-item { padding: 0 1rem; }
  .carousel-item::after { height: 45px; }
}

/* ==========================================================================
   SLIDER PREMIUM  - CSS UNIFICADO (THEME CHILD)
   ========================================================================== */
.luxury-slider-wrapper {
  position: relative;
  width: 100%;
  height: 75vh; /* Altura controlada a 80vh */
  overflow: hidden;
  background: #000;
}

.luxury-slider { 
  position: relative;
  width: 100%; 
  height: 100%; 
}

/* --- ESTRUCTURA DE SLIDES Y DESVANECIDO --- */
.slide-item { 
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex; 
  align-items: center; 
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1), visibility 1.4s;
  z-index: 1;
}

.slide-item.active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
}

/* --- ANIMACIÓN KINETIC / ZOOM IN PRESTIGE --- */
.slide-bg { 
  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  background-size: cover; 
  background-position: center; 
  z-index: 1; 
  transform: scale(1.02); 
  will-change: transform; /* Optimización nativa por GPU */
}

/* Movimiento continuo y milimétrico durante los 8.5s de exposición */
.slide-item.active .slide-bg {
  animation: premiumZoomIn 8.5s linear forwards;
}

@keyframes premiumZoomIn {
  0% { transform: scale(1.02); }
  100% { transform: scale(1.07); }
}

/* --- CAPA DE DEGRADADO TÉCNICO --- */
.slide-overlay { 
  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  z-index: 2; 
  /* Corregido: Añadida propiedad background */
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.7) 40%, rgba(0, 0, 0, 0) 75%),
              linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}

/* --- CONTENEDOR FIJO DE 1300PX (PIXEL PERFECT) --- */
.slide-container-fixed {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  box-sizing: border-box !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
	padding: 0 1rem;
  
}

/* --- TEXTOS Y COMPORTAMIENTO EDITORIAL --- */
.slide-content { 
  max-width: 480px; 
  color: #ffffff; 
}

.slide-subtitle, 
.slide-title, 
.slide-description, 
.slide-cta {
  opacity: 0;
  transform: translateY(25px);
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease;
}

/* Revelado asíncrono premium al activarse el slide */
.slide-item.active .slide-subtitle   { opacity: 1; transform: translateY(0); transition-delay: 0.3s; }
.slide-item.active .slide-title      { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }
.slide-item.active .slide-description { opacity: 1; transform: translateY(0); transition-delay: 0.6s; }
.slide-item.active .slide-cta         { opacity: 1; transform: translateY(0); transition-delay: 0.75s; }

.slide-subtitle { 
  display: block; 
  text-transform: uppercase; 
  letter-spacing: 3px; 
  font-size: 11px; 
  color: #b58648; 
  margin-bottom: 5px; 
  font-weight: 600; 
  font-family: 'Instrument', sans-serif;
}

.slide-title { 
  font-size: clamp(44px, 4.5vw, 70px); 
  line-height: clamp(49px, 4.7vw, 75px); 
  margin: 0 0 5px 0; 
  font-weight: 400; 
  font-family: 'Cormorant', serif;
}

.slide-description { 
  font-size: 17px; 
  line-height: 1.6; 
  margin-bottom: 25px;
  letter-spacing: 1px;
  color: #e5e5e5; 
  font-family: 'Instrument', sans-serif;
}

.slide-cta { 
  border: 1px solid #b58648; 
  display: inline-block; 
  padding: 12px 30px; 
  color: #ffffff; 
  text-decoration: none; 
  text-transform: uppercase; 
  letter-spacing: 2px; 
  font-size: 12px; 
  font-weight: 600; 
  background: transparent;
  box-sizing: border-box;
  opacity: 0;
  transform: translateY(45px); 
  transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease;
}

.slide-cta:hover { 
  background: #b58648; 
  border-color: #b58648; 
  color: #ffffff; 
}

.slide-item.active .slide-cta { 
  opacity: 1 !important; 
  transform: translateY(0); 
  transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.8s, 
              opacity 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.8s;
}

/* --- LOGO BLANCO (DENTRO DE LOS 1300PX) --- */
.slide-branding { 
  margin-top: auto;  
  opacity: 0; 
  transition: opacity 1s ease 0.6s; 
}

.slide-item.active .slide-branding { 
  opacity: 1; 
}

.slide-branding img { 
  max-width: 250px !important; 
  height: auto; 
  display: block; 
}

.slider-dots{
	
	position: absolute;
    bottom: 0;
    z-index: 999;
    width: 100%;
    display: flex;
    justify-content: center;
    padding-bottom: 2rem;
    gap: .5rem;
}

/* --- INDICADORES / DOTS HORIZONTALES (LÍNEAS) --- */
/* Corregido: Removida coma colgada antes de la llave */
.slider-dot:hover, .slider-dot:focus {
  background: #b58648 !important;  
  opacity: .7;
}

.slider-dot {
  width: 35px;          
  height: 4px;          
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.25);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.4s ease, transform 0.4s ease;
}

.slider-dot.active {
  background: #b58648;   
  transform: scaleY(1.2); 
}

/* ==========================================================================
   RESPONSIVE (ESTRICTO < 720PX)
   ========================================================================== */
@media (max-width: 720px) {
  .luxury-slider-wrapper { 
    height: 75vh; 
  } 
	
	.slide-branding img {
		display:none;
	}
	
    
  .slide-overlay { 
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.98) 0%, rgba(0, 0, 0, 0.75) 50%, rgba(0, 0, 0, 0) 85%),
                linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
  } /* Corregido: Aquí se cerraba una llave extra rompiendo el responsive */
    
  .slide-