    /* ══════════════════════════════════════════
       ONDA-inspired refinement — restraint & air
       ══════════════════════════════════════════ */

    /* ── Hero: taller, more cinematic ── */
    .prop-hero {
      position: relative;
      min-height: 65vh;
      display: flex;
      align-items: flex-end;
      overflow: hidden;
    }
    .prop-hero__bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
    }
    .prop-hero__bg::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(0deg, rgba(26,43,28,0.92) 0%, rgba(26,43,28,0.15) 55%, rgba(26,43,28,0.4) 100%);
    }
    .prop-hero__content {
      position: relative; z-index: 2;
      width: 100%; max-width: var(--max-width);
      margin: 0 auto;
      padding: var(--space-2xl) var(--space-md) var(--space-lg);
    }
    .prop-hero__breadcrumb {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.18em;
      color: rgba(255,255,255,0.4); margin-bottom: var(--space-sm);
    }
    .prop-hero__breadcrumb a { color: var(--gold-light); }
    .prop-hero__name {
      font-size: clamp(2.5rem, 6vw, 4rem);
      color: var(--white); line-height: 1.05;
      margin-bottom: 0.4rem; font-weight: 400;
      letter-spacing: -0.02em;
    }
    .prop-hero__location {
      font-family: var(--font-accent); font-size: 0.8rem;
      text-transform: uppercase; letter-spacing: 0.2em;
      color: var(--gold-light); margin-bottom: 1rem;
    }
    .prop-hero__tagline {
      font-size: clamp(1rem, 1.8vw, 1.15rem);
      color: rgba(255,255,255,0.7); font-weight: 300;
      max-width: 550px; line-height: 1.7;
    }

    /* ── Full-width gallery strip ── */
    .prop-gallery-strip {
      display: flex; gap: 3px;
      width: 100%; overflow: hidden;
      background: var(--green-deep);
    }
    .prop-gallery-strip__item {
      flex: 1 1 0; min-width: 0;
      aspect-ratio: 4/3; overflow: hidden;
      cursor: pointer; position: relative;
    }
    .prop-gallery-strip__item:first-child { flex: 2 1 0; }
    .prop-gallery-strip__item img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform 0.6s var(--ease-in-out), filter 0.6s ease;
      filter: brightness(0.92);
      border-radius: 0;
    }
    .prop-gallery-strip__item:hover img {
      transform: scale(1.04); filter: brightness(1);
    }
    .prop-gallery-strip__count {
      position: absolute; bottom: 0.75rem; right: 0.75rem;
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: var(--white); background: rgba(26,43,28,0.7);
      padding: 0.35rem 0.75rem; backdrop-filter: blur(6px);
      cursor: pointer;
    }
    @media (max-width: 768px) {
      .prop-gallery-strip__item:nth-child(n+3) { display: none; }
      .prop-gallery-strip__item:first-child { flex: 3 1 0; }
    }

    /* ── Layout: wider, more air ── */
    .prop-layout {
      display: grid;
      grid-template-columns: 1fr 340px;
      gap: var(--space-xl);
      max-width: 1140px;
      margin: 0 auto;
      padding: var(--space-xl) var(--space-md) var(--space-lg);
      align-items: start;
    }
    @media (max-width: 1024px) {
      .prop-layout { grid-template-columns: 1fr; gap: var(--space-md); }
    }

    .prop-main { min-width: 0; }

    .prop-back {
      display: inline-flex; align-items: center; gap: 0.5rem;
      font-family: var(--font-accent); font-size: 0.7rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gray-400); margin-bottom: var(--space-lg);
      transition: color var(--transition-fast);
    }
    .prop-back:hover { color: var(--gold); }
    .prop-back svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

    /* ── Sections: generous spacing ── */
    .prop-section { margin-bottom: var(--space-xl); }
    .prop-section__title {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.25em;
      color: var(--gold); margin-bottom: var(--space-sm);
    }
    .prop-section h2 {
      margin-bottom: var(--space-md);
      font-size: clamp(1.8rem, 3.5vw, 2.5rem);
      letter-spacing: -0.01em;
    }
    .prop-section p {
      font-size: 1.1rem; line-height: 1.85;
      color: var(--gray-700); max-width: 640px;
    }

    /* ── Tabs: refined, minimal ── */
    .prop-tabs {
      display: flex; gap: 0;
      border-bottom: 1px solid var(--gray-200);
      margin-bottom: var(--space-xl);
      overflow-x: auto;
    }
    .prop-tab {
      padding: 1.1rem 1.75rem; background: none; border: none;
      font-family: var(--font-accent); font-size: 0.68rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gray-400); cursor: pointer; white-space: nowrap;
      border-bottom: 2px solid transparent; margin-bottom: -1px;
      transition: all var(--transition-fast);
    }
    .prop-tab:hover { color: var(--green-deep); }
    .prop-tab--active { color: var(--green-deep); border-bottom-color: var(--gold); }
    .prop-tab-panel { display: none; }
    .prop-tab-panel--active { display: block; }

    /* ── Insider Tip: editorial callout ── */
    .insider-tip {
      position: relative; background: var(--green-deep);
      padding: 2.5rem 2.5rem 2.5rem 3rem; margin-bottom: var(--space-xl);
      border-left: 2px solid var(--gold);
      border-radius: var(--radius-sm);
    }
    .insider-tip__badge {
      position: absolute; top: -10px; left: 2rem;
      background: var(--gold); color: var(--green-deep);
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.2em;
      padding: 0.25rem 0.65rem; font-weight: 500;
    }
    .insider-tip__text {
      font-family: var(--font-display); font-size: 1.2rem;
      color: rgba(255,255,255,0.92); line-height: 1.75;
      font-style: italic; margin: 0;
    }
    .insider-tip__author {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gold-light); margin-top: 1.25rem;
    }

    /* ── Golf Courses ── */
    .golf-courses {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 1.25rem;
    }
    .golf-course {
      background: var(--white); padding: 1.75rem;
      border: 1px solid var(--gray-100);
      border-left: 3px solid var(--gold);
      border-radius: var(--radius-sm);
    }
    .golf-course__name {
      font-family: var(--font-display); font-size: 1.15rem;
      color: var(--green-deep); margin-bottom: 0.5rem;
    }
    .golf-course__detail { font-size: 0.92rem; color: var(--gray-700); margin-bottom: 0.25rem; }
    .golf-course__designer {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: var(--gold-dark); margin-top: 0.5rem;
    }

    /* ── Signature Hole ── */
    .sig-hole {
      background: linear-gradient(135deg, var(--green-deep), var(--green-mid));
      padding: 2.5rem; margin-top: 1.5rem; position: relative; overflow: hidden;
      border-radius: var(--radius-sm);
    }
    .sig-hole::before {
      content: ''; position: absolute; top: -60%; right: -15%;
      width: 350px; height: 350px; border-radius: 50%;
      border: 1px solid rgba(211,181,116,0.06);
    }
    .sig-hole__label {
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.25em;
      color: var(--gold); margin-bottom: 0.5rem;
    }
    .sig-hole__name { font-family: var(--font-display); font-size: 1.5rem; color: var(--white); margin-bottom: 0.2rem; }
    .sig-hole__meta {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: var(--gold-light); margin-bottom: 1rem;
    }
    .sig-hole__desc, .sig-hole p.sig-hole__desc { font-size: 1rem; color: #fff !important; line-height: 1.8; margin: 0; max-width: 520px; font-weight: 400; opacity: 0.92; }

    /* ── Amenities: icon grid ── */
    .amenities-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 0;
    }
    .amenity-item {
      display: flex; align-items: center; gap: 1rem;
      padding: 1rem 0.5rem;
      border-bottom: 1px solid var(--gray-100);
      transition: background var(--transition-fast);
    }
    .amenity-item:hover { background: var(--cream); }
    .amenity-item__icon { width: 26px; height: 26px; flex-shrink: 0; opacity: 0.35; }
    .amenity-item:hover .amenity-item__icon { opacity: 0.6; }
    .amenity-item__icon img { width: 100%; height: 100%; object-fit: contain; }
    .amenity-item__text { font-size: 0.92rem; color: var(--gray-700); line-height: 1.4; }

    /* ── Dining ── */
    .dining-list { display: flex; flex-wrap: wrap; gap: 1.25rem; }
    .dining-item {
      font-family: var(--font-display); font-size: 1.08rem;
      color: var(--green-deep); padding-left: 1.25rem; position: relative;
    }
    .dining-item::before {
      content: ''; position: absolute; left: 0; top: 50%;
      transform: translateY(-50%); width: 6px; height: 6px;
      border-radius: 50%; background: var(--gold);
    }

    /* ── Pull Quote / Testimonial ── */
    .pull-quote {
      padding: var(--space-lg) 0;
      border-top: 1px solid var(--gray-100);
      border-bottom: 1px solid var(--gray-100);
      margin-bottom: var(--space-xl);
      text-align: center;
    }
    .pull-quote__text {
      font-family: var(--font-display); font-style: italic;
      font-size: clamp(1.3rem, 2.5vw, 1.65rem);
      color: var(--green-deep); line-height: 1.6;
      max-width: 580px; margin: 0 auto var(--space-sm);
    }
    .pull-quote__author {
      font-family: var(--font-accent); font-size: 0.65rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gold);
    }

    /* ── Quick Facts: stacked numbers ── */
    .prop-facts {
      display: flex; gap: 0; flex-wrap: wrap;
      margin-bottom: var(--space-lg);
      border-top: 1px solid var(--gray-100);
      border-bottom: 1px solid var(--gray-100);
    }
    .prop-fact {
      flex: 1; min-width: 120px;
      padding: 1.25rem 1.5rem;
      text-align: center;
      border-right: 1px solid var(--gray-100);
    }
    .prop-fact:last-child { border-right: none; }
    .prop-fact__value {
      font-family: var(--font-display); font-size: 1.35rem;
      color: var(--green-deep); display: block;
      margin-bottom: 0.2rem; line-height: 1.2;
    }
    .prop-fact__label {
      font-family: var(--font-accent); font-size: 0.58rem;
      text-transform: uppercase; letter-spacing: 0.18em;
      color: var(--gray-400); display: block;
    }
    @media (max-width: 600px) {
      .prop-facts { flex-wrap: wrap; }
      .prop-fact { min-width: 50%; border-bottom: 1px solid var(--gray-100); }
      .prop-fact:nth-last-child(-n+2) { border-bottom: none; }
    }

    /* ── Mini Map ── */
    .prop-map { width: 100%; height: 350px; background: var(--green-deep); margin-bottom: var(--space-md); border-radius: var(--radius-tile); overflow: hidden; }
    .prop-map .leaflet-tile-pane { filter: saturate(0.3) brightness(0.92); }

    /* ══ SIDEBAR ══ */
    .prop-sidebar { position: sticky; top: 100px; }
    @media (max-width: 1024px) { .prop-sidebar { position: static; } }

    .sidebar-card {
      background: var(--white); border: 1px solid var(--gray-100);
      margin-bottom: 1.25rem; text-align: center;
      border-radius: var(--radius-tile); overflow: hidden;
    }
    .sidebar-card__header {
      padding: 2rem 1.5rem 1.5rem;
      border-bottom: 1px solid var(--gray-100);
    }
    .sidebar-card__logo {
      width: 64px; height: 64px;
      object-fit: contain;
      margin: 0 auto 1rem;
      display: block;
      border-radius: var(--radius-sm);
    }
    .sidebar-card__name {
      font-family: var(--font-display); font-size: 1.1rem;
      color: var(--green-deep); margin-bottom: 0.15rem;
    }
    .sidebar-card__loc {
      font-family: var(--font-accent); font-size: 0.6rem;
      text-transform: uppercase; letter-spacing: 0.15em; color: var(--gold);
    }
    .sidebar-card__body { padding: 1.5rem; }

    .sidebar-info { margin-bottom: 1.25rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
    .sidebar-info__label {
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.18em;
      color: var(--gray-400); margin-bottom: 0.35rem; display: block;
    }
    .sidebar-info__value { font-size: 0.9rem; color: var(--gray-600); line-height: 1.65; display: block; }
    .sidebar-info__value a { color: var(--green-deep); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
    .sidebar-info__value a:hover { color: var(--gold); }

    .sidebar-social { display: flex; gap: 0.6rem; justify-content: center; margin-bottom: 1.5rem; }
    .sidebar-social a {
      display: flex; align-items: center; justify-content: center;
      width: 32px; height: 32px; border-radius: 50%;
      border: 1px solid var(--gray-200); color: var(--gray-400);
      transition: all var(--transition-fast);
    }
    .sidebar-social a:hover { border-color: var(--gold); color: var(--gold); }
    .sidebar-social svg { width: 13px; height: 13px; fill: currentColor; }

    /* Sidebar CTAs */
    .sidebar-cta {
      display: block; width: 100%; padding: 1rem; text-align: center;
      font-family: var(--font-accent); font-size: 0.7rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      border: 1px solid var(--green-deep); color: var(--green-deep);
      background: transparent; cursor: pointer;
      transition: all 0.4s var(--ease-out); text-decoration: none;
      border-radius: var(--radius-pill); margin-bottom: 0.75rem;
    }
    .sidebar-cta:hover {
      background: var(--green-deep); color: var(--white);
      transform: translateY(-1px);
      box-shadow: 0 6px 20px rgba(26,43,28,0.15);
    }

    /* Weather Widget */
    .weather-widget {
      display: flex; align-items: center; justify-content: center;
      gap: 0.75rem; padding: 1rem;
      border: 1px solid var(--gray-100); margin-bottom: 1.25rem;
      background: var(--white); border-radius: var(--radius-sm);
    }
    .weather-widget__temp {
      font-family: var(--font-display); font-size: 1.75rem;
      color: var(--green-deep); line-height: 1;
    }
    .weather-widget__details { text-align: left; }
    .weather-widget__condition {
      font-size: 0.85rem; color: var(--gray-600);
      margin-bottom: 0.1rem;
    }
    .weather-widget__label {
      font-family: var(--font-accent); font-size: 0.5rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gray-400);
    }
    .weather-widget__icon { display: flex; align-items: center; }

    /* Season badge stacked/centered */
    .season-badge {
      display: flex; flex-direction: column; align-items: center;
      gap: 0.5rem; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem;
      border: 1px solid var(--gray-100); background: var(--white);
      text-align: center; border-radius: var(--radius-sm);
    }
    .season-badge__icon {
      width: 36px; height: 36px; flex-shrink: 0;
      background: var(--green-deep); border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .season-badge__icon svg { width: 16px; height: 16px; stroke: var(--gold); fill: none; stroke-width: 2; }
    .season-badge__label {
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.18em; color: var(--gray-400);
    }
    .season-badge__value { font-family: var(--font-display); font-size: 1.05rem; color: var(--green-deep); }
    .season-badge__note { font-size: 0.8rem; color: var(--gray-500); line-height: 1.45; }

    /* Inquiry Modal */
    .inquiry-modal {
      position: fixed; inset: 0; z-index: 10001;
      display: flex; align-items: center; justify-content: center;
      opacity: 0; pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .inquiry-modal--open { opacity: 1; pointer-events: all; }
    .inquiry-modal__overlay {
      position: absolute; inset: 0;
      background: rgba(26,43,28,0.6);
      backdrop-filter: blur(6px);
    }
    .inquiry-modal__card {
      position: relative; z-index: 2;
      background: var(--white);
      max-width: 460px; width: 90%;
      padding: 2.5rem;
      box-shadow: 0 20px 60px rgba(0,0,0,0.2);
      border-radius: var(--radius-tile);
    }
    .inquiry-modal__close {
      position: absolute; top: 1rem; right: 1rem;
      background: none; border: none; cursor: pointer;
      color: var(--gray-400); font-size: 1.25rem; padding: 0.5rem;
      transition: color 0.2s;
    }
    .inquiry-modal__close:hover { color: var(--green-deep); }
    .inquiry-modal__title {
      font-family: var(--font-display); font-size: 1.4rem;
      color: var(--green-deep); margin-bottom: 0.35rem; text-align: center;
    }
    .inquiry-modal__subtitle {
      font-size: 0.88rem; color: var(--gray-500); text-align: center;
      margin-bottom: 1.5rem; line-height: 1.5;
    }
    .inquiry-field { margin-bottom: 1rem; }
    .inquiry-field label {
      display: block; font-family: var(--font-accent); font-size: 0.6rem;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: var(--gray-500); margin-bottom: 0.35rem;
    }
    .inquiry-field input, .inquiry-field textarea {
      width: 100%; padding: 0.75rem 1rem;
      font-family: var(--font-body); font-size: 0.92rem;
      border: 1px solid var(--gray-200); color: var(--gray-700);
      background: var(--white); border-radius: var(--radius-sm);
      transition: border-color var(--transition-fast);
    }
    .inquiry-field input:focus, .inquiry-field textarea:focus {
      outline: none; border-color: var(--gold);
      box-shadow: 0 0 0 3px rgba(211,181,116,0.1);
    }
    .inquiry-field textarea { min-height: 80px; resize: vertical; }
    .inquiry-submit {
      display: block; width: 100%; padding: 1rem;
      font-family: var(--font-accent); font-size: 0.72rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      background: var(--gold); color: var(--green-deep);
      border: none; border-radius: var(--radius-pill); cursor: pointer;
      transition: all 0.3s ease;
    }
    .inquiry-submit:hover {
      background: var(--gold-dark);
      transform: translateY(-1px);
      box-shadow: 0 4px 15px rgba(211,181,116,0.3);
    }

    /* Benefits Button */
    .benefits-btn {
      display: flex; align-items: center; justify-content: center; gap: 0.6rem;
      width: 100%; padding: 1rem 1.5rem;
      background: var(--green-deep); color: var(--gold-light);
      font-family: var(--font-accent); font-size: 0.7rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      border: none; cursor: pointer; margin-bottom: 1.25rem;
      transition: all var(--transition-base);
      border-radius: var(--radius-sm);
    }
    .benefits-btn:hover {
      background: var(--green);
      box-shadow: 0 4px 15px rgba(26,43,28,0.2);
    }
    .benefits-btn svg {
      width: 16px; height: 16px; stroke: var(--gold); fill: none; stroke-width: 2;
    }

    /* Benefits Modal */
    .benefits-modal {
      position: fixed; inset: 0; z-index: 10000;
      display: flex; align-items: center; justify-content: center;
      opacity: 0; pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .benefits-modal--open { opacity: 1; pointer-events: all; }
    .benefits-modal__overlay {
      position: absolute; inset: 0;
      background: rgba(26,43,28,0.6);
      backdrop-filter: blur(6px);
    }
    .benefits-modal__card {
      position: relative; z-index: 2;
      background: var(--white);
      max-width: 480px; width: 90%;
      max-height: 90vh; overflow-y: auto;
      box-shadow: 0 20px 60px rgba(0,0,0,0.2);
      border-radius: var(--radius-tile);
    }
    .benefits-modal__header {
      padding: 2rem 2rem 0;
      text-align: center;
    }
    .benefits-modal__icon {
      width: 48px; height: 48px;
      background: var(--cream);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1rem;
    }
    .benefits-modal__icon svg {
      width: 22px; height: 22px;
      stroke: var(--gold); fill: none; stroke-width: 2;
    }
    .benefits-modal__title {
      font-family: var(--font-display);
      font-size: 1.5rem; color: var(--green-deep);
      margin-bottom: 0.5rem;
    }
    .benefits-modal__subtitle {
      font-size: 0.92rem; color: var(--gray-500);
      line-height: 1.6; margin-bottom: 0;
    }
    .benefits-modal__body { padding: 1.5rem 2rem 2rem; }
    .benefits-modal__preview {
      background: var(--cream); padding: 1.25rem;
      margin-bottom: 1.5rem; position: relative;
      overflow: hidden;
    }
    .benefits-modal__preview::after {
      content: '';
      position: absolute; bottom: 0; left: 0; right: 0;
      height: 60px;
      background: linear-gradient(0deg, var(--cream) 0%, transparent 100%);
    }
    .benefits-modal__preview-list { list-style: none; }
    .benefits-modal__preview-list li {
      padding: 0.4rem 0;
      font-size: 0.85rem; color: var(--gray-500); line-height: 1.5;
      padding-left: 1.25rem; position: relative;
      filter: blur(3px);
    }
    .benefits-modal__preview-list li:first-child { filter: blur(0); color: var(--gray-700); }
    .benefits-modal__preview-list li:nth-child(2) { filter: blur(1.5px); color: var(--gray-600); }
    .benefits-modal__preview-list li::before {
      content: ''; position: absolute; left: 0; top: 0.65rem;
      width: 5px; height: 5px; border-radius: 50%; background: var(--gold);
    }
    .benefits-modal__lock {
      font-family: var(--font-accent); font-size: 0.6rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gray-400); text-align: center;
      margin-bottom: 1.5rem;
      display: flex; align-items: center; justify-content: center; gap: 0.4rem;
    }
    .benefits-modal__lock svg {
      width: 12px; height: 12px;
      stroke: var(--gray-400); fill: none; stroke-width: 2;
    }
    .benefits-modal__actions {
      display: flex; flex-direction: column; gap: 0.6rem;
    }
    .benefits-modal__btn {
      display: block; width: 100%; padding: 1rem; text-align: center;
      font-family: var(--font-accent); font-size: 0.72rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      border: none; cursor: pointer; text-decoration: none;
      transition: all 0.3s ease; border-radius: var(--radius-pill);
    }
    .benefits-modal__btn--primary {
      background: var(--gold); color: var(--green-deep);
    }
    .benefits-modal__btn--primary:hover {
      background: var(--gold-dark);
      transform: translateY(-1px);
      box-shadow: 0 4px 15px rgba(211,181,116,0.3);
    }
    .benefits-modal__btn--outline {
      background: transparent; color: var(--green-deep);
      border: 1px solid var(--gray-200);
    }
    .benefits-modal__btn--outline:hover {
      border-color: var(--green-deep); background: var(--green-deep);
      color: var(--white);
    }
    .benefits-modal__close {
      position: absolute; top: 1rem; right: 1rem;
      background: none; border: none; cursor: pointer;
      color: var(--gray-400); font-size: 1.25rem; line-height: 1;
      padding: 0.5rem; transition: color 0.2s;
    }
    .benefits-modal__close:hover { color: var(--green-deep); }

    /* Season Badge */
    .season-badge {
      display: flex; align-items: flex-start; gap: 1rem;
      padding: 1.25rem 1.5rem; margin-bottom: 1.25rem;
      border: 1px solid var(--gray-100); background: var(--white);
    }
    .season-badge__icon {
      width: 32px; height: 32px; flex-shrink: 0;
      background: var(--green-deep); border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .season-badge__icon svg { width: 15px; height: 15px; stroke: var(--gold); fill: none; stroke-width: 2; }
    .season-badge__label {
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.18em; color: var(--gray-400);
    }
    .season-badge__value { font-family: var(--font-display); font-size: 1rem; color: var(--green-deep); margin: 0.1rem 0; }
    .season-badge__note { font-size: 0.78rem; color: var(--gray-500); line-height: 1.4; }

    /* ── Lightbox ── */
    .lightbox {
      position: fixed; inset: 0; z-index: 9999;
      background: rgba(0,0,0,0.95);
      display: flex; align-items: center; justify-content: center;
      opacity: 0; pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .lightbox--open { opacity: 1; pointer-events: all; }
    .lightbox__img { max-width: 90vw; max-height: 85vh; object-fit: contain; }
    .lightbox__close, .lightbox__prev, .lightbox__next {
      position: absolute; background: none; border: none;
      color: rgba(255,255,255,0.5); cursor: pointer;
      transition: color 0.2s; padding: 16px;
    }
    .lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover { color: var(--gold); }
    .lightbox__close { top: 1.5rem; right: 1.5rem; font-size: 1.75rem; }
    .lightbox__prev { left: 1.5rem; top: 50%; transform: translateY(-50%); }
    .lightbox__next { right: 1.5rem; top: 50%; transform: translateY(-50%); }
    .lightbox__prev svg, .lightbox__next svg { width: 28px; height: 28px; stroke: currentColor; fill: none; stroke-width: 2; }
    .lightbox__counter {
      position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
      font-family: var(--font-accent); font-size: 0.7rem;
      letter-spacing: 0.15em; color: rgba(255,255,255,0.35);
    }

    /* ── Sliding Cards (PCM-style horizontal scroll) ── */
    .slide-cards {
      display: flex;
      gap: 1rem;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 1rem;
      scrollbar-width: none;
    }
    .slide-cards::-webkit-scrollbar { display: none; }
    .slide-card {
      flex: 0 0 280px;
      scroll-snap-align: start;
      border-radius: var(--radius-tile);
      overflow: hidden;
      background: var(--white);
      border: 1px solid var(--gray-100);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .slide-card:hover {
      transform: scale(1.02);
      box-shadow: 0 8px 24px rgba(0,0,0,0.06);
    }
    .slide-card__image {
      width: 100%; height: 180px;
      object-fit: cover; display: block;
      border-radius: 0;
    }
    .slide-card__body { padding: 1rem 1.15rem; }
    .slide-card__label {
      font-family: var(--font-accent); font-size: 0.55rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      color: var(--gold); margin-bottom: 0.25rem;
    }
    .slide-card__title {
      font-family: var(--font-display); font-size: 1rem;
      color: var(--green-deep); line-height: 1.3;
      margin-bottom: 0.25rem;
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .slide-card__desc {
      font-size: 0.82rem; color: var(--gray-500);
      line-height: 1.45;
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }

    /* ── Join LXV Form (bottom of page) ── */
    .join-section {
      background: var(--cream);
      padding: var(--space-2xl) var(--space-md);
      text-align: center;
    }
    .join-section__inner {
      max-width: 560px;
      margin: 0 auto;
    }
    .join-section__title {
      font-family: var(--font-display);
      font-size: clamp(1.8rem, 3.5vw, 2.5rem);
      color: var(--green-deep);
      margin-bottom: 0.5rem;
    }
    .join-section__subtitle {
      font-size: 0.95rem; color: var(--gray-500);
      line-height: 1.7; margin-bottom: var(--space-lg);
    }
    .join-form { text-align: left; }
    .join-form__row {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 0.75rem; margin-bottom: 0.75rem;
    }
    @media (max-width: 480px) {
      .join-form__row { grid-template-columns: 1fr; }
    }
    .join-form__field { margin-bottom: 0.75rem; }
    .join-form__label {
      display: block; font-family: var(--font-accent); font-size: 0.58rem;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: var(--gray-500); margin-bottom: 0.3rem;
    }
    .join-form__input {
      width: 100%; padding: 0.8rem 1rem;
      font-family: var(--font-body); font-size: 0.92rem;
      border: 1px solid var(--gray-200); background: var(--white);
      color: var(--gray-700); border-radius: var(--radius-sm);
      transition: border-color var(--transition-fast);
    }
    .join-form__input:focus {
      outline: none; border-color: var(--gold);
      box-shadow: 0 0 0 3px rgba(211,181,116,0.1);
    }
    .join-form__input::placeholder { color: var(--gray-400); }
    .join-form__submit {
      display: block; width: 100%; padding: 1rem;
      font-family: var(--font-accent); font-size: 0.72rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      background: var(--green-deep); color: var(--white);
      border: none; border-radius: var(--radius-pill); cursor: pointer;
      transition: all 0.3s ease; margin-top: var(--space-sm);
    }
    .join-form__submit:hover {
      background: var(--green);
      transform: scale(1.02);
      box-shadow: 0 4px 16px rgba(26,43,28,0.2);
    }
    .join-form__note {
      font-size: 0.72rem; color: var(--gray-400);
      text-align: center; margin-top: 1rem; line-height: 1.5;
    }

    /* ── Sig hole image ── */
    .sig-hole__image {
      width: 100%; max-height: 220px;
      object-fit: cover; border-radius: var(--radius-sm);
      margin-bottom: 1.25rem; display: block;
    }

    /* ── Member Gate ── */
    .prop-gate-wrapper {
      position: relative;
      background: var(--cream);
      min-height: 520px;
    }
    .prop-gate-blur {
      filter: blur(8px);
      transform: scale(1.015);
      user-select: none;
      pointer-events: none;
      opacity: 0.38;
      max-height: 680px;
      overflow: hidden;
    }
    .prop-gate-wrapper::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 300px;
      background: linear-gradient(to bottom, transparent, var(--cream));
      pointer-events: none;
      z-index: 1;
    }
    .prop-gate-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: var(--space-md);
      z-index: 2;
    }
    .prop-gate-card {
      background: var(--white);
      border: 1px solid var(--gray-100);
      border-radius: var(--radius-tile);
      padding: 2.5rem 2.25rem;
      max-width: 420px;
      width: 100%;
      text-align: center;
      box-shadow: 0 24px 64px rgba(26,43,28,0.12), 0 4px 16px rgba(26,43,28,0.06);
    }
    .prop-gate-card__lock {
      width: 44px; height: 44px;
      background: var(--cream);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1rem;
    }
    .prop-gate-card__lock svg {
      width: 18px; height: 18px;
      stroke: var(--gold); fill: none; stroke-width: 2;
    }
    .prop-gate-card__eyebrow {
      font-family: var(--font-accent); font-size: 0.6rem;
      text-transform: uppercase; letter-spacing: 0.2em;
      color: var(--gold); margin-bottom: 0.75rem; display: block;
    }
    .prop-gate-card__title {
      font-family: var(--font-display); font-size: 1.6rem;
      color: var(--green-deep); line-height: 1.2;
      margin-bottom: 0.75rem;
    }
    .prop-gate-card__desc {
      font-size: 0.9rem; color: var(--gray-500);
      line-height: 1.7; margin-bottom: 1.5rem;
      max-width: 340px; margin-left: auto; margin-right: auto;
    }
    .prop-gate-card__divider {
      border: none; border-top: 1px solid var(--gray-100);
      margin: 1.5rem 0;
    }
    .prop-gate-card__actions { display: flex; flex-direction: column; gap: 0.65rem; }
    .prop-gate-card__btn {
      display: block; width: 100%; padding: 1rem; text-align: center;
      font-family: var(--font-accent); font-size: 0.7rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      border-radius: 100px; text-decoration: none;
      transition: all 0.3s var(--ease-out);
    }
    .prop-gate-card__btn--primary {
      background: var(--gold); color: var(--green-deep); border: none;
    }
    .prop-gate-card__btn--primary:hover {
      background: var(--gold-dark);
      transform: translateY(-1px);
      box-shadow: 0 4px 15px rgba(211,181,116,0.35);
    }
    .prop-gate-card__btn--ghost {
      background: transparent; color: var(--green-deep);
      border: 1px solid var(--gray-200);
    }
    .prop-gate-card__btn--ghost:hover {
      border-color: var(--green-deep); background: var(--green-deep); color: var(--white);
    }
    .prop-gate-card__signin {
      font-size: 0.78rem; color: var(--gray-400); margin-top: 1rem;
    }
    .prop-gate-card__signin a {
      color: var(--green-deep);
      text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px;
    }
    @media (max-width: 600px) {
      .prop-gate-card { padding: 2rem 1.5rem; }
      .prop-gate-card__title { font-size: 1.35rem; }
    }

    /* ── CTA Banner: restrained ── */
    .prop-cta {
      background: var(--green-deep);
      padding: var(--space-2xl) var(--space-md);
      text-align: center;
    }
    .prop-cta h2 { color: var(--white); margin-bottom: var(--space-sm); font-size: clamp(1.8rem, 3.5vw, 2.5rem); }
    .prop-cta p { color: rgba(255,255,255,0.55); max-width: 460px; margin: 0 auto var(--space-lg); font-size: 0.95rem; }
    .prop-cta .btn { border-radius: var(--radius-pill); }

/* server-rendered property content lists */
.prop-list { list-style: none; padding: 0; margin: var(--space-sm) 0 var(--space-md); }
.prop-list li { padding: 0.6rem 0 0.6rem 1.4rem; position: relative; font-size: 0.97rem; color: var(--gray-600); line-height: 1.6; border-bottom: 1px solid var(--gray-100); }
.prop-list li::before { content: ""; position: absolute; left: 0; top: 1rem; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.prop-list li strong { color: var(--green-deep); font-weight: 600; }

    /* ── Per-property hero overrides ── */
    .prop-hero--golf-club-at-devils-tower {
      min-height: min(92vh, 56.25vw);
    }
    .prop-hero--golf-club-at-devils-tower .prop-hero__bg {
      background-position: center 30%;
    }

    /* ════ Full-width editorial sections: Features / Events / Access band / Getting Here ════ */
    .prop-xwrap { width: 100%; }
    .prop-xwrap--cream { background: var(--cream); }
    .prop-xwrap--green { background: var(--green-deep); }
    .prop-xsec { max-width: 1140px; margin: 0 auto; padding: var(--space-xl) var(--space-md); }

    .prop-xsec__head {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: var(--space-xl); align-items: end;
      margin-bottom: var(--space-lg);
    }
    .prop-xeyebrow {
      display: block; font-family: var(--font-display); font-style: italic;
      font-size: 1.15rem; color: var(--gray-500); margin-bottom: 0.5rem;
    }
    .prop-xeyebrow--gold { color: var(--gold); }
    .prop-xtitle {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(2rem, 4.5vw, 3.1rem); line-height: 1.08;
      text-transform: uppercase; letter-spacing: 0.02em;
      color: var(--green-deep); margin: 0;
    }
    .prop-xtitle--light { color: var(--white); }
    .prop-xintro { font-size: 1.02rem; line-height: 1.85; color: var(--gray-600); max-width: 520px; justify-self: end; }

    /* Features & Amenities */
    .prop-feat__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); }
    .prop-feat__img { aspect-ratio: 3 / 2; overflow: hidden; margin-bottom: 1.25rem; background: var(--cream-dark); }
    .prop-feat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
    .prop-feat__card:hover .prop-feat__img img { transform: scale(1.04); }
    .prop-feat__title {
      font-family: var(--font-display); font-weight: 400;
      font-size: 1.45rem; line-height: 1.25;
      color: var(--green-deep); margin: 0 0 0.7rem;
    }
    .prop-feat__text { font-size: 0.95rem; line-height: 1.8; color: var(--gray-600); margin: 0; }

    /* Signature Events */
    .prop-events__featured {
      display: grid; grid-template-columns: 1fr 1.25fr;
      gap: var(--space-lg); align-items: center;
      background: var(--white); padding: var(--space-lg);
      margin-bottom: var(--space-lg);
      border: 1px solid var(--gray-200);
    }
    .prop-events__featured-name {
      font-family: var(--font-display); font-weight: 400;
      font-size: 1.7rem; line-height: 1.2;
      color: var(--green-deep); margin: 0.4rem 0 0.8rem;
    }
    .prop-events__featured-img { aspect-ratio: 4 / 3; overflow: hidden; }
    .prop-events__featured-img img { width: 100%; height: 100%; object-fit: cover; }
    .prop-events__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); }
    .prop-event__when {
      display: block; font-family: var(--font-accent); font-size: 0.62rem;
      text-transform: uppercase; letter-spacing: 0.22em;
      color: var(--gold-dark); margin-bottom: 0.45rem;
    }
    .prop-event__name {
      font-family: var(--font-display); font-weight: 400;
      font-size: 1.3rem; line-height: 1.25;
      color: var(--green-deep); margin: 0 0 0.6rem;
    }
    .prop-event__text { font-size: 0.93rem; line-height: 1.8; color: var(--gray-600); margin: 0; }

    /* LXV Member Access band */
    .prop-band { text-align: center; }
    .prop-band .prop-xtitle { margin: 0 auto; }
    .prop-band__text {
      font-size: 1.02rem; line-height: 1.9; color: var(--cream);
      opacity: 0.85; max-width: 620px; margin: var(--space-md) auto var(--space-lg);
    }
    .prop-band__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
    .prop-band__btn {
      display: inline-block; padding: 1rem 2.4rem;
      font-family: var(--font-accent); font-size: 0.7rem;
      text-transform: uppercase; letter-spacing: 0.15em;
      border-radius: 100px; text-decoration: none;
      transition: all 0.3s var(--ease-out);
    }
    .prop-band__btn--gold { background: var(--gold); color: var(--green-deep); }
    .prop-band__btn--gold:hover { background: var(--gold-light); transform: translateY(-1px); box-shadow: 0 4px 15px rgba(211,181,116,0.35); }
    .prop-band__btn--ghost { color: var(--cream); border: 1px solid rgba(250,247,242,0.35); }
    .prop-band__btn--ghost:hover { border-color: var(--gold); color: var(--gold); }

    /* Getting Here */
    .prop-where__grid { display: grid; grid-template-columns: 400px 1fr; gap: var(--space-xl); align-items: start; }
    .prop-where__address {
      font-style: normal; font-size: 1.05rem; line-height: 1.8;
      color: var(--gray-700); margin: var(--space-md) 0 0.8rem;
    }
    .prop-where__address strong { font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; color: var(--green-deep); }
    .prop-where__tel { font-size: 0.98rem; color: var(--gray-600); margin-bottom: var(--space-md); }
    .prop-where__tel a { color: var(--green-deep); text-decoration: underline; text-underline-offset: 3px; }
    .prop-where__tel a:hover { color: var(--gold-dark); }
    .prop-where__list { border-top: 1px solid var(--gray-200); margin-top: var(--space-sm); }
    .prop-where__item { border-bottom: 1px solid var(--gray-200); }
    .prop-where__item summary {
      display: flex; align-items: center; justify-content: space-between;
      font-family: var(--font-display); font-size: 1.08rem; color: var(--green-deep);
      padding: 1rem 0; cursor: pointer; list-style: none;
    }
    .prop-where__item summary::-webkit-details-marker { display: none; }
    .prop-where__item summary svg { width: 16px; height: 16px; stroke: var(--gray-400); fill: none; stroke-width: 2; transition: transform 0.25s var(--ease-out); flex-shrink: 0; }
    .prop-where__item[open] summary svg { transform: rotate(180deg); }
    .prop-where__item p { font-size: 0.93rem; line-height: 1.75; color: var(--gray-600); padding: 0 0 1rem; margin: 0; }
    .prop-where__note { font-size: 0.9rem; color: var(--gray-500); margin-top: var(--space-sm); }
    .prop-where__map { aspect-ratio: 16 / 11; overflow: hidden; background: var(--cream-dark); }
    .prop-where__map iframe { width: 100%; height: 100%; border: 0; display: block; }

    @media (max-width: 900px) {
      .prop-xsec__head { grid-template-columns: 1fr; gap: var(--space-sm); align-items: start; }
      .prop-xintro { justify-self: start; }
      .prop-feat__grid, .prop-events__grid { grid-template-columns: 1fr; }
      .prop-events__featured { grid-template-columns: 1fr; }
      .prop-events__featured-img { order: -1; }
      .prop-where__grid { grid-template-columns: 1fr; }
    }
    .prop-events__featured--noimg { grid-template-columns: 1fr; max-width: 720px; }

    /* ── Optional per-property hero logo ({slug}-logo.png) ── */
    .prop-hero__logo {
      display: block;
      height: 88px;
      width: auto;
      margin-bottom: 1.1rem;
      opacity: 0.95;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,0.35));
    }
    @media (max-width: 768px) { .prop-hero__logo { height: 64px; } }


    /* ── Rankings sidebar card ── */
    .sidebar-rankings { margin-top: 1.25rem; padding: 1.5rem 1.25rem 1.6rem; text-align: center; }
    .sidebar-rankings__title {
      font-size: 1.05rem; font-weight: 500; margin: 0 0 1.2rem;
      letter-spacing: 0.02em;
    }
    .sidebar-rankings__item { display: flex; flex-direction: column; align-items: center; gap: 0.65rem; }
    .sidebar-rankings__item--sep { margin-top: 1.3rem; padding-top: 1.3rem; border-top: 1px solid rgba(0,0,0,0.08); }
    .sidebar-rankings__logo { max-width: 170px; height: auto; display: block; }
    .sidebar-rankings__label { font-size: 0.92rem; color: var(--slate, #4a4a4a); }

    /* ── Club inquiry modal ── */
    .club-modal { position: fixed; inset: 0; z-index: 1000; display: none; }
    .club-modal.open { display: block; }
    .club-modal__backdrop { position: absolute; inset: 0; background: rgba(20,28,21,0.6); backdrop-filter: blur(3px); }
    .club-modal__card {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      width: min(480px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow-y: auto;
      background: #FAF8F4; border-radius: 14px; padding: 2.4rem 2.2rem 2rem;
      box-shadow: 0 30px 80px rgba(0,0,0,0.35);
    }
    .club-modal__close {
      position: absolute; top: 0.9rem; right: 1.1rem; border: 0; background: none;
      font-size: 1.7rem; line-height: 1; color: #999; cursor: pointer;
    }
    .club-modal__close:hover { color: #333; }
    .club-modal__eyebrow {
      display: block; font-size: 0.68rem; letter-spacing: 0.25em; text-transform: uppercase;
      color: var(--gold, #A3884F); margin-bottom: 0.5rem;
    }
    .club-modal__title { font-size: 1.6rem; font-weight: 500; margin: 0 0 0.6rem; }
    .club-modal__sub { font-size: 0.92rem; color: #6a6a6a; line-height: 1.6; margin: 0 0 1.4rem; }
    .club-modal__hp { position: absolute; left: -9999px; opacity: 0; height: 0; }
    .club-modal__row { display: flex; gap: 0.7rem; }
    .club-modal__row input { width: 50%; }
    #club-inquiry-form input:not(.club-modal__hp), #club-inquiry-form textarea {
      width: 100%; box-sizing: border-box; margin-bottom: 0.7rem;
      padding: 0.8rem 0.95rem; font-size: 0.95rem; font-family: inherit;
      border: 1px solid rgba(0,0,0,0.14); border-radius: 8px; background: #fff;
    }
    #club-inquiry-form input:focus, #club-inquiry-form textarea:focus {
      outline: none; border-color: var(--gold, #A3884F);
    }
    .club-modal__submit { width: 100%; margin-top: 0.3rem; cursor: pointer; border: 0; }
    .club-modal__status { font-size: 0.88rem; margin: 0.9rem 0 0; text-align: center; color: #4a4a4a; min-height: 1.2em; }


    /* ── Iconified amenities list ── */
    .prop-list--icons li {
      display: flex;
      align-items: center;
      gap: 0.85rem;
      list-style: none;
    }
    .prop-list--icons li::before { display: none; content: none; }
    .prop-list__icon {
      width: 26px;
      height: 26px;
      flex: 0 0 26px;
      opacity: 0.75;
    }


    /* ── Section photos (extras-driven) ── */
    .prop-section__photo {
      width: 100%;
      display: block;
      border-radius: 10px;
      margin-bottom: 1.6rem;
    }
    .insider-tip__img {
      width: 100%;
      display: block;
      border-radius: 8px;
      margin-bottom: 1.2rem;
    }
