/* =========================================================
   SIX NINE — ABOUT
   File: assets/css/base/about.css
   ========================================================= */


/* =========================================================
   PAGE
   ========================================================= */

.about-page {
  background:
    var(--color-ivory);

  color:
    var(--color-black);
}

.about-page main {
  position: relative;

  overflow: clip;
}


/* =========================================================
   HERO
   ========================================================= */

.about-hero {
  position: relative;

  min-height: 100svh;

  display: flex;
  align-items: flex-end;

  overflow: hidden;

  background:
    var(--color-black);

  color:
    var(--color-white);
}


/* =========================================================
   HERO MEDIA
   ========================================================= */

.about-hero__media {
  position: absolute;

  inset: 0;

  overflow: hidden;

  background:
    var(--color-graphite);
}

.about-hero__media img {
  position: absolute;

  inset:
    -4%
    0;

  width: 100%;
  height: 108%;

  display: block;

  object-fit: cover;
  object-position: center;
}

.about-hero__overlay {
  position: absolute;

  inset: 0;

  z-index: 1;

  background:
    linear-gradient(
      180deg,
      rgba(12, 12, 13, 0.12) 0%,
      rgba(12, 12, 13, 0.18) 30%,
      rgba(12, 12, 13, 0.58) 70%,
      rgba(12, 12, 13, 0.95) 100%
    );
}


/* =========================================================
   HERO CONTENT
   ========================================================= */

.about-hero__container {
  position: relative;

  z-index: 2;

  width: 100%;
}

.about-hero__content {
  display: grid;

  gap:
    clamp(
      28px,
      4vw,
      56px
    );

  width: 100%;

  padding:
    180px
    0
    64px;
}

.about-hero__top {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 24px;
}

.about-hero__location {
  color:
    rgba(
      255,
      255,
      255,
      0.5
    );

  font-size: 0.62rem;
  font-weight: 700;

  letter-spacing: 0.12em;

  text-transform: uppercase;
}

.about-hero__title {
  max-width: 1240px;

  font-family:
    var(--font-display);

  font-size:
    clamp(
      6rem,
      12vw,
      12rem
    );

  font-weight: 500;

  line-height: 0.79;

  letter-spacing: -0.07em;
}

.about-hero__bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;

  gap: 60px;
}

.about-hero__bottom p {
  max-width: 410px;

  margin: 0;

  color:
    rgba(
      255,
      255,
      255,
      0.74
    );

  font-family:
    var(--font-display);

  font-size:
    clamp(
      1.6rem,
      2.8vw,
      2.6rem
    );

  font-weight: 500;

  line-height: 1.04;

  letter-spacing: -0.03em;
}

.about-hero__bottom > span {
  max-width: 360px;

  color:
    rgba(
      255,
      255,
      255,
      0.42
    );

  font-size: 0.64rem;
  font-weight: 700;

  letter-spacing: 0.12em;

  text-transform: uppercase;

  text-align: right;
}


/* =========================================================
   MANIFESTO
   ========================================================= */

.about-manifesto {
  padding:
    clamp(
      120px,
      16vw,
      220px
    )
    0;

  background:
    var(--color-ivory);

  color:
    var(--color-black);
}

.about-manifesto__grid {
  display: grid;

  grid-template-columns:
    minmax(150px, 0.28fr)
    minmax(0, 1.72fr);

  gap:
    clamp(
      60px,
      9vw,
      130px
    );
}

.about-manifesto__label {
  align-self: start;
}

.about-manifesto__content {
  display: grid;

  gap:
    clamp(
      50px,
      8vw,
      90px
    );
}

.about-manifesto__statement {
  max-width: 1080px;

  margin: 0;

  font-family:
    var(--font-display);

  font-size:
    clamp(
      4rem,
      8vw,
      8.4rem
    );

  font-weight: 500;

  line-height: 0.88;

  letter-spacing: -0.055em;
}

.about-manifesto__copy {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 0.82fr);

  gap:
    clamp(
      40px,
      7vw,
      100px
    );

  max-width: 880px;
}


/* =========================================================
   RHYTHM
   ========================================================= */

.about-rhythm {
  background:
    var(--color-black);

  color:
    var(--color-white);
}

.about-rhythm__list {
  border-top:
    1px solid
    var(--border-dark-soft);
}

.about-rhythm-item {
  position: relative;

  display: grid;

  grid-template-columns:
    70px
    minmax(0, 1fr)
    minmax(180px, 0.34fr)
    54px;

  gap: 24px;

  align-items: center;

  min-height: 150px;

  padding:
    24px
    0;

  border-bottom:
    1px solid
    var(--border-dark-soft);

  overflow: hidden;

  color:
    var(--color-white);

  transition:
    background-color
      var(--duration-normal)
      var(--ease-premium),
    padding-left
      var(--duration-normal)
      var(--ease-premium),
    padding-right
      var(--duration-normal)
      var(--ease-premium);
}

