/* =========================
   COLLECTION THEME (MOTHER)
   ========================= */

:root{
  --ink:#2b2b2b;
  --cream:#e3d1b9;      /* antes: #eee3d2 */
  --cream2:#f0e4d3;     /* antes: #f6f0e6 */
  --gold:#b9ab73;
  --shadow: 0 20px 50px rgba(0,0,0,.12);
}


/* Tipografía general */
body{
  font-family: "Nunito", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Títulos tipo “Sites Apartamentos” y “Nuestros acogedores apartamentos” */
.col-intro-card h1,
.col-h2{
  font-family: "Playfair Display", serif;
}

/* ---------- NAV overlay ---------- */
.col-nav{
  position:absolute;
  top:0; left:0; right:0;
  z-index:60;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 28px;
  background:transparent;
}

/* Logo textual arriba izquierda */
.col-brand-text{
  font-size:20px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}

.col-brand img{
  height:38px;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.25));
}

/* menú */
.col-menu{
  display:flex;
  gap:18px;
  align-items:center;
  font-weight:700;
}

.col-menu a{
  text-decoration:none;
  color:#fff;
  opacity:.92;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}

.col-menu a.active{ opacity:1; }

/* Si en HTML existe “Reservar” con class btn, lo ocultamos */
.col-menu .btn{ display:none !important; }

/* ---------- HERO ---------- */
.col-hero{
  height:84vh;
  min-height:660px;
  overflow:hidden;
  position:relative;
  background:#000;
}

/* degradado arriba: hace legible el menú */
.col-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.42) 0%,
    rgba(0,0,0,.14) 45%,
    rgba(0,0,0,0) 70%
  );
  pointer-events:none;
  z-index:2;
}

/* degradado abajo: funde con el blanco */
.col-hero::before{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:190px;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.92) 70%,
    #fff 100%
  );
  z-index:4;
  pointer-events:none;
}

.col-hero-track{
  height:100%;
  display:flex;
  position:relative;
  z-index:1;
  opacity:1;
  transition:transform .95s ease, opacity .55s ease;
  will-change: transform;
}

.col-hero-track.is-fading{
  opacity:.25; /* usado por tu JS */
}

.col-hero-slide{
  min-width:100%;
  height:100%;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:block;
  position:relative;
}

/* caption opcional */
.col-hero-caption{
  position:absolute;
  left:26px;
  bottom:22px;
  background:rgba(0,0,0,.34);
  color:#fff;
  padding:10px 12px;
  border-radius:12px;
  max-width:70%;
  z-index:3;
}

/* flechas */
.col-hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.25);
  color:#fff;
  font-size:30px;
  line-height:40px;
  cursor:pointer;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter: blur(6px);
}

.col-hero-prev{ left:16px; }
.col-hero-next{ right:16px; }

.col-hero-arrow:hover{ background:rgba(0,0,0,.35); }

/* dots */
.col-hero-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:26px;
  display:flex;
  justify-content:center;
  gap:10px;
  z-index:6;
}

.col-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.25);
  background:rgba(255,255,255,.45);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.col-dot.active{
  background:#ffffff;
  box-shadow:0 0 0 2px rgba(255,255,255,.45);
  transform:scale(1.2);
}

/* ---------- INTRO card ---------- */
.col-intro{
  display:flex;
  justify-content:center;
  margin-top:-52px;
  position:relative;
  z-index:10;
}

.col-intro-card{
  width:min(1200px, calc(100% - 80px));
  background:var(--cream);
  border-radius:18px;
  padding:48px 40px;
  box-shadow: var(--shadow);
  text-align:center;
}

.col-intro-card h1{
  margin:0;
  font-size:46px;
  letter-spacing:.5px;
}

.col-sub{
  margin:10px 0 18px;
  font-size:18px;
  opacity:.85;
  font-style:italic;
}

/* ---------- CHIPS ---------- */
.col-chips{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  margin-top:18px;
}

.col-chip{
  display:flex;
  gap:10px;
  align-items:center;
  padding:12px 16px;
  border-radius:14px;
  background:rgba(255,255,255,.45);
  border:1px solid rgba(0,0,0,.06);
  min-width:190px;
  justify-content:center;
}

.col-chip-ic{
  display:flex;
  align-items:center;
  justify-content:center;
}

.col-chip-ic svg{
  width:18px;
  height:18px;
  display:block;
}

.col-chip-tx{
  font-size:15px;
}

/* ---------- LIST / GRID ---------- */
.col-list{
  padding:70px 16px 56px;
  text-align:center;
}

.col-h2{
  margin:0;
  font-size:42px;
  font-style:italic;
  color:var(--gold);
}

.col-h2-sub{
  margin:10px 0 26px;
  opacity:.75;
}

