/* ═══════════════════════════════════════════════════════════════════════
   Páginas de ciudad (SEO local) — estilo premium.
   Acento oliva #2C7A4E · tipografías Montserrat + Cormorant.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
  --ci-olive: #2C7A4E;
  --ci-olive-2: #3a9c66;
  --ci-ink: #0f1a14;
  --ci-muted: #5b6660;
  --ci-line: rgba(15, 26, 20, 0.08);
}

/* ── Hero ────────────────────────────────────────────────────────────── */
.ciudad-hero {
  position: relative; overflow: hidden;
  min-height: 480px; display: flex; align-items: center;
  padding: 150px 0 90px; text-align: center; color: #fff;
  background: #0a0f0c;
}
.ciudad-hero::before { /* imagen de la ciudad */
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: var(--ciudad-bg, none) center/cover no-repeat;
  opacity: 0.55; transform: scale(1.05);
}
.ciudad-hero::after { /* velo para legibilidad + tinte oliva */
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(44, 122, 78, 0.28) 0%, transparent 55%),
    linear-gradient(180deg, rgba(6, 10, 8, 0.55) 0%, rgba(6, 10, 8, 0.78) 60%, rgba(6, 10, 8, 0.94) 100%);
}
.ciudad-hero .container { position: relative; z-index: 3; }

.ciudad-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Montserrat', sans-serif; font-size: 0.75rem; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: #d7f2e3;
  background: rgba(44, 122, 78, 0.22); border: 1px solid rgba(88, 190, 138, 0.35);
  padding: 8px 16px; border-radius: 50px; margin-bottom: 26px; backdrop-filter: blur(8px);
}
.ciudad-eyebrow i { color: var(--ci-olive-2); }

