@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Montserrat:wght@400;500;600&display=swap");

:root {
  --rime-midnight: #050936;
  --rime-ink: #101126;
  --rime-ivory: #f5f3ed;
  --rime-paper: #ece9e1;
  --rime-gold: #b69b69;
  --rime-gold-deep: #8c7243;
  --rime-white: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Cormorant Garamond", Georgia, serif;
  --font-ui: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --text-xs: 0.625rem;
  --text-lg: 1.375rem;
  --text-hero: clamp(3.5rem, 8vw, 8.5rem);
  --text-heading: clamp(3rem, 5vw, 5.8rem);
  --tracking-label: 0.19em;
  --tracking-meta: 0.13em;
  --page-gutter: clamp(1.5rem, 7vw, 7.5rem);
  --content-max: 92rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.25rem;
  --space-5: 3.5rem;
  --space-6: 5.5rem;
  --space-7: 8.5rem;
  --rule: rgba(16, 17, 38, 0.2);
  --rule-on-dark: rgba(255, 255, 255, 0.3);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  min-width: 320px;
  background: var(--rime-ivory);
  color: var(--rime-ink);
  font-family: var(--font-body);
}
a {
  color: inherit;
}
.rime-shell {
  width: min(100%, var(--content-max));
  margin: auto;
  padding-inline: var(--page-gutter);
}
.rime-section {
  padding-block: var(--space-7);
}
.rime-section--paper {
  background: var(--rime-paper);
}
.rime-section--dark {
  background: var(--rime-midnight);
  color: var(--rime-ivory);
}
.rime-eyebrow,
.rime-meta,
.rime-nav a,
.rime-button {
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.rime-eyebrow {
  color: var(--rime-gold-deep);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.rime-eyebrow::before {
  content: "";
  display: inline-block;
  width: 4rem;
  height: 1px;
  background: currentColor;
}
.rime-heading {
  max-width: 18ch;
  margin: var(--space-3) 0;
  font: 500 var(--text-heading)/0.88 var(--font-display);
  letter-spacing: -0.04em;
}
h1,
h2 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.04em;
}
/* Default page-title treatment. */
h1 {
  font-size: var(--text-hero);
  line-height: 0.88;
}

/* One canonical treatment for every page hero title. */
.hero-title {
  font-family: var(--font-display);
  font-size: var(--text-hero);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.04em;
}
h2 {
  font-size: var(--text-heading);
  line-height: 0.88;
}
.rime-lede {
  max-width: 43rem;
  margin: 0;
  font: 400 var(--text-lg)/1.45 var(--font-body);
}
.rime-copy {
  max-width: 39rem;
  font-size: 1.125rem;
  line-height: 1.45;
}
.rime-nav {
  display: flex;
    justify-content: flex-start;
  align-items: center;
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--rule);
}
.rime-wordmark {
  font: 600 1.45rem/1 var(--font-ui);
  letter-spacing: 0.24em;
  text-decoration: none;
}
.rime-nav__links {
  display: flex;
  gap: clamp(1rem, 3vw, 3rem);
  list-style: none;
    margin: 0 0 0 auto;
  padding: 0;
}
.rime-nav a {
  text-decoration: none;
}
.rime-nav a:hover {
  color: var(--rime-gold);
}

.language-switch {
    margin-left: clamp(1rem, 2vw, 2rem);
    padding: 0.35rem 0.55rem;
    border: 1px solid currentColor;
    font: 500 var(--text-xs)/1 var(--font-ui);
    letter-spacing: var(--tracking-label);
}

.language-switch--mobile {
    color: var(--rime-gold) !important;
}

.whatsapp-button {
    position: fixed;
    z-index: 40;
    right: 1.25rem;
    bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.1rem;
    height: 3.1rem;
    padding: 0;
    color: #fff;
    background: #25d366;
    border-radius: 999px;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
    text-decoration: none;
}

.whatsapp-button img {
    width: 1.7rem;
    height: 1.7rem;
    filter: brightness(0) invert(1);
}