.col-grid{
  width:min(1200px, calc(100% - 80px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}

/* grid dinámico según nº de propiedades (JS añade cols-2/cols-3) */
.col-grid.cols-2{ grid-template-columns:repeat(2, 1fr); }
.col-grid.cols-3{ grid-template-columns:repeat(3, 1fr); }

/* Si hay 5 (3 cols) y la última fila queda con 2 cards, centrarlas */
.col-grid.cols-3{
  justify-items: stretch;
}
.col-grid.cols-3.center-last-row{
  justify-content:center;
}

/* CARD */
.col-card{
  text-decoration:none;
  color:var(--ink);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 18px 45px rgba(0,0,0,.10);
  transition:transform .15s ease, box-shadow .15s ease;
}

.col-card-img{
  height:270px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-color:#f2f2f2;
  transition: transform .35s ease;
}

.col-card:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 60px rgba(0,0,0,.12);
}
.col-card:hover .col-card-img{
  transform: scale(1.02);
}

.col-card-body{
  padding:18px;
  text-align:left;
  background:var(--cream);
}

.col-card-title{
  font-size:22px;
  font-weight:800;
}

.col-card-meta{
  margin-top:6px;
  opacity:.85;
}

/* botón genérico (por si lo reutilizamos) */
.btn-outline{
  display:inline-block;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.18);
  text-decoration:none;
  color:var(--ink);
  background:rgba(255,255,255,.55);
}

/* ---------- FOOTER DARK ---------- */
.col-footer{
  background:#0f0f10;
  color:rgba(255,255,255,.86);
  padding:56px 16px;
}

.col-footer-grid{
  width:min(1100px, 100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr;
  gap:34px;
  align-items:start;
}

.col-footer-logo{
  height:36px;
  filter:none;
  opacity:1;
}

.col-footer-title{
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800;
  opacity:.9;
  color:#fff;
}

.col-footer-text{
  margin-top:10px;
  line-height:1.55;
  opacity:.86;
}

.col-footer a{
  display:inline-block;
  margin:4px 0;
  color:rgba(255,255,255,.86);
  text-decoration:none;
  opacity:.92;
}
.col-footer a:hover{ opacity:1; }

.col-footer-bottom{
  width:min(1100px, 100%);
  margin:28px auto 0;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:14px;
  opacity:.75;
}

/* Redes sociales */
.col-social{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}

/* wrapper clicable mínimo */
.col-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin:0;
  border:none;
  background:transparent;
}

/* ocultar texto Facebook / Instagram / WhatsApp */
.col-social-tx{
  display:none !important;
}

/* el contenedor del icono: sin borde ni fondo extra */
.col-social-ic{
  width:auto;
  height:auto;
  border:none;
  background:transparent;
  padding:0;
}

/* tamaño y hover del propio SVG (icono) */
.col-social-link svg{
  width:18px;
  height:18px;
  transition:transform .15s ease, opacity .15s ease;
  opacity:.9;
}
.col-social-link:hover svg{
  transform:scale(1.07);
  opacity:1;
}

/* ========== CONTACTO ========== */
.col-contact{
  padding:60px 16px 40px;
  background:#f9f6f1; /* tono suave para separar del fondo blanco */
}

.col-contact-inner{
  width:min(900px, 100%);
  margin:0 auto;
  text-align:left;
}

.col-contact h2{
  text-align:center;
}

.col-contact .col-h2-sub{
  text-align:center;
}

.col-field{
  margin-top:18px;
}

.col-field-row{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.col-field label{
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:6px;
}

.col-field input,
.col-field select,
.col-field textarea{
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  font:inherit;
  box-sizing:border-box;
  background:#fff;
}

.col-contact-btn{
  margin-top:18px;
}

.col-contact-status{
  margin-top:10px;
  font-size:14px;
  opacity:.85;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .col-nav{ padding:12px 14px; }
  .col-menu{ gap:12px; }

  .col-hero{
    height:76vh;
    min-height:560px;
  }

  .col-intro{
    margin-top:-40px;
  }

  .col-hero-arrow{
    width:40px;
    height:40px;
    font-size:28px;
  }

  .col-intro-card{
    width:calc(100% - 24px);
    padding:32px 18px;
  }

  .col-intro-card h1{ font-size:34px; }

  .col-grid{
    width:calc(100% - 24px);
    grid-template-columns:1fr;
  }

  .col-footer-grid{
    grid-template-columns:1fr;
  }

  .col-brand-text{
    font-size:17px;
  }

  .col-chip{
    min-width:160px;
  }
}

@media (max-width:768px){
  .col-field-row{
    flex-direction:column;
  }
}

/* === Dots del carrusel, versión fina casi abajo === */
/* ===== Dots del carrusel (similares al ejemplo) ===== */

.col-hero-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:70px;                 /* casi pegados al borde de la foto */
  display:flex;
  justify-content:center;
  gap:6px;
  z-index:20;                  /* por encima del degradado */
  pointer-events:none;         /* que no bloqueen clics en la foto */
}

