:root {
  --header-height: min(98px, 18.6vw);
  --section-gap: min(100px, 21.3vw);
  --content-title-gap: min(48px, 12.8vw);
  --title-separator-gap: min(40px, 10.6vw);
  --container-size: min(24px, 3.125vw);
}
@media (width >= 768px) {
  :root {
    --header-height: min(110px, 12.7vw);
    --section-gap: 13vw;
    --content-title-gap: 6.25vw;
    --title-separator-gap: 5.2vw;
    --container-size: min(40px, 3.125vw);
  }
}
@media (width >= 1025px) {
  :root {
    --header-height: max(64px, 5vw);
    --section-gap: 10.4vw;
    --content-title-gap: 6.25vw;
    --title-separator-gap: 2.0833vw;
    --container-size: 2vw;
  }
}

.about {
  padding-bottom: var(--section-gap);
  background-color: #21332b;
}
@media screen and (width < 1025px) {
  .about {
    --title-separator-gap: min(30.72px, 6.4vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .about {
    --section-gap: 19.53125vw;
    --title-separator-gap: 3.125vw;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .about .section-separator__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width < 1025px) {
  .about .panel {
    border-radius: min(30.72px, 6.4vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .about .panel {
    border-radius: 3.125vw;
  }
}
@media screen and (width < 1025px) {
  .about .primary-button,
  .about .outline-button {
    height: min(69.12px, 14.4vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .about .primary-button,
  .about .outline-button {
    height: 7.8125vw;
  }
}
@media screen and (width >= 1025px) {
  .about .primary-button,
  .about .outline-button {
    height: 3.125vw;
  }
}

@media screen and (width >= 768px) {
  .ab-br-mobile {
    display: none;
  }
}

.ab-br-tablet {
  display: none;
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-br-tablet {
    display: inline;
  }
}

.ab-hide-mobile {
  display: none;
}
@media screen and (width >= 768px) {
  .ab-hide-mobile {
    display: inline;
  }
}

/* ---------- layered photo (sky behind, buildings in front) ---------- */
.ab-photo__sky, .ab-photo__front {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  will-change: transform;
}
@media screen and (width < 1025px) {
  .ab-photo__sky, .ab-photo__front {
    inset: auto;
    max-width: none;
    will-change: auto;
  }
}
.ab-photo__sky {
  z-index: 0;
}
@media screen and (width < 1025px) {
  .ab-photo__sky {
    -o-object-position: left top;
       object-position: left top;
  }
}
.ab-photo__front {
  z-index: 3;
}
@media screen and (width < 1025px) {
  .ab-photo__front {
    -o-object-position: left bottom;
       object-position: left bottom;
  }
}
.ab-photo__glow {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, #e59b41 0%, #dfac65 52.88%, #e59b41 100%);
  border-radius: 50%;
  filter: blur(min(345.6px, 72vw));
  transform: translate(-50%, -50%) rotate(var(--glow-tilt));
}
@media screen and (width >= 768px) {
  .ab-photo__glow {
    filter: blur(35.15625vw);
  }
}
@media screen and (width >= 1025px) {
  .ab-photo__glow {
    filter: blur(14.0625vw);
  }
}

/* ---------- hero ---------- */
@media screen and (width >= 1025px) {
  .ab-hero .page-hero__img img {
    -o-object-position: 50% 75.25%;
       object-position: 50% 75.25%;
  }
}
@media screen and (width >= 1025px) {
  .ab-hero .page-hero__img::before {
    top: var(--header-height);
  }
}
.ab-hero .page-crumbs__link {
  text-decoration: none;
}
@media screen and (width >= 768px) {
  .ab-hero .page-crumbs__link {
    text-decoration: underline;
  }
}

/* ---------- intro ---------- */
.ab-intro {
  position: relative;
  z-index: 1;
  margin-top: max(-20.48px, -4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-intro {
    margin-top: -3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-intro {
    margin-top: -2.0833333333vw;
  }
}
@media screen and (width < 1025px) {
  .ab-intro .panel {
    gap: min(61.44px, 12.8vw);
    padding: min(61.44px, 12.8vw) min(20.48px, 4.2666666667vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-intro .panel {
    gap: 6.25vw;
    padding: 7.8125vw 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-intro .panel {
    min-height: 44.7916666667vw;
  }
}
@media screen and (width < 1025px) {
  .ab-intro .panel__head {
    gap: min(15.36px, 3.2vw);
    text-align: center;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-intro .panel__head {
    gap: 3.6458333333vw;
  }
}
@media screen and (width >= 768px) {
  .ab-intro .panel__title {
    max-width: 83.0729166667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-intro .panel__title {
    max-width: none;
  }
}
.ab-intro .panel__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-intro .panel__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-intro .panel__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-intro .panel__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-intro .panel__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-intro .panel__text {
    font-size: max(14px, 0.9375vw);
  }
}

.ab-plans {
  display: flex;
  flex-direction: column;
  gap: min(51.2px, 10.6666666667vw);
}
@media screen and (width >= 768px) {
  .ab-plans {
    gap: 5.2083333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plans {
    display: block;
  }
}
.ab-plans__body.swiper {
  width: 100%;
  overflow: visible;
}
@media screen and (width >= 1025px) {
  .ab-plans .swiper-wrapper {
    gap: 1.0416666667vw;
  }
}
.ab-plans__nav {
  display: flex;
  gap: min(10.24px, 2.1333333333vw);
  justify-content: center;
}
@media screen and (width >= 768px) {
  .ab-plans__nav {
    gap: 1.0416666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plans__nav {
    display: none;
  }
}

.ab-plan-card {
  display: flex;
  flex-direction: column;
  gap: min(30.72px, 6.4vw);
  align-items: center;
  width: min(332.8px, 69.3333333333vw);
  height: min(384px, 80vw);
  padding: min(30.72px, 6.4vw) min(20.48px, 4.2666666667vw);
  background-color: rgba(35, 52, 45, 0.4);
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-plan-card {
    gap: 3.125vw;
    width: 39.0625vw;
    height: 46.875vw;
    padding: 5.2083333333vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plan-card {
    flex: 1;
    gap: 2.0833333333vw;
    width: auto;
    height: auto;
    padding: 2.0833333333vw;
    border-radius: 1.25vw;
  }
}
.ab-plan-card__img {
  flex: 1;
  width: 100%;
  min-height: 0;
}
@media screen and (width >= 1025px) {
  .ab-plan-card__img {
    flex: none;
    height: 13.125vw;
  }
}
.ab-plan-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.ab-plan-card__info {
  display: flex;
  flex-direction: column;
  gap: min(5.12px, 1.0666666667vw);
  align-items: center;
  width: 100%;
  text-align: center;
}
@media screen and (width >= 768px) {
  .ab-plan-card__info {
    gap: 0.5208333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plan-card__info {
    gap: 0.625vw;
  }
}
.ab-plan-card__label {
  font-family: "Actay Wide", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 700;
  line-height: 140%;
  color: #f6f6f6;
  letter-spacing: -0.06em;
}
@media screen and (width >= 768px) {
  .ab-plan-card__label {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plan-card__label {
    font-size: max(14px, 0.9375vw);
  }
}
@media screen and (width < 1025px) {
  .ab-plan-card__label {
    color: #ccc;
  }
}
.ab-plan-card__value {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-plan-card__value {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plan-card__value {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-plan-card__value {
  font-size: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-plan-card__value {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-plan-card__value {
    font-size: max(24px, 1.9791666667vw);
  }
}

/* ---------- shared section head ---------- */
.ab-head {
  display: flex;
  flex-direction: column;
  gap: var(--title-separator-gap);
}
.ab-head__title {
  font-family: "Angst", sans-serif;
  font-size: min(72px, 13.8666666667vw);
  font-weight: 400;
  line-height: 90%;
  color: #f6f6f6;
  letter-spacing: normal;
}
@media screen and (width >= 768px) {
  .ab-head__title {
    font-size: 9.375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-head__title {
    font-size: max(54px, 5vw);
  }
}
.ab-head__title {
  font-size: min(61.44px, 12.8vw);
}
@media screen and (width >= 768px) {
  .ab-head__title {
    font-size: 9.375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-head__title {
    font-size: max(54px, 5vw);
  }
}
.ab-head__title {
  text-transform: uppercase;
}
.ab-head--row .ab-head__row {
  display: flex;
  flex-direction: column;
  gap: min(24px, 6.4vw);
  align-items: flex-start;
}
@media screen and (width >= 1025px) {
  .ab-head--row .ab-head__row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
@media screen and (width < 1025px) {
  .ab-head__btn {
    display: none;
  }
}

/* ---------- values ---------- */
.ab-values {
  position: relative;
  z-index: 0;
  padding-top: var(--section-gap);
  background-color: #21332b;
}
.ab-values__img {
  position: absolute;
  top: var(--section-gap);
  right: 0;
  left: 0;
  z-index: 0;
  height: min(672px, 140vw);
  overflow: hidden;
}
@media screen and (width >= 768px) {
  .ab-values__img {
    height: 94.7916666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-values__img {
    top: calc(var(--section-gap) + 0.1041666667vw);
    height: 56.6666666667vw;
  }
}
.ab-values__img::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 5;
  height: min(332.8px, 69.3333333333vw);
  content: "";
  background: linear-gradient(180deg, #21332b 0%, rgba(33, 51, 43, 0.9) 40%, rgba(33, 51, 43, 0) 100%);
}
@media screen and (width >= 768px) {
  .ab-values__img::before {
    height: 60.6770833333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-values__img::before {
    z-index: 2;
    height: 24.2708333333vw;
  }
}
.ab-values__img::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 4;
  height: min(204.8px, 42.6666666667vw);
  content: "";
  background: linear-gradient(180deg, rgba(33, 51, 43, 0) 0%, rgba(33, 51, 43, 0.9) 59.615%, #21332b 100%);
}
@media screen and (width >= 768px) {
  .ab-values__img::after {
    height: 20.8333333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-values__img::after {
    height: 12.5vw;
    background: linear-gradient(180deg, rgba(33, 51, 43, 0) 0%, rgba(33, 51, 43, 0.5) 33%, rgba(33, 51, 43, 0.87) 65%, #21332b 100%);
  }
}
@media screen and (width < 1025px) {
  .ab-values__img .ab-photo__sky {
    min-width: calc(100% + min(242.3552px, 50.4906666667vw));
    top: max(-178.4832px, -37.184vw);
    left: max(-242.3552px, -50.4906666667vw);
    width: min(964.6592px, 200.9706666667vw);
    height: min(672px, 140vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-values__img .ab-photo__sky {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-values__img .ab-photo__sky {
    top: -25.39453125vw;
    left: -17.9739583333vw;
    width: 136.0768229167vw;
    height: 94.7916666667vw;
  }
}
@media screen and (width < 1025px) {
  .ab-values__img .ab-photo__front {
    min-width: calc(100% + min(220.3264px, 45.9013333333vw));
    top: min(53.76px, 11.2vw);
    left: max(-220.3264px, -45.9013333333vw);
    width: min(1090.6624px, 227.2213333333vw);
    height: min(618.24px, 128.8vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-values__img .ab-photo__front {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-values__img .ab-photo__front {
    top: 11.328125vw;
    left: -15.41015625vw;
    width: 147.3515625vw;
    height: 83.4635416667vw;
  }
}
.ab-values__img .ab-photo__glow {
  --glow-tilt: 5.9deg;
  top: min(422.5536px, 88.032vw);
  left: min(340.8512px, 71.0106666667vw);
  width: min(379.904px, 79.1466666667vw);
  height: min(141.184px, 29.4133333333vw);
}
@media screen and (width >= 768px) {
  .ab-values__img .ab-photo__glow {
    top: 68.390625vw;
    left: 81.0299479167vw;
    width: 64.62109375vw;
    height: 24.0143229167vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-values__img .ab-photo__glow {
    top: 39.4677083333vw;
    left: 73.3651041667vw;
    width: 46.25vw;
    height: 17.1875vw;
  }
}
.ab-values .container {
  position: relative;
  z-index: 1;
}
.ab-values__list {
  display: flex;
  flex-direction: column;
  gap: min(20.48px, 4.2666666667vw);
  margin-top: min(540.16px, 112.5333333333vw);
}
@media screen and (width >= 768px) {
  .ab-values__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.0833333333vw;
    margin-top: 75.390625vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-values__list {
    display: flex;
    flex-direction: row;
    gap: 1.0416666667vw;
    margin-top: 47.0833333333vw;
  }
}

.ab-value-card {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: min(20.48px, 4.2666666667vw);
  align-items: center;
  min-height: min(277.76px, 57.8666666667vw);
  padding: min(51.2px, 10.6666666667vw) min(20.48px, 4.2666666667vw);
  text-align: center;
  background-color: #35463d;
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(30.72px, 6.4vw);
  backdrop-filter: blur(20px);
}
@media screen and (width >= 768px) {
  .ab-value-card {
    gap: 3.125vw;
    min-height: 31.5104166667vw;
    padding: 5.2083333333vw 3.125vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-value-card {
    gap: 1.25vw;
    min-height: 0;
    padding: 3.125vw 2.0833333333vw;
    border-radius: 1.25vw;
  }
}
@media screen and (width < 1025px) {
  .ab-value-card:nth-child(2) {
    order: 4;
  }
  .ab-value-card:nth-child(3) {
    order: 3;
  }
  .ab-value-card:nth-child(4) {
    order: 2;
  }
}
.ab-value-card__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(20px, 4.2666666667vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-value-card__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-value-card__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-value-card__title {
  font-size: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-value-card__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-value-card__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-value-card__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-value-card__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-value-card__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-value-card__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-value-card__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-value-card__text {
    font-size: max(14px, 0.9375vw);
  }
}

/* ---------- sticky feature stack ---------- */
.ab-space {
  padding: var(--section-gap) 0;
  background-color: #21332b;
}
.ab-space .container {
  display: flex;
  flex-direction: column;
  gap: var(--content-title-gap);
}

.ab-stack {
  display: flex;
  flex-direction: column;
}

.ab-stack-card {
  position: sticky;
  top: calc(var(--header-height) + min(20.48px, 4.2666666667vw));
  display: flex;
  flex-direction: column;
  gap: min(30.72px, 6.4vw);
  padding: min(20.48px, 4.2666666667vw) min(20.48px, 4.2666666667vw) min(30.72px, 6.4vw);
  margin-top: min(20.48px, 4.2666666667vw);
  overflow: hidden;
  background-color: #21332b;
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(30.72px, 6.4vw);
  transform: translateZ(0);
  will-change: transform, opacity;
}
.ab-stack-card:first-child {
  margin-top: 0;
}
@media screen and (width >= 768px) {
  .ab-stack-card {
    top: calc(var(--header-height) + 3.125vw);
    gap: 3.125vw;
    padding: 3.125vw 3.125vw 5.2083333333vw;
    margin-top: 2.6041666667vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card {
    top: calc(var(--header-height) + 1.0416666667vw);
    flex-direction: row;
    gap: 4.6875vw;
    align-items: center;
    padding: 1.0416666667vw 1.0416666667vw 1.0416666667vw 4.6875vw;
    margin-top: 1.0416666667vw;
    background-color: #23342d;
    border-radius: 1.25vw;
  }
}
.ab-stack-card::after {
  position: absolute;
  top: max(-2.56px, -0.5333333333vw);
  left: max(-2.56px, -0.5333333333vw);
  z-index: 2;
  width: min(445.44px, 92.8vw);
  height: min(445.44px, 92.8vw);
  pointer-events: none;
  content: "";
  background-color: rgba(228, 195, 149, 0.1);
  border-radius: 50%;
  filter: blur(min(100.8px, 21vw));
  transform: translate(-50%, -50%);
}
@media screen and (width >= 768px) {
  .ab-stack-card::after {
    top: -0.2604166667vw;
    left: -0.2604166667vw;
    width: 90.625vw;
    height: 90.625vw;
    filter: blur(20.5078125vw);
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card::after {
    display: none;
  }
}
.ab-stack-card__decor {
  position: absolute;
  top: max(-2.56px, -0.5333333333vw);
  left: max(-2.56px, -0.5333333333vw);
  width: min(440.32px, 91.7333333333vw);
  height: min(629.76px, 131.2vw);
  pointer-events: none;
}
@media screen and (width >= 768px) {
  .ab-stack-card__decor {
    top: -0.2604166667vw;
    left: -0.1953125vw;
    width: 93.6197916667vw;
    height: 82.421875vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__decor {
    top: 0;
    left: 0;
    width: 47.4479166667vw;
    height: 100%;
  }
}
.ab-stack-card__decor img {
  width: 100%;
  height: 100%;
}
@media screen and (width >= 1025px) {
  .ab-stack-card__decor img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: left bottom;
       object-position: left bottom;
  }
}
.ab-stack-card__body {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: min(35.84px, 7.4666666667vw) min(25.6px, 5.3333333333vw);
  align-items: start;
  min-width: 0;
}
@media screen and (width >= 768px) {
  .ab-stack-card__body {
    gap: 3.125vw 5.2083333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 2.0833333333vw;
    align-items: stretch;
  }
}
.ab-stack-card__logo {
  grid-row: 1;
  grid-column: 2;
  width: min(44.2688px, 9.2226666667vw);
  height: min(29.44px, 6.1333333333vw);
  color: #c58e5b;
}
@media screen and (width >= 768px) {
  .ab-stack-card__logo {
    width: 4.5032552083vw;
    height: 2.9947916667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__logo {
    width: 3.59375vw;
    height: 2.3958333333vw;
  }
}
.ab-stack-card__logo svg {
  width: 100%;
  height: 100%;
}
.ab-stack-card__block {
  display: contents;
}
@media screen and (width >= 1025px) {
  .ab-stack-card__block {
    display: flex;
    flex-direction: column;
    gap: 1.0416666667vw;
  }
}
.ab-stack-card__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-stack-card__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-stack-card__title {
  font-size: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-stack-card__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-stack-card__title {
  grid-row: 1;
  grid-column: 1;
}
.ab-stack-card__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-stack-card__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-stack-card__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-stack-card__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-stack-card__text {
  grid-row: 2;
  grid-column: 1/-1;
}
@media screen and (width >= 1025px) {
  .ab-stack-card__text {
    color: #fff;
  }
}
.ab-stack-card__img {
  position: relative;
  order: -1;
  height: min(256px, 53.3333333333vw);
  overflow: hidden;
  background-color: #313a3f;
  border-radius: min(10.24px, 2.1333333333vw);
}
@media screen and (width >= 768px) {
  .ab-stack-card__img {
    height: 48.1770833333vw;
    border-radius: 1.5625vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-stack-card__img {
    flex-shrink: 0;
    order: 0;
    width: 58.3333333333vw;
    height: 34.5833333333vw;
    border-radius: 0.625vw;
  }
}
.ab-stack-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ---------- CTA on a photo ---------- */
.ab-cta {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: flex-start;
  min-height: min(883.2px, 184vw);
  padding: min(102.4px, 21.3333333333vw) 0 0;
  overflow: hidden;
  background-color: #21332b;
}
@media screen and (width >= 768px) {
  .ab-cta {
    min-height: 102.734375vw;
    padding: 0;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta {
    min-height: 57.1354166667vw;
    background-color: #313a3f;
  }
}
.ab-cta__img {
  position: absolute;
  top: min(322.56px, 67.2vw);
  right: 0;
  left: 0;
  z-index: 0;
  height: min(560.64px, 116.8vw);
  overflow: hidden;
}
@media screen and (width >= 768px) {
  .ab-cta__img {
    top: 0;
    height: 102.734375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta__img {
    inset: 0;
    height: auto;
  }
}
.ab-cta__img::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 2;
  height: min(270.08px, 56.2666666667vw);
  content: "";
  background: linear-gradient(180deg, #21332b 0%, rgba(33, 51, 43, 0.9) 40%, rgba(33, 51, 43, 0) 100%);
}
@media screen and (width >= 768px) {
  .ab-cta__img::before {
    height: 33.8541666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta__img::before {
    height: 43%;
  }
}
.ab-cta__img::after {
  position: absolute;
  right: 0;
  bottom: max(-12.8px, -2.6666666667vw);
  left: 0;
  z-index: 4;
  height: min(179.2px, 37.3333333333vw);
  content: "";
  background: linear-gradient(180deg, rgba(33, 51, 43, 0) 0%, rgba(33, 51, 43, 0.9) 59.615%, #21332b 100%);
}
@media screen and (width >= 768px) {
  .ab-cta__img::after {
    bottom: 0;
    height: 31.25vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta__img::after {
    height: 12.5vw;
    background: linear-gradient(180deg, rgba(33, 51, 43, 0) 0%, rgba(33, 51, 43, 0.5) 33%, rgba(33, 51, 43, 0.87) 65%, #21332b 100%);
  }
}
@media screen and (width < 1025px) {
  .ab-cta__img .ab-photo__sky {
    min-width: calc(100% + min(133.7728px, 27.8693333333vw));
    top: max(-131.4688px, -27.3893333333vw);
    left: max(-133.7728px, -27.8693333333vw);
    width: min(747.5072px, 155.7306666667vw);
    height: min(560.64px, 116.8vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta__img .ab-photo__sky {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta__img .ab-photo__sky {
    top: -24.44140625vw;
    left: -24.1119791667vw;
    width: 139.9322916667vw;
    height: 104.9518229167vw;
  }
}
@media screen and (width < 1025px) {
  .ab-cta__img .ab-photo__front {
    min-width: calc(100% + min(620.0704px, 129.1813333333vw));
    top: max(-72.3968px, -15.0826666667vw);
    left: max(-620.0704px, -129.1813333333vw);
    width: min(1150.3744px, 239.6613333333vw);
    height: auto;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta__img .ab-photo__front {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta__img .ab-photo__front {
    top: -4.55859375vw;
    left: -77.30078125vw;
    width: 185.55078125vw;
  }
}
.ab-cta__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: min(30.72px, 6.4vw);
  align-items: center;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
@media screen and (width >= 768px) {
  .ab-cta__body {
    gap: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta__body {
    gap: 1.25vw;
    width: 47.3958333333vw;
    padding: 0 2.0833333333vw;
  }
}
.ab-cta__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-cta__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-cta__title {
  text-transform: uppercase;
}
.ab-cta--second {
  min-height: min(871.68px, 181.6vw);
  padding-top: 0;
}
@media screen and (width >= 768px) {
  .ab-cta--second {
    min-height: 111.5885416667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta--second {
    min-height: 57.1354166667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta--second .ab-cta__body {
    padding: 0;
  }
}
.ab-cta--second .ab-cta__img {
  top: min(254.72px, 53.0666666667vw);
  height: min(616.96px, 128.5333333333vw);
}
@media screen and (width >= 768px) {
  .ab-cta--second .ab-cta__img {
    top: 0;
    height: 111.5885416667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta--second .ab-cta__img {
    height: auto;
  }
}
.ab-cta--second .ab-cta__img::before {
  height: min(257.28px, 53.6vw);
}
@media screen and (width >= 768px) {
  .ab-cta--second .ab-cta__img::before {
    height: 60.6770833333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta--second .ab-cta__img::before {
    height: 43%;
  }
}
.ab-cta--second .ab-cta__img::after {
  bottom: 0;
}
@media screen and (width < 1025px) {
  .ab-cta--second .ab-cta__img .ab-photo__sky {
    min-width: calc(100% + min(341.1328px, 71.0693333333vw));
    top: max(-436.7232px, -90.984vw);
    left: max(-341.1328px, -71.0693333333vw);
    width: min(1162.2272px, 242.1306666667vw);
    height: min(871.68px, 181.6vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta--second .ab-cta__img .ab-photo__sky {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta--second .ab-cta__img .ab-photo__sky {
    top: -23.0091145833vw;
    left: -24.33203125vw;
    width: 148.7838541667vw;
    height: 111.5885416667vw;
  }
}
@media screen and (width < 1025px) {
  .ab-cta--second .ab-cta__img .ab-photo__front {
    min-width: calc(100% + min(185.088px, 38.56vw));
    top: min(89.4848px, 18.6426666667vw);
    left: max(-185.088px, -38.56vw);
    width: min(851.4688px, 177.3893333333vw);
    height: min(577.0624px, 120.2213333333vw);
    -o-object-fit: fill;
       object-fit: fill;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta--second .ab-cta__img .ab-photo__front {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-cta--second .ab-cta__img .ab-photo__front {
    top: 25.7630208333vw;
    left: -19.3151041667vw;
    width: 138.7708333333vw;
    height: 93.89453125vw;
  }
}
.ab-cta--second .ab-cta__img .ab-photo__glow {
  --glow-tilt: -15.66deg;
  top: min(539.7888px, 112.456vw);
  left: min(838.784px, 174.7466666667vw);
  width: min(686.9504px, 143.1146666667vw);
  height: min(255.2832px, 53.184vw);
}
@media screen and (width >= 768px) {
  .ab-cta--second .ab-cta__img .ab-photo__glow {
    top: 80.8216145833vw;
    left: 85.3255208333vw;
    width: 69.8802083333vw;
    height: 25.96875vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-cta--second .ab-cta__img .ab-photo__glow {
    top: 37.9536458333vw;
    left: 49.4822916667vw;
    width: 46.25vw;
    height: 17.1875vw;
  }
}

/* ---------- infrastructure slider ---------- */
.ab-gallery {
  position: relative;
  z-index: 1;
  margin-top: max(-128px, -26.6666666667vw);
}
@media screen and (width >= 768px) {
  .ab-gallery {
    margin-top: -23.6979166667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery {
    margin-top: -12.9166666667vw;
  }
}
.ab-gallery__body {
  padding: 0 min(20.48px, 4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-gallery__body {
    padding: 0 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery__body {
    padding: 0 2.0833333333vw 0 7.5vw;
  }
}
.ab-gallery__nav {
  display: flex;
  gap: min(10.24px, 2.1333333333vw);
  justify-content: center;
  margin-top: min(51.2px, 10.6666666667vw);
}
@media screen and (width >= 768px) {
  .ab-gallery__nav {
    gap: 1.0416666667vw;
    margin-top: 5.2083333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery__nav {
    position: absolute;
    top: calc(11.9791666667vw - 1.6666666667vw);
    right: 0;
    left: 0;
    z-index: 2;
    justify-content: space-between;
    padding: 0 2.0833333333vw;
    margin-top: 0;
  }
}

.ab-gallery-card {
  display: flex;
  flex-direction: column;
  gap: min(30.72px, 6.4vw);
  align-items: center;
  width: min(409.6px, 85.3333333333vw);
  height: min(460.8px, 96vw);
  padding: min(10.24px, 2.1333333333vw) min(10.24px, 2.1333333333vw) min(30.72px, 6.4vw);
  background-color: #35463d;
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-gallery-card {
    gap: 3.125vw;
    width: 45.8333333333vw;
    height: 52.0833333333vw;
    padding: 2.0833333333vw 2.0833333333vw 3.6458333333vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery-card {
    gap: 1.25vw;
    width: 21.875vw;
    height: auto;
    padding: 1.0416666667vw 1.0416666667vw 2.0833333333vw;
    border-radius: 1.25vw;
  }
}
.ab-gallery-card__img {
  flex: 1;
  width: 100%;
  min-height: 0;
  overflow: hidden;
  border-radius: min(15.36px, 3.2vw);
}
@media screen and (width >= 768px) {
  .ab-gallery-card__img {
    border-radius: 1.5625vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery-card__img {
    flex: none;
    height: 18.0729166667vw;
    border-radius: 0.625vw;
  }
}
.ab-gallery-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.ab-gallery-card:nth-child(4) .ab-gallery-card__img img {
  -o-object-position: right center;
     object-position: right center;
}
@media screen and (width >= 1025px) {
  .ab-gallery-card:nth-child(4) .ab-gallery-card__img img {
    -o-object-position: 95% center;
       object-position: 95% center;
  }
}
.ab-gallery-card__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(20px, 4.2666666667vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-gallery-card__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery-card__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-gallery-card__title {
  font-size: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-gallery-card__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-gallery-card__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-gallery-card__title {
  width: 100%;
  text-align: center;
}

/* ---------- safety ---------- */
.ab-safety {
  padding: var(--section-gap) 0;
  background-color: #d1b38a;
}
.ab-safety .container {
  display: flex;
  flex-direction: column;
  gap: var(--content-title-gap);
}
.ab-safety__head {
  display: flex;
  flex-direction: column;
  gap: min(15.36px, 3.2vw);
  text-align: center;
}
@media screen and (width >= 768px) {
  .ab-safety__head {
    gap: 3.6458333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__head {
    flex-direction: row;
    gap: 6.25vw;
    align-items: flex-start;
    justify-content: space-between;
    text-align: left;
  }
}
.ab-safety__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-safety__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-safety__title {
  color: #21332b;
  text-transform: uppercase;
}
@media screen and (width >= 1025px) {
  .ab-safety__title {
    width: 33.2291666667vw;
  }
}
.ab-safety__lead {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-safety__lead {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__lead {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-safety__lead {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-safety__lead {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__lead {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-safety__lead {
  color: #313a3f;
}
@media screen and (width >= 1025px) {
  .ab-safety__lead {
    width: 25.6770833333vw;
  }
}
.ab-safety__body {
  display: flex;
  flex-direction: column;
  gap: min(20.48px, 4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-safety__body {
    gap: 2.6041666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__body {
    flex-direction: row;
    gap: 1.0416666667vw;
    align-items: stretch;
  }
}
.ab-safety__img {
  height: min(537.6px, 112vw);
  overflow: hidden;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-safety__img {
    height: 78.125vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-safety__img {
    flex-shrink: 0;
    width: 47.34375vw;
    height: auto;
    border-radius: 1.25vw;
  }
}
.ab-safety__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 24.26% center;
     object-position: 24.26% center;
}
@media screen and (width >= 768px) {
  .ab-safety__img img {
    -o-object-position: 14.27% center;
       object-position: 14.27% center;
  }
}

.ab-steps {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: min(20.48px, 4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-steps {
    outline: 1px solid rgba(33, 51, 43, 0.2);
    outline-offset: -1px;
    gap: 0;
    padding: 5.2083333333vw;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-steps {
    display: grid;
    flex: 1;
    grid-auto-rows: 1fr;
    padding: 3.125vw 6.25vw 3.125vw 3.125vw;
    border-radius: 1.25vw;
  }
}

.ab-step {
  outline: 1px solid rgba(33, 51, 43, 0.2);
  outline-offset: -1px;
  position: relative;
  display: flex;
  align-items: flex-start;
  padding: min(30.72px, 6.4vw);
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-step {
    gap: 3.6458333333vw;
    padding: 2.6041666667vw 0;
    outline: 0;
    border: 0;
    border-radius: 0;
  }
  .ab-step:not(:last-child)::before {
    position: absolute;
    top: calc(2.6041666667vw + 3.6458333333vw);
    left: 3.515625vw;
    width: 1px;
    height: 100%;
    content: "";
    background-color: #c58e5b;
    transform: scaleY(var(--ab-rail, 1));
    transform-origin: top;
  }
}
@media screen and (width >= 1025px) {
  .ab-step {
    gap: 1.4583333333vw;
    padding: 1.0416666667vw 1.875vw;
  }
  .ab-step:not(:last-child)::before {
    top: calc(1.0416666667vw + 1.4583333333vw);
    left: calc(1.875vw + 1.4583333333vw);
  }
}
.ab-step__num {
  font-family: "Actay Wide", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 700;
  line-height: 140%;
  color: #f6f6f6;
  letter-spacing: -0.06em;
}
@media screen and (width >= 768px) {
  .ab-step__num {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__num {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-step__num {
  position: relative;
  z-index: 1;
  display: none;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  background-color: #c58e5b;
  border-radius: 50%;
}
@media screen and (width >= 768px) {
  .ab-step__num {
    display: flex;
    width: 7.2916666667vw;
    height: 7.2916666667vw;
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__num {
    width: 2.9166666667vw;
    height: 2.9166666667vw;
    font-size: max(14px, 0.9375vw);
  }
}
.ab-step__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: min(20.48px, 4.2666666667vw);
  min-width: 0;
}
@media screen and (width >= 768px) {
  .ab-step__content {
    gap: 1.0416666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__content {
    gap: 0.4166666667vw;
  }
}
.ab-step__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(20px, 4.2666666667vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-step__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-step__title {
  font-size: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-step__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__title {
    font-size: max(16px, 1.25vw);
  }
}
.ab-step__title {
  color: #21332b;
}
.ab-step__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-step__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-step__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-step__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-step__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-step__text {
  color: #313a3f;
}

/* ---------- location ---------- */
.ab-location {
  padding: var(--section-gap) 0;
  background-color: #21332b;
}
.ab-location .container {
  display: flex;
  flex-direction: column;
  gap: var(--content-title-gap);
}

.ab-map {
  position: relative;
  overflow: hidden;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-map {
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map {
    border-radius: 1.25vw;
  }
}
.ab-map__canvas {
  position: relative;
  z-index: 0;
  width: 100%;
  height: min(819.2px, 170.6666666667vw);
  background-color: #21332b;
}
@media screen and (width >= 768px) {
  .ab-map__canvas {
    height: 117.1875vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__canvas {
    height: 46.875vw;
  }
}
.ab-map__canvas--failed {
  background-image: url("../images/map.jpg");
  background-position: center;
  background-size: cover;
}
.ab-map {
  /* --- markers (built in location-map.js as AdvancedMarkerElement content) --- */
}
.ab-map__pin, .ab-map__poi {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ab-map__pin {
  filter: drop-shadow(0 16px 8px rgba(28, 28, 30, 0.25));
}
.ab-map__pin-photo {
  width: min(102.4px, 21.3333333333vw);
  height: min(102.4px, 21.3333333333vw);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border: 2px solid #c58e5b;
  border-radius: 50%;
}
@media screen and (width >= 768px) {
  .ab-map__pin-photo {
    width: 18.2291666667vw;
    height: 18.2291666667vw;
    border-width: 4px;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__pin-photo {
    width: 8.3333333333vw;
    height: 8.3333333333vw;
  }
}
.ab-map__pin-tail {
  width: min(28.96256px, 6.0338666667vw);
  height: min(28.96256px, 6.0338666667vw);
  margin-top: max(-16.64px, -3.4666666667vw);
  background-color: #c58e5b;
  clip-path: polygon(0 50%, 100% 50%, 50% 100%);
}
@media screen and (width >= 768px) {
  .ab-map__pin-tail {
    width: 2.9462239583vw;
    height: 2.9462239583vw;
    margin-top: -1.5625vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__pin-tail {
    width: 1.1784895833vw;
    height: 1.1784895833vw;
    margin-top: -0.625vw;
  }
}
.ab-map__poi {
  filter: drop-shadow(0 12px 8px rgba(28, 28, 30, 0.15));
}
.ab-map__poi-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(76.8px, 16vw);
  height: min(76.8px, 16vw);
  color: #21332b;
  background-color: #f6f6f6;
  border: 2px solid #ccc;
  border-radius: 50%;
}
@media screen and (width >= 768px) {
  .ab-map__poi-badge {
    width: 7.8125vw;
    height: 7.8125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__poi-badge {
    width: 3.125vw;
    height: 3.125vw;
  }
}
.ab-map__poi-badge svg {
  width: min(40.96px, 8.5333333333vw);
  height: min(40.96px, 8.5333333333vw);
}
@media screen and (width >= 768px) {
  .ab-map__poi-badge svg {
    width: 4.1666666667vw;
    height: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__poi-badge svg {
    width: 1.6666666667vw;
    height: 1.6666666667vw;
  }
}
.ab-map__poi-tail {
  width: min(21.72288px, 4.5256vw);
  height: min(21.72288px, 4.5256vw);
  margin-top: max(-12.8px, -2.6666666667vw);
  background-color: #ccc;
  clip-path: polygon(0 50%, 100% 50%, 50% 100%);
}
@media screen and (width >= 768px) {
  .ab-map__poi-tail {
    width: 2.209765625vw;
    height: 2.209765625vw;
    margin-top: -1.3020833333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__poi-tail {
    width: 0.88390625vw;
    height: 0.88390625vw;
    margin-top: -0.5208333333vw;
  }
}
.ab-map {
  /* --- overlay chrome --- */
}
.ab-map__info {
  position: absolute;
  top: min(16px, 4.2666666667vw);
  right: min(16px, 4.2666666667vw);
  z-index: 4;
  width: min(32px, 8vw);
  height: min(32px, 8vw);
  color: #21332b;
  cursor: pointer;
  background-color: #c58e5b;
  border-radius: 50%;
  transition: filter 0.3s ease;
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-map__info {
    display: none;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__info {
    top: 2.0833333333vw;
    right: 2.0833333333vw;
    width: 2.0833333333vw;
    height: 2.0833333333vw;
  }
}
.ab-map__info svg {
  width: 100%;
  height: 100%;
}
@media (hover: hover) {
  .ab-map__info:hover {
    filter: brightness(1.1);
  }
}
.ab-map__card {
  position: absolute;
  top: min(56px, 13.8666666667vw);
  right: min(16px, 4.2666666667vw);
  z-index: 4;
  display: flex;
  visibility: hidden;
  flex-direction: column;
  gap: min(20px, 4.8vw);
  align-items: center;
  width: min(280px, 66.6666666667vw);
  padding: min(24px, 5.3333333333vw);
  background-color: rgba(35, 52, 45, 0.4);
  border: 1px solid rgba(175, 144, 103, 0.2);
  border-radius: min(16px, 3.2vw);
  opacity: 0;
  backdrop-filter: blur(20px);
  transform: translateX(calc(100% + min(16px, 4.2666666667vw)));
  transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s;
}
@media screen and (width >= 1025px) {
  .ab-map__card {
    top: 4.7916666667vw;
    right: 2.0833333333vw;
    gap: 1.6666666667vw;
    width: 17.7083333333vw;
    padding: 2.0833333333vw;
    border-radius: 1.25vw;
    transform: translateX(calc(100% + 2.0833333333vw));
  }
}
.ab-map__card--open {
  visibility: visible;
  opacity: 1;
  transform: translateX(0);
}
.ab-map__card-row {
  display: flex;
  flex-direction: column;
  gap: min(4px, 1.0666666667vw);
  align-items: center;
  width: 100%;
}
.ab-map__card-time {
  font-family: "Actay Wide", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 700;
  line-height: 140%;
  color: #f6f6f6;
  letter-spacing: -0.06em;
}
@media screen and (width >= 768px) {
  .ab-map__card-time {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__card-time {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-map__card-time {
  color: #ccc;
  text-align: center;
}
.ab-map__card-place {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-map__card-place {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__card-place {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-map__card-place {
  text-align: center;
}
.ab-map__toggle {
  font-family: "Actay Wide", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 700;
  line-height: 140%;
  color: #f6f6f6;
  letter-spacing: -0.06em;
}
@media screen and (width >= 768px) {
  .ab-map__toggle {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__toggle {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-map__toggle {
  position: absolute;
  bottom: min(20.48px, 4.2666666667vw);
  left: 50%;
  z-index: 3;
  display: flex;
  gap: min(15.36px, 3.2vw);
  align-items: center;
  justify-content: center;
  height: min(69.12px, 14.4vw);
  padding: 0 min(40.96px, 8.5333333333vw);
  color: #f6f6f6;
  white-space: nowrap;
  cursor: pointer;
  background-color: #c58e5b;
  border-radius: min(128px, 26.6666666667vw);
  transform: translateX(-50%);
  transition: filter 0.3s ease;
}
@media screen and (width >= 768px) {
  .ab-map__toggle {
    bottom: 5.2083333333vw;
    gap: 1.5625vw;
    height: 7.8125vw;
    padding: 0 4.1666666667vw;
    border-radius: 13.0208333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__toggle {
    bottom: 2.0833333333vw;
    gap: 0.625vw;
    height: 3.5416666667vw;
    padding: 0 2.5vw;
    border-radius: 5.2083333333vw;
  }
}
@media (hover: hover) {
  .ab-map__toggle:hover {
    filter: brightness(1.1);
  }
}
.ab-map__toggle--open {
  background-color: #393028;
}
.ab-map__toggle--open .ab-map__toggle-icon--filter {
  display: none;
}
.ab-map__toggle--open .ab-map__toggle-icon--close {
  display: block;
}
.ab-map__toggle-icon {
  flex-shrink: 0;
  width: min(20.48px, 4.2666666667vw);
  height: min(20.48px, 4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-map__toggle-icon {
    width: 2.0833333333vw;
    height: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__toggle-icon {
    width: 0.8333333333vw;
    height: 0.8333333333vw;
  }
}
.ab-map__toggle-icon--close {
  display: none;
}
.ab-map__filters {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: min(8px, 2.1333333333vw);
  justify-content: center;
  padding: min(24px, 5.3333333333vw) min(16px, 3.2vw) min(110.08px, 22.9333333333vw);
  background-color: rgba(236, 233, 226, 0.9);
  transform: translateY(100%);
  transition: transform 0.4s ease;
}
@media screen and (width >= 768px) {
  .ab-map__filters {
    gap: 1.0416666667vw;
    padding: 5.2083333333vw 1.5625vw 19.2708333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__filters {
    gap: 0.4166666667vw;
    padding: 2.0833333333vw 0.625vw 7.7083333333vw;
  }
}
.ab-map__filters--open {
  transform: translateY(0);
}
.ab-map__filter {
  font-family: "Actay Wide", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 700;
  line-height: 140%;
  color: #f6f6f6;
  letter-spacing: -0.06em;
}
@media screen and (width >= 768px) {
  .ab-map__filter {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__filter {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-map__filter {
  display: flex;
  gap: min(8px, 2.1333333333vw);
  align-items: center;
  justify-content: center;
  height: min(40px, 9.6vw);
  padding: 0 min(20px, 4.2666666667vw);
  color: #393028;
  cursor: pointer;
  background-color: #fff;
  border-radius: min(100px, 26.6666666667vw);
  transition: background-color 0.3s ease, color 0.3s ease;
}
@media screen and (width >= 768px) {
  .ab-map__filter {
    gap: 1.5625vw;
    height: 6.25vw;
    padding: 0 4.1666666667vw;
    font-size: 2.34375vw;
    border-radius: 13.0208333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__filter {
    gap: 0.625vw;
    height: 2.5vw;
    padding: 0 1.6666666667vw;
    font-size: max(14px, 0.9375vw);
    border-radius: 5.2083333333vw;
  }
}
@media (hover: hover) {
  .ab-map__filter:hover {
    color: #fff;
    background-color: #c58e5b;
  }
}
.ab-map__filter--active {
  color: #ece9e2;
  background-color: #21332b;
}
.ab-map__filter-icon {
  flex-shrink: 0;
  width: min(20px, 4.8vw);
  height: min(20px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-map__filter-icon {
    width: 3.125vw;
    height: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-map__filter-icon {
    width: 1.25vw;
    height: 1.25vw;
  }
}

/* ---------- technical specs ---------- */
.ab-specs {
  position: relative;
  z-index: 1;
  margin-top: max(-128px, -26.6666666667vw);
}
@media screen and (width >= 768px) {
  .ab-specs {
    margin-top: -3.2552083333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-specs {
    margin-top: -2.0833333333vw;
  }
}
@media screen and (width < 1025px) {
  .ab-specs .panel {
    gap: min(61.44px, 12.8vw);
    padding: min(61.44px, 12.8vw) min(20.48px, 4.2666666667vw) min(20.48px, 4.2666666667vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-specs .panel {
    gap: 6.25vw;
    padding: 7.8125vw 3.125vw 3.125vw;
  }
}
@media screen and (width < 1025px) {
  .ab-specs .panel__head {
    gap: min(15.36px, 3.2vw);
    align-items: center;
    text-align: center;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-specs .panel__head {
    gap: 3.125vw;
  }
}
@media screen and (width >= 768px) {
  .ab-specs .panel__title {
    max-width: 83.0729166667vw;
    font-size: 4.9479166667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-specs .panel__title {
    max-width: none;
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-specs .panel__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-specs .panel__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-specs .panel__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-specs .panel__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-specs .panel__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-specs .panel__text {
    font-size: max(14px, 0.9375vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-specs .panel__text {
    min-height: 11.9791666667vw;
  }
}
.ab-specs__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: min(10.24px, 2.1333333333vw);
  padding: 0 min(20.48px, 4.2666666667vw);
}
@media screen and (width >= 768px) {
  .ab-specs__grid {
    grid-template-rows: repeat(6, auto);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: column;
    gap: 1.0416666667vw;
    padding: 0;
  }
}
@media screen and (width >= 1025px) {
  .ab-specs__grid {
    grid-template-rows: repeat(4, auto);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5208333333vw;
  }
}

.ab-spec {
  display: flex;
  gap: min(25.6px, 5.3333333333vw);
  align-items: center;
  padding: min(30.72px, 6.4vw);
  background-color: rgba(35, 52, 45, 0.4);
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(15.36px, 3.2vw);
}
.ab-spec--col2 {
  height: min(151.04px, 31.4666666667vw);
  padding-block: 0;
  overflow: hidden;
}
@media screen and (width < 1025px) {
  .ab-spec--late {
    order: 1;
  }
}
@media screen and (width >= 768px) {
  .ab-spec {
    gap: 2.6041666667vw;
    height: 15.3645833333vw;
    padding: 0 3.125vw;
    overflow: hidden;
    border-radius: 1.5625vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec {
    gap: 2.0833333333vw;
    height: 6.1458333333vw;
    padding: 0 2.0833333333vw;
    border-radius: 0.625vw;
  }
}
.ab-spec__icon {
  flex-shrink: 0;
  width: min(69.12px, 14.4vw);
  height: min(69.12px, 14.4vw);
}
@media screen and (width >= 768px) {
  .ab-spec__icon {
    width: 7.03125vw;
    height: 7.03125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec__icon {
    width: 2.8125vw;
    height: 2.8125vw;
  }
}
.ab-spec__icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.ab-spec__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: min(10.24px, 2.1333333333vw);
  min-width: 0;
}
@media screen and (width >= 768px) {
  .ab-spec__text {
    gap: 1.0416666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec__text {
    gap: 0.4166666667vw;
  }
}
.ab-spec__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(20px, 4.2666666667vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-spec__title {
    font-size: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec__title {
    font-size: max(16px, 1.25vw);
  }
}
@media screen and (width < 1025px) {
  .ab-spec__title {
    font-size: min(20.48px, 4.2666666667vw);
    line-height: 140%;
    letter-spacing: -0.06em;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-spec__title {
    font-size: 2.0833333333vw;
  }
}
.ab-spec__value {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-spec__value {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec__value {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-spec__value {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-spec__value {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-spec__value {
    font-size: max(14px, 0.9375vw);
  }
}

/* ---------- developer ---------- */
.ab-developer {
  padding: min(70.4px, 14.6666666667vw) 0 var(--section-gap);
  background-color: #21332b;
}
@media screen and (width >= 768px) {
  .ab-developer {
    padding-top: var(--section-gap);
  }
}
@media screen and (width >= 1025px) {
  .ab-developer {
    padding-bottom: calc(var(--section-gap) + 6.3020833333vw);
  }
}
.ab-developer .container {
  display: flex;
  flex-direction: column;
  gap: var(--content-title-gap);
}
.ab-developer__body {
  position: relative;
  display: flex;
  flex-direction: column;
}
@media screen and (width >= 768px) {
  .ab-developer__body {
    gap: 7.8125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__body {
    flex-direction: row;
    gap: 1.0416666667vw;
    align-items: flex-start;
  }
}
.ab-developer__card {
  display: flex;
  flex-direction: column;
  gap: min(61.44px, 12.8vw);
  align-items: center;
  padding: min(61.44px, 12.8vw) min(20.48px, 4.2666666667vw);
  text-align: center;
  background-color: #21332b;
  outline: 1px solid rgba(175, 144, 103, 0.2);
  outline-offset: -1px;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-developer__card {
    gap: 13.0208333333vw;
    align-items: stretch;
    padding: 7.8125vw 3.125vw;
    text-align: left;
    border-radius: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__card {
    flex: 1;
    gap: 40px;
    justify-content: space-between;
    height: 35.7291666667vw;
    padding: 2.0833333333vw;
    border-radius: 1.25vw;
  }
}
.ab-developer__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-developer__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
@media screen and (width >= 768px) {
  .ab-developer__title {
    text-transform: uppercase;
  }
}
.ab-developer__media {
  position: relative;
  width: 100%;
  height: min(435.2px, 90.6666666667vw);
  overflow: hidden;
  border-radius: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-developer__media {
    display: none;
  }
}
.ab-developer__media > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.ab-developer__media-logo {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  padding: min(61.44px, 12.8vw) min(20.48px, 4.2666666667vw) min(30.72px, 6.4vw);
  background: linear-gradient(180deg, rgba(53, 70, 61, 0) 0%, #35463d 100%);
  border-radius: min(30.72px, 6.4vw);
  backdrop-filter: blur(10px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 40%);
          mask-image: linear-gradient(180deg, transparent 0%, #000 40%);
}
.ab-developer__media-logo img {
  width: min(256px, 53.3333333333vw);
  aspect-ratio: 242/43.0968;
}
.ab-developer__footer {
  display: flex;
  flex-direction: column;
  width: 100%;
}
@media screen and (width >= 1025px) {
  .ab-developer__footer {
    gap: 2.0833333333vw;
  }
}
.ab-developer__line {
  display: none;
  width: 100%;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.2);
}
@media screen and (width >= 1025px) {
  .ab-developer__line {
    display: block;
  }
}
.ab-developer__meta {
  display: flex;
  flex-direction: column;
  gap: min(40.96px, 8.5333333333vw);
  align-items: center;
}
@media screen and (width >= 768px) {
  .ab-developer__meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5.2083333333vw 0;
    align-items: center;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__meta {
    display: flex;
    flex-direction: row;
    gap: 2.0833333333vw;
    align-items: flex-start;
    justify-content: space-between;
  }
}
.ab-developer__logo {
  display: none;
  width: 26.0416666667vw;
  aspect-ratio: 242/43.0968;
}
@media screen and (width >= 768px) {
  .ab-developer__logo {
    display: block;
    grid-row: 2;
    grid-column: 2;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__logo {
    width: 12.6041666667vw;
  }
}
.ab-developer__logo img {
  width: 100%;
  height: 100%;
}
.ab-developer__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-developer__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-developer__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-developer__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__text {
    font-size: max(14px, 0.9375vw);
  }
}
@media screen and (width >= 768px) {
  .ab-developer__text {
    grid-row: 1;
    grid-column: 1/-1;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__text {
    width: 21.09375vw;
  }
}
@media screen and (width >= 768px) {
  .ab-developer__btn {
    grid-row: 2;
    grid-column: 1;
    justify-self: start;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__btn {
    display: none;
  }
}
.ab-developer__gallery {
  position: relative;
  display: none;
}
@media screen and (width >= 768px) {
  .ab-developer__gallery {
    display: flex;
    gap: 2.0833333333vw;
    align-items: flex-start;
    order: -1;
    margin-bottom: 5.5989583333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-developer__gallery {
    flex-shrink: 0;
    gap: 1.0416666667vw;
    order: 0;
    margin-bottom: 0;
  }
}
.ab-developer__img {
  flex: 1;
  height: 72.9166666667vw;
  overflow: hidden;
  border-radius: 3.125vw;
}
@media screen and (width >= 1025px) {
  .ab-developer__img {
    flex: none;
    width: 23.1770833333vw;
    height: 35.7291666667vw;
    border-radius: 1.25vw;
  }
}
.ab-developer__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: left center;
     object-position: left center;
}
.ab-developer__img--short {
  position: relative;
  height: 49.4791666667vw;
}
@media screen and (width >= 1025px) {
  .ab-developer__img--short {
    height: 25.0520833333vw;
  }
}
.ab-developer__img--short img {
  -o-object-position: right center;
     object-position: right center;
}
.ab-developer__mark {
  position: absolute;
  top: 31.5104166667vw;
  left: 7.9427083333vw;
  width: 77.9947916667vw;
  height: 47.0052083333vw;
  pointer-events: none;
  opacity: 0.8;
}
@media screen and (width >= 1025px) {
  .ab-developer__mark {
    inset: auto 2.0833333333vw -6.3020833333vw auto;
    width: 43.2291666667vw;
    height: 24.1666666667vw;
  }
}
.ab-developer__mark img {
  width: 100%;
  height: 100%;
}

/* ---------- closing hero ---------- */
.ab-final {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: flex-end;
  min-height: min(947.2px, 197.3333333333vw);
  padding: min(102.4px, 21.3333333333vw) 0 min(30.72px, 6.4vw);
  overflow: hidden;
  background-color: #35463d;
}
@media screen and (width >= 768px) {
  .ab-final {
    min-height: 117.1875vw;
    padding: 13.0208333333vw 0 5.2083333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final {
    display: block;
    min-height: 0;
    padding: var(--section-gap) 0;
  }
}
.ab-final .container {
  width: 100%;
}
@media screen and (width >= 768px) {
  .ab-final .container {
    padding-inline: 5.2083333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final .container {
    padding-inline: 2.0833333333vw;
  }
}
.ab-final__img {
  position: absolute;
  inset: 0;
}
.ab-final__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (width >= 1025px) {
  .ab-final__img img {
    -o-object-position: 50% 87%;
       object-position: 50% 87%;
  }
}
@media screen and (width < 1025px) {
  .ab-final__img img {
    min-width: calc(100% + min(1054.5664px, 219.7013333333vw));
    position: absolute;
    top: max(-167.1808px, -34.8293333333vw);
    left: max(-1054.5664px, -219.7013333333vw);
    width: min(1683.8912px, 350.8106666667vw);
    max-width: none;
    height: min(947.2px, 197.3333333333vw);
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-final__img img {
    min-width: 0;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-final__img img {
    top: -22.8984375vw;
    left: -95.75vw;
    width: 208.3294270833vw;
    height: 117.1875vw;
  }
}
.ab-final__img::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(0deg, #35463d 0%, rgba(53, 70, 61, 0.9) 50%, rgba(53, 70, 61, 0) 100%) bottom/100% min(371.6224px, 77.4213333333vw) no-repeat, linear-gradient(0deg, #35463d 0%, rgba(53, 70, 61, 0.9) 50%, rgba(53, 70, 61, 0) 100%) bottom/100% min(579.84px, 120.8vw) no-repeat;
}
@media screen and (width >= 768px) {
  .ab-final__img::after {
    background: linear-gradient(0deg, #35463d 0%, rgba(53, 70, 61, 0.9) 50%, rgba(53, 70, 61, 0) 100%) bottom/100% 48.3072916667vw no-repeat, linear-gradient(0deg, #35463d 0%, rgba(53, 70, 61, 0.9) 50%, rgba(53, 70, 61, 0) 100%) bottom/100% 48.3072916667vw no-repeat;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__img::after {
    background: linear-gradient(90deg, #35463d 0%, #35463d 26%, rgba(53, 70, 61, 0.88) 36%, rgba(53, 70, 61, 0.35) 50%, rgba(53, 70, 61, 0) 62%);
  }
}
.ab-final__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: min(15.36px, 3.2vw);
  align-items: center;
  text-align: center;
}
@media screen and (width >= 768px) {
  .ab-final__body {
    gap: 3.125vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__body {
    gap: 2.0833333333vw;
    align-items: stretch;
    width: 35.3125vw;
    padding-right: 6.25vw;
    text-align: left;
  }
}
.ab-final__title {
  font-family: "Actay Wide", sans-serif;
  font-size: min(32px, 6.4vw);
  font-weight: 700;
  line-height: 120%;
  color: #f6f6f6;
  letter-spacing: -0.02em;
}
@media screen and (width >= 768px) {
  .ab-final__title {
    font-size: 4.1666666667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-final__title {
  font-size: min(30.72px, 6.4vw);
}
@media screen and (width >= 768px) {
  .ab-final__title {
    font-size: 4.9479166667vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__title {
    font-size: max(24px, 1.9791666667vw);
  }
}
.ab-final__title {
  text-transform: uppercase;
}
.ab-final__text {
  font-family: "Actay", sans-serif;
  font-size: min(18px, 4.2666666667vw);
  font-weight: 400;
  line-height: 140%;
  color: #ccc;
  letter-spacing: -0.03em;
}
@media screen and (width >= 768px) {
  .ab-final__text {
    font-size: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-final__text {
  font-size: min(23.04px, 4.8vw);
}
@media screen and (width >= 768px) {
  .ab-final__text {
    font-size: 2.34375vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__text {
    font-size: max(14px, 0.9375vw);
  }
}
.ab-final__buttons {
  display: flex;
  flex-direction: column;
  gap: min(5.12px, 1.0666666667vw);
  width: 100%;
  margin-top: min(25.6px, 5.3333333333vw);
}
@media screen and (width >= 768px) {
  .ab-final__buttons {
    flex-direction: row;
    gap: 0.5208333333vw;
    justify-content: center;
    width: auto;
    margin-top: 2.0833333333vw;
  }
}
@media screen and (width >= 1025px) {
  .ab-final__buttons {
    flex-wrap: wrap;
    gap: 0.625vw;
    justify-content: flex-start;
    margin-top: 0;
  }
}
.ab-final__buttons .primary-button,
.ab-final__buttons .outline-button {
  flex-shrink: 0;
}
@media screen and (width < 1025px) {
  .ab-final__buttons .primary-button,
  .ab-final__buttons .outline-button {
    width: 100%;
  }
}
@media screen and (width < 1025px) and (width >= 768px) {
  .ab-final__buttons .primary-button,
  .ab-final__buttons .outline-button {
    width: -moz-min-content;
    width: min-content;
  }
}