
   /* LUXURY REAL ESTATE — PREMIUM UI SYSTEM
   Drop-in replacement for the supplied stylesheet.
   Keeps the existing class names while radically upgrading
   depth, hierarchy, responsive behavior and interactions.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  /* --ink: #3b3b3b; */
  --ink: #252525;
  /* --ink-2: #2b2b2b; */
  --ink-2: #252525;
  --ink-3: #252525;
  --paper: #f7f4ee;
  --paper-2: #efebe2;
  --white: #fff;
  --text: #f5f2eb;
  --dark-text: #15191c;
  --muted: #9c9d98;
  --muted-dark: #666b69;

  --gold: #c7a56a;
  --gold-light: #e4cf9f;
  --gold-dark: #94713a;

  --line: rgba(228, 207, 159, .18);
  --line-dark: rgba(21, 25, 28, .12);

  --serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;

  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-soft: cubic-bezier(.16, 1, .3, 1);
  --container: 1360px;
  --section-space: clamp(80px, 7vw, 150px);
  --radius: 2px;
}

/* ================= RESET ================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  background: var(--ink);
}

body {
  background:
    radial-gradient(circle at 10% 20%, rgba(199, 165, 106, .045), transparent 28%), var(--ink);
  color: var(--text);
  font: 300 15px/1.75 var(--sans);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::selection {
  background: var(--gold);
  color: var(--ink);
}

img {
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

::selection {
  background: var(--gold);
  color: var(--ink);
}

/* ================= GRAIN / ATMOSPHERE ================= */

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1000;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* ================= PRELOADER ================= */

.preloader {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at center, #1a2227 0, #080c0f 65%);
  display: grid;
  place-items: center;
  z-index: 9999;
  transition: opacity 1s var(--ease), visibility 1s;
}

.preloader::before,
.preloader::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border: 1px solid rgba(199,165,106,.18);
  border-radius: 50%;
  animation: loaderPulse 2.8s infinite var(--ease);
}

.preloader::after {
  width: 140px;
  height: 140px;
  animation-delay: -.8s;
}

.preloader span {
  position: relative;
  z-index: 2;
  font: 500 18px var(--serif);
  letter-spacing: 7px;
  text-transform: uppercase;
  color: var(--gold-light);
}

.preloader.done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes loaderPulse {
  0%,100% { transform: scale(.82); opacity: .15; }
  50% { transform: scale(1.08); opacity: .6; }
}

/* ================= HEADER ================= */

/* ================= HEADER ================= */

.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 500;
  border-bottom: 1px solid var(--gold);

  backdrop-filter: blur(8px) saturate(50%);
  transition:
    height .65s var(--ease),
    background .65s var(--ease),
    border-color .65s var(--ease),
    box-shadow .65s var(--ease);
}

/* NEW: container handles layout */
.header .container {
  height: 90px;
  /* padding: 0 clamp(24px, 5vw, 78px); */
  padding: 0 5%;

  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* SCROLL EFFECT */
.header.scrolled .container {
  height: 75px;
}

.header.scrolled {
  background: rgba(9, 13, 16, .78);
  backdrop-filter: blur(24px) saturate(120%);
  -webkit-backdrop-filter: blur(24px) saturate(120%);
  border-color: var(--line);
  box-shadow: 0 15px 60px rgba(0,0,0,.16);
}

/* LOGO */
.logo {
  display: flex;
  align-items: center;
}

.logo-mark {
  height: 70px;
}

/* NAV WRAPPER FIX */
.nav-links {
  display: flex;
  align-items: center;
}

/* NAV */
.nav {
  display: flex;
  gap: clamp(22px, 2.6vw, 42px);
}

.nav a {
  position: relative;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 1.7px;
  color: #d8d7d2;
  padding: 12px 0;
  transition: color .35s;
}

/* .nav a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  height: 5px;
  border: 1px solid var(--gold);
  transform: scale(0) rotate(45deg);
  transition: transform .35s var(--ease);
} */

.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  transition: width .5s var(--ease);
}

.nav a:hover,
.nav a.active {
  color: var(--gold-light);
}

.nav a:hover::before,
.nav a.active::before {
  transform: scale(1) rotate(45deg);
}

.nav a:hover::after,
.nav a.active::after {
  width: 100%;
}

/* HEADER ACTIONS (NEW GROUP) */
.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* CTA */
.header-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(199,165,106,.35);
  background: rgba(199,165,106,.035);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 1.5px;
  color: var(--gold-light);
  transition:
    background .4s var(--ease),
    border-color .4s,
    transform .4s var(--ease);
}

.header-cta::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 0 rgba(199,165,106,.4);
  transition: box-shadow .5s;
}

.header-cta:hover {
  border-color: var(--gold);
  background: rgba(199,165,106,.1);
  transform: translateY(-2px);
}

.header-cta:hover::before {
  box-shadow: 0 0 0 7px rgba(199,165,106,.08);
}

.header-cta span {
  font-size: 13px;
  transition: transform .35s var(--ease);
}

.header-cta:hover span {
  transform: translateX(4px);
}

/* MENU BUTTON */
.menu {
  display: none;
  width: 45px;
  height: 45px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line);
}

.menu span {
  display: block;
  width: 21px;
  height: 1px;
  background: var(--gold);
  margin: 5px auto;
  transition: transform .4s var(--ease);
}

.mobile-nav {
  display: none;
}

/* ================= HERO ================= */

.hero {
  height: max(760px, 100svh);
  min-height: 700px;
  position: relative;
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(5,8,10,.94) 0%, rgba(5,8,10,.74) 37%, rgba(5,8,10,.25) 70%, rgba(5,8,10,.12)),
    linear-gradient(0deg, rgba(5,8,10,.7), transparent 35%);
  pointer-events: none;
}

.hero::after {
  content: "";
  position: absolute;
  width: 46vw;
  height: 46vw;
  right: -15vw;
  bottom: -28vw;
  border: 3px solid rgba(163, 139, 84, 0.305);
  border-radius: 50%;
  backdrop-filter: blur(6px) saturate(100%);
  box-shadow:
    0 0 0 90px rgba(228,207,159,.015),
    0 0 0 180px rgba(228,207,159,.01);
  z-index: 1;
}


/* ================= HERO IMAGE CAROUSEL ================= */

.hero-image {
  position: absolute;
  inset: 22px;
  overflow: hidden;

  /* GOLD OUTER FRAME */
  border: 1px solid rgba(228, 207, 159, .65);

  box-shadow:
    0 0 0 1px rgba(228, 207, 159, .08),
    0 25px 80px rgba(0, 0, 0, .35);

  z-index: 0;
}

/* Inner gold glow */
.hero-image::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(228, 207, 159, .16);
  z-index: 5;
  pointer-events: none;
}


/* Individual slides */
.hero-slide {
  position: absolute;
  inset: -3%;

  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  opacity: 0;

  animation:
    heroCarousel 24s infinite,
    heroZoom 24s infinite;

  will-change: opacity, transform;
}


/* Images */

.slide-1 {
  /* background-image: url("/assets/images/hero-bg/hero-bg-1.svg"); */
  animation-delay: 0s, 0s;
}

.slide-2 {
  /* background-image:
    url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2400&q=90&fm=webp"); */
    /* background-image: url("/assets/images/hero-bg/hero-bg-2.svg"); */

  animation-delay: 8s, 8s;
}

.slide-3 {
  /* background-image:
    url("https://images.unsplash.com/photo-1600566753086-00f18fb6b3ea?auto=format&fit=crop&w=2400&q=90&fm=webp"); */
    /* background-image: url("/assets/images/hero-bg/hero-bg-3.svg"); */

  animation-delay: 16s, 16s;
}


/*
  Each image:
  - fades in
  - stays visible
  - fades out

  24 seconds total
  = 8 seconds per image
*/

@keyframes heroCarousel {
  0% {
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  30% {
    opacity: 1;
  }

  38% {
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}


/* Very subtle cinematic movement */
@keyframes heroZoom {
  0% {
    transform: scale(1.04) translate3d(0, 0, 0);
  }

  100% {
    transform: scale(1.11) translate3d(-.8%, -.5%, 0);
  }
}

/* @keyframes heroDrift {
  from { transform: scale(1.04) translate3d(0,0,0); }
  to { transform: scale(1.09) translate3d(-.6%, -.5%, 0); }
} */

.hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;

  background:
    radial-gradient(
      circle at 72% 45%,
      transparent 0,
      rgba(6,9,11,.16) 38%,
      rgba(6,9,11,.52) 100%
    );

  pointer-events: none;
}


.hero-inner {
  position: relative;
  z-index: 3;
  margin-left: clamp(7%, 10vw, 12%);
  max-width: 760px;
  padding-top: 5vh;
}

.kicker {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  color: var(--gold-light);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 25px;
}

.kicker::before {
  content: "";
  width: 38px;
  height: 1px;
  background: var(--gold);
}

.hero h1 {
  max-width: 820px;
  font: 400 clamp(60px, 7.8vw, 122px)/.83 var(--serif);
  letter-spacing: -.055em;
  text-wrap: balance;
  text-shadow: 0 12px 45px rgba(0,0,0,.22);
}

.hero h1 em,
h2 em {
  font-style: italic;
  color: var(--gold-light);
}

.hero p {
  max-width: 500px;
  color: #c6c7c2;
  margin: 31px 0 34px;
  font-size: 14px;
  line-height: 1.8;
}

.button {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  min-height: 51px;
  padding: 0 23px;
  background: var(--gold);
  border: 1px solid var(--gold);
  color: #111519;
  text-transform: uppercase;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 1.7px;
  transition:
    transform .45s var(--ease),
    background .45s,
    color .45s,
    box-shadow .45s;
}

.button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.35) 50%, transparent 80%);
  transform: translateX(-120%);
  transition: transform .7s var(--ease);
}

.button:hover::before {
  transform: translateX(120%);
}

.button:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 35px rgba(199,165,106,.18);
}

.button span {
  position: relative;
  /* font-size: 16px; */
  font-size: 13px;
  transition: transform .4s var(--ease);
}

.button:hover span {
  transform: translateX(5px);
}

.button.light {
  background: rgba(255,255,255,.025);
  color: var(--gold-light);
  border-color: rgba(228,207,159,.32);
  backdrop-filter: blur(10px);
}

.button.light:hover {
  background: var(--gold);
  color: #111519;
  border-color: var(--gold);
}

.hero-meta {
  position: absolute;
  right: 5%;
  top: 49%;
  z-index: 4;

  display: flex;
  align-items: center;
  gap: 13px;

  color: #aaa;
  font-size: 8px;
  letter-spacing: 2.5px;
  text-transform: uppercase;

  writing-mode: vertical-rl;
}

.hero-meta span:first-child {
  color: var(--gold);
}

.hero-meta b {
  width: 1px;
  height: 45px;
  background: linear-gradient(var(--gold), transparent);
}

.scroll-cue {
  position: absolute;
  bottom: 34px;
  left: clamp(7%, 10vw, 12%);
  z-index: 4;

  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #a8aaa6;

  display: flex;
  align-items: center;
}

.scroll-cue span {
  display: inline-block;
  width: 1px;
  height: 45px;

  background: linear-gradient(var(--gold), transparent);

  margin-right: 14px;

  animation: scrollPulse 2s infinite;
}

@keyframes scrollPulse {
  0%,100% {
    transform: scaleY(.6);
    transform-origin: top;
    opacity: .45;
  }

  50% {
    transform: scaleY(1);
    opacity: 1;
  }
}





/* HERO SECTION RESPONSIVE */

/* =========================================================
   HERO RESPONSIVE IMPROVEMENTS
   Desktop remains unchanged
   ========================================================= */


/* ---------------------------------------------------------
   BUTTON IMPROVEMENT
   --------------------------------------------------------- */

.hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.button {
  min-height: 54px;
  padding: 0 24px;

  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.5px;

  white-space: nowrap;
}

.button-text {
  position: relative;
  z-index: 2;
}

.button-icon {
  position: relative !important;
  z-index: 2;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 17px !important;
  line-height: 1;

  transition: transform .4s var(--ease);
}

.button:hover .button-icon {
  transform: translateX(5px);
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .hero {
    height: max(700px, 100svh);
    min-height: 650px;
  }

  .hero-image {
    inset: 14px;
  }

  .hero-inner {
    margin-left: 7%;
    margin-right: 7%;
    max-width: 650px;
    padding-top: 4vh;
  }

  .hero h1 {
    max-width: 650px;
    font-size: clamp(54px, 8vw, 82px);
    line-height: .88;
  }

  .hero p {
    max-width: 480px;
    margin: 26px 0 30px;

    font-size: 14px;
    line-height: 1.75;

    color: #e0e0dc;
    text-shadow: 0 2px 12px rgba(0,0,0,.75);
  }

  .hero-actions {
    gap: 10px;
  }

  .button {
    min-height: 52px;
    padding: 0 20px;
    font-size: 9px;
  }

  .hero-meta {
    right: 3%;
  }

  .scroll-cue {
    left: 7%;
    bottom: 25px;
  }
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

  .hero {
    height: 100svh;
    min-height: 680px;

    align-items: center;
  }


  /* -----------------------------------------
     IMAGE FRAME
     ----------------------------------------- */

  .hero-image {
    inset: 10px;

    border-color: rgba(228, 207, 159, .48);

    box-shadow:
      0 0 0 1px rgba(228, 207, 159, .06),
      0 15px 50px rgba(0, 0, 0, .45);
  }

  .hero-image::before {
    inset: 5px;
    border-color: rgba(228, 207, 159, .10);
  }


  /* -----------------------------------------
     STRONGER TEXT BACKGROUND
     ----------------------------------------- */

  .hero::before {
    background:
      linear-gradient(
        90deg,
        rgba(4, 7, 9, .88) 0%,
        rgba(4, 7, 9, .72) 52%,
        rgba(4, 7, 9, .42) 100%
      ),
      linear-gradient(
        0deg,
        rgba(4, 7, 9, .82) 0%,
        rgba(4, 7, 9, .42) 42%,
        rgba(4, 7, 9, .20) 100%
      );
  }

  .hero-shade {
    background:
      radial-gradient(
        ellipse at 45% 48%,
        rgba(0,0,0,.08) 0%,
        rgba(0,0,0,.34) 60%,
        rgba(0,0,0,.70) 100%
      );
  }


  /* -----------------------------------------
     HERO CONTENT
     ----------------------------------------- */

  .hero-inner {

    width: auto;
    max-width: none;

    margin-left: 9%;
    margin-right: 9%;

    padding-top: 0;

    transform: translateY(-15px);
  }


  /* -----------------------------------------
     KICKER
     ----------------------------------------- */

  .kicker {
    gap: 9px;

    margin-bottom: 18px;

    font-size: 8px;
    letter-spacing: 2.4px;

    text-shadow: 0 2px 10px rgba(0,0,0,.8);
  }

  .kicker::before {
    width: 28px;
  }


  /* -----------------------------------------
     HEADING
     ----------------------------------------- */

  .hero h1 {
    max-width: 100%;

    font-size: clamp(48px, 14vw, 70px);
    line-height: .91;

    letter-spacing: -.045em;

    text-wrap: balance;

    text-shadow:
      0 3px 15px rgba(0,0,0,.75),
      0 10px 35px rgba(0,0,0,.5);
  }


  /* -----------------------------------------
     DESCRIPTION
     ----------------------------------------- */

  .hero p {
    max-width: 100%;

    margin: 22px 0 27px;

    font-size: 13px;
    line-height: 1.75;

    color: #f0f0eb;

    text-shadow:
      0 2px 5px rgba(0,0,0,.9),
      0 5px 18px rgba(0,0,0,.75);
  }


  /* -----------------------------------------
     BUTTONS
     ----------------------------------------- */

  .hero-actions {

    display: flex;

    width: 100%;

    flex-direction: column;
    align-items: stretch;

    gap: 10px;
  }

  .button {

    width: 100%;

    min-height: 52px;

    padding: 0 18px;

    justify-content: space-between;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 1.6px;
  }

  .button-icon {
    font-size: 18px !important;
  }


  /* -----------------------------------------
     SECONDARY BUTTON
     ----------------------------------------- */

  .button-light,
  .button.light {
    background: rgba(8, 11, 13, .38);

    color: #f1ddb0;

    border-color: rgba(228, 207, 159, .45);

    backdrop-filter: blur(12px);
  }


  /* -----------------------------------------
     PAGE COUNTER
     ----------------------------------------- */

  .hero-meta {

    top: auto;
    right: 8%;

    bottom: 92px;

    font-size: 7px;
    letter-spacing: 2px;
  }

  .hero-meta b {
    height: 30px;
  }


  /* -----------------------------------------
     SCROLL INDICATOR
     ----------------------------------------- */

  .scroll-cue {

    left: 9%;
    bottom: 24px;

    font-size: 7px;
    letter-spacing: 1.8px;
  }

  .scroll-cue span {
    height: 30px;
    margin-right: 10px;
  }


  /* -----------------------------------------
     REMOVE LARGE DECORATIVE CIRCLE
     ----------------------------------------- */

  .hero::after {
    width: 85vw;
    height: 85vw;

    right: -48vw;
    bottom: -42vw;

    border-width: 1px;

    opacity: .55;

    box-shadow:
      0 0 0 40px rgba(228,207,159,.012),
      0 0 0 80px rgba(228,207,159,.008);
  }
}


/* ---------------------------------------------------------
   SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 390px) {

  .hero {
    min-height: 650px;
  }

  .hero-inner {
    margin-left: 8%;
    margin-right: 8%;
  }

  .kicker {
    margin-bottom: 15px;
    font-size: 7px;
  }

  .hero h1 {
    font-size: clamp(43px, 13.5vw, 58px);
    line-height: .92;
  }

  .hero p {
    margin-top: 19px;
    margin-bottom: 23px;

    font-size: 12px;
    line-height: 1.7;
  }

  .button {
    min-height: 50px;
    font-size: 9px;
    letter-spacing: 1.35px;
  }

  .hero-meta {
    display: none;
  }

  .scroll-cue {
    bottom: 18px;
  }
}


/* ---------------------------------------------------------
   VERY SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 350px) {

  .hero {
    min-height: 620px;
  }

  .hero-inner {
    margin-left: 7%;
    margin-right: 7%;
  }

  .hero h1 {
    font-size: 41px;
  }

  .hero p {
    font-size: 11.5px;
    line-height: 1.65;
  }

  .button {
    min-height: 47px;
    font-size: 8px;
  }
}


/* ---------------------------------------------------------
   ACCESSIBILITY
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

  .hero-slide {
    animation: none;
  }

  .slide-1 {
    opacity: 1;
  }

  .scroll-cue span {
    animation: none;
  }

  .button,
  .button::before,
  .button-icon {
    transition: none;
  }
}

/* ================= TRUST TICKER ================= */
/* =========================================================
   TRUST TICKER
   ========================================================= */

.trust-ticker {
  position: relative;
  width: 100%;
  overflow: hidden;

  background: var(--ink-2);

  border-top: 1px solid rgba(228, 207, 159, .18);
  border-bottom: 1px solid rgba(228, 207, 159, .18);

  padding: 17px 0;

  white-space: nowrap;

  /* Prevent accidental horizontal page scrolling */
  isolation: isolate;
}


/* =========================================================
   MOVING TRACK
   ========================================================= */

.trust-track {
  display: flex;
  align-items: center;

  width: max-content;

  animation: trustMarquee 55s linear infinite;

  will-change: transform;

  /* Important for smooth mobile animation */
  transform: translate3d(0, 0, 0);

  backface-visibility: hidden;
}


/* =========================================================
   INDIVIDUAL ITEM
   ========================================================= */

.trust-item {
  display: inline-flex;
  align-items: center;

  flex-shrink: 0;

  gap: 10px;

  color: #ffffff;

  font-size: 14px;
  font-weight: 400;

  letter-spacing: 1.2px;

  text-transform: uppercase;

  line-height: 1;
}


/* =========================================================
   GOLD CHECK
   ========================================================= */

.trust-check {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  flex-shrink: 0;

  width: 20px;
  height: 20px;

  color: var(--gold);

  border: 1px solid rgba(228, 207, 159, .45);

  font-size: 13px;
  font-weight: 600;

  line-height: 1;
}


/* =========================================================
   SEPARATORS
   ========================================================= */

.trust-separator {
  display: block;

  flex-shrink: 0;

  width: 4px;
  height: 4px;

  margin: 0 38px;

  background: var(--gold);

  border-radius: 50%;

  opacity: 1;
}


/* =========================================================
   INFINITE MOVEMENT
   ========================================================= */

@keyframes trustMarquee {

  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }

}