.whatsapp-button:hover,
.whatsapp-button:focus-visible {
    color: #fff;
    background: #1faa58;
}
.rime-hero {
  min-height: min(48rem, 86vh);
  display: grid;
  align-items: end;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding-block: var(--space-6);
}
.rime-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-size: cover;
  background-position: center;
}
.rime-hero__title {
  max-width: 11ch;
  margin: var(--space-3) 0 var(--space-2);
}
.rime-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0 1.4rem;
  border: 1px solid currentColor;
  text-decoration: none;
  transition:
    background 0.25s var(--ease-out),
    color 0.25s var(--ease-out);
}
.rime-button:hover {
  background: var(--rime-gold);
  border-color: var(--rime-gold);
  color: var(--rime-midnight);
}

.site-header {
  position: absolute;
  z-index: 30;
  width: 100%;
  color: var(--rime-white);
}
.site-header .rime-nav {
  border-color: rgba(255, 255, 255, 0.35);
}
.site-header .rime-wordmark {
  letter-spacing: 0.17em;
}
.site-mark {
  width: 4.1rem;
  height: 3.25rem;
  object-fit: contain;
  object-position: left center;
  vertical-align: middle;
}
.site-header .site-mark {
  filter: brightness(0) invert(1);
}
.site-brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.site-brand .rime-wordmark,
.page-hero .rime-eyebrow {
  display: none;
}
.site-brand .rime-wordmark {
  font-size: 1.25rem;
}
.site-main {
  min-height: 75vh;
}
.page-hero {
  min-height: clamp(37rem, 82vh, 60rem);
  color: var(--rime-white);
}
.page-hero .rime-eyebrow {
  color: var(--rime-gold);
}
.page-hero .rime-hero__title {
  max-width: 13ch;
}
.page-hero--home {
  min-height: clamp(38rem, 88vh, 60rem);
}

.page-hero.page-hero--home::before {
  background-image: linear-gradient(90deg, rgba(5, 9, 54, 0.72), rgba(5, 9, 54, 0.38) 48%, rgba(5, 9, 54, 0.7)),
  image-set(
          url("./assets/backgrounds/home-hero.webp") type("image/webp"),
          url("./assets/backgrounds/home-hero.jpg") type("image/jpeg")
  );
}

.home-hero {
  align-items: center;
  text-align: center;
}

.page-hero--home .hero-title {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(4rem, 7.25vw, 8rem);
}

.home-hero__content {
  display: grid;
  justify-items: center;
}

.home-hero__description {
  max-width: 54rem;
  margin: var(--space-4) 0 0;
  color: var(--rime-white);
  font: 400 clamp(1.2rem, 2vw, 1.7rem)/1.36 var(--font-body);
}

.portfolio-showcase {
  padding-bottom: 0;
}

.portfolio-showcase__title {
  margin: var(--space-3) 0 var(--space-5);
}

.portfolio-showcase__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portfolio-showcase__card {
  position: relative;
  display: block;
  min-height: clamp(28rem, 48vw, 46rem);
  overflow: hidden;
  color: var(--rime-white);
  background: var(--rime-midnight);
  text-decoration: none;
}

.portfolio-showcase__card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.portfolio-showcase__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 9, 54, 0.04) 35%, rgba(5, 9, 54, 0.86));
}

.portfolio-showcase__overlay {
  position: absolute;
  z-index: 1;
  right: var(--page-gutter);
  bottom: var(--space-5);
  left: var(--page-gutter);
  display: grid;
  gap: 0.85rem;
}

.portfolio-showcase__name {
  font: 500 clamp(2.8rem, 5vw, 5.2rem)/0.9 var(--font-display);
  letter-spacing: -0.04em;
}

.portfolio-showcase__link {
  width: fit-content;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--rime-gold);
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.page-hero--about {
  --hero-image: url("./assets/backgrounds/about-hero.webp");
}
.page-hero--estate {
  --hero-image: image-set(
          url("./assets/backgrounds/real-estate-legacy-hero.webp") type("image/webp"),
          url("./assets/backgrounds/real-estate-legacy-hero.jpg") type("image/jpeg")
  );
}
.page-hero--equity::before {
  background: var(--rime-midnight);
}