.col-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  border:0;
  background:rgba(0,0,0,.40);  /* gris oscuro para que se vean SIEMPRE */
  opacity:.65;
  cursor:pointer;
  pointer-events:auto;         /* pero cada punto es clicable */
  transition:
    opacity   .18s ease,
    transform .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.col-dot.active{
  background:#ffffff;                      /* relleno blanco */
  opacity:1;
  box-shadow:0 0 4px rgba(0,0,0,.7);       /* aro alrededor */
  transform:scale(1.25);
}

.col-lang{
  border:none;
  background:transparent;
  color:#fff;
  font-size:13px;
  cursor:pointer;
  opacity:.75;
  padding:2px 4px;
}

.col-lang-active{
  font-weight:700;
  opacity:1;
  text-decoration:underline;
}

/* ====== SWITCH DE IDIOMA (colección) ====== */

.col-lang-switch{
  display:flex;
  gap:6px;
  margin-left:18px;
  font-size:11px;
}

.col-lang-btn{
  border-radius:999px;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.25);
  color:#fff;
  padding:3px 8px;
  line-height:1;
  cursor:pointer;
  font:inherit;
  opacity:.85;
}

.col-lang-btn:hover{
  background:rgba(0,0,0,.4);
  opacity:1;
}

.col-lang-btn.active{
  background:#fff;
  color:#333;
  border-color:#fff;
  opacity:1;
}

/* en móvil, que no molesten */
@media (max-width: 980px){
  .col-lang-switch{
    margin-left:8px;
    gap:4px;
  }
  .col-lang-btn{
    padding:2px 6px;
    font-size:10px;
  }
}

.col-lang-select {
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.6);
  background: rgba(0,0,0,0.35);
  color: #fff;
  font-size: 12px;
  outline: none;
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.col-lang-select:focus {
  border-color: #fff;
}

/* =========================================================
   MOBILE FIX: cards de apartamentos compactos (no alargados)
   - 1 columna
   - card en horizontal (foto izq + contenido der)
   - elimina alturas fijas/min-height
   - clamp de textos para que no “estiren”
   ========================================================= */

@media (max-width: 640px){

  /* Grid a 1 columna y menos aire */
  .col-grid{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* El “card” (sea <a>, <article>, <div>…) */
  #colGrid > *{
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  /* Zona imagen: intentamos cazar varios nombres típicos */
  #colGrid > * .col-card-img,
  #colGrid > * .col-card-media,
  #colGrid > * .col-item-img,
  #colGrid > * .col-item-media,
  #colGrid > * .thumb,
  #colGrid > * .cover,
  #colGrid > * .image,
  #colGrid > * figure{
    flex: 0 0 42% !important;
    max-width: 42% !important;
    margin: 0 !important;
    aspect-ratio: 4 / 3 !important;
    overflow: hidden !important;
    height: auto !important;
  }

  /* Si el card no tiene wrapper y el <img> cuelga directo */
  #colGrid > * > img{
    flex: 0 0 42% !important;
    max-width: 42% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    display: block !important;
  }

  /* Todas las imágenes dentro: cubrir sin deformar */
  #colGrid img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }

  /* Zona contenido (texto) */
  #colGrid > * .col-card-body,
  #colGrid > * .col-item-body,
  #colGrid > * .col-card-content,
  #colGrid > * .content,
  #colGrid > * .body{
    flex: 1 1 auto !important;
    min-width: 0 !important; /* CLAVE para que el clamp funcione */
    padding: 12px !important;
    height: auto !important;
    min-height: 0 !important;
  }

  /* Si no hay wrapper, aplica padding al propio card */
  #colGrid > *{
    padding: 0 !important;
  }
  #colGrid > * > :not(img):not(figure){
    min-width: 0 !important;
  }

  /* Títulos: máximo 2 líneas */
  #colGrid h3,
  #colGrid .title,
  #colGrid .col-card-title,
  #colGrid .col-item-title{
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  /* Descripción: máximo 2 líneas */
  #colGrid p,
  #colGrid .desc,
  #colGrid .col-card-desc,
  #colGrid .col-item-desc{
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  /* Chips / meta: que no estiren raro */
  #colGrid .chips,
  #colGrid .meta,
  #colGrid .col-chips,
  #colGrid .col-card-meta{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }

  /* CTA/botón: evita que “agrande” el card */
  #colGrid .btn,
  #colGrid .cta,
  #colGrid .col-card-cta,
  #colGrid .col-item-cta{
    margin-top: 8px !important;
    width: auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
  }
}