/* =========================================================
   DESKTOP HOVER
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

  .trust-ticker:hover .trust-track {
    animation-play-state: paused;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .trust-ticker {

    padding: 14px 0;

    /* Keep ticker above accidental content */
    overflow: hidden;
  }


  .trust-track {

    /*
      Faster than desktop but still readable.
      Increase to 35s if you want slower movement.
    */
    animation-duration: 38s;

    /*
      Forces GPU rendering on mobile
    */
    transform: translate3d(0, 0, 0);
  }


  .trust-item {

    font-size: 9px;

    font-weight: 500;

    letter-spacing: 1.4px;

    gap: 8px;
  }


  .trust-check {

    width: 17px;
    height: 17px;

    font-size: 11px;
  }


  .trust-separator {

    width: 3px;
    height: 3px;

    margin: 0 22px;
  }


  /*
    IMPORTANT:
    Do NOT use :hover rules on mobile.
    The animation remains continuous.
  */

}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 390px) {

  .trust-ticker {
    padding: 13px 0;
  }


  .trust-track {
    animation-duration: 34s;
  }


  .trust-item {

    font-size: 8px;

    letter-spacing: 1.25px;

    gap: 7px;
  }


  .trust-check {

    width: 16px;
    height: 16px;

    font-size: 10px;
  }


  .trust-separator {
    margin: 0 19px;
  }

}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 350px) {

  .trust-track {
    animation-duration: 30s;
  }


  .trust-item {

    font-size: 7.5px;

    letter-spacing: 1.1px;
  }


  .trust-check {

    width: 15px;
    height: 15px;

    font-size: 9px;
  }


  .trust-separator {
    margin: 0 16px;
  }

}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .trust-track {
    animation: none;
    transform: none;
  }

}


/* ================= GLOBAL SECTIONS ================= */

.section {
  position: relative;
  padding: var(--section-space) 5%;
  border-top: 1px solid var(--line);
  overflow: hidden;
}

.section::before {
  content: attr(data-section);
  position: absolute;
  top: clamp(35px, 5vw, 70px);
  left: 7%;
  font-size: 8px;
  letter-spacing: 3px;
  color: rgba(228,207,159,.38);
  text-transform: uppercase;
}

.section-layout {
  max-width: var(--container);
  margin: auto;
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(55px, 8vw, 130px);
  align-items: center;
}

.copy h2,
.section-top h2,
.center h2,
.numbers-head h2,
.brochure h2 {
  font: 400 clamp(48px, 5.2vw, 82px)/.9 var(--serif);
  /* letter-spacing: -.045em; */
  margin-bottom: 27px;
  text-wrap: balance;
}

.copy > p,
.section-top > div > p,
.center > p,
.numbers-head > p,
.brochure > div > p {
  max-width: 510px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.9;
}

.arrow-link {
  position: relative;
  display: inline-flex;
  gap: 17px;
  color: var(--gold-light);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 1.8px;
  margin-top: 32px;
  padding-bottom: 8px;
}

.arrow-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 26px;
  height: 1px;
  background: var(--gold);
  transition: width .5s var(--ease);
}

.arrow-link:hover::after {
  width: 100%;
}

.arrow-link span {
  font-size: 15px;
  transition: transform .4s var(--ease);
}

.arrow-link:hover span {
  transform: translateX(6px);
}

/* ================= EDITORIAL PHOTO ================= */

.large-photo {
  position: relative;
  height: clamp(500px, 45vw, 650px);
  overflow: hidden;
}

.large-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(0,0,0,.42), transparent 45%);
  pointer-events: none;
}

.large-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.1s var(--ease);
}

.large-photo:hover img {
  transform: scale(1.055);
}

.large-photo::after {
  content: "";
  position: absolute;
  inset: 15px;
  z-index: 2;
  border: 1px solid rgba(255,255,255,.2);
  pointer-events: none;
}

.large-photo figcaption {
  position: absolute;
  bottom: 23px;
  left: 25px;
  z-index: 3;
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #eee;
}

/* ================= NUMBERS ================= */


/* =========================================================
   TRACK RECORD / NUMBERS
   RESPONSIVE PREMIUM DESIGN
========================================================= */

.numbers {
  position: relative;
  isolation: isolate;

  width: calc(100% - 10%);
  max-width: 1600px;

  margin: clamp(70px, 10vw, 150px) auto;

  padding: clamp(55px, 7vw, 100px)
           clamp(24px, 6vw, 90px);

  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  align-items: center;

  gap: clamp(40px, 6vw, 110px);

  overflow: hidden;

  background:
    radial-gradient(
      circle at 15% 20%,
      rgba(199,165,106,.09),
      transparent 30%
    ),
    radial-gradient(
      circle at 90% 100%,
      rgba(199,165,106,.045),
      transparent 35%
    ),
    var(--ink-2);

  border: 1px solid rgba(199,165,106,.16);

  box-shadow:
    0 35px 100px rgba(0,0,0,.35),
    0 10px 35px rgba(0,0,0,.2),
    inset 0 1px 0 rgba(255,255,255,.035);
}


/* =========================================================
   ARCHITECTURAL BACKGROUND
========================================================= */

.numbers::before {
  content: "";

  position: absolute;
  inset: 0;

  z-index: -2;

  background:
    linear-gradient(
      90deg,
      rgba(199,165,106,.045) 1px,
      transparent 1px
    ),
    linear-gradient(
      rgba(199,165,106,.045) 1px,
      transparent 1px
    ),
    url("../assets/images/Home/numbers-bg.svg")
      center / cover no-repeat;

  background-size:
    70px 70px,
    70px 70px,
    cover;

  opacity: .2;

  mask-image:
    linear-gradient(
      110deg,
      black 0%,
      rgba(0,0,0,.7) 30%,
      transparent 75%
    );

  pointer-events: none;
}


/* =========================================================
   DECORATIVE CIRCLE
========================================================= */

.numbers::after {
  content: "";

  position: absolute;

  width: 650px;
  height: 650px;

  right: -330px;
  top: -310px;

  border: 1px solid rgba(199,165,106,.09);

  border-radius: 50%;

  box-shadow:
    0 0 0 70px rgba(199,165,106,.012),
    0 0 0 140px rgba(199,165,106,.008);

  z-index: -1;

  pointer-events: none;
}


/* =========================================================
   LEFT EDITORIAL CONTENT
========================================================= */

.numbers-head {
  position: relative;

  width: 100%;
  max-width: 430px;

  padding-left: 28px;
}


/* Vertical gold line */

.numbers-head::before {
  content: "";

  position: absolute;

  left: 0;
  top: 4px;
  bottom: 5px;

  width: 1px;

  background:
    linear-gradient(
      to bottom,
      var(--gold),
      rgba(199,165,106,.12),
      transparent
    );
}


/* Label */

.numbers-head .kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;

  margin-bottom: 25px;

  font-size: 9px;
  font-weight: 500;

  letter-spacing: 3px;
  text-transform: uppercase;

  color: var(--gold);
}

.numbers-head .kicker::after {
  content: "";

  width: 35px;
  height: 1px;

  background: rgba(199,165,106,.5);
}


/* Heading */

.numbers-head h2 {
  margin: 0;

  max-width: 450px;

  color: #e8e5de;

  font-family: var(--serif);

  font-size: clamp(45px, 5vw, 76px);
  font-weight: 400;

  line-height: .94;

  letter-spacing: -.045em;

  text-wrap: balance;
}

.numbers-head h2 em {
  color: var(--gold-light);
  font-style: italic;
}


/* Description */

.numbers-head p {
  max-width: 360px;

  margin: 28px 0 0;

  font-size: 13px;
  line-height: 1.9;

  color: #858885;
}


/* Decorative caption */

.numbers-head::after {
  content: "";

  position: absolute;

  left: 28px;
  bottom: -65px;

  font-size: 7px;
  letter-spacing: 3px;

  color: rgba(199,165,106,.35);
}


/* =========================================================
   STATISTICS GRID
========================================================= */

.number-grid {
  position: relative;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  width: 100%;
  min-width: 0;

  border-top: 1px solid rgba(199,165,106,.18);
  border-left: 1px solid rgba(199,165,106,.12);
}


/* Individual card */

.number {
  position: relative;

  min-width: 0;
  min-height: 190px;

  padding: 27px 30px 25px;

  border-right: 1px solid rgba(199,165,106,.12);
  border-bottom: 1px solid rgba(199,165,106,.18);

  overflow: hidden;

  transition:
    background .5s ease,
    transform .5s cubic-bezier(.2,.7,.2,1);
}


/* Card glow */

.number::before {
  content: "";

  position: absolute;
  inset: 0;

  background:
    radial-gradient(
      circle at 80% 20%,
      rgba(199,165,106,.09),
      transparent 45%
    );

  opacity: 0;

  transition: opacity .5s ease;

  pointer-events: none;
}


/* Gold corner */

.number::after {
  content: "";

  position: absolute;

  width: 7px;
  height: 7px;

  right: -1px;
  bottom: -1px;

  border-right: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);

  opacity: 0;

  transition: opacity .4s ease;
}


/* Hover */

@media (hover: hover) and (pointer: fine) {

  .number:hover {
    background: rgba(199,165,106,.035);
    transform: translateY(-5px);
    z-index: 2;
  }

  .number:hover::before,
  .number:hover::after {
    opacity: 1;
  }

}


/* Index */

.number span {
  position: relative;
  z-index: 2;

  display: block;

  font-size: 8px;
  letter-spacing: 3px;

  color: var(--gold);

  opacity: .75;
}


/* Main number */

.number strong {
  position: relative;
  z-index: 2;

  display: block;

  margin: 10px 0 10px;

  color: var(--gold-light);

  font-family: var(--serif);

  font-size: clamp(48px, 5vw, 78px);
  font-weight: 400;

  line-height: .85;

  letter-spacing: -.055em;

  text-shadow:
    0 8px 30px rgba(199,165,106,.08);

  font-variant-numeric: tabular-nums;
}


/* Label */

.number small {
  position: relative;
  z-index: 2;

  display: block;

  font-size: 10px;
  line-height: 1.5;

  letter-spacing: 1.8px;

  text-transform: uppercase;

  color: #858885;

  margin: 20px 0
}


/* =========================================================
   DESKTOP
   1280px+
========================================================= */

@media (min-width: 1280px) {

  .numbers {
    width: calc(100% - 10%);
  }

  .number {
    min-height: 205px;
  }

}


/* =========================================================
   LAPTOP
   1024px – 1279px
========================================================= */

@media (min-width: 1024px) and (max-width: 1279px) {

  .numbers {
    gap: 55px;

    padding: 65px 55px;
  }

  .numbers-head {
    padding-left: 24px;
  }

  .numbers-head h2 {
    font-size: clamp(44px, 5vw, 60px);
  }

  .number {
    min-height: 175px;
    padding: 25px 22px;
  }

  .number strong {
    font-size: clamp(45px, 5vw, 65px);
  }

}


/* =========================================================
   TABLET
   768px – 1023px
========================================================= */

@media (min-width: 768px) and (max-width: 1023px) {

  .numbers {
    width: calc(100% - 48px);

    margin: 80px auto;

    padding: 60px 45px;

    grid-template-columns: 1fr;

    gap: 55px;
  }

  .numbers-head {
    max-width: 650px;
    padding-left: 24px;
  }

  .numbers-head h2 {
    max-width: 650px;
    font-size: clamp(48px, 7vw, 68px);
  }

  .numbers-head p {
    max-width: 520px;
  }

  .numbers-head::after {
    display: none;
  }

  .number-grid {
    width: 100%;
  }

  .number {
    min-height: 175px;
    padding: 28px 30px;
  }

  .number strong {
    font-size: clamp(50px, 6vw, 70px);
  }

  .number small {
    font-size: 8px;
  }

}


/* =========================================================
   LARGE MOBILE
   481px – 767px
========================================================= */

@media (min-width: 481px) and (max-width: 767px) {

  .numbers {
    width: calc(100% - 32px);

    margin: 65px auto;

    padding: 50px 26px;

    display: flex;
    flex-direction: column;

    gap: 42px;

    border-radius: 4px;
  }

  .numbers-head {
    max-width: 100%;
    padding-left: 20px;
  }

  .numbers-head .kicker {
    margin-bottom: 18px;
  }

  .numbers-head h2 {
    max-width: 100%;
    font-size: clamp(42px, 9vw, 58px);
    line-height: .95;
  }

  .numbers-head p {
    max-width: 100%;
    margin-top: 22px;
    font-size: 12px;
    line-height: 1.8;
  }

  .numbers-head::after {
    display: none;
  }

  .number-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    border-radius: 4px;
    overflow: hidden;
  }

  .number {
    min-height: 160px;
    padding: 23px 20px;
  }

  .number strong {
    margin: 20px 0 10px;
    font-size: clamp(43px, 10vw, 60px);
  }

  .number small {
    font-size: 7px;
    letter-spacing: 1.4px;
  }

  .numbers::after {
    width: 360px;
    height: 360px;
    right: -220px;
    top: -190px;
  }

  .numbers::before {
    background-size: 48px 48px, 48px 48px, cover;
  }

}


/* =========================================================
   MOBILE
   320px – 480px
========================================================= */

@media (max-width: 480px) {

  .numbers {
    width: calc(100% - 24px);

    margin: 50px auto;

    padding: 38px 18px 22px;

    display: flex;
    flex-direction: column;

    gap: 35px;

    border-radius: 8px;

    background:
      radial-gradient(
        circle at 100% 0%,
        rgba(199,165,106,.12),
        transparent 50%
      ),
      var(--ink-2);

    box-shadow:
      0 20px 60px rgba(0,0,0,.3),
      inset 0 1px 0 rgba(255,255,255,.035);
  }


  /* Editorial heading */

  .numbers-head {
    max-width: 100%;

    padding-left: 18px;
  }

  .numbers-head::before {
    top: 0;
    bottom: 0;
  }

  .numbers-head .kicker {
    margin-bottom: 18px;

    gap: 10px;

    font-size: 7px;
    letter-spacing: 2px;
  }

  .numbers-head .kicker::after {
    width: 24px;
  }

  .numbers-head h2 {
    max-width: 100%;

    font-size: clamp(36px, 10.5vw, 48px);

    line-height: .96;

    letter-spacing: -.04em;
  }

  .numbers-head p {
    max-width: 100%;

    margin-top: 20px;

    color: #a6a8a4;

    font-size: 11.5px;
    line-height: 1.85;
  }

  .numbers-head::after {
    display: none;
  }


  /* Statistics grid */

  .number-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    border-top: 1px solid rgba(199,165,106,.24);
    border-left: 1px solid rgba(199,165,106,.24);

    border-radius: 5px;

    overflow: hidden;
  }


  /* More attractive mobile cards */

  .number {
    min-height: 145px;

    padding: 19px 15px 18px;

    background:
      linear-gradient(
        145deg,
        rgba(255,255,255,.025),
        rgba(199,165,106,.018)
      );

    border-right: 1px solid rgba(199,165,106,.18);
    border-bottom: 1px solid rgba(199,165,106,.20);
  }

  .number:nth-child(2),
  .number:nth-child(4) {
    background:
      linear-gradient(
        145deg,
        rgba(199,165,106,.065),
        rgba(255,255,255,.015)
      );
  }


  /* Index */

  .number span {
    font-size: 7px;
    letter-spacing: 2.5px;
  }


  /* Large gold values */

  .number strong {
    margin: 19px 0 11px;

    font-size: clamp(38px, 11vw, 53px);

    line-height: .88;

    letter-spacing: -.055em;
  }


  /* Labels */

  .number small {
    max-width: 100%;

    font-size: 7px;
    line-height: 1.65;

    letter-spacing: 1.1px;

    color: #a6a8a4;
  }


  /* Background decorations */

  .numbers::after {
    width: 300px;
    height: 300px;

    right: -190px;
    top: -160px;
  }

  .numbers::before {
    background-size: 42px 42px, 42px 42px, cover;
    opacity: .14;
  }

}


/* =========================================================
   VERY SMALL MOBILE
   320px – 360px
========================================================= */

@media (max-width: 360px) {

  .numbers {
    width: calc(100% - 20px);

    padding: 32px 14px 18px;

    gap: 30px;
  }

  .numbers-head {
    padding-left: 15px;
  }

  .numbers-head h2 {
    font-size: 34px;
  }

  .numbers-head p {
    font-size: 11px;
  }

  .number {
    min-height: 135px;
    padding: 17px 12px;
  }

  .number strong {
    font-size: 35px;
  }

  .number small {
    font-size: 6.5px;
    letter-spacing: .9px;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .number {
    transition: none;
  }

}
/* ================= SECTION TOP ================= */

.section-top {
  max-width: var(--container);
  margin: 0 auto 58px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 50px;
}

.section-top > div {
  max-width: 690px;
}

.section-top h2 {
  margin-bottom: 19px;
}

.section-top .arrow-link {
  margin-bottom: 7px;
}

/* ================= FLOOR / PLAN CARDS ================= */

.plan-grid {
  max-width: var(--container);
  margin: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.plan {
  position: relative;
  border: 1px solid var(--line);
  background:
    linear-gradient(145deg, rgba(255,255,255,.035), transparent 50%),
    var(--ink-3);
  overflow: hidden;
  transition:
    transform .65s var(--ease),
    border-color .5s,
    box-shadow .65s var(--ease);
}

.plan::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, transparent 55%, rgba(199,165,106,.07));
  pointer-events: none;
}

.plan:hover {
  transform: translateY(-10px);
  border-color: rgba(228,207,159,.42);
  box-shadow: 0 30px 70px rgba(0,0,0,.24);
}

.plan-visual {
  height: 330px;
  background: #e9e5db;
  /* padding: 17px; */
  overflow: hidden;
}

.plan-bottom {
  position: relative;
  z-index: 2;
  padding: 23px;
  display: grid;
  grid-template-columns: 27px 1fr;
  column-gap: 13px;
}

.plan-bottom span {
  color: var(--gold);
  font-size: 8px;
  padding-top: 3px;
}

.plan-bottom strong {
  /* font-size: 10px; */
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.plan-bottom small {
  grid-column: 2;
  color: var(--gold-light);
  /* font-size: 9px; */
  font-size: 11px;
  margin-top: 5px;
}
/* ================= FLOOR PLAN IMAGES ================= */

.plan-image-btn {
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  display: block;
  position: relative;
  cursor: zoom-in;
  overflow: hidden;
  font: inherit;
}

.floor-plan-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #e9e5db;
  transition: transform .7s var(--ease);
}

.plan:hover .floor-plan-image {
  transform: scale(1.025);
}


/* Hover hint */

.plan-view-hint {
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translate(-50%, 10px);
  padding: 9px 14px;
  background: rgba(15, 15, 15, .88);
  color: #fff;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity .35s ease,
    transform .35s ease;
}

.plan:hover .plan-view-hint {
  opacity: 1;
  transform: translate(-50%, 0);
}


/* ================= FLOOR PLAN MODAL ================= */

.floor-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity .35s ease,
    visibility .35s ease;
}

.floor-modal.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}


/* Dark background */

.floor-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 5, 5, .92);
  backdrop-filter: blur(10px);
}


/* Modal */

.floor-modal-content {
  width: min(1400px, 100%);
  height: min(92vh, 900px);
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  background: #111;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 30px 100px rgba(0,0,0,.6);
  transform: scale(.96);
  transition: transform .35s ease;
}

.floor-modal.active .floor-modal-content {
  transform: scale(1);
}


/* ================= MODAL TOP ================= */

.floor-modal-top {
  min-height: 72px;
  padding: 0 22px 0 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.1);
  flex-shrink: 0;
}

.floor-modal-title {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.floor-modal-title span {
  color: var(--gold);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.floor-modal-title strong {
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}


/* Close button */

.floor-modal-close {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.15);
  background: transparent;
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .25s ease, border-color .25s ease;
}

.floor-modal-close:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(228,207,159,.5);
}

.floor-modal-close span {
  position: absolute;
  width: 18px;
  height: 1px;
  background: #fff;
}

.floor-modal-close span:first-child {
  transform: rotate(45deg);
}

.floor-modal-close span:last-child {
  transform: rotate(-45deg);
}


/* ================= IMAGE VIEWER ================= */

.floor-modal-viewer {
  flex: 1;
  min-height: 0;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      circle at center,
      rgba(255,255,255,.04),
      transparent 65%
    );
  cursor: grab;
}

.floor-modal-viewer.is-dragging {
  cursor: grabbing;
}


/* Image wrapper */

.floor-image-wrapper {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 80%;
  height: 80%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform:
    translate(-50%, -50%)
    translate3d(0, 0, 0);
  transform-origin: center center;
  will-change: transform;
}


/* Actual modal image */

#floorModalImage {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}


/* ================= MODAL CONTROLS ================= */

.floor-modal-controls {
  min-height: 70px;
  padding: 12px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid rgba(255,255,255,.1);
  flex-shrink: 0;
}


/* Zoom controls */

.zoom-controls {
  display: flex;
  align-items: center;
  gap: 6px;
}

.zoom-controls button {
  height: 36px;
  min-width: 36px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.15);
  background: transparent;
  color: #fff;
  cursor: pointer;
  font-size: 14px;
  transition:
    background .25s ease,
    border-color .25s ease;
}

.zoom-controls button:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(228,207,159,.5);
}

.zoom-controls #zoomReset {
  margin-left: 6px;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