.page-hero.page-hero--hospitality::before {
  background-image: linear-gradient(90deg, rgba(5, 9, 54, 0.68), rgba(5, 9, 54, 0.18) 58%, rgba(5, 9, 54, 0.52)),
  url("./assets/backgrounds/hospitality-portfolio.jpg");
  background-position: center;
}
.page-hero::before {
  background-image:
    linear-gradient(180deg, rgba(5, 9, 54, 0.25) 10%, rgba(5, 9, 54, 0.9) 100%),
    var(--hero-image);
}
.portfolio-item h2 {
  margin: 0.9rem 0 1.25rem;
}
.about-copy {
  columns: 2;
  column-gap: clamp(3rem, 8vw, 9rem);
  max-width: 82rem;
}
.about-copy p {
  break-inside: avoid;
  margin: 0 0 var(--space-3);
}

.about-copy--detailed {
  columns: 1;
  max-width: 48rem;
}

.about-copy--detailed h2 {
  margin: 0 0 var(--space-2);
  font-size: clamp(2.8rem, 4vw, 4.5rem);
  line-height: 0.92;
}

.about-copy--detailed h3 {
  margin: var(--space-5) 0 var(--space-2);
  font: 500 clamp(1.65rem, 2.5vw, 2.25rem)/1.05 var(--font-display);
  letter-spacing: -0.025em;
}

.about-copy--detailed .about-copy__lede {
  margin-bottom: var(--space-4);
  color: var(--rime-gold-deep);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  line-height: 1.3;
}
.estate-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--rule);
}
.estate-item {
  padding: var(--space-5) clamp(1.5rem, 5vw, 5rem);
  border-bottom: 1px solid var(--rule);
}
.estate-item:nth-child(odd) {
  border-right: 1px solid var(--rule);
}
.estate-item h2 {
  margin: 0.8rem 0 1rem;
}
.estate-item p,
.portfolio-item p {
  max-width: 34rem;
  margin: 0;
  font-size: var(--text-lg);
  line-height: 1.36;
}
.contact-panel {
  display: block;
}
.contact-panel .contact-form {
  max-width: 43rem;
  margin-top: var(--space-3);
}
.contact-details {
  margin: 1.5rem 0 0;
}
.contact-details dt {
  margin-top: 1.3rem;
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.contact-details dd {
  margin: 0.45rem 0 0;
  font-size: var(--text-lg);
  line-height: 1.3;
}
.contact-details a {
  text-decoration-color: var(--rime-gold);
  text-underline-offset: 0.25em;
}

@media (min-width: 701px) {
    .contact-panel > div {
        display: grid;
        grid-template-columns: minmax(20rem, 1fr) minmax(15rem, 0.62fr);
        column-gap: clamp(3rem, 8vw, 9rem);
        align-items: start;
    }

    .contact-panel .rime-eyebrow {
        grid-column: 1 / -1;
    }

    .contact-panel .contact-form {
        grid-column: 1;
    }

    .contact-panel .contact-details {
        grid-column: 2;
        margin-top: var(--space-3);
    }
}
.contact-form {
  display: grid;
  gap: 1rem;
}
.contact-form label {
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 0.85rem 0;
  color: var(--rime-ivory);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule-on-dark);
  font: 400 1.25rem/1.3 var(--font-body);
}
.contact-form textarea {
  min-height: 7rem;
  resize: vertical;
}
.contact-form .rime-button {
  justify-self: start;
  margin-top: 1rem;
  background: transparent;
  color: var(--rime-ivory);
}

.contact-form .rime-button:disabled {
    cursor: wait;
    opacity: 0.65;
}

.contact-form__status {
    margin: 0;
    font: 500 var(--text-xs)/1.5 var(--font-ui);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
}

.contact-flash {
    margin: 0 0 1.5rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--rime-gold);
    color: var(--rime-ivory);
    font: 400 1rem/1.5 var(--font-body);
}
.portfolio-list {
  border-top: 1px solid var(--rule);
}

