/*
Theme Name: Pontus Rotana
Theme URI: https://pontusrotana.com/
Author: Pontus Rotana Project
Description: Lightweight custom landing-page theme for Pontus Rotana Resort & Spa.
Version: 0.6.10
Text Domain: pontus-rotana
*/

/* Pontus brand gold system.
   Pantone print colors are approximated for RGB screens:
   7407 C = primary gold, 7403 C = hover/secondary gold.
   --pr-gold-text is an accessibility-darkened derivative for small text on light backgrounds. */
:root {
  --pr-gold: #CBA052;
  --pr-gold-deep: #CBA052;
  --pr-gold-light: #EED484;
  --pr-gold-text: #765A20;
  --pr-ink: #111111;
  --pr-ink-soft: #1B1B1B;
  --pr-white: #FFFFFF;
  --pr-bg: #F7F6F2;
  --pr-muted: #666666;
  --pr-line: #DDDAD1;
  --pr-success: #265426;
  --pr-danger: #6B142A;
  --pr-font: "TT Norms", Arial, Helvetica, sans-serif;
  --pr-container: 1240px;
  --pr-gutter: clamp(20px, 4vw, 56px);
  --pr-section: clamp(72px, 8vw, 132px);
  --pr-radius: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--pr-white);
  color: var(--pr-ink);
  font-family: var(--pr-font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, .pr-button { min-height: 48px; }

.pr-container {
  width: min(calc(100% - (var(--pr-gutter) * 2)), var(--pr-container));
  margin-inline: auto;
}

.pr-site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(17,17,17,.96);
  color: var(--pr-white);
  border-bottom: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(14px);
}
.pr-header-inner {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.pr-brand { display: inline-flex; align-items: center; text-decoration: none; }
.pr-brand img { width: clamp(150px, 15vw, 210px); max-height: 48px; object-fit: contain; }
.pr-brand-text { display: none; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pr-nav { display: flex; align-items: center; gap: 22px; }
.pr-nav a { font-size: .9rem; text-decoration: none; opacity: .88; }
.pr-nav a:hover, .pr-nav a:focus-visible { opacity: 1; }
.pr-menu-toggle { display: none; border: 1px solid rgba(255,255,255,.28); color: white; background: transparent; padding: 8px 12px; border-radius: var(--pr-radius); }

.pr-language-switcher { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; letter-spacing: .06em; white-space: nowrap; }
.pr-language-switcher a, .pr-language-switcher span { text-decoration: none; opacity: .82; }
.pr-language-switcher span[aria-current="page"] { color: var(--pr-gold); opacity: 1; }
.pr-language-switcher i { font-style: normal; opacity: .35; }
.pontus-lang-ru .pr-nav { gap: 15px; }
.pontus-lang-ru .pr-nav > a:not(.pr-button) { font-size: .84rem; }

.pr-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border: 1px solid var(--pr-gold);
  border-radius: var(--pr-radius);
  background: var(--pr-gold);
  color: #111;
  text-decoration: none;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}
.pr-button:hover, .pr-button:focus-visible { filter: none; }
.pr-button:not(.pr-button--ghost):not(.pr-button--dark):hover,
.pr-button:not(.pr-button--ghost):not(.pr-button--dark):focus-visible {
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
}
.pr-button--ghost { background: transparent; color: var(--pr-white); border-color: rgba(255,255,255,.55); }
.pr-button--dark { background: var(--pr-ink); border-color: var(--pr-ink); color: var(--pr-white); }

.pr-hero {
  position: relative;
  background: var(--pr-white);
}
.pr-hero-stage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: calc(100svh - 74px);
  display: flex;
  align-items: center;
  color: var(--pr-white);
  background-color: var(--pr-ink);
  background-image:
    linear-gradient(90deg, rgba(7,7,7,.72) 0%, rgba(7,7,7,.56) 31%, rgba(7,7,7,.22) 52%, rgba(7,7,7,.08) 72%, rgba(7,7,7,.06) 100%),
    var(--pr-hero-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.pr-hero-stage::before,
.pr-hero-stage::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.pr-hero-stage::before {
  width: min(56vw, 760px);
  aspect-ratio: 1;
  right: -17vw;
  top: -31%;
  border: clamp(24px, 3.4vw, 50px) solid rgba(203,160,82,.14);
  transform: rotate(45deg);
  z-index: 0;
}
.pr-hero-stage::after {
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: rgba(255,255,255,.15);
}
.pr-hero-stage-inner {
  position: relative;
  z-index: 1;
  width: min(calc(100% - clamp(44px, 6vw, 112px)), 1540px);
  margin-inline: auto;
  padding-top: clamp(76px, 9vh, 118px);
  padding-bottom: clamp(156px, 18vh, 190px);
  padding-right: 0;
}
.pr-hero-copy {
  width: min(100%, 760px);
}
.pr-eyebrow {
  margin: 0 0 18px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--pr-gold);
}
h1, h2, h3 { line-height: 1.08; margin-top: 0; }
h1 { font-size: clamp(2.3rem, 3.25vw, 3.5rem); letter-spacing: -.035em; max-width: 860px; margin-bottom: 24px; }
h2 { font-size: clamp(1.9rem, 3.1vw, 3.25rem); letter-spacing: -.035em; margin-bottom: 22px; }
h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
.pr-hero h1 {
  max-width: 760px;
  margin-bottom: 22px;
  font-size: clamp(2.65rem, 3.35vw, 3.55rem);
  line-height: 1.03;
  letter-spacing: -.043em;
  text-wrap: balance;
}
.pr-lead {
  max-width: 700px;
  margin-bottom: 0;
  color: rgba(255,255,255,.84);
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  line-height: 1.6;
}
.pr-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.pr-hero-facts {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  background: linear-gradient(90deg, rgba(8,8,8,.80), rgba(8,8,8,.58));
  border-top: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(9px);
}
.pr-hero-facts-inner {
  width: min(calc(100% - clamp(44px, 6vw, 112px)), 1540px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.pr-hero-fact {
  min-height: 112px;
  padding: 20px clamp(18px, 2.2vw, 32px);
  display: flex;
  align-items: center;
  gap: 15px;
  border-right: 1px solid rgba(255,255,255,.15);
}
.pr-hero-fact:first-child { padding-left: 0; }
.pr-hero-fact:last-child { border-right: 0; }
.pr-hero-fact-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(203,160,82,.5);
  border-radius: 50%;
  color: var(--pr-gold);
}
.pr-hero-fact-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pr-hero-fact-copy { display: block; min-width: 0; }
.pr-hero-fact strong {
  display: block;
  color: #fff;
  font-size: clamp(1.2rem, 1.7vw, 1.85rem);
  line-height: 1.05;
  letter-spacing: -.03em;
}
.pr-hero-fact-copy > span {
  display: block;
  margin-top: 5px;
  color: rgba(255,255,255,.68);
  font-size: .78rem;
  line-height: 1.3;
}
.pr-form-card {
  background: var(--pr-white);
  color: var(--pr-ink);
  padding: clamp(24px, 3vw, 38px);
  border-top: 3px solid var(--pr-gold);
  box-shadow: 0 24px 80px rgba(0,0,0,.28);
}
.pr-form-card--hero {
  width: 100%;
  padding: 28px 28px 27px;
  box-shadow: 0 22px 64px rgba(0,0,0,.30);
}
.pr-form-card h2 {
  font-size: clamp(1.75rem, 2.4vw, 2.45rem);
  letter-spacing: -.035em;
  margin-bottom: 8px;
}
.pr-form-card--hero h2 {
  max-width: 10ch;
  font-size: clamp(1.9rem, 2.05vw, 2.25rem);
  line-height: 1.02;
}
.pr-form-card h3 { margin-bottom: 10px; }
.pr-form-card p { color: var(--pr-muted); margin-top: 0; }
.pr-form-kicker {
  margin-bottom: 7px !important;
  color: var(--pr-gold-text) !important;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.pr-form-intro { margin-bottom: 16px; font-size: .91rem; line-height: 1.42; }
.pr-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pr-field { display: grid; gap: 6px; margin-top: 12px; }
.pr-form-row .pr-field { margin-top: 0; }
.pr-form-row--secondary { margin-top: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
.pr-field label { font-size: .82rem; font-weight: 700; }
.pr-optional { color: var(--pr-muted); font-weight: 400; }
.pr-field input, .pr-field select, .pr-field textarea {
  width: 100%; min-height: 46px; border: 1px solid #d1d0cb; border-radius: 5px; padding: 10px 12px; background: #fff; color: #111;
}
.pr-field textarea { min-height: 88px; resize: vertical; }
.pr-consent { display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: start; margin-top: 14px; font-size: .76rem; line-height: 1.42; color: var(--pr-muted); }
.pr-form-card--hero .pr-consent { margin-top: 13px; font-size: .72rem; }
.pr-consent input { margin-top: 3px; }
.pr-form-card .pr-button { width: 100%; margin-top: 15px; }
.pr-form-card--hero .pr-button { min-height: 50px; }
.pr-hp { position: absolute !important; left: -9999px !important; }
.pr-form-message { padding: 12px 14px; margin-bottom: 16px; border-left: 3px solid var(--pr-success); background: #f2f7f2; }
.pr-form-message--error { border-color: var(--pr-danger); background: #fbf3f5; }

.pr-form-success {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 20px;
  align-items: center;
  padding: 24px;
  margin-top: 18px;
  border: 1px solid rgba(203,160,82,.38);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(203,160,82,.10), rgba(255,255,255,.78));
}
.pr-form-success-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--pr-ink);
  border: 1px solid var(--pr-gold);
}
.pr-form-success-icon svg { width: 27px; height: 27px; fill: none; stroke: var(--pr-gold); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pr-form-success-copy h3 { margin: 0 0 6px; font-size: clamp(1.16rem, 1.8vw, 1.42rem); line-height: 1.18; letter-spacing: -.02em; }
.pr-form-success-copy p { margin: 0; color: var(--pr-muted); line-height: 1.5; }
.pr-form-success .pr-form-success-close { grid-column: 1 / -1; margin-top: 0; }
@media (max-width: 560px) {
  .pr-form-success { grid-template-columns: 46px minmax(0, 1fr); padding: 20px; gap: 14px; }
  .pr-form-success-icon { width: 46px; height: 46px; }
  .pr-form-success-icon svg { width: 23px; height: 23px; }
}

.pr-facts { background: var(--pr-bg); border-bottom: 1px solid var(--pr-line); }
.pr-facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.pr-fact { padding: 30px clamp(18px, 3vw, 34px); border-right: 1px solid var(--pr-line); }
.pr-fact:last-child { border-right: 0; }
.pr-fact strong { display: block; font-size: clamp(1.45rem, 2.4vw, 2.2rem); line-height: 1.1; }
.pr-fact span { display: block; margin-top: 6px; color: var(--pr-muted); font-size: .9rem; }

.pr-section { padding-block: var(--pr-section); }
.pr-section--soft { background: var(--pr-bg); }
.pr-section--dark { background: var(--pr-ink); color: var(--pr-white); }
.pr-section--dark p { color: rgba(255,255,255,.74); }
.pr-section-copy { max-width: 760px; }
.pr-section-copy > p { font-size: clamp(1rem, 1.2vw, 1.15rem); color: var(--pr-muted); }
.pr-section--dark .pr-section-copy > p { color: rgba(255,255,255,.72); }

.pr-split { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(42px, 7vw, 100px); align-items: start; }
.pr-panel { border: 1px solid var(--pr-line); padding: clamp(24px, 4vw, 44px); background: var(--pr-white); }
.pr-panel--dark { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.035); }
.pr-panel p:last-child { margin-bottom: 0; }

.pr-infrastructure {
  background: var(--pr-white);
  overflow: hidden;
}
.pr-infrastructure-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  align-items: stretch;
}
.pr-infrastructure-intro {
  grid-column: span 2;
  min-height: 150px;
  padding: 2px 46px 12px 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.pr-infrastructure-intro .pr-eyebrow {
  margin-bottom: 8px;
  color: #4f4f4f;
}
.pr-infrastructure-intro h2 {
  margin-bottom: 14px;
  font-size: clamp(2.35rem, 3.6vw, 3.75rem);
  line-height: .98;
  font-weight: 400;
  letter-spacing: -.045em;
}
.pr-infrastructure-intro > p {
  max-width: 36ch;
  margin: 0;
  color: var(--pr-muted);
  font-size: clamp(.96rem, 1vw, 1.08rem);
  line-height: 1.5;
}
.pr-text-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 10px;
  margin-top: 22px;
  color: var(--pr-ink);
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid var(--pr-ink);
  padding-bottom: 3px;
}
.pr-text-link span { transition: transform .2s ease; }
.pr-text-link:hover span, .pr-text-link:focus-visible span { transform: translateX(4px); }
.pr-infrastructure-card {
  position: relative;
  min-height: 150px;
  padding: 18px 16px 16px;
  display: flex;
  align-items: flex-end;
  background: #0d0d0d;
  color: var(--pr-white);
  overflow: hidden;
  isolation: isolate;
  transition: transform .2s ease, background-color .2s ease;
}
.pr-infrastructure-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: var(--amenity-image, none);
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity .28s ease, transform .35s ease;
  z-index: -2;
}
.pr-infrastructure-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04) 28%, rgba(0,0,0,.78) 100%);
  opacity: 0;
  transition: opacity .28s ease;
  z-index: -1;
}
.pr-infrastructure-card:hover,
.pr-infrastructure-card:focus-within {
  background: #151515;
  transform: translateY(-1px);
}
.pr-infrastructure-card.has-image:hover::before,
.pr-infrastructure-card.has-image:focus-within::before,
.pr-infrastructure-card.has-image:hover::after,
.pr-infrastructure-card.has-image:focus-within::after {
  opacity: 1;
}
.pr-infrastructure-card.has-image:hover::before,
.pr-infrastructure-card.has-image:focus-within::before {
  transform: scale(1);
}
.pr-infrastructure-card strong {
  position: relative;
  z-index: 1;
  max-width: 15ch;
  font-size: clamp(.98rem, 1.05vw, 1.08rem);
  line-height: 1.2;
  font-weight: 400;
}

.pr-source-list { display: grid; gap: 12px; margin-top: 24px; }
.pr-source-link { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-top: 1px solid var(--pr-line); text-decoration: none; }
.pr-source-link:last-child { border-bottom: 1px solid var(--pr-line); }
.pr-source-link span:last-child { color: var(--pr-muted); }

.pr-faq { display: grid; gap: 0; margin-top: 34px; border-top: 1px solid var(--pr-line); }
.pr-faq details { border-bottom: 1px solid var(--pr-line); padding: 20px 0; }
.pr-faq summary { cursor: pointer; font-weight: 700; }
.pr-faq p { max-width: 820px; color: var(--pr-muted); }

.pr-disclaimer { font-size: .82rem; color: var(--pr-muted); border-top: 1px solid var(--pr-line); padding-top: 20px; margin-top: 34px; }

.pr-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 80px); align-items: start; }
.pr-contact-list { list-style: none; padding: 0; margin: 24px 0 0; }
.pr-contact-list li { margin: 10px 0; }

.pr-site-footer { background: #090909; color: rgba(255,255,255,.74); padding: 48px 0 28px; }
.pr-footer-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; }
.pr-footer-title { color: var(--pr-white); font-weight: 700; }
.pr-footer-links { display: flex; flex-wrap: wrap; gap: 14px 22px; }
.pr-site-footer a { color: inherit; }
.pr-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 22px; margin-top: 34px; font-size: .78rem; }


/* User-triggered inquiry modal. It never opens automatically for first-time visitors. */
.pr-modal[hidden] { display: none; }
.pr-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(5,5,5,.72);
  backdrop-filter: blur(5px);
}
.pr-modal-dialog {
  position: relative;
  width: min(100%, 720px);
  max-height: calc(100svh - 48px);
  overflow: auto;
  border-radius: 10px;
  box-shadow: 0 28px 100px rgba(0,0,0,.42);
}
.pr-modal-close {
  position: absolute;
  z-index: 3;
  top: 13px;
  right: 14px;
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: #f1efe8;
  color: #111;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}
.pr-modal-close:hover,
.pr-modal-close:focus-visible { background: #e7e2d3; }
body.pr-modal-open { overflow: hidden; }
.pr-modal .pr-form-card--modal {
  width: 100%;
  padding: 34px 34px 32px;
  border-radius: 10px;
  box-shadow: none;
}
.pr-modal .pr-form-card--modal h2 {
  max-width: none;
  margin-bottom: 10px;
  font-size: clamp(2rem, 2.65vw, 2.45rem);
  line-height: 1.05;
  letter-spacing: -.035em;
  white-space: nowrap;
}
.pr-modal .pr-form-card--modal .pr-form-intro { max-width: 42ch; }
.pr-modal .pr-form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pr-modal .pr-field { min-width: 0; }
.pr-modal .pr-field input,
.pr-modal .pr-field select { min-height: 48px; height: 48px; }
.pr-modal .pr-form-row--secondary .pr-field label { min-height: 2.3em; display: flex; align-items: flex-end; }

:focus-visible { outline: 3px solid var(--pr-gold); outline-offset: 3px; }

@media (max-width: 1199px) {
  .pr-hero-stage {
    min-height: calc(100svh - 74px);
    background-position: center center;
  }
  .pr-hero-stage-inner {
    width: min(calc(100% - (var(--pr-gutter) * 2)), var(--pr-container));
    padding-right: 0;
  }
  .pr-hero-copy { width: min(100%, 700px); }
}

@media (max-width: 980px) {
  .pr-menu-toggle { display: inline-flex; }
  .pr-nav { display: none; position: absolute; left: 0; right: 0; top: 74px; flex-direction: column; align-items: stretch; padding: 20px var(--pr-gutter) 28px; background: #111; border-top: 1px solid rgba(255,255,255,.1); }
  .pr-nav.is-open { display: flex; }
  .pr-nav .pr-button { width: 100%; }
  .pr-language-switcher { padding: 4px 0; }
  .pr-split, .pr-contact-grid { grid-template-columns: 1fr; }
  .pr-form-card { max-width: 640px; }
  .pr-hero-facts-inner { width: min(calc(100% - (var(--pr-gutter) * 2)), var(--pr-container)); }
  .pr-hero-fact:first-child { padding-left: 0; }
  .pr-facts-grid { grid-template-columns: 1fr 1fr; }
  .pr-fact:nth-child(2) { border-right: 0; }
  .pr-fact:nth-child(-n+2) { border-bottom: 1px solid var(--pr-line); }
  .pr-infrastructure-board { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .pr-infrastructure-intro { grid-column: 1 / -1; min-height: auto; max-width: 680px; padding-right: 0; padding-bottom: 24px; }
}

@media (max-width: 620px) {
  .pr-header-inner { min-height: 66px; }
  .pr-nav { top: 66px; }
  .pr-hero-stage {
    min-height: max(760px, calc(100svh - 66px));
    align-items: stretch;
    flex-direction: column;
    background-image:
      linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.30) 43%, rgba(0,0,0,.82) 100%),
      var(--pr-hero-image-mobile, var(--pr-hero-image));
    background-position: center top;
  }
  .pr-hero-stage::before {
    width: 86vw;
    right: -44vw;
    top: -14%;
    border-width: 24px;
    opacity: .72;
  }
  .pr-hero-stage-inner {
    width: min(calc(100% - 36px), 560px);
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: flex-end;
    padding: 116px 0 30px;
  }
  .pr-hero h1 {
    max-width: 12ch;
    margin-bottom: 16px;
    font-size: clamp(2.05rem, 10vw, 2.75rem);
    line-height: 1.01;
  }
  .pr-eyebrow { margin-bottom: 12px; font-size: .67rem; letter-spacing: .13em; }
  .pr-lead { font-size: .98rem; line-height: 1.5; }
  .pr-hero-actions { display: grid; grid-template-columns: 1fr; margin-top: 24px; }
  .pr-form-row { grid-template-columns: 1fr; gap: 0; }
  .pr-form-row--secondary { margin-top: 0; }
  .pr-form-row .pr-field + .pr-field { margin-top: 12px; }
  .pr-modal { place-items: end center; padding: 0; }
  .pr-modal-dialog { width: 100%; max-height: 92svh; border-radius: 12px 12px 0 0; }
  .pr-modal .pr-form-card--modal { padding: 30px 20px 24px; border-radius: 12px 12px 0 0; }
  .pr-modal .pr-form-card--modal h2 { max-width: none; font-size: 2rem; padding-right: 42px; white-space: normal; }
  .pr-modal .pr-form-row--secondary .pr-field label { min-height: 0; }
  .pr-modal-close { top: 10px; right: 10px; }
  .pr-hero-facts { position: static; width: 100%; flex: 0 0 auto; background: rgba(8,8,8,.72); }
  .pr-hero-facts-inner { width: 100%; grid-template-columns: 1fr 1fr; }
  .pr-hero-fact { min-height: 76px; padding: 14px 18px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
  .pr-hero-fact:first-child { padding-left: 18px; }
  .pr-hero-fact:nth-child(2n) { border-right: 0; }
  .pr-hero-fact:nth-last-child(-n+2) { border-bottom: 0; }
  .pr-hero-fact strong { font-size: 1.35rem; }
  .pr-hero-fact span { margin-top: 3px; font-size: .74rem; }
  .pr-facts-grid, .pr-footer-grid { grid-template-columns: 1fr; }
  .pr-infrastructure-board { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .pr-infrastructure-card { min-height: 118px; }
  .pr-fact { border-right: 0; border-bottom: 1px solid var(--pr-line); }
  .pr-fact:last-child { border-bottom: 0; }
}

@media (max-width: 420px) {
  .pr-hero-stage { min-height: max(740px, calc(100svh - 66px)); }
  .pr-hero-stage-inner { width: calc(100% - 30px); padding-bottom: 26px; }
  .pr-hero h1 { font-size: clamp(1.95rem, 9.6vw, 2.35rem); }
  .pr-hero-actions .pr-button { width: 100%; }

  .pr-infrastructure-board { grid-template-columns: 1fr; }
  .pr-infrastructure-intro { grid-column: auto; }
  .pr-infrastructure-card { min-height: 98px; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-infrastructure-card, .pr-infrastructure-card::before, .pr-infrastructure-card::after, .pr-text-link span { transition: none; }
  .pr-infrastructure-card:hover { transform: none; }
}


/* v0.1.9: stronger post-hero property and resort sections. */
.pr-property-showcase {
  padding: clamp(72px, 7vw, 112px) 0;
  background: #f7f6f2;
  border-bottom: 1px solid var(--pr-line);
}
.pr-property-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
  gap: clamp(42px, 6vw, 88px);
  align-items: center;
}
.pr-property-media {
  position: relative;
  margin: 0;
  min-height: 520px;
  overflow: hidden;
  background: #ddd8cd;
}
.pr-property-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .7s ease;
}
.pr-property-media:hover img { transform: scale(1.018); }
.pr-property-media::after {
  content: '';
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.56));
  pointer-events: none;
}
.pr-property-media figcaption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 20px;
  z-index: 1;
  color: rgba(255,255,255,.84);
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.pr-property-copy { max-width: 510px; }
.pr-property-copy .pr-eyebrow { color: var(--pr-gold-text); margin-bottom: 12px; }
.pr-property-copy h2 {
  margin-bottom: 20px;
  font-size: clamp(2.25rem, 3.6vw, 4rem);
  line-height: .98;
}
.pr-property-lead {
  margin: 0;
  color: #4f4f4f;
  font-size: clamp(1.02rem, 1.1vw, 1.16rem);
  line-height: 1.62;
}
.pr-property-points {
  list-style: none;
  padding: 0;
  margin: 28px 0 30px;
  border-top: 1px solid #d7d3ca;
}
.pr-property-points li {
  position: relative;
  padding: 13px 0 13px 21px;
  border-bottom: 1px solid #d7d3ca;
  color: #292929;
  font-size: .93rem;
}
.pr-property-points li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20px;
  width: 7px;
  height: 7px;
  background: var(--pr-gold);
}

.pr-resort {
  padding: clamp(78px, 7.5vw, 124px) 0;
  background: #0d0d0d;
  color: #fff;
}
.pr-resort-head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .65fr);
  justify-content: space-between;
  gap: 48px;
  align-items: end;
  margin-bottom: clamp(34px, 4vw, 56px);
}
.pr-resort-head .pr-eyebrow { margin-bottom: 10px; }
.pr-resort-head h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.4rem, 4.2vw, 4.5rem);
  line-height: .96;
}
.pr-resort-head > p {
  max-width: 48ch;
  margin: 0 0 4px auto;
  color: rgba(255,255,255,.66);
  font-size: clamp(1rem, 1.08vw, 1.12rem);
  line-height: 1.6;
}
.pr-resort-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.pr-resort-card {
  position: relative;
  min-height: clamp(260px, 24vw, 370px);
  overflow: hidden;
  background: #181818;
}
.pr-resort-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s ease, filter .35s ease;
}
.pr-resort-card-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.76) 100%);
}
.pr-resort-card h3 {
  position: absolute;
  z-index: 1;
  left: clamp(20px, 2vw, 30px);
  right: 20px;
  bottom: clamp(18px, 2vw, 28px);
  margin: 0;
  color: #fff;
  font-size: clamp(1.25rem, 1.55vw, 1.7rem);
  font-weight: 500;
  letter-spacing: -.02em;
}
.pr-resort-card:hover img { transform: scale(1.035); filter: brightness(1.04); }
.pr-resort-more {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 28px;
  margin-top: 38px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.18);
}
.pr-resort-more > span {
  color: var(--pr-gold);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pr-resort-more ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 0;
  list-style: none;
  padding: 0;
  margin: 0;
}
.pr-resort-more li {
  color: rgba(255,255,255,.82);
  font-size: .94rem;
}
.pr-resort-more li:not(:last-child)::after {
  content: '·';
  display: inline-block;
  margin: 0 12px;
  color: rgba(255,255,255,.32);
}