#zoomLevel {
  min-width: 52px;
  text-align: center;
  color: var(--gold-light);
  font-size: 9px;
  letter-spacing: 1px;
}


/* Download */

.floor-download {
  height: 36px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(228,207,159,.4);
  color: var(--gold-light);
  text-decoration: none;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  transition:
    background .25s ease,
    color .25s ease;
}

.floor-download:hover {
  background: var(--gold);
  color: #111;
}

.floor-download span {
  font-size: 13px;
}


/* ================= MOBILE ================= */

@media (max-width: 700px) {

  .floor-modal {
    padding: 0;
  }

  .floor-modal-content {
    width: 100%;
    height: 100%;
    border: 0;
  }

  .floor-modal-top {
    min-height: 62px;
    padding: 0 15px 0 18px;
  }

  .floor-modal-title strong {
    font-size: 10px;
  }

  .floor-modal-close {
    width: 38px;
    height: 38px;
  }

  .floor-modal-viewer {
    min-height: 0;
  }

  .floor-image-wrapper {
    width: 94%;
    height: 90%;
  }

  .floor-modal-controls {
    min-height: 68px;
    padding: 10px 12px;
  }

  .zoom-controls {
    gap: 4px;
  }

  .zoom-controls button {
    min-width: 34px;
    height: 34px;
  }

  .zoom-controls #zoomReset {
    padding: 0 8px;
  }

  .floor-download {
    padding: 0 12px;
  }

  .plan-view-hint {
    opacity: 1;
    transform: translate(-50%, 0);
    bottom: 12px;
  }
}


/* video Modal FLOOR */
/* =========================================================
   FLOOR PLAN / VIDEO SWITCHER
========================================================= */

.plan-visual-switcher {
  height: 330px;
  position: relative;
  overflow: hidden;
  background: #e9e5db;
}


/* =========================================================
   BOTH STATES
========================================================= */

.plan-state {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;

  transition:
    transform .8s var(--ease),
    opacity .65s ease;

  will-change: transform, opacity;
}


/* =========================================================
   DEFAULT FLOOR PLAN
========================================================= */

.plan-floor-state {
  transform: translateX(0);
  opacity: 1;
  z-index: 2;
}


/* =========================================================
   VIDEO STATE
========================================================= */

.plan-video-state {
  transform: translateX(100%);
  opacity: 0;
  z-index: 3;
}


/* =========================================================
   VIDEO VIEW ACTIVE
========================================================= */

.plan.video-active .plan-floor-state {
  transform: translateX(-100%);
  opacity: 0;
}


.plan.video-active .plan-video-state {
  transform: translateX(0);
  opacity: 1;
}


/* =========================================================
   IMAGE BUTTON
========================================================= */

.plan-image-btn {
  width: 100%;
  height: 100%;
  /* padding: 17px; */

  border: 0;
  background: #e9e5db;

  display: block;
  position: relative;

  cursor: zoom-in;

  overflow: hidden;
}


.floor-plan-image {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: contain;

  background: #e9e5db;

  transition:
    transform .7s var(--ease);
}


.plan:hover .floor-plan-image {
  transform: scale(1.025);
}


/* =========================================================
   IMAGE HINT
========================================================= */

.plan-view-hint {
  position: absolute;

  left: 50%;
  bottom: 20px;

  transform:
    translate(-50%, 10px);

  padding: 9px 14px;

  background: rgba(15,15,15,.88);

  color: #fff;

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  white-space: nowrap;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    transform .35s ease;
}


.plan:hover .plan-view-hint {
  opacity: 1;

  transform:
    translate(-50%, 0);
}


/* =========================================================
   VIDEO BUTTON
========================================================= */

.plan-video-btn {
  width: 100%;
  height: 100%;

  padding: 0;

  border: 0;

  background: #111;

  position: relative;

  display: block;

  cursor: pointer;

  overflow: hidden;
}


/* =========================================================
   VIDEO PREVIEW
========================================================= */

.plan-preview-video {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform 1s var(--ease),
    opacity .5s ease;
}


.plan:hover .plan-preview-video {
  transform: scale(1.035);
}


/* =========================================================
   VIDEO DARK OVERLAY
========================================================= */

.plan-video-btn::after {
  content: "";

  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.05),
      rgba(0,0,0,.48)
    );

  pointer-events: none;
}


/* =========================================================
   PLAY ICON
========================================================= */

.video-play-icon {
  position: absolute;

  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -50%);

  width: 58px;
  height: 58px;

  border: 1px solid
    rgba(255,255,255,.7);

  border-radius: 50%;

  display: flex;

  align-items: center;

  justify-content: center;

  color: #fff;

  z-index: 3;

  background:
    rgba(0,0,0,.25);

  backdrop-filter: blur(5px);

  transition:
    transform .4s var(--ease),
    background .3s ease;
}


.video-play-icon span {
  font-size: 12px;

  margin-left: 3px;
}


.plan-video-btn:hover .video-play-icon {
  transform:
    translate(-50%, -50%)
    scale(1.12);

  background:
    rgba(199,165,106,.8);
}


/* =========================================================
   VIDEO LABEL
========================================================= */

.plan-video-label {
  position: absolute;

  left: 50%;
  bottom: 20px;

  transform:
    translateX(-50%);

  z-index: 4;

  color: #fff;

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  white-space: nowrap;
}


/* =========================================================
   MEDIA SWITCH BUTTONS
========================================================= */

.plan-media-controls {
  position: relative;

  z-index: 10;

  display: flex;

  align-items: center;

  gap: 0;

  padding: 0;

  background: var(--ink-3);

  border-top: 1px solid var(--line);

  border-bottom: 1px solid var(--line);
}


.plan-switch-btn {
  flex: 1;

  min-height: 42px;

  padding: 0 8px;

  border: 0;

  border-right: 1px solid var(--line);

  background: transparent;

  color: rgba(255,255,255,.5);

  cursor: pointer;

  font: inherit;

  font-size: 7px;

  text-transform: uppercase;

  letter-spacing: 1.1px;

  transition:
    color .3s ease,
    background .3s ease;
}


.plan-switch-btn:last-child {
  border-right: 0;
}


.plan-switch-btn:hover {
  color: var(--gold-light);

  background:
    rgba(255,255,255,.035);
}


.plan-switch-btn.active {
  color: var(--gold-light);

  background:
    rgba(199,165,106,.08);
}


/* =========================================================
   PROPERTY VIDEO MODAL
========================================================= */

.property-video-modal {
  position: fixed;

  inset: 0;

  z-index: 100000;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 20px;

  visibility: hidden;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    visibility .35s ease;
}


.property-video-modal.active {
  visibility: visible;

  opacity: 1;

  pointer-events: auto;
}


/* =========================================================
   BACKDROP
========================================================= */

.property-video-backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(5,5,5,.94);

  backdrop-filter: blur(10px);
}


/* =========================================================
   VIDEO MODAL CONTENT
========================================================= */

.property-video-content {
  width: min(1250px, 100%);

  position: relative;

  z-index: 2;

  background: #111;

  border: 1px solid
    rgba(255,255,255,.12);

  box-shadow:
    0 30px 100px
    rgba(0,0,0,.7);

  transform:
    scale(.96);

  transition:
    transform .35s ease;
}


.property-video-modal.active
.property-video-content {
  transform:
    scale(1);
}


/* =========================================================
   VIDEO MODAL TOP
========================================================= */

.property-video-top {
  min-height: 72px;

  padding:
    0 22px
    0 26px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  border-bottom: 1px solid
    rgba(255,255,255,.1);
}


.property-video-title {
  display: flex;

  flex-direction: column;

  gap: 5px;
}


.property-video-title span {
  color: var(--gold);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 2px;
}


.property-video-title strong {
  color: #fff;

  font-size: 12px;

  font-weight: 500;

  text-transform: uppercase;

  letter-spacing: 1px;
}


/* =========================================================
   VIDEO CLOSE
========================================================= */

.property-video-close {
  width: 42px;
  height: 42px;

  border: 1px solid
    rgba(255,255,255,.15);

  background: transparent;

  position: relative;

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  transition:
    background .25s ease,
    border-color .25s ease;
}


.property-video-close:hover {
  background:
    rgba(255,255,255,.08);

  border-color:
    rgba(228,207,159,.5);
}


.property-video-close span {
  position: absolute;

  width: 18px;
  height: 1px;

  background: #fff;
}


.property-video-close span:first-child {
  transform: rotate(45deg);
}


.property-video-close span:last-child {
  transform: rotate(-45deg);
}


/* =========================================================
   VIDEO VIEWER
========================================================= */

.property-video-viewer {
  width: 100%;

  background: #000;

  display: flex;

  align-items: center;

  justify-content: center;
}


#propertyVideoPlayer {
  width: 100%;

  max-height: 78vh;

  display: block;

  background: #000;

  outline: none;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

  .plan-visual-switcher {
    height: 280px;
  }


  .plan-media-controls {
    flex-wrap: nowrap;
  }


  .plan-switch-btn {
    min-height: 44px;

    /* font-size: 6.5px; */
    font-size: 6.5px;

    letter-spacing: .8px;

    padding: 0 5px;
  }


  .video-play-icon {
    width: 50px;
    height: 50px;
  }


  .plan-video-label {
    bottom: 14px;

    font-size: 7px;
  }


  .property-video-modal {
    padding: 0;
  }


  .property-video-content {
    width: 100%;

    min-height: 100%;

    display: flex;

    flex-direction: column;

    justify-content: center;

    border: 0;
  }


  .property-video-top {
    min-height: 62px;

    padding:
      0 15px
      0 18px;
  }


  .property-video-title strong {
    font-size: 10px;
  }


  .property-video-close {
    width: 38px;
    height: 38px;
  }


  .property-video-viewer {
    flex: 0 0 auto;
  }


  #propertyVideoPlayer {
    max-height: 75vh;
  }

}


/* =========================================================
   PROPERTY MEDIA CARDS
========================================================= */

.plan-visual-switcher {
  height: 330px;
  position: relative;
  overflow: hidden;
  background: #e9e5db;
}


/* =========================================================
   MEDIA STATES
========================================================= */

.plan-state {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  opacity: 0;

  transform: translateX(100%);

  transition:
    transform .85s var(--ease),
    opacity .65s ease;

  will-change: transform, opacity;
}


/* Floor plan is default */

.plan-floor-state {
  opacity: 1;
  transform: translateX(0);
  z-index: 2;
}


/* =========================================================
   360 STATE
========================================================= */

.plan-360-state {
  z-index: 3;
}


/* =========================================================
   VIDEO STATE
========================================================= */

.plan-video-state {
  z-index: 4;
}


/* =========================================================
   ACTIVE STATES
========================================================= */

.plan[data-media-view="floor"]
.plan-floor-state {
  opacity: 1;
  transform: translateX(0);
}


.plan[data-media-view="floor"]
.plan-360-state,
.plan[data-media-view="floor"]
.plan-video-state {
  opacity: 0;
  transform: translateX(100%);
}


/* 360 */

.plan[data-media-view="360"]
.plan-floor-state {
  opacity: 0;
  transform: translateX(-100%);
}


.plan[data-media-view="360"]
.plan-360-state {
  opacity: 1;
  transform: translateX(0);
}


.plan[data-media-view="360"]
.plan-video-state {
  opacity: 0;
  transform: translateX(100%);
}


/* Video */

.plan[data-media-view="video"]
.plan-floor-state,
.plan[data-media-view="video"]
.plan-360-state {
  opacity: 0;
  transform: translateX(-100%);
}


.plan[data-media-view="video"]
.plan-video-state {
  opacity: 1;
  transform: translateX(0);
}


/* =========================================================
   FLOOR PLAN BUTTON
========================================================= */

.plan-image-btn {
  width: 100%;
  height: 100%;

  /* padding: 17px; */

  border: 0;

  background: #e9e5db;

  display: block;

  position: relative;

  cursor: zoom-in;

  overflow: hidden;
}


.floor-plan-image {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: contain;

  background: #e9e5db;

  transition:
    transform .7s var(--ease);
}


.plan:hover .floor-plan-image {
  transform: scale(1.025);
}


/* =========================================================
   FLOOR PLAN HINT
========================================================= */

.plan-view-hint {
  position: absolute;

  left: 50%;
  bottom: 20px;

  transform:
    translate(-50%, 10px);

  padding: 9px 14px;

  background: rgba(15,15,15,.88);

  color: #fff;

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  white-space: nowrap;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    transform .35s ease;
}


.plan:hover .plan-view-hint {
  opacity: 1;

  transform:
    translate(-50%, 0);
}


/* =========================================================
   360 PREVIEW
========================================================= */

.plan-360-btn {
  width: 100%;
  height: 100%;

  padding: 0;

  border: 0;

  background: #111;

  position: relative;

  display: block;

  overflow: hidden;

  cursor: pointer;
}


.plan-360-preview {
  width: 100%;
  height: 100%;

  object-fit: cover;

  display: block;

  transition:
    transform 1.2s var(--ease);
}


.plan-360-btn:hover .plan-360-preview {
  transform: scale(1.04);
}


/* =========================================================
   VIDEO PREVIEW
========================================================= */

.plan-video-btn {
  width: 100%;
  height: 100%;

  padding: 0;

  border: 0;

  background: #111;

  position: relative;

  display: block;

  overflow: hidden;

  cursor: pointer;
}


.plan-preview-video {
  width: 100%;
  height: 100%;

  object-fit: cover;

  display: block;

  transition:
    transform 1s var(--ease);
}


.plan-video-btn:hover .plan-preview-video {
  transform: scale(1.04);
}


/* =========================================================
   COMMON MEDIA OVERLAY
========================================================= */

.media-overlay {
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.05),
      rgba(0,0,0,.55)
    );

  pointer-events: none;
}


/* =========================================================
   CENTER ICON
========================================================= */

.media-center-icon {
  position: absolute;

  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -50%);

  width: 62px;
  height: 62px;

  border: 1px solid
    rgba(255,255,255,.72);

  border-radius: 50%;

  display: flex;

  align-items: center;

  justify-content: center;

  z-index: 4;

  color: #fff;

  background:
    rgba(0,0,0,.25);

  backdrop-filter: blur(6px);

  transition:
    transform .4s var(--ease),
    background .3s ease;
}


.plan-360-btn:hover
.media-center-icon,
.plan-video-btn:hover
.media-center-icon {
  transform:
    translate(-50%, -50%)
    scale(1.12);

  background:
    rgba(199,165,106,.82);
}


.icon-360 {
  font-size: 11px;

  font-weight: 500;

  letter-spacing: .5px;
}


.play-icon {
  font-size: 12px;

  margin-left: 3px;
}


/* =========================================================
   MEDIA LABEL
========================================================= */

.media-view-label {
  position: absolute;

  left: 50%;
  bottom: 20px;

  transform:
    translateX(-50%);

  z-index: 5;

  color: #fff;

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  white-space: nowrap;
}


/* =========================================================
   MEDIA TABS
========================================================= */

.plan-media-controls {
  position: relative;

  z-index: 10;

  display: flex;

  background: var(--ink-3);

  border-top: 1px solid var(--line);

  border-bottom: 1px solid var(--line);
}


.plan-switch-btn {
  flex: 1;

  min-height: 42px;

  padding: 0 8px;

  border: 0;

  border-right: 1px solid var(--line);

  background: transparent;

  color: rgba(255,255,255,.5);

  cursor: pointer;

  font: inherit;

  font-size: 7px;

  text-transform: uppercase;

  letter-spacing: 1.1px;

  transition:
    color .3s ease,
    background .3s ease;
}


.plan-switch-btn:last-child {
  border-right: 0;
}


.plan-switch-btn:hover {
  color: var(--gold-light);

  background:
    rgba(255,255,255,.035);
}


.plan-switch-btn.active {
  color: var(--gold-light);

  background:
    rgba(199,165,106,.08);
}


/* =========================================================
   FLOOR PLAN MODAL
========================================================= */

.floor-modal {
  position: fixed;

  inset: 0;

  z-index: 99999;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 20px;

  visibility: hidden;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    visibility .35s ease;
}


.floor-modal.active {
  visibility: visible;

  opacity: 1;

  pointer-events: auto;
}


.floor-modal-backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(5,5,5,.94);

  backdrop-filter: blur(10px);
}


.floor-modal-content {
  width: min(1400px, 100%);

  height: min(92vh, 900px);

  position: relative;

  z-index: 2;

  display: flex;

  flex-direction: column;

  background: #111;

  border: 1px solid
    rgba(255,255,255,.12);

  box-shadow:
    0 30px 100px
    rgba(0,0,0,.6);

  transform:
    scale(.96);

  transition:
    transform .35s ease;
}


.floor-modal.active
.floor-modal-content {
  transform:
    scale(1);
}


/* =========================================================
   FLOOR MODAL TOP
========================================================= */

.floor-modal-top {
  min-height: 72px;

  padding:
    0 22px
    0 26px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  border-bottom: 1px solid
    rgba(255,255,255,.1);

  flex-shrink: 0;
}


.floor-modal-title {
  display: flex;

  flex-direction: column;

  gap: 5px;
}


.floor-modal-title span {
  color: var(--gold);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 2px;
}


.floor-modal-title strong {
  color: #fff;

  font-size: 12px;

  font-weight: 500;

  text-transform: uppercase;

  letter-spacing: 1px;
}


/* =========================================================
   CLOSE BUTTONS
========================================================= */

.floor-modal-close,
.property-360-close,
.property-video-close {
  width: 42px;
  height: 42px;

  border: 1px solid
    rgba(255,255,255,.15);

  background: transparent;

  position: relative;

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  transition:
    background .25s ease,
    border-color .25s ease;
}


.floor-modal-close:hover,
.property-360-close:hover,
.property-video-close:hover {
  background:
    rgba(255,255,255,.08);

  border-color:
    rgba(228,207,159,.5);
}


.floor-modal-close span,
.property-360-close span,
.property-video-close span {
  position: absolute;

  width: 18px;
  height: 1px;

  background: #fff;
}


.floor-modal-close span:first-child,
.property-360-close span:first-child,
.property-video-close span:first-child {
  transform: rotate(45deg);
}


.floor-modal-close span:last-child,
.property-360-close span:last-child,
.property-video-close span:last-child {
  transform: rotate(-45deg);
}


/* =========================================================
   FLOOR VIEWER
========================================================= */

.floor-modal-viewer {
  flex: 1;

  min-height: 0;

  position: relative;

  overflow: hidden;

  background:
    radial-gradient(
      circle at center,
      rgba(255,255,255,.04),
      transparent 65%
    );

  cursor: default;
}


.floor-image-wrapper {
  position: absolute;

  left: 50%;
  top: 50%;

  width: 80%;
  height: 80%;

  display: flex;

  align-items: center;

  justify-content: center;

  transform:
    translate(-50%, -50%);

  transform-origin: center;

  will-change: transform;
}


#floorModalImage {
  max-width: 100%;
  max-height: 100%;

  width: auto;
  height: auto;

  display: block;

  object-fit: contain;

  user-select: none;

  -webkit-user-drag: none;

  pointer-events: none;
}


/* =========================================================
   FLOOR CONTROLS
========================================================= */

.floor-modal-controls {
  min-height: 70px;

  padding: 12px 22px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  border-top: 1px solid
    rgba(255,255,255,.1);

  flex-shrink: 0;
}


.zoom-controls {
  display: flex;

  align-items: center;

  gap: 6px;
}


.zoom-controls button {
  height: 36px;

  min-width: 36px;

  padding: 0 10px;

  border: 1px solid
    rgba(255,255,255,.15);

  background: transparent;

  color: #fff;

  cursor: pointer;

  font-size: 14px;

  transition:
    background .25s ease,
    border-color .25s ease;
}


.zoom-controls button:hover {
  background:
    rgba(255,255,255,.08);

  border-color:
    rgba(228,207,159,.5);
}


.zoom-controls #zoomReset {
  margin-left: 6px;

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 1.5px;
}


#zoomLevel {
  min-width: 52px;

  text-align: center;

  color: var(--gold-light);

  font-size: 9px;

  letter-spacing: 1px;
}


.floor-download {
  height: 36px;

  padding: 0 16px;

  display: inline-flex;

  align-items: center;

  gap: 10px;

  border: 1px solid
    rgba(228,207,159,.4);

  color: var(--gold-light);

  text-decoration: none;

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  transition:
    background .25s ease,
    color .25s ease;
}


.floor-download:hover {
  background: var(--gold);

  color: #111;
}


/* =========================================================
   360 MODAL
========================================================= */

.property-360-modal {
  position: fixed;

  inset: 0;

  z-index: 100000;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 20px;

  visibility: hidden;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    visibility .35s ease;
}


.property-360-modal.active {
  visibility: visible;

  opacity: 1;

  pointer-events: auto;
}


.property-360-backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(5,5,5,.95);

  backdrop-filter: blur(10px);
}


.property-360-content {
  width: min(1500px, 100%);

  height: min(90vh, 850px);

  position: relative;

  z-index: 2;

  display: flex;

  flex-direction: column;

  background: #080808;

  border: 1px solid
    rgba(255,255,255,.12);

  box-shadow:
    0 30px 100px
    rgba(0,0,0,.7);

  transform:
    scale(.96);

  transition:
    transform .35s ease;
}