.ciudad-hero h1 {
  font-family: 'Montserrat', sans-serif; font-weight: 800; text-transform: uppercase;
  font-size: clamp(2.4rem, 6vw, 4.4rem); line-height: 1.05; letter-spacing: -1.5px;
  margin: 0 0 20px; color: #fff;
}
.ciudad-hero h1 span {
  background: linear-gradient(90deg, var(--ci-olive-2), #6ee0a6);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.ciudad-hero-sub {
  font-family: 'Montserrat', sans-serif; font-size: clamp(1rem, 2vw, 1.18rem);
  color: #cdd6d1; max-width: 640px; margin: 0 auto 34px; line-height: 1.65; font-weight: 400;
}
.ciudad-hero-cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.ciudad-hero .btn-ghost {
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff; backdrop-filter: blur(8px); transition: background 0.25s ease, transform 0.25s ease;
}
.ciudad-hero .btn-ghost:hover { background: rgba(255, 255, 255, 0.18); transform: translateY(-2px); }

/* La barra superior sticky del sitio tapa un poco: compensación del ancla */
#ciudad-servicios { scroll-margin-top: 90px; }

/* ── Contenido ───────────────────────────────────────────────────────── */
.ciudad-content { padding: 70px 0 90px; background: #fff; position: relative; }
.ciudad-intro {
  max-width: 860px; margin: 0 auto 30px; text-align: center;
  font-family: 'Montserrat', sans-serif; color: var(--ci-muted);
}
.ciudad-intro p { font-size: 1.14rem; line-height: 1.85; margin-bottom: 18px; }
.ciudad-intro strong { color: var(--ci-ink); font-weight: 700; }

.ciudad-servicios h2, .ciudad-productos h2, .ciudad-eventos h2, .ciudad-ventajas h2 {
  font-family: 'Montserrat', sans-serif; font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800; text-transform: uppercase; letter-spacing: -0.5px; color: var(--ci-ink);
  text-align: center; margin: 68px 0 14px; position: relative;
}
.ciudad-servicios h2::after, .ciudad-productos h2::after,
.ciudad-eventos h2::after, .ciudad-ventajas h2::after {
  content: ''; display: block; width: 56px; height: 4px; border-radius: 4px;
  margin: 16px auto 40px; background: linear-gradient(90deg, var(--ci-olive), var(--ci-olive-2));
}
.ciudad-eventos > p { text-align: center; color: var(--ci-muted); max-width: 620px; margin: -22px auto 30px; font-size: 1.05rem; }

/* Servicios */
.servicios-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-bottom: 30px; }
.servicio-item {
  background: #fff; padding: 40px 28px; border-radius: 22px; text-align: center;
  border: 1px solid var(--ci-line); box-shadow: 0 14px 40px rgba(15, 26, 20, 0.05);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease, border-color 0.35s ease;
}
.servicio-item:hover { transform: translateY(-10px); box-shadow: 0 26px 60px rgba(44, 122, 78, 0.14); border-color: rgba(44, 122, 78, 0.25); }
.servicio-item i {
  display: inline-flex; align-items: center; justify-content: center; width: 74px; height: 74px;
  background: linear-gradient(135deg, rgba(44, 122, 78, 0.1), rgba(58, 156, 102, 0.06));
  color: var(--ci-olive); font-size: 2rem; border-radius: 20px; margin-bottom: 24px;
  transition: transform 0.35s ease, background 0.35s ease, color 0.35s ease;
}
.servicio-item:hover i { background: linear-gradient(135deg, var(--ci-olive), var(--ci-olive-2)); color: #fff; transform: scale(1.08) rotate(-4deg); }
.servicio-item h3 { font-family: 'Montserrat', sans-serif; font-size: 1.25rem; font-weight: 700; color: var(--ci-ink); margin-bottom: 12px; }
.servicio-item p { color: var(--ci-muted); font-size: 0.96rem; line-height: 1.65; }

/* Productos (checklist) */
.productos-lista { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 14px; margin-bottom: 30px; }
.productos-lista li {
  padding: 17px 22px; background: #f7f9f7; border-radius: 14px; border: 1px solid var(--ci-line);
  display: flex; align-items: center; gap: 14px; font-family: 'Montserrat', sans-serif;
  font-weight: 500; font-size: 0.98rem; color: var(--ci-ink); transition: all 0.25s ease;
}
.productos-lista li:hover { background: #fff; box-shadow: 0 10px 26px rgba(15, 26, 20, 0.07); transform: translateX(6px); border-color: rgba(44, 122, 78, 0.2); }
.productos-lista li i {
  color: var(--ci-olive); font-size: 0.85rem; flex: none;
  width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(44, 122, 78, 0.1); border-radius: 50%;
}

/* Eventos */
.eventos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; margin-bottom: 30px; }
.evento-item {
  background: linear-gradient(150deg, #12211a 0%, #0a0f0c 100%); color: #fff;
  padding: 34px 20px; border-radius: 20px; text-align: center; position: relative; overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.evento-item:hover { transform: translateY(-7px); box-shadow: 0 22px 46px rgba(0, 0, 0, 0.28); }
.evento-item::before { content: ''; position: absolute; top: -30px; right: -30px; width: 100px; height: 100px; background: radial-gradient(circle, rgba(44, 122, 78, 0.35), transparent 70%); border-radius: 50%; }
.evento-item i { font-size: 2.1rem; margin-bottom: 14px; color: var(--ci-olive-2); position: relative; z-index: 2; }
.evento-item span { font-family: 'Montserrat', sans-serif; font-size: 0.98rem; font-weight: 600; letter-spacing: 0.3px; position: relative; z-index: 2; }

/* Ventajas */
.ventajas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 34px; margin-bottom: 20px; text-align: center; }
.ventaja-item i {
  font-size: 2rem; color: var(--ci-olive); margin: 0 auto 20px; width: 84px; height: 84px;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background: rgba(44, 122, 78, 0.08); border: 1px solid rgba(44, 122, 78, 0.14);
  transition: transform 0.3s ease;
}
.ventaja-item:hover i { transform: translateY(-5px); }
.ventaja-item h4 { font-family: 'Montserrat', sans-serif; font-size: 1.18rem; font-weight: 700; color: var(--ci-ink); margin-bottom: 10px; }
.ventaja-item p { color: var(--ci-muted); font-size: 0.95rem; line-height: 1.65; }

/* ── CTA final ───────────────────────────────────────────────────────── */
.ciudad-cta {
  background: linear-gradient(150deg, #12211a 0%, #0a0f0c 100%); color: #fff;
  padding: 70px 44px; border-radius: 28px; text-align: center; margin-top: 70px;
  position: relative; overflow: hidden; box-shadow: 0 30px 70px rgba(10, 15, 12, 0.28);
}
.ciudad-cta::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--ci-olive), var(--ci-olive-2), #6ee0a6); }
.ciudad-cta::after { content: ''; position: absolute; bottom: -60px; left: 50%; transform: translateX(-50%); width: 340px; height: 340px; background: radial-gradient(circle, rgba(44, 122, 78, 0.22), transparent 70%); }
.ciudad-cta h2 {
  font-family: 'Montserrat', sans-serif !important; font-size: clamp(1.8rem, 4vw, 2.6rem) !important;
  font-weight: 800; letter-spacing: -1px; line-height: 1.15; color: #fff !important;
  margin: 0 0 18px; position: relative; z-index: 2;
}
.ciudad-cta p { position: relative; z-index: 2; opacity: 0.85; max-width: 660px; margin: 0 auto 34px; font-size: 1.08rem; line-height: 1.7; }
.ciudad-cta-buttons { position: relative; z-index: 2; display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.ciudad-cta-buttons .btn { padding: 15px 34px; font-weight: 700; letter-spacing: 0.5px; border-radius: 50px; }

/* ── Índice de ciudades ──────────────────────────────────────────────── */
.ciudades-index { padding: 130px 0 90px; background: #fff; }
.ciudades-index .section-header { text-align: center; margin-bottom: 50px; }
.ciudades-index .section-header h2 { font-family: 'Montserrat', sans-serif; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; text-transform: uppercase; letter-spacing: -1px; color: var(--ci-ink); }
.ciudades-index .section-header p { color: var(--ci-muted); max-width: 620px; margin: 14px auto 0; font-size: 1.08rem; line-height: 1.6; }
.ciudades-grupo { margin-bottom: 34px; }
.ciudades-grupo h2 {
  font-family: 'Montserrat', sans-serif; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 1.5px;
  color: var(--ci-olive); margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--ci-line);
  display: flex; align-items: center; gap: 10px;
}
.ciudades-grupo h2::before { content: '\f3c5'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 0.85rem; }
.ciudades-links { display: flex; flex-wrap: wrap; gap: 10px; }
.ciudades-links a {
  color: var(--ci-ink); text-decoration: none; font-family: 'Montserrat', sans-serif; font-size: 0.92rem; font-weight: 500;
  padding: 8px 16px; background: #f7f9f7; border: 1px solid var(--ci-line); border-radius: 50px; transition: all 0.2s ease;
}
.ciudades-links a:hover { color: #fff; background: var(--ci-olive); border-color: var(--ci-olive); transform: translateY(-2px); }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .ciudad-hero { padding: 120px 0 64px; min-height: 420px; }
  .ciudad-content { padding: 50px 0 60px; }
  .ciudad-cta { padding: 48px 24px; }
  .ciudad-cta-buttons .btn, .ciudad-hero-cta .btn { width: 100%; }
  .ciudad-servicios h2, .ciudad-productos h2, .ciudad-eventos h2, .ciudad-ventajas h2 { margin-top: 48px; }
}
