/* Instalaciones — page-specific styles */
.section-label--light { color: var(--amber-light); }
.fd2 { transition-delay: .12s; }
.fd3 { transition-delay: .24s; }
.fd4 { transition-delay: .36s; }
.fd5 { transition-delay: .48s; }
.fd6 { transition-delay: .6s; }
.fd7 { transition-delay: .72s; }
.fd8 { transition-delay: .84s; }
.inst-btn-compact { font-size: .8rem; padding: .7rem 1.5rem; }
.inst-strip__item--last { border-right: none; }

/* ══════════════════════════════════════
   HERO CORTO
   ══════════════════════════════════════ */
.inst-hero {
  position: relative; min-height: 56vh;
  display: flex; flex-direction: column;
  justify-content: flex-end; align-items: center;
  overflow: hidden; background: var(--carbon);
  padding-bottom: 3.5rem;
}
.inst-hero__bg {
  position: absolute; inset: 0;
  overflow: hidden;
  opacity: .45;
}
.inst-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.inst-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(28,28,28,.15) 0%, rgba(28,28,28,.45) 50%, rgba(28,28,28,.88) 100%);
}
.inst-hero__content {
  position: relative; z-index: 2;
  text-align: center; padding: 5rem 2rem 0; max-width: 720px;
}
.inst-hero__eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; color: var(--amber-light); margin-bottom: 1rem; }
.inst-hero__title { color: white; margin-bottom: 1rem; }
.inst-hero__title em { font-style: italic; color: var(--amber-light); }
.inst-hero__sub { font-size: clamp(.95rem,1.8vw,1.1rem); font-weight: 300; color: rgba(255,255,255,.65); margin-bottom: 2.2rem; }
.inst-hero__cta { position: relative; z-index: 2; margin-top: 1.8rem; }


/* ══════════════════════════════════════
   STRIP DE ÍCONOS — navegación rápida
   ══════════════════════════════════════ */
.inst-strip {
  background: var(--carbon);
  border-top: 1px solid rgba(255,255,255,.06);
}
.inst-strip__inner {
  max-width: var(--container); margin: 0 auto; padding: 0 2rem;
  display: flex; align-items: stretch; justify-content: center;
  flex-wrap: wrap;
}
.inst-strip__item {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .5rem; padding: 1.6rem 1.8rem;
  border-right: 1px solid rgba(255,255,255,.06);
  text-decoration: none; cursor: pointer;
  transition: background .25s;
  flex: 1; min-width: 100px;
}
.inst-strip__item:last-child { border-right: none; }
.inst-strip__item:hover { background: rgba(255,255,255,.04); }
.inst-strip__item:hover .inst-strip__icon { color: var(--amber-light); }
.inst-strip__item:hover .inst-strip__label { color: white; }
.inst-strip__icon { width: 22px; height: 22px; stroke: var(--stone-light); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: stroke .25s; color: var(--stone-light); }
.inst-strip__label { font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--stone); transition: color .25s; white-space: nowrap; }


/* ══════════════════════════════════════
   PISCINA — sección estrella
   ══════════════════════════════════════ */
.inst-pool { background: var(--warm-white); }

.inst-pool__feature {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 4rem; align-items: center;
  margin-bottom: 3.5rem;
}
.inst-pool__img-main {
  border-radius: 8px; overflow: hidden; height: 480px; position: relative;
  background: linear-gradient(135deg,#0a1e0a,#1a3014);
}
.inst-pool__img-main img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.inst-pool__img-main:hover img { transform: scale(1.03); }
.inst-pool__img-badge {
  position: absolute; bottom: 1.2rem; left: 1.2rem;
  background: rgba(28,28,28,.75); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.1); border-radius: 4px;
  padding: .5rem 1rem; font-size: .7rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--amber-light);
}
.inst-pool__text h2 { margin-bottom: 1.2rem; }
.inst-pool__text h2 em { font-style: italic; color: var(--selva); }
.inst-pool__text p { font-size: 1rem; color: var(--stone); line-height: 1.75; margin-bottom: 1.2rem; }