@media (max-width: 980px) {
  .pr-property-layout { grid-template-columns: 1fr; }
  .pr-property-copy { max-width: 720px; }
  .pr-property-media { min-height: clamp(390px, 62vw, 560px); }
  .pr-resort-head { grid-template-columns: 1fr; gap: 16px; }
  .pr-resort-head > p { margin-left: 0; }
  .pr-resort-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pr-resort-more { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 620px) {
  .pr-property-showcase { padding: 56px 0 64px; }
  .pr-property-layout { gap: 32px; }
  .pr-property-media { min-height: 330px; margin-inline: calc(var(--pr-gutter) * -1); }
  .pr-property-media figcaption { left: 18px; right: 18px; bottom: 14px; font-size: .68rem; }
  .pr-property-copy h2 { font-size: clamp(2.05rem, 10vw, 2.7rem); }
  .pr-resort { padding: 64px 0 72px; }
  .pr-resort-grid { grid-template-columns: 1fr; gap: 10px; }
  .pr-resort-card { min-height: 260px; }
  .pr-resort-card h3 { font-size: 1.35rem; }
  .pr-resort-more { margin-top: 28px; padding-top: 22px; }
  .pr-resort-more ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
  .pr-resort-more li:not(:last-child)::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-property-media img, .pr-resort-card img { transition: none; }
  .pr-property-media:hover img, .pr-resort-card:hover img { transform: none; }
}

/* v0.2.0: heading hierarchy + editorial property slider. */
:root {
  --pr-h1: clamp(2.55rem, 3.4vw, 3.65rem);
  --pr-h2: clamp(1.95rem, 2.75vw, 2.9rem);
  --pr-h3: clamp(1.15rem, 1.6vw, 1.45rem);
}

h1 { font-size: var(--pr-h1); }
h2 { font-size: var(--pr-h2); }
h3 { font-size: var(--pr-h3); }
.pr-hero h1 { font-size: var(--pr-h1); }
.pr-property-copy h2,
.pr-resort-head h2,
.pr-infrastructure-intro h2 {
  font-size: var(--pr-h2);
  line-height: 1.02;
}

.pr-property-showcase {
  padding: clamp(82px, 8vw, 132px) 0;
  background: #f4f2ec;
}
.pr-property-layout {
  grid-template-columns: minmax(0, 1.18fr) minmax(360px, .82fr);
  gap: clamp(48px, 6vw, 96px);
  align-items: center;
}
.pr-property-copy { max-width: 520px; }
.pr-property-copy h2 { margin-bottom: 22px; }

.pr-property-slider {
  position: relative;
  min-width: 0;
}
.pr-property-slider-viewport {
  position: relative;
  aspect-ratio: 1.36 / 1;
  overflow: hidden;
  background: #d9d4c9;
  border-radius: 6px;
  box-shadow: 0 28px 70px rgba(27, 24, 17, .16);
  isolation: isolate;
}
.pr-property-slider-viewport::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 4;
  border: 1px solid rgba(255,255,255,.25);
  pointer-events: none;
}
.pr-property-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.035);
  transition: opacity .65s ease, transform 1.05s cubic-bezier(.2,.7,.2,1), visibility .65s linear;
}
.pr-property-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  z-index: 1;
}
.pr-property-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.pr-property-slider-vignette {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,.02) 38%, rgba(0,0,0,.55) 100%),
    linear-gradient(90deg, rgba(0,0,0,.14), transparent 38%);
}
.pr-property-slider-meta {
  position: absolute;
  z-index: 3;
  left: clamp(18px, 2.2vw, 30px);
  right: clamp(18px, 2.2vw, 30px);
  bottom: clamp(18px, 2.2vw, 28px);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  color: #fff;
  pointer-events: none;
}
.pr-property-slider-label {
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.pr-property-slider-count {
  margin-right: 92px;
  font-size: .72rem;
  letter-spacing: .08em;
  color: rgba(255,255,255,.78);
}
.pr-property-slider-controls {
  position: absolute;
  right: clamp(16px, 2vw, 24px);
  bottom: clamp(14px, 1.8vw, 20px);
  z-index: 5;
  display: flex;
  gap: 7px;
}
.pr-slider-button {
  width: 38px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 4px;
  background: rgba(12,12,12,.34);
  color: #fff;
  font: inherit;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(7px);
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.pr-slider-button:hover,
.pr-slider-button:focus-visible {
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
  color: #111;
  transform: translateY(-1px);
}
.pr-property-slider-progress {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 10px;
}
.pr-property-slider-progress span {
  height: 2px;
  background: #d4d0c5;
  transition: background-color .3s ease, transform .3s ease;
  transform-origin: left center;
}
.pr-property-slider-progress span.is-active {
  background: var(--pr-gold-deep);
  transform: scaleY(1.5);
}

/* Added by JS only, so the section remains usable if JS is unavailable. */
.pr-property-slider.is-reveal-pending {
  opacity: 0;
  transform: translateY(34px);
  clip-path: inset(0 0 8% 0 round 6px);
}
.pr-property-slider.is-revealed {
  opacity: 1;
  transform: translateY(0);
  clip-path: inset(0 0 0 0 round 6px);
  transition: opacity .75s ease, transform .8s cubic-bezier(.2,.7,.2,1), clip-path .9s cubic-bezier(.2,.7,.2,1);
}
.pr-property-copy.is-reveal-pending {
  opacity: 0;
  transform: translateY(24px);
}
.pr-property-copy.is-revealed {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .65s ease .12s, transform .72s cubic-bezier(.2,.7,.2,1) .12s;
}

@media (max-width: 980px) {
  .pr-property-layout { grid-template-columns: 1fr; }
  .pr-property-slider { max-width: 820px; }
  .pr-property-slider-viewport { aspect-ratio: 16 / 10; }
  .pr-property-copy { max-width: 700px; }
}

@media (max-width: 620px) {
  :root {
    --pr-h1: clamp(2.05rem, 9.3vw, 2.65rem);
    --pr-h2: clamp(1.8rem, 8vw, 2.25rem);
    --pr-h3: clamp(1.1rem, 5vw, 1.3rem);
  }
  .pr-property-showcase { padding: 58px 0 68px; }
  .pr-property-layout { gap: 34px; }
  .pr-property-slider { margin-inline: calc(var(--pr-gutter) * -1); }
  .pr-property-slider-viewport { aspect-ratio: 1.08 / 1; border-radius: 0; box-shadow: none; }
  .pr-property-slider-label { font-size: .66rem; }
  .pr-property-slider-count { margin-right: 84px; }
  .pr-property-slider-progress { margin-inline: 0; }
  .pr-property-copy h2 { font-size: var(--pr-h2); }
  .pr-resort-head h2 { font-size: var(--pr-h2); }
}

@media (prefers-reduced-motion: reduce) {
  .pr-property-slide,
  .pr-property-slider,
  .pr-property-copy,
  .pr-slider-button,
  .pr-property-slider-progress span {
    transition: none !important;
  }
  .pr-property-slider.is-reveal-pending,
  .pr-property-copy.is-reveal-pending {
    opacity: 1;
    transform: none;
    clip-path: none;
  }
}


/* v0.2.1: property section alignment pass. */
.pr-property-layout {
  align-items: stretch;
}
.pr-property-media-column,
.pr-property-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.pr-property-media-eyebrow,
.pr-property-copy > .pr-eyebrow {
  margin: 0 0 14px;
  min-height: 1em;
  color: var(--pr-gold-text);
}
.pr-property-slider {
  flex: 1 1 auto;
}
.pr-property-copy {
  max-width: 560px;
}
.pr-property-copy h2 {
  font-size: clamp(2.05rem, 2.35vw, 2.55rem);
  line-height: 1.04;
  max-width: 560px;
  margin-bottom: 22px;
}
.pr-property-cta {
  margin-top: auto;
  align-self: flex-start;
}
.pr-property-slider-meta {
  justify-content: flex-end;
}
.pr-property-slider-count {
  margin-right: 92px;
}

@media (max-width: 1100px) {
  .pr-property-copy h2 {
    font-size: clamp(2rem, 3.4vw, 2.4rem);
  }
}

@media (max-width: 980px) {
  .pr-property-media-column { order: 1; }
  .pr-property-copy { order: 2; }
  .pr-property-copy h2 { max-width: 680px; }
  .pr-property-cta { margin-top: 8px; }
}

@media (max-width: 620px) {
  .pr-property-media-eyebrow,
  .pr-property-copy > .pr-eyebrow {
    margin-bottom: 10px;
  }
  .pr-property-copy h2 {
    font-size: clamp(1.85rem, 8vw, 2.2rem);
  }
}


/* v0.2.2: property slider symmetry pass. */
.pr-property-slider {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.pr-property-slider-viewport {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  aspect-ratio: auto;
}
.pr-property-slider-progress {
  position: absolute;
  z-index: 6;
  left: clamp(18px, 2.2vw, 30px);
  bottom: clamp(20px, 2vw, 26px);
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  pointer-events: none;
}
.pr-property-slider-progress span {
  display: block;
  width: 18px;
  height: 2px;
  flex: 0 0 auto;
  background: rgba(255,255,255,.48);
  transform: none;
  transition: width .28s ease, background-color .28s ease, opacity .28s ease;
}
.pr-property-slider-progress span.is-active {
  width: 32px;
  background: var(--pr-gold);
  transform: none;
}
.pr-property-slider-meta {
  left: auto;
  right: clamp(18px, 2.2vw, 30px);
  bottom: clamp(22px, 2.1vw, 28px);
  width: auto;
}
.pr-property-slider-count {
  margin-right: 88px;
  color: rgba(255,255,255,.9);
}

@media (min-width: 981px) {
  .pr-property-layout {
    align-items: stretch;
  }
  .pr-property-media-column,
  .pr-property-copy {
    height: 100%;
  }
  .pr-property-slider {
    flex: 1 1 0;
  }
  .pr-property-slider-viewport {
    height: 100%;
    min-height: 500px;
  }
}

@media (max-width: 980px) {
  .pr-property-slider-viewport {
    aspect-ratio: 16 / 10;
    min-height: auto;
  }
}

@media (max-width: 620px) {
  .pr-property-slider-viewport {
    aspect-ratio: 1.08 / 1;
  }
  .pr-property-slider-progress {
    left: 18px;
    bottom: 18px;
    gap: 5px;
  }
  .pr-property-slider-progress span { width: 13px; }
  .pr-property-slider-progress span.is-active { width: 23px; }
}


/* Projected performance: two-stage presentation so headline numbers keep context without becoming a spreadsheet. */
.pr-investment--headline {
  padding-block: clamp(76px, 8vw, 126px);
  background: #111;
  color: var(--pr-white);
}
.pr-investment--headline .pr-eyebrow { color: var(--pr-gold); }
.pr-investment-feature {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  gap: clamp(50px, 7vw, 110px);
  align-items: stretch;
}
.pr-investment-feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pr-investment-feature-copy h2 {
  max-width: 15ch;
  margin-bottom: 20px;
  color: var(--pr-white);
}
.pr-investment-feature-copy > p:not(.pr-eyebrow):not(.pr-investment-source) {
  max-width: 55ch;
  margin: 0 0 24px;
  color: rgba(255,255,255,.7);
  font-size: 1rem;
}
.pr-investment-scenario {
  align-self: flex-start;
  margin: 0 0 28px;
  padding: 9px 12px;
  border: 1px solid rgba(203,160,82,.55);
  border-radius: 999px;
  color: var(--pr-gold);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pr-investment-source {
  max-width: 48ch;
  margin: auto 0 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.58);
  font-size: .78rem;
  line-height: 1.55;
}
.pr-investment-feature-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.025);
}
.pr-investment-feature-metric {
  position: relative;
  padding: clamp(30px, 4vw, 54px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}
.pr-investment-feature-metric + .pr-investment-feature-metric {
  border-left: 1px solid rgba(255,255,255,.16);
}
.pr-investment-feature-metric::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 68px;
  height: 3px;
  background: var(--pr-gold);
}
.pr-investment-feature-metric strong {
  display: block;
  margin-bottom: 14px;
  color: var(--pr-gold);
  font-size: clamp(4.4rem, 7vw, 7rem);
  font-weight: 600;
  line-height: .9;
  letter-spacing: -.06em;
}
.pr-investment-feature-metric span {
  color: var(--pr-white);
  font-size: clamp(1rem, 1.3vw, 1.18rem);
}

.pr-model-context {
  padding-block: clamp(72px, 7vw, 112px);
  background: var(--pr-bg);
  color: var(--pr-ink);
}
.pr-model-head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(40px, 7vw, 100px);
  align-items: end;
  padding-bottom: clamp(28px, 4vw, 46px);
  border-bottom: 1px solid var(--pr-line);
}
.pr-model-head h2 {
  max-width: 16ch;
  margin-bottom: 0;
}
.pr-model-head > p {
  max-width: 62ch;
  margin: 0 0 4px;
  color: var(--pr-muted);
}
.pr-model-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--pr-line);
}
.pr-model-stat {
  min-height: 176px;
  padding: clamp(26px, 3.2vw, 44px) clamp(20px, 2.4vw, 34px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-right: 1px solid var(--pr-line);
}
.pr-model-stat:first-child { padding-left: 0; }
.pr-model-stat:last-child { border-right: 0; }
.pr-model-stat strong {
  display: block;
  margin-bottom: 9px;
  font-size: clamp(2.6rem, 4vw, 4.35rem);
  line-height: .95;
  letter-spacing: -.05em;
  font-weight: 600;
}
.pr-model-stat span {
  max-width: 18ch;
  color: var(--pr-muted);
  font-size: .9rem;
  line-height: 1.4;
}
.pr-model-detail {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(42px, 7vw, 100px);
  padding-top: clamp(36px, 5vw, 64px);
}
.pr-investment-kicker {
  margin: 0 0 16px;
  color: var(--pr-ink);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pr-model-assumptions ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--pr-line);
}
.pr-model-assumptions li {
  position: relative;
  padding: 12px 0 12px 18px;
  border-bottom: 1px solid var(--pr-line);
  color: #444;
  font-size: .9rem;
}
.pr-model-assumptions li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 19px;
  width: 5px;
  height: 5px;
  background: var(--pr-gold);
}
.pr-model-notes {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.pr-model-disclaimer {
  margin: 0;
  padding: 20px 22px;
  border-left: 3px solid var(--pr-gold);
  background: #fff;
  color: #555;
  font-size: .82rem;
  line-height: 1.6;
}
.pr-model-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 24px;
  align-items: center;
  margin-top: 26px;
}

@media (max-width: 1040px) {
  .pr-investment-feature { grid-template-columns: 1fr; }
  .pr-investment-feature-copy { max-width: 760px; }
  .pr-investment-feature-metrics { min-height: 320px; }
  .pr-investment-source { margin-top: 0; }
}

@media (max-width: 760px) {
  .pr-model-head,
  .pr-model-detail { grid-template-columns: 1fr; }
  .pr-model-stats { grid-template-columns: 1fr; }
  .pr-model-stat,
  .pr-model-stat:first-child { min-height: 118px; padding: 22px 0; border-right: 0; }
  .pr-model-stat + .pr-model-stat { border-top: 1px solid var(--pr-line); }
}

@media (max-width: 620px) {
  .pr-hero-fact { min-height: 84px; padding: 14px 14px; gap: 10px; }
  .pr-hero-fact:first-child { padding-left: 14px; }
  .pr-hero-fact-icon { width: 34px; height: 34px; flex-basis: 34px; }
  .pr-hero-fact-icon svg { width: 19px; height: 19px; }
  .pr-hero-fact strong { font-size: 1.05rem; }
  .pr-hero-fact-copy > span { font-size: .69rem; }

  .pr-investment-feature-metrics { grid-template-columns: 1fr; min-height: 0; }
  .pr-investment-feature-metric { min-height: 210px; padding: 30px 24px; }
  .pr-investment-feature-metric + .pr-investment-feature-metric { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .pr-investment-feature-metric strong { font-size: clamp(4rem, 22vw, 5.8rem); }
  .pr-model-actions { display: grid; grid-template-columns: 1fr; }
  .pr-model-actions .pr-button { width: 100%; }
}

/* v0.2.5: short landing-page shell + floating contact/investment dock. */
.pr-site-footer--minimal {
  padding: 20px 0;
  background: #0c0c0c;
  border-top: 1px solid rgba(255,255,255,.1);
}
.pr-footer-minimal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font-size: .76rem;
  line-height: 1.45;
}
.pr-footer-minimal-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  color: rgba(255,255,255,.6);
}
.pr-footer-minimal-contact strong { color: #fff; font-weight: 650; }
.pr-footer-minimal-contact a { text-decoration: none; color: rgba(255,255,255,.78); }
.pr-footer-minimal-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 16px;
}
.pr-footer-minimal-links a {
  color: rgba(255,255,255,.62);
  text-decoration: none;
}
.pr-footer-minimal a:hover,
.pr-footer-minimal a:focus-visible { color: #fff; }

.pr-contact-dock {
  position: fixed;
  right: clamp(18px, 2.4vw, 34px);
  bottom: clamp(18px, 2.4vw, 34px);
  z-index: 120;
  display: grid;
  grid-template-columns: auto 56px;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}
.pr-contact-dock > * { pointer-events: auto; }
.pr-contact-dock-invest,
.pr-contact-dock-toggle,
.pr-contact-dock-action {
  border: 0;
  box-shadow: 0 12px 34px rgba(0,0,0,.23);
}
.pr-contact-dock-invest {
  min-height: 56px;
  padding: 0 25px;
  border-radius: 999px;
  background: var(--pr-gold);
  color: #111;
  font-size: .88rem;
  font-weight: 750;
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.pr-contact-dock-invest:hover,
.pr-contact-dock-invest:focus-visible {
  background: var(--pr-gold-light);
  transform: translateY(-1px);
  box-shadow: 0 16px 38px rgba(0,0,0,.28);
}
.pr-contact-dock-toggle,
.pr-contact-dock-action {
  width: 56px;
  height: 56px;
  min-height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-decoration: none;
}
.pr-contact-dock-toggle {
  position: relative;
  background: #111;
  color: #fff;
  border: 1px solid rgba(203,160,82,.7);
  cursor: pointer;
}
.pr-contact-dock-toggle-bars {
  width: 20px;
  display: grid;
  gap: 4px;
}
.pr-contact-dock-toggle-bars i {
  display: block;
  height: 1.5px;
  background: currentColor;
}
.pr-contact-dock-toggle-close {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: rotate(-30deg) scale(.7);
  font-size: 1.7rem;
  line-height: 1;
  transition: opacity .18s ease, transform .18s ease;
}
.pr-contact-dock-toggle-bars {
  transition: opacity .18s ease, transform .18s ease;
}
.pr-contact-dock.is-open .pr-contact-dock-toggle-bars {
  opacity: 0;
  transform: rotate(30deg) scale(.7);
}
.pr-contact-dock.is-open .pr-contact-dock-toggle-close {
  opacity: 1;
  transform: rotate(0) scale(1);
}
.pr-contact-dock-actions {
  position: absolute;
  right: 0;
  bottom: 68px;
  display: grid;
  gap: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(.96);
  transform-origin: bottom center;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.pr-contact-dock.is-open .pr-contact-dock-actions {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.pr-contact-dock-action {
  background: #111;
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  transition: transform .16s ease, background-color .16s ease, color .16s ease, border-color .16s ease;
}
.pr-contact-dock-action:hover,
.pr-contact-dock-action:focus-visible {
  transform: translateY(-2px);
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
  color: #111;
}
.pr-contact-dock-action svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}

@media (max-width: 760px) {
  .pr-footer-minimal {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }
  .pr-footer-minimal-contact {
    display: grid;
    gap: 3px;
  }
  .pr-footer-minimal-links { justify-content: flex-start; }

  .pr-contact-dock {
    left: 16px;
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 9px;
  }
  .pr-contact-dock-invest {
    width: 100%;
    min-height: 54px;
    padding-inline: 18px;
  }
  .pr-contact-dock-toggle,
  .pr-contact-dock-action {
    width: 54px;
    height: 54px;
    min-height: 54px;
  }
  .pr-contact-dock-actions { bottom: 64px; }
  .pr-site-footer--minimal { padding-bottom: 92px; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-contact-dock-invest,
  .pr-contact-dock-toggle-bars,
  .pr-contact-dock-toggle-close,
  .pr-contact-dock-actions,
  .pr-contact-dock-action { transition: none; }
}


/* v0.2.6: evidence-based investment case after resort infrastructure. */
.pr-investment-case {
  padding: clamp(78px, 8vw, 126px) 0;
  background: #f4f2ec;
  color: var(--pr-ink);
  border-top: 1px solid #dedad0;
}
.pr-investment-case-head {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr);
  gap: clamp(34px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(34px, 4vw, 56px);
}
.pr-investment-case-head .pr-eyebrow { margin-bottom: 11px; }
.pr-investment-case-head h2 {
  max-width: 760px;
  margin: 0;
  font-size: var(--pr-h2);
  line-height: 1.02;
  text-wrap: balance;
}
.pr-investment-case-head > p {
  max-width: 50ch;
  margin: 0 0 4px auto;
  color: #5f5d57;
  font-size: clamp(.98rem, 1.05vw, 1.1rem);
  line-height: 1.62;
}
.pr-investment-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #d4d0c6;
  border-bottom: 1px solid #d4d0c6;
}
.pr-investment-case-card {
  position: relative;
  min-height: 300px;
  padding: clamp(30px, 3.2vw, 48px);
  border-right: 1px solid #d4d0c6;
  overflow: hidden;
  background: rgba(255,255,255,.38);
}
.pr-investment-case-card:last-child { border-right: 0; }
.pr-investment-case-card::after {
  content: '';
  position: absolute;
  width: 150px;
  aspect-ratio: 1;
  right: -88px;
  bottom: -90px;
  border: 18px solid rgba(203,160,82,.10);
  transform: rotate(45deg);
  pointer-events: none;
}
.pr-investment-case-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin-bottom: clamp(36px, 5vw, 68px);
  border: 1px solid rgba(203,160,82,.56);
  border-radius: 50%;
  color: var(--pr-gold);
}
.pr-investment-case-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pr-investment-case-card > strong {
  display: block;
  margin-bottom: 8px;
  color: var(--pr-gold-text);
  font-size: clamp(3.4rem, 5vw, 5.4rem);
  line-height: .9;
  letter-spacing: -.06em;
}
.pr-investment-case-card h3 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(1.15rem, 1.35vw, 1.45rem);
  line-height: 1.15;
}
.pr-investment-case-card p {
  margin: 8px 0 0;
  color: #75716a;
  font-size: .8rem;
  letter-spacing: .025em;
}
.pr-investment-case-foot {
  display: grid;
  grid-template-columns: minmax(250px, .7fr) minmax(380px, 1.2fr) auto;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  margin-top: 30px;
}
.pr-investment-case-secondary {
  display: grid;
  gap: 7px;
  color: #4e4b45;
  font-size: .88rem;
}
.pr-investment-case-secondary strong {
  color: #111;
  font-size: 1rem;
}
.pr-investment-case-note {
  max-width: 680px;
  color: #66625b;
  font-size: .75rem;
  line-height: 1.55;
}
.pr-investment-case-note p { margin: 0; }
.pr-investment-case-note p + p { margin-top: 7px; }
.pr-investment-case-note strong { color: #292722; }
.pr-investment-case-foot .pr-button {
  white-space: nowrap;
  justify-self: end;
}

@media (max-width: 980px) {
  .pr-investment-case-head { grid-template-columns: 1fr; gap: 16px; }
  .pr-investment-case-head > p { margin-left: 0; }
  .pr-investment-case-foot { grid-template-columns: 1fr 1.4fr; }
  .pr-investment-case-foot .pr-button { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 700px) {
  .pr-investment-case { padding: 64px 0 72px; }
  .pr-investment-case-grid { grid-template-columns: 1fr; }
  .pr-investment-case-card { min-height: 220px; border-right: 0; border-bottom: 1px solid #d4d0c6; }
  .pr-investment-case-card:last-child { border-bottom: 0; }
  .pr-investment-case-icon { margin-bottom: 34px; }
  .pr-investment-case-card > strong { font-size: clamp(3.4rem, 17vw, 4.8rem); }
  .pr-investment-case-foot { grid-template-columns: 1fr; gap: 22px; }
  .pr-investment-case-foot .pr-button { grid-column: auto; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-investment-case-card::after { transition: none; }
}


/* v0.2.9: clearly visible, one-time scroll motion. Still lightweight and progressive-enhancement only. */
:root {
  --pr-motion-ease: cubic-bezier(.18,.74,.2,1);
  --pr-motion-duration: 880ms;
}

/* JS adds these classes after load, so content remains fully visible if JS fails. */
.pr-scroll-reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 56px, 0) scale(.972);
  transition:
    opacity 720ms ease,
    filter 760ms ease,
    transform var(--pr-motion-duration) var(--pr-motion-ease);
  transition-delay: var(--pr-motion-delay, 0ms);
  will-change: opacity, transform, filter;
}
.pr-scroll-reveal--left { transform: translate3d(-58px, 0, 0) scale(.985); }
.pr-scroll-reveal--right { transform: translate3d(58px, 0, 0) scale(.985); }
.pr-scroll-reveal--soft { transform: translate3d(0, 42px, 0) scale(.985); }

.pr-scroll-reveal--clip {
  opacity: 0;
  filter: blur(3px);
  transform: translate3d(0, 46px, 0) scale(.965);
  clip-path: inset(12% 0 12% 0 round 4px);
  transition:
    opacity 680ms ease,
    filter 720ms ease,
    transform 980ms var(--pr-motion-ease),
    clip-path 1050ms var(--pr-motion-ease);
  transition-delay: var(--pr-motion-delay, 0ms);
  will-change: opacity, transform, clip-path, filter;
}

.pr-scroll-reveal.is-in-view,
.pr-scroll-reveal--clip.is-in-view {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
  clip-path: inset(0 0 0 0 round 4px);
}

/* Investment cards visibly rise in sequence instead of merely fading. */
.pr-investment-case-card.pr-scroll-reveal {
  transform: translate3d(0, 64px, 0) scale(.955);
  box-shadow: 0 0 0 rgba(17,17,17,0);
  transition-property: opacity, filter, transform, background-color, box-shadow;
  transition-duration: 720ms, 760ms, 960ms, 280ms, 360ms;
  transition-timing-function: ease, ease, var(--pr-motion-ease), ease, ease;
}
.pr-investment-case-card.pr-scroll-reveal.is-in-view {
  transform: translate3d(0,0,0) scale(1);
}
@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card.pr-scroll-reveal.is-in-view:hover {
    transform: translate3d(0,-8px,0) scale(1.01);
    background: rgba(255,255,255,.78);
    box-shadow: 0 24px 52px rgba(40,34,17,.10);
    z-index: 2;
  }
}
.pr-investment-case-icon {
  transform: rotate(-8deg) scale(.88);
  transition: transform .62s var(--pr-motion-ease), background-color .3s ease, color .3s ease;
}
.pr-investment-case-card.is-in-view .pr-investment-case-icon {
  transform: rotate(0deg) scale(1);
}

/* Resort images have a noticeable masked reveal and settle from a close crop. */
.pr-resort-card.pr-scroll-reveal--clip img {
  transform: scale(1.13);
  filter: brightness(.76) saturate(.82);
  transition: transform 1.35s var(--pr-motion-ease), filter .8s ease;
}
.pr-resort-card.pr-scroll-reveal--clip.is-in-view img {
  transform: scale(1);
  filter: brightness(1) saturate(1);
}
@media (hover:hover) and (pointer:fine) {
  .pr-resort-card.pr-scroll-reveal--clip.is-in-view:hover img {
    transform: scale(1.055);
    filter: brightness(1.04) saturate(1.04);
  }
}
.pr-resort-card h3 {
  transform: translateY(10px);
  transition: transform .55s var(--pr-motion-ease), color .3s ease;
}
.pr-resort-card.is-in-view h3 { transform: translateY(0); }
@media (hover:hover) and (pointer:fine) {
  .pr-resort-card:hover h3 { transform: translateY(-4px); color: var(--pr-gold-light); }
}

/* Property slider gets a real masked entrance instead of a near-invisible fade. */
.pr-property-slider.is-reveal-pending {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 54px, 0) scale(.96);
  clip-path: inset(8% 5% 8% 5% round 8px);
}
.pr-property-slider.is-revealed {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0,0,0) scale(1);
  clip-path: inset(0 0 0 0 round 6px);
  transition:
    opacity 720ms ease,
    filter 780ms ease,
    transform 1050ms var(--pr-motion-ease),
    clip-path 1100ms var(--pr-motion-ease);
}
.pr-property-slider.is-reveal-pending .pr-property-slide.is-active img {
  transform: scale(1.12);
}
.pr-property-slider.is-revealed .pr-property-slide.is-active img {
  transform: scale(1);
  transition: transform 1.45s var(--pr-motion-ease);
}
.pr-property-copy.is-reveal-pending {
  opacity: 0;
  filter: blur(4px);
  transform: translate3d(48px, 0, 0);
}
.pr-property-copy.is-revealed {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0,0,0);
  transition: opacity 720ms ease 120ms, filter 760ms ease 120ms, transform 920ms var(--pr-motion-ease) 120ms;
}
.pr-property-media-eyebrow.pr-scroll-reveal { transform: translate3d(0, 24px, 0); }