.hospitality-portfolio {
  background: var(--rime-ivory);
}
.portfolio-item {
  display: grid;
  grid-template-columns: minmax(10rem, 0.45fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.75rem, 5vw, 5rem);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--rule);
}
.portfolio-item h2 {
  margin: 0 0 0.75rem;
}
.portfolio-item__logo-wrap,
.portfolio-item__content {
  min-width: 0;
}
.portfolio-logo {
  display: block;
  width: min(100%, 12.5rem);
  height: 4.25rem;
  object-fit: contain;
  object-position: left center;
}
.portfolio-logo--bridgex {
  width: min(100%, 14rem);
}
.portfolio-logo--patio {
  width: min(100%, 10rem);
  height: 5.5rem;
}
.portfolio-logo--baja-king {
  width: min(100%, 11rem);
  height: 4.75rem;
}

.hospitality-portfolio .portfolio-item__logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hospitality-portfolio .portfolio-item__logo-wrap > a {
  display: block;
  width: 100%;
}

.hospitality-portfolio .portfolio-logo {
  width: 100%;
  height: 10rem;
  object-position: center;
  mix-blend-mode: multiply;
}
.portfolio-item__content > p {
  max-width: 38rem;
  margin: 0;
}
.portfolio-item__link {
  display: inline-block;
  margin-top: var(--space-2);
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  text-underline-offset: 0.35em;
}

@media (max-width: 700px) {
  .portfolio-item {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .portfolio-logo,
  .portfolio-logo--bridgex,
  .portfolio-logo--patio,
  .portfolio-logo--baja-king {
    width: min(100%, 11rem);
  }
}
.site-footer {
  padding-block: var(--space-5);
  background: var(--rime-midnight);
  color: var(--rime-ivory);
}
.site-footer__inner {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: var(--space-2);
  border-top: 1px solid var(--rule-on-dark);
}
.site-menu-toggle {
  display: none;
  color: inherit;
  background: transparent;
  border: 1px solid currentColor;
  padding: 0.55rem 0.7rem;
  font: 500 var(--text-xs)/1 var(--font-ui);
  letter-spacing: var(--tracking-label);
}
.mobile-site-menu {
  display: none;
}
.nav-offerings {
  position: relative;
}
.nav-offerings::after {
  content: "";
  position: absolute;
  top: 100%;
  left: -1rem;
  width: 17rem;
  height: 0.85rem;
}
.offering-menu {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: -0.9rem;
  display: grid;
  min-width: 15.5rem;
  padding: 0.8rem 0;
  margin: 0;
  list-style: none;
  color: var(--rime-ink);
  background: var(--rime-ivory);
  border-top: 2px solid var(--rime-gold);
  box-shadow: 0 1rem 2rem rgba(5, 9, 54, 0.18);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-0.35rem);
  transition:
    opacity 0.18s var(--ease-out) 0.18s,
    transform 0.18s var(--ease-out) 0.18s;
}
.offering-menu a {
  display: block;
  padding: 0.8rem 1rem;
  font-size: 0.61rem;
  color: var(--rime-ink);
}
.offering-menu a:hover {
  color: var(--rime-gold-deep);
  background: var(--rime-paper);
}
.nav-offerings:hover .offering-menu,
.nav-offerings:focus-within .offering-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}
.collection-hero {
  min-height: min(46rem, 82vh);
  display: grid;
  align-items: end;
  padding-block: var(--space-7);
  color: var(--rime-white);
  background-image:
    linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88)),
    image-set(
      url("./assets/desktop/peninsula-paraiso-hero.avif") type("image/avif"),
      url("./assets/desktop/peninsula-paraiso-hero.webp") type("image/webp")
    );
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.collection-hero--video {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background-image: linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88)),
    url("./assets/video/la-paz-collection-hero-poster.jpg");
}

.collection-hero--video::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88));
}