.inst-pool__specs {
  display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.8rem 0 2rem;
}
.inst-pool__spec {
  display: flex; align-items: center; gap: .7rem;
  background: var(--cream); border-radius: 8px; padding: .9rem 1rem;
  border: 1px solid var(--cream-dark);
}
.inst-pool__spec svg { width: 16px; height: 16px; stroke: var(--selva); fill: none; stroke-width: 1.8; flex-shrink: 0; }
.inst-pool__spec span { font-size: .84rem; color: var(--carbon); }
.inst-pool__spec strong { font-weight: 600; }

/* Galería secundaria: 3 fotos pequeñas */
.inst-pool__gallery {
  display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem;
}
.inst-pool__gal-img {
  border-radius: 8px; overflow: hidden; aspect-ratio: 4/3;
  background: var(--cream);
}
.inst-pool__gal-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.inst-pool__gal-img:hover img { transform: scale(1.05); }

/* Kids strip */
.inst-pool__kids {
  margin-top: 3rem; padding: 2rem 2.5rem;
  background: var(--cream); border-radius: 8px; border: 1px solid var(--cream-dark);
  display: flex; align-items: center; gap: 2.5rem; flex-wrap: wrap;
}
.inst-pool__kids-icon {
  width: 52px; height: 52px; flex-shrink: 0;
  border-radius: 50%; background: white;
  border: 2px solid rgba(58,107,53,.2);
  display: flex; align-items: center; justify-content: center;
}
.inst-pool__kids-icon svg { width: 24px; height: 24px; stroke: var(--selva); fill: none; stroke-width: 1.6; }
.inst-pool__kids-text h3 { font-family: var(--font-display); font-size: 1.35rem; font-weight: 500; margin-bottom: .25rem; color: var(--carbon); }
.inst-pool__kids-text p  { font-size: .88rem; color: var(--stone); }
.inst-pool__kids-badge {
  margin-left: auto; flex-shrink: 0;
  display: inline-flex; align-items: center; gap: .4rem;
  background: rgba(58,107,53,.08); border: 1px solid rgba(58,107,53,.2);
  border-radius: 20px; padding: .3rem .9rem;
  font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--selva);
}
.inst-pool__kids-badge::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--selva); }


/* ══════════════════════════════════════
   BIENESTAR
   ══════════════════════════════════════ */
.inst-wellness {
  background: var(--carbon); color: white;
  position: relative; overflow: hidden;
}
.inst-wellness::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 700px 500px at 80% 50%, rgba(58,107,53,.1), transparent);
}
.inst-wellness .container { position: relative; z-index: 1; }
.inst-wellness__grid {
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 4rem; align-items: center;
}
.inst-wellness__text { order: 1; }
.inst-wellness__visual { order: 2; }
.inst-wellness__text .section-label { color: var(--amber-light); }
.inst-wellness__text h2 { color: white; margin-bottom: 1.2rem; }
.inst-wellness__text h2 em { font-style: italic; color: var(--amber-light); }
.inst-wellness__text p { color: rgba(255,255,255,.65); font-size: 1rem; line-height: 1.78; margin-bottom: 1.4rem; }

.inst-wellness__items { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.8rem; }
.inst-wellness__item {
  display: flex; gap: 1.2rem; align-items: flex-start;
  padding: 1.3rem 1.4rem;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px; transition: background .3s, border-color .3s;
}
.inst-wellness__item:hover { background: rgba(255,255,255,.09); border-color: rgba(196,129,61,.25); }
.inst-wellness__item-icon {
  width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 8px; background: rgba(196,129,61,.12);
  border: 1px solid rgba(196,129,61,.2);
  display: flex; align-items: center; justify-content: center;
}
.inst-wellness__item-icon svg { width: 18px; height: 18px; stroke: var(--amber-light); fill: none; stroke-width: 1.7; }
.inst-wellness__item-body h3 { font-family: var(--font-body); font-size: .95rem; font-weight: 600; color: white; margin-bottom: .2rem; }
.inst-wellness__item-body p  { font-size: .84rem; color: rgba(255,255,255,.5); line-height: 1.55; }