/* Gold rule draws in after the text arrives. */
.pr-investment-case-head .pr-eyebrow,
.pr-resort-head .pr-eyebrow,
.pr-property-media-eyebrow,
.pr-property-copy > .pr-eyebrow { position: relative; }
.pr-investment-case-head .pr-eyebrow::after,
.pr-resort-head .pr-eyebrow::after,
.pr-property-media-eyebrow::after,
.pr-property-copy > .pr-eyebrow::after {
  content: '';
  display: inline-block;
  width: 34px;
  height: 2px;
  margin-left: 11px;
  vertical-align: middle;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 760ms var(--pr-motion-ease) 260ms;
  opacity: .8;
}
.is-in-view .pr-eyebrow::after,
.pr-eyebrow.is-in-view::after,
.pr-property-copy.is-revealed > .pr-eyebrow::after { transform: scaleX(1); }

@media (max-width: 700px) {
  :root { --pr-motion-duration: 720ms; }
  .pr-scroll-reveal,
  .pr-scroll-reveal--left,
  .pr-scroll-reveal--right,
  .pr-scroll-reveal--soft {
    transform: translate3d(0, 34px, 0) scale(.982);
    filter: blur(3px);
  }
  .pr-scroll-reveal--clip { transform: translate3d(0, 32px, 0) scale(.975); }
  .pr-scroll-reveal.is-in-view,
  .pr-scroll-reveal--clip.is-in-view { transform: translate3d(0,0,0) scale(1); filter: blur(0); }
  .pr-property-copy.is-reveal-pending { transform: translate3d(0, 34px, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .pr-scroll-reveal,
  .pr-scroll-reveal--clip,
  .pr-investment-case-card.pr-scroll-reveal,
  .pr-resort-card.pr-scroll-reveal--clip,
  .pr-resort-card.pr-scroll-reveal--clip img,
  .pr-property-slider.is-reveal-pending,
  .pr-property-slider.is-revealed,
  .pr-property-slider.is-reveal-pending .pr-property-slide.is-active img,
  .pr-property-slider.is-revealed .pr-property-slide.is-active img,
  .pr-property-copy.is-reveal-pending,
  .pr-property-copy.is-revealed,
  .pr-investment-case-icon,
  .pr-resort-card h3,
  .pr-eyebrow::after {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    filter: none !important;
    transition: none !important;
  }
}



/* =========================================================
   v0.3.0 — robust motion system
   Keyframe entrances do not rely on a pre-painted hidden state.
   ========================================================= */

@keyframes pr-v030-reveal-up {
  0% {
    opacity: 0;
    transform: translate3d(0, 72px, 0) scale(.955);
    filter: blur(8px);
  }
  55% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }
}

@keyframes pr-v030-reveal-left {
  0% {
    opacity: 0;
    transform: translate3d(-76px, 0, 0) scale(.97);
    filter: blur(7px);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }
}

@keyframes pr-v030-reveal-right {
  0% {
    opacity: 0;
    transform: translate3d(76px, 0, 0) scale(.97);
    filter: blur(7px);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }
}

@keyframes pr-v030-card-in {
  0% {
    opacity: 0;
    transform: translate3d(0, 88px, 0) scale(.93);
  }
  65% {
    opacity: 1;
    transform: translate3d(0, -5px, 0) scale(1.006);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes pr-v030-image-wipe {
  0% {
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transform: translate3d(0, 52px, 0) scale(1.06);
    filter: brightness(.65) saturate(.72);
  }
  45% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0) scale(1);
    filter: brightness(1) saturate(1);
  }
}

/* v0.2.9 utility classes become neutral so they cannot suppress the new motion. */
.pr-scroll-reveal,
.pr-scroll-reveal--left,
.pr-scroll-reveal--right,
.pr-scroll-reveal--soft,
.pr-scroll-reveal--clip,
.pr-scroll-reveal.is-in-view,
.pr-scroll-reveal--clip.is-in-view {
  opacity: 1;
  filter: none;
  transform: none;
  clip-path: none;
  transition: none;
  will-change: auto;
}

/* JS applies these only when an element actually reaches the viewport. */
.pr-v030-animate-up    { animation: pr-v030-reveal-up 920ms cubic-bezier(.16,.78,.22,1) both; }
.pr-v030-animate-left  { animation: pr-v030-reveal-left 900ms cubic-bezier(.16,.78,.22,1) both; }
.pr-v030-animate-right { animation: pr-v030-reveal-right 900ms cubic-bezier(.16,.78,.22,1) both; }
.pr-v030-animate-card  { animation: pr-v030-card-in 940ms cubic-bezier(.16,.78,.22,1) both; }
.pr-v030-animate-image { animation: pr-v030-image-wipe 1120ms cubic-bezier(.16,.78,.22,1) both; }

.pr-v030-delay-1 { animation-delay: 110ms; }
.pr-v030-delay-2 { animation-delay: 220ms; }
.pr-v030-delay-3 { animation-delay: 330ms; }
.pr-v030-delay-4 { animation-delay: 440ms; }
.pr-v030-delay-5 { animation-delay: 550ms; }

/* Continuous, subtle scroll motion. JS writes --pr-parallax-y.
   The image remains slightly oversized so translated edges never expose gaps. */
.pr-resort-card img,
.pr-property-slide img {
  --pr-parallax-y: 0px;
  transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.07);
  transition: filter .35s ease;
  will-change: transform;
}

.pr-resort-card:hover img {
  filter: brightness(1.06) saturate(1.06);
}

/* Slider container gets a visible entrance, while its image can still parallax afterward. */
.pr-property-slider.pr-v030-animate-image {
  overflow: hidden;
}

/* A small gold sweep beneath section eyebrows. */
.pr-v030-line {
  position: relative;
}
.pr-v030-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  width: 58px;
  height: 2px;
  background: var(--pr-gold);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 760ms cubic-bezier(.16,.78,.22,1) 260ms;
}
.pr-v030-line.pr-v030-line-on::after {
  transform: scaleX(1);
}

@media (max-width: 700px) {
  .pr-v030-animate-up,
  .pr-v030-animate-left,
  .pr-v030-animate-right,
  .pr-v030-animate-card,
  .pr-v030-animate-image {
    animation-duration: 720ms;
  }

  .pr-resort-card img,
  .pr-property-slide img {
    transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.045);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-v030-animate-up,
  .pr-v030-animate-left,
  .pr-v030-animate-right,
  .pr-v030-animate-card,
  .pr-v030-animate-image {
    animation: none !important;
  }

  .pr-resort-card img,
  .pr-property-slide img {
    transform: none !important;
  }

  .pr-v030-line::after {
    transform: scaleX(1) !important;
    transition: none !important;
  }
}


/* =========================================================
   v0.3.2 — refined premium motion + unified CTA hover
   ========================================================= */

/* Elegant motion: shorter travel, almost no blur, no bounce/overshoot. */
@keyframes pr-v030-reveal-up {
  0% {
    opacity: 0;
    transform: translate3d(0, 26px, 0) scale(.992);
    filter: blur(2px);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }
}

@keyframes pr-v030-reveal-left {
  0% {
    opacity: 0;
    transform: translate3d(-30px, 0, 0);
    filter: blur(2px);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
  }
}

@keyframes pr-v030-reveal-right {
  0% {
    opacity: 0;
    transform: translate3d(30px, 0, 0);
    filter: blur(2px);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
  }
}

@keyframes pr-v030-card-in {
  0% {
    opacity: 0;
    transform: translate3d(0, 30px, 0) scale(.988);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes pr-v030-image-wipe {
  0% {
    opacity: 0;
    clip-path: inset(0 0 12% 0);
    transform: translate3d(0, 20px, 0) scale(1.025);
    filter: brightness(.9) saturate(.94);
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0) scale(1);
    filter: brightness(1) saturate(1);
  }
}

.pr-v030-animate-up    { animation-duration: 720ms; animation-timing-function: cubic-bezier(.22,.61,.36,1); }
.pr-v030-animate-left  { animation-duration: 680ms; animation-timing-function: cubic-bezier(.22,.61,.36,1); }
.pr-v030-animate-right { animation-duration: 680ms; animation-timing-function: cubic-bezier(.22,.61,.36,1); }
.pr-v030-animate-card  { animation-duration: 720ms; animation-timing-function: cubic-bezier(.22,.61,.36,1); }
.pr-v030-animate-image { animation-duration: 840ms; animation-timing-function: cubic-bezier(.22,.61,.36,1); }

.pr-v030-delay-1 { animation-delay: 70ms; }
.pr-v030-delay-2 { animation-delay: 140ms; }
.pr-v030-delay-3 { animation-delay: 210ms; }
.pr-v030-delay-4 { animation-delay: 280ms; }
.pr-v030-delay-5 { animation-delay: 350ms; }

/* Keep scroll motion subtle: enough depth to feel modern, not enough to look theatrical. */
.pr-resort-card img,
.pr-property-slide img {
  transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.025);
}

@media (max-width: 700px) {
  .pr-v030-animate-up,
  .pr-v030-animate-left,
  .pr-v030-animate-right,
  .pr-v030-animate-card {
    animation-duration: 620ms;
  }

  .pr-v030-animate-image {
    animation-duration: 720ms;
  }

  .pr-resort-card img,
  .pr-property-slide img {
    transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.02);
  }
}

/* Same hover language as the floating Investment Details CTA. */
.pr-button {
  transition:
    transform .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

.pr-button:hover,
.pr-button:focus-visible {
  filter: none;
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
  color: #111;
  transform: translateY(-1px);
  box-shadow: 0 16px 38px rgba(0,0,0,.28);
}

/* Keep pressed state tactile and restrained. */
.pr-button:active {
  transform: translateY(0);
  box-shadow: 0 10px 24px rgba(0,0,0,.20);
}

@media (prefers-reduced-motion: reduce) {
  .pr-button {
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
  }
  .pr-button:hover,
  .pr-button:focus-visible,
  .pr-button:active {
    transform: none;
  }
}


/* =========================================================
   v0.3.3 — stable one-pass reveal system
   Elements are armed before they enter view, so there is no
   visible -> hidden -> visible flash.
   ========================================================= */

/* Neutralize v0.3.0/v0.3.2 keyframe classes if any remain in markup/JS history. */
.pr-v030-animate-up,
.pr-v030-animate-left,
.pr-v030-animate-right,
.pr-v030-animate-card,
.pr-v030-animate-image {
  animation: none !important;
}

/* Base armed state. JS applies this before observation. */
.pr-motion-item {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 560ms ease,
    transform 680ms cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--pr-motion-delay, 0ms);
  will-change: opacity, transform;
}

/* Directional variants remain subtle. */
.pr-motion-item--left  { transform: translate3d(-26px, 0, 0); }
.pr-motion-item--right { transform: translate3d(26px, 0, 0); }

/* Image/card reveal gets only a small scale settle. */
.pr-motion-item--visual {
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(.985);
  transition:
    opacity 600ms ease,
    transform 760ms cubic-bezier(.22,.61,.36,1);
}

/* Final state. */
.pr-motion-item.is-in-view,
.pr-motion-item--visual.is-in-view {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}

/* Keep image motion elegant and independent from reveal transform. */
.pr-resort-card img,
.pr-property-slide img {
  --pr-parallax-y: 0px;
  transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.018);
  transition: filter .3s ease;
}

/* No extra transform on already-revealed investment cards. */
.pr-investment-case-card.pr-motion-item.is-in-view {
  transform: translate3d(0,0,0);
}

/* Property slider: disable the legacy reveal state to prevent double animation. */
.pr-property-slider.is-reveal-pending,
.pr-property-slider.is-revealed,
.pr-property-copy.is-reveal-pending,
.pr-property-copy.is-revealed {
  opacity: 1 !important;
  filter: none !important;
  clip-path: none !important;
  transform: none !important;
  transition: none !important;
}

.pr-property-slider.is-reveal-pending .pr-property-slide.is-active img,
.pr-property-slider.is-revealed .pr-property-slide.is-active img {
  transform: translate3d(0, var(--pr-parallax-y), 0) scale(1.018) !important;
  transition: filter .3s ease !important;
}

/* Gold line remains a quiet accent. */
.pr-v030-line::after {
  transition-duration: 520ms;
}

/* Above-the-fold / initially visible elements should never flash hidden.
   JS adds .pr-motion-skip for those already substantially visible at bind time. */
.pr-motion-skip {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

@media (max-width: 700px) {
  .pr-motion-item {
    transform: translate3d(0, 16px, 0);
    transition-duration: 500ms, 600ms;
  }
  .pr-motion-item--left,
  .pr-motion-item--right {
    transform: translate3d(0, 16px, 0);
  }
  .pr-motion-item--visual {
    transform: translate3d(0, 14px, 0) scale(.99);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-motion-item,
  .pr-motion-item--left,
  .pr-motion-item--right,
  .pr-motion-item--visual,
  .pr-motion-item.is-in-view,
  .pr-motion-item--visual.is-in-view {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .pr-resort-card img,
  .pr-property-slide img {
    transform: none !important;
  }
}


/* =========================================================
   v0.3.4 — visible 5-star standards positioning in hero
   ========================================================= */

.pr-hero-standard {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 14px 0 12px;
  color: var(--pr-gold);
  font-size: clamp(.82rem, .95vw, .94rem);
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
  line-height: 1.35;
}

.pr-hero-standard > span {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(203,160,82,.62);
  border-radius: 50%;
  font-size: .72rem;
  line-height: 1;
}

@media (max-width: 700px) {
  .pr-hero-standard {
    margin: 12px 0 10px;
    font-size: .76rem;
    letter-spacing: .045em;
  }

  .pr-hero-standard > span {
    width: 22px;
    height: 22px;
  }
}


/* v0.3.5 — hero claim consolidation.
   The standalone standards line was removed; 5-star positioning now lives in the eyebrow and fact strip. */
.pr-hero-standard { display: none !important; }

/* The longer Private beach / 5★ Rotana values need slightly tighter scaling on intermediate widths. */
.pr-hero-fact-copy strong {
  text-wrap: balance;
}

@media (max-width: 1180px) and (min-width: 701px) {
  .pr-hero-fact-copy strong {
    font-size: clamp(1.35rem, 2.1vw, 1.8rem);
  }
}


/* =========================================================
   v0.3.6 — mobile layout rebuild only
   Desktop intentionally unchanged.
   ========================================================= */

.pr-hero-eyebrow-mobile { display: none; }

@media (max-width: 700px) {
  /* ---------- HERO ---------- */
  .pr-hero-eyebrow-desktop { display: none; }
  .pr-hero-eyebrow-mobile { display: inline; }

  .pr-hero-stage {
    min-height: 690px;
    background-image:
      linear-gradient(
        180deg,
        rgba(4,4,4,.52) 0%,
        rgba(4,4,4,.42) 34%,
        rgba(4,4,4,.20) 62%,
        rgba(4,4,4,.62) 100%
      ),
      var(--pr-hero-image-mobile, var(--pr-hero-image));
    background-position: center top;
  }

  .pr-hero-stage-inner {
    width: calc(100% - 30px);
    min-height: 0;
    flex: 1 1 auto;
    display: block;
    padding: 42px 0 28px;
  }

  .pr-hero-copy {
    width: 100%;
    max-width: none;
  }

  .pr-hero .pr-hero-eyebrow {
    margin-bottom: 12px;
    font-size: .64rem;
    line-height: 1.35;
    letter-spacing: .105em;
    white-space: nowrap;
  }

  .pr-hero h1 {
    max-width: 11.5ch;
    margin-bottom: 14px;
    font-size: clamp(2rem, 9.4vw, 2.35rem);
    line-height: .99;
    letter-spacing: -.04em;
  }

  .pr-hero .pr-lead {
    max-width: 31ch;
    font-size: .92rem;
    line-height: 1.45;
    color: rgba(255,255,255,.91);
  }

  .pr-hero-actions {
    gap: 9px;
    margin-top: 20px;
  }

  .pr-hero-actions .pr-button {
    min-height: 46px;
    padding: 11px 16px;
    font-size: .86rem;
  }

  .pr-hero-stage::before {
    opacity: .48;
  }

  /* Compact, readable 2 x 2 project facts. */
  .pr-hero-facts {
    position: static;
    background: rgba(8,8,8,.90);
    backdrop-filter: blur(7px);
  }

  .pr-hero-facts-inner {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .pr-hero-fact {
    min-height: 70px;
    padding: 11px 12px;
    gap: 9px;
  }

  .pr-hero-fact:first-child { padding-left: 12px; }

  .pr-hero-fact-icon {
    width: 31px;
    height: 31px;
    flex-basis: 31px;
  }

  .pr-hero-fact-icon svg {
    width: 17px;
    height: 17px;
  }

  .pr-hero-fact-copy strong,
  .pr-hero-fact strong {
    font-size: .98rem;
    line-height: 1.05;
  }

  .pr-hero-fact-copy > span {
    margin-top: 3px;
    font-size: .65rem;
    line-height: 1.18;
  }

  /* ---------- INVESTMENT CASE ---------- */
  .pr-investment-case {
    padding: 52px 0 58px;
  }

  .pr-investment-case-head {
    gap: 12px;
    margin-bottom: 26px;
  }

  .pr-investment-case-head h2 {
    font-size: clamp(1.72rem, 7.4vw, 2rem);
    line-height: 1.04;
  }

  .pr-investment-case-head > p {
    max-width: none;
    font-size: .9rem;
    line-height: 1.5;
  }

  .pr-investment-case-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .pr-investment-case-card {
    min-height: 160px;
    padding: 20px 18px 18px;
    border-right: 1px solid #d4d0c6;
    border-bottom: 0;
  }

  .pr-investment-case-card:nth-child(2) {
    border-right: 0;
  }

  .pr-investment-case-card:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 142px;
    border-top: 1px solid #d4d0c6;
    border-right: 0;
  }

  .pr-investment-case-icon {
    width: 34px;
    height: 34px;
    margin-bottom: 18px;
  }

  .pr-investment-case-icon svg {
    width: 17px;
    height: 17px;
  }

  .pr-investment-case-card > strong {
    font-size: clamp(2.55rem, 13vw, 3.25rem);
    line-height: .92;
  }

  .pr-investment-case-card h3 {
    margin-top: 8px;
    margin-bottom: 4px;
    font-size: .92rem;
    line-height: 1.1;
  }

  .pr-investment-case-card p {
    font-size: .72rem;
    line-height: 1.3;
  }

  .pr-investment-case-card::after {
    width: 90px;
    right: -56px;
    bottom: -56px;
    border-width: 11px;
  }

  .pr-investment-case-foot {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
  }

  .pr-investment-case-secondary {
    gap: 8px;
    font-size: .84rem;
    line-height: 1.4;
  }

  .pr-investment-case-secondary strong {
    font-size: .96rem;
  }

  .pr-investment-case-note {
    font-size: .78rem;
    line-height: 1.5;
  }

  .pr-investment-case-foot .pr-button {
    width: auto;
    justify-self: start;
    min-height: 44px;
    padding: 10px 16px;
    font-size: .82rem;
  }

  /* ---------- RESORT / AMENITIES ---------- */
  .pr-resort {
    padding: 56px 0 62px;
  }

  .pr-resort-head {
    gap: 12px;
    margin-bottom: 26px;
  }

  .pr-resort-head h2 {
    font-size: clamp(1.8rem, 8vw, 2.1rem);
  }

  .pr-resort-head > p {
    max-width: none;
    font-size: .9rem;
    line-height: 1.5;
  }

  .pr-resort-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 8px;
  }

  .pr-resort-card {
    min-height: 174px;
    aspect-ratio: .92 / 1;
  }

  .pr-resort-card h3 {
    left: 12px;
    right: 10px;
    bottom: 11px;
    font-size: .92rem;
    line-height: 1.12;
  }

  .pr-resort-card-shade {
    background: linear-gradient(180deg, rgba(0,0,0,.03) 32%, rgba(0,0,0,.72) 100%);
  }

  .pr-resort-more {
    margin-top: 24px;
    padding-top: 18px;
  }

  .pr-resort-more ul {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 7px 14px;
  }

  .pr-resort-more li {
    font-size: .76rem;
    line-height: 1.35;
  }

  /* ---------- PROPERTY ---------- */
  .pr-property-showcase {
    padding: 50px 0 56px;
  }

  .pr-property-layout {
    gap: 28px;
  }

  .pr-property-copy h2 {
    margin-bottom: 16px;
    font-size: clamp(1.72rem, 7.5vw, 2rem);
    line-height: 1.03;
  }

  .pr-property-lead {
    font-size: .92rem;
    line-height: 1.55;
  }

  .pr-property-points {
    margin: 22px 0 24px;
  }

  .pr-property-points li {
    padding: 11px 0 11px 18px;
    font-size: .82rem;
    line-height: 1.45;
  }

  .pr-property-points li::before {
    top: 17px;
    width: 5px;
    height: 5px;
  }

  .pr-property-cta {
    min-height: 44px;
    padding: 10px 15px;
    font-size: .82rem;
  }

  /* ---------- FLOATING CONTACT DOCK ---------- */
  .pr-contact-dock {
    left: auto;
    right: 13px;
    bottom: max(13px, env(safe-area-inset-bottom));
    grid-template-columns: auto 50px;
    gap: 8px;
    width: auto;
  }

  .pr-contact-dock-invest {
    width: 178px;
    min-height: 50px;
    padding: 0 17px;
    font-size: .76rem;
  }

  .pr-contact-dock-toggle,
  .pr-contact-dock-action {
    width: 50px;
    height: 50px;
    min-height: 50px;
  }

  .pr-contact-dock-actions {
    bottom: 59px;
  }

  .pr-contact-dock-action svg {
    width: 21px;
    height: 21px;
  }

  /* ---------- FOOTER ---------- */
  .pr-site-footer--minimal {
    padding: 20px 0 78px;
  }

  .pr-footer-minimal {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    font-size: .81rem;
    line-height: 1.5;
  }

  .pr-footer-minimal-contact {
    display: grid;
    gap: 4px;
    color: rgba(255,255,255,.72);
  }

  .pr-footer-minimal-contact strong {
    font-size: .88rem;
  }

  .pr-footer-minimal-contact a {
    font-size: .81rem;
  }

  .pr-footer-minimal-links {
    justify-content: flex-start;
    gap: 6px 13px;
    font-size: .76rem;
    line-height: 1.4;
  }
}

/* Extra tightening only for very narrow phones. */
@media (max-width: 370px) {
  .pr-hero-stage-inner {
    width: calc(100% - 28px);
    padding-top: 36px;
  }

  .pr-hero .pr-hero-eyebrow {
    font-size: .59rem;
    letter-spacing: .085em;
  }

  .pr-hero h1 {
    font-size: 1.98rem;
  }

  .pr-contact-dock-invest {
    width: 164px;
  }

  .pr-resort-card {
    min-height: 160px;
  }
}


/* =========================================================
   v0.3.7 — 4-card investment grid + mobile resort polish
   ========================================================= */

/* Investment case: four equally weighted, evidence-backed metrics on desktop. */
.pr-investment-case-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pr-investment-case-card:nth-child(3) {
  border-right: 1px solid #d4d0c6;
}

.pr-investment-case-card:nth-child(4) {
  border-right: 0;
}

.pr-investment-case-card > strong .pr-metric-unit {
  font-size: .42em;
  font-weight: 700;
  letter-spacing: -.01em;
}

@media (max-width: 980px) and (min-width: 701px) {
  .pr-investment-case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pr-investment-case-card {
    border-bottom: 1px solid #d4d0c6;
  }

  .pr-investment-case-card:nth-child(2n) {
    border-right: 0;
  }

  .pr-investment-case-card:nth-last-child(-n+2) {
    border-bottom: 0;
  }
}

@media (max-width: 700px) {
  /* Remove the inline gold eyebrow rule on mobile where it crowds the title. */
  .pr-resort-head .pr-eyebrow::after {
    display: none;
  }

  /* Slight radius makes the 2-column amenity gallery feel intentional. */
  .pr-resort-card {
    border-radius: 5px;
  }

  /* True 2 x 2 mobile investment grid. */
  .pr-investment-case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pr-investment-case-card {
    min-height: 158px;
    border-right: 1px solid #d4d0c6;
    border-bottom: 1px solid #d4d0c6;
  }

  .pr-investment-case-card:nth-child(2n) {
    border-right: 0;
  }

  .pr-investment-case-card:nth-child(3) {
    grid-column: auto;
    border-top: 0;
    border-right: 1px solid #d4d0c6;
  }

  .pr-investment-case-card:nth-child(4) {
    border-right: 0;
  }

  .pr-investment-case-card:nth-last-child(-n+2) {
    border-bottom: 0;
  }

  .pr-investment-case-card > strong {
    font-size: clamp(2.35rem, 11.5vw, 3rem);
  }

  .pr-investment-case-card h3 {
    font-size: .86rem;
  }

  .pr-investment-case-card p {
    font-size: .69rem;
  }
}


/* =========================================================
   v0.3.8 — desktop header/hero grid alignment
   ========================================================= */

/* Keep the header on the same horizontal grid as the hero copy.
   Mobile/tablet navigation is intentionally untouched. */
@media (min-width: 981px) {
  .pr-header-inner {
    width: min(calc(100% - clamp(44px, 6vw, 112px)), 1540px);
    margin-inline: auto;
  }
}


/* =========================================================
   v0.3.9 — desktop logo optical alignment
   The official SVG has no actual transparent left padding;
   shift only the rendered logo for visual alignment with hero copy.
   ========================================================= */
@media (min-width: 981px) {
  .pr-brand img {
    transform: translateX(-23px);
  }
}


/* v0.3.10 — human-readable payback metric. */
.pr-investment-case-card--payback > strong {
  white-space: nowrap;
  font-size: clamp(3.15rem, 4vw, 4.9rem);
}

@media (max-width: 700px) {
  .pr-investment-case-card--payback > strong {
    font-size: clamp(2rem, 9.2vw, 2.55rem);
  }
}


/* =========================================================
   v0.3.11 — investment metric sizing + refined card hover
   ========================================================= */

/* Give all four headline metrics more breathing room. */
.pr-investment-case-card > strong {
  font-size: clamp(3.25rem, 3.55vw, 4.35rem);
  line-height: .94;
}

.pr-investment-case-card--payback > strong {
  font-size: clamp(2.85rem, 3.2vw, 3.95rem);
  line-height: .96;
}

/* Elegant interaction only on devices that actually hover. */
@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card {
    transition:
      transform .24s cubic-bezier(.22,.61,.36,1),
      background-color .24s ease,
      box-shadow .24s ease;
  }

  .pr-investment-case-card::after {
    transition:
      opacity .24s ease,
      transform .32s cubic-bezier(.22,.61,.36,1),
      border-color .24s ease;
  }

  .pr-investment-case-icon {
    transition:
      transform .28s cubic-bezier(.22,.61,.36,1),
      color .24s ease,
      border-color .24s ease,
      background-color .24s ease;
  }

  .pr-investment-case-card:hover {
    z-index: 2;
    transform: translateY(-5px);
    background: rgba(255,255,255,.78);
    box-shadow: 0 20px 44px rgba(37,31,15,.10);
  }

  .pr-investment-case-card:hover::after {
    opacity: .9;
    transform: rotate(45deg) translate3d(-3px,-3px,0);
    border-color: rgba(203,160,82,.18);
  }

  .pr-investment-case-card:hover .pr-investment-case-icon {
    transform: translateY(-2px);
    color: var(--pr-gold);
    border-color: rgba(203,160,82,.82);
    background: rgba(203,160,82,.07);
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card > strong,
  .pr-investment-case-card--payback > strong {
    font-size: clamp(2.15rem, 10vw, 2.7rem);
  }
}


/* =========================================================
   v0.3.12 — desktop hero geometry repositioning
   Keep the Pontus gold motif, but move it off the tower.
   ========================================================= */
@media (min-width: 981px) {
  .pr-hero-stage::before {
    width: min(48vw, 690px);
    right: -24vw;
    top: -29%;
    border-width: clamp(22px, 2.8vw, 42px);
    border-color: rgba(203,160,82,.13);
  }
}


/* =========================================================
   v0.3.13 — mobile hero refinement only
   Desktop intentionally untouched.
   ========================================================= */
@media (max-width: 700px) {
  .pr-hero-stage {
    min-height: 660px;
    background-position: center top;
  }

  .pr-hero-stage-inner {
    width: calc(100% - 28px);
    padding: 34px 0 18px;
  }

  .pr-hero-copy {
    width: min(100%, 24.5rem);
    max-width: 24.5rem;
  }

  .pr-hero .pr-hero-eyebrow {
    margin-bottom: 10px;
    font-size: .62rem;
    letter-spacing: .095em;
  }

  .pr-hero h1 {
    max-width: 15ch;
    margin-bottom: 12px;
    font-size: clamp(1.72rem, 7.2vw, 2.02rem);
    line-height: .96;
    letter-spacing: -.045em;
    text-wrap: balance;
  }

  .pr-hero .pr-lead {
    max-width: 25ch;
    font-size: .885rem;
    line-height: 1.42;
  }

  .pr-hero-actions {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 10px;
    margin-top: 18px;
    align-items: stretch;
  }

  .pr-hero-actions .pr-button {
    width: auto;
    min-width: 0;
    min-height: 48px;
    padding: 12px 14px;
    font-size: .79rem;
    white-space: nowrap;
    line-height: 1.2;
  }
}

@media (max-width: 380px) {
  .pr-hero-stage {
    min-height: 640px;
  }

  .pr-hero-copy {
    width: min(100%, 22.5rem);
    max-width: 22.5rem;
  }

  .pr-hero h1 {
    max-width: 14.5ch;
    font-size: clamp(1.6rem, 7vw, 1.86rem);
  }

  .pr-hero .pr-lead {
    max-width: 23ch;
    font-size: .84rem;
  }

  .pr-hero-actions {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .pr-hero-actions .pr-button {
    min-height: 46px;
    padding: 11px 12px;
    font-size: .74rem;
  }
}


/* =========================================================
   v0.3.14 — mobile hero composition correction only
   Desktop intentionally untouched.
   ========================================================= */
.pr-hero-title-mobile,
.pr-hero-cta-mobile { display: none; }

@media (max-width: 700px) {
  .pr-hero-title-desktop,
  .pr-hero-cta-desktop { display: none; }

  .pr-hero-title-mobile,
  .pr-hero-cta-mobile { display: inline; }

  .pr-hero-title-mobile > span {
    display: block;
    white-space: nowrap;
  }

  .pr-hero-stage {
    min-height: 650px;
  }

  .pr-hero-stage-inner {
    width: calc(100% - 28px);
    padding: 36px 0 20px;
  }

  .pr-hero-copy {
    width: 100%;
    max-width: none;
  }

  .pr-hero h1,
  .pr-hero-title {
    width: 100%;
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(1.48rem, 6.45vw, 1.72rem);
    line-height: .98;
    letter-spacing: -.045em;
  }

  .pr-hero .pr-lead {
    width: 100%;
    max-width: 31rem;
    font-size: .86rem;
    line-height: 1.45;
  }

  .pr-hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 28px;
  }

  .pr-hero-actions .pr-button {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 11px 10px;
    font-size: .82rem;
    white-space: nowrap;
  }
}

@media (max-width: 360px) {
  .pr-hero h1,
  .pr-hero-title {
    font-size: clamp(1.4rem, 6.15vw, 1.6rem);
  }

  .pr-hero-actions {
    gap: 8px;
  }

  .pr-hero-actions .pr-button {
    font-size: .77rem;
    padding-inline: 8px;
  }
}


/* =========================================================
   v0.3.15 — mobile hero CTA bottom anchoring only
   Desktop intentionally untouched.
   ========================================================= */
@media (max-width: 700px) {
  .pr-hero-stage-inner {
    position: relative;
  }

  .pr-hero-actions {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 28px;
    margin-top: 0;
  }
}

@media (max-width: 360px) {
  .pr-hero-actions {
    bottom: 24px;
  }
}


/* =========================================================
   v0.3.16 — mobile hero micro-polish only
   Desktop intentionally untouched.
   ========================================================= */
@media (max-width: 700px) {
  .pr-hero-stage {
    background-image:
      linear-gradient(
        180deg,
        rgba(4,4,4,.59) 0%,
        rgba(4,4,4,.49) 34%,
        rgba(4,4,4,.20) 62%,
        rgba(4,4,4,.62) 100%
      ),
      var(--pr-hero-image-mobile, var(--pr-hero-image));
  }

  .pr-hero h1,
  .pr-hero-title {
    font-size: clamp(1.56rem, 6.7vw, 1.80rem);
    line-height: .975;
  }

  .pr-hero .pr-lead {
    font-size: .92rem;
    line-height: 1.40;
  }
}

@media (max-width: 360px) {
  .pr-hero h1,
  .pr-hero-title {
    font-size: clamp(1.47rem, 6.35vw, 1.68rem);
  }

  .pr-hero .pr-lead {
    font-size: .88rem;
    line-height: 1.40;
  }
}


/* v0.3.17 — property section replaced with editorial-style full-width image and anchored card. */
.pr-property {
  position: relative;
  background: var(--pr-ink);
  overflow: clip;
}

.pr-property-editorial {
  padding: 0;
}

.pr-property-visual--full {
  position: relative;
  min-height: min(860px, 84vw);
}

.pr-property-visual--full::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(17, 17, 17, 0.12) 0%, rgba(17, 17, 17, 0.08) 46%, rgba(17, 17, 17, 0.34) 100%),
    linear-gradient(180deg, rgba(17, 17, 17, 0.06) 0%, rgba(17, 17, 17, 0.28) 100%);
  z-index: 1;
}

