.public-home-gallery {
  padding: 76px 0 82px;
  background: #f4f8fa;
  color: #0b405c;
}

.public-home-gallery-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 30px;
}

.public-home-gallery-heading .public-eyebrow { color: #087fa6; }
.public-home-gallery-heading h2 {
  margin: 7px 0 8px;
  color: #083d58;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3.7vw, 47px);
  line-height: 1.12;
}
.public-home-gallery-heading p { max-width: 650px; margin: 0; color: #647b89; font-size: 14px; line-height: 1.65; }
.public-home-gallery-heading .public-text-link { flex: 0 0 auto; color: #0b668d; }

.public-gallery-carousel {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  padding-bottom: 38px;
}
.public-gallery-carousel-viewport {
  overflow: hidden;
  border: 1px solid rgba(8,61,88,.1);
  border-radius: 24px;
  background: #082f45;
  box-shadow: 0 24px 60px rgba(15,51,70,.14);
}
.public-gallery-carousel-track { display: flex; transition: transform .65s cubic-bezier(.22,.61,.36,1); }
.public-gallery-slide {
  position: relative;
  min-width: 100%;
  height: clamp(380px, 39vw, 520px);
  margin: 0;
  overflow: hidden;
}
.public-gallery-slide::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(3,27,41,.88) 0, rgba(3,27,41,.38) 48%, rgba(3,27,41,.05) 78%);
}
.public-gallery-slide img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.002);
}
.public-gallery-slide figcaption {
  position: absolute;
  left: clamp(30px, 5vw, 70px);
  bottom: clamp(42px, 5vw, 66px);
  z-index: 2;
  max-width: min(540px, 65%);
  display: flex;
  align-items: flex-start;
  gap: 18px;
}
.public-gallery-slide figcaption > span {
  padding-top: 5px;
  color: #66cbe7;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}
.public-gallery-slide strong { display: block; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(24px, 3vw, 42px); line-height: 1.15; }
.public-gallery-slide p { margin: 9px 0 0; color: #d7e4eb; font-size: 13px; line-height: 1.6; }

.public-gallery-control {
  position: absolute;
  bottom: 58px;
  z-index: 3;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(5,44,64,.7);
  color: #fff;
  transform: none;
  backdrop-filter: blur(8px);
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.public-gallery-control:hover { background: #fff; color: #0b405c; transform: scale(1.05); }
.public-gallery-control.previous { right: 76px; }
.public-gallery-control.next { right: 18px; }

.public-gallery-status {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px 4px 0;
  color: #5d7482;
}
.public-gallery-counter {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
}
.public-gallery-counter [data-gallery-current] { color: #087fa6; }
.public-gallery-counter-rule { width: 22px; height: 1px; background: #b8c9d1; }
.public-gallery-progress { flex: 1 1 auto; height: 2px; overflow: hidden; border-radius: 999px; background: #dbe6eb; }
.public-gallery-progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0b668d, #48b8d2);
  transition: width .55s cubic-bezier(.22,.61,.36,1);
}

@media (max-width: 850px) {
  .public-home-gallery { padding: 60px 0 64px; }
  .public-home-gallery-heading { align-items: flex-start; flex-direction: column; }
  .public-gallery-slide { height: clamp(360px, 62vw, 460px); }
  .public-gallery-slide figcaption { max-width: 72%; }
}

@media (max-width: 560px) {
  .public-home-gallery { padding: 50px 0 54px; }
  .public-home-gallery-heading { margin-bottom: 22px; }
  .public-gallery-carousel-viewport { border-radius: 16px; }
  .public-gallery-slide { height: min(118vw, 520px); }
  .public-gallery-slide::after { background: linear-gradient(0deg, rgba(3,27,41,.9), rgba(3,27,41,.04) 72%); }
  .public-gallery-slide figcaption { right: 25px; bottom: 78px; left: 25px; max-width: none; gap: 12px; }
  .public-gallery-slide strong { font-size: 25px; }
  .public-gallery-slide p { font-size: 12px; }
  .public-gallery-control { bottom: 58px; width: 40px; height: 40px; }
  .public-gallery-control.previous { right: 62px; }
  .public-gallery-control.next { right: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .public-gallery-carousel-track { transition: none; }
}
