* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: #f6f3ec;
  color: #253a30;
  font-family: "DM Sans", sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  display: block;
  width: 100%;
  object-fit: cover;
}
button {
  font: inherit;
}
.site-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: 95px;
  padding: 0 5%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: white;
  border-bottom: 1px solid #ffffff50;
}
.brand {
  font-family: "Manrope", sans-serif;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1;
  display: inline-flex;
  flex-direction: column;
  gap: 7px;
}
.brand span {
  font:
    9px "DM Sans",
    sans-serif;
  letter-spacing: 0.31em;
}
.nav {
  display: flex;
  align-items: center;
  gap: 38px;
  font-size: 12px;
}
.nav a:not(.nav-cta) {
  transition: opacity 0.2s;
}
.nav a:hover {
  opacity: 0.65;
}
.nav-cta {
  border: 1px solid #ffffffa0;
  padding: 14px 20px;
}
.nav-cta span {
  margin-left: 22px;
}
.menu-toggle {
  display: none;
}
.hero {
  height: min(850px, 100svh);
  min-height: 610px;
  position: relative;
  color: white;
  display: flex;
  align-items: center;
}
.hero-image,
.hero-shade {
  position: absolute;
  inset: 0;
}
.hero-image {
  background: url("../assets/images/IMG_6213.jpg")
    center/cover;
}
.hero-shade {
  background:
    linear-gradient(90deg, #071b13ad 0%, #071b1345 70%),
    linear-gradient(0deg, #071b1388, transparent 25%);
}
.hero-content {
  position: relative;
  z-index: 1;
  padding: 90px 9% 20px;
  max-width: 950px;
}
.eyebrow {
  font-size: 10px;
  letter-spacing: 0.24em;
  font-weight: 700;
  color: #617a67;
}
.eyebrow.light {
  color: #e3e4d7;
}
.hero h1,
h2,
h3 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
}
.hero h1 {
  font-size: clamp(65px, 8.8vw, 132px);
  letter-spacing: -0.045em;
  line-height: 1.02;
  margin: 26px 0;
}
.hero h1 em,
h2 em {
  font-weight: 400;
}
.hero-content p {
  font-size: 15px;
  line-height: 1.9;
  max-width: 430px;
  color: #f1f1e8;
}
.round-link {
  display: inline-flex;
  align-items: center;
  gap: 45px;
  margin-top: 30px;
  border-bottom: 1px solid #ffffffab;
  padding-bottom: 13px;
  font-size: 11px;
  letter-spacing: 0.12em;
}
.round-link span {
  font-size: 20px;
}
.hero-bottom {
  position: absolute;
  bottom: 30px;
  left: 5%;
  right: 5%;
  display: flex;
  justify-content: space-between;
  z-index: 1;
  font-size: 10px;
  letter-spacing: 0.18em;
}
.section {
  padding: 125px 9%;
}
.intro {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10%;
}
.intro-side p {
  font-size: 11px;
  letter-spacing: 0.15em;
  line-height: 1.9;
  margin-top: 35px;
}
.intro h2,
.section-heading h2 {
  font-size: clamp(44px, 5.6vw, 83px);
  line-height: 1.16;
  letter-spacing: -0.035em;
  margin: 0;
}
.intro-main > p {
  font-size: 16px;
  line-height: 2;
  color: #647568;
  max-width: 550px;
  margin: 36px 0;
}
.text-link {
  font-size: 11px;
  letter-spacing: 0.13em;
  font-weight: 700;
  display: inline-flex;
  gap: 40px;
  border-bottom: 1px solid #193a2c;
  padding-bottom: 12px;
}
.image-feature {
  height: 650px;
  position: relative;
}
.image-feature img {
  height: 100%;
}
.image-feature-label {
  position: absolute;
  bottom: 45px;
  left: 9%;
  color: white;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-shadow: 0 2px 15px #0008;
}
.image-feature-label span {
  font-size: 10px;
  letter-spacing: 0.2em;
}
.image-feature-label strong {
  font:
    38px "Playfair Display",
    serif;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  margin-bottom: 65px;
}
.section-heading .eyebrow {
  display: block;
  margin-bottom: 25px;
}
.section-heading p {
  max-width: 290px;
  font-size: 14px;
  line-height: 1.9;
  color: #718072;
}
.space-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5%;
}
.space-card.offset {
  margin-top: 105px;
}
.photo-wrap {
  overflow: hidden;
}
.photo-wrap img {
  height: 520px;
  transition: transform 0.8s ease;
}
.photo-wrap:hover img {
  transform: scale(1.05);
}
.space-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
}
.space-meta h3 {
  font-size: 28px;
  margin: 0;
}
.space-meta span {
  font-size: 19px;
}
.space-card > p {
  font-size: 13px;
  color: #7b867a;
}
.statement {
  background: #193a2c;
  color: white;
  text-align: center;
  padding: 115px 9%;
}
.statement h2 {
  font-size: clamp(55px, 7vw, 100px);
  line-height: 1.12;
  letter-spacing: -0.035em;
  margin: 30px 0;
}
.statement > p {
  font-size: 14px;
  line-height: 2;
  color: #c3d0c4;
  max-width: 490px;
  margin: 0 auto 75px;
}
.amenities {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid #ffffff4d;
  text-align: left;
}
.amenities > div {
  padding: 28px 18px;
  border-right: 1px solid #ffffff4d;
  display: flex;
  flex-direction: column;
  gap: 27px;
}
.amenities > div:first-child {
  padding-left: 0;
}
.amenities > div:last-child {
  border-right: 0;
}
.amenities span {
  font-size: 11px;
  color: #9caf9b;
}
.amenities strong {
  font:
    22px "Playfair Display",
    serif;
  font-weight: 400;
}
.gallery-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 15px;
}
.gallery-grid img {
  height: 420px;
}
.contact {
  background: #e5e9dc;
  text-align: center;
  padding: 120px 20px;
}
.contact h2 {
  font-size: clamp(54px, 8vw, 110px);
  letter-spacing: -0.04em;
  margin: 22px 0;
}
.contact p {
  font-size: 15px;
  line-height: 1.8;
  max-width: 440px;
  margin: 0 auto 30px;
}
.contact .eyebrow {
  color: #5a765f;
}
.contact-btn {
  display: inline-flex;
  gap: 50px;
  align-items: center;
  background: #193a2c;
  color: white;
  padding: 20px 25px;
  font-size: 11px;
  letter-spacing: 0.12em;
}
.contact small {
  display: block;
  color: #78877a;
  margin-top: 15px;
  font-size: 10px;
}
footer {
  background: #112a20;
  color: #f5f4ec;
  padding: 75px 9% 25px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}