.pr-property-visual--full img {
  display: block;
  width: 100%;
  height: min(860px, 84vw);
  min-height: inherit;
  object-fit: cover;
  object-position: center center;
}

.pr-property-shell {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  pointer-events: none;
  z-index: 2;
}

.pr-property-editorial .pr-property-copy {
  pointer-events: auto;
  width: min(485px, 100%);
  max-width: 100%;
  margin: 0;
  padding: clamp(28px, 2.8vw, 42px);
  background: rgba(247, 246, 242, 0.97);
  border: 1px solid rgba(17, 17, 17, 0.08);
  border-radius: 8px;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.17);
  backdrop-filter: blur(10px);
}

.pr-property-editorial .pr-property-media-eyebrow,
.pr-property-editorial .pr-property-copy > .pr-eyebrow {
  color: var(--pr-gold-deep);
  margin-bottom: 14px;
}

.pr-property-editorial .pr-property-copy h2 {
  margin: 0 0 16px;
  max-width: 11ch;
  font-size: clamp(2.3rem, 3.4vw, 3.85rem);
  line-height: 0.96;
  letter-spacing: -0.055em;
}

.pr-property-editorial .pr-property-lead {
  margin: 0 0 22px;
  font-size: 0.98rem;
  line-height: 1.58;
  color: rgba(17, 17, 17, 0.72);
}

.pr-property-editorial .pr-property-points {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(17, 17, 17, 0.12);
}

.pr-property-editorial .pr-property-points li {
  position: relative;
  margin: 0;
  padding: 13px 0;
  border-bottom: 1px solid rgba(17, 17, 17, 0.12);
  font-size: 0.9rem;
  color: rgba(17, 17, 17, 0.92);
}

.pr-property-editorial .pr-property-points li::before {
  display: none;
}

.pr-property-editorial .pr-property-cta {
  margin-top: 0;
}

@media (max-width: 1024px) {
  .pr-property-visual--full {
    min-height: 700px;
  }

  .pr-property-visual--full img {
    height: 700px;
  }

  .pr-property-editorial .pr-property-copy {
    width: min(460px, 100%);
    padding: 30px 26px;
  }

  .pr-property-editorial .pr-property-copy h2 {
    font-size: clamp(2.05rem, 4.5vw, 3rem);
  }
}

@media (max-width: 767px) {
  .pr-property {
    background: var(--pr-ink);
    padding-bottom: 72px;
  }

  .pr-property-shell {
    position: relative;
    inset: auto;
    display: block;
    margin-top: -96px;
    pointer-events: auto;
  }

  .pr-property-visual--full {
    min-height: auto;
  }

  .pr-property-visual--full::before {
    background:
      linear-gradient(180deg, rgba(17, 17, 17, 0.12) 0%, rgba(17, 17, 17, 0.42) 100%),
      linear-gradient(90deg, rgba(17, 17, 17, 0.06), rgba(17, 17, 17, 0.2));
  }

  .pr-property-visual--full img {
    height: 440px;
    object-position: 60% center;
  }

  .pr-property-editorial .pr-property-copy {
    width: calc(100% - 30px);
    margin-inline: auto;
    padding: 26px 24px 28px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.18);
    backdrop-filter: none;
  }

  .pr-property-editorial .pr-property-media-eyebrow,
  .pr-property-editorial .pr-property-copy > .pr-eyebrow {
    margin-bottom: 10px;
  }

  .pr-property-editorial .pr-property-copy h2 {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(2rem, 10vw, 2.7rem);
  }

  .pr-property-editorial .pr-property-lead {
    margin-bottom: 22px;
    font-size: 0.96rem;
  }

  .pr-property-editorial .pr-property-points {
    margin-bottom: 24px;
  }

  .pr-property-editorial .pr-property-points li {
    padding: 13px 0;
    font-size: 0.9rem;
  }
}


/* v0.3.19 — fix inherited full-height property card on desktop. */
@media (min-width: 981px) {
  .pr-property-editorial .pr-property-copy {
    height: auto;
    min-height: 0;
    align-self: center;
    display: block;
  }

  .pr-property-editorial .pr-property-cta {
    margin-top: 0;
  }
}


/* v0.3.20 — desktop property-card heading refinement. */
@media (min-width: 1025px) {
  .pr-property-editorial .pr-property-copy h2 {
    max-width: none;
    font-size: clamp(2.15rem, 2.7vw, 3.15rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
    margin-bottom: 15px;
  }
}


/* v0.3.21 — 2026 Q1 model metrics; scenario stated once in section heading. */
.pr-investment-case-card--payback > strong {
  font-size: clamp(2.65rem, 3vw, 3.7rem);
}
@media (max-width:700px) {
  .pr-investment-case-card--payback > strong {
    font-size: clamp(1.95rem, 8.7vw, 2.45rem);
  }
}


/* v0.3.24 — form/legal/source/navigation polish. */
#investment-case, #amenities, #property {
  scroll-margin-top: 94px;
}

.pr-investment-case-note a {
  color: inherit;
  text-underline-offset: 3px;
}

.pr-investment-case-note a:hover,
.pr-investment-case-note a:focus-visible {
  color: var(--pr-gold-text);
}

.pr-form-card--modal .pr-field label {
  line-height: 1.3;
}


/* =========================================================
   v0.3.25 — resort eyebrow rule + centered mobile modal
   ========================================================= */

/* Keep the resort eyebrow rule on the same line as the eyebrow.
   This prevents the rule from wrapping down into the H2 area. */
.pr-resort-head .pr-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  max-width: 100%;
  margin-bottom: 16px;
}

.pr-resort-head .pr-eyebrow::after {
  flex: 0 0 34px;
  margin-left: 0;
}

/* Phones: the rule adds nothing and can crowd the heading, so remove it. */
@media (max-width: 700px) {
  .pr-resort-head .pr-eyebrow {
    display: block;
    width: auto;
    margin-bottom: 10px;
  }

  .pr-resort-head .pr-eyebrow::after {
    display: none !important;
  }
}

/* Mobile inquiry modal: centered, padded and with deliberate field spacing. */
@media (max-width: 620px) {
  .pr-modal {
    place-items: center;
    padding: 16px;
  }

  .pr-modal-dialog {
    width: min(100%, 430px);
    max-height: calc(100svh - 32px);
    border-radius: 12px;
  }

  .pr-modal .pr-form-card--modal {
    padding: 26px 18px 22px;
    border-radius: 12px;
  }

  .pr-modal .pr-form-card--modal h2 {
    font-size: 1.78rem;
    line-height: 1.04;
    padding-right: 40px;
  }

  .pr-modal .pr-form-row,
  .pr-modal .pr-form-row--secondary {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .pr-modal .pr-form-row--secondary {
    margin-top: 14px;
  }

  .pr-modal .pr-form-row .pr-field + .pr-field {
    margin-top: 0;
  }

  .pr-modal .pr-field {
    gap: 7px;
  }

  .pr-modal .pr-field input,
  .pr-modal .pr-field select {
    width: 100%;
    min-height: 48px;
    height: 48px;
  }

  .pr-modal .pr-form-row--secondary .pr-field label {
    min-height: 0;
    display: block;
  }

  .pr-modal .pr-consent {
    margin-top: 18px;
  }

  .pr-modal-close {
    top: 10px;
    right: 10px;
  }
}


/* =========================================================
   v0.3.26 — mobile hero CTA order
   View Project left, Request Call right.
   Desktop unchanged.
   ========================================================= */
@media (max-width: 700px) {
  .pr-hero-actions > .pr-button:first-child {
    order: 2;
  }

  .pr-hero-actions > .pr-button:nth-child(2) {
    order: 1;
  }
}


/* =========================================================
   v0.3.27 — resort card radius + mobile icon footer
   ========================================================= */
@media (min-width: 701px) {
  .pr-resort-card {
    border-radius: 7px;
  }
}

.pr-footer-contact-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.pr-footer-contact-icon {
  display: none;
}

@media (max-width: 700px) {
  .pr-footer-minimal-contact {
    display: grid;
    gap: 10px;
  }

  .pr-footer-contact-item {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    min-height: 28px;
  }

  .pr-footer-contact-icon {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(203,160,82,.5);
    border-radius: 50%;
    color: var(--pr-gold);
  }

  .pr-footer-contact-icon svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .pr-footer-contact-item--brand strong {
    font-size: .9rem;
    line-height: 1.25;
  }

  .pr-footer-contact-item span:not(.pr-footer-contact-icon),
  .pr-footer-contact-item a {
    font-size: .8rem;
    line-height: 1.35;
  }

  .pr-footer-minimal-links {
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.1);
  }
}


/* =========================================================
   v0.3.30 — restore original property render and show it fully
   Keep the existing section footprint; fit the complete image inside it.
   ========================================================= */
.pr-property-media {
  background: #e9e5dc;
}

.pr-property-media img {
  object-fit: contain !important;
  object-position: center center !important;
}


/* =========================================================
   v0.3.31 — full uncropped property render
   The source render is close to square while the desktop section is wide.
   Keep the section footprint, show the complete source image, and use a
   subdued full-bleed copy of the same render behind it to fill side space.
   ========================================================= */