.property-360-modal.active
.property-360-content {
  transform:
    scale(1);
}


/* =========================================================
   360 TOP
========================================================= */

.property-360-top {
  min-height: 72px;

  padding:
    0 22px
    0 26px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  border-bottom: 1px solid
    rgba(255,255,255,.1);

  flex-shrink: 0;
}


.property-360-title {
  display: flex;

  flex-direction: column;

  gap: 5px;
}


.property-360-title span {
  color: var(--gold);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 2px;
}


.property-360-title strong {
  color: #fff;

  font-size: 12px;

  font-weight: 500;

  text-transform: uppercase;

  letter-spacing: 1px;
}


/* =========================================================
   360 VIEWER
========================================================= */

.property-360-viewer {
  position: relative;

  flex: 1;

  min-height: 0;

  overflow: hidden;

  background: #080808;

  cursor: grab;

  touch-action: none;
}


.property-360-viewer.dragging {
  cursor: grabbing;
}


.property-360-scene {
  position: absolute;

  inset: 0;

  overflow: hidden;

  perspective: 1000px;
}


/*
  The panorama is a very wide image.

  JS moves this image horizontally
  to create the 360° effect.
*/

.property-360-panorama {
  position: absolute;

  top: 0;
  left: 0;

  width: 200%;
  height: 100%;

  background-repeat: repeat-x;

  background-size: auto 100%;

  background-position: 0 center;

  will-change: transform;

  user-select: none;

  pointer-events: none;
}


/* =========================================================
   360 INSTRUCTION
========================================================= */

.property-360-instruction {
  position: absolute;

  left: 50%;
  bottom: 24px;

  transform:
    translateX(-50%);

  z-index: 10;

  padding: 9px 16px;

  background:
    rgba(0,0,0,.55);

  border: 1px solid
    rgba(255,255,255,.12);

  color: rgba(255,255,255,.8);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 1.5px;

  pointer-events: none;

  backdrop-filter: blur(5px);
}


.property-360-instruction span {
  margin: 0 7px;

  color: var(--gold);
}


/* =========================================================
   360 CONTROLS
========================================================= */

.property-360-controls {
  position: absolute;

  right: 20px;
  bottom: 20px;

  z-index: 20;

  display: flex;

  gap: 6px;
}


.property-360-controls button {
  width: 40px;
  height: 40px;

  border: 1px solid
    rgba(255,255,255,.18);

  background:
    rgba(0,0,0,.55);

  color: #fff;

  cursor: pointer;

  font-size: 15px;

  backdrop-filter: blur(6px);

  transition:
    background .25s ease,
    border-color .25s ease;
}


.property-360-controls button:hover {
  background:
    rgba(199,165,106,.75);

  border-color:
    rgba(228,207,159,.6);
}


/* =========================================================
   VIDEO MODAL
========================================================= */

.property-video-modal {
  position: fixed;

  inset: 0;

  z-index: 100001;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 20px;

  visibility: hidden;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity .35s ease,
    visibility .35s ease;
}


.property-video-modal.active {
  visibility: visible;

  opacity: 1;

  pointer-events: auto;
}


.property-video-backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(5,5,5,.95);

  backdrop-filter: blur(10px);
}


.property-video-content {
  width: min(1250px, 100%);

  position: relative;

  z-index: 2;

  background: #111;

  border: 1px solid
    rgba(255,255,255,.12);

  box-shadow:
    0 30px 100px
    rgba(0,0,0,.7);

  transform:
    scale(.96);

  transition:
    transform .35s ease;
}


.property-video-modal.active
.property-video-content {
  transform:
    scale(1);
}


.property-video-top {
  min-height: 72px;

  padding:
    0 22px
    0 26px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  border-bottom: 1px solid
    rgba(255,255,255,.1);
}


.property-video-title {
  display: flex;

  flex-direction: column;

  gap: 5px;
}


.property-video-title span {
  color: var(--gold);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: 2px;
}


.property-video-title strong {
  color: #fff;

  font-size: 12px;

  font-weight: 500;

  text-transform: uppercase;

  letter-spacing: 1px;
}


.property-video-viewer {
  width: 100%;

  background: #000;

  display: flex;

  align-items: center;

  justify-content: center;
}


#propertyVideoPlayer {
  width: 100%;

  max-height: 78vh;

  display: block;

  background: #000;

  outline: none;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

  .plan-visual-switcher {
    height: 280px;
  }


  .plan-switch-btn {
    min-height: 44px;

    /* font-size: 6.5px; */
    font-size: 9px;

    letter-spacing: .7px;

    padding: 0 5px;
  }


  .media-center-icon {
    width: 52px;
    height: 52px;
  }


  .media-view-label {
    bottom: 14px;

    font-size: 7px;
  }


  /* FLOOR MODAL */

  .floor-modal {
    padding: 0;
  }


  .floor-modal-content {
    width: 100%;
    height: 100%;

    border: 0;
  }


  .floor-modal-top,
  .property-360-top,
  .property-video-top {
    min-height: 62px;

    padding:
      0 15px
      0 18px;
  }


  .floor-modal-title strong,
  .property-360-title strong,
  .property-video-title strong {
    font-size: 10px;
  }


  .floor-modal-close,
  .property-360-close,
  .property-video-close {
    width: 38px;
    height: 38px;
  }


  .floor-image-wrapper {
    width: 94%;
    height: 90%;
  }


  .floor-modal-controls {
    min-height: 68px;

    padding:
      10px 12px;
  }


  .zoom-controls {
    gap: 4px;
  }


  .zoom-controls button {
    min-width: 34px;

    height: 34px;
  }


  .floor-download {
    padding: 0 12px;
  }


  /* 360 */

  .property-360-modal {
    padding: 0;
  }


  .property-360-content {
    width: 100%;
    height: 100%;

    border: 0;
  }


  .property-360-instruction {
    bottom: 20px;

    font-size: 7px;

    padding: 8px 12px;
  }


  .property-360-controls {
    right: 12px;

    bottom: 18px;
  }


  .property-360-controls button {
    width: 36px;
    height: 36px;
  }


  /* VIDEO */

  .property-video-modal {
    padding: 0;
  }


  .property-video-content {
    width: 100%;

    min-height: 100%;

    display: flex;

    flex-direction: column;

    justify-content: center;

    border: 0;
  }


  #propertyVideoPlayer {
    max-height: 75vh;
  }

}




/* ================= VALUES ================= */

.values {
  background:
    radial-gradient(circle at 80% 20%, rgba(199,165,106,.07), transparent 30%),
    var(--ink-2);
}

.center {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 60px;
}

.center h2 {
  margin-bottom: 18px;
}

.center > p {
  margin: auto;
}

.value-grid {
  max-width: var(--container);
  margin: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.value {
  position: relative;
  min-height: 260px;
  padding: 42px 32px;
  border-right: 1px solid var(--line);
  transition: background .5s var(--ease);
}

.value::after {
  content: "";
  position: absolute;
  left: 32px;
  right: 32px;
  bottom: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .6s var(--ease);
}

.value:hover {
  background: rgba(199,165,106,.035);
}

.value:hover::after {
  transform: scaleX(1);
}

.value:last-child {
  border-right: 0;
}

.line-icon {
  display: block;
  color: var(--gold);
  font-size: 9px;
  letter-spacing: 2px;
  margin-bottom: 48px;
}

.value h3 {
  font: 400 31px/1 var(--serif);
  margin-bottom: 13px;
}

.value p {
  color: var(--muted);
  /* font-size: 11px; */
  font-size: 13px;
  line-height: 1.75;
}


/* =========================================================
   TESTIMONIALS — RESPONSIVE EDITORIAL EXPERIENCE
========================================================= */

.testimonials-section {
  position: relative;
  width: 100%;
  overflow: hidden;
}


/* =========================================================
   HEADER
========================================================= */

.testimonials-head {
  width: min(100% - 40px, var(--container));
  margin: 0 auto clamp(24px, 4vw, 42px);

  display: flex;
  align-items: flex-end;
  justify-content: space-between;

  gap: 40px;
}

.testimonials-head h2 {
  max-width: 680px;
  margin-top: 14px;
}

.testimonials-head h2 em {
  font-style: normal;
}


/* =========================================================
   COUNTER
========================================================= */

.testimonial-count {
  flex-shrink: 0;

  display: flex;
  align-items: center;

  gap: 12px;

  padding-bottom: 7px;

  color: var(--gold-light);

  font-size: 9px;
  letter-spacing: 2px;

  white-space: nowrap;
}

.testimonial-count i {
  display: block;

  width: 38px;
  height: 1px;

  background: var(--gold);

  opacity: .45;
}

.testimonial-current {
  color: var(--gold);
}


/* =========================================================
   STAGE
========================================================= */

.testimonials-stage {
  width: min(100% - 40px, var(--container));

  margin: 0 auto;

  position: relative;
}


/* =========================================================
   MAIN TESTIMONIAL
========================================================= */

.testimonial-main {
  width: 100%;

  display: grid;

  grid-template-columns:
    minmax(0, .85fr)
    minmax(0, 1.15fr);

  min-height: 590px;

  position: relative;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.035),
      transparent 55%
    ),
    var(--ink-3);

  border: 1px solid var(--line);

  overflow: hidden;

  isolation: isolate;

  transition:
    border-color .5s ease,
    transform .8s cubic-bezier(.22,1,.36,1);
}

.testimonial-main:hover {
  border-color: rgba(228,207,159,.28);
}


/* =========================================================
   COPY
========================================================= */

.testimonial-copy {
  min-width: 0;

  position: relative;

  padding:
    clamp(45px, 6vw, 90px)
    clamp(35px, 5vw, 75px);

  display: flex;
  flex-direction: column;

  justify-content: center;

  overflow: hidden;

  z-index: 2;
}


/* =========================================================
   DECORATIVE QUOTE
========================================================= */

.testimonial-mark {
  position: absolute;

  top: -35px;
  left: 25px;

  color: rgba(199,165,106,.10);

  font:
    400 210px/1
    var(--serif);

  pointer-events: none;

  user-select: none;
}


/* =========================================================
   LABEL
========================================================= */

.testimonial-label {
  position: relative;

  margin-bottom: 32px;

  color: var(--gold-light);

  font-size: 8px;

  line-height: 1.4;

  text-transform: uppercase;

  letter-spacing: 2px;
}

.testimonial-label b {
  color: var(--gold);

  font-weight: 500;
}


/* =========================================================
   QUOTE
========================================================= */

.testimonial-quote {
  position: relative;

  max-width: 560px;

  margin: 0;

  color: var(--paper);

  font:
    400 clamp(30px, 3.2vw, 54px)/1.12
    var(--serif);

  letter-spacing: -.5px;

  text-wrap: balance;

  transition:
    opacity .45s ease,
    transform .65s cubic-bezier(.22,1,.36,1);
}

.testimonial-quote em {
  color: var(--gold-light);

  font-style: italic;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.testimonial-description {
  position: relative;

  max-width: 420px;

  margin: 30px 0 0;

  color: var(--muted);

  font-size: 12px;

  line-height: 1.9;

  transition:
    opacity .45s ease,
    transform .65s cubic-bezier(.22,1,.36,1);
}


/* =========================================================
   PERSON
========================================================= */

.testimonial-person {
  position: relative;

  display: flex;
  align-items: center;

  gap: 14px;

  margin-top: 35px;

  transition:
    opacity .45s ease,
    transform .65s cubic-bezier(.22,1,.36,1);
}

.person-line {
  flex: 0 0 auto;

  width: 28px;
  height: 1px;

  background: var(--gold);
}

.testimonial-person strong {
  display: block;

  color: var(--gold-light);

  font-size: 9px;

  font-weight: 500;

  line-height: 1.4;

  text-transform: uppercase;

  letter-spacing: 1.7px;
}

.testimonial-person small {
  display: block;

  margin-top: 5px;

  color: var(--muted);

  font-size: 8px;

  line-height: 1.4;

  letter-spacing: 1px;
}


/* =========================================================
   PERSON AVATAR
========================================================= */

.person-avatar {
  width: 100px;
  height: 100px;

  flex: 0 0 100px;

  position: relative;

  display: grid;

  place-items: center;
}

.person-avatar img {
  width: 88px;
  height: 88px;

  position: relative;

  z-index: 3;

  display: block;

  border-radius: 50%;

  object-fit: cover;

  filter:
    contrast(1.1)
    saturate(1.1);

  transition:
    transform .5s cubic-bezier(.22,1,.36,1);
}


/* OUTER ORBIT */

.person-avatar::before {
  content: "";

  position: absolute;

  inset: -6px;

  border-radius: 50%;

  border:
    2px solid rgba(214,179,106,.6);

  border-top-color: transparent;

  border-right-color: rgba(255,255,255,.4);

  animation:
    spin 3s linear infinite;

  z-index: 1;
}


/* SECOND ORBIT */

.person-avatar::after {
  content: "";

  position: absolute;

  inset: -12px;

  border:
    1px dashed rgba(255,255,255,.25);

  border-radius: 50%;

  animation:
    spinReverse 6s linear infinite;

  z-index: 0;
}


@keyframes spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}


@keyframes spinReverse {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(-360deg);
  }
}


/* =========================================================
   IMAGE
========================================================= */

.testimonial-media {
  min-width: 0;
  min-height: 590px;

  position: relative;

  overflow: hidden;
}

.testimonial-image-wrap {
  position: absolute;

  inset: 0;

  overflow: hidden;
}

.testimonial-image {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transform:
    scale(1.03)
    translateZ(0);

  will-change:
    transform,
    opacity;

  backface-visibility: hidden;

  transition:
    opacity .7s ease,
    transform 1.2s cubic-bezier(.22,1,.36,1);
}

.testimonial-main:hover .testimonial-image {
  transform: scale(1.055);
}


/* =========================================================
   IMAGE OVERLAY
========================================================= */

.testimonial-image-overlay {
  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.18),
      transparent 35%
    ),
    linear-gradient(
      0deg,
      rgba(0,0,0,.35),
      transparent 40%
    );

  pointer-events: none;

  z-index: 2;
}


/* =========================================================
   PREVIEW STACK
========================================================= */

.testimonial-previews {
  width: min(390px, 38%);

  position: absolute;

  right: 28px;
  bottom: 28px;

  display: flex;

  flex-direction: column;

  gap: 8px;

  z-index: 5;
}


/* =========================================================
   PREVIEW CARD
========================================================= */

.testimonial-preview {
  width: 100%;
  min-width: 0;

  display: grid;

  grid-template-columns:
    35px
    44px
    minmax(0, 1fr)
    25px;

  align-items: center;

  gap: 12px;

  padding: 17px 18px;

  border:
    1px solid rgba(255,255,255,.13);

  background:
    rgba(18,18,18,.72);

  backdrop-filter: blur(18px);

  -webkit-backdrop-filter: blur(18px);

  color: inherit;

  text-align: left;

  cursor: pointer;

  appearance: none;

  transform: translateZ(0);

  transition:
    background .45s ease,
    border-color .45s ease,
    transform .55s cubic-bezier(.22,1,.36,1),
    opacity .45s ease;
}

.testimonial-preview:hover {
  transform: translateX(-8px);

  background:
    rgba(25,25,25,.88);

  border-color:
    rgba(228,207,159,.35);
}

.testimonial-preview.active {
  background:
    rgba(30,30,30,.92);

  border-color:
    rgba(228,207,159,.42);

  transform: translateX(-12px);
}


/* =========================================================
   PREVIEW NUMBER
========================================================= */

.preview-number {
  color: var(--gold);

  font-size: 8px;

  line-height: 1;

  letter-spacing: 1px;
}


/* =========================================================
   PREVIEW AVATAR
========================================================= */

.preview-avatar {
  width: 38px;
  height: 38px;

  flex: 0 0 38px;

  border-radius: 50%;

  overflow: hidden;

  border:
    1px solid rgba(255,255,255,.15);

  background: rgba(255,255,255,.04);
}

.preview-avatar img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  filter: grayscale(15%);

  transition:
    transform .5s cubic-bezier(.22,1,.36,1);
}

.testimonial-preview:hover .preview-avatar img {
  transform: scale(1.1);
}


/* =========================================================
   PREVIEW CONTENT
========================================================= */

.preview-content {
  min-width: 0;
}

.preview-content strong {
  display: block;

  overflow: hidden;

  color: #eee;

  font-size: 9px;

  font-weight: 500;

  line-height: 1.4;

  text-transform: uppercase;

  letter-spacing: 1.2px;

  white-space: nowrap;

  text-overflow: ellipsis;
}

.preview-content small {
  display: block;

  margin-top: 5px;

  overflow: hidden;

  color: #aaa;

  font-size: 9px;

  line-height: 1.3;

  letter-spacing: .3px;

  white-space: nowrap;

  text-overflow: ellipsis;
}


/* =========================================================
   ARROW
========================================================= */

.preview-arrow {
  display: flex;

  align-items: center;
  justify-content: center;

  color: var(--gold-light);

  font-size: 15px;

  transition:
    transform .4s cubic-bezier(.22,1,.36,1);
}

.testimonial-preview:hover .preview-arrow,
.testimonial-preview.active .preview-arrow {
  transform:
    translate(3px, -3px);
}


/* =========================================================
   PROGRESS
========================================================= */

.testimonial-progress {
  display: flex;

  align-items: center;

  gap: 14px;

  margin-top: 22px;
}

.progress-line {
  width: 100px;
  height: 1px;

  position: relative;

  overflow: hidden;

  background:
    rgba(255,255,255,.12);
}

.progress-line i {
  width: 33.33%;
  height: 100%;

  position: absolute;

  top: 0;
  left: 0;

  display: block;

  background: var(--gold);

  transition:
    width .7s cubic-bezier(.22,1,.36,1);
}

.progress-label {
  color: var(--muted);

  font-size: 7px;

  line-height: 1.4;

  text-transform: uppercase;

  letter-spacing: 1.8px;
}


/* =========================================================
   CONTENT TRANSITION
========================================================= */

.testimonials-stage.is-changing
.testimonial-quote,

.testimonials-stage.is-changing
.testimonial-description,

.testimonials-stage.is-changing
.testimonial-person,

.testimonials-stage.is-changing
.testimonial-label {
  opacity: 0;

  transform:
    translate3d(0, 15px, 0);
}

.testimonials-stage.is-changing
.testimonial-image {
  opacity: .2;

  transform:
    scale(1.08)
    translateZ(0);
}


/* =========================================================
   TABLET
   1100px
========================================================= */

@media (max-width: 1100px) {

  .testimonials-head {
    width: min(100% - 36px, var(--container));
  }

  .testimonials-stage {
    width: min(100% - 36px, var(--container));
  }


  /* Slightly more balanced columns */

  .testimonial-main {
    grid-template-columns:
      minmax(0, .95fr)
      minmax(0, 1.05fr);

    min-height: 560px;
  }

  .testimonial-media {
    min-height: 560px;
  }


  /* Reduce copy spacing */

  .testimonial-copy {
    padding:
      55px
      clamp(35px, 5vw, 60px);
  }


  /* Smaller heading */

  .testimonial-quote {
    font-size:
      clamp(30px, 3.5vw, 46px);
  }


  /* Preview cards */

  .testimonial-previews {
    width: min(350px, 48%);

    right: 20px;
    bottom: 20px;
  }

  .testimonial-preview {
    padding: 14px 15px;

    gap: 9px;
  }
}


/* =========================================================
   TABLET / SMALL LAPTOP
   900px
========================================================= */

@media (max-width: 900px) {

  .testimonials-head {
    align-items: flex-start;

    flex-direction: column;

    gap: 18px;

    margin-bottom: 28px;
  }

  .testimonial-count {
    align-self: flex-end;

    margin-top: -5px;
  }


  /* =======================================================
     MAIN CARD
  ======================================================= */

  .testimonial-main {
    display: flex;

    flex-direction: column;

    min-height: 0;
  }


  /* =======================================================
     COPY
  ======================================================= */

  .testimonial-copy {
    min-height: 440px;

    padding:
      55px
      clamp(35px, 7vw, 70px);
  }

  .testimonial-quote {
    max-width: 700px;

    font-size:
      clamp(32px, 5vw, 48px);
  }

  .testimonial-description {
    max-width: 580px;

    font-size: 12px;
  }


  /* =======================================================
     IMAGE
  ======================================================= */

  .testimonial-media {
    min-height: 460px;

    height: 460px;
  }

  .testimonial-image {
    object-position: center;
  }


  /* =======================================================
     PREVIEWS
  ======================================================= */

  .testimonial-previews {
    width: calc(100% - 40px);

    position: absolute;

    right: 20px;
    bottom: 20px;

    display: grid;

    grid-template-columns:
      repeat(3, minmax(0, 1fr));

    gap: 8px;
  }

  .testimonial-preview {
    grid-template-columns:
      28px
      38px
      minmax(0, 1fr);

    padding: 14px;

    gap: 9px;
  }

  .preview-arrow {
    display: none;
  }

  .preview-avatar {
    width: 34px;
    height: 34px;

    flex-basis: 34px;
  }

  .preview-content strong {
    font-size: 8px;
  }

  .preview-content small {
    font-size: 8px;
  }

  .testimonial-preview:hover {
    transform:
      translateY(-5px);
  }

  .testimonial-preview.active {
    transform:
      translateY(-7px);
  }


  /* =======================================================
     PROGRESS
  ======================================================= */

  .testimonial-progress {
    margin-top: 18px;
  }
}