.about-rhythm-item::before {
  content: "";

  position: absolute;

  inset:
    0
    auto
    0
    0;

  width: 3px;

  transform:
    scaleY(0);

  transform-origin:
    bottom;

  transition:
    transform
    var(--duration-normal)
    var(--ease-premium);
}

.about-rhythm-item--play::before {
  background:
    var(--color-padel);
}

.about-rhythm-item--dine::before {
  background:
    var(--color-coffee);
}

.about-rhythm-item--meet::before,
.about-rhythm-item--unwind::before {
  background:
    var(--color-gold);
}

.about-rhythm-item--move::before {
  background:
    var(--color-pilates);
}

.about-rhythm-item__number {
  color:
    rgba(
      255,
      255,
      255,
      0.34
    );

  font-size: 0.6rem;
  font-weight: 700;

  letter-spacing: 0.13em;
}

.about-rhythm-item strong {
  font-family:
    var(--font-display);

  font-size:
    clamp(
      3.2rem,
      7vw,
      7rem
    );

  font-weight: 500;

  line-height: 0.88;

  letter-spacing: -0.055em;
}

.about-rhythm-item__caption {
  color:
    rgba(
      255,
      255,
      255,
      0.48
    );

  font-size: 0.68rem;
  font-weight: 600;

  line-height: 1.5;

  letter-spacing: 0.05em;
}

.about-rhythm-item__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 44px;
  height: 44px;

  border:
    1px solid
    rgba(
      255,
      255,
      255,
      0.18
    );

  border-radius: 50%;

  transition:
    background-color
      var(--duration-normal)
      var(--ease-premium),
    color
      var(--duration-normal)
      var(--ease-premium),
    transform
      var(--duration-normal)
      var(--ease-premium);
}

.about-rhythm-item__arrow svg {
  width: 18px;
  height: 18px;
}


/* =========================================================
   DESTINATION
   ========================================================= */

.about-destination {
  padding:
    clamp(
      110px,
      14vw,
      190px
    )
    0;

  background:
    var(--color-white);

  color:
    var(--color-black);
}

.about-destination__grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.12fr)
    minmax(320px, 0.88fr);

  grid-template-rows:
    auto
    minmax(300px, 0.55fr);

  gap: 12px;
}


/* =========================================================
   DESTINATION MAIN IMAGE
   ========================================================= */

.about-destination__main {
  position: relative;

  grid-row:
    1
    / 3;

  min-height: 860px;

  margin: 0;

  overflow: hidden;

  background:
    var(--color-graphite);
}

.about-destination__main img {
  width: 100%;
  height: 110%;

  display: block;

  object-fit: cover;
  object-position: center;

  transform:
    translateY(-5%);
}


/* =========================================================
   DESTINATION CONTENT
   ========================================================= */

.about-destination__content {
  display: grid;

  align-content: start;

  gap: 26px;

  padding:
    clamp(
      20px,
      4vw,
      54px
    )
    clamp(
      16px,
      4vw,
      48px
    );
}

.about-destination__content > p {
  max-width: 480px;
}

.about-destination__address {
  display: grid;

  gap: 14px;

  max-width: 450px;

  margin-top: 12px;

  padding-top: 26px;

  border-top:
    1px solid
    var(--border-light);
}

.about-destination__address > span {
  color:
    var(--color-gold);

  font-size: 0.6rem;
  font-weight: 700;

  letter-spacing: 0.12em;

  text-transform: uppercase;
}

.about-destination__address address {
  color:
    var(--text-secondary);

  font-style: normal;

  font-size: 0.82rem;

  line-height: 1.75;
}


/* =========================================================
   DESTINATION SECOND IMAGE
   ========================================================= */

.about-destination__secondary {
  position: relative;

  min-height: 380px;

  margin: 0;

  overflow: hidden;

  background:
    var(--color-graphite);
}

.about-destination__secondary img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center;

  transition:
    transform
    900ms
    var(--ease-premium);
}


/* =========================================================
   PHILOSOPHY
   ========================================================= */

.about-philosophy {
  padding:
    clamp(
      110px,
      15vw,
      200px
    )
    0;

  background:
    var(--color-ivory);

  color:
    var(--color-black);
}

.about-philosophy__grid {
  display: grid;

  grid-template-columns:
    minmax(0, 0.9fr)
    minmax(0, 1.1fr);

  gap:
    clamp(
      60px,
      10vw,
      150px
    );
}

.about-philosophy__lead {
  display: grid;

  align-content: start;

  gap: 24px;
}

.about-philosophy__title {
  max-width: 700px;

  margin: 0;

  font-family:
    var(--font-display);

  font-size:
    clamp(
      4rem,
      7vw,
      7.4rem
    );

  font-weight: 500;

  line-height: 0.88;

  letter-spacing: -0.055em;
}