/* Galería bienestar: 2 fotos en columna */
.inst-wellness__imgs {
  display: grid; grid-template-rows: 1fr 1fr; gap: .75rem; height: 520px;
}
.inst-wellness__img {
  border-radius: 8px; overflow: hidden;
  background: linear-gradient(135deg,#140a14,#200e20);
}
.inst-wellness__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.inst-wellness__img:hover img { transform: scale(1.04); }


/* ══════════════════════════════════════
   RECREACIÓN & DEPORTE — grid de cards
   ══════════════════════════════════════ */
.inst-rec { background: var(--cream); }
.inst-rec__header { text-align: center; margin-bottom: 3.5rem; }
.inst-rec__header h2 em { font-style: italic; color: var(--selva); }
.inst-rec__header p { font-size: 1.05rem; color: var(--stone); max-width: 560px; margin: .8rem auto 0; line-height: 1.75; }

.inst-rec__grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem;
}
.inst-rec__card {
  background: white; border-radius: 8px; overflow: hidden;
  border: 1px solid var(--cream-dark);
  transition: box-shadow .35s, transform .35s;
}
.inst-rec__card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.08); transform: translateY(-4px); }
.inst-rec__card-img {
  height: 170px; overflow: hidden; position: relative;
  background: var(--cream);
}
.inst-rec__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.inst-rec__card:hover .inst-rec__card-img img { transform: scale(1.06); }
.inst-rec__card-tag {
  position: absolute; top: .75rem; right: .75rem;
  font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .2rem .6rem; border-radius: 3px;
}
.tag--kids   { background: rgba(58,107,53,.85);  color: white; }
.tag--adults { background: rgba(28,28,28,.75);  color: rgba(255,255,255,.9); }
.tag--all    { background: rgba(196,129,61,.85); color: white; }
.inst-rec__card-body { padding: 1.2rem 1.3rem 1.4rem; }
.inst-rec__card-body h3 { font-family: var(--font-display); font-size: 1.2rem; font-weight: 500; margin-bottom: .3rem; }
.inst-rec__card-body p  { font-size: .83rem; color: var(--stone); line-height: 1.55; }


/* Grid 2 cols para recreación */
.inst-rec__grid--2col {
  grid-template-columns: repeat(2, 1fr);
  max-width: 820px; margin: 0 auto;
}
.inst-rec__grid--2col .inst-rec__card-img { height: 260px; }


/* ══════════════════════════════════════
   KIDS
   ══════════════════════════════════════ */
.inst-kids { background: var(--cream); }
.inst-kids__header { text-align: center; margin-bottom: 3.5rem; }
.inst-kids__header h2 em { font-style: italic; color: var(--selva); }
.inst-kids__sub { font-size: 1.05rem; color: var(--stone); max-width: 560px; margin: .8rem auto 0; line-height: 1.75; }

.inst-kids__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-bottom: 2rem; }

.inst-kids__card {
  background: white; border-radius: 8px; overflow: hidden;
  border: 1px solid var(--cream-dark);
  transition: box-shadow .35s, transform .35s;
}
.inst-kids__card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.08); transform: translateY(-4px); }