/* =========================================================
   LARGE MOBILE / PHABLET
   700px
========================================================= */

@media (max-width: 700px) {

  .testimonials-head,
  .testimonials-stage {
    width:
      calc(100% - 30px);
  }


  /* =======================================================
     MAIN COPY
  ======================================================= */

  .testimonial-copy {
    min-height: 400px;

    padding:
      48px
      27px;
  }

  .testimonial-label {
    margin-bottom: 25px;
  }

  .testimonial-quote {
    max-width: none;

    font-size:
      clamp(30px, 8vw, 40px);

    line-height: 1.13;

    letter-spacing: -.3px;
  }

  .testimonial-description {
    margin-top: 22px;

    font-size: 11px;

    line-height: 1.75;
  }

  .testimonial-person {
    margin-top: 27px;
  }


  /* =======================================================
     DECORATIVE MARK
  ======================================================= */

  .testimonial-mark {
    top: -25px;
    left: 10px;

    font-size: 150px;
  }


  /* =======================================================
     MEDIA
  ======================================================= */

  .testimonial-media {
    height: 370px;
    min-height: 370px;
  }


  /* =======================================================
     PREVIEW CARDS
  ======================================================= */

  .testimonial-previews {
    width: calc(100% - 28px);

    right: 14px;
    bottom: 14px;

    display: flex;

    flex-direction: row;

    gap: 8px;

    overflow-x: auto;

    padding:
      5px 2px 7px;

    scrollbar-width: none;

    scroll-snap-type: x mandatory;

    overscroll-behavior-x: contain;

    -webkit-overflow-scrolling: touch;
  }

  .testimonial-previews::-webkit-scrollbar {
    display: none;
  }

  .testimonial-preview {
    flex:
      0 0 min(82%, 300px);

    scroll-snap-align: start;

    grid-template-columns:
      28px
      38px
      minmax(0, 1fr);

    padding:
      13px 14px;

    transform: none;
  }

  .testimonial-preview:hover,
  .testimonial-preview.active {
    transform: none;
  }

  .testimonial-preview.active {
    border-color:
      rgba(228,207,159,.55);
  }

  .preview-number {
    font-size: 7px;
  }

  .preview-avatar {
    width: 34px;
    height: 34px;
  }

  .preview-content strong {
    font-size: 8px;
  }

  .preview-content small {
    font-size: 8px;
  }


  /* =======================================================
     COUNTER
  ======================================================= */

  .testimonial-count {
    font-size: 8px;
  }

  .testimonial-count i {
    width: 28px;
  }


  /* =======================================================
     PROGRESS
  ======================================================= */

  .testimonial-progress {
    gap: 10px;
  }

  .progress-line {
    width: 75px;
  }

  .progress-label {
    font-size: 6px;
  }
}


/* =========================================================
   MOBILE
   600px
========================================================= */

@media (max-width: 600px) {

  .testimonials-section {
    overflow: clip;
  }

  .testimonials-head,
  .testimonials-stage {
    width:
      calc(100% - 24px);
  }


  /* =======================================================
     HEADER
  ======================================================= */

  .testimonials-head {
    margin-bottom: 25px;

    gap: 12px;
  }

  .testimonials-head h2 {
    width: 100%;

    margin-top: 8px;
  }

  .testimonial-count {
    align-self: flex-end;

    margin-top: 0;
  }


  /* =======================================================
     MAIN CARD
  ======================================================= */

  .testimonial-main {
    border-radius: 0;

    box-shadow:
      0 20px 60px rgba(0,0,0,.12);
  }


  /* =======================================================
     COPY
  ======================================================= */

  .testimonial-copy {
    min-height: 390px;

    padding:
      42px
      22px
      38px;
  }

  .testimonial-label {
    margin-bottom: 22px;

    font-size: 7px;

    letter-spacing: 1.7px;
  }

  .testimonial-quote {
    font-size:
      clamp(29px, 8.5vw, 36px);

    line-height: 1.14;
  }

  .testimonial-description {
    margin-top: 20px;

    font-size: 10.5px;

    line-height: 1.75;
  }


  /* =======================================================
     PERSON
  ======================================================= */

  .testimonial-person {
    gap: 10px;

    margin-top: 25px;
  }

  .person-line {
    width: 20px;
  }

  .testimonial-person strong {
    font-size: 8px;
  }

  .testimonial-person small {
    margin-top: 4px;

    font-size: 7px;
  }


  /* =======================================================
     AVATAR
  ======================================================= */

  .person-avatar {
    width: 76px;
    height: 76px;

    flex-basis: 76px;
  }

  .person-avatar img {
    width: 66px;
    height: 66px;
  }

  .person-avatar::before {
    inset: -4px;
  }

  .person-avatar::after {
    inset: -8px;
  }


  /* =======================================================
     IMAGE
  ======================================================= */

  .testimonial-media {
    height: 320px;
    min-height: 320px;
  }


  /* =======================================================
     IMAGE OVERLAY
  ======================================================= */

  .testimonial-image-overlay {
    background:
      linear-gradient(
        180deg,
        transparent 30%,
        rgba(0,0,0,.42) 100%
      );
  }


  /* =======================================================
     PREVIEWS
  ======================================================= */

  .testimonial-previews {
    width:
      calc(100% - 20px);

    right: 10px;
    bottom: 10px;

    gap: 7px;
  }

  .testimonial-preview {
    flex:
      0 0 82%;

    grid-template-columns:
      25px
      34px
      minmax(0, 1fr);

    gap: 8px;

    padding:
      11px 12px;

    border-color:
      rgba(255,255,255,.16);
  }

  .preview-avatar {
    width: 32px;
    height: 32px;

    flex-basis: 32px;
  }

  .preview-content strong {
    font-size: 7.5px;

    letter-spacing: 1px;
  }

  .preview-content small {
    margin-top: 4px;

    font-size: 7.5px;
  }


  /* =======================================================
     PROGRESS
  ======================================================= */

  .testimonial-progress {
    margin-top: 16px;
  }

  .progress-line {
    width: 60px;
  }
}


/* =========================================================
   SMALL MOBILE
   420px
========================================================= */

@media (max-width: 420px) {

  .testimonials-head,
  .testimonials-stage {
    width:
      calc(100% - 20px);
  }


  .testimonial-copy {
    min-height: 380px;

    padding:
      38px
      19px
      34px;
  }

  .testimonial-quote {
    font-size:
      clamp(27px, 8.5vw, 32px);
  }

  .testimonial-description {
    font-size: 10px;
  }


  .testimonial-media {
    height: 300px;
    min-height: 300px;
  }


  .testimonial-previews {
    width:
      calc(100% - 16px);

    right: 8px;
    bottom: 8px;
  }

  .testimonial-preview {
    flex-basis: 86%;

    padding:
      10px 11px;
  }


  .testimonial-mark {
    font-size: 125px;

    top: -20px;
  }


  .testimonial-count {
    gap: 8px;

    font-size: 7px;

    letter-spacing: 1.5px;
  }

  .testimonial-count i {
    width: 22px;
  }
}


/* =========================================================
   EXTRA SMALL DEVICES
   360px
========================================================= */

@media (max-width: 360px) {

  .testimonial-copy {
    min-height: 365px;

    padding:
      34px
      17px
      30px;
  }

  .testimonial-quote {
    font-size: 26px;
  }

  .testimonial-description {
    font-size: 9.5px;

    line-height: 1.7;
  }

  .testimonial-person {
    margin-top: 21px;
  }

  .person-avatar {
    width: 68px;
    height: 68px;

    flex-basis: 68px;
  }

  .person-avatar img {
    width: 58px;
    height: 58px;
  }

  .testimonial-media {
    height: 280px;
    min-height: 280px;
  }

  .testimonial-preview {
    flex-basis: 90%;
  }
}


/* =========================================================
   TOUCH DEVICES
========================================================= */

@media (hover: none) and (pointer: coarse) {

  .testimonial-main:hover {
    border-color: var(--line);
    transform: none;
  }

  .testimonial-main:hover .testimonial-image {
    transform: scale(1.03);
  }

  .testimonial-preview:hover {
    transform: none;

    background:
      rgba(18,18,18,.72);

    border-color:
      rgba(255,255,255,.13);
  }

  .testimonial-preview:hover .preview-avatar img {
    transform: none;
  }

  .testimonial-preview:hover .preview-arrow {
    transform: none;
  }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .testimonial-image,
  .testimonial-quote,
  .testimonial-description,
  .testimonial-person,
  .testimonial-label,
  .testimonial-preview,
  .preview-avatar img,
  .preview-arrow,
  .progress-line i {
    transition: none !important;
  }

  .person-avatar::before,
  .person-avatar::after {
    animation: none !important;
  }
}

/* ================= NEWS ================= */

.news-grid {
  max-width: var(--container);
  margin: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.news-card {
  position: relative;
  background: var(--ink-3);
  border: 1px solid var(--line);
  overflow: hidden;
  transition:
    transform .65s var(--ease),
    border-color .5s,
    box-shadow .65s var(--ease);
}

.news-card:hover {
  transform: translateY(-9px);
  border-color: rgba(228,207,159,.4);
  box-shadow: 0 30px 60px rgba(0,0,0,.22);
}

.news-card img {
  width: 100%;
  height: 270px;
  display: block;
  object-fit: cover;
  transition: transform 1s var(--ease);
}

.news-card:hover img {
  transform: scale(1.07);
}

.news-card > div {
  padding: 28px;
}

.news-card span {
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--gold);
  text-transform: uppercase;
}

.news-card h3 {
  font: 400 29px/1.05 var(--serif);
  margin: 16px 0 30px;
  letter-spacing: -.02em;
}

.news-card a {
  display: inline-flex;
  gap: 10px;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--gold-light);
}

.news-card a::after {
  content: "→";
  transition: transform .4s var(--ease);
}

.news-card a:hover::after {
  transform: translateX(5px);
}

/* ================= BROCHURE / CTA ================= */

.brochure {
  position: relative;
  max-width: var(--container);
  margin: 0 auto var(--section-space);
  padding: clamp(55px, 6vw, 85px) clamp(30px, 6vw, 85px);
  background:
    linear-gradient(110deg, rgba(199,165,106,.09), transparent 50%),
    var(--ink-2);
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  overflow: hidden;
}

.brochure::before {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: -100px;
  top: -180px;
  border: 1px solid rgba(228,207,159,.13);
  border-radius: 50%;
}

.brochure::after {
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  right: 0;
  top: -85px;
  border: 1px solid rgba(228,207,159,.1);
  border-radius: 50%;
}

.brochure > * {
  position: relative;
  z-index: 2;
}

.brochure h2 {
  font-size: clamp(43px, 4.2vw, 67px);
  margin-bottom: 14px;
}

.brochure .button {
  flex: none;
}

/* =========================================================
   CONTACT — PREMIUM EDITORIAL ENQUIRY EXPERIENCE
========================================================= */

.contact {
  width: min(100% - 40px, var(--container));

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    minmax(0, .8fr)
    minmax(0, 1.2fr);

  gap: clamp(60px, 9vw, 140px);

  position: relative;

  isolation: isolate;
}


/* =========================================================
   CONTACT COPY
========================================================= */

.contact .copy {
  position: relative;

  align-self: start;

  padding-top: 4px;
}


/* Subtle decorative glow */

.contact .copy::before {
  content: "";

  position: absolute;

  width: 220px;
  height: 220px;

  top: -100px;
  left: -100px;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(199,165,106,.075),
      transparent 68%
    );

  pointer-events: none;

  z-index: -1;
}


/* =========================================================
   CONTACT HEADING
========================================================= */

.contact .copy h2 {
  max-width: 620px;

  margin-top: 15px;

  text-wrap: balance;
}

.contact .copy h2 em {
  font-style: italic;

  color: var(--gold-light);
}


/* =========================================================
   CONTACT DESCRIPTION
========================================================= */

.contact .copy > p {
  max-width: 470px;

  margin-top: 25px;

  color: var(--muted);

  font-size: 12px;

  line-height: 1.9;
}


/* =========================================================
   CONTACT INFORMATION
========================================================= */

.contact-list {
  display: grid;

  gap: 13px;

  margin-top: 38px;

  color: var(--gold-light);

  font-size: 9px;

  line-height: 1.5;

  letter-spacing: 1px;
}

.contact-list span,
.contact-list a {
  position: relative;

  width: fit-content;

  display: inline-flex;

  align-items: center;

  transition:
    color .35s ease,
    transform .45s cubic-bezier(.22,1,.36,1);
}

.contact-list span::before,
.contact-list a::before {
  content: "";

  width: 0;
  height: 1px;

  margin-right: 0;

  background: var(--gold);

  transition:
    width .4s cubic-bezier(.22,1,.36,1),
    margin-right .4s cubic-bezier(.22,1,.36,1);
}

.contact-list span:hover,
.contact-list a:hover {
  color: var(--white);

  transform: translateX(5px);
}

.contact-list span:hover::before,
.contact-list a:hover::before {
  width: 18px;

  margin-right: 9px;
}


/* =========================================================
   FORM
========================================================= */

.form {
  position: relative;

  border-top: 1px solid var(--line);

  padding-top: 7px;

  min-width: 0;
}


/* =========================================================
   FORM TOP SHINE
========================================================= */

.form::before {
  content: "";

  position: absolute;

  top: -1px;
  left: 0;

  width: 80px;
  height: 1px;

  background: var(--gold);

  opacity: .65;

  transition:
    width .7s cubic-bezier(.22,1,.36,1);
}

.form:focus-within::before {
  width: 180px;

  opacity: 1;
}


/* =========================================================
   FIELD ROW
========================================================= */

.field-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr);

  gap: 25px;
}


/* =========================================================
   FORM LABEL
========================================================= */

.form label {
  display: block;

  position: relative;

  margin: 25px 0;

  min-width: 0;
}


/* =========================================================
   FIELD TITLE
========================================================= */

.form label > span {
  display: block;

  margin-bottom: 9px;

  color: #929593;

  font-size: 8px;

  font-weight: 500;

  line-height: 1.4;

  text-transform: uppercase;

  letter-spacing: 1.7px;

  transition:
    color .3s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}


/* =========================================================
   FIELD WRAPPER EFFECT
========================================================= */

.form label:focus-within > span {
  color: var(--gold-light);

  transform:
    translateY(-2px);
}


/* =========================================================
   ALL INPUTS
========================================================= */

.form input,
.form select,
.form textarea {
  width: 100%;

  min-height: 45px;

  display: block;

  padding:
    12px 13px;

  background:
    rgba(255,255,255,.015);

  border:
    1px solid transparent;

  border-bottom:
    1px solid #4a4f51;

  border-radius: 0;

  outline: none;

  color: var(--text);

  font-family: inherit;

  font-size: 12px;

  line-height: 1.5;

  appearance: none;

  -webkit-appearance: none;

  transition:
    border-color .35s ease,
    background .35s ease,
    box-shadow .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}


/* =========================================================
   INPUT HOVER
========================================================= */

.form input:hover,
.form select:hover,
.form textarea:hover {
  background:
    rgba(255,255,255,.028);

  border-bottom-color:
    rgba(228,207,159,.38);
}


/* =========================================================
   INPUT FOCUS
========================================================= */

.form input:focus,
.form select:focus,
.form textarea:focus {
  border-color:
    rgba(199,165,106,.35);

  border-bottom-color:
    var(--gold);

  background:
    rgba(199,165,106,.035);

  box-shadow:
    0 10px 30px rgba(0,0,0,.08);

  transform:
    translateY(-1px);
}


/* =========================================================
   PLACEHOLDER
========================================================= */

.form input::placeholder,
.form textarea::placeholder {
  color: rgba(255,255,255,.28);

  transition:
    opacity .3s ease,
    transform .3s ease;
}

.form input:focus::placeholder,
.form textarea:focus::placeholder {
  opacity: .35;

  transform:
    translateX(4px);
}


/* =========================================================
   AUTOFILL
========================================================= */

.form input:-webkit-autofill,
.form input:-webkit-autofill:hover,
.form input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--text);

  transition:
    background-color 9999s ease-in-out 0s;
}


/* =========================================================
   CUSTOM SELECT
========================================================= */

.form label:has(select) {
  position: relative;
}


/* Select itself */

.form select {
  padding-right: 45px;

  cursor: pointer;

  color: var(--text);

  background-color:
    rgba(255,255,255,.015);
}


/* Custom arrow */

.form label:has(select)::after {
  content: "";

  position: absolute;

  right: 15px;
  bottom: 17px;

  width: 7px;
  height: 7px;

  border-right:
    1px solid var(--gold);

  border-bottom:
    1px solid var(--gold);

  transform:
    rotate(45deg);

  pointer-events: none;

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    bottom .35s ease,
    border-color .3s ease;
}


/* Arrow active */

.form label:has(select:focus)::after {
  bottom: 13px;

  transform:
    rotate(225deg);

  border-color:
    var(--gold-light);
}


/* =========================================================
   SELECT OPTIONS
========================================================= */

.form select option {
  background:
    #141a1e;

  color:
    #f2f2f2;

  padding:
    12px;
}

.form select option:checked {
  background:
    #20272b;
}


/* =========================================================
   TEXTAREA
========================================================= */

.form textarea {
  min-height: 115px;

  resize: vertical;

  line-height: 1.7;
}


/* =========================================================
   FIELD VALIDATION
========================================================= */

/*
   JS can add:
   .is-error
   .is-success

   Either to the input/select/textarea
   or to the parent label.
*/

.form label.is-error > span {
  color:
    #d98c8c;
}

.form label.is-error input,
.form label.is-error select,
.form label.is-error textarea,
.form input.is-error,
.form select.is-error,
.form textarea.is-error {
  border-color:
    rgba(190,85,85,.35);

  border-bottom-color:
    #c96d6d;

  background:
    rgba(190,85,85,.035);
}

.form label.is-success > span {
  color:
    rgba(199,215,183,.9);
}

.form label.is-success input,
.form label.is-success select,
.form label.is-success textarea,
.form input.is-success,
.form select.is-success,
.form textarea.is-success {
  border-bottom-color:
    rgba(157,184,141,.75);
}


/* =========================================================
   ERROR MESSAGE
========================================================= */

.field-error {
  display: block;

  max-height: 0;

  margin-top: 0;

  overflow: hidden;

  color:
    #d98c8c;

  font-size: 8px;

  line-height: 1.5;

  letter-spacing: .3px;

  opacity: 0;

  transform:
    translateY(-4px);

  transition:
    max-height .35s ease,
    margin-top .35s ease,
    opacity .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}

.form label.is-error .field-error {
  max-height: 30px;

  margin-top: 7px;

  opacity: 1;

  transform:
    translateY(0);
}


/* =========================================================
   ERROR SHAKE
========================================================= */

.form label.is-error input,
.form label.is-error select,
.form label.is-error textarea {
  animation:
    fieldShake .4s ease;
}

@keyframes fieldShake {

  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-4px);
  }

  50% {
    transform: translateX(4px);
  }

  75% {
    transform: translateX(-2px);
  }
}


/* =========================================================
   SUBMIT BUTTON
========================================================= */

.form .button {
  position: relative;

  min-width: 165px;
  min-height: 48px;

  margin-top: 5px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  gap: 13px;

  overflow: hidden;

  border: 1px solid var(--gold);

  background:
    var(--gold);

  color:
    #111;

  font-family: inherit;

  font-size: 9px;

  font-weight: 600;

  letter-spacing: 1.5px;

  text-transform: uppercase;

  cursor: pointer;

  transition:
    transform .45s cubic-bezier(.22,1,.36,1),
    background .35s ease,
    color .35s ease,
    box-shadow .45s ease,
    opacity .3s ease;
}


/* Shine */

.form .button::before {
  content: "";

  position: absolute;

  top: 0;
  left: -120%;

  width: 70%;
  height: 100%;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.35),
      transparent
    );

  transform:
    skewX(-20deg);

  transition:
    left .7s ease;
}

.form .button:hover::before {
  left: 140%;
}


/* Button hover */

.form .button:hover {
  transform:
    translateY(-3px);

  background:
    var(--gold-light);

  box-shadow:
    0 15px 35px rgba(0,0,0,.18);
}


/* Arrow */

.form .button > span {
  display: inline-block;

  font-size: 15px;

  line-height: 1;

  transition:
    transform .4s cubic-bezier(.22,1,.36,1);
}

.form .button:hover > span {
  transform:
    translate(4px,-4px);
}


/* Active */

.form .button:active {
  transform:
    translateY(-1px)
    scale(.985);

  box-shadow:
    0 8px 20px rgba(0,0,0,.12);
}


