/* ===== BEACHES PAGE ===== */
.beaches-page {
  background:
    radial-gradient(circle at 8% 18%, rgba(144, 213, 255, 0.14), transparent 28%),
    linear-gradient(180deg, #eef6fb 0%, #f8fbff 45%, #eef6fb 100%);
}

.beaches-hero {
  position: relative;
  min-height: 660px;
  overflow: hidden;
  color: #fff;
  background: #082f49;
}

.beaches-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 78% 22%, rgba(144, 213, 255, 0.22), transparent 24%),
    linear-gradient(90deg, rgba(5, 25, 40, 0.96) 0%, rgba(5, 25, 40, 0.86) 38%, rgba(5, 25, 40, 0.48) 74%, rgba(5, 25, 40, 0.20) 100%),
    url('../media/hero.webp') center/cover no-repeat;
  transform: scale(1.02);
}

.beaches-hero .navbar { position: relative; z-index: 3; }

.beaches-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 50px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
  to bottom,
  rgba(238, 246, 251, 0) 0%,
  rgba(238, 246, 251, 0.10) 58%,
  rgba(238, 246, 251, 0.25) 90%,
  rgba(238, 246, 251, 0.33) 94%,
  #eef6fb 100%
);
}

.beaches-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1700px;
  margin-inline: auto;
  padding: 88px 60px 122px;
  display: grid;
  grid-template-columns: minmax(430px, 760px) minmax(330px, 420px);
  justify-content: space-between;
  align-items: center;
  gap: 70px;
}

.beaches-hero-copy h1 {
  max-width: 780px;
  margin-bottom: 26px;
  font-size: clamp(46px, 5.3vw, 70px);
  line-height: 1.03;
  letter-spacing: -1.6px;
  text-shadow: 0 5px 22px rgba(0, 0, 0, 0.56);
}

.beaches-hero-copy p {
  max-width: 670px;
  margin-bottom: 38px;
  font-size: 21px;
  line-height: 1.5;
  text-shadow: 0 5px 22px rgba(0, 0, 0, 0.48);
}

.beaches-actions { width: min(100%, 580px); }

.beaches-page .contact-icon,
.beaches-page .contact-icon svg,
.beaches-page .whatsapp-icon svg {
  width: 20px;
  height: 20px;
}

.beaches-hero-card {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 30px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--text);
  box-shadow: 0 26px 62px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(8px);
}

.beaches-hero-card::after {
  content: "";
  position: absolute;
  right: -54px;
  bottom: -54px;
  width: 158px;
  height: 158px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(8, 145, 178, 0.16), rgba(8, 145, 178, 0));
  pointer-events: none;
}

.beaches-hero-card h2 {
  position: relative;
  margin: 4px 0 14px;
  font-size: 34px;
  line-height: 1.08;
  letter-spacing: -0.6px;
}

.beaches-hero-card p {
  position: relative;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.beaches-card-phone {
  position: relative;
  min-height: 50px;
  margin-top: 22px;
  padding: 13px 18px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 14px 28px rgba(15, 77, 150, 0.28);
}

.beaches-intro,
.beaches-list-section,
.beaches-cta {
  width: min(calc(100% - 64px), 1180px);
  margin-inline: auto;
}

.beaches-intro {
  position: relative;
  z-index: 4;
  margin-top: -54px;
  padding: 34px;
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  gap: 34px;
  align-items: center;
}

.beaches-intro-copy h2,
.beaches-section-head h2,
.beaches-cta h2 {
  margin: 0 0 16px;
  color: var(--text);
  font-size: clamp(32px, 3.3vw, 46px);
  line-height: 1.06;
  letter-spacing: -0.9px;
}

.beaches-intro-copy p,
.beaches-section-head p,
.beaches-cta p {
  color: #475569;
  font-size: 18px;
  line-height: 1.65;
}

.beaches-intro-image {
  overflow: hidden;
  min-height: 300px;
  border-radius: 28px;
  background: #dbeafe;
  box-shadow: 0 18px 34px rgba(15, 23, 42, 0.10);
}

.beaches-intro-image img,
.beach-image-row img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.beaches-list-section {
  margin-top: 78px;
  margin-bottom: 76px;
}

.beaches-section-head {
  max-width: 800px;
  margin: 0 auto 40px;
  text-align: center;
}

.beaches-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
}

.beach-card {
  width: 100%;
  overflow: hidden;
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(226, 232, 240, 0.92);
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.11);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.beach-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 64px rgba(15, 23, 42, 0.15);
}

.beach-image-row {
  width: 100%;
  height: clamp(340px, 43vw, 560px);
  background: #dbeafe;
}