.inst-kids__card-img { height: 220px; overflow: hidden; position: relative; background: var(--cream); }
.inst-kids__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.inst-kids__card:hover .inst-kids__card-img img { transform: scale(1.05); }
.inst-kids__card-badge {
  position: absolute; bottom: .8rem; left: .8rem;
  background: rgba(58,107,53,.88); color: white;
  font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .2rem .7rem; border-radius: 3px;
}
.inst-kids__card-body { padding: 1.4rem 1.5rem 1.6rem; }
.inst-kids__card-body h3 { font-family: var(--font-display); font-size: 1.35rem; font-weight: 500; margin-bottom: .4rem; }
.inst-kids__card-body p  { font-size: .85rem; color: var(--stone); line-height: 1.6; margin-bottom: 1rem; }
.inst-kids__card-feats { display: flex; flex-wrap: wrap; gap: .4rem; }
.inst-kids__card-feats span {
  font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .2rem .65rem; border-radius: 3px;
  background: rgba(58,107,53,.07); color: var(--selva); border: 1px solid rgba(58,107,53,.18);
}

/* Kids pool strip */
.inst-kids__pool {
  padding: 1.8rem 2rem; background: white;
  border-radius: 8px; border: 1px solid var(--cream-dark);
  display: flex; align-items: center; gap: 2rem; flex-wrap: wrap;
}
.inst-kids__pool-icon {
  width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%;
  background: rgba(58,107,53,.08); border: 1.5px solid rgba(58,107,53,.2);
  display: flex; align-items: center; justify-content: center;
}
.inst-kids__pool-icon svg { width: 22px; height: 22px; }
.inst-kids__pool-text { flex: 1; min-width: 200px; }
.inst-kids__pool-text h3 { font-family: var(--font-body); font-size: .95rem; font-weight: 600; color: var(--carbon); margin-bottom: .2rem; }
.inst-kids__pool-text p  { font-size: .85rem; color: var(--stone); line-height: 1.5; }
.inst-kids__pool-tag {
  flex-shrink: 0; font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  padding: .35rem .9rem; border-radius: 20px;
  background: rgba(58,107,53,.08); color: var(--selva); border: 1px solid rgba(58,107,53,.2);
}


/* ══════════════════════════════════════
   GIMNASIO
   ══════════════════════════════════════ */
.inst-gym { background: var(--warm-white); }
.inst-gym__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 4.5rem; align-items: center; }

.inst-gym__feats { display: flex; flex-direction: column; gap: 1rem; margin: 1.8rem 0 0; }
.inst-gym__feat {
  display: flex; gap: 1.1rem; align-items: flex-start;
  padding: 1.2rem 1.3rem;
  background: white; border: 1px solid var(--cream-dark); border-radius: 8px;
  transition: box-shadow .3s, transform .3s;
}
.inst-gym__feat:hover { box-shadow: 0 8px 30px rgba(0,0,0,.06); transform: translateY(-2px); }
.inst-gym__feat-icon {
  width: 38px; height: 38px; flex-shrink: 0; border-radius: 8px;
  background: var(--cream); border: 1px solid var(--cream-dark);
  display: flex; align-items: center; justify-content: center;
}
.inst-gym__feat-icon svg { width: 17px; height: 17px; stroke: var(--selva); fill: none; stroke-width: 1.8; stroke-linecap: round; }
.inst-gym__feat h3 { font-family: var(--font-body); font-size: .92rem; font-weight: 600; color: var(--carbon); margin-bottom: .2rem; }
.inst-gym__feat p  { font-size: .83rem; color: var(--stone); line-height: 1.5; }

.inst-gym__hours {
  display: flex; align-items: center; gap: .7rem; margin-top: 2rem;
  padding: .9rem 1.2rem; background: var(--cream); border-radius: 8px;
  border: 1px solid var(--cream-dark); font-size: .85rem; color: var(--carbon); justify-content: center;
}
.inst-gym__hours svg { width: 16px; height: 16px; stroke: var(--selva); fill: none; stroke-width: 1.8; flex-shrink: 0; }