/* =========================================================
   BUTTON LOADING STATE
========================================================= */

/*
   Add .loading using JS:
   button.classList.add("loading");
*/

.form .button.loading {
  pointer-events: none;

  cursor: wait;

  opacity: .8;

  transform: none;

  box-shadow: none;
}

.form .button.loading > span {
  width: 14px;
  height: 14px;

  margin-left: 2px;

  border:
    1px solid rgba(17,17,17,.25);

  border-top-color:
    #111;

  border-radius: 50%;

  font-size: 0;

  animation:
    buttonSpin .7s linear infinite;
}

@keyframes buttonSpin {
  to {
    transform:
      rotate(360deg);
  }
}


/* =========================================================
   SUCCESS BUTTON
========================================================= */

.form .button.success {
  background:
    #a9bd98;

  border-color:
    #a9bd98;

  color:
    #101510;

  pointer-events: none;
}

.form .button.success > span {
  transform: none;

  font-size: 14px;
}


/* =========================================================
   FORM STATUS
========================================================= */

.form-status {
  min-height: 16px;

  margin-top: 14px;

  color: var(--gold);

  font-size: 10px;

  line-height: 1.5;

  opacity: 0;

  transform:
    translateY(6px);

  transition:
    opacity .4s ease,
    transform .45s cubic-bezier(.22,1,.36,1);
}


/* JS can add .show */

.form-status.show {
  opacity: 1;

  transform:
    translateY(0);
}

.form-status.error {
  color:
    #d98c8c;
}

.form-status.success {
  color:
    #b5c9a5;
}


/* =========================================================
   FORM SUBMIT SUCCESS ANIMATION
========================================================= */

.form.is-success {
  animation:
    formSuccess .6s cubic-bezier(.22,1,.36,1);
}

@keyframes formSuccess {

  0% {
    transform: translateY(0);
  }

  45% {
    transform: translateY(-4px);
  }

  100% {
    transform: translateY(0);
  }
}


/* =========================================================
   TABLET
   1000px
========================================================= */

@media (max-width: 1000px) {

  .contact {
    width:
      min(100% - 36px, var(--container));

    grid-template-columns:
      minmax(0, .9fr)
      minmax(0, 1.1fr);

    gap:
      clamp(45px, 7vw, 80px);
  }

  .contact .copy > p {
    max-width: 430px;
  }

  .field-row {
    gap: 18px;
  }
}


/* =========================================================
   TABLET / SMALL LAPTOP
   800px
========================================================= */

@media (max-width: 800px) {

  .contact {
    width:
      min(100% - 32px, 680px);

    grid-template-columns:
      1fr;

    gap:
      55px;
  }

  .contact .copy {
    max-width: 650px;
  }

  .contact .copy > p {
    max-width: 560px;
  }

  .contact-list {
    grid-template-columns:
      repeat(3, auto);

    justify-content: start;

    gap:
      25px;

    margin-top: 30px;
  }

  .form {
    padding-top: 10px;
  }
}


/* =========================================================
   MOBILE
   600px
========================================================= */

@media (max-width: 600px) {

  .contact {
    width:
      calc(100% - 28px);

    gap:
      42px;
  }


  /* =======================================================
     COPY
  ======================================================= */

  .contact .copy h2 {
    margin-top: 11px;
  }

  .contact .copy > p {
    margin-top: 20px;

    font-size: 11px;

    line-height: 1.8;
  }


  /* =======================================================
     CONTACT DETAILS
  ======================================================= */

  .contact-list {
    display: grid;

    grid-template-columns:
      1fr;

    gap: 11px;

    margin-top: 27px;

    font-size: 8px;
  }


  /* =======================================================
     FORM
  ======================================================= */

  .form {
    padding-top: 9px;
  }

  .field-row {
    grid-template-columns:
      1fr;

    gap: 0;
  }


  /* =======================================================
     LABEL
  ======================================================= */

  .form label {
    margin:
      19px 0;
  }

  .form label > span {
    margin-bottom: 8px;

    font-size: 10px;
    /* font-size: 7.5px; */
  }


  /* =======================================================
     INPUT
  ======================================================= */

  .form input,
  .form select,
  .form textarea {
    min-height: 48px;

    padding:
      13px 12px;

    font-size: 12px;
  }

  .form textarea {
    min-height: 125px;
  }


  /* =======================================================
     SELECT
  ======================================================= */

  .form label:has(select)::after {
    right: 15px;

    bottom: 18px;
  }


  /* =======================================================
     BUTTON
  ======================================================= */

  .form .button {
    width: 100%;

    min-height: 52px;

    margin-top: 5px;
  }


  /* =======================================================
     STATUS
  ======================================================= */

  .form-status {
    font-size: 9px;

    margin-top: 12px;
  }
}


/* =========================================================
   SMALL MOBILE
   420px
========================================================= */

@media (max-width: 420px) {

  .contact {
    width:
      calc(100% - 22px);

    gap:
      38px;
  }

  .contact .copy > p {
    /* font-size: 10.5px; */
    font-size: 13px;

    line-height: 1.75;
  }

  .contact-list {
    /* font-size: 7.5px; */
    font-size: 12px;

    letter-spacing: .8px;
  }

  .form label {
    margin:
      17px 0;
  }

  .form input,
  .form select,
  .form textarea {
    font-size: 11px;
  }
}


/* =========================================================
   TOUCH DEVICES
========================================================= */

@media (hover: none) and (pointer: coarse) {

  .contact-list span:hover,
  .contact-list a:hover {
    transform: none;

    color: var(--gold-light);
  }

  .contact-list span:hover::before,
  .contact-list a:hover::before {
    width: 0;

    margin-right: 0;
  }

  .form .button:hover {
    transform: none;

    box-shadow: none;
  }

  .form .button:hover > span {
    transform: none;
  }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .contact *,
  .contact *::before,
  .contact *::after {
    scroll-behavior: auto !important;

    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;

    transition-duration: .01ms !important;
  }
}


/* ================= FOOTER ================= */

/* =========================================================
   PRATH ESTATE
   PREMIUM FOOTER
========================================================= */

.footer {
    position: relative;

    /* background:
        radial-gradient(
            circle at 80% 25%,
            rgba(190, 154, 87, 0.035),
            transparent 30%
        ),
        #0d1215; */

    color: #b7bbb9;

    overflow: hidden;

    border-top: 1px solid rgba(255,255,255,0.08);
}

.footer{
    background:url(../assets/images/footer-bg-img.svg) no-repeat center;
    background-size: cover;
}

/* =========================================================
   FOOTER TOP
========================================================= */

.footer-top {

    position: relative;

    z-index: 2;

    width: min(1380px, calc(100% - 80px));

    margin: 0 auto;

    padding: 82px 0 78px;

    display: grid;

    /* grid-template-columns:
        1.65fr
        .75fr
        .95fr
        1.25fr
        1.35fr; */

        grid-template-columns:
        1.5fr
        1fr
        1fr
        1.5fr;

    
    
    gap: 0;

}


/* =========================================================
   COLUMNS
========================================================= */

.footer-brand,
.footer-column {

    min-height: 275px;

    padding: 0 42px;

    border-left: 1px solid rgba(255,255,255,0.08);

}

.footer-brand {

    padding-left: 0;

    border-left: 0;

    padding-right: 55px;

}


/* =========================================================
   BRAND
========================================================= */

.footer-brand .logo {

    display: inline-flex;

    align-items: center;

    gap: 15px;

    text-decoration: none;

}


.footer-brand img.footer-logo-img{
  height:100px !important;
}

/*
   Your existing logo mark
*/

.footer-brand .logo-mark {

    position: relative;

    width: 45px;

    height: 52px;

    display: flex;

    align-items: flex-end;

    justify-content: center;

    gap: 4px;

}


.footer-brand .logo-mark i {

    display: block;

    width: 6px;

    border: 1px solid #c9a764;

    background: transparent;

}


.footer-brand .logo-mark i:nth-child(1) {
    height: 30px;
}

.footer-brand .logo-mark i:nth-child(2) {
    height: 52px;
}

.footer-brand .logo-mark i:nth-child(3) {
    height: 38px;
}


.footer-brand .logo-text strong {

    display: block;

    color: #e8e5dc;

    font-family: "Playfair Display", serif;

    font-size: 22px;

    font-weight: 400;

    letter-spacing: 1.4px;

    line-height: 1;
}


.footer-brand .logo-text small {

    display: block;

    margin-top: 7px;

    color: #777d7a;

    font-size: 7px;

    letter-spacing: 2.3px;

}


/* =========================================================
   GOLD BRAND LINE
========================================================= */

.footer-brand-line {

    width: 48px;

    height: 1px;

    margin: 34px 0 25px;

    background: #c9a764;

}


.footer-brand p {

    max-width: 355px;

    margin: 0;

    color: #8e9491;

    font-size: 13px;

    font-weight: 300;

    line-height: 1.9;

}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.footer-social {

    display: flex;

    gap: 12px;

    margin-top: 30px;

}


.footer-social a {

    width: 43px;

    height: 43px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid rgba(201,167,100,0.55);

    border-radius: 50%;

    color: #c9a764;

    font-size: 20px;

    text-decoration: none;

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;

}


.footer-social a:hover {

    background: #c9a764;

    color: #101417;

    transform: translateY(-3px);

}


/* =========================================================
   COLUMN TITLE
========================================================= */

.footer-title {

    display: block;

    margin-bottom: 28px;

    color: #c9a764;

    font-size: 11px;

    font-weight: 500;

    letter-spacing: 2px;

    text-transform: uppercase;

}


/* =========================================================
   COLUMN LINKS
========================================================= */

.footer-column > a {

    position: relative;

    width: fit-content;

    display: block;

    margin-bottom: 15px;

    color: #a2a7a4;

    font-size: 13px;

    font-weight: 300;

    text-decoration: none;

    transition:
        color .25s ease,
        padding-left .25s ease;

}


.footer-column > a::before {

    content: "";

    position: absolute;

    left: 0;

    top: 50%;

    width: 0;

    height: 1px;

    background: #c9a764;

    transition: width .25s ease;

}


.footer-column > a:hover {

    color: #eeeae0;

    padding-left: 14px;

}


.footer-column > a:hover::before {

    width: 7px;

}


/* =========================================================
   CONTACT
========================================================= */

.footer-contact-item {

    display: flex;

    align-items: flex-start;

    gap: 14px;

    margin-bottom: 22px;

}


.contact-icon {

    flex: 0 0 24px;

    color: #c9a764;

    font-size: 17px;

    line-height: 1.4;

}


.footer-contact-item p {

    margin: 0;

    color: #929895;

    font-size: 15px;

    font-weight: 300;

    line-height: 1.75;

}


.footer-contact-item a {

    color: #aeb3b0;

    text-decoration: none;

    transition: color .25s ease;

}


.footer-contact-item a:hover {

    color: #d8b978;

}


/* =========================================================
   NEWSLETTER
========================================================= */

.footer-newsletter h3 {

    max-width: 250px;

    margin: 0 0 14px;

    color: #dedbd3;

    font-family: "Playfair Display", serif;

    font-size: 24px;

    font-weight: 400;

    line-height: 1.3;

}


.footer-newsletter h3 em {

    color: #d2ae6c;

    font-style: italic;

}


.footer-newsletter > p {

    max-width: 310px;

    margin: 0 0 24px;

    color: #808683;

    font-size: 13px;

    line-height: 1.7;

}


/* =========================================================
   NEWSLETTER FORM
========================================================= */

.footer-form {

    position: relative;

    width: 100%;

    max-width: 330px;

    height: 48px;

    display: flex;

    border: 1px solid rgba(255,255,255,0.18);

    background: rgba(255,255,255,0.015);

    transition: border-color .25s ease;

}


.footer-form:focus-within {

    border-color: rgba(201,167,100,0.65);

}


.footer-form input {

    width: 100%;

    min-width: 0;

    border: 0;

    outline: 0;

    padding: 0 15px;

    background: transparent;

    color: #dcd9d0;

    font-size: 14px;

}


.footer-form input::placeholder {

    color: #626966;

}


.footer-form button {

    width: 50px;

    flex: 0 0 50px;

    border: 0;

    background: transparent;

    color: #d0ac68;

    font-size: 20px;

    cursor: pointer;

    transition:
        background .25s ease,
        color .25s ease;

}


.footer-form button:hover {

    background: #c9a764;

    color: #111619;

}


/* =========================================================
   CONSENT
========================================================= */

.footer-consent {

    display: flex;

    align-items: flex-start;

    gap: 9px;

    max-width: 330px;

    margin-top: 15px;

    color: #666d69;

    font-size: 9px;

    line-height: 1.5;

    cursor: pointer;

}


.footer-consent input {

    width: 12px;

    height: 12px;

    margin-top: 1px;

    flex: 0 0 auto;

    accent-color: #c9a764;

}


/* =========================================================
   ARCHITECTURAL DECORATION
========================================================= */

.footer-architecture {

    position: absolute;

    z-index: 1;

    right: -10px;

    bottom: 64px;

    width: 330px;

    height: 270px;

    opacity: .20;

    pointer-events: none;

}


.building {

    position: absolute;

    bottom: 0;

    display: block;

    border: 1px solid #c9a764;

    border-bottom: 0;

}


.building-one {

    right: 250px;

    width: 45px;

    height: 100px;

}


.building-two {

    right: 185px;

    width: 65px;

    height: 150px;

}


.building-three {

    right: 95px;

    width: 80px;

    height: 205px;

}


.building-four {

    right: 0;

    width: 100px;

    height: 245px;

}


/* Building windows */

.building::after {

    content: "";

    position: absolute;

    inset: 14px;

    background:

        repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 17px,
            rgba(201,167,100,.5) 18px,
            transparent 19px
        );

}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.footer-bottom {

    position: relative;

    z-index: 3;

    border-top: 1px solid rgba(255,255,255,0.09);

}


.footer-bottom-inner {

    width: min(1380px, calc(100% - 80px));

    min-height: 74px;

    margin: auto;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;

    color: #626966;

    font-size: 9px;

    letter-spacing: .3px;

}


.footer-legal {

    display: flex;

    align-items: center;

    gap: 12px;

}


.footer-legal a {

    color: #737976;

    text-decoration: none;

    transition: color .25s ease;

}


.footer-legal a:hover {

    color: #c9a764;

}


.footer-tagline {

    color: #b9934f;

    font-size: 9px;

    letter-spacing: 3px;

}


.footer-bottom-inner span{

  font-size: 13px
}
.footer-legal a{
font-size: 13px;
}


/* =========================================================
   LARGE TABLET
========================================================= */

