.public-page :is(
  .page-hero,
  .municipality-page-hero,
  .comunidad-hero-section,
  .forum-hero-banner,
  .police-hero-section,
  .journalists-directory-hero,
  .writer-profile-hero,
  .about-hero,
  .cv-builder-hero,
  .sports-hero
) {
  position: relative;
  isolation: isolate;
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: clamp(245px, 24vw, 280px);
  min-height: clamp(245px, 24vw, 280px);
  padding-block: 0 !important;
  overflow: hidden;
  border: 0 !important;
  border-bottom: 4px solid transparent !important;
  border-image: linear-gradient(90deg, #0875d1 0 34%, #128257 34% 59%, #ca3346 59% 92%, #b89043 92% 100%) 1 !important;
  background:
    radial-gradient(circle at 83% 12%, rgba(8, 117, 209, .28), transparent 31%),
    radial-gradient(circle at 70% 115%, rgba(18, 130, 87, .22), transparent 34%),
    radial-gradient(circle at 96% 92%, rgba(202, 51, 70, .14), transparent 27%),
    linear-gradient(125deg, #031329 0%, #082d50 62%, #061e37 100%) !important;
  color: #fff !important;
  box-shadow: 0 16px 34px rgba(3, 18, 38, .18) !important;
}

.public-page :is(
  .page-hero,
  .municipality-page-hero,
  .comunidad-hero-section,
  .forum-hero-banner,
  .police-hero-section,
  .journalists-directory-hero,
  .writer-profile-hero,
  .about-hero,
  .cv-builder-hero,
  .sports-hero
) > .shell {
  align-self: center;
  width: min(var(--container, 1180px), calc(100% - 40px));
}

.public-page :is(
  .page-hero,
  .municipality-page-hero,
  .comunidad-hero-section,
  .forum-hero-banner,
  .police-hero-section,
  .journalists-directory-hero,
  .writer-profile-hero,
  .about-hero,
  .cv-builder-hero,
  .sports-hero
) :is(h1, h2) {
  max-width: 22ch;
  color: #fff !important;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1;
  letter-spacing: 0;
}

.public-page :is(
  .page-hero,
  .municipality-page-hero,
  .comunidad-hero-section,
  .forum-hero-banner,
  .police-hero-section,
  .journalists-directory-hero,
  .writer-profile-hero,
  .about-hero,
  .cv-builder-hero,
  .sports-hero
) :is(p, small) {
  color: #d9e5ef !important;
}

.public-page .page-hero > .shell {
  width: min(700px, calc(100% - 40px));
  margin-left: max(20px, calc((100% - var(--container, 1180px)) / 2));
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 8px;
  background: rgba(5, 21, 44, .58);
  box-shadow: 0 24px 55px rgba(0, 0, 0, .22);
  backdrop-filter: blur(14px) saturate(112%);
  -webkit-backdrop-filter: blur(14px) saturate(112%);
}

.public-page .page-hero h1 {
  margin: .35rem 0 .45rem;
}

.public-page .page-hero p {
  margin: 0;
  font-size: clamp(.82rem, 1.2vw, .95rem);
  line-height: 1.45;
}

.public-page .page-hero :is(.kicker, .eyebrow) {
  color: #8bd9b9 !important;
  letter-spacing: 0;
}

.public-page .sports-hero {
  border-bottom: 0 !important;
  border-image: none !important;
}

.public-page .police-hero-section {
  border-bottom: 0 !important;
  border-image: none !important;
}

.public-page .comunidad-hero-section {
  border-bottom: 0 !important;
  border-image: none !important;
}

.internal-hero-contact {
  position: absolute;
  right: max(14px, calc((100% - var(--container, 1180px)) / 2));
  bottom: 0;
  z-index: 12;
  display: inline-flex;
  min-height: 30px;
  max-width: min(620px, calc(100% - 28px));
  align-items: center;
  gap: .48rem;
  padding: .38rem .55rem .38rem .7rem;
  border: 1px solid rgba(255, 255, 255, .3);
  border-left: 3px solid #128257;
  border-radius: 6px 6px 0 0;
  background: rgba(3, 17, 36, .88);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .24);
  color: #eef6fb !important;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  backdrop-filter: blur(10px) saturate(115%);
  -webkit-backdrop-filter: blur(10px) saturate(115%);
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.internal-hero-contact:hover,
.internal-hero-contact:focus-visible {
  border-color: rgba(139, 217, 185, .8);
  background: rgba(4, 29, 51, .96);
  transform: translateY(-2px);
}

.internal-hero-contact strong {
  flex: 0 0 auto;
  color: #8bd9b9 !important;
  font-size: .7rem;
  white-space: nowrap;
}

.internal-hero-contact b {
  display: grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  border-radius: 4px;
  background: #128257;
  color: #fff !important;
  font-size: .7rem;
}

.internal-hero-contact-short {
  display: none;
}

@media (max-width: 900px) {
  .public-page .journalists-directory-hero .journalists-hero-grid {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.25rem;
  }

  .public-page .journalists-directory-hero .journalists-hero-stats {
    width: min(310px, 36vw);
  }
}

@media (max-width: 720px) {
  .public-page :is(
    .page-hero,
    .municipality-page-hero,
    .comunidad-hero-section,
    .forum-hero-banner,
    .police-hero-section,
    .journalists-directory-hero,
    .writer-profile-hero,
    .about-hero,
    .cv-builder-hero,
    .sports-hero
  ) {
    height: 280px;
    min-height: 280px;
  }

  .public-page :is(
    .page-hero,
    .municipality-page-hero,
    .comunidad-hero-section,
    .forum-hero-banner,
    .police-hero-section,
    .journalists-directory-hero,
    .writer-profile-hero,
    .about-hero,
    .cv-builder-hero,
    .sports-hero
  ) > .shell {
    width: calc(100% - 28px);
  }

  .public-page :is(
    .page-hero,
    .municipality-page-hero,
    .comunidad-hero-section,
    .forum-hero-banner,
    .police-hero-section,
    .journalists-directory-hero,
    .writer-profile-hero,
    .about-hero,
    .cv-builder-hero,
    .sports-hero
  ) :is(h1, h2) {
    font-size: clamp(2rem, 10vw, 2.65rem);
  }

  .public-page .page-hero > .shell {
    width: calc(100% - 28px);
    margin-inline: 14px;
    padding: .9rem 1rem;
    background: rgba(4, 19, 40, .7);
  }

  .public-page .journalists-directory-hero .journalists-hero-grid {
    display: block;
  }

  .public-page .journalists-directory-hero .journalists-hero-stats,
  .public-page .police-hero-section .jefatura-logo-container {
    display: none;
  }

  .public-page .forum-hero-banner .forum-hero-inner {
    gap: .75rem;
  }

  .public-page .forum-hero-banner .forum-hero-subtitle,
  .public-page .comunidad-hero-section .comunidad-hero-subtitle {
    font-size: .8rem;
    line-height: 1.4;
  }

  .internal-hero-contact {
    right: 14px;
    bottom: 0;
    min-height: 28px;
    padding: .32rem .42rem .32rem .58rem;
    font-size: .63rem;
  }

  .internal-hero-contact-long {
    display: none;
  }

  .internal-hero-contact-short {
    display: inline;
  }
}