.about-philosophy__principles {
  display: grid;

  border-top:
    1px solid
    var(--color-black);
}


/* =========================================================
   PRINCIPLE
   ========================================================= */

.about-principle {
  display: grid;

  grid-template-columns:
    46px
    minmax(0, 1fr);

  gap: 20px;

  min-height: 180px;

  padding:
    28px
    0;

  border-bottom:
    1px solid
    var(--border-light);
}

.about-principle > span {
  color:
    var(--color-gold);

  font-size: 0.6rem;
  font-weight: 700;

  letter-spacing: 0.12em;
}

.about-principle > div {
  display: grid;

  align-content: center;

  gap: 12px;
}

.about-principle strong {
  font-family:
    var(--font-display);

  font-size:
    clamp(
      2rem,
      3.4vw,
      3.3rem
    );

  font-weight: 500;

  line-height: 0.96;

  letter-spacing: -0.04em;
}

.about-principle p {
  max-width: 460px;

  color:
    var(--text-secondary);

  font-size: 0.78rem;

  line-height: 1.7;
}


/* =========================================================
   PHOTO BREAK
   ========================================================= */

.about-photo-break {
  position: relative;

  min-height: 86svh;

  display: flex;
  align-items: flex-end;

  overflow: hidden;

  background:
    var(--color-black);

  color:
    var(--color-white);
}

.about-photo-break > img {
  position: absolute;

  inset:
    -4%
    0;

  width: 100%;
  height: 108%;

  display: block;

  object-fit: cover;
  object-position: center;
}

.about-photo-break__overlay {
  position: absolute;

  inset: 0;

  z-index: 1;

  background:
    linear-gradient(
      180deg,
      rgba(12, 12, 13, 0.06) 26%,
      rgba(12, 12, 13, 0.84) 100%
    );
}

.about-photo-break__content {
  position: relative;

  z-index: 2;

  width: 100%;

  padding-bottom:
    clamp(
      50px,
      7vw,
      88px
    );
}

.about-photo-break__content > div {
  display: grid;

  gap: 22px;

  max-width: 1120px;
}

.about-photo-break blockquote {
  margin: 0;

  font-family:
    var(--font-display);

  font-size:
    clamp(
      4rem,
      8vw,
      8rem
    );

  font-weight: 500;

  line-height: 0.86;

  letter-spacing: -0.06em;
}


/* =========================================================
   EXPERIENCES
   ========================================================= */

.about-experiences {
  padding:
    clamp(
      110px,
      15vw,
      200px
    )
    0;

  background:
    var(--color-white);

  color:
    var(--color-black);
}

.about-experiences__header {
  display: grid;

  gap: 22px;

  max-width: 820px;

  margin-bottom:
    clamp(
      56px,
      8vw,
      90px
    );
}

.about-experiences__grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 1px;

  border:
    1px solid
    var(--border-light);

  background:
    var(--border-light);
}


/* =========================================================
   EXPERIENCE CARD
   ========================================================= */

.about-experience-card {
  position: relative;

  display: grid;

  align-content: end;

  gap: 14px;

  min-height: 360px;

  padding: 28px;

  overflow: hidden;

  background:
    var(--color-white);

  color:
    var(--color-black);

  transition:
    background-color
      var(--duration-normal)
      var(--ease-premium),
    color
      var(--duration-normal)
      var(--ease-premium);
}

.about-experience-card::after {
  content: "";

  position: absolute;

  right: -240px;
  bottom: -270px;

  width: 430px;
  height: 430px;

  border-radius: 50%;

  opacity: 0.75;

  transform:
    scale(0.8);

  transition:
    transform
    900ms
    var(--ease-premium);
}

.about-experience-card--padel::after {
  background:
    radial-gradient(
      circle,
      rgba(255, 46, 138, 0.23),
      transparent 68%
    );
}

.about-experience-card--coffee::after {
  background:
    radial-gradient(
      circle,
      rgba(106, 74, 52, 0.22),
      transparent 68%
    );
}

.about-experience-card--private::after {
  background:
    radial-gradient(
      circle,
      rgba(185, 154, 91, 0.25),
      transparent 68%
    );
}

.about-experience-card--pilates::after {
  background:
    radial-gradient(
      circle,
      rgba(169, 178, 154, 0.28),
      transparent 68%
    );
}

.about-experience-card > * {
  position: relative;

  z-index: 2;
}

.about-experience-card__number {
  position: absolute;

  top: 24px;
  left: 28px;

  color:
    var(--text-muted);

  font-size: 0.58rem;
  font-weight: 700;

  letter-spacing: 0.12em;
}