@media (max-width: 1150px) {

    .footer-top {

        width: min(100% - 50px, 1100px);

        grid-template-columns:
            1.4fr
            .7fr
            .9fr
            1.2fr;

    }

    .footer-newsletter {

        grid-column: 1 / -1;

        border-left: 0;

        border-top: 1px solid rgba(255,255,255,0.08);

        margin-top: 45px;

        padding: 40px 0 0;

        min-height: auto;

    }

    .footer-newsletter > p {

        max-width: 400px;

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 800px) {

    .footer-top {

        width: calc(100% - 40px);

        grid-template-columns: 1fr 1fr;

        padding: 65px 0;

    }

    .footer-brand {

        grid-column: 1 / -1;

        padding: 0 0 45px;

        border-bottom: 1px solid rgba(255,255,255,0.08);

        min-height: auto;

    }

    .footer-column {

        min-height: 230px;

        padding: 35px 25px;

    }

    .footer-column:nth-child(2) {

        padding-left: 0;

        border-left: 0;

    }

    .footer-newsletter {

        grid-column: 1 / -1;

        padding: 40px 0 0;

        border-left: 0;

    }

    .footer-bottom-inner {

        width: calc(100% - 40px);

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 560px) {

    .footer-top {

        display: block;

        width: calc(100% - 34px);

        padding: 55px 0 45px;

    }


    .footer-brand {

        padding-bottom: 40px;

    }


    .footer-brand .logo-text strong {

        font-size: 19px;

    }


    .footer-brand p {

        font-size: 12px;

    }


    .footer-column {

        min-height: auto;

        padding: 35px 0;

        border-left: 0;

        border-top: 1px solid rgba(255,255,255,0.08);

    }


    .footer-newsletter {

        padding-top: 40px;

    }


    .footer-title {

        margin-bottom: 22px;

    }


    .footer-bottom-inner {

        width: calc(100% - 34px);

        padding: 22px 0;

        flex-direction: column;

        align-items: flex-start;

        gap: 14px;

    }


    .footer-tagline {

        order: -1;

    }


    .footer-architecture {

        opacity: .10;

        transform: scale(.7);

        transform-origin: bottom right;

    }

}
/* ================= SCROLL REVEAL ================= */

.reveal {
  opacity: 0;
  transform: translateY(38px);
  filter: blur(3px);
  transition:
    opacity .9s var(--ease),
    transform .9s var(--ease),
    filter .9s var(--ease);
}

.reveal.visible {
  opacity: 1;
  transform: none;
  filter: none;
}

.reveal:nth-child(2) { transition-delay: .08s; }
.reveal:nth-child(3) { transition-delay: .16s; }
.reveal:nth-child(4) { transition-delay: .24s; }

/* ================= PREMIUM UTILITIES ================= */

.hero .button,
.brochure .button,
.form .button {
  will-change: transform;
}

@media (hover: hover) {
  .large-photo,
  .testimonial-image,
  .news-card,
  .plan,
  .value,
  .button,
  .header-cta {
    will-change: transform;
  }
}

/* ================= TABLET ================= */

@media (max-width: 1100px) {
  .nav {
    gap: 19px;
    margin-right: 25px;
  }

  .nav a {
    font-size: 8px;
  }

  .header-cta {
    padding: 0 13px;
  }

  .hero-inner {
    margin-left: 7%;
  }

  .section {
    padding-left: 6%;
    padding-right: 6%;
  }

  .section::before {
    left: 6%;
  }

  .section-layout,
  .testimonial-layout {
    gap: 55px;
  }

  .numbers {
    padding-left: 6%;
    padding-right: 6%;
  }

  .footer-top {
    padding-left: 6%;
    padding-right: 6%;
  }
}

/* ================= MOBILE NAV ================= */



@media (max-width: 950px) {

  /* Hide desktop hero images */
  .hero-slide {
    display: none;
  }

  /* Show different mobile image */
  .hero-image-mobile {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .hero-image {
    display: block;
    width: 100%;
    height: 100%;
  }
}





@media (max-width: 950px) {
  .header{
background-color: rgba(0, 0, 0, 0.756);
  }
 .mobile-nav {
    display: flex;
    position: fixed;
    z-index: 450;
    /* top: 76px; */
    top: 60px;
    left: 0;
    right: 0;
    padding: 32px 7%;
    /* background:
      linear-gradient(135deg, rgba(199, 165, 106, 0.312), transparent),
      rgba(29, 34, 38, 0.97); */
    background:
      black;
    backdrop-filter: blur(25px);
    border-bottom: 1px solid var(--line);
    flex-direction: column;
    gap: 4px;
    transform: translateY(-120%);
    opacity: 0;
    transition:
      transform .6s var(--ease),
      opacity .5s;
  }

  .mobile-nav.open {
    transform: none;
    opacity: 1;
  }

  .mobile-nav a {
    position: relative;
    padding: 15px 0;
    text-transform: uppercase;
    font-size: 9px;
    letter-spacing: 2px;
    border-bottom: 1px solid rgba(255,255,255,.06);
  }

  .mobile-nav a::after {
    content: "↗";
    position: absolute;
    right: 0;
    color: var(--gold);
  }
}


@media (max-width: 950px) {


  .header.scrolled {
    height: 70px;
  }

  .nav,
  .header-cta {
    display: none;
  }

  .menu {
    display: block;
  }

  .mobile-nav {
    display: flex;
    position: fixed;
    z-index: 450;
    /* top: 76px; */
    top: 60px;
    left: 0;
    right: 0;
    padding: 32px 7%;
    background:
      linear-gradient(135deg, rgba(199,165,106,.045), transparent),
      rgba(9,13,16,.97);
    backdrop-filter: blur(25px);
    border-bottom: 1px solid var(--line);
    flex-direction: column;
    gap: 4px;
    transform: translateY(-120%);
    opacity: 0;
    transition:
      transform .6s var(--ease),
      opacity .5s;
  }

  .mobile-nav.open {
    transform: none;
    opacity: 1;
  }

  .mobile-nav a {
    position: relative;
    padding: 15px 0;
    text-transform: uppercase;
    font-size: 9px;
    letter-spacing: 2px;
    border-bottom: 1px solid rgba(255,255,255,.06);
  }

  .mobile-nav a::after {
    content: "↗";
    position: absolute;
    right: 0;
    color: var(--gold);
  }

  .section {
    padding: 100px 7%;
  }

  .section::before {
    left: 7%;
  }

  .section-layout,
  .testimonial-layout {
    grid-template-columns: 1fr;
    gap: 55px;
  }

  .large-photo,
  .testimonial-image {
    height: 460px;
  }

  .numbers {
    grid-template-columns: 1fr;
    gap: 45px;
    padding: 80px 7%;
  }

  .number-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
  }

  .number {
    border-left: 0;
    border-bottom: 1px solid var(--line);
    padding: 24px 15px;
  }

  .number:nth-child(odd) {
    border-right: 1px solid var(--line);
  }

  .plan-grid,
  .news-grid {
    grid-template-columns: 1fr 1fr;
  }

  .plan:last-child,
  .news-card:last-child {
    grid-column: 1 / -1;
  }

  .value-grid {
    grid-template-columns: 1fr 1fr;
  }

  .value:nth-child(2n) {
    border-right: 0;
  }

  .value:nth-child(n+3) {
    border-top: 1px solid var(--line);
  }

  .brochure {
    margin-left: 7%;
    margin-right: 7%;
    padding: 55px;
    display: block;
  }

  .brochure .button {
    margin-top: 30px;
  }

  .contact {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .footer-top {
    padding: 70px 7%;
    grid-template-columns: 1fr 1fr;
    gap: 55px;
  }
}

/* ================= SMALL MOBILE ================= */

@media (max-width: 600px) {
  body {
    font-size: 14px;
  }

  .logo-text strong {
    font-size: 16px;
    letter-spacing: 2px;
  }

  .logo-text small {
    font-size: 6px;
    letter-spacing: 2px;
  }

  .hero {
    min-height: 680px;
  }

  .hero::before {
    background:
      linear-gradient(90deg, rgba(5,8,10,.9), rgba(5,8,10,.52)),
      linear-gradient(0deg, rgba(5,8,10,.82), transparent 55%);
  }

  .hero-inner {
    margin: 0 7%;
    padding-top: 4vh;
  }

  .kicker {
    font-size: 8px;
    letter-spacing: 2.2px;
    margin-bottom: 21px;
  }

  .hero h1 {
    font-size: clamp(54px, 13vw, 78px);
    line-height: .84;
    /* letter-spacing: -.055em; */
  }

  .hero p {
    max-width: 370px;
    font-size: 14px;
    margin: 25px 0 27px;
  }

  .hero .button {
    width: 100%;
    margin-bottom: 10px;
  }

  .hero-meta {
    display: none;
  }

  .scroll-cue {
    left: 7%;
    bottom: 23px;
  }

  .section {
    padding: 82px 7%;
  }

  .section::before {
    left: 7%;
    top: 30px;
  }

  .copy h2,
  .section-top h2,
  .center h2,
  .brochure h2 {
    font-size: clamp(43px, 13vw, 60px);
  }

  .numbers-head h2 {
    font-size: 48px;
  }

  .section-top {
    display: block;
  }

  .section-top .arrow-link {
    margin-top: 27px;
  }

  .large-photo,
  .testimonial-image {
    height: 350px;
  }

  .large-photo::after {
    inset: 10px;
  }

  .number-grid{
    /* grid-template-columns: 1fr; */
  grid-template-columns: repeat(2, 1fr);

  }

   .plan-grid,
  .news-grid,
  .value-grid{
    grid-template-columns: 1fr;
  /* grid-template-columns: repeat(2, 1fr); */

  }

  .number {
    border-right: 0 !important;
  }

  .plan:last-child,
  .news-card:last-child {
    grid-column: auto;
  }

  .plan-visual {
    height: 280px;
  }

  .value {
    min-height: 220px;
    border-right: 0 !important;
  }

  .value:nth-child(n+2) {
    border-top: 1px solid var(--line);
  }

  .value::after {
    left: 25px;
    right: 25px;
  }

  .news-card img {
    height: 245px;
  }

  .brochure {
    margin-left: 5%;
    margin-right: 5%;
    padding: 42px 28px;
  }

  .field-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .form label {
    margin: 19px 0;
  }

  .footer-top {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 62px 7%;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 9px;
    padding: 18px 7%;
  }

  .scroll-cue {
    left: 7%;
  }
}

/* ================= REDUCED MOTION ================= */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
    filter: none;
  }
}



.about-para{
margin: 20px 0;
}


/* .about::after {
  content: "";
  position: absolute;
  width: 46vw;
  height: 46vw;
  right: -15vw;
  bottom: -28vw;
  border: 3px solid rgba(163, 139, 84, 0.305);
  border-radius: 50%;
  backdrop-filter: blur(6px) saturate(100%);
  box-shadow:
    0 0 0 90px rgba(228,207,159,.015),
    0 0 0 180px rgba(228,207,159,.01);
  z-index: 1;
} */


/* background image layer */
/* =========================================================
   ABOUT SECTION
   Responsive: Desktop / Laptop / Tablet / Mobile
   ========================================================= */

.section.about {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}


/* =========================================================
   BACKGROUND
   ========================================================= */

.section.about::before {
  content: "";

  position: absolute;
  inset: 0;

  background:
    url("../assets/images/Home/about-bg.svg")
    center / cover
    no-repeat;

  opacity: .07;

  z-index: -1;

  pointer-events: none;
}


/* =========================================================
   MAIN LAYOUT
   ========================================================= */

.section.about .section-layout {

  position: relative;
  z-index: 1;

  display: grid;

  grid-template-columns:
    minmax(0, .85fr)
    minmax(0, 1.15fr);

  align-items: center;

  gap: clamp(50px, 7vw, 110px);
}


/* =========================================================
   TEXT CONTENT
   ========================================================= */

.section.about .copy {

  width: 100%;
  max-width: 620px;

  min-width: 0;
}


.section.about .kicker {
  margin-bottom: 22px;
}


/* Heading */

.section.about h2 {

  max-width: 600px;

  margin: 0;

  font-size: clamp(48px, 5.2vw, 82px);

  line-height: .92;

  letter-spacing: -.045em;

  text-wrap: balance;
}


.section.about h2 em {
  display: inline;
}


/* =========================================================
   PARAGRAPHS
   ========================================================= */

.about-para {

  max-width: 550px;

  margin-top: 34px;
}


.about-para p {

  margin: 0 0 18px;

  color: #aeb0ad;

  font-size: 14px;

  line-height: 1.85;

  letter-spacing: .01em;
}


.about-para p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   LEARN MORE BUTTON
   ========================================================= */

.section.about .button {

  margin-top: 18px;

  min-height: 52px;

  padding: 0 24px;

  font-size: 9px;

  white-space: nowrap;
}


/* =========================================================
   LARGE PHOTO
   ========================================================= */

.large-photo {

  position: relative;

  width: 100%;

  min-width: 0;

  margin: 0;

  /*
    Important:
    Don't rely on height:100%.
    Give the image its own controlled aspect ratio.
  */
  aspect-ratio: 1.12 / 1;

  overflow: hidden;

  background: #101315;

  border: 1px solid rgba(228, 207, 159, .18);

  box-shadow:
    0 25px 70px rgba(0, 0, 0, .18);
}


/* =========================================================
   IMAGE VIEWPORT
   ========================================================= */

.about-carousel {

  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  overflow: hidden;
}


/* =========================================================
   SLIDES
   ========================================================= */

.about-slide {

  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  opacity: 0;

  visibility: hidden;

  transform: scale(1.025);

  transition:
    opacity .7s var(--ease),
    transform 1s var(--ease),
    visibility .7s;
}


.about-slide.active {

  opacity: 1;

  visibility: visible;

  transform: scale(1);
}


/* =========================================================
   CAROUSEL IMAGES
   ========================================================= */

.about-slide img {

  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  object-position: center;
}


/* =========================================================
   IMAGE CAPTION
   ========================================================= */

.large-photo figcaption {

  position: absolute;

  left: 24px;
  bottom: 24px;

  z-index: 5;

  margin: 0;

  pointer-events: none;
}


.about-caption {

  display: inline-flex;

  align-items: center;

  min-height: 30px;

  padding: 8px 12px;

  color: #d0d0cb;

  background: rgba(5, 8, 10, .58);

  border: 1px solid rgba(228, 207, 159, .20);

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  font-size: 8px;

  letter-spacing: 2px;

  text-transform: uppercase;

  white-space: nowrap;
}


/* =========================================================
   CAROUSEL CONTROLS
   ========================================================= */

.about-carousel-controls {

  position: absolute;

  right: 24px;
  bottom: 24px;

  z-index: 6;

  display: flex;

  align-items: center;

  gap: 14px;
}


/* =========================================================
   COUNTER
   ========================================================= */

.about-counter {

  display: flex;

  align-items: center;

  gap: 10px;

  color: #aaa;

  font-size: 8px;

  letter-spacing: 2px;
}


.about-current {
  color: var(--gold-light);
}


.about-total {
  color: #888;
}


.about-line {

  width: 28px;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      var(--gold),
      rgba(228, 207, 159, .15)
    );
}


/* =========================================================
   ARROW BUTTONS
   ========================================================= */

.about-arrow {

  display: flex;

  align-items: center;
  justify-content: center;

  width: 40px;
  height: 40px;

  padding: 0;

  border: 1px solid rgba(228, 207, 159, .35);

  background: rgba(5, 8, 10, .58);

  color: var(--gold-light);

  font-size: 15px;

  cursor: pointer;

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  transition:
    background .35s var(--ease),
    border-color .35s var(--ease),
    color .35s var(--ease),
    transform .35s var(--ease);
}


.about-arrow:hover {

  background: var(--gold);

  border-color: var(--gold);

  color: #111519;

  transform: translateY(-2px);
}


/* =========================================================
   LARGE DESKTOP
   ========================================================= */

@media (min-width: 1440px) {

  .section.about .section-layout {

    grid-template-columns:
      minmax(0, .82fr)
      minmax(0, 1.18fr);

    gap: 100px;
  }


  .section.about h2 {
    font-size: clamp(64px, 5vw, 88px);
  }


  .about-para {
    max-width: 570px;
  }


  .about-para p {
    font-size: 15px;
  }


  .large-photo {
    aspect-ratio: 1.15 / 1;
  }
}


/* =========================================================
   LAPTOP
   ========================================================= */

@media (max-width: 1200px) {

  .section.about .section-layout {

    grid-template-columns:
      minmax(0, .9fr)
      minmax(0, 1.1fr);

    gap: 55px;
  }


  .section.about h2 {

    font-size: clamp(45px, 5.4vw, 68px);
  }


  .about-para {

    margin-top: 27px;
  }


  .about-para p {

    font-size: 13px;

    line-height: 1.8;
  }


  .large-photo {
    aspect-ratio: 1.05 / 1;
  }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .section.about .section-layout {

    grid-template-columns: 1fr;

    gap: 55px;
  }


  .section.about .copy {

    max-width: 700px;
  }


  .section.about h2 {

    max-width: 700px;

    font-size: clamp(48px, 8vw, 70px);
  }


  .about-para {

    max-width: 650px;

    margin-top: 28px;
  }


  .about-para p {

    font-size: 14px;

    line-height: 1.8;
  }


  .large-photo {

    width: 100%;

    max-width: 850px;

    aspect-ratio: 1.5 / 1;

    justify-self: center;
  }
}


/* =========================================================
   SMALL TABLET
   ========================================================= */

@media (max-width: 700px) {

  .section.about .section-layout {

    gap: 40px;
  }


  .section.about h2 {

    font-size: clamp(43px, 10vw, 62px);

    line-height: .93;
  }


  .about-para {

    margin-top: 24px;
  }


  .about-para p {

    font-size: 13px;

    line-height: 1.75;

    margin-bottom: 16px;
  }


  .section.about .button {

    margin-top: 12px;

    min-height: 50px;
  }


  .large-photo {

    aspect-ratio: 1.18 / 1;

    max-width: none;
  }


  .large-photo figcaption {

    left: 15px;

    bottom: 15px;
  }


  .about-caption {

    min-height: 28px;

    padding: 7px 10px;

    font-size: 7px;

    letter-spacing: 1.6px;
  }


  .about-carousel-controls {

    right: 15px;

    bottom: 15px;

    gap: 8px;
  }


  .about-arrow {

    width: 36px;
    height: 36px;

    font-size: 14px;
  }


  .about-counter {
    display: none;
  }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .section.about {

    overflow: hidden;
  }


  .section.about::before {

    background-position: center;

    opacity: .045;
  }


  .section.about .section-layout {

    display: flex;

    flex-direction: column;

    gap: 38px;

    width: 100%;
  }


  /* -----------------------------------------
     TEXT
     ----------------------------------------- */

  .section.about .copy {

    width: 100%;

    max-width: none;
  }


  .section.about .kicker {

    margin-bottom: 18px;

    font-size: 8px;

    letter-spacing: 2.4px;
  }


  .section.about h2 {

    width: 100%;

    max-width: 100%;

    font-size: clamp(42px, 12.5vw, 62px);

    line-height: .91;

    letter-spacing: -.045em;

    text-wrap: balance;
  }


  /* -----------------------------------------
     PARAGRAPHS
     ----------------------------------------- */

  .about-para {

    width: 100%;

    max-width: none;

    margin-top: 24px;
  }


  .about-para p {

    margin-bottom: 16px;

    color: #bfc1bd;

    font-size: 13px;

    line-height: 1.78;
  }


  .about-para p:last-child {
    margin-bottom: 0;
  }


  /* -----------------------------------------
     BUTTON
     ----------------------------------------- */

  .section.about .button {

    width: auto;

    min-height: 50px;

    margin-top: 17px;

    padding: 0 20px;

    font-size: 9px;

    letter-spacing: 1.5px;
  }


  /* -----------------------------------------
     IMAGE
     ----------------------------------------- */

  .large-photo {

    width: 100%;

    height: auto;

    aspect-ratio: 1 / 1.05;

    margin: 0;

    border-color: rgba(228, 207, 159, .22);

    box-shadow:
      0 20px 50px rgba(0, 0, 0, .25);
  }


  .about-carousel {
    position: absolute;
    inset: 0;
  }


  .about-slide img {

    object-fit: cover;

    object-position: center center;
  }


  /* -----------------------------------------
     CAPTION
     ----------------------------------------- */

  .large-photo figcaption {

    left: 13px;

    bottom: 13px;
  }


  .about-caption {

    padding: 7px 9px;

    font-size: 7px;

    letter-spacing: 1.4px;
  }


  /* -----------------------------------------
     CONTROLS
     ----------------------------------------- */

  .about-carousel-controls {

    right: 13px;

    bottom: 13px;

    gap: 7px;
  }


  .about-arrow {

    width: 35px;
    height: 35px;

    font-size: 13px;
  }


  .about-counter {
    display: none;
  }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 390px) {

  .section.about .section-layout {

    gap: 32px;
  }


  .section.about .kicker {

    font-size: 7px;

    letter-spacing: 2.1px;
  }


  .section.about h2 {

    font-size: clamp(39px, 12vw, 53px);

    line-height: .92;
  }


  .about-para {

    margin-top: 20px;
  }


  .about-para p {

    font-size: 12px;

    line-height: 1.72;
  }


  .section.about .button {

    min-height: 48px;

    padding: 0 18px;

    font-size: 8px;

    letter-spacing: 1.3px;
  }


  .large-photo {

    aspect-ratio: 1 / 1.08;
  }


  .about-caption {

    max-width: 145px;

    overflow: hidden;

    text-overflow: ellipsis;

    font-size: 6.5px;
  }


  .about-arrow {

    width: 33px;
    height: 33px;
  }
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 350px) {

  .section.about .section-layout {

    gap: 28px;
  }


  .section.about h2 {

    font-size: 38px;
  }


  .about-para p {

    font-size: 11.5px;

    line-height: 1.68;
  }


  .large-photo {

    aspect-ratio: 1 / 1.12;
  }


  .about-carousel-controls {

    right: 10px;
    bottom: 10px;
  }


  .large-photo figcaption {

    left: 10px;
    bottom: 10px;
  }


  .about-arrow {

    width: 31px;
    height: 31px;

    font-size: 12px;
  }
}


/* =========================================================
   TOUCH DEVICES
   ========================================================= */

@media (hover: none) {

  .about-arrow:hover {

    background: rgba(5, 8, 10, .58);

    border-color: rgba(228, 207, 159, .35);

    color: var(--gold-light);

    transform: none;
  }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .about-slide {

    transition: opacity .2s ease;
  }

}
/* =========================================================
   PROJECT HIGHLIGHTS
   FULLY RESPONSIVE
   Mobile • Tablet • Laptop • Desktop • Large Desktop
========================================================= */

.highlights {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: clamp(70px, 9vw, 150px) 0;
}


/* =========================================================
   SECTION HEADING
========================================================= */

.highlights-heading {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto clamp(55px, 8vw, 105px);
  text-align: center;
}

.highlights-heading .kicker {
  margin-bottom: 20px;
}

.highlights-heading h2 {
  margin: 0;

  font-family: var(--serif);
  font-size: clamp(40px, 5.5vw, 78px);
  font-weight: 400;
  line-height: .94;

  letter-spacing: -.045em;

  text-wrap: balance;
}

.highlights-heading h2 em {
  display: block;

  margin-top: 5px;

  color: var(--gold-light);

  font-style: italic;
}


/* =========================================================
   MAIN LIST
========================================================= */

.highlight-list {
  width: min(1200px, calc(100% - 80px));

  margin: 0 auto;

  display: flex;
  flex-direction: column;

  gap: clamp(80px, 10vw, 130px);
}


/* =========================================================
   CARD
========================================================= */

.highlight-card {
  position: relative;

  width: 100%;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr);

  align-items: stretch;

  min-width: 0;
}


/* =========================================================
   REVERSE CARD
========================================================= */

.highlight-card.highlight-reverse .highlight-image {
  order: 2;
}

.highlight-card.highlight-reverse .highlight-content {
  order: 1;
}


/* =========================================================
   IMAGE CONTAINER
========================================================= */

.highlight-image {
  position: relative;

  width: 100%;
  min-width: 0;

  aspect-ratio: 1 / 1;

  overflow: visible;

  background: #15191b;

  border: 1px solid rgba(228, 207, 159, .25);

  isolation: isolate;

  z-index: 2;
}


/* =========================================================
   IMAGE
========================================================= */

.highlight-image img {
  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center;

  transition:
    transform 1.2s var(--ease);
}


/* =========================================================
   IMAGE OVERLAY
========================================================= */

.highlight-image::before {
  content: "";

  position: absolute;

  inset: 0;

  z-index: 1;

  background:
    linear-gradient(
      180deg,
      rgba(5, 8, 10, .02) 0%,
      rgba(5, 8, 10, .08) 50%,
      rgba(5, 8, 10, .48) 100%
    );

  pointer-events: none;
}


/* =========================================================
   DESKTOP IMAGE HOVER
========================================================= */

@media (hover: hover) and (pointer: fine) {

  .highlight-card:hover .highlight-image img {
    transform: scale(1.045);
  }

}


/* =========================================================
   DESKTOP CIRCULAR CUTOUT
========================================================= */

.highlight-image::after {
  content: "";

  position: absolute;

  width: 190px;
  height: 190px;

  right: -95px;
  top: 50%;

  transform: translateY(-50%);

  background: var(--ink-2);

  border-radius: 50%;

  z-index: 3;

  pointer-events: none;
}


/* Reverse circle */

.highlight-card.highlight-reverse .highlight-image::after {
  right: auto;
  /* left: -95px; */
  left: -65px;
}


/* =========================================================
   ROUND BUTTON
========================================================= */

.highlight-button {
  position: absolute;

  width: 76px;
  height: 76px;

  right: -38px;
  top: 50%;

  transform: translateY(-50%);

  z-index: 10;

  display: flex;

  align-items: center;
  justify-content: center;

  padding: 0;

  border-radius: 50%;

  border: 1px solid rgba(228, 207, 159, .45);

  background: rgba(11, 14, 16, .76);

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  color: var(--gold-light);

  font-family: inherit;

  font-size: 9px;
  font-weight: 500;

  line-height: 1.2;

  letter-spacing: 1px;

  text-transform: uppercase;

  text-align: center;

  cursor: pointer;

  box-shadow:
    inset 0 0 10px rgba(228, 207, 159, .15),
    0 5px 25px rgba(0, 0, 0, .45);

  transition:
    transform .4s ease,
    background .4s ease,
    border-color .4s ease,
    color .4s ease,
    box-shadow .4s ease;
}


/* Reverse button */

.highlight-card.highlight-reverse .highlight-button {
  right: auto;
  left: -38px;
}


/* =========================================================
   BUTTON HOVER
========================================================= */

@media (hover: hover) and (pointer: fine) {

  .highlight-button:hover {
    transform:
      translateY(-50%)
      scale(1.08);

    background: rgba(228, 207, 159, .10);

    border-color:
      rgba(228, 207, 159, .8);

    color: #fff;

    box-shadow:
      0 0 15px rgba(228, 207, 159, .45),
      0 0 35px rgba(228, 207, 159, .2),
      inset 0 0 10px rgba(228, 207, 159, .35);
  }

}


/* =========================================================
   BUTTON RING
========================================================= */