.inst-gym__img-main {
  border-radius: 8px; overflow: hidden; height: 460px; position: relative;
  background: var(--cream);
}
.inst-gym__img-main img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.inst-gym__img-main:hover img { transform: scale(1.03); }
.inst-gym__img-badge {
  position: absolute; bottom: 1.2rem; left: 1.2rem;
  background: rgba(28,28,28,.75); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.1); border-radius: 4px;
  padding: .5rem 1rem; font-size: .7rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--amber-light);
}


/* ══════════════════════════════════════
   BAR
   ══════════════════════════════════════ */
.inst-bar {
  background: var(--carbon); position: relative; overflow: hidden;
}
.inst-bar::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 700px 500px at 70% 40%, rgba(196,129,61,.07), transparent);
}
.inst-bar .container { position: relative; z-index: 1; }

.inst-bar__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4.5rem; align-items: center; }

.inst-bar__img-main {
  border-radius: 8px; overflow: hidden; height: 380px; position: relative;
  background: var(--carbon-soft); margin-bottom: .75rem;
}
.inst-bar__img-main img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.inst-bar__img-main:hover img { transform: scale(1.03); }
.inst-bar__img-badge {
  position: absolute; bottom: 1rem; left: 1rem;
  background: rgba(196,129,61,.85); backdrop-filter: blur(6px);
  border-radius: 4px; padding: .35rem .85rem;
  font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: white;
}
.inst-bar__img-sub { border-radius: 8px; overflow: hidden; height: 180px; }
.inst-bar__img-sub img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.inst-bar__img-sub:hover img { transform: scale(1.04); }

.inst-bar__text .section-label { color: var(--amber-light); }
.inst-bar__text h2 { color: white; margin-bottom: 1.2rem; }
.inst-bar__text h2 em { font-style: italic; color: var(--amber-light); }
.inst-bar__text > p { color: rgba(255,255,255,.62); font-size: 1rem; line-height: 1.78; margin-bottom: 1.8rem; }

/* Menú preview: 2 columnas */
.inst-bar__menu {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px; padding: 1.4rem 1.5rem; margin-bottom: 1.8rem;
}
.inst-bar__menu-title {
  font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--amber-light); margin-bottom: .8rem; display: block;
}
.inst-bar__menu-list { display: flex; flex-direction: column; gap: .45rem; }
.inst-bar__menu-list li {
  font-size: .83rem; color: rgba(255,255,255,.55);
  padding-left: .9rem; position: relative;
}
.inst-bar__menu-list li::before {
  content: ''; position: absolute; left: 0; top: .55em;
  width: 4px; height: 4px; border-radius: 50%; background: var(--amber);
}

/* Horarios */
.inst-bar__hours { display: flex; flex-direction: column; gap: .7rem; }
.inst-bar__hours-item {
  display: flex; align-items: center; gap: .7rem;
  font-size: .85rem; color: rgba(255,255,255,.6);
}
.inst-bar__hours-item svg { width: 15px; height: 15px; stroke: var(--amber-light); fill: none; stroke-width: 1.8; flex-shrink: 0; }
.inst-bar__hours-item strong { color: rgba(255,255,255,.85); }
.inst-trail {
  background: var(--carbon-soft);
  position: relative; overflow: hidden;
}
.inst-trail::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 800px 600px at 20% 60%, rgba(58,107,53,.12), transparent);
}
.inst-trail .container { position: relative; z-index: 1; }
.inst-trail__grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 4rem; align-items: center; }

.inst-trail__imgs {
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 220px 220px; gap: .75rem;
}
.inst-trail__img { border-radius: 8px; overflow: hidden; }
.inst-trail__img.span2 { grid-column: 1/3; }
.inst-trail__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.inst-trail__img:hover img { transform: scale(1.04); }

.inst-trail__text .section-label { color: var(--amber-light); }
.inst-trail__text h2 { color: white; margin-bottom: 1.2rem; }
.inst-trail__text h2 em { font-style: italic; color: rgba(74,138,66,.9); }
.inst-trail__text p { color: rgba(255,255,255,.62); font-size: 1rem; line-height: 1.78; margin-bottom: 1.2rem; }