.beach-content-row {
  padding: 34px 42px 38px;
  background:
    radial-gradient(circle at 100% 0%, rgba(14, 116, 144, 0.08), transparent 30%),
    rgba(255, 255, 255, 0.97);
}

.beach-card-no-image .beach-content-row {
  padding: 38px 42px;
  border-top: 5px solid rgba(15, 77, 150, 0.13);
}

.beach-number {
  width: max-content;
  margin-bottom: 16px;
  padding: 7px 13px;
  border-radius: 999px;
  display: inline-flex;
  background: #eaf4fb;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.85px;
}

.beach-content-row h3 {
  max-width: 860px;
  margin-bottom: 13px;
  color: var(--text);
  font-size: clamp(30px, 3.2vw, 46px);
  line-height: 1.04;
  letter-spacing: -0.9px;
}

.beach-content-row p {
  max-width: 900px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}

.beach-meta {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.beach-meta span {
  min-height: 38px;
  padding: 9px 13px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid rgba(226, 232, 240, 0.96);
  color: #0f3f60;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

.beaches-cta {
  margin-bottom: 78px;
  padding: 34px;
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(234, 244, 251, 0.92));
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 34px;
  align-items: center;
}

.beaches-cta-actions {
  width: 100%;
  grid-template-columns: 1fr;
}

@media (max-width: 1200px) {
  .beaches-hero-inner {
    padding: 72px 42px 110px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
    gap: 44px;
  }

  .beach-content-row,
  .beach-card-no-image .beach-content-row {
    padding-left: 34px;
    padding-right: 34px;
  }
}

@media (max-width: 1000px) {
  .beaches-hero { min-height: auto; }

  .beaches-hero-inner {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    padding: 86px 30px 118px;
  }

  .beaches-hero-copy p,
  .beaches-actions {
    margin-left: auto;
    margin-right: auto;
  }

  .beaches-hero-card { max-width: 560px; }

  .beaches-intro,
  .beaches-cta {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .beaches-intro-image { min-height: 320px; }

  .beach-content-row h3,
  .beach-content-row p,
  .beach-meta {
    margin-left: auto;
    margin-right: auto;
  }

  .beach-meta { justify-content: center; }

  .beaches-cta-actions {
    width: min(100%, 430px);
    margin-inline: auto;
  }
}

@media (max-width: 760px) {
  .beaches-hero-inner { padding: 34px 18px 104px; column-gap: 5px; }
  .beaches-hero-copy h1 { font-size: clamp(36px, 8vw, 48px); }
  .beaches-hero-copy p { font-size: 18px; }

  .navbar {row-gap: 24px;}

  .beaches-actions {
    grid-template-columns: 1fr;
    width: min(100%, 430px);
  }

  .beaches-intro,
  .beaches-list-section,
  .beaches-cta {
    width: min(calc(100% - 32px), 620px);
  }

  .beaches-intro,
  .beaches-cta {
    padding: 24px 18px;
    border-radius: 26px;
  }

  .beaches-intro-image { min-height: 260px; border-radius: 24px; }
  .beaches-list { gap: 20px; }
  .beach-card { border-radius: 28px; }
  .beach-image-row { height: clamp(245px, 58vw, 360px); }

  .beach-content-row,
  .beach-card-no-image .beach-content-row {
    padding: 26px 20px 28px;
    text-align: center;
  }

  .beach-number { margin-left: auto; margin-right: auto; }
  .beach-content-row p { font-size: 15.5px; }

  .payment-cards { margin-top: 10px; }
}

@media (max-width: 480px) {
  .beaches-hero-inner { padding: 24px 14px 96px; }

  .beaches-hero-card {
    padding: 22px 18px;
    border-radius: 24px;
  }

  .beaches-hero-card h2,
  .beaches-intro-copy h2,
  .beaches-section-head h2,
  .beaches-cta h2 {
    font-size: clamp(27px, 7vw, 32px);
  }

  .beaches-intro-copy p,
  .beaches-section-head p,
  .beaches-cta p {
    font-size: 15.5px;
    line-height: 1.55;
  }

  .beach-image-row { height: 230px; }
  .beach-content-row h3 { font-size: 24px; }
  .beach-content-row p { font-size: 15px; }
  .beach-meta span { width: 100%; }
}


/* Scoped fix: keep beaches page contact SVG icons uniform and reduce only the first WhatsApp label. */
.beaches-page .beaches-actions .contact-icon,
.beaches-page .beaches-actions .contact-icon svg,
.beaches-page .beaches-cta-actions .contact-icon,
.beaches-page .beaches-cta-actions .contact-icon svg {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
}

.beaches-page .beaches-actions .whatsapp-btn > span:last-child {
  font-size: 14.5px;
}