.highlight-button::before {
  content: "";

  position: absolute;

  inset: -2px;

  border-radius: 50%;

  background:
    linear-gradient(
      120deg,
      transparent,
      rgba(228, 207, 159, .65),
      transparent
    );

  opacity: 0;

  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {

  .highlight-button:hover::before {
    opacity: 1;

    animation:
      highlightRing 2.5s linear infinite;
  }

}

@keyframes highlightRing {

  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }

}


/* =========================================================
   CONTENT
========================================================= */

.highlight-content {
  position: relative;

  min-width: 0;

  display: flex;

  flex-direction: column;

  justify-content: center;

  padding:
    clamp(40px, 5vw, 85px)
    clamp(35px, 6vw, 90px);

  z-index: 1;
}


/* =========================================================
   CONTENT DECORATIVE LINE
========================================================= */

.highlight-content::before {
  content: "";

  position: absolute;

  top: 50%;

  width: 55px;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      var(--gold),
      transparent
    );

  opacity: .7;
}


/* Normal */

.highlight-card:not(.highlight-reverse)
  .highlight-content::before {
  left: -27px;
}


/* Reverse */

.highlight-card.highlight-reverse
  .highlight-content::before {
  right: -27px;

  transform: rotate(180deg);
}


/* =========================================================
   LABEL
========================================================= */

.highlight-label {
  display: flex;

  align-items: center;

  width: fit-content;

  margin-bottom: 20px;

  color: var(--gold-light);

  font-size: 9px;

  font-weight: 500;

  letter-spacing: 2.2px;

  line-height: 1.4;

  text-transform: uppercase;
}

.highlight-label::before {
  content: "";

  width: 28px;
  height: 1px;

  flex-shrink: 0;

  margin-right: 12px;

  background: var(--gold);
}


/* =========================================================
   TITLE
========================================================= */

.highlight-content h3 {
  max-width: 540px;

  margin: 0;

  color: #f3f2ed;

  font-family: var(--serif);

  font-size: clamp(38px, 4.2vw, 62px);

  font-weight: 400;

  line-height: .95;

  letter-spacing: -.04em;

  text-wrap: balance;
}

.highlight-content h3 em {
  display: block;

  color: var(--gold-light);

  font-style: italic;

  margin-top: 4px;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.highlight-content p {
  max-width: 520px;

  margin: 28px 0 0;

  color: #aeb0ad;

  font-size: clamp(12px, 1vw, 14px);

  line-height: 1.85;

  letter-spacing: .01em;
}


/* =========================================================
   NUMBER
========================================================= */

.highlight-number {
  position: absolute;

  top: 20px;
  right: 20px;

  z-index: 7;

  color: rgba(255, 255, 255, .8);

  font-family: var(--serif);

  font-size: 13px;

  letter-spacing: 2px;

  text-shadow:
    0 2px 15px rgba(0, 0, 0, .5);
}


/* =========================================================
   LARGE DESKTOP
   1600px+
========================================================= */

@media (min-width: 1600px) {

  .highlight-list {
    width: min(1350px, 88%);
  }

  .highlight-image {
    aspect-ratio: 1.08 / 1;
  }

  .highlight-content {
    padding-left: 100px;
    padding-right: 100px;
  }

  .highlight-content h3 {
    font-size: 66px;
  }

  .highlight-content p {
    font-size: 14px;
    max-width: 550px;
  }

  .highlight-image::after {
    width: 210px;
    height: 210px;

    right: -105px;
  }

  .highlight-card.highlight-reverse
    .highlight-image::after {
    left: -105px;
  }

  .highlight-button {
    width: 82px;
    height: 82px;

    right: -41px;
  }

  .highlight-card.highlight-reverse
    .highlight-button {
    left: -41px;
  }
}


/* =========================================================
   DESKTOP
   1280px – 1599px
========================================================= */

@media (min-width: 1280px) and (max-width: 1599px) {

  .highlight-list {
    width: min(1200px, 90%);
  }

  .highlight-image {
    aspect-ratio: 1 / 1;
  }

  .highlight-content {
    padding-left: 75px;
    padding-right: 75px;
  }

  .highlight-content h3 {
    font-size: clamp(48px, 4vw, 60px);
  }

  .highlight-image::after {
    width: 120px;
    height: 120px;
    /* width: 190px;
    height: 190px; */

    /* right: -95px; */
    right: -60px;
  }

  .highlight-card.highlight-reverse
    .highlight-image::after {
    /* left: -95px; */
    left: -60px;
  }
}


/* =========================================================
   LAPTOP
   1024px – 1279px
========================================================= */

@media (min-width: 1024px) and (max-width: 1279px) {

  .highlights {
    padding: 110px 0;
  }

  .highlight-list {
    width: calc(100% - 70px);

    gap: 90px;
  }

  .highlight-image {
    aspect-ratio: .95 / 1;
  }

  .highlight-content {
    padding:
      45px
      55px;
  }

  .highlight-label {
    font-size: 8px;
    letter-spacing: 1.8px;
  }

  .highlight-content h3 {
    font-size: clamp(40px, 4.5vw, 52px);
  }

  .highlight-content p {
    margin-top: 22px;

    font-size: 12px;

    line-height: 1.75;
  }

  .highlight-image::after {
    width: 160px;
    height: 160px;

    right: -80px;
  }

  .highlight-card.highlight-reverse
    .highlight-image::after {
    left: -80px;
  }

  .highlight-button {
    width: 68px;
    height: 68px;

    right: -34px;

    font-size: 8px;
  }

  .highlight-card.highlight-reverse
    .highlight-button {
    left: -34px;
  }
}


/* =========================================================
   TABLET
   768px – 1023px
========================================================= */

@media (min-width: 768px) and (max-width: 1023px) {

  .highlights {
    padding: 90px 0;
  }


  .highlights-heading {
    width: calc(100% - 70px);

    margin-bottom: 70px;
  }


  .highlights-heading h2 {
    font-size: clamp(44px, 6.5vw, 62px);
  }


  .highlight-list {
    width: calc(100% - 60px);

    gap: 75px;
  }


  .highlight-card {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);
  }


  .highlight-image {
    aspect-ratio: .9 / 1;
  }


  .highlight-content {
    padding:
      35px
      38px;
  }


  .highlight-label {
    margin-bottom: 16px;

    font-size: 7.5px;

    letter-spacing: 1.7px;
  }


  .highlight-label::before {
    width: 22px;
    margin-right: 9px;
  }


  .highlight-content h3 {
    font-size: clamp(34px, 5vw, 46px);
  }


  .highlight-content p {
    margin-top: 20px;

    font-size: 11.5px;

    line-height: 1.72;
  }


  .highlight-image::after {
    width: 125px;
    height: 125px;

    right: -62.5px;
  }


  .highlight-card.highlight-reverse
    .highlight-image::after {
    left: -62.5px;
  }


  .highlight-button {
    width: 58px;
    height: 58px;

    right: -29px;

    font-size: 7px;
  }


  .highlight-card.highlight-reverse
    .highlight-button {
    left: -29px;
  }


  .highlight-number {
    top: 14px;
    right: 14px;

    font-size: 10px;
  }
}


/* =========================================================
   LARGE MOBILE
   481px – 767px
========================================================= */

@media (min-width: 481px) and (max-width: 767px) {

  .highlights {
    padding: 75px 0;
  }


  .highlights-heading {
    width: calc(100% - 40px);

    margin-bottom: 55px;

    text-align: left;
  }


  .highlights-heading h2 {
    font-size: clamp(42px, 10vw, 58px);
  }


  .highlight-list {
    width: calc(100% - 36px);

    gap: 65px;
  }


  /*
     One column
  */

  .highlight-card,
  .highlight-card.highlight-reverse {
    display: flex;

    flex-direction: column;
  }


  /*
     Image always first
  */

  .highlight-card .highlight-image,
  .highlight-card.highlight-reverse .highlight-image {
    order: 1;

    width: 100%;

    aspect-ratio: 1 / .78;

    min-height: 0;
  }


  /*
     Content always second
  */

  .highlight-card .highlight-content,
  .highlight-card.highlight-reverse .highlight-content {
    order: 2;

    width: 100%;

    padding:
      30px
      5px
      0;
  }


  /*
     Remove desktop circle
  */

  .highlight-image::after,
  .highlight-card.highlight-reverse
    .highlight-image::after {
    display: none;
  }


  /*
     Button inside image
  */

  .highlight-button,
  .highlight-card.highlight-reverse
    .highlight-button {

    right: 16px;
    left: auto;

    top: auto;
    bottom: 16px;

    width: 64px;
    height: 64px;

    transform: none;

    font-size: 8px;
  }


  .highlight-content::before,
  .highlight-card.highlight-reverse
    .highlight-content::before {
    display: none;
  }


  .highlight-label {
    margin-bottom: 17px;

    font-size: 7.5px;
  }


  .highlight-content h3 {
    max-width: 100%;

    font-size: clamp(38px, 9vw, 52px);
  }


  .highlight-content p {
    max-width: 100%;

    margin-top: 18px;

    font-size: 12px;

    line-height: 1.78;
  }
}


/* =========================================================
   MOBILE
   320px – 480px
========================================================= */

@media (max-width: 480px) {

  .highlights {
    padding: 65px 0;
  }


  /* ================= HEADING ================= */

  .highlights-heading {
    width: calc(100% - 32px);

    margin-bottom: 45px;

    text-align: left;
  }


  .highlights-heading .kicker {
    margin-bottom: 16px;
  }


  .highlights-heading h2 {
    font-size: clamp(36px, 11vw, 50px);

    line-height: .94;
  }


  /* ================= LIST ================= */

  .highlight-list {
    width: calc(100% - 24px);

    gap: 52px;
  }


  /* ================= CARD ================= */

  .highlight-card,
  .highlight-card.highlight-reverse {

    display: flex;

    flex-direction: column;

    width: 100%;
  }


  /* ================= IMAGE ================= */

  .highlight-card .highlight-image,
  .highlight-card.highlight-reverse .highlight-image {

    order: 1;

    width: 100%;

    height: auto;

    min-height: 0;

    aspect-ratio: 1 / .78;

    overflow: hidden;
  }


  /*
     No circle on mobile
  */

  .highlight-image::after,
  .highlight-card.highlight-reverse
    .highlight-image::after {

    display: none;
  }


  /* ================= IMAGE BUTTON ================= */

  .highlight-button,
  .highlight-card.highlight-reverse
    .highlight-button {

    /* right: 12px;
    left: auto;

    top: auto;
    bottom: 12px;

    width: 58px;
    height: 58px;

    transform: none;

    font-size: 7px;

    letter-spacing: .8px;

    background:
      rgba(5, 8, 10, .78); */

      display: none;
  }


  /* ================= NUMBER ================= */

  .highlight-number,
  .highlight-card.highlight-reverse
    .highlight-number {

    top: 12px;
    right: 12px;

    font-size: 9px;
  }


  /* ================= CONTENT ================= */

  .highlight-card .highlight-content,
  .highlight-card.highlight-reverse .highlight-content {

    order: 2;

    width: 100%;

    padding:
      26px
      4px
      0;
  }


  .highlight-content::before,
  .highlight-card.highlight-reverse
    .highlight-content::before {

    display: none;
  }


  /* ================= LABEL ================= */

  .highlight-label {

    margin-bottom: 15px;

    font-size: 7px;

    letter-spacing: 1.7px;

    line-height: 1.5;
  }


  .highlight-label::before {

    width: 20px;

    margin-right: 8px;
  }


  /* ================= TITLE ================= */

  .highlight-content h3 {

    max-width: 100%;

    font-size: clamp(34px, 10.5vw, 46px);

    line-height: .94;

    letter-spacing: -.04em;
  }


  .highlight-content h3 em {
    margin-top: 3px;
  }


  /* ================= PARAGRAPH ================= */

  .highlight-content p {

    width: 100%;

    max-width: 100%;

    margin-top: 18px;

    color: #b4b6b2;

    font-size: 12px;

    line-height: 1.78;
  }
}


/* =========================================================
   VERY SMALL MOBILE
   320px – 360px
========================================================= */

@media (max-width: 360px) {

  .highlights {
    padding: 55px 0;
  }


  .highlights-heading {
    width: calc(100% - 28px);

    margin-bottom: 38px;
  }


  .highlights-heading h2 {
    font-size: 35px;
  }


  .highlight-list {
    width: calc(100% - 20px);

    gap: 45px;
  }


  .highlight-card .highlight-image,
  .highlight-card.highlight-reverse .highlight-image {

    aspect-ratio: 1 / .76;
  }


  .highlight-card .highlight-content,
  .highlight-card.highlight-reverse .highlight-content {

    padding-top: 23px;
  }


  .highlight-label {
    font-size: 6.5px;

    letter-spacing: 1.5px;
  }


  .highlight-content h3 {
    font-size: 32px;
  }


  .highlight-content p {
    font-size: 11.5px;

    line-height: 1.72;
  }


  .highlight-button,
  .highlight-card.highlight-reverse
    .highlight-button {

    width: 53px;
    height: 53px;

    right: 9px;
    bottom: 9px;

    font-size: 6.5px;
  }


  .highlight-number {
    top: 9px;
    right: 9px;

    font-size: 8px;
  }
}


/* =========================================================
   TOUCH DEVICES
========================================================= */

@media (hover: none) {

  .highlight-button:hover {
    transform: none;

    background:
      rgba(5, 8, 10, .78);

    border-color:
      rgba(228, 207, 159, .45);

    color: var(--gold-light);

    box-shadow:
      inset 0 0 10px rgba(228, 207, 159, .15),
      0 5px 25px rgba(0, 0, 0, .45);
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .highlight-image img {
    transition: none;
  }

  .highlight-button::before {
    animation: none !important;
  }

}




/* ==========================================
   MOBILE NAV - PREMIUM ACTIVE STATE
   ========================================== */

.mobile-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #858a87;
    text-decoration: none;

    padding: 10px 16px;
    border-radius: 10px;

    transition:
        color 0.35s ease,
        background 0.35s ease,
        transform 0.35s cubic-bezier(.22, 1, .36, 1),
        box-shadow 0.35s ease;
}


/* ------------------------------------------
   HOVER
   ------------------------------------------ */

.mobile-nav a:hover {
    color: #ddc184;

    background: rgba(199, 165, 104, 0.06);

    transform: translateY(-2px);
}


/* ------------------------------------------
   ACTIVE ITEM
   ------------------------------------------ */

.mobile-nav a.active {
    color: #c7a568 !important;

    background:
        linear-gradient(
            135deg,
            rgba(199, 165, 104, 0.14),
            rgba(199, 165, 104, 0.04)
        );

    box-shadow:
        inset 0 0 0 1px rgba(199, 165, 104, 0.16),
        0 8px 25px rgba(199, 165, 104, 0.08);

    transform: translateY(-2px);
}


/* ------------------------------------------
   GOLD UNDERLINE
   ------------------------------------------ */

.mobile-nav a::after {
    content: "";

    position: absolute;

    left: 50%;
    bottom: 4px;

    width: 0;
    height: 2px;

    border-radius: 999px;

    background: linear-gradient(
        90deg,
        transparent,
        #c7a568,
        #ddc184,
        #c7a568,
        transparent
    );

    transform: translateX(-50%);

    opacity: 0;

    transition:
        width 0.4s cubic-bezier(.22, 1, .36, 1),
        opacity 0.3s ease;
}


/* Active underline */

.mobile-nav a.active::after {
    width: 55%;
    opacity: 1;
}


/* ------------------------------------------
   ACTIVE GLOW
   ------------------------------------------ */

.mobile-nav a.active::before {
    content: "";

    position: absolute;

    inset: 0;

    border-radius: inherit;

    background: radial-gradient(
        circle at center,
        rgba(221, 193, 132, 0.10),
        transparent 70%
    );

    opacity: 0;

    animation: mobileNavGlow 2.8s ease-in-out infinite;

    pointer-events: none;
}


@keyframes mobileNavGlow {

    0%,
    100% {
        opacity: 0;
    }

    50% {
        opacity: 1;
    }
}


/* ------------------------------------------
   ACTIVE TEXT SLIGHT SHINE
   ------------------------------------------ */

.mobile-nav a.active {
    text-shadow:
        0 0 12px rgba(199, 165, 104, 0.18);
}


/* ------------------------------------------
   TAP / CLICK EFFECT
   ------------------------------------------ */

.mobile-nav a:active {
    transform: scale(0.94);
    transition: transform 0.12s ease;
}


/* ------------------------------------------
   MOBILE TOUCH DEVICES
   ------------------------------------------ */

@media (hover: none) {

    .mobile-nav a:hover {
        transform: none;
        background: transparent;
    }

    .mobile-nav a.active {
        transform: none;
    }

}



.news-section{
  display:block !important;
}
.news-section > div{
  max-width: max-content !important;
}

.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 46px;
  height: 46px;
  border: none;
  border-radius: 50%;
  background: #111827;
  color: #ffffff;
  font-size: 22px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease,
    transform 0.3s ease,
    background-color 0.2s ease;
  z-index: 9999;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover {
  background: #000000;
}

.back-to-top:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

@media (max-width: 768px) {
  .back-to-top {
    right: 16px;
    bottom: 16px;
    width: 42px;
    height: 42px;
    font-size: 20px;
  }
}

/* =========================================
   PRATH ESTATE - FLOATING SOCIAL MEDIA
   Matches Footer Social Icons
   ========================================= */

.floating-social {
  position: fixed;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);

  display: flex;
  flex-direction: column;
  gap: 12px;

  z-index: 9998;
}

/* Individual circular icons */
.floating-social__link {
  width: 44px;
  height: 44px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(190, 151, 67, 0.85);
  border-radius: 50%;

  background: rgba(31, 31, 31, 0.88);

  color: #c09a4a;

  text-decoration: none;

  font-size: 16px;

  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;

  box-shadow:
    0 3px 12px rgba(0, 0, 0, 0.18);
}

/* Hover */
.floating-social__link:hover {
  background: #c09a4a;
  border-color: #c09a4a;

  color: #222222;

  transform: translateX(4px);

  box-shadow:
    0 5px 18px rgba(192, 154, 74, 0.25);
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 768px) {

  .floating-social {
    left: 50%;
    bottom: 18px;
    top: auto;

    transform: translateX(-50%);

    flex-direction: row;
    gap: 8px;

    padding: 5px;

    border-radius: 30px;

    background: rgba(31, 31, 31, 0.90);

    border: 1px solid rgba(190, 151, 67, 0.35);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .floating-social__link {
    width: 38px;
    height: 38px;

    font-size: 14px;

    box-shadow: none;
  }

  .floating-social__link:hover {
    transform: translateY(-2px);
  }
}

/* =========================================================
   ADVERTISEMENT MARQUEE
========================================================= */

/* =========================================================
   PRODUCT / APP LOGO MARQUEE
========================================================= */

.product-marquee {
  position: relative;
  width: 100%;
  margin-top: 45px;
  padding: 22px 0;

  overflow: hidden;

  border-top: 1px solid rgba(192, 154, 74, 0.25);
  border-bottom: 1px solid rgba(192, 154, 74, 0.25);

  background: rgba(255, 255, 255, 0.02);
}

.product-marquee__label {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;

  z-index: 5;

  width: 145px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #1f1f1f;

  border-right: 1px solid rgba(192, 154, 74, 0.35);

  pointer-events: none;
}

.product-marquee__label span {
  font-family: "DM Sans", sans-serif;

  font-size: 10px;
  font-weight: 600;

  letter-spacing: 2px;

  color: #c09a4a;

  white-space: nowrap;
}


/* VIEWPORT */

.product-marquee__viewport {
  width: 100%;
  overflow: hidden;
}


/* MOVING TRACK */

.product-marquee__track {
  display: flex;
  align-items: center;

  width: max-content;

  padding-left: 145px;

  animation: productMarqueeScroll 30s linear infinite;
}


/* INDIVIDUAL PRODUCT */

.product-marquee__item {
  width: 190px;
  height: 70px;

  margin: 0 25px;

  display: flex;
  align-items: center;
  justify-content: center;

  flex-shrink: 0;

  text-decoration: none;

  opacity: 0.72;

  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.product-marquee__item:hover {
  opacity: 1;
  transform: translateY(-2px);
}


/* LOGO */

.product-marquee__item img {
  display: block;

  max-width: 160px;
  max-height: 58px;

  width: auto;
  height: auto;

  object-fit: contain;
}


/* SEAMLESS ANIMATION */

@keyframes productMarqueeScroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}


/* PAUSE WHEN HOVERED */

.product-marquee:hover .product-marquee__track {
  animation-play-state: paused;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

  .product-marquee {
    margin-top: 30px;
    padding: 18px 0;
  }

  .product-marquee__label {
    width: 105px;
  }

  .product-marquee__label span {
    font-size: 8px;
    letter-spacing: 1.5px;
  }

  .product-marquee__track {
    padding-left: 105px;

    animation-duration: 24s;
  }

  .product-marquee__item {
    width: 145px;
    height: 58px;

    margin: 0 18px;
  }

  .product-marquee__item img {
    max-width: 120px;
    max-height: 42px;
  }
}