.about-experience-card strong {
  max-width: 520px;

  font-family:
    var(--font-display);

  font-size:
    clamp(
      2.7rem,
      5vw,
      5rem
    );

  font-weight: 500;

  line-height: 0.9;

  letter-spacing: -0.05em;
}

.about-experience-card p {
  max-width: 370px;

  color:
    var(--text-secondary);

  font-size: 0.78rem;

  line-height: 1.7;

  transition:
    color
    var(--duration-normal)
    var(--ease-premium);
}

.about-experience-card__status {
  width: fit-content;

  margin-top: 4px;

  padding:
    7px
    10px;

  border:
    1px solid
    rgba(169, 178, 154, 0.4);

  border-radius:
    var(--radius-pill);

  color:
    var(--color-pilates);

  font-size: 0.54rem;
  font-weight: 700;

  letter-spacing: 0.1em;

  text-transform: uppercase;
}


/* =========================================================
   FINAL
   ========================================================= */

.about-final {
  position: relative;

  padding:
    clamp(
      140px,
      18vw,
      260px
    )
    0;

  overflow: hidden;

  background:
    var(--color-black);

  color:
    var(--color-white);
}

.about-final::before {
  content: "";

  position: absolute;

  width: 1100px;
  height: 1100px;

  left: 50%;
  bottom: -910px;

  transform:
    translateX(-50%);

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(185, 154, 91, 0.3),
      transparent 68%
    );

  pointer-events: none;
}

.about-final__inner {
  position: relative;

  z-index: 2;

  display: grid;

  justify-items: center;

  gap: 28px;

  text-align: center;
}

.about-final__actions {
  display: flex;
  align-items: center;

  gap: 8px;

  margin-top: 6px;
}


/* =========================================================
   MOBILE CTA
   ========================================================= */

.about-mobile-cta {
  position: fixed;

  left: 0;
  right: 0;
  bottom: 0;

  z-index: 90;

  display: none;

  padding:
    9px
    12px
    calc(
      9px +
      env(safe-area-inset-bottom)
    );

  border-top:
    1px solid
    var(--border-light);

  background:
    rgba(
      242,
      238,
      229,
      0.96
    );

  backdrop-filter:
    blur(18px);

  -webkit-backdrop-filter:
    blur(18px);
}

.about-mobile-cta
.btn {
  width: 100%;
}


/* =========================================================
   IMAGE SAFETY
   ========================================================= */

.about-page
img:not([src]),
.about-page
img[src=""] {
  visibility: hidden;
}

.about-hero__media,
.about-destination__main,
.about-destination__secondary,
.about-photo-break {
  background-color:
    var(--color-graphite);
}


/* =========================================================
   HOVER
   ========================================================= */

@media (hover: hover) {
  .about-rhythm-item:hover {
    padding-left: 18px;
    padding-right: 18px;

    background:
      rgba(
        255,
        255,
        255,
        0.025
      );
  }

  .about-rhythm-item:hover::before {
    transform:
      scaleY(1);
  }

  .about-rhythm-item:hover
  .about-rhythm-item__arrow {
    background:
      var(--color-white);

    color:
      var(--color-black);

    transform:
      translateX(4px);
  }


  .about-destination__secondary:hover
  img {
    transform:
      scale(1.035);
  }


  .about-experience-card:hover {
    background:
      var(--color-black);

    color:
      var(--color-white);
  }

  .about-experience-card:hover::after {
    transform:
      scale(1.35);
  }

  .about-experience-card:hover p {
    color:
      rgba(
        255,
        255,
        255,
        0.58
      );
  }

  .about-experience-card:hover
  .about-experience-card__number {
    color:
      rgba(
        255,
        255,
        255,
        0.36
      );
  }
}


/* =========================================================
   TOUCH
   ========================================================= */

@media (hover: none) {
  .about-rhythm-item:hover {
    padding-left: 0;
    padding-right: 0;

    background:
      transparent;
  }

  .about-rhythm-item:hover::before {
    transform:
      scaleY(0);
  }

  .about-rhythm-item:hover
  .about-rhythm-item__arrow {
    background:
      transparent;

    color:
      var(--color-white);

    transform:
      none;
  }


  .about-destination__secondary img {
    transform:
      none !important;
  }


  .about-experience-card:hover {
    background:
      var(--color-white);

    color:
      var(--color-black);
  }

  .about-experience-card:hover::after {
    transform:
      scale(0.8);
  }

  .about-experience-card:hover p {
    color:
      var(--text-secondary);
  }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (
  prefers-reduced-motion: reduce
) {
  .about-hero__media img,
  .about-rhythm-item,
  .about-rhythm-item::before,
  .about-rhythm-item__arrow,
  .about-destination__main img,
  .about-destination__secondary img,
  .about-photo-break > img,
  .about-experience-card,
  .about-experience-card::after {
    transform:
      none !important;

    transition:
      none !important;
  }
}