.pr-property-visual--full {
  overflow: hidden;
  background-image:
    linear-gradient(rgba(17,17,17,.28), rgba(17,17,17,.28)),
    var(--pr-property-image);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.pr-property-visual--full img {
  position: relative;
  z-index: 0;
  width: 100%;
  height: min(860px, 84vw);
  min-height: inherit;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Keep the existing visual darkening above both the full image and backdrop. */
.pr-property-visual--full::before {
  z-index: 1;
}

@media (max-width: 1024px) {
  .pr-property-visual--full img {
    height: 700px;
    object-fit: contain !important;
    object-position: center center !important;
  }
}

@media (max-width: 620px) {
  .pr-property-visual--full img {
    height: 440px;
    object-fit: contain !important;
    object-position: center center !important;
  }
}


/* =========================================================
   v0.3.32 — clean uncropped desktop property composition
   Full square-ish render on the right, dark field on the left.
   No duplicate backdrop, no blur, no crop, no distortion.
   ========================================================= */
.pr-property-visual--full {
  background: #101010 !important;
  background-image: none !important;
}

/* Desktop/tablet: preserve the entire render at the section's height. */
@media (min-width: 768px) {
  .pr-property-visual--full {
    position: relative;
    min-height: min(860px, 84vw);
  }

  .pr-property-visual--full img {
    position: absolute !important;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    z-index: 0;
    display: block;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: right center !important;
  }

  .pr-property-visual--full::before {
    z-index: 1;
    background:
      linear-gradient(
        90deg,
        rgba(16,16,16,.94) 0%,
        rgba(16,16,16,.82) 28%,
        rgba(16,16,16,.48) 48%,
        rgba(16,16,16,.08) 65%,
        rgba(16,16,16,.14) 100%
      ) !important;
  }
}

/* Mobile: keep the full render visible without the duplicated backdrop. */
@media (max-width: 767px) {
  .pr-property-visual--full {
    background: #101010 !important;
  }

  .pr-property-visual--full img {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 440px !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .pr-property-visual--full::before {
    background:
      linear-gradient(180deg, rgba(17,17,17,.02) 0%, rgba(17,17,17,.24) 100%) !important;
  }
}


/* =========================================================
   v0.3.34 — dedicated property renders fill the section
   The new desktop/mobile files are purpose-built for each viewport,
   so the old contain/right-aligned workaround is no longer needed.
   ========================================================= */
.pr-property-visual--full {
  background: #101010 !important;
  overflow: hidden;
}

.pr-property-visual--full picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.pr-property-visual--full picture img,
.pr-property-visual--full > img {
  position: absolute !important;
  inset: 0 !important;
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Keep the overlay only for text legibility; no artificial dark side panel. */
.pr-property-visual--full::before {
  z-index: 1;
  background: linear-gradient(90deg, rgba(12,12,12,.34) 0%, rgba(12,12,12,.13) 42%, rgba(12,12,12,.08) 100%) !important;
}

@media (max-width: 767px) {
  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    object-fit: cover !important;
    object-position: center center !important;
  }

  .pr-property-visual--full::before {
    background: linear-gradient(180deg, rgba(12,12,12,.05) 0%, rgba(12,12,12,.18) 100%) !important;
  }
}


/* =========================================================
   v0.3.35 — property render fully visible, section unchanged
   Desktop source is ~16:9 while the section is wider.
   Fit by height and align right so no part of the render is cropped.
   ========================================================= */
@media (min-width: 768px) {
  .pr-property-visual--full {
    background: #10110f !important;
  }

  .pr-property-visual--full picture {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
  }

  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: right center !important;
  }

  /* Gentle left-side shading for card legibility only. */
  .pr-property-visual--full::before {
    background: linear-gradient(
      90deg,
      rgba(16,17,15,.54) 0%,
      rgba(16,17,15,.24) 26%,
      rgba(16,17,15,.08) 48%,
      rgba(16,17,15,0) 70%
    ) !important;
  }
}

/* Mobile keeps its own purpose-built image filling the mobile composition. */
@media (max-width: 767px) {
  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    object-fit: cover !important;
    object-position: center center !important;
  }
}


/* =========================================================
   v0.3.36 — panoramic desktop property render
   New desktop artwork is already composed for the wide section,
   so fill the section normally instead of using the old contain hack.
   ========================================================= */
@media (min-width: 768px) {
  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .pr-property-visual--full::before {
    background: linear-gradient(
      90deg,
      rgba(12,12,12,.22) 0%,
      rgba(12,12,12,.11) 32%,
      rgba(12,12,12,.03) 58%,
      rgba(12,12,12,0) 78%
    ) !important;
  }
}


/* =========================================================
   v0.3.38 — mobile Property image/container fix
   The picture/img are absolutely positioned, so mobile needs an
   explicit visual height. Without it the visual collapses and the
   overlapping card gets clipped at the top of the section.
   ========================================================= */
@media (max-width: 767px) {
  .pr-property {
    overflow: hidden;
    padding-bottom: 72px;
  }

  .pr-property-visual--full {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 440px !important;
    min-height: 440px !important;
    background: #101010 !important;
    overflow: hidden !important;
  }

  .pr-property-visual--full picture {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
  }

  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .pr-property-shell {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    margin-top: -72px !important;
    pointer-events: auto;
    z-index: 3;
  }

  .pr-property-editorial .pr-property-copy {
    position: relative;
    width: calc(100% - 30px) !important;
    margin-inline: auto !important;
    padding: 26px 24px 28px;
    border-radius: 8px;
  }
}


/* =========================================================
   v0.3.39 — Mobile Property Variant B: Clean stacked
   Image first, clean cream content below, no overlap/floating card.
   Desktop remains unchanged.
   ========================================================= */
@media (max-width: 767px) {
  .pr-property {
    background: #f5f3ed !important;
    padding-bottom: 96px !important;
    overflow: visible !important;
  }

  .pr-property-visual--full {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 300px !important;
    min-height: 300px !important;
    background: #101010 !important;
    overflow: hidden !important;
  }

  .pr-property-visual--full picture {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
  }

  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .pr-property-visual--full::before {
    background: linear-gradient(
      180deg,
      rgba(12,12,12,.02) 0%,
      rgba(12,12,12,.08) 100%
    ) !important;
  }

  .pr-property-shell {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
    z-index: 2;
  }

  .pr-property-editorial .pr-property-copy {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 28px 22px 34px !important;
    background: #f5f3ed !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .pr-property-editorial .pr-property-media-eyebrow,
  .pr-property-editorial .pr-property-copy > .pr-eyebrow {
    margin: 0 0 10px !important;
    font-size: 0.7rem;
    letter-spacing: .14em;
  }

  .pr-property-editorial .pr-property-copy h2 {
    max-width: none !important;
    margin: 0 0 16px !important;
    font-size: clamp(2rem, 8.6vw, 2.15rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -0.042em !important;
  }

  .pr-property-editorial .pr-property-lead {
    margin: 0 0 20px !important;
    font-size: 0.94rem !important;
    line-height: 1.55 !important;
    color: #55534f !important;
  }

  .pr-property-editorial .pr-property-points {
    counter-reset: property-point;
    display: grid !important;
    gap: 0 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    border-top: 0 !important;
  }

  .pr-property-editorial .pr-property-points li {
    counter-increment: property-point;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) !important;
    column-gap: 10px !important;
    align-items: start !important;
    margin: 0 !important;
    padding: 12px 0 !important;
    border-top: 1px solid rgba(17,17,17,.12) !important;
    border-bottom: 0 !important;
    font-size: 0.84rem !important;
    line-height: 1.42 !important;
    color: #242321 !important;
  }

  .pr-property-editorial .pr-property-points li:first-child {
    border-top: 0 !important;
    padding-top: 0 !important;
  }

  .pr-property-editorial .pr-property-points li::before {
    content: counter(property-point) !important;
    position: static !important;
    display: grid !important;
    place-items: center !important;
    width: 23px !important;
    height: 23px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    background: var(--pr-gold) !important;
    color: #111 !important;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
  }

  .pr-property-editorial .pr-property-cta {
    display: flex !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }
}


/* =========================================================
   v0.3.40 — true edge-to-edge mobile Property image
   Neutralize legacy slider negative margins that shifted the
   visual left and left an empty strip on the right.
   ========================================================= */
@media (max-width: 767px) {
  .pr-property .pr-property-slider.pr-property-visual--full {
    width: 100vw !important;
    max-width: none !important;
    margin: 0 !important;
    margin-inline: 0 !important;
    left: 0 !important;
    right: auto !important;
  }

  .pr-property-visual--full picture,
  .pr-property-visual--full picture img,
  .pr-property-visual--full > img {
    width: 100% !important;
    max-width: none !important;
  }
}


/* =========================================================
   v0.3.41 — mobile vertical rhythm normalization
   One spacing system across investment, resort, property and footer.
   Desktop intentionally unchanged.
   ========================================================= */
@media (max-width: 700px) {
  :root {
    --pr-mobile-section-y: 52px;
    --pr-mobile-head-gap: 24px;
  }

  /* Primary content sections use the same vertical rhythm. */
  .pr-investment-case,
  .pr-resort {
    padding-top: var(--pr-mobile-section-y) !important;
    padding-bottom: var(--pr-mobile-section-y) !important;
  }

  .pr-investment-case-head,
  .pr-resort-head {
    margin-bottom: var(--pr-mobile-head-gap) !important;
  }

  .pr-investment-case-foot {
    margin-top: 22px !important;
    gap: 14px !important;
  }

  .pr-resort-more {
    margin-top: 22px !important;
    padding-top: 18px !important;
  }

  /* Property already begins with a full-bleed image, so its content block
     owns the spacing. Do not add a second large section-level bottom gap. */
  .pr-property {
    padding-bottom: 0 !important;
  }

  .pr-property-editorial .pr-property-copy {
    padding-top: 28px !important;
    padding-right: 22px !important;
    padding-bottom: 38px !important;
    padding-left: 22px !important;
  }

  .pr-property-editorial .pr-property-points {
    margin-bottom: 20px !important;
  }

  /* Footer starts cleanly after the cream Property section. Its own bottom
     padding handles the fixed contact dock / safe area instead of leaving
     empty space in the content section above it. */
  .pr-site-footer--minimal {
    padding-top: 28px !important;
    padding-bottom: max(84px, calc(70px + env(safe-area-inset-bottom))) !important;
  }

  .pr-footer-minimal {
    gap: 18px !important;
  }

  .pr-footer-minimal-contact {
    gap: 12px !important;
  }

  .pr-footer-minimal-links {
    margin-top: 2px !important;
    padding-top: 16px !important;
  }
}

@media (max-width: 370px) {
  :root {
    --pr-mobile-section-y: 46px;
  }

  .pr-property-editorial .pr-property-copy {
    padding-bottom: 34px !important;
  }
}


/* =========================================================
   v0.3.42 — lighter desktop hero facts glass strip
   Reveal more of the building while preserving legibility.
   Mobile fact treatment remains unchanged.
   ========================================================= */
@media (min-width: 768px) {
  .pr-hero-facts {
    background: linear-gradient(
      90deg,
      rgba(7, 8, 7, .58) 0%,
      rgba(7, 8, 7, .47) 48%,
      rgba(7, 8, 7, .38) 100%
    ) !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
    backdrop-filter: blur(6px) saturate(108%) !important;
    -webkit-backdrop-filter: blur(6px) saturate(108%) !important;
  }

  .pr-hero-fact {
    border-right-color: rgba(255,255,255,.11) !important;
  }

  .pr-hero-fact-copy > span {
    color: rgba(255,255,255,.74) !important;
  }
}


/* =========================================================
   v0.3.44 — two mobile-only composition tweaks
   1) move hero support paragraph lower into the image
   2) show more of the mobile Property render before content
   ========================================================= */
@media (max-width: 700px) {
  /* Keep the eyebrow/title at the top, but move the support copy into the
     lower-middle of the hero, above the anchored CTA row. */
  .pr-hero-copy {
    position: relative;
    min-height: 100%;
  }

  .pr-hero .pr-lead {
    position: absolute !important;
    left: 0;
    right: 0;
    bottom: 154px;
    width: 100%;
    max-width: 34rem;
    margin: 0 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.28);
  }

  /* Give the dedicated mobile Property render more vertical room so the
     lower part of the building/grounds is visible before the cream content. */
  .pr-property-visual--full {
    height: 390px !important;
    min-height: 390px !important;
  }
}

@media (max-width: 360px) {
  .pr-hero .pr-lead {
    bottom: 146px;
  }

  .pr-property-visual--full {
    height: 365px !important;
    min-height: 365px !important;
  }
}


/* =========================================================
   v0.3.45 — repair mobile hero after v0.3.44
   Keep Property section changes. Undo absolute-positioned hero
   paragraph and move it lower using normal document flow.
   ========================================================= */
@media (max-width: 700px) {
  .pr-hero-copy {
    position: static !important;
    min-height: 0 !important;
  }

  .pr-hero .pr-lead {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 31rem !important;
    margin: clamp(118px, 17svh, 158px) 0 0 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.28);
  }

  /* Restore the deliberate bottom-anchored CTA row. */
  .pr-hero-actions {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 28px !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 360px) {
  .pr-hero .pr-lead {
    position: static !important;
    bottom: auto !important;
    margin-top: 104px !important;
  }

  .pr-hero-actions {
    bottom: 24px !important;
  }
}


/* =========================================================
   v0.3.46 — mobile Hero vertical rhythm only
   Property section intentionally untouched.
   ========================================================= */
@media (max-width: 700px) {
  /* Move eyebrow + H1 slightly lower without changing their typography. */
  .pr-hero-stage-inner {
    padding-top: 52px !important;
  }

  /* Tighten the oversized H1-to-support-copy gap. */
  .pr-hero .pr-lead {
    margin-top: clamp(76px, 10.5svh, 96px) !important;
  }

  /* Lift CTA row slightly away from the facts strip. */
  .pr-hero-actions {
    bottom: 44px !important;
  }
}

@media (max-width: 360px) {
  .pr-hero-stage-inner {
    padding-top: 48px !important;
  }

  .pr-hero .pr-lead {
    margin-top: 70px !important;
  }

  .pr-hero-actions {
    bottom: 38px !important;
  }
}


/* =========================================================
   v0.3.49 — brand effects only, layout preserved from v0.3.46
   Replace the existing generic decorative pseudo-elements with
   Pontus mark artwork. No Hero/facts/card layout changes.
   ========================================================= */

/* HERO: reuse the exact existing decorative pseudo-element slot. */
.pr-hero-stage::before {
  display: block !important;
  content: "" !important;
  width: min(31vw, 470px) !important;
  height: min(31vw, 470px) !important;
  aspect-ratio: 1 / 1 !important;
  right: -5vw !important;
  top: 9% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: url("/wp-content/themes/pontus-rotana/assets/images/Pontus-mark-gold.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .075 !important;
  transform: rotate(7deg) !important;
}

/* INVESTMENT CARDS: same mark, same size, same location on all four. */
.pr-investment-case-card::after {
  display: block !important;
  content: "" !important;
  width: 176px !important;
  height: 176px !important;
  aspect-ratio: 1 / 1 !important;
  right: -44px !important;
  bottom: -54px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: url("/wp-content/themes/pontus-rotana/assets/images/Pontus-mark-gold.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .072 !important;
  transform: none !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    right: -44px !important;
    bottom: -54px !important;
    border: 0 !important;
    opacity: .125 !important;
    transform: none !important;
  }
}

/* Mobile keeps the same layout from v0.3.46; only scale the decoration. */
@media (max-width: 700px) {
  .pr-hero-stage::before {
    width: 210px !important;
    height: 210px !important;
    right: -76px !important;
    top: 30% !important;
    opacity: .045 !important;
  }

  .pr-investment-case-card::after {
    width: 132px !important;
    height: 132px !important;
    right: -32px !important;
    bottom: -38px !important;
    opacity: .06 !important;
  }
}


/* =========================================================
   v0.3.51 — final brand-effect simplification
   Hero: no decorative overlay.
   Investment cards: same Pontus mark, slightly more visible.
   No layout or spacing changes.
   ========================================================= */

/* Remove all hero decoration, including the original generic diamond
   and the later Pontus mark replacement. */
.pr-hero-stage::before {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* Keep the Pontus mark in the same position on every investment card,
   but increase visibility slightly. */
.pr-investment-case-card::after {
  opacity: .12 !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    opacity: .145 !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card::after {
    opacity: .10 !important;
  }
}


/* =========================================================
   v0.3.52 — use Pontus-inspired fragments on investment cards
   Hero remains clean with no decorative overlay.
   ========================================================= */

/* Keep hero decoration removed. */
.pr-hero-stage::before {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* Replace the full logo mark with subtle Pontus-style fragments.
   Same placement across all four cards. */
.pr-investment-case-card::after {
  display: block !important;
  content: "" !important;
  width: 184px !important;
  height: 184px !important;
  aspect-ratio: 1 / 1 !important;
  right: -24px !important;
  bottom: -26px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: url("/wp-content/themes/pontus-rotana/assets/images/pontus-card-fragments.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .14 !important;
  transform: none !important;
  pointer-events: none !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    right: -24px !important;
    bottom: -26px !important;
    opacity: .17 !important;
    transform: none !important;
    border: 0 !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card::after {
    width: 138px !important;
    height: 138px !important;
    right: -18px !important;
    bottom: -18px !important;
    opacity: .12 !important;
  }
}


/* =========================================================
   v0.3.53 — use the actual brandbook fragment figures
   on the investment cards (not custom approximations).
   Hero remains clean with no decorative overlay.
   ========================================================= */
.pr-hero-stage::before {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

.pr-investment-case-card::after {
  display: block !important;
  content: "" !important;
  width: 176px !important;
  height: 176px !important;
  right: -20px !important;
  bottom: -18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent url("/wp-content/themes/pontus-rotana/assets/images/pontus-card-brandbook-fragments.png") no-repeat center / contain !important;
  opacity: .20 !important;
  transform: none !important;
  pointer-events: none !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    right: -20px !important;
    bottom: -18px !important;
    opacity: .24 !important;
    transform: none !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card::after {
    width: 138px !important;
    height: 138px !important;
    right: -14px !important;
    bottom: -14px !important;
    opacity: .17 !important;
  }
}


/* =========================================================
   v0.3.55 — one actual brandbook fragment per investment card
   Hero remains clean. Cards use a single fragment only.
   ========================================================= */
.pr-hero-stage::before {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

.pr-investment-case-card::after {
  display: block !important;
  content: "" !important;
  width: 158px !important;
  height: 158px !important;
  right: -18px !important;
  bottom: -16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent url("/wp-content/themes/pontus-rotana/assets/images/pontus-card-brandbook-single-fragment.png") no-repeat center / contain !important;
  opacity: .24 !important;
  transform: none !important;
  pointer-events: none !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    right: -18px !important;
    bottom: -16px !important;
    opacity: .28 !important;
    transform: none !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card::after {
    width: 122px !important;
    height: 122px !important;
    right: -12px !important;
    bottom: -10px !important;
    opacity: .19 !important;
  }
}


/* =========================================================
   v0.3.57 — approved elegant card fragment treatment, increased visibility
   One actual brandbook fragment, fully inside top-right.
   No clipping, rotation or hover movement. Hero stays clean.
   ========================================================= */
.pr-hero-stage::before {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

.pr-investment-case-card::after {
  display: block !important;
  content: "" !important;
  width: 66px !important;
  height: 66px !important;
  top: 28px !important;
  right: 28px !important;
  bottom: auto !important;
  left: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent url("/wp-content/themes/pontus-rotana/assets/images/pontus-card-brandbook-single-fragment.png") no-repeat center / contain !important;
  opacity: .145 !important;
  transform: none !important;
  pointer-events: none !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-case-card:hover::after {
    width: 66px !important;
    height: 66px !important;
    top: 28px !important;
    right: 28px !important;
    bottom: auto !important;
    opacity: .145 !important;
    transform: none !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-card::after {
    width: 56px !important;
    height: 56px !important;
    top: 24px !important;
    right: 24px !important;
    bottom: auto !important;
    opacity: .125 !important;
  }
}


/* =========================================================
   v0.3.58 — responsive gallery + fullscreen lightbox
   Fast custom implementation; no external slider library.
   ========================================================= */
.pr-gallery {
  position: relative;
  overflow: hidden;
  padding: clamp(58px, 6vw, 88px) 0 clamp(54px, 6vw, 78px);
  background:
    radial-gradient(circle at 88% 0%, rgba(203,160,82,.075), transparent 24%),
    #111210;
  color: var(--pr-white);
}
.pr-gallery-shell {
  width: min(calc(100% - (var(--pr-gutter) * 2)), 1460px);
  margin-inline: auto;
}
.pr-gallery-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
  gap: clamp(34px, 5vw, 64px);
  align-items: end;
  margin-bottom: 28px;
}
.pr-gallery-head .pr-eyebrow { margin-bottom: 12px; }
.pr-gallery-head h2 {
  max-width: 780px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.7rem, 4.6vw, 4.65rem);
  line-height: .96;
  letter-spacing: -.052em;
}
.pr-gallery-head > p {
  max-width: 500px;
  margin: 0;
  color: rgba(255,255,255,.66);
  font-size: .95rem;
  line-height: 1.58;
}
.pr-gallery-stage-wrap { position: relative; }
.pr-gallery-stage {
  position: relative;
  height: clamp(520px, 56vw, 790px);
  overflow: hidden;
  border-radius: 9px;
  background: #050505;
  box-shadow: 0 34px 80px rgba(0,0,0,.28);
  cursor: zoom-in;
  touch-action: pan-y;
  outline: none;
}
.pr-gallery-stage:focus-visible { box-shadow: 0 0 0 2px var(--pr-gold), 0 34px 80px rgba(0,0,0,.28); }
.pr-gallery-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.01) 45%, rgba(0,0,0,.34) 100%);
}
.pr-gallery-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  transform: scale(1.016);
  pointer-events: none;
  transition: opacity .38s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}
.pr-gallery-slide.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.pr-gallery-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.pr-gallery-nav {
  position: absolute;
  z-index: 5;
  top: 50%;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-top: -26px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
  background: rgba(13,13,13,.40);
  color: #fff;
  backdrop-filter: blur(8px);
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.pr-gallery-nav svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pr-gallery-nav:hover,
.pr-gallery-nav:focus-visible {
  background: rgba(203,160,82,.94);
  border-color: rgba(203,160,82,.98);
  color: #111;
  transform: scale(1.04);
}
.pr-gallery-prev { left: 20px; }
.pr-gallery-next { right: 20px; }
.pr-gallery-toolbar {
  position: absolute;
  z-index: 6;
  left: 22px;
  right: 22px;
  bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  pointer-events: none;
}
.pr-gallery-counter,
.pr-gallery-open {
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(10,10,10,.40);
  color: #fff;
  backdrop-filter: blur(10px);
}
.pr-gallery-counter {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 13px;
  font-size: .72rem;
  letter-spacing: .08em;
}
.pr-gallery-counter strong { font-size: .92rem; }
.pr-gallery-open {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 10px 14px;
  cursor: pointer;
}
.pr-gallery-open svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
}
.pr-gallery-filmstrip {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 14px 2px 4px;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.pr-gallery-filmstrip::-webkit-scrollbar { display: none; }
.pr-gallery-thumb {
  flex: 0 0 116px;
  height: 76px;
  padding: 0;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 7px;
  background: #252525;
  opacity: .52;
  cursor: pointer;
  scroll-snap-align: start;
  transition: opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.pr-gallery-thumb:hover { opacity: .84; }
.pr-gallery-thumb.is-active {
  opacity: 1;
  border-color: var(--pr-gold);
  transform: translateY(-2px);
}
.pr-gallery-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pr-gallery-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 12px;
  color: rgba(255,255,255,.46);
  font-size: .67rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pr-gallery-progress {
  position: relative;
  flex: 1;
  height: 1px;
  overflow: hidden;
  background: rgba(255,255,255,.14);
}
.pr-gallery-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  background: var(--pr-gold);
  transform: scaleX(.0526316);
  transform-origin: left center;
  transition: transform .35s ease;
}
.pr-gallery-lightbox[hidden] { display: none !important; }
.pr-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5,5,5,.975);
  color: #fff;
}
.pr-gallery-lightbox-stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 72px 84px 76px;
  touch-action: none;
  cursor: default;
}
.pr-gallery-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}
.pr-gallery-lightbox-close,
.pr-gallery-lightbox-nav {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(20,20,20,.46);
  color: #fff;
  backdrop-filter: blur(10px);
  cursor: pointer;
}
.pr-gallery-lightbox-close {
  top: 18px;
  right: 18px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 1.7rem;
  line-height: 1;
}
.pr-gallery-lightbox-nav {
  top: 50%;
  width: 52px;
  height: 52px;
  margin-top: -26px;
  border-radius: 50%;
  font-size: 2rem;
}
.pr-gallery-lightbox-prev { left: 20px; }
.pr-gallery-lightbox-next { right: 20px; }
.pr-gallery-lightbox-caption {
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  color: rgba(255,255,255,.64);
  font-size: .72rem;
  letter-spacing: .08em;
}
body.pr-gallery-open { overflow: hidden; }

@media (max-width: 760px) {
  .pr-gallery { padding: 48px 0 46px; }
  .pr-gallery-shell { width: 100%; }
  .pr-gallery-head {
    display: block;
    margin-bottom: 18px;
    padding-inline: 20px;
  }
  .pr-gallery-head h2 {
    max-width: 10ch;
    font-size: clamp(2.35rem, 10vw, 3rem);
  }
  .pr-gallery-head > p {
    margin-top: 16px;
    max-width: 36rem;
    font-size: .91rem;
  }
  .pr-gallery-stage {
    height: 58svh;
    min-height: 430px;
    max-height: 640px;
    border-radius: 0;
  }
  .pr-gallery-nav {
    width: 42px;
    height: 42px;
    margin-top: -21px;
  }
  .pr-gallery-prev { left: 10px; }
  .pr-gallery-next { right: 10px; }
  .pr-gallery-toolbar {
    left: 14px;
    right: 14px;
    bottom: 14px;
  }
  .pr-gallery-open { width: 44px; justify-content: center; padding-inline: 0; }
  .pr-gallery-open span { display: none; }
  .pr-gallery-filmstrip {
    gap: 8px;
    padding: 12px 16px 4px;
  }
  .pr-gallery-thumb {
    flex-basis: 92px;
    height: 62px;
  }
  .pr-gallery-meta {
    padding-inline: 16px;
    margin-top: 10px;
  }
  .pr-gallery-meta > span:first-child { display: none; }
  .pr-gallery-lightbox-stage { padding: 62px 0 68px; }
  .pr-gallery-lightbox-nav {
    top: auto;
    bottom: 14px;
    width: 44px;
    height: 44px;
    margin: 0;
  }
  .pr-gallery-lightbox-prev { left: 14px; }
  .pr-gallery-lightbox-next { right: 14px; }
  .pr-gallery-lightbox-caption { bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-gallery-slide,
  .pr-gallery-thumb,
  .pr-gallery-nav,
  .pr-gallery-progress span { transition: none !important; }
}


/* =========================================================
   v0.3.59 — Gallery redesign
   Light investment-section palette, restrained heading scale,
   center-focused slider with neighboring image previews,
   robust viewport-fixed fullscreen lightbox and mobile geometry.
   ========================================================= */
.pr-gallery {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 7vw, 108px) 0 clamp(68px, 7vw, 100px);
  background: #f4f2ec !important;
  color: var(--pr-ink) !important;
  border-top: 1px solid #dedad0;
}

.pr-gallery-shell {
  width: min(calc(100% - (var(--pr-gutter) * 2)), 1460px);
  margin-inline: auto;
}

.pr-gallery-head {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr);
  gap: clamp(34px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(28px, 3.4vw, 44px);
}

.pr-gallery-head .pr-eyebrow {
  margin-bottom: 11px;
  color: var(--pr-gold-text);
}

.pr-gallery-head h2 {
  max-width: 760px;
  margin: 0;
  color: var(--pr-ink) !important;
  font-size: var(--pr-h2) !important;
  line-height: 1.02;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.pr-gallery-head > p {
  max-width: 50ch;
  margin: 0 0 4px auto;
  color: #5f5d57 !important;
  font-size: clamp(.98rem, 1.05vw, 1.1rem);
  line-height: 1.62;
}

.pr-gallery-stage-wrap {
  position: relative;
  width: 100%;
}

.pr-gallery-stage {
  position: relative;
  width: 100%;
  height: clamp(410px, 38vw, 570px) !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: default !important;
  touch-action: pan-y;
  outline: none;
}

.pr-gallery-stage:focus-visible {
  box-shadow: 0 0 0 2px rgba(138,116,35,.45) !important;
}

.pr-gallery-stage::after {
  display: none !important;
  content: none !important;
}

.pr-gallery-slide {
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: 76% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 8px;
  background: #ddd8ce;
  opacity: 0 !important;
  transform: translateX(-50%) scale(.88) !important;
  transform-origin: center center;
  pointer-events: none;
  filter: saturate(.82) brightness(.88);
  box-shadow: none;
  transition:
    transform .62s cubic-bezier(.2,.7,.2,1),
    opacity .38s ease,
    filter .38s ease,
    box-shadow .38s ease;
  z-index: 0;
}

.pr-gallery-slide.is-active {
  opacity: 1 !important;
  transform: translateX(-50%) scale(1) !important;
  pointer-events: auto;
  filter: none;
  box-shadow: 0 26px 58px rgba(39,33,22,.15);
  z-index: 3;
  cursor: zoom-in;
}

.pr-gallery-slide.is-prev,
.pr-gallery-slide.is-next {
  opacity: .34 !important;
  pointer-events: auto;
  z-index: 1;
  cursor: pointer;
}

.pr-gallery-slide.is-prev {
  transform: translateX(-156%) scale(.90) !important;
}

.pr-gallery-slide.is-next {
  transform: translateX(56%) scale(.90) !important;
}

.pr-gallery-slide img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center;
}

.pr-gallery-nav {
  position: absolute;
  z-index: 7;
  top: 50%;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 50%;
  background: rgba(19,19,18,.58);
  color: #fff;
  backdrop-filter: blur(10px);
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.pr-gallery-prev { left: 14.2%; }
.pr-gallery-next { right: 14.2%; }

.pr-gallery-nav:hover,
.pr-gallery-nav:focus-visible {
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
  color: #111;
  transform: scale(1.045);
}

.pr-gallery-toolbar {
  position: absolute;
  z-index: 7;
  left: 14.2%;
  right: 14.2%;
  bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  pointer-events: none;
}

.pr-gallery-counter,
.pr-gallery-open {
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 999px;
  background: rgba(13,13,12,.48);
  color: #fff;
  backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

.pr-gallery-counter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  font-size: .72rem;
  letter-spacing: .08em;
}

.pr-gallery-counter strong { font-size: .9rem; }

.pr-gallery-open {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 9px 13px;
  cursor: pointer;
}

.pr-gallery-open:hover,
.pr-gallery-open:focus-visible {
  background: rgba(13,13,12,.72);
  border-color: rgba(255,255,255,.55);
}

.pr-gallery-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  width: 76%;
  margin: 16px auto 0;
  color: #7b776f !important;
  font-size: .68rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.pr-gallery-progress {
  position: relative;
  flex: 1;
  height: 1px;
  overflow: hidden;
  background: #d4d0c6 !important;
}

.pr-gallery-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  background: var(--pr-gold) !important;
  transform: scaleX(.0526316);
  transform-origin: left center;
  transition: transform .35s ease;
}

/* No filmstrip in the production gallery. The visible neighbors themselves
   provide context and navigation without a second row of miniature images. */
.pr-gallery-filmstrip { display: none !important; }

/* Fullscreen gallery is moved to <body> by JS so transformed/revealed page
   ancestors cannot change fixed-position behavior. */
.pr-gallery-lightbox[hidden] {
  display: none !important;
}

.pr-gallery-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: rgba(7,7,7,.985) !important;
  color: #fff;
  isolation: isolate;
  overscroll-behavior: contain;
}

.pr-gallery-lightbox-stage {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: max(64px, env(safe-area-inset-top)) 86px max(58px, env(safe-area-inset-bottom)) !important;
  overflow: hidden !important;
  touch-action: pan-y;
}

.pr-gallery-lightbox-image {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: calc(100vw - 172px) !important;
  max-height: calc(100dvh - 122px) !important;
  object-fit: contain !important;
  object-position: center !important;
  user-select: none;
  -webkit-user-drag: none;
}

.pr-gallery-lightbox-close,
.pr-gallery-lightbox-nav {
  position: fixed !important;
  z-index: 3 !important;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(20,20,20,.58);
  color: #fff;
  backdrop-filter: blur(10px);
  cursor: pointer;
}

.pr-gallery-lightbox-close {
  top: max(18px, env(safe-area-inset-top)) !important;
  right: max(18px, env(safe-area-inset-right)) !important;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 1.7rem;
  line-height: 1;
}

.pr-gallery-lightbox-nav {
  top: 50% !important;
  width: 50px;
  height: 50px;
  margin-top: -25px !important;
  border-radius: 50%;
  font-size: 1.9rem;
}

.pr-gallery-lightbox-prev { left: max(18px, env(safe-area-inset-left)) !important; }
.pr-gallery-lightbox-next { right: max(18px, env(safe-area-inset-right)) !important; }

.pr-gallery-lightbox-caption {
  position: fixed !important;
  left: 50% !important;
  bottom: max(20px, env(safe-area-inset-bottom)) !important;
  transform: translateX(-50%) !important;
  color: rgba(255,255,255,.68);
  font-size: .72rem;
  letter-spacing: .08em;
  white-space: nowrap;
}

html.pr-gallery-open,
body.pr-gallery-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