.inst-trail__fauna {
  display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem;
}
.inst-trail__chip {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .78rem; color: rgba(255,255,255,.6);
  padding: .35rem .9rem; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  transition: border-color .25s, color .25s;
}
.inst-trail__chip:hover { border-color: rgba(74,138,66,.5); color: rgba(74,138,66,.9); }

.inst-trail__stats {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 1.5rem;
}
.inst-trail__stat {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); border-radius: 8px;
  padding: 1.1rem 1rem; text-align: center;
}
.inst-trail__stat-num { font-family: var(--font-display); font-size: 1.6rem; font-weight: 500; color: white; line-height: 1; margin-bottom: .3rem; }
.inst-trail__stat-lbl { font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--stone-light); }


/* ══════════════════════════════════════
   SALONES DE EVENTOS
   ══════════════════════════════════════ */
.inst-events { background: var(--warm-white); }
.inst-events__header { text-align: center; margin-bottom: 3.5rem; }
.inst-events__header h2 em { font-style: italic; color: var(--amber); }
.inst-events__header p { font-size: 1.05rem; color: var(--stone); max-width: 540px; margin: .8rem auto 0; line-height: 1.75; }

.inst-events__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }

.inst-events__card {
  background: white; border-radius: 8px; overflow: hidden;
  border: 1px solid var(--cream-dark);
  transition: box-shadow .35s, transform .35s;
  display: flex; flex-direction: column;
}
.inst-events__card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.08); transform: translateY(-4px); }

.inst-events__card-img {
  height: 200px; overflow: hidden; background: var(--cream);
}
.inst-events__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.inst-events__card:hover .inst-events__card-img img { transform: scale(1.05); }

.inst-events__card-body { padding: 1.6rem; flex: 1; display: flex; flex-direction: column; }
.inst-events__card-name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; color: var(--carbon); margin-bottom: .4rem; }
.inst-events__card-sub  { font-size: .82rem; color: var(--stone); margin-bottom: 1.4rem; }

.inst-events__table { width: 100%; border-collapse: collapse; margin-bottom: 1.4rem; }
.inst-events__table tr { border-bottom: 1px solid var(--cream-dark); }
.inst-events__table tr:last-child { border-bottom: none; }
.inst-events__table td { padding: .55rem 0; font-size: .83rem; vertical-align: middle; }
.inst-events__table td:first-child { color: var(--stone); width: 55%; }
.inst-events__table td:last-child  { color: var(--carbon); font-weight: 600; text-align: right; }

.inst-events__tag {
  display: inline-flex; align-items: center; gap: .35rem;
  font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .25rem .7rem; border-radius: 3px;
  background: rgba(58,107,53,.08); color: var(--selva);
  border: 1px solid rgba(58,107,53,.18); margin-bottom: .5rem; margin-right: .4rem;
}

.inst-events__cta { margin-top: auto; padding-top: 1.2rem; }

/* CTA contacto eventos */
.inst-events__bottom {
  text-align: center; margin-top: 3rem; padding: 2.5rem;
  background: var(--cream); border-radius: 8px; border: 1px solid var(--cream-dark);
}
.inst-events__bottom h3 { font-family: var(--font-display); font-size: 1.8rem; font-weight: 400; margin-bottom: .6rem; color: var(--carbon); }
.inst-events__bottom p  { font-size: .92rem; color: var(--stone); margin-bottom: 1.6rem; }
.inst-events__bottom .btn-row { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }


/* ══════════════════════════════════════
   CTA FINAL
   ══════════════════════════════════════ */
