/* Apartamentos Aliga — estilos globales */
:root {
  --teal: #0093A6;
  --teal-dark: #00252A;
  --teal-mid: #003D45;
  --cyan: #1DE5FF;
  --ink: #191919;
  --muted: #9CA2A4;
  --gray: #F2F2F2;
}

html, body { margin: 0; padding: 0; background: #FFFFFF; }
* { box-sizing: border-box; }
body { color: var(--ink); font-family: 'Mulish', sans-serif; overflow-x: hidden; }
a { color: var(--ink); text-decoration: none; transition: all 0.25s ease; }
img { max-width: 100%; }
::selection { background: var(--teal); color: #fff; }

input, select {
  font-family: 'Mulish', sans-serif; font-size: 15px; color: var(--ink);
  background: var(--gray); border: 1px solid var(--gray); border-radius: 8px;
  padding: 12px 20px; width: 100%; outline: none;
}
input:focus, select:focus { border-color: var(--teal); }

@keyframes aligaRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes aligaFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes aligaZoom { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Botones */
.btn {
  display: inline-block; padding: 15px 30px; font-size: 15px; font-weight: 600;
  border-radius: 50px; border: none; cursor: pointer; font-family: 'Mulish', sans-serif;
  transition: all 0.25s ease; text-align: center;
}
.btn-primary { background: var(--teal); color: #FFFFFF; }
.btn-primary:hover { background: var(--teal-dark); color: #FFFFFF; }
.btn-primary-invert { background: var(--teal); color: #FFFFFF; }
.btn-primary-invert:hover { background: #FFFFFF; color: var(--teal-dark); }
.btn-outline-light { background: transparent; border: 1px solid rgba(255,255,255,0.5); color: #FFFFFF; }
.btn-outline-light:hover { border-color: var(--cyan); color: var(--cyan); }
.btn-cyan { background: var(--cyan); color: var(--teal-dark); font-weight: 700; }
.btn-cyan:hover { background: #FFFFFF; }

/* Navegación */
.nav-link { font-size: 15px; font-weight: 600; color: var(--ink); }
.nav-link:hover { color: var(--teal); }
.nav-link.active { color: var(--teal); }
.flink { color: rgba(255,255,255,0.78); font-size: 15px; }
.flink:hover { color: var(--cyan); }
.flink-dim { color: rgba(255,255,255,0.5); }
.flink-dim:hover { color: var(--cyan); }

/* Tarjetas */
.card-lift { transition: all 0.3s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 24px 44px rgba(0,37,42,0.14); }
.gimg { cursor: pointer; border-radius: 16px; transition: opacity 0.25s ease; }
.gimg:hover { opacity: 0.88; }

/* Rejillas */
.aliga-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.aliga-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.aliga-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 60px; }
.aliga-hero-form { position: absolute; right: 56px; bottom: 56px; width: 380px; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 16px; }
.aliga-tours-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.aliga-tour-card {
  display: grid; grid-template-columns: 0.9fr 1.1fr; background: #FFFFFF;
  border-radius: 20px; overflow: hidden; box-shadow: 0 12px 30px rgba(0,37,42,0.08);
  transition: all 0.3s ease;
}
.aliga-tour-card:hover { transform: translateY(-4px); box-shadow: 0 24px 44px rgba(0,37,42,0.14); }
.aliga-nav-links { display: flex; align-items: center; gap: 36px; }

/* Lightbox */
#lightbox {
  position: fixed; inset: 0; z-index: 100; background: rgba(0,37,42,0.94);
  display: none; align-items: center; justify-content: center; padding: 56px;
  cursor: zoom-out; animation: aligaFade 0.25s ease-out both;
}
#lightbox.open { display: flex; }
#lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 12px; }
#lightbox .close-label {
  position: absolute; top: 28px; right: 36px; color: #FFFFFF; font-size: 13px;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
}

/* Responsive */
@media (max-width: 1024px) {
  .aliga-grid-2 { grid-template-columns: 1fr; gap: 44px; }
  .aliga-grid-3 { grid-template-columns: 1fr 1fr; }
  .aliga-grid-4 { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .aliga-nav-links { display: none !important; }
  .aliga-hero-form { position: relative; right: auto; bottom: auto; width: 100%; margin-top: 28px; }
  .aliga-tours-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; }
  .gallery-grid img { grid-column: auto !important; grid-row: auto !important; }
}
@media (max-width: 640px) {
  .aliga-grid-3, .aliga-grid-4 { grid-template-columns: 1fr; }
  .aliga-tour-card { grid-template-columns: 1fr; }
  .aliga-tour-card > img { height: 220px !important; }
  .gallery-grid { grid-template-columns: 1fr; }
  section, header, footer { padding-left: 20px !important; padding-right: 20px !important; }
}