@media (max-width: 980px) {
  .pr-gallery-head {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .pr-gallery-head > p {
    margin-left: 0;
  }

  .pr-gallery-stage {
    height: clamp(360px, 49vw, 500px) !important;
  }

  .pr-gallery-slide {
    width: 80% !important;
  }

  .pr-gallery-slide.is-prev { transform: translateX(-151%) scale(.91) !important; }
  .pr-gallery-slide.is-next { transform: translateX(51%) scale(.91) !important; }
  .pr-gallery-prev { left: 11.8%; }
  .pr-gallery-next { right: 11.8%; }
  .pr-gallery-toolbar { left: 11.8%; right: 11.8%; }
  .pr-gallery-meta { width: 80%; }
}

@media (max-width: 700px) {
  .pr-gallery {
    padding: var(--pr-mobile-section-y, 52px) 0 var(--pr-mobile-section-y, 52px) !important;
  }

  .pr-gallery-shell {
    width: 100% !important;
  }

  .pr-gallery-head {
    display: block;
    margin-bottom: 24px;
    padding-inline: 20px;
  }

  .pr-gallery-head .pr-eyebrow {
    margin-bottom: 10px;
  }

  .pr-gallery-head h2 {
    max-width: none !important;
    font-size: var(--pr-h2) !important;
    line-height: 1.04;
  }

  .pr-gallery-head > p {
    max-width: 35rem;
    margin-top: 14px;
    font-size: .92rem;
    line-height: 1.55;
  }

  .pr-gallery-stage {
    height: clamp(286px, 74vw, 360px) !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .pr-gallery-slide {
    width: calc(100% - 48px) !important;
    height: 100% !important;
    border-radius: 7px;
  }

  .pr-gallery-slide.is-active {
    transform: translateX(-50%) scale(1) !important;
    box-shadow: 0 18px 38px rgba(39,33,22,.14);
  }

  .pr-gallery-slide.is-prev {
    transform: translateX(-153.5%) scale(.92) !important;
    opacity: .27 !important;
  }

  .pr-gallery-slide.is-next {
    transform: translateX(53.5%) scale(.92) !important;
    opacity: .27 !important;
  }

  .pr-gallery-nav {
    width: 40px;
    height: 40px;
    margin-top: -20px;
    background: rgba(13,13,12,.54);
  }

  .pr-gallery-prev { left: 32px !important; }
  .pr-gallery-next { right: 32px !important; }

  .pr-gallery-toolbar {
    left: 38px !important;
    right: 38px !important;
    bottom: 12px;
  }

  .pr-gallery-counter {
    padding: 8px 10px;
  }

  .pr-gallery-open {
    width: 40px;
    min-height: 40px;
    justify-content: center;
    padding: 0;
  }

  .pr-gallery-open span { display: none; }

  .pr-gallery-meta {
    width: calc(100% - 48px) !important;
    padding: 0 !important;
    margin-top: 14px;
    gap: 12px;
  }

  .pr-gallery-meta > span:first-child {
    display: none;
  }

  .pr-gallery-lightbox-stage {
    padding: max(62px, env(safe-area-inset-top)) 12px max(74px, env(safe-area-inset-bottom)) !important;
    touch-action: none;
  }

  .pr-gallery-lightbox-image {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 144px) !important;
  }

  .pr-gallery-lightbox-close {
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    width: 42px;
    height: 42px;
  }

  .pr-gallery-lightbox-nav {
    top: auto !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
    width: 42px;
    height: 42px;
    margin: 0 !important;
  }

  .pr-gallery-lightbox-prev { left: max(14px, env(safe-area-inset-left)) !important; }
  .pr-gallery-lightbox-next { right: max(14px, env(safe-area-inset-right)) !important; }

  .pr-gallery-lightbox-caption {
    bottom: max(27px, calc(env(safe-area-inset-bottom) + 13px)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-gallery-slide,
  .pr-gallery-nav,
  .pr-gallery-progress span {
    transition: none !important;
  }
}


/* =========================================================
   v0.3.60 — Gallery refinement
   - Wider previous/next previews
   - Restored thumbnail filmstrip
   - More restrained desktop height
   - Fullscreen state isolated from the .pr-gallery-open button class
   ========================================================= */

/* Desktop composition: main image still dominates, but the neighboring
   slides are intentionally obvious enough to communicate "carousel". */
.pr-gallery-stage {
  height: clamp(380px, 31vw, 500px) !important;
}

.pr-gallery-slide {
  width: 70% !important;
}

.pr-gallery-slide.is-prev,
.pr-gallery-slide.is-next {
  opacity: .46 !important;
  filter: saturate(.78) brightness(.92) !important;
  transform-origin: center center !important;
}

.pr-gallery-slide.is-prev {
  transform: translateX(-149%) scale(.94) !important;
}

.pr-gallery-slide.is-next {
  transform: translateX(49%) scale(.94) !important;
}

.pr-gallery-prev { left: 16.3% !important; }
.pr-gallery-next { right: 16.3% !important; }

.pr-gallery-toolbar {
  left: 16.3% !important;
  right: 16.3% !important;
}

/* Thumbnail preview rail, kept compact and secondary to the hero image. */
.pr-gallery-filmstrip {
  display: flex !important;
  width: 70% !important;
  margin: 13px auto 0 !important;
  padding: 3px 1px 5px !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}

.pr-gallery-filmstrip::-webkit-scrollbar { display: none; }

.pr-gallery-thumb {
  flex: 0 0 96px !important;
  width: 96px !important;
  height: 62px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid transparent !important;
  border-radius: 5px !important;
  background: #d8d3c8 !important;
  opacity: .56 !important;
  box-shadow: none !important;
  cursor: pointer;
  scroll-snap-align: center;
  transform: none !important;
  transition: opacity .18s ease, border-color .18s ease, transform .18s ease !important;
}

.pr-gallery-thumb:hover,
.pr-gallery-thumb:focus-visible {
  opacity: .82 !important;
}

.pr-gallery-thumb.is-active {
  opacity: 1 !important;
  border-color: var(--pr-gold) !important;
  transform: translateY(-1px) !important;
}

.pr-gallery-thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.pr-gallery-meta {
  width: 70% !important;
  margin-top: 10px !important;
}

/* IMPORTANT: .pr-gallery-open is the fullscreen BUTTON class.
   The page-lock state therefore uses a different class. The previous shared
   name caused button layout rules to be applied to <body>, which is why the
   whole page/section appeared to expand. */
html.pr-gallery-modal-open,
body.pr-gallery-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

.pr-gallery-lightbox {
  background: rgba(5,5,5,.965) !important;
}

.pr-gallery-lightbox-stage {
  padding: max(62px, env(safe-area-inset-top)) 72px max(58px, env(safe-area-inset-bottom)) !important;
}

.pr-gallery-lightbox-image {
  max-width: calc(100vw - 144px) !important;
  max-height: calc(100dvh - 120px) !important;
  border-radius: 5px;
  box-shadow: 0 24px 70px rgba(0,0,0,.36);
}

@media (max-width: 980px) {
  .pr-gallery-stage {
    height: clamp(340px, 44vw, 450px) !important;
  }

  .pr-gallery-slide {
    width: 74% !important;
  }

  .pr-gallery-slide.is-prev {
    transform: translateX(-150%) scale(.94) !important;
  }

  .pr-gallery-slide.is-next {
    transform: translateX(50%) scale(.94) !important;
  }

  .pr-gallery-prev { left: 14.2% !important; }
  .pr-gallery-next { right: 14.2% !important; }
  .pr-gallery-toolbar { left: 14.2% !important; right: 14.2% !important; }
  .pr-gallery-filmstrip,
  .pr-gallery-meta { width: 74% !important; }
}

@media (max-width: 700px) {
  .pr-gallery-stage {
    height: clamp(278px, 68vw, 340px) !important;
  }

  .pr-gallery-slide {
    width: 84% !important;
  }

  .pr-gallery-slide.is-prev {
    transform: translateX(-150%) scale(.94) !important;
    opacity: .36 !important;
  }

  .pr-gallery-slide.is-next {
    transform: translateX(50%) scale(.94) !important;
    opacity: .36 !important;
  }

  .pr-gallery-prev { left: 10.5% !important; }
  .pr-gallery-next { right: 10.5% !important; }

  .pr-gallery-toolbar {
    left: 10.5% !important;
    right: 10.5% !important;
    bottom: 11px !important;
  }

  .pr-gallery-filmstrip {
    width: 100% !important;
    margin-top: 10px !important;
    padding: 3px 18px 5px !important;
    gap: 7px !important;
  }

  .pr-gallery-thumb {
    flex-basis: 78px !important;
    width: 78px !important;
    height: 52px !important;
    border-radius: 4px !important;
  }

  .pr-gallery-meta {
    width: 84% !important;
    margin-top: 9px !important;
  }

  .pr-gallery-lightbox-stage {
    padding: max(58px, env(safe-area-inset-top)) 10px max(68px, env(safe-area-inset-bottom)) !important;
  }

  .pr-gallery-lightbox-image {
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 132px) !important;
    border-radius: 3px;
  }
}


/* =========================================================
   v0.3.61 — fullscreen gallery scroll isolation
   The underlying page remains frozen at its exact scroll position.
   ========================================================= */
html.pr-gallery-modal-open {
  scroll-behavior: auto !important;
}

body.pr-gallery-modal-open {
  overscroll-behavior: none !important;
  touch-action: none;
}

.pr-gallery-lightbox {
  overscroll-behavior: contain;
  touch-action: none;
}


/* =========================================================
   v0.3.62 — flush sticky-header anchor alignment
   Section navigation lands directly beneath the sticky header,
   with a 1px tuck to prevent the previous section showing through.
   ========================================================= */
#investment-case,
#amenities,
#gallery,
#property {
  scroll-margin-top: 73px !important;
}

@media (max-width: 620px) {
  #investment-case,
  #amenities,
  #gallery,
  #property {
    scroll-margin-top: 65px !important;
  }
}


/* =========================================================
   v0.3.63 — gallery scroll/performance repair
   ========================================================= */
.pr-gallery {
  contain: layout paint;
}

.pr-gallery-slide img,
.pr-gallery-thumb img {
  backface-visibility: hidden;
}

.pr-gallery-filmstrip {
  overscroll-behavior-inline: contain;
}


/* =========================================================
   v0.3.64 — refreshed hero fact strip
   500+ rooms / prime beachfront / Managed by Rotana / passive ownership.
   ========================================================= */
.pr-hero-fact--brand {
  justify-content: center;
  padding-inline: clamp(22px, 2.6vw, 38px);
}

.pr-hero-fact-brand {
  display: block;
  width: min(100%, 178px);
  max-height: 54px;
  object-fit: contain;
  object-position: center;
}

/* Long property-value phrases need a restrained scale so all four facts
   keep the same visual weight rather than wrapping like mini headlines. */
.pr-hero-fact-copy strong {
  max-width: 15ch;
}

@media (min-width: 701px) and (max-width: 1180px) {
  .pr-hero-fact-copy strong {
    font-size: clamp(1.15rem, 1.75vw, 1.55rem) !important;
  }

  .pr-hero-fact-brand {
    width: min(100%, 150px);
  }
}

@media (max-width: 700px) {
  .pr-hero-fact--brand {
    min-height: 70px;
    padding: 11px 12px;
  }

  .pr-hero-fact-brand {
    width: min(100%, 118px);
    max-height: 38px;
  }

  .pr-hero-fact-copy strong {
    max-width: 13ch;
  }
}


/* =========================================================
   v0.3.65 — production performance pass
   Preserve the current composition/effects while reducing scroll work,
   mobile GPU pressure and unnecessary image decoding.
   ========================================================= */

/* The sticky header is already ~96% opaque. Removing live backdrop sampling
   avoids a full-width blur repaint on every scroll frame with negligible
   visual difference. */