footer p {
  max-width: 230px;
  font-size: 13px;
  line-height: 1.8;
  color: #aebfb0;
}
.footer-links {
  display: flex;
  justify-content: flex-end;
  gap: 30px;
  font-size: 12px;
}
.footer-bottom {
  grid-column: 1/-1;
  border-top: 1px solid #ffffff33;
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: #b3c1b5;
}
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 800px) {
  .site-header {
    height: 75px;
  }
  .menu-toggle {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: none;
    border: 0;
    padding: 12px;
    cursor: pointer;
  }
  .menu-toggle span {
    height: 2px;
    width: 25px;
    background: white;
  }
  .nav {
    display: none;
    position: absolute;
    top: 75px;
    left: 0;
    right: 0;
    background: #193a2c;
    padding: 35px 6%;
    flex-direction: column;
    align-items: stretch;
    gap: 25px;
  }
  .nav.open {
    display: flex;
  }
  .hero {
    min-height: 650px;
    height: 90svh;
  }
  .hero-content {
    padding: 80px 7% 20px;
  }
  .hero h1 {
    font-size: clamp(58px, 11vw, 88px);
  }
  .section {
    padding: 75px 7%;
  }
  .intro {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .intro-side p {
    display: none;
  }
  .image-feature {
    height: 450px;
  }
  .section-heading {
    align-items: start;
    flex-direction: column;
    gap: 12px;
  }
  .space-grid {
    gap: 20px;
  }
  .photo-wrap img {
    height: 350px;
  }
  .space-card.offset {
    margin-top: 65px;
  }
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-grid img:first-child {
    grid-column: 1/-1;
  }
  .gallery-grid img {
    height: 300px;
  }
  .amenities {
    grid-template-columns: 1fr 1fr;
  }
  .amenities > div:nth-child(2) {
    border-right: 0;
  }
  .footer-links {
    flex-wrap: wrap;
  }
}
@media (max-width: 520px) {
  .hero-bottom {
    font-size: 8px;
  }
  .hero-content p {
    font-size: 13px;
  }
  .space-grid {
    grid-template-columns: 1fr;
  }
  .space-card.offset {
    margin-top: 20px;
  }
  .photo-wrap img {
    height: 420px;
  }
  .section-heading h2,
  .intro h2 {
    font-size: 46px;
  }
  .statement {
    padding: 80px 7%;
  }
  .statement h2 {
    font-size: 53px;
  }
  .amenities strong {
    font-size: 18px;
  }
  .gallery-grid img {
    height: 220px;
  }
  .contact {
    padding: 85px 7%;
  }
  footer {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .footer-links {
    justify-content: start;
  }
  .footer-bottom {
    gap: 20px;
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .photo-wrap img {
    transition: none;
  }
}
/* Curved botanical design language */
:root {
  --leaf: #244d35;
  --pine: #102f21;
  --moss: #62846a;
  --mist: #e8efe5;
  --ivory: #f5f7ef;
}
body {
  background: var(--ivory);
  color: var(--pine);
}
.hero {
  overflow: hidden;
  border-radius: 0 0 48% 48% / 0 0 7% 7%;
  background: var(--pine);
}
.hero-shade {
  background:
    linear-gradient(90deg, rgba(9, 40, 24, 0.85), rgba(14, 58, 34, 0.22)),
    linear-gradient(0deg, rgba(5, 29, 16, 0.7), transparent 30%);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 18px solid rgba(234, 246, 225, 0.09);
  border-radius: 0 0 48% 48% / 0 0 7% 7%;
  z-index: 1;
}
.site-header {
  border-color: rgba(223, 241, 219, 0.28);
}
.nav-cta,
.contact-btn {
  border-radius: 100px;
  background: #c8d8b7;
  color: #173b28;
  border: 1px solid #c8d8b7;
  transition:
    transform 0.25s,
    background 0.25s;
}
.nav-cta:hover,
.contact-btn:hover {
  background: #e2edd6;
  transform: translateY(-3px);
  opacity: 1 !important;
}
.round-link {
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 100px;
  padding: 16px 21px;
  margin-top: 24px;
  transition: background 0.2s;
}
.round-link:hover {
  background: rgba(255, 255, 255, 0.16);
}
.eyebrow {
  color: #587b5e;
}
.intro {
  position: relative;
}
.intro::before {
  content: "";
  position: absolute;
  width: 130px;
  height: 130px;
  right: 4%;
  top: 10%;
  border: 1px solid #9cb9a0;
  border-radius: 50%;
  opacity: 0.45;
  pointer-events: none;
}
.image-feature {
  margin: 0 5%;
  height: 620px;
  overflow: hidden;
  border-radius: 48% 48% 26px 26px / 24% 24% 26px 26px;
  box-shadow: 0 24px 60px rgba(18, 55, 31, 0.13);
}
.image-feature::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10, 42, 24, 0.55), transparent 45%);
  pointer-events: none;
}
.image-feature-label {
  z-index: 1;
}
.photo-wrap {
  border-radius: 46% 46% 22px 22px / 25% 25% 22px 22px;
  background: #dbe8d5;
}
.space-card.offset .photo-wrap {
  border-radius: 22px 22px 46% 46% / 22px 22px 25% 25%;
}
.space-meta h3 {
  color: #214c33;
}
.statement {
  background: radial-gradient(
    ellipse at 50% -20%,
    #386a49 0%,
    #1d4a32 45%,
    #102e20 100%
  );
  border-radius: 48% 48% 0 0 / 9% 9% 0 0;
  margin-top: 20px;
  padding-top: 145px;
}
.amenities > div {
  transition: background 0.2s;
  border-radius: 80px 80px 0 0;
}
.amenities > div:hover {
  background: rgba(219, 242, 209, 0.08);
}
.gallery-grid img {
  border-radius: 160px 160px 16px 16px / 95px 95px 16px 16px;
}
.gallery-grid img:nth-child(2) {
  border-radius: 16px 16px 150px 150px / 16px 16px 90px 90px;
}
.contact {
  background: linear-gradient(150deg, #e1ecdb, #f0f4e9);
  border-radius: 48% 48% 0 0 / 12% 12% 0 0;
  padding-top: 155px;
}
footer {
  background: #102f21;
}
@media (max-width: 800px) {
  .hero {
    border-radius: 0 0 48% 48% / 0 0 4% 4%;
  }
  .hero::after {
    border-width: 8px;
    border-radius: inherit;
  }
  .image-feature {
    height: 450px;
    margin: 0 4%;
    border-radius: 44% 44% 18px 18px / 18% 18% 18px 18px;
  }
  .statement {
    border-radius: 45% 45% 0 0 / 5% 5% 0 0;
    padding-top: 100px;
  }
  .contact {
    border-radius: 45% 45% 0 0 / 6% 6% 0 0;
    padding-top: 110px;
  }
}
@media (max-width: 520px) {
  .image-feature {
    height: 380px;
  }
  .gallery-grid img {
    border-radius: 90px 90px 12px 12px / 60px 60px 12px 12px;
  }
  .gallery-grid img:nth-child(2) {
    border-radius: 12px 12px 90px 90px / 12px 12px 60px 60px;
  }
  .hero::after {
    border-width: 5px;
  }
}
/* LOCATION SECTION */

.location-section {
  background: #f5f3ea;
  padding: 110px 7%;
  color: #193a2c;

  .location-heading {
    max-width: 750px;
    margin-bottom: 55px;

    .eyebrow {
      font-size: 12px;
      letter-spacing: 3px;
      color: #67836c;
    }

    h2 {
      font-family: "Playfair Display", serif;
      font-size: clamp(38px, 5vw, 65px);
      font-weight: 400;
      line-height: 1.2;
      margin: 20px 0;

      em {
        color: #62866a;
        font-weight: 400;
      }
    }

    p {
      font-size: 15px;
      line-height: 1.9;
      color: #6b756d;
      max-width: 550px;
    }
  }

  .location-container {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 55px;
    align-items: stretch;
  }

  /* GOOGLE MAP */

  .location-map {
    overflow: hidden;

    /* Curved shaped border */
    border-radius: 180px 180px 20px 20px;

    min-height: 450px;
    background: #dce6d8;

    iframe {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 450px;
      border: none;
    }
  }

   /* RIGHT SIDE DETAILS */

  .location-details {
    background: #e9eee5;
    border-radius: 20px 180px 20px 20px;
    padding: 65px 45px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    .location-label {
      font-size: 11px;
      letter-spacing: 2.5px;
      font-weight: 600;
      color: #6d8b72;
      margin-bottom: 20px;
    }

    h3 {
      font-family: "Playfair Display", serif;
      font-size: 38px;
      font-weight: 400;
      margin-bottom: 20px;
      color: #193a2c;
    }

    .location-address {
      font-size: 15px;
      line-height: 2;
      color: #596c5e;
    }

    .location-divider {
      width: 100%;
      height: 1px;
      background: #c7d3c5;
      margin: 35px 0;
    }

    .location-phone {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-bottom: 35px;

      a {
        text-decoration: none;
        color: #193a2c;
        font-size: 18px;
        transition: color 0.3s ease;

        &:hover {
          color: #7b9c7e;
        }
      }
    }

    .location-button {
      display: inline-flex;
      align-items: center;
      gap: 25px;

      padding: 16px 28px;
      background: #193a2c;
      color: #ffffff;
      border-radius: 50px;

      text-decoration: none;
      font-size: 12px;
      letter-spacing: 1.5px;

      transition: all 0.3s ease;

      &:hover {
        background: #3e684c;
        transform: translateY(-3px);
      }

      span {
        font-size: 18px;
      }
    }
  }
}

/* RESPONSIVE DESIGN */

@media (max-width: 900px) {
  .location-section {
    padding: 75px 5%;

    .location-container {
      grid-template-columns: 1fr;
      gap: 30px;
    }

    .location-map {
      border-radius: 100px 100px 18px 18px;
      min-height: 350px;

      iframe {
        min-height: 350px;
      }
    }

    .location-details {
      border-radius: 20px 100px 20px 20px;
      padding: 55px 30px;
    }
  }
}

@media (max-width: 480px) {
  .location-section {
    .location-map {
      border-radius: 70px 70px 15px 15px;
    }

    .location-details {
      border-radius: 15px 70px 15px 15px;
      padding: 45px 25px;

      h3 {
        font-size: 30px;
      }

      .location-phone a {
        font-size: 16px;
      }
    }
  }
}