/* =========================================================
   Estilo 4 — COSTA MEDITERRÁNEA
   Luminoso, azul y arena, esquinas muy redondeadas.
   ========================================================= */

:root {
  --ip-bg: #ffffff;
  --ip-bg-alt: #f0f9ff;
  --ip-text: #0f2a3d;
  --ip-muted: #64809a;
  --ip-line: #dbeafe;
  --ip-card: #ffffff;
  --ip-shadow: 0 20px 50px rgba(14, 165, 233, .14);
  --ip-wrap: 1260px;
  --ip-header-h: 88px;
}

body.ip-style-costa {
  background:
    radial-gradient(800px 400px at 100% 0%, rgba(var(--ip-secondary-rgb), .1), transparent 60%),
    var(--ip-bg);
}
.ip-style-costa .ip-h1, .ip-style-costa .ip-h2, .ip-style-costa .ip-h3 { font-weight: 700; letter-spacing: -.02em; }
.ip-style-costa .ip-eyebrow {
  background: var(--ip-primary-xl); color: var(--ip-primary-d);
  padding: 6px 14px; border-radius: 100px; letter-spacing: .1em;
}

/* ---------------------------------------------- Cabecera centrada */
.ip-style-costa .ip-header { background: rgba(255, 255, 255, .92); backdrop-filter: blur(14px); border-bottom: 0; }
.ip-style-costa.ip-scrolled .ip-header { box-shadow: 0 6px 30px rgba(14, 165, 233, .12); }
.ip-style-costa .ip-header__in { flex-direction: column; gap: 8px; padding: 16px 0 12px; min-height: 0; }
.ip-style-costa .ip-brand { margin: 0; }
.ip-style-costa .ip-brand__mark { border-radius: 16px; background: linear-gradient(135deg, var(--ip-primary), var(--ip-secondary)); }
.ip-style-costa .ip-brand__text { align-items: center; text-align: center; }
.ip-style-costa .ip-brand__text strong { font-size: 21px; font-weight: 700; }
.ip-style-costa .ip-nav { gap: 18px; }
.ip-style-costa .ip-nav > ul { gap: 8px; }
.ip-style-costa .ip-nav > ul a { padding: 8px 16px; border-radius: 100px; font-size: 14.5px; }
.ip-style-costa .ip-nav > ul a::after { display: none; }
.ip-style-costa .ip-nav > ul a:hover { background: var(--ip-primary-xl); color: var(--ip-primary-d); }
.ip-style-costa .ip-nav__cta { position: absolute; right: 24px; top: 26px; }
.ip-style-costa .ip-nav__cta .ip-btn--ghost { display: none; }
.ip-style-costa .ip-btn { border-radius: 100px; font-weight: 700; }
.ip-style-costa .ip-btn--primary { box-shadow: 0 10px 26px rgba(var(--ip-primary-rgb), .32); }
.ip-style-costa .ip-btn--ghost { border-color: var(--ip-primary); color: var(--ip-primary-d); background: var(--ip-primary-xl); }

/* ---------------------------------------------- Hero partido */
.ip-style-costa .ip-hero { background: var(--ip-bg-alt); padding: 48px 0 60px; }
.ip-style-costa .ip-hero__media {
  position: absolute; left: 52%; right: 24px; top: 48px; bottom: 60px;
  border-radius: 32px; box-shadow: 0 30px 70px rgba(14, 165, 233, .24);
}
.ip-style-costa .ip-hero__overlay { display: none; }
.ip-style-costa .ip-hero__in { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 40px 24px; }
.ip-style-costa .ip-hero__text { grid-column: 1; }
.ip-style-costa .ip-hero__title { font-size: clamp(34px, 4.4vw, 54px); }
.ip-style-costa .ip-hero__sub { color: var(--ip-muted); }
.ip-style-costa .ip-hero__search { grid-column: 1 / -1; }
.ip-style-costa .ip-hero__meta { color: var(--ip-muted); }

.ip-style-costa .ip-buscador {
  border-radius: 28px; border: 0; padding: 24px; box-shadow: 0 22px 60px rgba(14, 165, 233, .18);
}
.ip-style-costa .ip-field input, .ip-style-costa .ip-field select {
  border-radius: 100px; border-color: var(--ip-line); background: var(--ip-bg-alt); padding: 13px 18px;
}
.ip-style-costa .ip-field__ico input { padding-left: 44px !important; }
.ip-style-costa .ip-field select { padding-right: 38px; }
.ip-style-costa .ip-buscador__submit, .ip-style-costa .ip-buscador__more { border-radius: 100px; }
.ip-style-costa .ip-buscador__submit { box-shadow: 0 10px 26px rgba(var(--ip-primary-rgb), .3); }

/* ---------------------------------------------- Accesos */
.ip-style-costa .ip-quick { margin-top: 40px; }
.ip-style-costa .ip-quick__item { border-radius: 24px; border-color: var(--ip-line); }
.ip-style-costa .ip-quick__ico { border-radius: 16px; }