.pr-site-header {
  background: rgba(17,17,17,.975);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Reveal layers are temporary. Drop compositor hints once each one-time
   transition is complete so the browser can reclaim texture memory. */
.pr-motion-item.pr-motion-complete,
.pr-motion-item--visual.pr-motion-complete {
  will-change: auto !important;
}

/* Parallax images are promoted only while they are actually visible and only
   on screens where live parallax is enabled by JS. */
.pr-resort-card img,
.pr-property-slide img {
  will-change: auto !important;
}
.pr-resort-card img.pr-parallax-active,
.pr-property-slide img.pr-parallax-active {
  will-change: transform !important;
}

/* Hidden gallery slides should not keep painting after they have been viewed. */
.pr-gallery-slide {
  visibility: hidden;
  contain: paint;
}
.pr-gallery-slide.is-active,
.pr-gallery-slide.is-prev,
.pr-gallery-slide.is-next {
  visibility: visible;
  will-change: transform, opacity;
}

/* Opacity already provides the desired muted-neighbor treatment. Avoid a
   live saturate/brightness filter on two large transformed photos. */
.pr-gallery-slide.is-prev,
.pr-gallery-slide.is-next {
  filter: none !important;
  opacity: .40 !important;
}

/* Glass controls are tiny visually; an opaque-translucent fill gives almost
   the same appearance without backdrop sampling over moving photos. */
.pr-gallery-nav,
.pr-gallery-counter,
.pr-gallery-open,
.pr-gallery-lightbox-close,
.pr-gallery-lightbox-nav {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.pr-gallery-nav { background: rgba(13,13,13,.64); }
.pr-gallery-counter,
.pr-gallery-open { background: rgba(10,10,10,.62); }
.pr-gallery-lightbox-close,
.pr-gallery-lightbox-nav { background: rgba(20,20,20,.72); }

/* Keep dock layout self-contained without paint containment, because its
   expanded contact actions intentionally render above the dock bounds. */
.pr-contact-dock {
  contain: layout style;
}

@media (max-width: 900px) {
  /* Live parallax is intentionally removed on phones/tablets; keep the exact
     static crop and one-time reveal, which is what the eye primarily sees. */
  .pr-resort-card img,
  .pr-property-slide img {
    --pr-parallax-y: 0px !important;
    transform: translate3d(0,0,0) scale(1.018) !important;
    filter: none !important;
    will-change: auto !important;
  }

  /* The hero fact strip is already dark enough for legibility; avoid another
     full-width backdrop blur while leaving the hero. */
  .pr-hero-facts {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

@media (max-width: 700px) {
  .pr-gallery-slide.is-prev,
  .pr-gallery-slide.is-next {
    opacity: .32 !important;
  }

  .pr-gallery-nav { background: rgba(13,13,12,.70) !important; }
  .pr-gallery-counter,
  .pr-gallery-open { background: rgba(10,10,10,.68) !important; }
}


/* =========================================================
   v0.3.66 — refined gallery arrow controls
   Perfect circles, optically centered SVG chevrons, softer inline
   controls, stronger fullscreen controls, no mobile tap flash.
   ========================================================= */
.pr-gallery-nav,
.pr-gallery-lightbox-nav {
  box-sizing: border-box !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  line-height: 1 !important;
  border-radius: 50% !important;
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  outline: none;
}

/* Use identical SVG chevrons in the slider and fullscreen viewer instead of
   font glyphs, whose baseline made the fullscreen arrows look off-center. */
.pr-gallery-nav svg,
.pr-gallery-lightbox-nav svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  flex: 0 0 auto;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  pointer-events: none;
}

/* Tiny optical correction: geometric centering is not quite visual centering
   for directional chevrons. */
.pr-gallery-prev svg,
.pr-gallery-lightbox-prev svg {
  transform: translateX(-1px);
}

.pr-gallery-next svg,
.pr-gallery-lightbox-next svg {
  transform: translateX(1px);
}

/* Main-slider controls should be present but quiet. */
.pr-gallery-nav {
  width: 48px !important;
  height: 48px !important;
  margin-top: -24px !important;
  background: rgba(13,13,13,.46) !important;
  border: 1px solid rgba(255,255,255,.30) !important;
  color: rgba(255,255,255,.94) !important;
  opacity: .86;
  box-shadow: 0 7px 22px rgba(0,0,0,.16);
  transition:
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    opacity .18s ease,
    transform .18s ease !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-gallery-nav:hover {
    background: rgba(13,13,13,.64) !important;
    border-color: rgba(255,255,255,.48) !important;
    color: #fff !important;
    opacity: 1;
    transform: scale(1.035) !important;
  }
}

/* Preserve a clear keyboard focus without showing a browser-colored tap ring. */
.pr-gallery-nav:focus,
.pr-gallery-lightbox-nav:focus {
  outline: none !important;
}

.pr-gallery-nav:focus-visible,
.pr-gallery-lightbox-nav:focus-visible {
  outline: none !important;
  box-shadow:
    0 0 0 3px rgba(203,160,82,.34),
    0 7px 22px rgba(0,0,0,.18) !important;
}

/* Touch/click feedback is deliberately restrained. */
.pr-gallery-nav:active {
  background: rgba(13,13,13,.60) !important;
  opacity: 1;
  transform: scale(.965) !important;
}

/* Fullscreen arrows are slightly stronger against the near-black overlay. */
.pr-gallery-lightbox-nav {
  width: 52px !important;
  height: 52px !important;
  margin-top: -26px !important;
  background: rgba(17,17,17,.64) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  color: #fff !important;
  opacity: .96;
  box-shadow: 0 8px 26px rgba(0,0,0,.26);
  font-size: 0 !important;
  transition:
    background-color .18s ease,
    border-color .18s ease,
    transform .18s ease !important;
}

@media (hover:hover) and (pointer:fine) {
  .pr-gallery-lightbox-nav:hover {
    background: rgba(28,28,28,.82) !important;
    border-color: rgba(255,255,255,.42) !important;
    transform: scale(1.035) !important;
  }
}

.pr-gallery-lightbox-nav:active {
  background: rgba(30,30,30,.86) !important;
  transform: scale(.965) !important;
}

/* Remove Android/iOS tap flash from all gallery controls, including close and
   fullscreen buttons, so the interaction stays visually controlled. */
.pr-gallery button,
.pr-gallery-lightbox button {
  -webkit-tap-highlight-color: transparent;
}

/* Close control gets the same tap hygiene without changing its design. */
.pr-gallery-lightbox-close {
  -webkit-tap-highlight-color: transparent;
  appearance: none;
  -webkit-appearance: none;
  touch-action: manipulation;
}

@media (max-width: 700px) {
  .pr-gallery-nav {
    width: 44px !important;
    height: 44px !important;
    margin-top: -22px !important;
    background: rgba(13,13,13,.44) !important;
    border-color: rgba(255,255,255,.28) !important;
    opacity: .84;
  }

  .pr-gallery-nav svg {
    width: 19px !important;
    height: 19px !important;
  }

  .pr-gallery-lightbox-nav {
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    background: rgba(17,17,17,.66) !important;
  }

  .pr-gallery-lightbox-nav svg {
    width: 21px !important;
    height: 21px !important;
  }
}


/* =========================================================
   v0.3.67 — measured performance/correctness pass
   Same approved visuals; less layout thrash, bounded gallery work,
   temporary compositor promotion and Lighthouse accessibility contrast fixes.
   ========================================================= */

/* Reveal elements do not need a persistent compositor hint while far offscreen.
   JS warms them shortly before entry and releases the hint after completion. */
.pr-motion-item,
.pr-motion-item--visual {
  will-change: auto !important;
}
.pr-motion-item.pr-motion-warm,
.pr-motion-item--visual.pr-motion-warm {
  will-change: opacity, transform !important;
}
.pr-motion-item.pr-motion-complete,
.pr-motion-item--visual.pr-motion-complete {
  will-change: auto !important;
}

/* Gallery surfaces are promoted only during the short transition window rather
   than remaining permanently hinted whenever they are active/adjacent. */
.pr-gallery-slide.is-active,
.pr-gallery-slide.is-prev,
.pr-gallery-slide.is-next {
  will-change: auto !important;
}
.pr-gallery.is-transitioning .pr-gallery-slide.is-active,
.pr-gallery.is-transitioning .pr-gallery-slide.is-prev,
.pr-gallery.is-transitioning .pr-gallery-slide.is-next {
  will-change: transform, opacity !important;
}

/* Lighthouse AA contrast for small Gallery metadata while preserving the same
   restrained gold/gray design language. */
.pr-gallery-head .pr-eyebrow {
  color: var(--pr-gold-text) !important;
}
.pr-gallery-meta {
  color: #6f6b64 !important;
}


/* The global button minimum height must not distort the intentionally square
   gallery navigation controls. */
.pr-gallery-nav,
.pr-gallery-lightbox-nav {
  min-width: 0 !important;
  min-height: 0 !important;
}


/* =========================================================
   v0.3.72 — Investment Case source mark
   Adds a restrained Cushman & Wakefield source/logo block between the
   financial-model heading and assumptions copy. No metric-card changes.
   ========================================================= */
.pr-investment-case-head {
  grid-template-columns: minmax(0, 1.08fr) minmax(130px, .30fr) minmax(300px, .64fr) !important;
  gap: clamp(24px, 3.1vw, 52px) !important;
  align-items: end !important;
}

.pr-investment-case-heading {
  min-width: 0;
}

.pr-investment-source-mark {
  align-self: end;
  justify-self: center;
  width: min(100%, 150px);
  margin-bottom: 4px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  color: inherit;
  text-decoration: none;
}

.pr-investment-source-mark > span {
  display: block;
  margin: 0;
  color: #77736a;
  font-size: .63rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.pr-investment-source-mark img {
  display: block;
  width: min(100%, 132px);
  height: auto;
  max-height: 32px;
  object-fit: contain;
  object-position: left center;
  opacity: .86;
  transition: opacity .18s ease;
}

@media (hover:hover) and (pointer:fine) {
  .pr-investment-source-mark:hover img,
  .pr-investment-source-mark:focus-visible img {
    opacity: 1;
  }
}

.pr-investment-source-mark:focus-visible {
  outline: 2px solid rgba(138,116,35,.42);
  outline-offset: 7px;
  border-radius: 2px;
}

.pr-investment-case-head > .pr-investment-case-assumptions {
  max-width: 50ch;
  margin: 0 0 4px auto;
  color: #5f5d57;
  font-size: clamp(.98rem, 1.05vw, 1.1rem);
  line-height: 1.62;
}

@media (max-width: 900px) {
  .pr-investment-case-head {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .pr-investment-source-mark {
    justify-self: start;
    width: 145px;
    margin: 2px 0 0;
    gap: 7px;
  }

  .pr-investment-source-mark img {
    width: 126px;
    max-height: 30px;
  }

  .pr-investment-case-head > .pr-investment-case-assumptions {
    max-width: none;
    margin: 0;
  }
}

@media (max-width: 700px) {
  .pr-investment-source-mark {
    width: 138px;
    margin-top: 1px;
  }

  .pr-investment-source-mark img {
    width: 120px;
  }

  .pr-investment-source-mark > span {
    font-size: .59rem;
  }
}


/* =========================================================
   v0.3.73 — move financial-analysis mark into evidence row
   Header returns to the clean two-column composition.
   ========================================================= */
.pr-investment-case-head {
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr) !important;
  gap: clamp(34px, 5vw, 80px) !important;
  align-items: end !important;
}

.pr-investment-case-head > .pr-investment-case-assumptions {
  max-width: 50ch;
  margin: 0 0 4px auto;
}

/* Bottom evidence row: supporting metric → analysis/source mark → source note → CTA */
.pr-investment-case-foot {
  grid-template-columns:
    minmax(155px, .52fr)
    minmax(145px, .44fr)
    minmax(360px, 1.28fr)
    auto !important;
  gap: clamp(22px, 2.8vw, 42px) !important;
  align-items: center !important;
}

.pr-investment-source-mark--foot {
  justify-self: start;
  align-self: center;
  width: 150px;
  margin: 0;
  gap: 8px;
}

.pr-investment-source-mark--foot > span {
  color: #77736a;
  font-size: .61rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.pr-investment-source-mark--foot img {
  width: 136px;
  max-height: 32px;
  opacity: .88;
}

@media (max-width: 1100px) {
  .pr-investment-case-foot {
    grid-template-columns: minmax(150px, .7fr) minmax(145px, .7fr) minmax(0, 1.6fr) !important;
  }

  .pr-investment-case-foot .pr-button {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
  }
}

@media (max-width: 980px) {
  .pr-investment-case-head {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .pr-investment-case-head > .pr-investment-case-assumptions {
    max-width: none;
    margin: 0;
  }

  .pr-investment-case-foot {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) !important;
    gap: 20px 28px !important;
  }

  .pr-investment-source-mark--foot {
    width: 145px;
  }

  .pr-investment-case-note,
  .pr-investment-case-foot .pr-button {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-foot {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .pr-investment-source-mark--foot {
    width: 142px;
    margin: 2px 0 0;
  }

  .pr-investment-source-mark--foot img {
    width: 128px;
  }

  .pr-investment-case-note,
  .pr-investment-case-foot .pr-button {
    grid-column: auto !important;
  }
}


/* =========================================================
   v0.3.74 — simplified Investment evidence row
   Supporting metric + larger financial-analysis mark + source/disclaimer.
   ========================================================= */
.pr-investment-case-foot {
  grid-template-columns:
    minmax(160px, .55fr)
    minmax(220px, .76fr)
    minmax(0, 1.9fr) !important;
  gap: clamp(30px, 4vw, 64px) !important;
  align-items: center !important;
}

.pr-investment-source-mark--foot {
  justify-self: start;
  width: 220px !important;
  max-width: 100%;
  gap: 10px !important;
}

.pr-investment-source-mark--foot > span {
  font-size: .64rem !important;
  letter-spacing: .15em !important;
}

.pr-investment-source-mark--foot img {
  width: 205px !important;
  max-width: 100%;
  max-height: 44px !important;
  opacity: .92 !important;
}

.pr-investment-case-note {
  max-width: 780px;
}

@media (max-width: 1100px) {
  .pr-investment-case-foot {
    grid-template-columns:
      minmax(145px, .55fr)
      minmax(190px, .72fr)
      minmax(0, 1.65fr) !important;
    gap: 26px 34px !important;
  }

  .pr-investment-source-mark--foot {
    width: 195px !important;
  }

  .pr-investment-source-mark--foot img {
    width: 182px !important;
  }
}

@media (max-width: 980px) {
  .pr-investment-case-foot {
    grid-template-columns: minmax(0, .75fr) minmax(0, 1fr) !important;
    gap: 22px 28px !important;
  }

  .pr-investment-case-note {
    grid-column: 1 / -1 !important;
    max-width: none;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-foot {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .pr-investment-source-mark--foot {
    width: 190px !important;
  }

  .pr-investment-source-mark--foot img {
    width: 176px !important;
    max-height: 40px !important;
  }

  .pr-investment-case-note {
    grid-column: auto !important;
  }
}


/* =========================================================
   v0.3.75 — unified post-hero section heading system
   Investment / Resort / Gallery / Property use one eyebrow,
   rule, title size and spacing language.
   ========================================================= */

/* Retire historical pseudo-element rules so there is only one intentional line. */
.pr-investment-case-head .pr-eyebrow::after,
.pr-resort-head .pr-eyebrow::after,
.pr-gallery-head .pr-eyebrow::after,
.pr-property-media-eyebrow::after,
.pr-property-copy > .pr-eyebrow::after,
.pr-v030-line::after {
  display: none !important;
  content: none !important;
}

/* Shared eyebrow typography. */
.pr-investment-case-head .pr-eyebrow,
.pr-resort-head .pr-eyebrow,
.pr-gallery-head .pr-eyebrow,
.pr-property-copy .pr-eyebrow {
  margin: 0 !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
}

/* One line system: starts on the exact same left edge as eyebrow and H2. */
.pr-section-rule {
  display: block;
  width: 44px;
  height: 2px;
  margin: 12px 0 14px;
  background: var(--pr-gold);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 680ms cubic-bezier(.16,.78,.22,1);
  pointer-events: none;
}

.pr-section-rule.is-drawn {
  transform: scaleX(1);
}

.pr-resort .pr-section-rule {
  background: var(--pr-gold);
}

/* One H2 system after the hero. */
.pr-investment-case-head h2,
.pr-resort-head h2,
.pr-gallery-head h2,
.pr-property-copy h2 {
  margin: 0 !important;
  font-size: clamp(2rem, 2.75vw, 2.9rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -.035em !important;
  font-weight: 700 !important;
  text-wrap: balance;
}

/* Shared two-column heading rhythm where the section has a right-side intro. */
.pr-investment-case-head,
.pr-resort-head,
.pr-gallery-head {
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr) !important;
  gap: clamp(34px, 5vw, 80px) !important;
  align-items: end !important;
  margin-bottom: 34px !important;
}

.pr-investment-case-head > p,
.pr-investment-case-head > .pr-investment-case-assumptions,
.pr-resort-head > p,
.pr-gallery-head > p {
  max-width: 50ch !important;
  margin: 0 0 4px auto !important;
  font-size: clamp(.98rem, 1.05vw, 1.1rem) !important;
  line-height: 1.62 !important;
}

/* Property keeps its approved structural layout but adopts the exact same title system. */
.pr-property-copy .pr-section-rule {
  margin-top: 12px;
  margin-bottom: 14px;
}

.pr-property-copy h2 {
  margin-bottom: 18px !important;
}

@media (max-width: 980px) {
  .pr-investment-case-head,
  .pr-resort-head,
  .pr-gallery-head {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-bottom: 28px !important;
  }

  .pr-investment-case-head > p,
  .pr-investment-case-head > .pr-investment-case-assumptions,
  .pr-resort-head > p,
  .pr-gallery-head > p {
    max-width: none !important;
    margin: 0 !important;
  }
}

@media (max-width: 700px) {
  .pr-investment-case-head .pr-eyebrow,
  .pr-resort-head .pr-eyebrow,
  .pr-gallery-head .pr-eyebrow,
  .pr-property-copy .pr-eyebrow {
    font-size: .7rem !important;
    letter-spacing: .15em !important;
  }

  .pr-section-rule {
    width: 40px;
    margin-top: 10px;
    margin-bottom: 12px;
  }

  .pr-investment-case-head h2,
  .pr-resort-head h2,
  .pr-gallery-head h2,
  .pr-property-copy h2 {
    font-size: clamp(1.85rem, 8vw, 2.25rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
  }

  .pr-investment-case-head,
  .pr-resort-head,
  .pr-gallery-head {
    gap: 14px !important;
    margin-bottom: 24px !important;
  }

  .pr-investment-case-head > p,
  .pr-investment-case-head > .pr-investment-case-assumptions,
  .pr-resort-head > p,
  .pr-gallery-head > p {
    font-size: .92rem !important;
    line-height: 1.55 !important;
  }

  .pr-property-copy h2 {
    margin-bottom: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-section-rule {
    transform: scaleX(1) !important;
    transition: none !important;
  }
}


/* =========================================================
   v0.3.76 — compact mobile Investment evidence row
   Logo + 2.2× metric share one row; source copy sits beneath.
   Desktop/tablet layout remains unchanged.
   ========================================================= */
@media (max-width: 700px) {
  .pr-investment-case-foot {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(120px, .85fr) !important;
    gap: 18px 20px !important;
    align-items: center !important;
  }

  /* Put the financial-analysis mark first on mobile. */
  .pr-investment-source-mark--foot {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: center !important;
    justify-self: start !important;
  }

  /* The separate label becomes redundant in the compact two-column row. */
  .pr-investment-source-mark--foot .pr-investment-source-label {
    display: none !important;
  }

  .pr-investment-source-mark--foot img {
    display: block !important;
    width: min(148px, 100%) !important;
    max-width: 148px !important;
    max-height: 38px !important;
    opacity: .94 !important;
  }

  /* Metric sits beside the logo. */
  .pr-investment-case-secondary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    align-self: center !important;
    justify-self: start !important;
  }

  .pr-investment-case-secondary span {
    display: block !important;
    line-height: 1.22 !important;
  }

  .pr-investment-case-secondary strong {
    display: block !important;
    margin-bottom: 3px !important;
    font-size: 1.26rem !important;
    line-height: 1 !important;
  }

  /* Source/disclaimer spans the full width below the compact evidence row. */
  .pr-investment-case-note {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    max-width: none !important;
  }

  .pr-investment-case-note p:first-child {
    margin-top: 0 !important;
  }
}


/* =========================================================
   v0.3.77 — final post-hero heading spacing normalization
   Property now uses the same rule spacing as Investment,
   Resort and Gallery at both desktop and mobile breakpoints.
   ========================================================= */
.pr-property-copy .pr-section-rule {
  margin: 12px 0 14px !important;
}

@media (max-width: 700px) {
  .pr-property-copy .pr-section-rule {
    margin: 10px 0 12px !important;
  }
}


/* =========================================================
   v0.3.78 — fix Property heading specificity leak
   Older Property-only !important rules were overriding the shared
   post-hero heading system. These rules make the internal heading
   component genuinely identical to Investment / Resort / Gallery.
   ========================================================= */

/* Desktop/tablet: exact shared eyebrow typography with ZERO legacy bottom margin. */
.pr-property-editorial .pr-property-copy > .pr-eyebrow {
  margin: 0 !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
}

/* Exact shared rule spacing. */
.pr-property-editorial .pr-property-copy > .pr-section-rule {
  width: 44px !important;
  height: 2px !important;
  margin: 12px 0 14px !important;
}

/* Exact shared H2 typography. */
.pr-property-editorial .pr-property-copy > h2 {
  margin: 0 0 18px !important;
  font-size: clamp(2rem, 2.75vw, 2.9rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -.035em !important;
  font-weight: 700 !important;
}

@media (max-width: 700px) {
  .pr-property-editorial .pr-property-copy > .pr-eyebrow {
    margin: 0 !important;
    font-size: .7rem !important;
    line-height: 1.2 !important;
    letter-spacing: .15em !important;
  }

  .pr-property-editorial .pr-property-copy > .pr-section-rule {
    width: 40px !important;
    height: 2px !important;
    margin: 10px 0 12px !important;
  }

  .pr-property-editorial .pr-property-copy > h2 {
    margin: 0 0 14px !important;
    font-size: clamp(1.85rem, 8vw, 2.25rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
    font-weight: 700 !important;
  }
}


/* =========================================================
   v0.3.79 — inquiry communication preferences + polished focus
   ========================================================= */

/* Form controls get one intentional focus treatment instead of the global
   3px outline stacking on top of their own border. */
.pr-form-card .pr-field input:not([type="checkbox"]):focus-visible,
.pr-form-card .pr-field select:focus-visible,
.pr-form-card .pr-field textarea:focus-visible {
  outline: none !important;
  border-color: var(--pr-gold) !important;
  box-shadow: 0 0 0 3px rgba(203,160,82,.14) !important;
}

/* Communication preference fieldset. */
.pr-contact-method-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.pr-contact-method-field legend {
  display: block;
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
}

.pr-contact-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.pr-contact-method {
  position: relative;
  display: flex !important;
  align-items: center !important;
  min-height: 42px !important;
  padding: 9px 10px !important;
  border: 1px solid #d1d0cb;
  border-radius: 6px;
  background: #fff;
  color: #171717;
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.pr-contact-method:hover {
  border-color: #b7b3aa;
  background: #fcfbf7;
}

.pr-contact-method input {
  appearance: none;
  -webkit-appearance: none;
  width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  flex: 0 0 17px;
  margin: 0 9px 0 0 !important;
  padding: 0 !important;
  border: 1.5px solid #9f9b91 !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
  cursor: pointer;
}

.pr-contact-method input:checked {
  border-color: var(--pr-gold) !important;
  background:
    var(--pr-gold)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.2 8.1 3 3.1 6.6-6.7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / 13px 13px no-repeat !important;
}

.pr-contact-method:has(input:checked) {
  border-color: var(--pr-gold);
  background: #fbf8ed;
}

.pr-contact-method:has(input:focus-visible) {
  border-color: var(--pr-gold);
  box-shadow: 0 0 0 3px rgba(203,160,82,.14);
}

.pr-contact-method input:focus-visible {
  outline: none !important;
}

.pr-contact-method span {
  min-width: 0;
  font-size: .86rem;
  font-weight: 500;
  line-height: 1.2;
}

.pr-contact-method-error {
  display: block;
  min-height: 0;
  margin-top: 6px;
  color: #9c2e36;
  font-size: .72rem;
  line-height: 1.3;
}

.pr-contact-method-field.has-error .pr-contact-methods {
  border-radius: 7px;
  box-shadow: 0 0 0 2px rgba(156,46,54,.12);
}

.pr-modal .pr-form-row--secondary {
  align-items: start;
}

@media (max-width: 700px) {
  .pr-contact-methods {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pr-contact-method {
    min-height: 44px !important;
  }
}


/* =========================================================
   v0.3.80 — Pontus Rotana brand mark inside inquiry modal
   ========================================================= */

/* Desktop: use the otherwise empty upper-right header space while preserving
   the close button as the primary control in that corner. */
.pr-form-card--modal {
  position: relative;
}

.pr-form-card--modal .pr-modal-brand {
  position: absolute;
  top: 28px;
  right: 78px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: clamp(132px, 17vw, 172px);
  min-height: 36px;
  pointer-events: none;
}

.pr-form-card--modal .pr-modal-brand img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 42px;
  object-fit: contain;
  object-position: right center;
}

/* Protect the text header from the brand mark on desktop. */
.pr-form-card--modal > .pr-form-kicker,
.pr-form-card--modal > h2,
.pr-form-card--modal > .pr-form-intro {
  max-width: calc(100% - 188px);
}

/* Tablet/mobile: return the mark to normal flow above the eyebrow.
   This avoids collisions with the close button and keeps the modal compact. */
@media (max-width: 700px) {
  .pr-form-card--modal .pr-modal-brand {
    position: static;
    width: 136px;
    min-height: 0;
    margin: 0 0 14px;
    justify-content: flex-start;
    pointer-events: none;
  }

  .pr-form-card--modal .pr-modal-brand img {
    max-height: 38px;
    object-position: left center;
  }

  .pr-form-card--modal > .pr-form-kicker,
  .pr-form-card--modal > h2,
  .pr-form-card--modal > .pr-form-intro {
    max-width: none;
  }
}


/* =========================================================
   v0.3.81 — modal polish + hero installment fact
   ========================================================= */

/* Modal title and Pontus Rotana mark share one deliberate header row. */
.pr-form-card--modal .pr-modal-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  margin: 0 0 8px;
  padding-right: 44px; /* preserve clear space for modal close control */
}

.pr-form-card--modal .pr-modal-title-row h2 {
  min-width: 0;
  margin: 0 !important;
  flex: 1 1 auto;
}

.pr-form-card--modal .pr-modal-brand {
  position: static !important;
  flex: 0 0 auto;
  width: clamp(155px, 18vw, 190px) !important;
  min-height: 0 !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  pointer-events: none;
}

.pr-form-card--modal .pr-modal-brand img {
  display: block;
  width: 100% !important;
  max-width: 190px !important;
  max-height: 56px !important;
  height: auto;
  object-fit: contain;
  object-position: right center;
}

/* v0.3.80 reserved text width is no longer needed because row layout handles it. */
.pr-form-card--modal > .pr-form-kicker,
.pr-form-card--modal > h2,
.pr-form-card--modal > .pr-form-intro {
  max-width: none !important;
}

/* Preferred communication uses the same clean select styling as other controls. */
.pr-form-card--modal .pr-field select {
  min-height: 48px;
  padding-right: 40px;
  background-color: #fff;
}


@media (max-width: 700px) {
  .pr-form-card--modal .pr-modal-title-row {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 10px;
    padding-right: 40px;
    margin-bottom: 7px;
  }

  .pr-form-card--modal .pr-modal-brand {
    width: 158px !important;
    justify-content: flex-start !important;
  }

  .pr-form-card--modal .pr-modal-brand img {
    max-width: 158px !important;
    max-height: 48px !important;
    object-position: left center !important;
  }
}


/* =========================================================
   v0.3.82 — Investment metric alignment
   Center the primary metric + label as one visual block on
   tablet/desktop while preserving asymmetric icon/brand details.
   ========================================================= */
@media (min-width: 701px) {
  .pr-investment-case-card > strong {
    width: 100%;
    text-align: center;
  }

  .pr-investment-case-card h3 {
    max-width: 17ch;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center;
    text-wrap: balance;
  }
}


/* =========================================================
   v0.3.83 — center Investment metric block within each card
   Desktop/tablet only. Icon stays top-left; metric copy is
   centered horizontally and vertically, with a slight upward bias.
   ========================================================= */
@media (min-width: 701px) {
  .pr-investment-case-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .pr-investment-case-card .pr-investment-case-icon {
    position: absolute;
    top: clamp(30px, 3.2vw, 48px);
    left: clamp(30px, 3.2vw, 48px);
    margin: 0 !important;
  }

  .pr-investment-case-card > strong,
  .pr-investment-case-card h3 {
    position: relative;
    z-index: 1;
    width: 100%;
    text-align: center;
    transform: translateY(-10px);
  }

  .pr-investment-case-card h3 {
    max-width: 17ch;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* =========================================================
   v0.3.84 — precise desktop/tablet metric row alignment
   Keep icon, value and label on independent shared rows so
   wrapped labels cannot move the numeric values vertically.
   ========================================================= */
@media (min-width: 701px) {
  .pr-investment-case-card {
    display: block !important;
  }

  /* Consistent upper-left icon placement, with comfortable edge clearance. */
  .pr-investment-case-card .pr-investment-case-icon {
    position: absolute !important;
    top: 28px !important;
    left: clamp(28px, 2.6vw, 40px) !important;
    margin: 0 !important;
  }

  /* All values occupy exactly the same row. */
  .pr-investment-case-card > strong {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: calc(100% - 48px) !important;
    margin: 0 !important;
    text-align: center !important;
    transform: translate(-50%, -70%) !important;
    z-index: 1;
    white-space: nowrap;
  }

  /* All labels begin from exactly the same row under the values. */
  .pr-investment-case-card h3 {
    position: absolute !important;
    top: calc(50% + 34px) !important;
    left: 50% !important;
    width: calc(100% - 48px) !important;
    max-width: 18ch !important;
    margin: 0 !important;
    text-align: center !important;
    transform: translateX(-50%) !important;
    z-index: 1;
    text-wrap: balance;
  }
}

/* Give the wider payback value a little more breathing room without
   changing its shared row position. */
@media (min-width: 701px) and (max-width: 1180px) {
  .pr-investment-case-card--payback > strong {
    font-size: clamp(2.55rem, 3vw, 3.5rem) !important;
  }
}


/* =========================================================
   v0.3.85 — Pontus Rotana resort mark in desktop hero
   ========================================================= */
.pr-hero-resort-brand {
  display: none;
}

@media (min-width: 981px) {
  .pr-hero-resort-brand {
    display: block;
    width: clamp(150px, 11vw, 176px);
    margin: 0 0 20px;
    line-height: 0;
    pointer-events: none;
  }

  .pr-hero-resort-brand img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 62px;
    object-fit: contain;
    object-position: left center;
  }
}


/* =========================================================
   v0.3.86 — cropped Pontus Rotana logo asset
   New PNG has transparent padding removed, so both placements
   can use natural alignment without compensating for empty canvas.
   ========================================================= */
@media (min-width: 981px) {
  .pr-hero-resort-brand {
    width: clamp(158px, 11.5vw, 182px) !important;
    margin-bottom: 16px !important;
  }

  .pr-hero-resort-brand img {
    max-height: 64px !important;
  }
}

.pr-form-card--modal .pr-modal-brand {
  width: clamp(165px, 19vw, 198px) !important;
}

.pr-form-card--modal .pr-modal-brand img {
  max-width: 198px !important;
  max-height: 58px !important;
}

@media (max-width: 700px) {
  .pr-form-card--modal .pr-modal-brand {
    width: 166px !important;
  }

  .pr-form-card--modal .pr-modal-brand img {
    max-width: 166px !important;
    max-height: 50px !important;
  }
}

/* =========================================================
   v0.4.2 — Pontus Rotana + Managed by Rotana hero lockup
   Keep the property brand dominant and the operator mark secondary.
   Both marks remain visible on desktop and mobile.
   ========================================================= */
.pr-hero-brand-lockup {
  display: flex;
  align-items: center;
  gap: clamp(18px, 1.8vw, 26px);
  width: max-content;
  max-width: 100%;
  margin: 0 0 16px;
  line-height: 0;
  pointer-events: none;
}

/* Override the older desktop-only hero-logo rule. */
.pr-hero-brand-lockup .pr-hero-resort-brand {
  display: block !important;
  width: clamp(158px, 11.5vw, 182px) !important;
  margin: 0 !important;
  line-height: 0;
  flex: 0 0 auto;
}

.pr-hero-brand-lockup .pr-hero-resort-brand img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 64px !important;
  object-fit: contain;
  object-position: left center;
}

.pr-hero-managed-brand {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 48px;
  padding-left: clamp(18px, 1.65vw, 24px);
}

.pr-hero-managed-brand::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: rgba(255,255,255,.24);
}

.pr-hero-managed-brand img {
  display: block;
  width: clamp(88px, 7vw, 108px);
  height: auto;
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 980px) {
  .pr-hero-brand-lockup {
    gap: 15px;
    margin-bottom: 13px;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand {
    width: clamp(108px, 30vw, 124px) !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img {
    max-height: 48px !important;
  }

  .pr-hero-managed-brand {
    min-height: 38px;
    padding-left: 15px;
  }

  .pr-hero-managed-brand::before {
    top: 5px;
    bottom: 5px;
  }

  .pr-hero-managed-brand img {
    width: clamp(72px, 22vw, 90px);
    max-height: 36px;
  }
}

@media (max-width: 700px) {
  /* The lockup adds useful brand context at the top, so reclaim some of the
     old empty top space instead of simply pushing the sales message down. */
  .pr-hero-stage-inner {
    padding-top: 28px !important;
  }

  .pr-hero-brand-lockup {
    gap: 13px;
    margin-bottom: 12px;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand {
    width: clamp(104px, 31vw, 118px) !important;
  }

  .pr-hero-managed-brand {
    min-height: 34px;
    padding-left: 13px;
  }

  .pr-hero-managed-brand img {
    width: clamp(68px, 22vw, 84px);
    max-height: 32px;
  }

  /* Keep the existing lower support-copy composition balanced after adding
     the lockup above the eyebrow/title group. */
  .pr-hero .pr-lead {
    margin-top: clamp(58px, 8.2svh, 78px) !important;
  }
}

@media (max-width: 360px) {
  .pr-hero-stage-inner {
    padding-top: 24px !important;
  }

  .pr-hero-brand-lockup {
    gap: 11px;
    margin-bottom: 10px;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand {
    width: 102px !important;
  }

  .pr-hero-managed-brand {
    padding-left: 11px;
  }

  .pr-hero-managed-brand img {
    width: 68px;
  }

  .pr-hero .pr-lead {
    margin-top: 52px !important;
  }
}



/* =========================================================
   v0.4.3 — mobile header logo + balanced dual-brand hero row
   Desktop v0.4.2 lockup is unchanged. On mobile the property and
   operator marks share equal visual boxes, while the sticky header
   always keeps the Pontus Rotana brand visible at the left.
   ========================================================= */
@media (max-width: 700px) {
  /* Keep the actual site-header logo present on mobile. */
  .pr-site-header .pr-brand {
    display: inline-flex !important;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
    max-width: calc(100% - 116px);
    line-height: 0;
    position: relative;
    z-index: 1;
  }

  .pr-site-header .pr-brand img {
    display: block !important;
    width: clamp(108px, 31vw, 124px) !important;
    max-width: 100%;
    height: auto;
    max-height: 38px !important;
    object-fit: contain;
    object-position: left center;
    transform: none !important;
  }

  /* Equal mobile brand boxes: Pontus Rotana left, Managed by Rotana right. */
  .pr-hero-brand-lockup {
    width: 100%;
    max-width: 100%;
    gap: clamp(18px, 6vw, 26px);
    margin-bottom: 24px;
    align-items: center;
    justify-content: flex-start;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand,
  .pr-hero-managed-brand {
    width: clamp(108px, 31vw, 122px) !important;
    min-height: 0;
    padding: 0;
    margin: 0 !important;
    flex: 0 0 auto;
  }

  .pr-hero-managed-brand::before {
    display: none;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img,
  .pr-hero-managed-brand img {
    display: block;
    width: 100% !important;
    height: 44px;
    max-height: 44px !important;
    object-fit: contain;
    object-position: left center;
  }
}

@media (max-width: 360px) {
  .pr-site-header .pr-brand img {
    width: 106px !important;
  }

  .pr-hero-brand-lockup {
    gap: 16px;
    margin-bottom: 22px;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand,
  .pr-hero-managed-brand {
    width: 104px !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img,
  .pr-hero-managed-brand img {
    height: 41px;
    max-height: 41px !important;
  }
}


.pr-brand-logo--mobile {
  display: none !important;
}

/* =========================================================
   v0.4.4 — mobile header brand fallback + edge-anchored hero logos
   The two hero marks sit on opposite sides of the mobile content width.
   Header logo rendering is also protected by the PHP fallback in header.php.
   ========================================================= */
@media (max-width: 700px) {
  .pr-site-header .pr-brand {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto;
    max-width: calc(100% - 112px);
    overflow: visible;
  }

  .pr-site-header .pr-brand img {
    visibility: visible !important;
    opacity: 1 !important;
    width: clamp(100px, 30vw, 116px) !important;
    max-width: none !important;
    height: auto !important;
    max-height: 36px !important;
    object-fit: contain;
    object-position: left center;
  }

  /* Mobile deliberately uses the exact same approved Pontus Rotana mark as
     the hero. Keep the desktop/global header asset out of this viewport. */
  .pr-site-header .pr-brand-logo--desktop {
    display: none !important;
  }

  .pr-site-header .pr-brand-logo--mobile {
    display: block !important;
  }

  /* Opposite anchors rather than one centered/clustered logo group. */
  .pr-hero-brand-lockup {
    display: flex;
    width: 100% !important;
    max-width: none !important;
    justify-content: space-between !important;
    align-items: center;
    gap: 0 !important;
    margin: 0 0 26px !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand,
  .pr-hero-managed-brand {
    width: clamp(102px, 31vw, 120px) !important;
    flex: 0 0 auto;
    padding: 0 !important;
    margin: 0 !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand {
    margin-right: auto !important;
  }

  .pr-hero-managed-brand {
    margin-left: auto !important;
    justify-content: flex-end;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img,
  .pr-hero-managed-brand img {
    width: 100% !important;
    height: 44px !important;
    max-height: 44px !important;
    object-fit: contain;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img {
    object-position: left center;
  }

  .pr-hero-managed-brand img {
    object-position: right center;
  }
}

@media (max-width: 360px) {
  .pr-site-header .pr-brand img {
    width: 100px !important;
    max-height: 34px !important;
  }

  .pr-hero-brand-lockup {
    margin-bottom: 24px !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand,
  .pr-hero-managed-brand {
    width: 102px !important;
  }

  .pr-hero-brand-lockup .pr-hero-resort-brand img,
  .pr-hero-managed-brand img {
    height: 42px !important;
    max-height: 42px !important;
  }
}


/* =========================================================
   v0.4.5 — one canonical global header logo
   Header now renders one image element on every viewport. The property and
   operator logos remain a separate two-mark lockup inside the hero only.
   ========================================================= */
.pr-site-header .pr-brand-logo {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 700px) {
  .pr-site-header .pr-brand-logo {
    display: block !important;
    width: clamp(100px, 30vw, 116px) !important;
    max-width: none !important;
    max-height: 36px !important;
  }
}

@media (max-width: 360px) {
  .pr-site-header .pr-brand-logo {
    width: 100px !important;
    max-height: 34px !important;
  }
}

/* =========================================================
   v0.4.6 — smaller global logo + simplified support launcher
   - Slightly reduces the Pontus header mark at every viewport.
   - Removes the floating Investment Details pill from the dock layout.
   - Replaces the menu-bars contact launcher with a support/headset mark.
   - A delayed, low-duty pulse uses transform/opacity only.
   ========================================================= */
.pr-site-header .pr-brand-logo {
  width: clamp(140px, 13.5vw, 194px) !important;
  max-height: 44px !important;
}

.pr-contact-dock {
  grid-template-columns: 56px !important;
  width: auto !important;
}

.pr-contact-dock-toggle {
  isolation: isolate;
  overflow: visible;
}

.pr-contact-dock-toggle-support {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  opacity: 1;
  transform: scale(1);
  transition: opacity .18s ease, transform .18s ease;
}

.pr-contact-dock-toggle-support svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pr-contact-dock.is-open .pr-contact-dock-toggle-support {
  opacity: 0;
  transform: scale(.72) rotate(18deg);
}

.pr-contact-dock-toggle::after {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  border: 2px solid rgba(203,160,82,.78);
  border-radius: 50%;
  opacity: 0;
  transform: scale(.9);
  pointer-events: none;
  will-change: transform, opacity;
}

.pr-contact-dock.is-pulse-ready:not(.is-open) .pr-contact-dock-toggle::after {
  animation: pr-support-pulse 4s ease-out infinite;
}

@keyframes pr-support-pulse {
  0%   { opacity: .52; transform: scale(.9); }
  24%  { opacity: 0; transform: scale(1.48); }
  100% { opacity: 0; transform: scale(1.48); }
}

@media (max-width: 700px) {
  .pr-site-header .pr-brand-logo {
    width: clamp(94px, 27vw, 108px) !important;
    max-height: 32px !important;
  }

  .pr-contact-dock {
    left: auto !important;
    right: 13px !important;
    bottom: max(13px, env(safe-area-inset-bottom)) !important;
    grid-template-columns: 50px !important;
    gap: 0 !important;
  }
}

@media (max-width: 360px) {
  .pr-site-header .pr-brand-logo {
    width: 94px !important;
    max-height: 31px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-contact-dock-toggle-support { transition: none; }
  .pr-contact-dock-toggle::after { animation: none !important; }
}



/* =========================================================
   v0.4.7 — Pontus Pantone gold system + primary WhatsApp action
   - 7407 C screen approximation is the primary gold.
   - 7403 C screen approximation is the hover/secondary gold.
   - WhatsApp remains intentionally recognizable in its brand green and is
     slightly larger than the other contact methods because it is the primary
     messaging conversion path.
   ========================================================= */
.pr-contact-dock-action--whatsapp {
  width: 60px !important;
  height: 60px !important;
  min-height: 60px !important;
  margin-inline: -2px;
  background: #25D366 !important;
  border-color: #25D366 !important;
  color: #fff !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.27), 0 0 0 3px rgba(37,211,102,.12) !important;
}

.pr-contact-dock-action--whatsapp svg {
  width: 29px !important;
  height: 29px !important;
  fill: none !important;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pr-contact-dock-action--whatsapp:hover,
.pr-contact-dock-action--whatsapp:focus-visible {
  background: var(--pr-gold-light) !important;
  border-color: var(--pr-gold-light) !important;
  color: #111 !important;
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 16px 38px rgba(0,0,0,.28), 0 0 0 3px rgba(238,212,132,.20) !important;
}

/* Secondary/hover gold consistently uses Pantone 7403 C approximation. */
.pr-contact-dock-toggle:hover,
.pr-contact-dock-toggle:focus-visible {
  border-color: var(--pr-gold-light);
}

@media (max-width: 760px) {
  .pr-contact-dock-action--whatsapp {
    width: 58px !important;
    height: 58px !important;
    min-height: 58px !important;
    margin-inline: -2px;
  }
}

/* Final interaction token enforcement: gallery inline controls are gold on hover. */
@media (hover:hover) and (pointer:fine) {
  .pr-gallery-nav:hover {
    background: var(--pr-gold-light) !important;
    border-color: var(--pr-gold-light) !important;
    color: #111 !important;
  }
}


/* =========================================================
   v0.4.8 — strict brand-gold normal states + footer resilience
   - Pantone 7407 C approximation (#CBA052) is the normal-state gold for
     icons, rules, badges and decorative accents.
   - Pantone 7403 C approximation (#EED484) remains reserved for hover/focus
     or secondary interaction states.
   - --pr-gold-text remains the accessibility-safe dark derivative only for
     small text on light backgrounds where #CBA052 lacks sufficient contrast.
   ========================================================= */
.pr-language-switcher span[aria-current="page"],
.pr-hero-fact-icon,
.pr-resort-more > span,
.pr-investment--headline .pr-eyebrow,
.pr-investment-feature-metric strong,
.pr-hero-standard,
.pr-footer-contact-icon {
  color: var(--pr-gold);
}

.pr-resort .pr-section-rule { background: var(--pr-gold); }

@media (max-width: 700px) {
  .pr-property-editorial .pr-property-points li::before {
    background: var(--pr-gold) !important;
    color: #111 !important;
  }
}


/* =========================================================
   v0.4.9 — real WhatsApp brand glyph + stronger support cue
   - Uses a locally bundled Simple Icons WhatsApp SVG rather than a hand-drawn
     approximation.
   - The closed support launcher gets three short attention cycles beginning
     two seconds after load: scale + small hop + expanding ring.
   - Transform/opacity only, so the cue creates no layout shift.
   - Stops permanently after the visitor opens the contact dock once.
   ========================================================= */
.pr-contact-dock-action--whatsapp svg {
  display: none !important;
}

.pr-contact-whatsapp-icon {
  display: block;
  width: 27px;
  height: 27px;
  object-fit: contain;
  pointer-events: none;
}

.pr-contact-dock.is-pulse-ready:not(.is-open):not(.has-engaged) .pr-contact-dock-toggle {
  animation: pr-support-attention 6.2s cubic-bezier(.22,.61,.36,1) 3;
  will-change: transform;
}

.pr-contact-dock.is-pulse-ready:not(.is-open):not(.has-engaged) .pr-contact-dock-toggle::after {
  animation: pr-support-pulse-strong 6.2s ease-out 3;
}

@keyframes pr-support-attention {
  0%, 26%, 100% { transform: translateY(0) scale(1); }
  4%  { transform: translateY(-4px) scale(1.09); }
  8%  { transform: translateY(0) scale(.97); }
  12% { transform: translateY(-2px) scale(1.06); }
  17% { transform: translateY(0) scale(1); }
}

@keyframes pr-support-pulse-strong {
  0%   { opacity: .72; transform: scale(.88); }
  18%  { opacity: 0; transform: scale(1.62); }
  100% { opacity: 0; transform: scale(1.62); }
}

.pr-contact-dock-toggle:hover,
.pr-contact-dock-toggle:focus-visible {
  animation-play-state: paused;
}

@media (max-width: 760px) {
  .pr-contact-whatsapp-icon {
    width: 26px;
    height: 26px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pr-contact-dock.is-pulse-ready:not(.is-open):not(.has-engaged) .pr-contact-dock-toggle,
  .pr-contact-dock.is-pulse-ready:not(.is-open):not(.has-engaged) .pr-contact-dock-toggle::after {
    animation: none !important;
  }
}

/* =========================================================
   v0.5.0 — contact dock geometry normalization
   - Every contact action and the launcher/close control uses one shared size.
   - The action list and launcher share one right-aligned column, so opening the
     dock cannot visually shift WhatsApp or the close button sideways.
   ========================================================= */
.pr-contact-dock {
  --pr-contact-control-size: 56px;
  grid-template-columns: var(--pr-contact-control-size) !important;
  justify-items: end;
}

.pr-contact-dock-toggle,
.pr-contact-dock-action,
.pr-contact-dock-action--whatsapp {
  width: var(--pr-contact-control-size) !important;
  height: var(--pr-contact-control-size) !important;
  min-width: var(--pr-contact-control-size) !important;
  min-height: var(--pr-contact-control-size) !important;
  margin-inline: 0 !important;
}

.pr-contact-dock-actions {
  right: 0 !important;
  width: var(--pr-contact-control-size);
  justify-items: center;
}

.pr-contact-whatsapp-icon {
  width: 23px;
  height: 23px;
}

@media (max-width: 760px) {
  .pr-contact-dock {
    --pr-contact-control-size: 50px;
  }

  .pr-contact-dock-actions {
    width: var(--pr-contact-control-size);
  }

  .pr-contact-whatsapp-icon {
    width: 21px;
    height: 21px;
  }
}


/* =========================================================
   v0.5.1 — suppress mobile tap flash on contact controls
   - Removes the browser's transient blue touch highlight from the floating
     contact launcher and action buttons.
   - Keyboard focus remains visible through the existing :focus-visible rules.
   ========================================================= */
.pr-contact-dock-toggle,
.pr-contact-dock-action {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  touch-action: manipulation;
}


/* =========================================================
   v0.5.2 — direct WhatsApp CTA + complete footer contacts
   - Replaces the expandable floating contact dock with one direct WhatsApp CTA.
   - Moves phone, WhatsApp, Telegram and email into a responsive footer contact grid.
   - Keeps the delayed transform/opacity attention cue without layout movement.
   ========================================================= */
.pr-whatsapp-float {
  position: fixed;
  right: clamp(18px, 2.4vw, 34px);
  bottom: clamp(18px, 2.4vw, 34px);
  z-index: 120;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #25D366;
  border: 1px solid rgba(255,255,255,.36);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(0,0,0,.28), 0 0 0 3px rgba(37,211,102,.12);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  touch-action: manipulation;
  isolation: isolate;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.pr-whatsapp-float img {
  width: 25px;
  height: 25px;
  display: block;
  object-fit: contain;
  pointer-events: none;
}
.pr-whatsapp-float::after {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  border: 2px solid rgba(203,160,82,.82);
  border-radius: 50%;
  opacity: 0;
  transform: scale(.88);
  pointer-events: none;
  will-change: transform, opacity;
}
.pr-whatsapp-float.is-pulse-ready:not(.has-engaged) {
  animation: pr-whatsapp-attention-v052 6.2s cubic-bezier(.22,.61,.36,1) 3;
  will-change: transform;
}
.pr-whatsapp-float.is-pulse-ready:not(.has-engaged)::after {
  animation: pr-whatsapp-ring-v052 6.2s ease-out 3;
}
.pr-whatsapp-float:hover,
.pr-whatsapp-float:focus-visible {
  background: #25D366;
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 18px 40px rgba(0,0,0,.3), 0 0 0 4px rgba(37,211,102,.15);
  animation-play-state: paused;
}
.pr-whatsapp-float:focus-visible {
  outline: 3px solid var(--pr-gold-light);
  outline-offset: 3px;
}
@keyframes pr-whatsapp-attention-v052 {
  0%, 26%, 100% { transform: translateY(0) scale(1); }
  4%  { transform: translateY(-4px) scale(1.10); }
  8%  { transform: translateY(0) scale(.97); }
  12% { transform: translateY(-2px) scale(1.07); }
  17% { transform: translateY(0) scale(1); }
}
@keyframes pr-whatsapp-ring-v052 {
  0%   { opacity: .72; transform: scale(.88); }
  18%  { opacity: 0; transform: scale(1.62); }
  100% { opacity: 0; transform: scale(1.62); }
}

/* Footer v0.5.2 */
.pr-site-footer--minimal {
  padding: clamp(34px, 4vw, 54px) 0 22px;
}
.pr-footer-v052 {
  display: grid;
  gap: 28px;
}
.pr-footer-v052-main {
  display: grid;
  grid-template-columns: minmax(230px, .75fr) minmax(0, 2.25fr);
  gap: clamp(34px, 5vw, 74px);
  align-items: start;
}
.pr-footer-v052-identity {
  display: grid;
  gap: 12px;
  color: rgba(255,255,255,.68);
}
.pr-footer-v052-identity > strong {
  color: #fff;
  font-size: .98rem;
  line-height: 1.25;
  font-weight: 700;
}
.pr-footer-v052-location {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  max-width: 330px;
  font-size: .78rem;
  line-height: 1.45;
}
.pr-footer-v052-location-icon,
.pr-footer-v052-contact-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(203,160,82,.48);
  color: var(--pr-gold);
  flex: 0 0 auto;
}
.pr-footer-v052-location-icon svg,
.pr-footer-v052-contact-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pr-footer-v052-contact-icon .pr-footer-v052-icon-fill {
  fill: currentColor;
  stroke: none;
}
.pr-footer-v052-contact-icon img {
  width: 16px;
  height: 16px;
  display: block;
  filter: invert(70%) sepia(43%) saturate(542%) hue-rotate(359deg) brightness(88%) contrast(86%);
}
.pr-footer-v052-contact-wrap {
  display: grid;
  gap: 12px;
}
.pr-footer-v052-heading {
  margin: 0;
  color: var(--pr-gold);
  font-size: .68rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.pr-footer-v052-contacts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}
.pr-footer-v052-contact {
  min-width: 0;
  min-height: 66px;
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 7px;
  background: rgba(255,255,255,.035);
  color: #fff;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}
.pr-footer-v052-contact:hover,
.pr-footer-v052-contact:focus-visible {
  border-color: rgba(238,212,132,.58);
  background: rgba(255,255,255,.065);
  transform: translateY(-1px);
}
.pr-footer-v052-contact-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.pr-footer-v052-contact-copy small {
  color: rgba(255,255,255,.52);
  font-size: .65rem;
  line-height: 1.1;
}
.pr-footer-v052-contact-copy strong {
  min-width: 0;
  color: rgba(255,255,255,.92);
  font-size: .72rem;
  line-height: 1.25;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.pr-footer-v052-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.pr-footer-v052-legal {
  color: rgba(255,255,255,.42);
  font-size: .7rem;
  line-height: 1.4;
}
.pr-footer-v052 .pr-footer-minimal-links {
  margin: 0;
  padding: 0;
  border: 0;
}

@media (max-width: 900px) {
  .pr-footer-v052-main {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .pr-footer-v052-contacts {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 700px) {
  .pr-whatsapp-float {
    width: 50px;
    height: 50px;
    right: 13px;
    bottom: max(13px, env(safe-area-inset-bottom));
  }
  .pr-whatsapp-float img { width: 23px; height: 23px; }
  .pr-site-footer--minimal { padding: 30px 0 82px; }
  .pr-footer-v052 { gap: 22px; }
  .pr-footer-v052-identity { gap: 10px; }
  .pr-footer-v052-contacts { gap: 8px; }
  .pr-footer-v052-contact {
    min-height: 62px;
    padding: 10px;
  }
  .pr-footer-v052-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .pr-footer-v052 .pr-footer-minimal-links {
    display: flex;
    gap: 8px 14px;
  }
}

@media (max-width: 390px) {
  .pr-footer-v052-contacts { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-whatsapp-float,
  .pr-whatsapp-float::after,
  .pr-footer-v052-contact { animation: none !important; transition: none !important; }
}


/* =========================================================
   v0.5.3 — compact mobile legal footer
   - Removes obsolete bottom clearance left by the former expandable contact dock.
   - Keeps copyright and legal links compact and visible on phones.
   ========================================================= */
@media (max-width: 700px) {
  .pr-site-footer--minimal {
    padding-bottom: max(24px, env(safe-area-inset-bottom)) !important;
  }
  .pr-footer-v052-bottom {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
  }
  .pr-footer-v052 .pr-footer-minimal-links {
    justify-content: flex-end;
    margin: 0 !important;
    padding: 0 !important;
  }
}

@media (max-width: 370px) {
  .pr-site-footer--minimal {
    padding-top: 30px !important;
    padding-bottom: max(22px, env(safe-area-inset-bottom)) !important;
  }
  .pr-footer-v052 {
    gap: 20px !important;
  }
  .pr-footer-v052-bottom {
    gap: 7px 14px;
  }
  .pr-footer-v052 .pr-footer-minimal-links {
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* =========================================================
   v0.5.5 — Russian modal title containment
   Keep the same title/logo row as English, but allow the much longer
   Russian heading to wrap inside its own column instead of overlapping.
   ========================================================= */
@media (min-width: 701px) {
  html[lang="ru"] .pr-form-card--modal .pr-modal-title-row {
    align-items: flex-start;
    gap: 20px;
  }

  html[lang="ru"] .pr-form-card--modal .pr-modal-title-row h2 {
    flex: 1 1 0;
    min-width: 0;
    white-space: normal !important;
    font-size: clamp(1.78rem, 2.25vw, 2.16rem);
    line-height: 1.04;
  }

  html[lang="ru"] .pr-form-card--modal .pr-modal-brand {
    width: clamp(145px, 17vw, 170px) !important;
    margin-top: 2px !important;
  }
}


/* =========================================================
   v0.5.7 — footer contact destination + Pontus social links
   Contact in the header scrolls here. The footer remains compact enough for
   mobile while acting as the site's final contact/conversion destination.
   ========================================================= */
#contact { scroll-margin-top: 90px; }
.pr-footer-v057 {
  display: grid;
  gap: 26px;
}
.pr-footer-v057-main {
  display: grid;
  grid-template-columns: minmax(250px, .82fr) minmax(0, 1.55fr);
  gap: clamp(38px, 6vw, 86px);
  align-items: start;
}
.pr-footer-v057-identity {
  display: grid;
  gap: 13px;
  align-content: start;
  color: rgba(255,255,255,.68);
}
.pr-footer-v057-identity > strong {
  color: #fff;
  font-size: 1rem;
  line-height: 1.25;
  font-weight: 700;
}
.pr-footer-v057-location {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  max-width: 360px;
  font-size: .78rem;
  line-height: 1.45;
}
.pr-footer-v057-intro {
  max-width: 38ch;
  margin: 5px 0 2px;
  color: rgba(255,255,255,.86);
  font-size: .82rem;
  line-height: 1.45;
  font-weight: 550;
}
.pr-footer-v057-heading {
  margin: 0;
  color: var(--pr-gold);
  font-size: .68rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.pr-footer-v057-contact-wrap,
.pr-footer-v057-socials-wrap {
  display: grid;
  gap: 12px;
}
.pr-footer-v057-socials-wrap { margin-top: 6px; }
.pr-footer-v057-contacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
}
.pr-footer-v057-contact {
  min-width: 0;
  min-height: 70px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  gap: 11px;
  align-items: center;
  padding: 12px 13px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 7px;
  background: rgba(255,255,255,.035);
  color: #fff;
  text-decoration: none;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}
.pr-footer-v057-contact:hover,
.pr-footer-v057-contact:focus-visible {
  border-color: rgba(238,212,132,.58);
  background: rgba(255,255,255,.065);
  transform: translateY(-1px);
}
.pr-footer-v057-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(203,160,82,.48);
  color: var(--pr-gold);
}
.pr-footer-v057-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pr-footer-v057-icon .pr-footer-v057-icon-fill {
  fill: currentColor;
  stroke: none;
}
.pr-footer-v057-icon-img {
  width: 17px;
  height: 17px;
  display: block;
  filter: invert(70%) sepia(43%) saturate(542%) hue-rotate(359deg) brightness(88%) contrast(86%);
}
.pr-footer-v057-contact-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.pr-footer-v057-contact-copy small {
  color: rgba(255,255,255,.52);
  font-size: .67rem;
  line-height: 1.1;
}
.pr-footer-v057-contact-copy strong {
  min-width: 0;
  color: rgba(255,255,255,.94);
  font-size: .76rem;
  line-height: 1.25;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.pr-footer-v057-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pr-footer-v057-social {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid rgba(203,160,82,.35);
  border-radius: 999px;
  color: rgba(255,255,255,.78);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  font-size: .68rem;
  line-height: 1;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease, transform .18s ease;
}
.pr-footer-v057-social img {
  width: 15px;
  height: 15px;
  display: block;
  filter: invert(70%) sepia(43%) saturate(542%) hue-rotate(359deg) brightness(88%) contrast(86%);
}
.pr-footer-v057-social:hover,
.pr-footer-v057-social:focus-visible {
  color: #fff;
  border-color: var(--pr-gold-light);
  background: rgba(255,255,255,.05);
  transform: translateY(-1px);
}
.pr-footer-v057-social:hover img,
.pr-footer-v057-social:focus-visible img {
  filter: invert(91%) sepia(33%) saturate(487%) hue-rotate(348deg) brightness(102%) contrast(88%);
}
.pr-footer-v057-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.pr-footer-v057-legal {
  color: rgba(255,255,255,.42);
  font-size: .7rem;
  line-height: 1.4;
}
.pr-footer-v057 .pr-footer-minimal-links {
  margin: 0;
  padding: 0;
  border: 0;
}

@media (min-width: 981px) and (max-width: 1120px) {
  .pr-nav { gap: 14px; }
  .pontus-lang-ru .pr-nav { gap: 10px; }
  .pontus-lang-ru .pr-nav > a:not(.pr-button) { font-size: .78rem; }
  .pontus-lang-ru .pr-nav .pr-button { padding-inline: 15px; font-size: .82rem; }
}
@media (max-width: 900px) {
  .pr-footer-v057-main {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .pr-footer-v057-identity { max-width: 700px; }
  .pr-footer-v057-socials-wrap { margin-top: 3px; }
}
@media (max-width: 700px) {
  #contact { scroll-margin-top: 72px; }
  .pr-site-footer--minimal {
    padding-top: 32px !important;
    padding-bottom: max(24px, env(safe-area-inset-bottom)) !important;
  }
  .pr-footer-v057 { gap: 22px; }
  .pr-footer-v057-main { gap: 24px; }
  .pr-footer-v057-identity { gap: 11px; }
  .pr-footer-v057-intro { margin-top: 3px; font-size: .8rem; }
  .pr-footer-v057-contacts { grid-template-columns: 1fr; gap: 8px; }
  .pr-footer-v057-contact { min-height: 62px; padding: 10px 11px; }
  .pr-footer-v057-socials { gap: 7px; }
  .pr-footer-v057-social {
    width: 38px;
    height: 38px;
    min-height: 38px;
    justify-content: center;
    padding: 0;
  }
  .pr-footer-v057-social span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .pr-footer-v057-social img { width: 16px; height: 16px; }
  .pr-footer-v057-bottom {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
  }
  .pr-footer-v057 .pr-footer-minimal-links {
    justify-content: flex-end;
    margin: 0 !important;
    padding: 0 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pr-footer-v057-contact,
  .pr-footer-v057-social { transition: none !important; transform: none !important; }
}


/* =========================================================
   v0.5.9 — mapped footer location + quieter legal links
   ========================================================= */
.pr-footer-v057-location {
  color: rgba(255,255,255,.68);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: color .18s ease;
}
.pr-footer-v057-location:hover,
.pr-footer-v057-location:focus-visible {
  color: #fff;
}
.pr-footer-v057-location:hover .pr-footer-v057-icon,
.pr-footer-v057-location:focus-visible .pr-footer-v057-icon {
  border-color: var(--pr-gold-light);
  color: var(--pr-gold-light);
}
.pr-footer-v057 .pr-footer-minimal-links {
  font-size: .68rem;
  line-height: 1.3;
}
.pr-footer-v057 .pr-footer-minimal-links a {
  color: rgba(255,255,255,.48);
}
.pr-footer-v057 .pr-footer-minimal-links a:hover,
.pr-footer-v057 .pr-footer-minimal-links a:focus-visible {
  color: rgba(255,255,255,.84);
}
@media (max-width: 700px) {
  .pr-footer-v057 .pr-footer-minimal-links {
    font-size: .65rem;
    line-height: 1.3;
  }
}

/* =========================================================
   v0.6.4 — compact cookie consent + Consent Mode v2 UI
   ========================================================= */
.pr-cookie-banner[hidden],
.pr-cookie-panel[hidden] { display: none !important; }

.pr-cookie-banner,
.pr-cookie-panel {
  position: fixed;
  left: 50%;
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 900;
  width: min(1180px, calc(100% - 28px));
  transform: translateX(-50%);
  background: rgba(255,255,255,.985);
  color: var(--pr-ink);
  border: 1px solid rgba(17,17,17,.12);
  border-top: 2px solid var(--pr-gold);
  border-radius: 8px;
  box-shadow: 0 18px 52px rgba(0,0,0,.2);
  -webkit-tap-highlight-color: transparent;
}

.pr-cookie-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px 26px;
  padding: 16px 18px;
}

.pr-cookie-banner-copy { min-width: 0; }
.pr-cookie-title {
  display: block;
  margin-bottom: 3px;
  font-size: .95rem;
  line-height: 1.25;
  color: var(--pr-ink);
}
.pr-cookie-banner p,
.pr-cookie-panel p {
  margin: 0;
  font-size: .78rem;
  line-height: 1.45;
  color: #5d5d5d;
}
.pr-cookie-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 7px;
  align-items: center;
}
.pr-cookie-links a,
.pr-cookie-text-button,
.pr-footer-cookie-settings {
  color: #5d5d5d;
  font: inherit;
  font-size: .75rem;
  line-height: 1.35;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pr-cookie-text-button,
.pr-footer-cookie-settings {
  appearance: none;
  min-height: 0;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.pr-cookie-links a:hover,
.pr-cookie-links a:focus-visible,
.pr-cookie-text-button:hover,
.pr-cookie-text-button:focus-visible,
.pr-footer-cookie-settings:hover,
.pr-footer-cookie-settings:focus-visible { color: var(--pr-ink); }

.pr-cookie-actions,
.pr-cookie-panel-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}
.pr-cookie-button {
  min-height: 44px;
  border-radius: 4px;
  border: 1px solid #171717;
  padding: 9px 15px;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
  -webkit-tap-highlight-color: transparent;
}
.pr-cookie-button:hover { transform: translateY(-1px); }
.pr-cookie-button--accept {
  background: var(--pr-gold);
  border-color: var(--pr-gold);
  color: #111;
}
.pr-cookie-button--accept:hover,
.pr-cookie-button--accept:focus-visible {
  background: var(--pr-gold-light);
  border-color: var(--pr-gold-light);
}
.pr-cookie-button--reject,
.pr-cookie-button--save {
  background: #111;
  border-color: #111;
  color: #fff;
}
.pr-cookie-button--reject:hover,
.pr-cookie-button--reject:focus-visible,
.pr-cookie-button--save:hover,
.pr-cookie-button--save:focus-visible { background: #292929; }

.pr-cookie-panel {
  width: min(560px, calc(100% - 28px));
  padding: 20px;
}
.pr-cookie-panel-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  min-height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #f1efe8;
  color: #111;
  font-size: 1.2rem;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.pr-cookie-panel-head { padding-right: 42px; margin-bottom: 14px; }
.pr-cookie-panel-head strong {
  display: block;
  margin-bottom: 4px;
  font-size: 1.05rem;
  line-height: 1.25;
}
.pr-cookie-category {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid var(--pr-line);
}
.pr-cookie-category strong { display: block; font-size: .86rem; line-height: 1.3; margin-bottom: 2px; }
.pr-cookie-always {
  color: var(--pr-gold-text);
  font-size: .7rem;
  font-weight: 700;
  white-space: nowrap;
}
.pr-cookie-category--toggle { cursor: pointer; }
.pr-cookie-category--toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pr-cookie-switch {
  position: relative;
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: #c9c9c9;
  transition: background-color .16s ease;
}
.pr-cookie-switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.22);
  transition: transform .16s ease;
}
.pr-cookie-category--toggle input:checked + .pr-cookie-switch { background: var(--pr-gold); }
.pr-cookie-category--toggle input:checked + .pr-cookie-switch::after { transform: translateX(18px); }
.pr-cookie-category--toggle input:focus-visible + .pr-cookie-switch { outline: 2px solid #111; outline-offset: 3px; }
.pr-cookie-panel-actions {
  margin-top: 14px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.pr-footer-minimal-links .pr-footer-cookie-settings {
  color: rgba(255,255,255,.62);
  text-decoration: none;
}
.pr-footer-minimal-links .pr-footer-cookie-settings:hover,
.pr-footer-minimal-links .pr-footer-cookie-settings:focus-visible { color: #fff; }

.pr-whatsapp-float { transition: bottom .2s ease, transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
body.pr-consent-ui-visible .pr-whatsapp-float {
  bottom: calc(clamp(18px, 2.4vw, 34px) + var(--pr-consent-ui-offset, 0px));
}

@media (max-width: 760px) {
  .pr-cookie-banner,
  .pr-cookie-panel {
    bottom: max(10px, env(safe-area-inset-bottom));
    width: calc(100% - 20px);
  }
  .pr-cookie-banner {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 14px;
  }
  .pr-cookie-title { font-size: .9rem; }
  .pr-cookie-banner p,
  .pr-cookie-panel p { font-size: .74rem; }
  .pr-cookie-links { margin-top: 6px; gap: 7px 12px; }
  .pr-cookie-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .pr-cookie-button { width: 100%; min-height: 44px; padding-inline: 10px; white-space: normal; }
  .pr-cookie-panel { padding: 17px 14px 14px; }
  .pr-cookie-category { gap: 12px; padding: 12px 0; }
  .pr-cookie-panel-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .pr-cookie-panel-actions .pr-cookie-button--save { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-cookie-button,
  .pr-cookie-switch,
  .pr-cookie-switch::after,
  .pr-whatsapp-float { transition: none !important; }
  .pr-cookie-button:hover { transform: none; }
}

/* v0.6.5 — legal/policy pages: readable, deliberately subordinate to the sales landing page. */
body.page:not(.home) main.pr-section > .pr-container > article {
  width: min(100%, 900px);
  margin-inline: auto;
}
body.page:not(.home) main.pr-section article > h1 {
  margin: 0 0 30px;
  font-size: clamp(2rem, 4.3vw, 3.7rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}
body.page:not(.home) main.pr-section article h2 {
  margin: 42px 0 12px;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.2;
}
body.page:not(.home) main.pr-section article p,
body.page:not(.home) main.pr-section article li {
  color: #4f4f4f;
  font-size: clamp(.98rem, 1.2vw, 1.06rem);
  line-height: 1.72;
}
body.page:not(.home) main.pr-section article ul { padding-left: 1.25rem; }
body.page:not(.home) main.pr-section article a { color: var(--pr-gold-text); text-underline-offset: 3px; }


/* v0.6.6 — complete legal footer set + robust wrapping. */
.pr-footer-v057 .pr-footer-minimal-links {
  align-items: center;
  row-gap: 7px;
  column-gap: 14px;
}
.pr-footer-v057 .pr-footer-minimal-links a,
.pr-footer-v057 .pr-footer-cookie-settings {
  white-space: nowrap;
}
@media (max-width: 700px) {
  .pr-footer-v057-bottom { align-items: flex-start; }
  .pr-footer-v057 .pr-footer-minimal-links {
    width: 100%;
    justify-content: flex-start;
    gap: 7px 13px;
  }
}

/* v0.6.7: compact, keyboard-accessible model explanation. */
[data-inquiry-success][hidden], [data-inquiry-error][hidden], [data-pontus-inquiry-form][hidden] { display: none !important; }
.pr-model-details { margin-top: 24px; border-top: 1px solid var(--pr-line); padding-top: 16px; color: var(--pr-ink-soft); font-size: .9rem; line-height: 1.6; }
.pr-model-details summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
.pr-model-details summary:focus-visible { outline: 2px solid var(--pr-gold-text); outline-offset: 4px; }
.pr-model-details p { margin: 12px 0; max-width: 85ch; }
.pr-model-details a { color: var(--pr-gold-text); text-decoration: underline; text-underline-offset: 3px; }
.pr-model-details .pr-model-actions { display: flex; gap: 12px 24px; flex-wrap: wrap; }
.pr-form-success:focus { outline: none; }

/* =========================================================
   v0.6.8 — baked hero artwork owns branding and image treatment
   The approved desktop/mobile hero artwork now contains both brand marks
   and its own image treatment. Do not stack additional CSS darkening,
   decorative pseudo-elements, or separate logo images over that artwork.
   Preserve the prior copy position so baked-in marks remain unobstructed.
   ========================================================= */
.pr-hero-stage {
  background-image: var(--pr-hero-image) !important;
}

.pr-hero-stage::before,
.pr-hero-stage::after {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* The old logo lockup occupied vertical space above the eyebrow. Keep that
   spacing without loading or rendering duplicate logo assets. */
.pr-hero-copy {
  padding-top: 80px;
}

@media (max-width: 980px) {
  .pr-hero-copy {
    padding-top: 61px;
  }
}

@media (max-width: 700px) {
  .pr-hero-stage {
    background-image: var(--pr-hero-image-mobile, var(--pr-hero-image)) !important;
  }

  .pr-hero-copy {
    padding-top: 70px;
  }
}

@media (max-width: 360px) {
  .pr-hero-copy {
    padding-top: 66px;
  }
}