.collection-hero__video {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (prefers-reduced-motion: reduce) {
    .collection-hero__video {
        display: none;
    }
}
@media (max-width: 700px) {
  .collection-hero {
    background-image:
      linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88)),
      url("./assets/mobile/peninsula-paraiso-hero-mobile.jpg");
  }

    .collection-hero--video {
        background-image: linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88)),
        url("./assets/video/la-paz-collection-hero-poster.jpg");
    }

    .collection-hero--video .collection-hero__video {
        display: none;
    }
}
.collection-hero__title {
  max-width: 10ch;
  margin: var(--space-3) 0 0;
}
.collection-hero .rime-eyebrow,
.offering-hero .rime-eyebrow,
.peninsula-hero__copy .rime-eyebrow,
.pelicano-hero__copy .rime-eyebrow,
.distrito-hero__copy .rime-eyebrow {
  width: fit-content;
  padding: 0;
  color: var(--rime-white);
  background: transparent;
  text-shadow: 0 1px 2px rgba(5, 9, 54, 0.55);
}
.collection-hero .rime-eyebrow::before,
.offering-hero .rime-eyebrow::before,
.peninsula-hero__copy .rime-eyebrow::before,
.pelicano-hero__copy .rime-eyebrow::before,
.distrito-hero__copy .rime-eyebrow::before {
  background: var(--rime-gold);
}
.collection-offering {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(20rem, 0.88fr);
  min-height: 38rem;
}
.collection-offering--reverse {
  grid-template-columns: minmax(20rem, 0.88fr) minmax(0, 1.12fr);
}
.collection-offering__image {
  min-height: 26rem;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.collection-offering__media {
  display: block;
  min-height: 26rem;
}
.collection-offering__media .collection-offering__image {
  display: block;
}
.collection-offering__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem, 8vw, 8rem);
  background: var(--rime-ivory);
}
.collection-offering--reverse .collection-offering__image {
  order: 2;
}
.collection-offering--reverse .collection-offering__media {
  order: 2;
}
.collection-offering--reverse .collection-offering__content {
  order: 1;
  background: var(--rime-paper);
}
.collection-offering__content h2 {
  margin: var(--space-3) 0;
}
.collection-offering__content p {
  max-width: 31rem;
  margin: 0 0 var(--space-4);
  font-size: var(--text-lg);
  line-height: 1.38;
}
.offering-hero {
  min-height: min(45rem, 80vh);
  color: var(--rime-white);
}
.offering-hero::before {
  background-image:
    linear-gradient(180deg, rgba(5, 9, 54, 0.17), rgba(5, 9, 54, 0.88)),
    var(--hero-image);
}
.offering-overview {
  display: grid;
  grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 9vw, 10rem);
  align-items: start;
}
.offering-overview h2 {
  margin: 0.75rem 0 0;
}
.offering-overview p {
  max-width: 37rem;
  margin: 0;
  font-size: var(--text-lg);
  line-height: 1.45;
}
.offering-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  border-block: 1px solid var(--rule);
}
.offering-facts div {
  padding: 1.25rem;
  border-left: 1px solid var(--rule);
}
.offering-facts div:first-child {
  border-left: 0;
  padding-left: 0;
}
.offering-facts dt {
  color: var(--rime-gold-deep);
  font: 500 clamp(1.85rem, 3vw, 3rem)/1 var(--font-display);
}
.offering-facts dd {
  margin: 0.65rem 0 0;
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.offering-gallery {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 1.25rem;
}
.offering-gallery img {
  width: 100%;
  height: 100%;
  min-height: 20rem;
  object-fit: cover;
}
.offering-gallery--expanded {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: clamp(15rem, 27vw, 24rem);
}
.offering-gallery--expanded figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--rime-ink);
}
.offering-gallery--expanded figure:first-child {
  grid-row: span 2;
}
.offering-gallery--expanded .gallery-wide {
  grid-column: 1 / -1;
  grid-row: auto;
}
.offering-gallery--expanded img {
  display: block;
  min-height: 0;
  object-position: center;
}
.offering-gallery--expanded .gallery-map img {
  object-fit: cover;
}
.offering-gallery--expanded .gallery-shore img {
  object-position: center 42%;
}
.offering-details {
  display: grid;
  grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 9vw, 10rem);
  align-items: start;
}
.offering-details h2 {
  margin: 0.7rem 0 0;
}
.offering-detail-copy {
  max-width: 43rem;
  font-size: var(--text-lg);
  line-height: 1.5;
}
.offering-detail-copy p {
  margin: 0 0 1.1rem;
}
.offering-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 2.25rem;
  margin: 2rem 0 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--rule);
}
.offering-detail-list dt {
  margin-bottom: 0.35rem;
  color: var(--rime-gold-deep);
  font: 500 var(--text-xs)/1.3 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.offering-detail-list dd {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.4;
}
.offering-note {
  margin-top: 1.5rem;
  padding: 1.1rem 1.25rem;
  border-left: 2px solid var(--rime-gold);
  background: var(--rime-paper);
  color: var(--rime-ink);
  font-size: 0.94rem;
  line-height: 1.45;
}
.uncropped-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.peninsula-hero,
.pelicano-hero,
.distrito-hero {
  position: relative;
  z-index: 0;
  isolation: isolate;
  color: var(--rime-white);
  overflow: hidden;
}
.peninsula-hero::after,
.pelicano-hero::after,
.distrito-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(5, 9, 54, 0.17),
    rgba(5, 9, 54, 0.88)
  );
}
.peninsula-hero__inner,
.pelicano-hero__inner,
.distrito-hero__inner {
  position: relative;
  min-height: 0;
}
.peninsula-hero__image,
.pelicano-hero__image,
.distrito-hero__image {
  margin: 0;
}
.peninsula-hero__image img,
.pelicano-hero__image img,
.distrito-hero__image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
.peninsula-hero__copy,
.pelicano-hero__copy,
.distrito-hero__copy {
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  max-width: min(47rem, 58%);
  padding: var(--space-7) var(--page-gutter);
  color: var(--rime-white);
  text-shadow: 0 2px 14px rgba(5, 9, 54, 0.8);
}
.peninsula-hero__copy h1,
.pelicano-hero__copy h1,
.distrito-hero__copy h1 {
  margin: var(--space-3) 0 0;
}
.hero-brochure-link {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 1.25rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--rime-gold);
  color: var(--rime-white);
  font: 500 var(--text-xs)/1.4 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  text-decoration: none;
  text-shadow: none;
  transition:
    color 0.2s var(--ease-out),
    border-color 0.2s var(--ease-out);
}
.hero-brochure-link span {
  color: var(--rime-gold);
  font-size: 1.15em;
  line-height: 1;
}
.hero-brochure-link:hover,
.hero-brochure-link:focus-visible {
  border-color: var(--rime-white);
  color: var(--rime-gold);
}
.peninsula-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: center;
}
.peninsula-feature--reverse {
  grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1fr);
}
.peninsula-feature > *,
.pelicano-closing > * {
  min-width: 0;
}
.peninsula-feature__copy h2,
.peninsula-validation h2 {
  margin: 0.7rem 0 1.35rem;
}
.peninsula-feature__copy p,
.peninsula-validation p {
  max-width: 42rem;
  font-size: var(--text-lg);
  line-height: 1.5;
}
.peninsula-feature figure,
.peninsula-validation figure {
  margin: 0;
}
.peninsula-feature figcaption,
.peninsula-validation figcaption {
  margin-top: 0.8rem;
  color: var(--rime-gold-deep);
  font: 500 var(--text-xs)/1.35 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.peninsula-validation {
  max-width: 74rem;
}
.peninsula-validation__points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 2.25rem;
  margin: 2rem 0;
  padding: 1.5rem 0;
  border-block: 1px solid var(--rule);
}
.peninsula-validation__points p {
  margin: 0;
  font-size: 1rem;
}
.pelicano-closing,
.distrito-closing {
  display: grid;
  grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1fr);
  gap: clamp(3rem, 8vw, 9rem);
  align-items: start;
}
.pelicano-closing figure,
.distrito-closing figure {
  min-width: 0;
  margin: 0;
}
.pelicano-closing figcaption,
.distrito-closing figcaption {
  margin-top: 0.8rem;
  color: var(--rime-gold-deep);
  font: 500 var(--text-xs)/1.35 var(--font-ui);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}