/* ---------------------------------------------- Tarjetas suaves */
.ip-style-costa .ip-card {
  border-radius: 26px; border-color: transparent; box-shadow: 0 10px 30px rgba(15, 42, 61, .08); padding: 10px;
}
.ip-style-costa .ip-card:hover { box-shadow: 0 26px 60px rgba(14, 165, 233, .22); }
.ip-style-costa .ip-card__media { border-radius: 20px; padding-top: 70%; }
.ip-style-costa .ip-card__body { padding: 18px 12px 12px; }
.ip-style-costa .ip-card__badges { top: 16px; left: 16px; }
.ip-style-costa .ip-badge { border-radius: 100px; font-weight: 700; }
.ip-style-costa .ip-card__title { font-weight: 700; }
.ip-style-costa .ip-card__price2 { color: var(--ip-primary-d); }
.ip-style-costa .ip-card__feats li {
  background: var(--ip-bg-alt); padding: 5px 11px; border-radius: 100px; color: var(--ip-muted);
}
.ip-style-costa .ip-card__foot { border-top-color: var(--ip-line); }
.ip-style-costa .ip-card--lista { padding: 12px; }
.ip-style-costa .ip-card--lista .ip-card__media { border-radius: 20px; }

/* ---------------------------------------------- Bloques */
.ip-style-costa .ip-section { padding: 86px 0; }
.ip-style-costa .ip-stats {
  background: linear-gradient(120deg, var(--ip-primary), var(--ip-primary-d));
  border-radius: 36px; margin: 0 24px; padding: 56px 0;
}
.ip-style-costa .ip-stat strong { font-weight: 700; }
.ip-style-costa .ip-servicios { background: var(--ip-bg-alt); }
.ip-style-costa .ip-servicio { border-radius: 26px; border-color: transparent; box-shadow: 0 10px 30px rgba(15, 42, 61, .06); }
.ip-style-costa .ip-servicio__ico { border-radius: 18px; background: linear-gradient(135deg, var(--ip-primary), var(--ip-secondary)); color: #fff; }
.ip-style-costa .ip-about__media img { border-radius: 32px; }
.ip-style-costa .ip-cta { background: var(--ip-bg-alt); }
.ip-style-costa .ip-cta__form, .ip-style-costa .ip-contacto__form { border-radius: 30px; border-color: transparent; }
.ip-style-costa .ip-form input, .ip-style-costa .ip-form textarea { border-radius: 18px; background: var(--ip-bg-alt); border-color: var(--ip-line); }
.ip-style-costa .ip-pasos li { border-radius: 24px; border-color: var(--ip-line); }
.ip-style-costa .ip-paso__n { background: linear-gradient(135deg, var(--ip-primary), var(--ip-secondary)); }
.ip-style-costa .ip-infocard { border-radius: 24px; border-color: var(--ip-line); }
.ip-style-costa .ip-infocard__ico { border-radius: 16px; }
.ip-style-costa .ip-horario { border-radius: 24px; }

/* ---------------------------------------------- Ficha */
.ip-style-costa .ip-galeria__grid { border-radius: 30px; }
.ip-style-costa .ip-galeria__more { border-radius: 100px; }
.ip-style-costa .ip-keyfact { border-radius: 22px; border-color: transparent; background: var(--ip-bg-alt); }
.ip-style-costa .ip-keyfact__ico { color: var(--ip-primary); }
.ip-style-costa .ip-contactbox { border-radius: 28px; border-color: transparent; }
.ip-style-costa .ip-asidebox { border-radius: 24px; }
.ip-style-costa .ip-hipoteca { border-radius: 28px; }
.ip-style-costa .ip-hipoteca__result { border-radius: 22px; border-color: transparent; background: var(--ip-primary-xl); }
.ip-style-costa .ip-map { border-radius: 26px; border-color: transparent; }
.ip-style-costa .ip-post { border-radius: 26px; border-color: transparent; box-shadow: 0 10px 30px rgba(15, 42, 61, .07); }
.ip-style-costa .ip-post__media { border-radius: 26px 26px 0 0; }
.ip-style-costa .ip-blogcat { border-color: var(--ip-line); }
.ip-style-costa .ip-pager__p, .ip-style-costa .ip-pager__nav { border-radius: 100px; border-color: var(--ip-line); }
.ip-style-costa .ip-empty__ico { background: var(--ip-primary-xl); }

/* ---------------------------------------------- Pie */
.ip-style-costa .ip-footer {
  background: linear-gradient(150deg, #0f2a3d, #123a52); border-radius: 40px 40px 0 0; margin-top: 40px;
}
.ip-style-costa .ip-footer h4 { color: var(--ip-secondary); }

@media (max-width: 1100px) {
  .ip-style-costa .ip-hero__media { position: relative; left: auto; right: auto; top: auto; bottom: auto; height: 300px; margin-top: 24px; }
  .ip-style-costa .ip-hero__in { grid-template-columns: 1fr; }
  .ip-style-costa .ip-nav__cta { position: static; }
}
@media (max-width: 860px) {
  .ip-style-costa .ip-header__in { flex-direction: row; padding: 12px 0; }
  .ip-style-costa .ip-brand { margin-right: auto; }
  .ip-style-costa .ip-brand__text { align-items: flex-start; text-align: left; }
  .ip-style-costa .ip-stats { margin: 0 16px; border-radius: 28px; }
}