.inst-cta {
  background: var(--carbon-soft); text-align: center;
  padding: 5rem 2rem; position: relative; overflow: hidden;
}
.inst-cta__bg { position: absolute; inset: 0; opacity: .12; overflow: hidden; }
.inst-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.inst-cta::before { content: ''; position: absolute; inset: 0; z-index: 1;}
.inst-cta__inner { position: relative; z-index: 2; }
.inst-cta h2 { color: white; margin-bottom: .8rem; }
.inst-cta p  { color: rgba(255,255,255,.65); font-size: 1.05rem; margin-bottom: 2rem; }
.inst-cta__btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }


/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
@media (max-width: 1024px) {
  .inst-pool__feature     { grid-template-columns: 1fr; gap: 2.5rem; }
  .inst-pool__img-main    { height: 360px; }
  .inst-wellness__grid    { grid-template-columns: 1fr; gap: 2.5rem; }
  .inst-wellness__visual  { order: -1; }
  .inst-wellness__imgs    { height: 280px; grid-template-rows: 1fr; grid-template-columns: 1fr 1fr; }
  .inst-trail__grid       { grid-template-columns: 1fr; gap: 3rem; }
  .inst-trail__imgs       { grid-template-rows: 200px; grid-template-columns: 1fr 1fr; height: auto; }
  .inst-trail__img.span2  { grid-column: 1/3; height: 220px; }
  .inst-rec__grid--2col   { grid-template-columns: 1fr 1fr; max-width: 100%; }
  .inst-kids__grid        { grid-template-columns: 1fr 1fr; }
  .inst-kids__grid > :last-child { grid-column: 1 / -1; max-width: 420px; margin: 0 auto; }
  .inst-gym__grid         { grid-template-columns: 1fr; gap: 2.5rem; }
  .inst-gym__img-main     { height: 300px; }
  .inst-bar__grid         { grid-template-columns: 1fr; gap: 3rem; }
  .inst-bar__visual       { order: -1; }
  .inst-bar__img-main     { height: 300px; }
  .inst-events__grid      { grid-template-columns: 1fr 1fr; }
  .inst-strip__item       { padding: 1.2rem 1rem; }
}

@media (max-width: 768px) {
  .inst-strip__inner      { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .inst-strip__inner::-webkit-scrollbar { display: none; }
  .inst-strip__item       { flex-shrink: 0; min-width: 80px; padding: 1.2rem .9rem; }
  .inst-pool__gallery     { grid-template-columns: 1fr 1fr; }
  .inst-pool__specs       { grid-template-columns: 1fr; }
  .inst-pool__kids        { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .inst-pool__kids-badge  { margin-left: 0; }
  .inst-rec__grid--2col   { grid-template-columns: 1fr; max-width: 420px; }
  .inst-kids__grid        { grid-template-columns: 1fr; }
  .inst-kids__grid > :last-child { grid-column: auto; max-width: 100%; }
  .inst-kids__pool        { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .inst-bar__menu         { grid-template-columns: 1fr; }
  .inst-trail__stats      { grid-template-columns: repeat(3,1fr); }
  .inst-events__grid      { grid-template-columns: 1fr; }
  .inst-wellness__imgs    { grid-template-columns: 1fr; height: 240px; grid-template-rows: 1fr; }
  .inst-wellness__imgs > *:last-child { display: none; }
}

@media (max-width: 480px) {
  .inst-rec__grid--2col   { grid-template-columns: 1fr; max-width: 100%; }
  .inst-trail__stats { grid-template-columns: 1fr; gap: .6rem; }
  .inst-trail__imgs  { grid-template-columns: 1fr; height: auto; }
  .inst-trail__img   { height: 200px !important; }
  .inst-trail__img.span2 { grid-column: 1/2; }
  .inst-cta__btns    { flex-direction: column; align-items: center; }
}
.inst-strip__item.is-active .inst-strip__icon,
.inst-strip__item[aria-current="true"] .inst-strip__icon { color: var(--amber-light); stroke: var(--amber-light); }
.inst-strip__item.is-active .inst-strip__label,
.inst-strip__item[aria-current="true"] .inst-strip__label { color: white; }