.pelicano-closing__copy h2,
.distrito-closing__copy h2 {
  margin: 0.7rem 0 1.35rem;
}
.pelicano-closing__copy > p,
.distrito-closing__copy > p {
  max-width: 42rem;
  font-size: var(--text-lg);
  line-height: 1.5;
}
@media (max-width: 700px) {
  .peninsula-hero__inner,
  .pelicano-hero__inner,
  .distrito-hero__inner,
  .peninsula-feature,
  .peninsula-feature--reverse,
  .pelicano-closing,
  .distrito-closing {
    grid-template-columns: 1fr;
  }
  .peninsula-hero__copy,
  .pelicano-hero__copy,
  .distrito-hero__copy {
    left: 0;
    max-width: 100%;
    padding: 3.5rem var(--page-gutter);
  }
  .peninsula-hero__image,
  .pelicano-hero__image,
  .distrito-hero__image {
    min-height: 0;
  }
  .peninsula-validation__points {
    grid-template-columns: 1fr;
  }
}

.form-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
@media (max-width: 700px) {
  .rime-nav__links {
    display: none;
  }

    .rime-nav .language-switch {
        margin-left: auto;
        margin-right: 0.75rem;
    }
  .site-menu-toggle {
    display: inline-flex;
  }
  .mobile-site-menu {
    padding: 1.25rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.35);
  }
  .mobile-site-menu.is-open {
    display: grid;
  }
  .mobile-site-menu > a,
  .mobile-offerings a,
  .mobile-offerings span {
    padding: 0.75rem 0;
    font: 500 var(--text-xs)/1.4 var(--font-ui);
    letter-spacing: var(--tracking-label);
    text-decoration: none;
  }
  .mobile-offerings {
    display: grid;
    padding: 0.4rem 0 0.65rem 1.25rem;
  }
  .mobile-offerings span {
    color: var(--rime-gold);
  }
  .contact-panel,
  .portfolio-showcase__cards,
  .portfolio-item,
  .collection-offering,
  .collection-offering--reverse,
  .offering-overview,
  .offering-gallery,
  .offering-details {
    grid-template-columns: 1fr;
  }
  .offering-gallery--expanded figure:first-child {
    grid-row: auto;
  }
  .offering-gallery--expanded .gallery-wide {
    grid-column: auto;
  }
  .offering-detail-list {
    grid-template-columns: 1fr;
  }

  .page-hero--home {
    min-height: 42rem;
  }
  .about-copy {
    columns: 1;
  }
  .estate-list {
    grid-template-columns: 1fr;
  }
  .estate-item:nth-child(odd) {
    border-right: 0;
  }
  .site-footer__inner {
    flex-direction: column;
  }
  .collection-offering--reverse .collection-offering__image,
  .collection-offering--reverse .collection-offering__content {
    order: initial;
  }
  .collection-offering__content {
    padding: 3.5rem var(--page-gutter);
  }
  .offering-facts {
    grid-template-columns: 1fr 1fr;
  }
  .offering-facts div:nth-child(3) {
    border-left: 0;
  }
  .offering-facts div:nth-child(n + 3) {
    border-top: 1px solid var(--rule);
  }
}

@media (max-width: 700px) {
  .site-header {
    background: linear-gradient(
      180deg,
      rgba(5, 9, 54, 0.94),
      rgba(5, 9, 54, 0.78)
    );
  }
  .site-header .rime-shell {
    padding-inline: 1.25rem;
  }
  .site-header .rime-nav {
    min-height: 5.5rem;
    padding-block: 1rem;
  }
  .site-header .site-mark {
    width: 3.65rem;
    height: 2.9rem;
  }
  .site-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 2.75rem;
    padding: 0 0.85rem;
    border-color: rgba(255, 255, 255, 0.7);
    border-radius: 0;
    font-size: 0.62rem;
  }
  .mobile-site-menu {
    position: absolute;
    z-index: 1;
    top: 100%;
    right: 0;
    left: 0;
    gap: 0;
    padding: 0.4rem 1.25rem 1.25rem;
    color: var(--rime-ivory);
    background: var(--rime-midnight);
    box-shadow: 0 1.5rem 2rem rgba(5, 9, 54, 0.28);
  }
  .mobile-site-menu.is-open {
    display: grid;
  }
  .mobile-site-menu > a {
    display: flex;
    align-items: center;
    min-height: 3.4rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    color: inherit;
    font-size: 0.72rem;
  }
  .mobile-offerings {
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  }
  .mobile-offerings-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.4rem;
    padding: 0.75rem 0;
    color: var(--rime-gold);
    background: transparent;
    border: 0;
    font: 500 0.62rem/1.4 var(--font-ui);
    letter-spacing: var(--tracking-label);
    text-align: left;
  }
  .mobile-offerings-toggle span {
    padding: 0;
    color: var(--rime-ivory);
    font-size: 1.2rem;
    line-height: 1;
  }
  .mobile-offerings-list {
    display: none;
    padding: 0 0 0.7rem 1rem;
  }
  .mobile-offerings.is-open .mobile-offerings-list {
    display: grid;
  }
  .mobile-offerings-list a {
    padding: 0.65rem 0;
    color: var(--rime-ivory);
    font: 500 0.68rem/1.35 var(--font-ui);
    letter-spacing: 0.12em;
    text-decoration: none;
  }
}

/* Keep full, uncropped hero photography while reserving enough room for copy. */
.peninsula-hero__copy,
.pelicano-hero__copy,
.distrito-hero__copy {
  padding: clamp(1.5rem, 4vw, 5rem) var(--page-gutter);
}

@media (max-width: 900px) {
  .site-header {
    position: relative;
    background: linear-gradient(
      180deg,
      rgba(5, 9, 54, 0.96),
      rgba(5, 9, 54, 0.84)
    );
  }
}

@media (max-width: 700px) {
  .peninsula-hero__copy,
  .pelicano-hero__copy,
  .distrito-hero__copy {
    padding: 0.65rem var(--page-gutter);
  }

  .peninsula-hero__copy h1,
  .pelicano-hero__copy h1,
  .distrito-hero__copy h1 {
    margin: 0.45rem 0;
  }

  .peninsula-hero__copy .rime-eyebrow,
  .pelicano-hero__copy .rime-eyebrow,
  .distrito-hero__copy .rime-eyebrow {
    font-size: 0.5rem;
  }

  .peninsula-hero__copy > p:last-child,
  .pelicano-hero__copy > p:last-child,
  .distrito-hero__copy > p:last-child {
    margin: 0;
    font-size: 1rem;
    line-height: 1.15;
  }
}

/* Landscape source images use a vertical editorial flow; portrait media remains beside its copy. */
.peninsula-feature,
.peninsula-feature--reverse,
.pelicano-closing,
.distrito-closing {
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 4rem);
}

.peninsula-feature__copy,
.pelicano-closing__copy,
.distrito-closing__copy {
  order: 1;
}
.peninsula-feature figure,
.pelicano-closing figure,
.distrito-closing figure {
  order: 2;
}

/* Keep the Pichilingue–Balandra location map beside its corridor copy on wider screens. */
.peninsula-feature--location {
  grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 7rem);
}
.peninsula-feature--location > figure {
  order: 1;
}
.peninsula-feature--location > .peninsula-feature__copy {
  order: 2;
}

.portrait-media-section {
  grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 7rem);
}

.portrait-media-section > figure {
  order: 1;
}
.portrait-media-section > :not(figure) {
  order: 2;
}

@media (max-width: 700px) {
  .peninsula-feature--location {
    grid-template-columns: 1fr;
  }
  .peninsula-feature--location > .peninsula-feature__copy {
    order: 1;
  }
  .peninsula-feature--location > figure {
    order: 2;
  }
  .portrait-media-section {
    grid-template-columns: 1fr;
  }
}
