@charset "UTF-8";
/*!
    Main Stylesheet Manifest

    This file imports all SCSS partials in the correct order.
    DO NOT add styles here — use the appropriate partial instead.

    Compile: sass --watch css:css

    Import order:
        1. Fonts & Variables (design tokens)
        2. Helpers (mixins & utilities)
        3. Utility classes (colors, typography)
        4. Base element styles
        5. Components (reusable patterns)
        6. Sections (ACF flexible content)
        7. Page-specific overrides

    @author development@bronte.co.nz
*/
/*
    Font Face Declarations

    Instrument Sans is loaded via Google Fonts in functions/setup.php

    Weights used:
    - 400 (Regular) — headings, body text, buttons
    - 500 (Medium) — H4, labels
*/
/*
    Design Tokens (Variables)

    Central source of truth for all design values.
    ALWAYS check here before adding new values elsewhere.

    How to use:
        1. Import in your partial: @use 'variables' as *;
        2. Use variables: color: $color-primary;

    Naming conventions:
        $color-{name}      — colours
        $spacing-{size}    — spacing (xs, sm, md, lg, xl, 2xl, 3xl, 4xl)
        $font-size-{size}  — font sizes
        $font-weight-{name} — font weights
        $screen-{size}     — breakpoints
*/
/*
    Helper Utilities

    Layout, positioning, and display utilities.
    For typography utilities, see _typography.scss.
    For colour utilities, see _colors.scss.

    Usage:
        <div class="pos-relative">
            <img class="bg-image" src="..." alt="...">
            <div class="z-above">Content above image</div>
        </div>
*/
.w-100 {
  width: 100%;
}

.h-100 {
  height: 100%;
}

.pos-relative {
  position: relative;
}

.pos-absolute {
  position: absolute;
}

.z-below {
  z-index: 5;
}

.z-base {
  z-index: 10;
}

.z-above {
  z-index: 15;
}

.mb-0 {
  margin-bottom: 0;
}

.last-child-mb-0 > :last-child {
  margin-bottom: 0;
}

.bg-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/*
    Colour Utility Classes

    Background and text colour utilities generated from $colors map.
    All colours are defined in _variables.scss.

    Usage:
        <div class="bg-primary text-white">Primary background</div>
        <p class="text-muted">Secondary text</p>

    Available classes:
        .bg-{color}   — background colour
        .text-{color} — text colour

    Where {color} is: primary, secondary, dark, light, white, black, muted
*/
.bg-primary {
  background-color: #E1FF85;
}

.text-primary {
  color: #E1FF85;
}

.bg-secondary {
  background-color: #231708;
}

.text-secondary {
  color: #231708;
}

.bg-dark {
  background-color: #231708;
}

.text-dark {
  color: #231708;
}

.bg-light {
  background-color: #F9F8ED;
}

.text-light {
  color: #F9F8ED;
}

.bg-white {
  background-color: #fff;
}

.text-white {
  color: #fff;
}

.bg-black {
  background-color: #000;
}

.text-black {
  color: #000;
}

.bg-muted {
  background-color: #959a9e;
}

.text-muted {
  color: #959a9e;
}

/*
    Typography Utility Classes

    Apply these classes directly in HTML to control text appearance.
    All values come from _variables.scss for consistency.

    Usage:
        <p class="text-lg font-bold">Large bold text</p>
        <span class="text-muted text-sm">Small muted caption</span>
*/
.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-xs {
  font-size: 12px;
}

.text-sm {
  font-size: 14px;
}

.text-base {
  font-size: 16px;
}

.text-lg {
  font-size: 18px;
}

.text-xl {
  font-size: 24px;
}

.text-2xl {
  font-size: 32px;
}

.text-3xl {
  font-size: 48px;
}

.font-normal {
  font-weight: 400;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

.leading-tight {
  line-height: 1.2;
}

.leading-base {
  line-height: 1.5;
}

.leading-loose {
  line-height: 1.8;
}

.font-primary {
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
}

.font-secondary {
  font-family: Georgia, serif;
}

/*
    Button Styles

    Base .btn class with BEM-style modifiers.

    Usage:
        <a href="#" class="btn btn--primary">Primary button</a>
        <a href="#" class="btn btn--secondary">Secondary button</a>
        <a href="#" class="btn btn--primary btn--full-width">Full width</a>
        <a href="#" class="btn btn--primary btn--lg">Large button</a>

    Modifiers:
        --primary      Green background (main CTAs)
        --secondary    Linen background (secondary actions)
        --lg           Large size
        --sm           Small size
        --full-width   100% width
        --no-dot       Remove dot icon
*/
.btn, button,
input[type=submit] {
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 400;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  padding: 4px 16px;
  line-height: 1;
  min-height: 40px;
  cursor: pointer;
  transition: 0.2s all;
  border: 0;
  border-radius: 4px;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: #231708;
  background-color: transparent;
  box-shadow: none;
}
.btn:focus, button:focus,
input[type=submit]:focus {
  outline: none;
}
.btn::before, button::before,
input[type=submit]::before {
  content: "";
  width: 6px;
  height: 6px;
  background-color: #231708;
  border-radius: 50%;
  flex-shrink: 0;
}
.btn--primary, button,
input[type=submit] {
  background-color: #E1FF85;
  color: #231708;
}
.btn--primary:hover, button:hover,
input[type=submit]:hover {
  background-color: #ECFDA8;
}
.btn--secondary {
  background-color: #F5F3E7;
  color: #231708;
}
.btn--secondary:hover {
  background-color: #ECFDA8;
}
.btn--dark {
  background-color: #231708;
  color: #FEFFF5;
}
.btn--dark::before {
  background-color: #FEFFF5;
}
.btn--dark:hover {
  background-color: rgb(76.511627907, 50.2790697674, 17.488372093);
}
.btn--cream {
  background-color: #FEFFF5;
  color: #231708;
}
.btn--cream:hover {
  background-color: #ECFDA8;
}
.btn--lg {
  font-size: 18px;
  padding: 8px 24px;
  min-height: 48px;
}
@media (max-width: 768px) {
  .btn--lg {
    font-size: 16px;
  }
}
.btn--sm {
  font-size: 12px;
  padding: 4px 8px;
  min-height: 32px;
}
.btn--wide {
  min-width: 180px;
}
.btn--full-width {
  width: 100%;
}
.btn--no-dot::before {
  display: none;
}

/*
    Navigation Menu Styles

    Styles for WordPress menus registered in functions/setup.php.
    Menu locations: header, footer, mobile.

    Structure:
        <ul class="menu menu-header">
            <li><a href="#">Link</a></li>
        </ul>

    Modifiers:
        .menu-header — desktop header navigation
        .menu-mobile — mobile menu overlay navigation
        .menu-footer — footer navigation
*/
.menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  padding-inline-start: 0;
}

.menu-header {
  display: none;
  gap: 8px;
}
@media (min-width: 1200px) {
  .menu-header {
    display: flex;
  }
}
.menu-header li {
  padding: 8px;
}
.menu-header a {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  text-transform: uppercase;
  text-decoration: none;
}
.menu-header a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #E1FF85;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}
.menu-header a:hover::before {
  opacity: 1;
}

.menu.menu-mobile {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0;
  padding-inline-start: 0;
  margin: 0;
  list-style: none;
}
.menu.menu-mobile ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 !important;
  padding-inline-start: 0 !important;
  margin: 0;
  list-style: none;
}
.menu.menu-mobile li {
  text-align: center;
  margin-bottom: 32px;
}
.menu.menu-mobile li:last-child {
  margin-bottom: 0;
}
.menu.menu-mobile a {
  font-size: 22px;
  text-transform: uppercase;
  color: #F5F3E7;
  text-decoration: none;
  transition: opacity 0.2s ease-in-out;
}
.menu.menu-mobile a:hover {
  opacity: 0.7;
}

.menu-footer {
  flex-direction: column;
}
.menu-footer li {
  margin-bottom: 8px;
  position: relative;
}
.menu-footer a {
  line-height: 1.428;
  font-weight: 400;
}

/*
    Base Element Styles

    Global styles for HTML elements (body, a, img, headings, etc.).
    These apply site-wide without needing classes.

    For utility classes, see:
        _helpers.scss    — layout utilities
        _typography.scss — text utilities
        _colors.scss     — colour utilities
*/
/*
    Brand tokens published to CSS custom properties.

    Google Maps draws its pins onto a canvas, so CSS can never reach them and
    listing.js has to set their colours in JavaScript. Publishing the tokens
    here lets it read them back at runtime, which keeps _variables.scss the one
    place a brand colour is defined instead of duplicating hex values in JS.

    Only add a token here when JavaScript genuinely needs it — normal styling
    should use the SCSS variables directly.
*/
:root {
  --oa-color-primary: #E1FF85;
  --oa-color-secondary: #231708;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--wp-admin--admin-bar--height); /**
* @link https://make.wordpress.org/core/2022/01/07/theme-focused-changes-and-filters-in-wordpress-5-9/#adjusting-for-fixed-header-navigation
*/
}

html,
body {
  min-height: 100vh;
}

body {
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  color: #231708;
  background-color: #FEFFF5;
  display: flex;
  flex-direction: column;
  margin: 0;
}

.container {
  width: 100%;
  max-width: 100%;
  padding-left: 32px;
  padding-right: 32px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .container {
    padding-left: 48px;
    padding-right: 48px;
  }
}

a {
  transition: all 0.2s ease-in-out;
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}

main {
  flex: 1;
}

svg,
img {
  max-width: 100%;
  height: auto;
  display: block;
}

p img {
  display: inline-block;
}

.text > :first-child {
  margin-top: 0;
}
.text > :last-child {
  margin-bottom: 0;
}
.text ol,
.text ul {
  line-height: inherit;
  padding-left: 20px;
}
.text li:last-child {
  margin-bottom: 0;
}

h1,
h2,
h3,
h4,
h5 {
  margin-top: 0;
}

@media (min-width: 768px) {
  .alignleft,
  img.alignleft {
    float: left;
    margin-right: 1em;
    margin-bottom: 1em;
  }
}

@media (min-width: 768px) {
  .alignright,
  img.alignright {
    float: right;
    margin-left: 1em;
    margin-bottom: 1em;
  }
}

.aligncenter,
img.aligncenter {
  margin: 1em auto;
}

/*
    Site Header Styles

    Header with dark/light variants and mobile menu overlay.
    Dark/light is controlled by hero section ACF setting.

    Key classes:
        .site-header        — main header element
        .site-header--dark  — dark elements (brown logo/text, for light backgrounds)
        .site-header--light — light elements (cream logo/text, for dark backgrounds)
        .is-fixed           — fixed position with brown bg (after scrolling past landing)
        .is-hidden          — slides header up out of view (on downscroll)
        .menu-opener        — 3 horizontal dots to open mobile menu
        .menu-closer        — X icon to close mobile menu
        .mobile-menu        — full-screen overlay menu
        .opened             — body class when menu is open
*/
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 88px;
  z-index: 100;
  transition: transform 0.3s ease-in-out, background-color 0.3s ease-in-out;
}
.admin-bar .site-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}
.site-header.is-fixed {
  position: fixed;
  background-color: #231708;
}
.admin-bar .site-header.is-fixed {
  top: var(--wp-admin--admin-bar--height, 32px);
}
.site-header.is-fixed .logo-default {
  display: none;
}
.site-header.is-fixed .logo-fixed {
  display: block;
}
.site-header.is-fixed .menu-header a {
  color: #FEFFF5;
}
.site-header.is-fixed .menu-opener .dot {
  background-color: #FEFFF5;
}
.site-header.is-hidden {
  transform: translateY(-100%);
}
.admin-bar .site-header.is-hidden {
  transform: translateY(calc(-100% - var(--wp-admin--admin-bar--height, 32px)));
}
.site-header .container {
  height: 100%;
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
.site-header__logo {
  display: block;
}
.site-header__logo img {
  height: 57px;
  width: auto;
}
@media (max-width: 1199px) {
  .site-header__logo img {
    height: 41px;
  }
}
.site-header__logo .logo-fixed {
  display: none;
}
.site-header--dark {
  background-color: transparent;
}
.site-header--dark .menu-header a {
  color: #231708;
}
.site-header--dark .menu-opener .dot {
  background-color: #231708;
}
.site-header--light {
  background-color: transparent;
}
.site-header--light .menu-header a {
  color: #FEFFF5;
}
.site-header--light .menu-opener .dot {
  background-color: #FEFFF5;
}

.menu-opener {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 8px;
  background: none;
  border: none;
  cursor: pointer;
}
.menu-opener::before {
  display: none;
}
.menu-opener:hover {
  background: none;
}
@media (min-width: 1200px) {
  .menu-opener {
    display: none;
  }
}
.menu-opener .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.menu-closer {
  padding: 8px;
  background: none;
  border: none;
  cursor: pointer;
  color: #FEFFF5;
}
.menu-closer::before {
  display: none;
}
.menu-closer:hover {
  background: none;
}
.menu-closer svg {
  display: block;
  transition: transform 0.3s ease-in-out;
}
@media (hover: hover) {
  .menu-closer:hover svg {
    transform: rotate(90deg);
  }
}

.mobile-menu {
  position: fixed;
  inset: 0;
  background-color: #231708;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out;
}
.opened .mobile-menu {
  opacity: 1;
  visibility: visible;
}
.mobile-menu .menu-mobile li {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.opened .mobile-menu .menu-mobile li {
  opacity: 1;
  transform: translateY(0);
}
.opened .mobile-menu .menu-mobile li:nth-child(1) {
  transition-delay: 0.15s;
}
.opened .mobile-menu .menu-mobile li:nth-child(2) {
  transition-delay: 0.2s;
}
.opened .mobile-menu .menu-mobile li:nth-child(3) {
  transition-delay: 0.25s;
}
.opened .mobile-menu .menu-mobile li:nth-child(4) {
  transition-delay: 0.3s;
}
.opened .mobile-menu .menu-mobile li:nth-child(5) {
  transition-delay: 0.35s;
}
.opened .mobile-menu .menu-mobile li:nth-child(6) {
  transition-delay: 0.4s;
}
.opened .mobile-menu .menu-mobile li:nth-child(7) {
  transition-delay: 0.45s;
}
.opened .mobile-menu .menu-mobile li:nth-child(8) {
  transition-delay: 0.5s;
}
.opened .mobile-menu .menu-mobile li:nth-child(9) {
  transition-delay: 0.55s;
}
.opened .mobile-menu .menu-mobile li:nth-child(10) {
  transition-delay: 0.6s;
}
.mobile-menu__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 32px;
  height: 88px;
}
@media (min-width: 768px) {
  .mobile-menu__header {
    padding: 0 48px;
  }
}
.mobile-menu__logo {
  display: block;
}
.mobile-menu__logo img {
  height: 41px;
  width: auto;
}
.mobile-menu__icon {
  display: flex;
  justify-content: center;
  margin-top: auto;
  padding-bottom: 64px;
}
.mobile-menu__icon img {
  height: 41px;
  width: auto;
}

/*
    Site Footer Styles

    Dark brown footer with 3-column layout on desktop.
    - Left: Footer pages menu (About, Contact Us)
    - Center: Property types from taxonomy
    - Right: Contact info (A/P/E format)
    - Bottom: Lions logo, Privacy Policy, Copyright
*/
.site-footer {
  background-color: #231708;
  padding: 64px 0 32px;
}
@media (min-width: 992px) {
  .site-footer {
    padding: 80px 0 48px;
  }
}

.footer-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 32px;
  margin-bottom: 64px;
}
@media (min-width: 992px) {
  .footer-content {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 48px;
  }
}

.footer-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 992px) {
  .footer-col {
    gap: 4px;
  }
}

.footer-pages {
  grid-column: 1;
  grid-row: 1;
}
@media (min-width: 992px) {
  .footer-pages {
    grid-column: auto;
    grid-row: auto;
  }
}

.footer-properties {
  grid-column: 1;
  grid-row: 2;
  margin-top: 8px;
}
@media (min-width: 992px) {
  .footer-properties {
    grid-column: auto;
    grid-row: auto;
    margin-top: 0;
  }
}

.footer-link {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #F5F3E7;
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  padding: 4px 0;
}
@media (min-width: 992px) {
  .footer-link {
    font-size: 18px;
    padding: 8px 8px 8px 0;
  }
}
.footer-link::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #E1FF85;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
  display: none;
}
@media (min-width: 992px) {
  .footer-link::before {
    display: block;
  }
}
.footer-link:hover::before {
  opacity: 1;
}

.footer-contact {
  display: flex;
  flex-direction: column;
  gap: 16px;
  grid-column: 2;
  grid-row: 1/3;
}
@media (min-width: 992px) {
  .footer-contact {
    grid-column: auto;
    grid-row: auto;
  }
}

.contact-row {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  color: #F5F3E7;
  font-size: 12px;
  line-height: 1.2;
}
@media (min-width: 992px) {
  .contact-row {
    font-size: 14px;
    gap: 20px;
  }
}

.contact-label {
  flex-shrink: 0;
  width: 10px;
}

.contact-value {
  color: #F5F3E7;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.contact-value:hover {
  opacity: 0.7;
}

.footer-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 32px;
  align-items: end;
}
@media (min-width: 992px) {
  .footer-bottom {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 48px;
  }
}

.footer-logo {
  display: block;
}
.footer-logo svg,
.footer-logo img {
  display: block;
  width: 55px;
  height: auto;
}
@media (min-width: 992px) {
  .footer-logo svg,
  .footer-logo img {
    width: 90px;
  }
}
.footer-logo svg path {
  transition: fill 0.2s ease;
}
.footer-logo:hover svg path {
  fill: #E1FF85;
}

.footer-legal {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 992px) {
  .footer-legal {
    display: contents;
  }
}

.footer-privacy {
  color: #F5F3E7;
  font-size: 14px;
  text-transform: uppercase;
  text-decoration: none;
  transition: opacity 0.2s ease;
  text-align: left;
}
@media (min-width: 992px) {
  .footer-privacy {
    padding-left: 10px;
  }
}
.footer-privacy:hover {
  opacity: 0.7;
}

.footer-copyright {
  color: #F5F3E7;
  font-size: 10px;
  margin: 0;
}
@media (min-width: 992px) {
  .footer-copyright {
    font-size: 12px;
  }
}

/**
 * Gravity Forms - Orbital Theme Overrides
 *
 * Styles for GF 2.9+ Orbital theme.
 * Uses CSS custom properties to override Orbital defaults.
 *
 * Structure:
 *   1. CSS Custom Properties (theme-wide overrides)
 *   2. Direct Style Overrides (elements Orbital doesn't fully control)
 *   3. Validation & Error States
 *   4. Honeypot Field (spam protection)
 */
.gform_wrapper.gform-theme--orbital[data-form-index] {
  --gf-color-primary: #E1FF85;
  --gf-color-primary-rgb: 48, 181, 94;
  --gf-ctrl-label-font-family-primary: Instrument Sans, Helvetica, Arial, sans-serif;
  --gf-ctrl-label-font-size-primary: 14px;
  --gf-ctrl-label-font-weight-primary: 600;
  --gf-ctrl-label-color-primary: #231708;
  --gf-ctrl-font-family: Instrument Sans, Helvetica, Arial, sans-serif;
  --gf-ctrl-font-size: 16px;
  --gf-ctrl-line-height: 1.5;
  --gf-ctrl-color: #231708;
  --gf-ctrl-color-placeholder: #959a9e;
  --gf-ctrl-bg-color: #fff;
  --gf-ctrl-border-color: #e0e0e0;
  --gf-ctrl-border-width: 1px;
  --gf-ctrl-border-radius: 4px;
  --gf-ctrl-padding-x: 16px;
  --gf-ctrl-padding-y: 14px;
  --gf-ctrl-border-color-focus: #E1FF85;
  --gf-ctrl-focus-ring-color: rgba(48, 181, 94, 0.2);
  --gf-ctrl-select-color: #231708;
  --gf-ctrl-choice-label-color: #231708;
  --gf-ctrl-btn-font-family: Instrument Sans, Helvetica, Arial, sans-serif;
  --gf-ctrl-btn-font-size: 16px;
  --gf-ctrl-btn-font-weight: 600;
  --gf-ctrl-btn-color: #fff;
  --gf-ctrl-btn-color-hover: #fff;
  --gf-ctrl-btn-bg-color: #E1FF85;
  --gf-ctrl-btn-bg-color-hover: #ECFDA8;
  --gf-ctrl-btn-border-color: #E1FF85;
  --gf-ctrl-btn-border-color-hover: #ECFDA8;
  --gf-ctrl-btn-border-radius: 4px;
  --gf-ctrl-btn-padding-x: 24px;
  --gf-ctrl-btn-padding-y: 12px;
  --gf-field-pg-row-gap: 24px;
  --gf-form-gap-y: 24px;
}

.gform_wrapper.gform-theme--orbital {
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
}
.gform_wrapper.gform-theme--orbital .gform_required_legend {
  display: none;
}
.gform_wrapper.gform-theme--orbital .gfield_required {
  color: inherit;
}
.gform_wrapper.gform-theme--orbital textarea {
  min-height: 120px;
  resize: vertical;
}
.gform_wrapper.gform-theme--orbital select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23959a9e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 10px;
  padding-right: 48px;
}
.gform_wrapper.gform-theme--orbital .gform_footer,
.gform_wrapper.gform-theme--orbital .gform_page_footer {
  margin-top: 24px;
  padding: 0;
}

.gform_wrapper.gform-theme--orbital .gfield_validation_message,
.gform_wrapper.gform-theme--orbital .validation_message {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.5;
  color: #dc3545;
}
.gform_wrapper.gform-theme--orbital .gfield_error input,
.gform_wrapper.gform-theme--orbital .gfield_error select,
.gform_wrapper.gform-theme--orbital .gfield_error textarea {
  border-color: #dc3545;
}
.gform_wrapper.gform-theme--orbital .gform_submission_error {
  margin-bottom: 24px;
  padding: 16px;
  font-size: 14px;
  color: #dc3545;
  background-color: rgba(220, 53, 69, 0.1);
  border-radius: 4px;
}
.gform_wrapper.gform-theme--orbital .gform_confirmation_message {
  padding: 24px;
  font-size: 16px;
  line-height: 1.5;
  color: #28a745;
  background-color: rgba(40, 167, 69, 0.1);
  border-radius: 4px;
}

.gform_wrapper .gform_validation_container {
  display: none !important;
  position: absolute !important;
  left: -9999px !important;
}

.hidden_label .gfield_label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page-hero--form .gform_wrapper.gravity-theme .gform_required_legend,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_required_legend {
  display: none !important;
}
.page-hero--form .gform_wrapper.gravity-theme .gform_fields,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_fields {
  display: flex;
  flex-direction: column;
  row-gap: 40px !important;
  column-gap: 16px !important;
}
.page-hero--form .gform_wrapper.gravity-theme .gfield_label,
.page-hero--form .gform_wrapper.gravity-theme .gform-field-label,
.page-hero--form .gform_wrapper.gform-theme--orbital .gfield_label,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform-field-label {
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
  color: #231708 !important;
  margin-bottom: 8px !important;
}
.page-hero--form .gform_wrapper.gravity-theme input[type=text],
.page-hero--form .gform_wrapper.gravity-theme input[type=email],
.page-hero--form .gform_wrapper.gravity-theme input[type=tel],
.page-hero--form .gform_wrapper.gravity-theme input[type=number],
.page-hero--form .gform_wrapper.gravity-theme textarea,
.page-hero--form .gform_wrapper.gravity-theme select,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=text],
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=email],
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=tel],
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=number],
.page-hero--form .gform_wrapper.gform-theme--orbital textarea,
.page-hero--form .gform_wrapper.gform-theme--orbital select {
  background-color: #F5F3E7 !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 16px !important;
  font-size: 14px !important;
  color: #231708 !important;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif !important;
  box-shadow: none !important;
  outline: none !important;
}
.page-hero--form .gform_wrapper.gravity-theme input[type=text]:focus,
.page-hero--form .gform_wrapper.gravity-theme input[type=email]:focus,
.page-hero--form .gform_wrapper.gravity-theme input[type=tel]:focus,
.page-hero--form .gform_wrapper.gravity-theme input[type=number]:focus,
.page-hero--form .gform_wrapper.gravity-theme textarea:focus,
.page-hero--form .gform_wrapper.gravity-theme select:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=text]:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=email]:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=tel]:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=number]:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital textarea:focus,
.page-hero--form .gform_wrapper.gform-theme--orbital select:focus {
  background-color: #F5F3E7 !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.page-hero--form .gform_wrapper.gravity-theme input::placeholder,
.page-hero--form .gform_wrapper.gravity-theme textarea::placeholder,
.page-hero--form .gform_wrapper.gform-theme--orbital input::placeholder,
.page-hero--form .gform_wrapper.gform-theme--orbital textarea::placeholder {
  color: #231708 !important;
  opacity: 1 !important;
  font-size: 14px !important;
  letter-spacing: -0.14px !important;
}
.page-hero--form .gform_wrapper.gravity-theme textarea,
.page-hero--form .gform_wrapper.gform-theme--orbital textarea {
  min-height: 88px !important;
  resize: vertical;
}
@media (min-width: 992px) {
  .page-hero--form .gform_wrapper.gravity-theme .gform_fields,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform_fields {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .page-hero--form .gform_wrapper.gravity-theme .gfield,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gfield {
    width: 100%;
  }
  .page-hero--form .gform_wrapper.gravity-theme .gfield--width-half,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gfield--width-half {
    width: calc(50% - 8px) !important;
  }
}
.page-hero--form .gform_wrapper.gravity-theme .gform_footer,
.page-hero--form .gform_wrapper.gravity-theme .gform-footer,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_footer,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform-footer {
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 44px !important;
  padding: 0 !important;
}
.page-hero--form .gform_wrapper.gravity-theme .gform_button,
.page-hero--form .gform_wrapper.gravity-theme input[type=submit],
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_button,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=submit] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 184px !important;
  padding: 4px 16px !important;
  background-color: #E1FF85 !important;
  color: #231708 !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  line-height: 1 !important;
  min-height: 40px !important;
  box-shadow: none !important;
}
.page-hero--form .gform_wrapper.gravity-theme .gform_button:hover,
.page-hero--form .gform_wrapper.gravity-theme input[type=submit]:hover,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_button:hover,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=submit]:hover {
  background-color: #ECFDA8 !important;
}
.page-hero--form .gform_wrapper.gravity-theme .gform_button::before,
.page-hero--form .gform_wrapper.gravity-theme input[type=submit]::before,
.page-hero--form .gform_wrapper.gform-theme--orbital .gform_button::before,
.page-hero--form .gform_wrapper.gform-theme--orbital input[type=submit]::before {
  content: "" !important;
  width: 6px !important;
  height: 6px !important;
  background-color: #231708 !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
}

@media (max-width: 768px) {
  .page-hero--form .gform_wrapper.gravity-theme .gform_fields,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform_fields {
    gap: 24px !important;
  }
  .page-hero--form .gform_wrapper.gravity-theme .gfield_label,
  .page-hero--form .gform_wrapper.gravity-theme .gform-field-label,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gfield_label,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform-field-label {
    font-size: 10px !important;
  }
  .page-hero--form .gform_wrapper.gravity-theme input[type=text],
  .page-hero--form .gform_wrapper.gravity-theme input[type=email],
  .page-hero--form .gform_wrapper.gravity-theme input[type=tel],
  .page-hero--form .gform_wrapper.gravity-theme input[type=number],
  .page-hero--form .gform_wrapper.gravity-theme textarea,
  .page-hero--form .gform_wrapper.gravity-theme select,
  .page-hero--form .gform_wrapper.gform-theme--orbital input[type=text],
  .page-hero--form .gform_wrapper.gform-theme--orbital input[type=email],
  .page-hero--form .gform_wrapper.gform-theme--orbital input[type=tel],
  .page-hero--form .gform_wrapper.gform-theme--orbital input[type=number],
  .page-hero--form .gform_wrapper.gform-theme--orbital textarea,
  .page-hero--form .gform_wrapper.gform-theme--orbital select {
    font-size: 12px !important;
  }
  .page-hero--form .gform_wrapper.gravity-theme .gform_footer,
  .page-hero--form .gform_wrapper.gravity-theme .gform-footer,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform_footer,
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform-footer {
    margin-top: 32px !important;
  }
  .page-hero--form .gform_wrapper.gravity-theme .gform_button,
  .page-hero--form .gform_wrapper.gravity-theme input[type=submit],
  .page-hero--form .gform_wrapper.gform-theme--orbital .gform_button,
  .page-hero--form .gform_wrapper.gform-theme--orbital input[type=submit] {
    min-width: 150px !important;
  }
}
/*
    Components Manifest

    Import reusable UI components here (alphabetical order).
    Components are standalone patterns used across multiple sections.

    Examples: blog-card, team-card, testimonial-card, accordion

    Creating a new component:
        1. Create css/components/_my-component.scss
        2. Add @use 'my-component'; below
        3. Use .my-component class in templates

    Component structure:
        .my-component {
            .image { }
            .title { }
            .content { }
        }
*/
/*
    Page Hero Component

    Hero banner displayed at the top of pages.
    Three modes: image, basic, form (image implemented first).

    Usage:
        get_template_part('template-parts/hero');

    Modifiers:
        .page-hero--image        — Full-bleed background image
        .page-hero--basic        — Simple text hero
        .page-hero--form         — Hero with contact form
        .page-hero--font-light   — Light (white/cream) text
        .page-hero--font-dark    — Dark (brown) text
*/
.page-hero {
  position: relative;
  height: 680px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .page-hero {
    height: 500px;
  }
}
@media (max-width: 992px) {
  .page-hero:has(.page-hero__selector) {
    margin-bottom: 280px;
  }
}

.page-hero__bg {
  position: absolute;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.page-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: blur-to-sharp 1.2s ease-out forwards;
}
.page-hero__image--left {
  object-position: left center;
}
.page-hero__image--middle {
  object-position: center center;
}
.page-hero__image--right {
  object-position: right center;
}

@keyframes blur-to-sharp {
  from {
    filter: blur(8px);
    transform: scale(1.02);
  }
  to {
    filter: blur(0);
    transform: scale(1);
  }
}
.page-hero__content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 0 24px;
  max-width: 610px;
}

.page-hero__subtitle {
  display: block;
  font-size: 16px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .page-hero__subtitle {
    font-size: 14px;
  }
}

.page-hero__title {
  font-size: 56px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  margin: 0;
}
@media (max-width: 768px) {
  .page-hero__title {
    font-size: 32px;
  }
}

.page-hero--font-light .page-hero__subtitle,
.page-hero--font-light .page-hero__title,
.page-hero--font-light .page-hero__copy {
  color: #fff;
}

.page-hero--font-dark .page-hero__subtitle,
.page-hero--font-dark .page-hero__title,
.page-hero--font-dark .page-hero__copy {
  color: #231708;
}

.page-hero--form {
  height: auto;
  padding: 200px 0 70px;
}
@media (min-width: 768px) {
  .page-hero--form {
    padding: 228px 0 70px;
  }
}
.page-hero--form .page-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: start;
}
@media (min-width: 992px) {
  .page-hero--form .page-hero__grid {
    grid-template-columns: 1fr 1.5fr;
    gap: 96px;
  }
}
.page-hero--form .page-hero__text {
  max-width: 436px;
}
.page-hero--form .page-hero__title {
  font-size: 28px;
}
@media (min-width: 992px) {
  .page-hero--form .page-hero__title {
    font-size: 42px;
  }
}
.page-hero--form .page-hero__copy {
  margin-top: 16px;
  font-size: 14px;
  line-height: 1.2;
}
@media (min-width: 992px) {
  .page-hero--form .page-hero__copy {
    font-size: 16px;
  }
}
.page-hero__selector {
  position: absolute;
  bottom: -260px;
  left: 0;
  right: 0;
  z-index: 30;
  padding: 0 16px;
}
@media (min-width: 992px) {
  .page-hero__selector {
    bottom: -50px;
    padding: 0 24px;
  }
}

.page-hero__selector-bar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  background-color: #F5F3E7;
  border-radius: 4px;
  max-width: 960px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .page-hero__selector-bar {
    flex-direction: row;
    align-items: flex-end;
    gap: 24px;
  }
}

.page-hero__selector-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
@media (min-width: 992px) {
  .page-hero__selector-field {
    width: auto;
    flex: 1;
  }
}
@media (min-width: 992px) {
  .page-hero__selector-field--type, .page-hero__selector-field--location {
    flex: none;
    width: 220px;
  }
}
@media (min-width: 992px) {
  .page-hero__selector-field--search {
    flex: 1;
    min-width: 180px;
  }
}
@media (min-width: 992px) {
  .page-hero__selector-field--submit {
    flex: none;
    width: auto;
  }
}

.page-hero__selector-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
}
@media (max-width: 768px) {
  .page-hero__selector-label {
    font-size: 10px;
  }
}

.page-hero__selector-dropdown {
  position: relative;
}

.page-hero__selector-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 40px;
  padding: 4px 4px 4px 16px;
  background-color: #FEFFF5;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  font-weight: 400;
  text-align: left;
  color: #231708;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.page-hero__selector-toggle::before {
  display: none !important;
}
.page-hero__selector-toggle:hover, .page-hero__selector-toggle:focus {
  outline: none;
}
.page-hero__selector-toggle[aria-expanded=true] .page-hero__selector-arrow {
  transform: rotate(180deg);
}
@media (max-width: 768px) {
  .page-hero__selector-toggle {
    font-size: 12px;
  }
}

.page-hero__selector-value {
  font-weight: 400;
}

.page-hero__selector-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.page-hero__selector-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 100;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
  background-color: #FEFFF5;
  border: 1px solid #F5F3E7;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.009);
}
.page-hero__selector-menu[hidden] {
  display: none;
}
.page-hero__selector-menu li {
  padding: 16px;
  font-size: 14px;
  color: #231708;
  cursor: pointer;
  border-bottom: 1px solid #F5F3E7;
  transition: background-color 0.15s ease;
}
.page-hero__selector-menu li:last-child {
  border-bottom: none;
}
.page-hero__selector-menu li:hover {
  background-color: #F5F3E7;
}
.page-hero__selector-menu li.is-selected {
  font-weight: 500;
}

.page-hero__selector-input-wrap {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 4px 16px 4px 4px;
  background-color: #FEFFF5;
  border-radius: 4px;
  gap: 4px;
}

.page-hero__selector-search-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  color: #231708;
}

.page-hero__selector-input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 14px;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  color: #231708;
}
.page-hero__selector-input::placeholder {
  color: #231708;
}
.page-hero__selector-input:focus {
  outline: none;
}
@media (max-width: 768px) {
  .page-hero__selector-input {
    font-size: 12px;
  }
}

.page-hero__selector-btn {
  width: 100%;
}
@media (min-width: 992px) {
  .page-hero__selector-btn {
    width: auto;
    min-width: 160px;
  }
}

/*
    Sections Manifest

    Import ACF Flexible Content section styles here (alphabetical order).
    Each section corresponds to a layout in the Sections field group.

    Creating a new section:
        1. Create css/sections/_my-section.scss
        2. Add @use 'my-section'; below
        3. PHP template: template-parts/sections/s-my-section.php

    Section structure:
        .section-my-section {
            padding: $section-spacing-y 0;

            .title { }
            .content { }
        }
*/
/*
    404 Page Section

    Full-height section with decorative background and centered content.
    Uses utility classes in template for text alignment.

    Structure:
        .section-404
            .bg-decoration (SVG)
            .container
                .content.text-center.text-dark
                    h1.title
                    p.description
                    a.btn.btn--secondary
*/
.section-404 {
  background-color: #FEFFF5;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 80px 0;
}
.section-404 .bg-decoration {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  height: 100%;
  width: auto;
}
.section-404 .bg-decoration--ellipse-1 {
  top: 0;
  right: -100px;
  bottom: 0;
  animation: float-right 20s ease-in-out infinite;
}
@media (max-width: 768px) {
  .section-404 .bg-decoration--ellipse-1 {
    right: -200px;
  }
}
.section-404 .bg-decoration--ellipse-2 {
  top: 0;
  left: -200px;
  bottom: 0;
  animation: float-left 25s ease-in-out infinite;
}
@media (max-width: 768px) {
  .section-404 .bg-decoration--ellipse-2 {
    left: -350px;
  }
}
@keyframes float-right {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(-15px, 10px) rotate(1deg);
  }
  50% {
    transform: translate(-5px, -15px) rotate(-0.5deg);
  }
  75% {
    transform: translate(10px, 5px) rotate(0.5deg);
  }
}
@keyframes float-left {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(10px, -10px) rotate(-1deg);
  }
  50% {
    transform: translate(20px, 15px) rotate(0.5deg);
  }
  75% {
    transform: translate(-10px, -5px) rotate(-0.5deg);
  }
}
.section-404 .content {
  position: relative;
  z-index: 2;
  max-width: 724px;
  margin: 0 auto;
  padding: 244px 0;
}
@media (max-width: 768px) {
  .section-404 .content {
    max-width: 342px;
    padding: 156px 0;
  }
}
.section-404 .title {
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  font-size: 42px;
  font-style: normal;
  font-weight: 400;
  line-height: 110%;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .section-404 .title {
    font-size: 28px;
  }
}
.section-404 .description {
  font-size: 16px;
  line-height: 1.2;
  margin-bottom: 64px;
}
@media (max-width: 768px) {
  .section-404 .description {
    font-size: 14px;
    margin-bottom: 48px;
  }
}

/*
    Section: Cards Grid

    Grid of 325px square cards with 3 modes:
    - Image only
    - Text only (with label)
    - Text with background image

    Layout: 3 columns desktop/tablet, 2 columns mobile
*/
.section-cards-grid {
  padding: 180px 0;
}
.section-cards-grid--bg-white {
  background-color: #fff;
}
.section-cards-grid--bg-linen {
  background-color: #F5F3E7;
}
@media (max-width: 768px) {
  .section-cards-grid {
    padding: 88px 0;
  }
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 325px);
  gap: 16px;
  justify-content: center;
}
@media (max-width: 1200px) {
  .cards-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .cards-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

.cards-grid__card {
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
}

.cards-grid__card--image .cards-grid__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cards-grid__card--text {
  background-color: #F9F8ED;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cards-grid__card--text .cards-grid__content-wrap {
  padding: 24px;
  text-align: center;
  max-width: 263px;
}

.cards-grid__card--text-with-bg {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cards-grid__card--text-with-bg .cards-grid__bg-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.cards-grid__card--text-with-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(249, 248, 237, 0.7);
  z-index: 2;
}
.cards-grid__card--text-with-bg .cards-grid__content-wrap {
  position: relative;
  z-index: 3;
  padding: 24px;
  text-align: center;
  max-width: 263px;
}

.cards-grid__label {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .cards-grid__label {
    font-size: 10px;
    margin-bottom: 8px;
  }
}

.cards-grid__content {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
}
@media (max-width: 768px) {
  .cards-grid__content {
    font-size: 12px;
  }
}

.section-cta-banner {
  padding: 180px 0;
}
@media (max-width: 768px) {
  .section-cta-banner {
    height: 604px;
    padding: 0;
    display: flex;
    align-items: center;
  }
}
.section-cta-banner .content {
  max-width: 875px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}
@media (max-width: 768px) {
  .section-cta-banner .content {
    max-width: 100%;
    gap: 24px;
  }
}
.section-cta-banner .title {
  margin: 0;
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  max-width: 539px;
}
@media (max-width: 768px) {
  .section-cta-banner .title {
    font-size: 28px;
    max-width: 100%;
  }
}
.section-cta-banner .subtitle {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
  max-width: 669px;
}
@media (max-width: 768px) {
  .section-cta-banner .subtitle {
    font-size: 16px;
    max-width: 100%;
  }
}
.section-cta-banner .buttons {
  display: flex;
  gap: 8px;
}
@media (max-width: 768px) {
  .section-cta-banner .buttons {
    gap: 6px;
  }
}
.section-cta-banner .buttons .btn {
  min-width: 184px;
}
@media (max-width: 768px) {
  .section-cta-banner .buttons .btn {
    min-width: 147px;
  }
}

/*
    Section: Featured Listings

    Full-width slider of featured property cards (manual pick, or nearest on
    the map to a chosen listing). Reuses the shared .property-card styles from
    _similar-properties.scss; this file only handles the section shell, the
    full-bleed slider track, and the nav controls.

    Slider behaviour: tiny-slider, initialised in custom.js
    (initFeaturedListingsSlider). Mirrors the Similar Properties slider.
*/
.section-featured-listings {
  padding: 120px 0;
  text-align: center;
}
@media (max-width: 768px) {
  .section-featured-listings {
    padding: 88px 0;
  }
}
.section-featured-listings--bg-white {
  background-color: #fff;
}
.section-featured-listings--bg-linen {
  background-color: #F5F3E7;
}
.section-featured-listings--bg-cream {
  background-color: #FEFFF5;
}
.section-featured-listings--bg-half-linen {
  background-color: #F9F8ED;
}

.featured-listings__title {
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin: 0 0 48px;
}

.featured-listings__slider-wrap {
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
}
.featured-listings__slider-wrap .tns-nav,
.featured-listings__slider-wrap .tns-controls {
  display: none;
}
.featured-listings__slider-wrap .tns-slider {
  transition-timing-function: ease-out;
}
.featured-listings__slider-wrap .tns-item {
  display: flex;
  justify-content: center;
}

.featured-listings__slider {
  display: flex;
  justify-content: center;
}
.featured-listings__slider.tns-slider {
  transform: translateX(72px);
}
@media (max-width: 1599px) {
  .featured-listings__slider.tns-slider {
    transform: translateX(50px);
  }
}
@media (max-width: 1199px) {
  .featured-listings__slider.tns-slider {
    transform: translateX(40px);
  }
}
@media (max-width: 992px) {
  .featured-listings__slider {
    flex-direction: column;
    align-items: center;
    gap: 48px;
    padding: 0 16px;
    transform: none;
  }
}

.featured-listings__nav {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 48px;
}
@media (max-width: 992px) {
  .featured-listings__nav {
    display: none;
  }
}

.featured-listings__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #231708;
  cursor: pointer;
  transition: background-color 0.2s ease;
  min-height: 0;
}
.featured-listings__nav-btn::before {
  display: none;
}
.featured-listings__nav-btn:hover {
  background-color: #F5F3E7;
}
.featured-listings__nav-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.featured-listings__nav-btn svg {
  width: 8px;
  height: 16px;
}

/*
    Section: Key Features

    Floating circle effect background with focus-based animation.
    - Single circle SVG that responds to scroll position
    - Small/blurry when out of focus, larger/sharp when in focus
    - Features: blur-to-sharp + scale transition on scroll
*/
.section-key-features {
  padding: 180px 0;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .section-key-features {
    padding: 80px 0;
  }
}
.section-key-features .container {
  position: relative;
  z-index: 1;
}
.section-key-features .circle-effect {
  --parallax-x: 0px;
  --parallax-y: 0px;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  max-width: 1800px;
  pointer-events: none;
  will-change: transform, filter, opacity;
  z-index: 0;
  opacity: 0.3;
  filter: blur(25px);
  transform: translate(calc(-50% + var(--parallax-x)), calc(-50% + var(--parallax-y))) scale(0.5) rotate(-12deg);
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 0.5s ease-out, opacity 0.4s ease-out;
}
.section-key-features .circle-effect.is-focused {
  opacity: 0.8;
  filter: blur(0);
  transform: translate(calc(-50% + var(--parallax-x)), calc(-50% + var(--parallax-y))) scale(1) rotate(0deg);
}
.section-key-features .circle-effect.is-approaching {
  opacity: 0.5;
  filter: blur(12px);
  transform: translate(calc(-50% + var(--parallax-x)), calc(-50% + var(--parallax-y))) scale(0.7) rotate(-8deg);
}
.section-key-features .circle-effect.is-leaving {
  opacity: 0.45;
  filter: blur(16px);
  transform: translate(calc(-50% + var(--parallax-x)), calc(-50% + var(--parallax-y))) scale(0.6) rotate(8deg);
}
@media (max-width: 768px) {
  .section-key-features .circle-effect {
    max-width: 100%;
    filter: blur(15px);
    transform: translate(-50%, -50%) scale(0.6) rotate(-8deg);
  }
  .section-key-features .circle-effect.is-focused {
    filter: blur(0);
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }
  .section-key-features .circle-effect.is-approaching {
    filter: blur(8px);
    transform: translate(-50%, -50%) scale(0.75) rotate(-5deg);
  }
  .section-key-features .circle-effect.is-leaving {
    filter: blur(10px);
    transform: translate(-50%, -50%) scale(0.7) rotate(5deg);
  }
}
.section-key-features .circle-effect__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.section-key-features .intro {
  font-size: 20px;
  line-height: 1.2;
  text-align: center;
  color: #231708;
  max-width: 730px;
  margin: 0 auto 120px;
}
@media (max-width: 768px) {
  .section-key-features .intro {
    font-size: 16px;
    margin-bottom: 48px;
  }
}
.section-key-features .features {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 120px;
}
@media (max-width: 768px) {
  .section-key-features .features {
    gap: 120px;
  }
}
.section-key-features .feature {
  max-width: 480px;
  opacity: 0.25;
  filter: blur(4px);
  transform: scale(0.95);
  transition: opacity 0.5s ease-out, filter 0.5s ease-out, transform 0.5s ease-out;
}
@media (max-width: 768px) {
  .section-key-features .feature {
    opacity: 0.4;
    filter: blur(2px);
    transform: scale(0.98);
  }
}
.section-key-features .feature.is-active {
  opacity: 1;
  filter: blur(0);
  transform: scale(1.05);
}
@media (max-width: 768px) {
  .section-key-features .feature.is-active {
    transform: scale(1.02);
  }
}
.section-key-features .feature.is-near {
  opacity: 0.5;
  filter: blur(2px);
  transform: scale(1);
}
@media (max-width: 768px) {
  .section-key-features .feature.is-near {
    opacity: 0.6;
    filter: blur(1px);
  }
}
.section-key-features .feature__text {
  font-size: 32px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  text-align: center;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .section-key-features .feature__text {
    font-size: 24px;
  }
}

/*
    Section: Listing Agent

    Centered text section displaying agent contact information
    with decorative green swoosh background.
*/
.section-listing-agent {
  background-color: #F9F8ED;
  position: relative;
  overflow: hidden;
}

.listing-agent {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 563px;
  padding: 180px 0;
}
@media (max-width: 768px) {
  .listing-agent {
    min-height: auto;
    padding: 120px 0;
  }
}

.listing-agent__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.listing-agent__bg-svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-agent__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 785px;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}
@media (max-width: 768px) {
  .listing-agent__content {
    max-width: 331px;
    gap: 40px;
  }
}

.listing-agent__name-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.listing-agent__label {
  font-size: 32px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .listing-agent__label {
    font-size: 24px;
  }
}

.listing-agent__name {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .listing-agent__name {
    font-size: 20px;
  }
}

.listing-agent__contact-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.listing-agent__contact {
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #231708;
  text-decoration: none;
  display: block;
}
.listing-agent__contact:hover {
  color: #231708;
  text-decoration: underline;
}
@media (max-width: 768px) {
  .listing-agent__contact {
    font-size: 16px;
  }
}

/*
    Print Listing Stylesheet (A4)

    Powers the "Print this listing" button on single property pages.

    On screen the print sheet (.single-property__print-sheet) is hidden. When
    the user prints, everything interactive is hidden and the print sheet is
    revealed — giving a clean, brand-led A4 document with the title/address,
    key details, description, image, agent contact, and a link back online.

    Client-side only — no server-generated PDFs (users "Save as PDF" from the
    browser's own print dialog if they want a file).
*/
.single-property__print-sheet {
  display: none;
}

@media print {
  @page {
    size: A4;
    margin: 16mm;
  }
  .site-header,
  .site-footer,
  .single-property__breadcrumb,
  .single-property__gallery,
  .single-property__lightbox,
  .single-property__info,
  .single-property__content,
  .section-similar-properties,
  .single-property__print-button {
    display: none !important;
  }
  html,
  body,
  .single-property {
    background: #fff !important;
  }
  .single-property__print-sheet {
    display: block !important;
    color: #231708;
    font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
    font-size: 11pt;
    line-height: 1.5;
  }
  .print-sheet__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid #231708;
  }
  .print-sheet__logo {
    max-height: 48px;
    width: auto;
  }
  .print-sheet__heading {
    text-align: right;
  }
  .print-sheet__title {
    margin: 0;
    font-size: 20pt;
    font-weight: 600;
    line-height: 1.1;
  }
  .print-sheet__level {
    margin: 2pt 0 0;
    font-size: 12pt;
    font-weight: 500;
  }
  .print-sheet__address {
    margin: 4pt 0 0;
    font-size: 10pt;
    color: #231708;
  }
  .print-sheet__image-wrap {
    margin: 16px 0;
  }
  .print-sheet__image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90mm;
    object-fit: cover;
  }
  .print-sheet__subtitle {
    margin: 0 0 8px;
    font-size: 12pt;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
  }
  .print-sheet__details {
    margin-bottom: 16px;
  }
  .print-sheet__table {
    width: 100%;
    border-collapse: collapse;
  }
  .print-sheet__table th,
  .print-sheet__table td {
    padding: 4pt 0;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #e0e0e0;
    font-size: 10.5pt;
  }
  .print-sheet__table th {
    width: 35%;
    font-weight: 500;
    color: #231708;
  }
  .print-sheet__description {
    margin-bottom: 16px;
  }
  .print-sheet__description p {
    margin: 0 0 8px;
  }
  .print-sheet__short-desc {
    font-weight: 500;
  }
  .print-sheet__footer {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 2px solid #231708;
    font-size: 10pt;
  }
  .print-sheet__agent-name {
    margin: 0;
    font-weight: 600;
  }
  .print-sheet__agent-contact {
    margin: 2pt 0 0;
  }
  .print-sheet__link {
    margin: 8px 0 0;
    color: #231708;
    word-break: break-all;
  }
}
/*
    Section: Similar Properties

    Slider of property cards on desktop, vertical stack on mobile.
    Uses tiny-slider for carousel functionality.
*/
.section-similar-properties--bg-white {
  background-color: #fff;
}
.section-similar-properties--bg-linen {
  background-color: #F5F3E7;
}
.section-similar-properties--bg-cream {
  background-color: #FEFFF5;
}
.section-similar-properties--bg-half-linen {
  background-color: #F9F8ED;
}
.section-similar-properties {
  padding: 120px 0;
  text-align: center;
}
@media (max-width: 768px) {
  .section-similar-properties {
    padding: 88px 0;
  }
}

.similar-properties__title {
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin: 0 0 48px;
}

.similar-properties__slider-wrap {
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
}

.similar-properties__slider {
  display: flex;
  justify-content: center;
}
.similar-properties__slider.tns-slider {
  transform: translateX(72px);
}
@media (max-width: 1599px) {
  .similar-properties__slider.tns-slider {
    transform: translateX(50px);
  }
}
@media (max-width: 1199px) {
  .similar-properties__slider.tns-slider {
    transform: translateX(40px);
  }
}
@media (max-width: 992px) {
  .similar-properties__slider {
    flex-direction: column;
    align-items: center;
    gap: 48px;
    padding: 0 16px;
    transform: none;
  }
}

.property-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #231708;
  flex-shrink: 0;
  width: 100%;
}
@media (max-width: 992px) {
  .property-card {
    width: 100%;
    max-width: 500px;
  }
}
.property-card:hover .property-card__image {
  transform: scale(1.02);
  filter: blur(4px);
}
.property-card:hover .property-card__image-wrap::before, .property-card:hover .property-card__image-wrap::after {
  opacity: 1;
}

.property-card__title {
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  width: 100%;
  text-align: center;
  margin: 0 0 16px;
}
@media (max-width: 992px) {
  .property-card__title {
    font-size: 28px;
    margin-bottom: 8px;
  }
}

.property-card__image-wrap {
  position: relative;
  width: 82%;
  aspect-ratio: 530/352;
  overflow: hidden;
  background-color: #F5F3E7;
  margin: 0 auto;
}
.property-card__image-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: linear-gradient(to bottom, rgba(254, 255, 245, 0.5), rgba(254, 255, 245, 0.5)), linear-gradient(to bottom, rgba(245, 243, 231, 0.5), rgba(245, 243, 231, 0.5));
  mix-blend-mode: multiply;
}
.property-card__image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background-color: #E1FF85;
  mix-blend-mode: screen;
}

.property-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.property-card__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: #F5F3E7;
}

.property-card__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-top: 16px;
}
@media (max-width: 992px) {
  .property-card__meta {
    gap: 24px;
    margin-top: 8px;
  }
}

.property-card__status {
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}
.property-card__status::before {
  content: "";
  width: 10px;
  height: 10px;
  background-color: #E1FF85;
  border-radius: 50%;
  flex-shrink: 0;
}

.property-card__badges {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 992px) {
  .property-card__badges {
    gap: 6px;
  }
}

.property-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  background-color: #F5F3E7;
  border-radius: 4px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}
@media (max-width: 992px) {
  .property-card__badge {
    padding: 3px 6px;
    border-radius: 3px;
  }
}

.similar-properties__nav {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 48px;
}
@media (max-width: 992px) {
  .similar-properties__nav {
    display: none;
  }
}

.similar-properties__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #231708;
  cursor: pointer;
  transition: background-color 0.2s ease;
  min-height: 0;
}
.similar-properties__nav-btn::before {
  display: none;
}
.similar-properties__nav-btn:hover {
  background-color: #F5F3E7;
}
.similar-properties__nav-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.similar-properties__nav-btn svg {
  width: 8px;
  height: 16px;
}

.similar-properties__slider-wrap .tns-nav,
.similar-properties__slider-wrap .tns-controls {
  display: none;
}
.similar-properties__slider-wrap .tns-slider {
  transition-timing-function: ease-out;
}
.similar-properties__slider-wrap .tns-item {
  display: flex;
  justify-content: center;
}
.similar-properties__slider-wrap--two-items .tns-slider {
  transform: translateX(0) !important;
  justify-content: center;
}
.similar-properties__slider-wrap--two-items .tns-inner {
  display: flex;
  justify-content: center;
}
.similar-properties__slider-wrap--two-items ~ .similar-properties__nav {
  display: none;
}

/*
    Template: Single Property Page

    Full property listing page with gallery slider, property details,
    location map, floorplan, enquiry form, and similar properties.
*/
.single-property {
  background-color: #FEFFF5;
}
.single-property button::before {
  display: none;
}

.single-property__breadcrumb {
  padding-top: 168px;
  padding-bottom: 24px;
}

.single-property__breadcrumb-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
}

.single-property__breadcrumb-item {
  color: #231708;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.single-property__breadcrumb-item:hover {
  opacity: 0.6;
}
.single-property__breadcrumb-item--current {
  opacity: 0.6;
}

.single-property__breadcrumb-separator {
  display: flex;
  align-items: center;
  color: #231708;
}
.single-property__breadcrumb-separator svg {
  width: 5px;
  height: 9px;
}

.single-property__gallery {
  width: 100%;
  background-color: #FEFFF5;
  padding: 0 32px;
}
@media (min-width: 768px) {
  .single-property__gallery {
    padding: 0 48px;
  }
}

.single-property__gallery-viewport {
  position: relative;
}

.single-property__gallery-image {
  width: 100%;
  height: 183px;
  object-fit: cover;
}
@media (min-width: 768px) {
  .single-property__gallery-image {
    height: 500px;
  }
}
@media (min-width: 992px) {
  .single-property__gallery-image {
    height: 600px;
  }
}
@media (min-width: 1200px) {
  .single-property__gallery-image {
    height: 700px;
  }
}
@media (min-width: 1920px) {
  .single-property__gallery-image {
    height: 994px;
  }
}

.single-property__gallery-maximize {
  position: absolute;
  bottom: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
  z-index: 10;
}
@media (min-width: 992px) {
  .single-property__gallery-maximize {
    bottom: 32px;
    right: 32px;
  }
}
.single-property__gallery-maximize:hover {
  background-color: #231708;
}
.single-property__gallery-maximize svg {
  width: 18px;
  height: 18px;
}

.single-property__gallery-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
}

.single-property__gallery-prev,
.single-property__gallery-next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.single-property__gallery-prev:hover,
.single-property__gallery-next:hover {
  background-color: #F9F8ED;
}
.single-property__gallery-prev:disabled,
.single-property__gallery-next:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.single-property__gallery-prev svg,
.single-property__gallery-next svg {
  width: 13px;
  height: 24px;
}
@media (max-width: 767px) {
  .single-property__gallery-prev svg,
  .single-property__gallery-next svg {
    width: 14px;
    height: 14px;
  }
}

.single-property__gallery-next svg {
  transform: scaleX(-1);
}

.single-property__gallery-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}

.single-property__gallery-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background-color: transparent;
  color: rgba(35, 23, 8, 0.3);
  cursor: pointer;
}
.single-property__gallery-dot:hover {
  background-color: transparent;
}
.single-property__gallery-dot.is-active {
  color: #231708;
}
.single-property__gallery-dot svg {
  width: 3px;
  height: 3px;
}

.single-property__lightbox {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: #231708;
}
.single-property__lightbox.is-open {
  display: flex;
}

.single-property__lightbox-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: transparent;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.2s ease;
  z-index: 10;
}
@media (min-width: 992px) {
  .single-property__lightbox-close {
    top: 24px;
    right: 24px;
  }
}
.single-property__lightbox-close:hover {
  background-color: #F9F8ED;
  color: #231708;
}
.single-property__lightbox-close svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.5;
}

.single-property__lightbox-content {
  width: 100%;
  padding: 80px 24px 100px;
}

.single-property__lightbox-slide {
  text-align: center;
}

.single-property__lightbox-image {
  max-width: 100%;
  max-height: calc(100vh - 200px);
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}

.single-property__lightbox-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 32px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.single-property__lightbox-prev,
.single-property__lightbox-next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.single-property__lightbox-prev:hover,
.single-property__lightbox-next:hover {
  background-color: #F9F8ED;
}
.single-property__lightbox-prev:hover svg path,
.single-property__lightbox-next:hover svg path {
  fill: #231708;
}
.single-property__lightbox-prev:disabled,
.single-property__lightbox-next:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.single-property__lightbox-prev svg,
.single-property__lightbox-next svg {
  width: 13px;
  height: 24px;
}
.single-property__lightbox-prev svg path,
.single-property__lightbox-next svg path {
  fill: #FEFFF5;
}

.single-property__lightbox-next svg {
  transform: scaleX(-1);
}

.single-property__lightbox-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}

.single-property__lightbox-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background-color: transparent;
  color: rgba(254, 255, 245, 0.3);
  cursor: pointer;
}
.single-property__lightbox-dot:hover {
  background-color: transparent;
}
.single-property__lightbox-dot.is-active {
  color: #FEFFF5;
}
.single-property__lightbox-dot svg {
  width: 3px;
  height: 3px;
}

.single-property__info {
  padding: 64px 0;
  background-color: #FEFFF5;
}
@media (min-width: 992px) {
  .single-property__info {
    padding: 120px 0 64px;
  }
}

.single-property__header {
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .single-property__header {
    margin-bottom: 24px;
  }
}

.single-property__name {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  margin: 0 0 8px;
}
@media (min-width: 992px) {
  .single-property__name {
    font-size: 32px;
  }
}

.single-property__level {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
}
@media (min-width: 992px) {
  .single-property__level {
    font-size: 16px;
  }
}

.single-property__description {
  margin-bottom: 48px;
}
@media (min-width: 1200px) {
  .single-property__description {
    margin-bottom: 0;
  }
}

.single-property__short-desc {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0 0 16px;
}
@media (min-width: 992px) {
  .single-property__short-desc {
    font-size: 20px;
    max-width: 665px;
  }
}

.single-property__full-desc {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
}
@media (min-width: 992px) {
  .single-property__full-desc {
    font-size: 16px;
    max-width: 548px;
  }
}
.single-property__full-desc p {
  margin: 0 0 16px;
}
.single-property__full-desc p:last-child {
  margin-bottom: 0;
}
.single-property__full-desc ul, .single-property__full-desc ol {
  margin: 0 0 16px;
  padding-left: 24px;
}

.single-property__details {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.single-property__detail-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.single-property__detail-label {
  flex-shrink: 0;
  width: 132px;
  padding: 4px 0;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  line-height: 1.2;
}

.single-property__detail-value {
  font-size: 14px;
  font-weight: 400;
  color: #231708;
  line-height: normal;
  letter-spacing: -0.14px;
}

.single-property__content {
  padding: 48px 0;
}
@media (min-width: 992px) {
  .single-property__content {
    padding: 64px 0;
  }
}

.single-property__section-title {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin: 0 0 8px;
}

.single-property__map-section {
  margin-bottom: 48px;
}
@media (min-width: 992px) {
  .single-property__map-section {
    margin-bottom: 64px;
  }
}

.single-property__map-wrap {
  margin-bottom: 16px;
}

.single-property__map {
  width: 100%;
  height: 300px;
  background-color: #F7F8EF;
}
@media (min-width: 992px) {
  .single-property__map {
    height: 400px;
  }
}
.single-property__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.single-property__map-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #231708;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.single-property__map-link:hover {
  opacity: 0.7;
}
.single-property__map-link [aria-hidden=true] {
  font-size: 10px;
  font-weight: 400;
  vertical-align: super;
}

.single-property__map-link-dot {
  width: 10px;
  height: 10px;
  background-color: #231708;
  border-radius: 50%;
  flex-shrink: 0;
}

.single-property__floorplan-section {
  margin-bottom: 48px;
}
@media (min-width: 1200px) {
  .single-property__floorplan-section {
    margin-bottom: 0;
  }
}

.single-property__floorplan-image-wrap {
  margin-bottom: 16px;
  background-color: #FEFFF5;
}

.single-property__floorplan-image {
  width: 100%;
  height: auto;
  display: block;
  mix-blend-mode: multiply;
}

.single-property__floorplan-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #231708;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.single-property__floorplan-link:hover {
  opacity: 0.7;
}
.single-property__floorplan-link [aria-hidden=true] {
  font-size: 10px;
  font-weight: 400;
  vertical-align: super;
}

.single-property__floorplan-link-dot {
  width: 10px;
  height: 10px;
  background-color: #231708;
  border-radius: 50%;
  flex-shrink: 0;
}

.single-property__form-section {
  margin-bottom: 32px;
}
.single-property__form-section .single-property__section-title {
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .single-property__form-section .single-property__section-title {
    font-size: 14px;
  }
}
.single-property__form-section .gform_wrapper.gravity-theme,
.single-property__form-section .gform_wrapper.gform-theme--orbital,
.single-property__form-section .gform_wrapper {
  margin: 0;
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_required_legend,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_required_legend,
.single-property__form-section .gform_wrapper .gform_required_legend {
  display: none !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_fields,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_fields,
.single-property__form-section .gform_wrapper .gform_fields {
  display: flex !important;
  flex-direction: column !important;
  row-gap: 24px !important;
  column-gap: 16px !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gfield,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gfield,
.single-property__form-section .gform_wrapper .gfield {
  margin: 0 !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gfield_label,
.single-property__form-section .gform_wrapper.gravity-theme .gform-field-label,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gfield_label,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform-field-label,
.single-property__form-section .gform_wrapper .gfield_label,
.single-property__form-section .gform_wrapper .gform-field-label {
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
  color: #231708 !important;
  margin-bottom: 8px !important;
}
@media (max-width: 767px) {
  .single-property__form-section .gform_wrapper.gravity-theme .gfield_label,
  .single-property__form-section .gform_wrapper.gravity-theme .gform-field-label,
  .single-property__form-section .gform_wrapper.gform-theme--orbital .gfield_label,
  .single-property__form-section .gform_wrapper.gform-theme--orbital .gform-field-label,
  .single-property__form-section .gform_wrapper .gfield_label,
  .single-property__form-section .gform_wrapper .gform-field-label {
    font-size: 10px !important;
  }
}
.single-property__form-section .gform_wrapper.gravity-theme .gfield_required,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gfield_required,
.single-property__form-section .gform_wrapper .gfield_required {
  color: #231708 !important;
}
.single-property__form-section .gform_wrapper.gravity-theme input[type=text],
.single-property__form-section .gform_wrapper.gravity-theme input[type=email],
.single-property__form-section .gform_wrapper.gravity-theme input[type=tel],
.single-property__form-section .gform_wrapper.gravity-theme input[type=number],
.single-property__form-section .gform_wrapper.gravity-theme textarea,
.single-property__form-section .gform_wrapper.gravity-theme select,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=text],
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=email],
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=tel],
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=number],
.single-property__form-section .gform_wrapper.gform-theme--orbital textarea,
.single-property__form-section .gform_wrapper.gform-theme--orbital select,
.single-property__form-section .gform_wrapper input[type=text],
.single-property__form-section .gform_wrapper input[type=email],
.single-property__form-section .gform_wrapper input[type=tel],
.single-property__form-section .gform_wrapper input[type=number],
.single-property__form-section .gform_wrapper textarea,
.single-property__form-section .gform_wrapper select {
  width: 100%;
  background-color: #F5F3E7 !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 16px !important;
  font-size: 14px !important;
  color: #231708 !important;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif !important;
  box-shadow: none !important;
  outline: none !important;
}
.single-property__form-section .gform_wrapper.gravity-theme input[type=text]:focus,
.single-property__form-section .gform_wrapper.gravity-theme input[type=email]:focus,
.single-property__form-section .gform_wrapper.gravity-theme input[type=tel]:focus,
.single-property__form-section .gform_wrapper.gravity-theme input[type=number]:focus,
.single-property__form-section .gform_wrapper.gravity-theme textarea:focus,
.single-property__form-section .gform_wrapper.gravity-theme select:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=text]:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=email]:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=tel]:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=number]:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital textarea:focus,
.single-property__form-section .gform_wrapper.gform-theme--orbital select:focus,
.single-property__form-section .gform_wrapper input[type=text]:focus,
.single-property__form-section .gform_wrapper input[type=email]:focus,
.single-property__form-section .gform_wrapper input[type=tel]:focus,
.single-property__form-section .gform_wrapper input[type=number]:focus,
.single-property__form-section .gform_wrapper textarea:focus,
.single-property__form-section .gform_wrapper select:focus {
  background-color: #F5F3E7 !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.single-property__form-section .gform_wrapper.gravity-theme input::placeholder,
.single-property__form-section .gform_wrapper.gravity-theme textarea::placeholder,
.single-property__form-section .gform_wrapper.gform-theme--orbital input::placeholder,
.single-property__form-section .gform_wrapper.gform-theme--orbital textarea::placeholder,
.single-property__form-section .gform_wrapper input::placeholder,
.single-property__form-section .gform_wrapper textarea::placeholder {
  color: #231708 !important;
  opacity: 1 !important;
  font-size: 14px !important;
  letter-spacing: -0.14px !important;
}
.single-property__form-section .gform_wrapper.gravity-theme textarea,
.single-property__form-section .gform_wrapper.gform-theme--orbital textarea,
.single-property__form-section .gform_wrapper textarea {
  min-height: 88px !important;
  resize: vertical;
}
@media (min-width: 992px) {
  .single-property__form-section .gform_wrapper.gravity-theme .gform_fields,
  .single-property__form-section .gform_wrapper.gform-theme--orbital .gform_fields,
  .single-property__form-section .gform_wrapper .gform_fields {
    flex-direction: row !important;
    flex-wrap: wrap !important;
  }
  .single-property__form-section .gform_wrapper.gravity-theme .gfield,
  .single-property__form-section .gform_wrapper.gform-theme--orbital .gfield,
  .single-property__form-section .gform_wrapper .gfield {
    width: 100% !important;
  }
  .single-property__form-section .gform_wrapper.gravity-theme .gfield--width-half,
  .single-property__form-section .gform_wrapper.gform-theme--orbital .gfield--width-half,
  .single-property__form-section .gform_wrapper .gfield--width-half {
    width: calc(50% - 8px) !important;
  }
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_footer,
.single-property__form-section .gform_wrapper.gravity-theme .gform-footer,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_footer,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform-footer,
.single-property__form-section .gform_wrapper .gform_footer,
.single-property__form-section .gform_wrapper .gform-footer {
  display: flex !important;
  justify-content: flex-start !important;
  margin-top: 44px !important;
  padding: 0 !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_button,
.single-property__form-section .gform_wrapper.gravity-theme input[type=submit],
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_button,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=submit],
.single-property__form-section .gform_wrapper .gform_button,
.single-property__form-section .gform_wrapper input[type=submit] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 184px !important;
  padding: 4px 16px !important;
  background-color: #E1FF85 !important;
  color: #231708 !important;
  border: none !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  line-height: 1 !important;
  min-height: 40px !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_button:hover,
.single-property__form-section .gform_wrapper.gravity-theme input[type=submit]:hover,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_button:hover,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=submit]:hover,
.single-property__form-section .gform_wrapper .gform_button:hover,
.single-property__form-section .gform_wrapper input[type=submit]:hover {
  background-color: #ECFDA8 !important;
}
.single-property__form-section .gform_wrapper.gravity-theme .gform_button::before,
.single-property__form-section .gform_wrapper.gravity-theme input[type=submit]::before,
.single-property__form-section .gform_wrapper.gform-theme--orbital .gform_button::before,
.single-property__form-section .gform_wrapper.gform-theme--orbital input[type=submit]::before,
.single-property__form-section .gform_wrapper .gform_button::before,
.single-property__form-section .gform_wrapper input[type=submit]::before {
  content: "" !important;
  width: 6px !important;
  height: 6px !important;
  background-color: #231708 !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
}

.single-property__divider {
  border: none;
  border-top: 1px solid rgba(35, 23, 8, 0.15);
  margin: 32px 0;
}

.single-property__agent-header {
  margin-bottom: 24px;
}

.single-property__agent-name {
  font-size: 20px;
  font-weight: 500;
  color: #231708;
  margin: 0 0 4px;
}
@media (min-width: 992px) {
  .single-property__agent-name {
    font-size: 28px;
  }
}

.single-property__agent-title {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
}
@media (min-width: 992px) {
  .single-property__agent-title {
    font-size: 16px;
  }
}

.single-property__agent-contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.single-property__agent-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.single-property__agent-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  min-width: 16px;
}

.single-property__agent-value {
  font-size: 14px;
  font-weight: 400;
  color: #231708;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.single-property__agent-value:hover {
  opacity: 0.7;
}

.single-property__gallery-slider .tns-nav,
.single-property__gallery-slider .tns-controls,
.single-property__lightbox-slider .tns-nav,
.single-property__lightbox-slider .tns-controls {
  display: none;
}
.single-property__gallery-slider .tns-slider,
.single-property__lightbox-slider .tns-slider {
  transition-timing-function: ease-out;
}
.single-property__gallery-slider .tns-item,
.single-property__lightbox-slider .tns-item {
  flex: 0 0 100%;
}

/*
    Section: Space Types

    Grid of image cards with labels, optionally linked.
    Desktop: 3 cards in row, Mobile: stacked vertically.
*/
.section-space-types {
  padding: 180px 0;
}
@media (max-width: 768px) {
  .section-space-types {
    padding: 88px 0;
  }
}

.space-types__title {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  text-align: center;
  max-width: 328px;
  margin: 0 auto 56px;
}
@media (max-width: 768px) {
  .space-types__title {
    font-size: 20px;
    max-width: 222px;
    margin-bottom: 40px;
  }
}
.space-types__grid {
  display: flex;
  gap: 16px;
}
@media (max-width: 768px) {
  .space-types__grid {
    flex-direction: column;
    align-items: center;
    gap: 40px;
  }
}
.space-types__card {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
@media (max-width: 768px) {
  .space-types__card {
    width: 100%;
    max-width: 343px;
  }
}
.space-types__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: inherit;
  width: 100%;
}
.space-types__link:hover .space-types__image {
  transform: scale(1.05);
}
.space-types__image-wrap {
  width: 100%;
  aspect-ratio: 437/486;
  overflow: hidden;
}
.space-types__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.space-types__label {
  font-size: 16px;
  font-weight: 500;
  color: #231708;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  text-align: center;
}
@media (max-width: 768px) {
  .space-types__label {
    font-size: 14px;
  }
}

/*
    Section: Text & Image

    Side-by-side layout with:
    - Text side: Linen background with decorative SVG pattern
    - Image side: Full-bleed image with blur-to-sharp animation

    Modifiers:
        .section-text-image--image-right  — Image on right (default)
        .section-text-image--image-left   — Image on left
*/
.text-image {
  display: flex;
  width: 100%;
}
@media (max-width: 768px) {
  .text-image {
    flex-direction: column;
  }
}

.text-image__content {
  width: 50%;
  height: 826px;
  background-color: #F5F3E7;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .text-image__content {
    width: 100%;
    height: 540px;
  }
}

.text-image__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.text-image__bg-svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.text-image__text {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 470px;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}
@media (max-width: 768px) {
  .text-image__text {
    max-width: 400px;
    gap: 24px;
  }
}

.text-image__title {
  font-size: 56px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
  max-width: 375px;
}
@media (max-width: 768px) {
  .text-image__title {
    font-size: 32px;
  }
}

.text-image__body {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .text-image__body {
    font-size: 16px;
  }
}

.text-image__buttons {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.text-image__buttons .btn {
  min-width: 184px;
}
.text-image__buttons .btn--secondary {
  background-color: #fff;
}
.text-image__buttons .btn--secondary:hover {
  background-color: #ECFDA8;
}
@media (max-width: 768px) {
  .text-image__buttons {
    flex-direction: column;
    width: 100%;
  }
  .text-image__buttons .btn {
    width: 100%;
  }
}

.text-image__image-wrap {
  width: 50%;
  height: 826px;
  overflow: hidden;
  position: relative;
}
@media (max-width: 768px) {
  .text-image__image-wrap {
    width: 100%;
    height: 540px;
  }
}

.text-image__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  animation: blur-to-sharp 1.2s ease-out forwards;
}

@keyframes blur-to-sharp {
  from {
    filter: blur(8px);
    transform: scale(1.02);
  }
  to {
    filter: blur(0);
    transform: scale(1);
  }
}
.section-text-image--image-left .text-image__content {
  order: 2;
}
.section-text-image--image-left .text-image__image-wrap {
  order: 1;
}
@media (max-width: 768px) {
  .section-text-image--image-left .text-image__content {
    order: 1;
  }
  .section-text-image--image-left .text-image__image-wrap {
    order: 2;
  }
}

/*
    Section: Video Banner

    Full-width video background with centered overlay text.
    Supports YouTube/Vimeo embeds or self-hosted MP4 as autoplay background video.

    Height: 640px desktop, 500px mobile
    Title: 42px desktop, 28px mobile (uppercase, centered)
*/
.section-video-banner {
  position: relative;
  overflow: hidden;
  background-color: #F5F3E7;
}

.video-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 640px;
}
@media (max-width: 768px) {
  .video-banner {
    height: 500px;
  }
}

.video-banner__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.video-banner__iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 0;
  aspect-ratio: 16/9;
  height: 300%;
  width: auto;
  min-width: 100%;
  min-height: 100%;
  opacity: 0;
  animation: video-fade-in 1s ease-out 1.5s forwards;
}

.video-banner__video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: video-fade-in 1s ease-out 0.5s forwards;
}

@keyframes video-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.video-banner__content {
  position: relative;
  z-index: 10;
  text-align: center;
  max-width: 600px;
  padding: 0 24px;
}
@media (max-width: 768px) {
  .video-banner__content {
    max-width: 260px;
  }
}

.video-banner__title {
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .video-banner__title {
    font-size: 28px;
  }
}

/*
    Section: WYSIWYG

    Simple content section with rich text.
    Typography scales h2-h6 from xlarge down.
*/
.section-wysiwyg {
  padding: 180px 0;
}
@media (max-width: 768px) {
  .section-wysiwyg {
    padding: 88px 0;
  }
}
.section-wysiwyg--bg-white {
  background-color: #fff;
}
.section-wysiwyg--bg-linen {
  background-color: #F5F3E7;
}
.section-wysiwyg--bg-cream {
  background-color: #FEFFF5;
}
.section-wysiwyg .wysiwyg-content {
  max-width: 726px;
  margin: 0 auto;
}
.section-wysiwyg .wysiwyg-content h2 {
  font-size: 42px;
  line-height: 1.1;
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content h2 {
    font-size: 28px;
  }
}
.section-wysiwyg .wysiwyg-content h3 {
  font-size: 32px;
  line-height: 1.1;
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content h3 {
    font-size: 24px;
  }
}
.section-wysiwyg .wysiwyg-content h4 {
  font-size: 28px;
  line-height: 1.1;
  margin-bottom: 16px;
  font-weight: 400;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content h4 {
    font-size: 20px;
  }
}
.section-wysiwyg .wysiwyg-content h5 {
  font-size: 20px;
  line-height: 1.1;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content h5 {
    font-size: 16px;
  }
}
.section-wysiwyg .wysiwyg-content h6 {
  font-size: 16px;
  line-height: 1.1;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content h6 {
    font-size: 14px;
  }
}
.section-wysiwyg .wysiwyg-content p {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .section-wysiwyg .wysiwyg-content p {
    font-size: 14px;
  }
}
.section-wysiwyg .wysiwyg-content ul, .section-wysiwyg .wysiwyg-content ol {
  margin-bottom: 24px;
  padding-left: 32px;
}
.section-wysiwyg .wysiwyg-content li {
  margin-bottom: 8px;
}
.section-wysiwyg .wysiwyg-content a {
  color: #231708;
  text-decoration: underline;
}
.section-wysiwyg .wysiwyg-content a:hover {
  text-decoration: none;
}
.section-wysiwyg .wysiwyg-content > *:last-child {
  margin-bottom: 0;
}

/*
    Page-Specific Styles Manifest

    Import all page-specific stylesheets here.
    Add new imports in alphabetical order.
*/
/* ==========================================================================
   LISTING PAGE
   Property type taxonomy archive with list/map views and filtering
   ========================================================================== */
/* Page Header
   ========================================================================== */
.listing-header {
  padding: 120px 0 32px;
  background-color: #FEFFF5;
}
@media (min-width: 992px) {
  .listing-header {
    padding: 160px 0 48px;
  }
}
.listing-header .container {
  text-align: center;
}
.listing-header__title {
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: #231708;
  margin: 0;
}
@media (min-width: 992px) {
  .listing-header__title {
    font-size: 42px;
  }
}

/* Filters Section Wrapper
   ========================================================================== */
.listing-filters-wrap {
  position: relative;
  z-index: 10;
  padding: 24px 0;
  background-color: #FEFFF5;
}

/* Filters Bar
   Matches Figma 195:3555 - linen background, horizontal layout
   Mobile: Figma 195:3336 - vertical stacked layout
   ========================================================================== */
.listing-filters {
  padding: 24px;
  background-color: #F5F3E7;
  border-radius: 4px;
}
.listing-filters__bar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: stretch;
}
@media (min-width: 992px) {
  .listing-filters__bar {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
    align-items: flex-end;
  }
}
@media (min-width: 1200px) {
  .listing-filters__bar {
    flex-wrap: nowrap;
  }
}
.listing-filters__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
@media (min-width: 992px) {
  .listing-filters__field {
    width: auto;
    flex: 1 1 calc(50% - 16px);
    min-width: 200px;
  }
}
@media (min-width: 1200px) {
  .listing-filters__field {
    flex: 1;
    min-width: 0;
  }
}
.listing-filters__field--location {
  position: relative;
}
.listing-filters__field--search {
  position: relative;
}
.listing-filters__label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
}
.listing-filters__dropdown-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 40px;
  padding: 4px 4px 4px 16px;
  background-color: #FEFFF5;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  font-weight: 400;
  text-align: left;
  text-transform: none;
  color: #231708;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.listing-filters__dropdown-toggle::before {
  display: none !important;
}
.listing-filters__dropdown-toggle:hover, .listing-filters__dropdown-toggle:focus {
  outline: none;
}
.listing-filters__dropdown-toggle[aria-expanded=true] {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.listing-filters__dropdown-toggle[aria-expanded=true] .listing-filters__dropdown-arrow {
  transform: rotate(180deg);
}
.listing-filters__dropdown-label {
  font-weight: 400;
}
.listing-filters__dropdown-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.listing-filters__dropdown-menu {
  z-index: 100;
  padding: 16px;
  background-color: #FEFFF5;
  border: 1px solid #F5F3E7;
  border-radius: 0 0 4px 4px;
}
@media (min-width: 992px) {
  .listing-filters__dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 4px;
  }
}
.listing-filters__dropdown-menu[hidden] {
  display: none;
}
.listing-filters__checkbox {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  cursor: pointer;
  border-bottom: 1px solid #F5F3E7;
  min-height: 44px;
}
@media (min-width: 992px) {
  .listing-filters__checkbox {
    min-height: 0;
  }
}
.listing-filters__checkbox:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.listing-filters__checkbox:first-child {
  padding-top: 0;
}
.listing-filters__checkbox:hover span, .listing-filters__checkbox.is-active span {
  opacity: 0.7;
}
.listing-filters__checkbox input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 12px;
  height: 12px;
  border: 1px solid #231708;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
}
.listing-filters__checkbox input[type=checkbox]:checked {
  background-color: #231708;
}
.listing-filters__checkbox span {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: -0.14px;
  color: #231708;
}
@media (prefers-reduced-motion: no-preference) {
  .listing-filters__checkbox span {
    transition: opacity 0.2s ease;
  }
}
.listing-filters__slider-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  padding: 4px 16px;
  background-color: #FEFFF5;
  border-radius: 4px;
  gap: 8px;
}
.listing-filters__slider-value {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  white-space: nowrap;
}
.listing-filters__slider-track {
  flex: 1;
  height: 2px;
  background-color: #231708;
  border-radius: 1px;
  position: relative;
}
.listing-filters__slider-track.noUi-target {
  background-color: #231708;
  border: none;
  box-shadow: none;
  height: 2px;
}
.listing-filters__slider-track .noUi-connect {
  background-color: #231708;
}
.listing-filters__slider-track .noUi-handle {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #FEFFF5;
  border: 1.5px solid #231708;
  box-shadow: none;
  cursor: grab;
  top: -5px;
  right: -6px;
}
.listing-filters__slider-track .noUi-handle::before, .listing-filters__slider-track .noUi-handle::after {
  display: none;
}
.listing-filters__slider-track .noUi-handle:active {
  cursor: grabbing;
}
.listing-filters__slider-track .noUi-tooltip {
  display: none;
}
.listing-filters__search-input-wrap {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 4px 16px 4px 4px;
  background-color: #FEFFF5;
  border-radius: 4px;
  gap: 4px;
}
.listing-filters__search-input-wrap.is-open {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.listing-filters__search-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  color: #231708;
}
.listing-filters__search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  font-size: 14px;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  color: #231708;
}
.listing-filters__search-input::placeholder {
  color: #231708;
}
.listing-filters__search-input:focus {
  outline: none;
}
.listing-filters__combo-panel {
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 16px;
  list-style: none;
  background-color: #FEFFF5;
  border: 1px solid #F5F3E7;
  border-radius: 0 0 4px 4px;
  max-height: 268px;
  overflow-y: auto;
}
@media (min-width: 992px) {
  .listing-filters__combo-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 4px;
  }
}
.listing-filters__combo-panel[hidden] {
  display: none;
}
.listing-filters__combo-option {
  line-height: 20px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: -0.14px;
  color: #231708;
  cursor: pointer;
  display: flex;
  align-items: center;
  min-height: 44px;
}
@media (min-width: 992px) {
  .listing-filters__combo-option {
    display: block;
    min-height: 0;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .listing-filters__combo-option {
    transition: opacity 0.2s ease;
  }
}
.listing-filters__combo-option:hover, .listing-filters__combo-option.is-active {
  opacity: 0.7;
}
.listing-filters__combo-option[hidden] {
  display: none;
}
.listing-filters__combo-option--empty {
  cursor: default;
  opacity: 0.6;
}
.listing-filters__combo-option--empty:hover, .listing-filters__combo-option--empty.is-active {
  opacity: 0.6;
}
.listing-filters__clear {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 40px;
  padding: 4px 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 8px;
}
@media (min-width: 992px) {
  .listing-filters__clear {
    height: 32px;
    padding: 4px;
    margin-top: 0;
    justify-content: flex-start;
  }
}
.listing-filters__clear::before {
  display: none;
}
.listing-filters__clear-icon {
  width: 16px;
  height: 16px;
  color: #231708;
}
.listing-filters__clear-text {
  font-size: 14px;
  font-weight: 400;
  text-transform: uppercase;
  color: #231708;
}

/* Results Bar
   Matches Figma 2005:70 - count left, toggle buttons right
   ========================================================================== */
.listing-results {
  padding: 24px 0;
  background-color: #FEFFF5;
}
.listing-results__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-end;
  justify-content: space-between;
}
.listing-results__count {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .listing-results__count {
    width: auto;
    text-align: left;
  }
}
.listing-results__sort {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
@media (min-width: 768px) {
  .listing-results__sort {
    width: auto;
    margin-left: auto;
  }
}
.listing-results__sort-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  white-space: nowrap;
}
.listing-results__sort-select {
  flex: 1;
  height: 40px;
  padding: 4px 16px;
  background-color: #FEFFF5;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  color: #231708;
  cursor: pointer;
}
@media (min-width: 768px) {
  .listing-results__sort-select {
    flex: 0 0 auto;
  }
}
.listing-results__toggle {
  display: flex;
  gap: 6px;
  width: 100%;
}
@media (min-width: 768px) {
  .listing-results__toggle {
    width: auto;
  }
}
.listing-results__toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  height: 40px;
  padding: 4px 16px;
  font-size: 14px;
  font-weight: 400;
  font-family: "Instrument Sans", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  color: #231708;
  background-color: transparent;
  border: 0.5px solid #E1FF85;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.listing-results__toggle-btn::before {
  display: none;
}
@media (min-width: 768px) {
  .listing-results__toggle-btn {
    flex: none;
  }
}
.listing-results__toggle-btn:hover {
  background-color: #ECFDA8;
}
.listing-results__toggle-btn.is-active {
  background-color: #E1FF85;
  border-color: #E1FF85;
}

/* Property Grid
   ========================================================================== */
.listing-grid {
  padding: 48px 0;
  background-color: #FEFFF5;
}
.listing-grid.is-hidden {
  display: none;
}
.listing-grid__items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 768px) {
  .listing-grid__items {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1200px) {
  .listing-grid__items {
    grid-template-columns: repeat(3, 1fr);
  }
}
.listing-grid__empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 96px;
  color: #959a9e;
}
.listing-grid__pagination {
  margin-top: 48px;
  text-align: center;
}
.listing-grid__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  margin: 0 4px;
  font-size: 14px;
  color: #231708;
  background-color: #FEFFF5;
  border: 1px solid #F5F3E7;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.listing-grid__pagination .page-numbers:hover {
  background-color: #F5F3E7;
}
.listing-grid__pagination .page-numbers.current {
  background-color: #231708;
  border-color: #231708;
  color: #FEFFF5;
}
.listing-grid__pagination .page-numbers.prev, .listing-grid__pagination .page-numbers.next {
  font-size: 20px;
}

/* Listing Card (for listing page grid)
   Simple layout: Image → Status/badges → Title → Level → Price
   No background/border wrapper - matches Figma 195:3388
   ========================================================================== */
.listing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-decoration: none;
  color: #231708;
}
.listing-card__link {
  color: inherit;
  text-decoration: none;
}
.listing-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.listing-card__view-all {
  position: relative;
  z-index: 2;
  align-self: flex-start;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.listing-card__view-all:hover {
  opacity: 0.7;
}
.listing-card:hover .listing-card__image {
  transform: scale(1.02);
  filter: blur(4px);
}
.listing-card:hover .listing-card__image-wrap::before, .listing-card:hover .listing-card__image-wrap::after {
  opacity: 1;
}
.listing-card__image-wrap {
  position: relative;
  overflow: hidden;
  background-color: #F5F3E7;
  height: 200px;
}
@media (min-width: 992px) {
  .listing-card__image-wrap {
    height: 250px;
  }
}
@media (min-width: 1200px) {
  .listing-card__image-wrap {
    height: 300px;
  }
}
.listing-card__image-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: linear-gradient(to bottom, rgba(254, 255, 245, 0.5), rgba(254, 255, 245, 0.5)), linear-gradient(to bottom, rgba(245, 243, 231, 0.5), rgba(245, 243, 231, 0.5));
  mix-blend-mode: multiply;
}
.listing-card__image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background-color: #E1FF85;
  mix-blend-mode: screen;
}
.listing-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease, filter 0.3s ease;
  animation: blur-to-sharp 1.2s ease-out forwards;
}
.listing-card__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: #F5F3E7;
}
.listing-card__meta {
  display: flex;
  align-items: center;
  gap: 32px;
}
.listing-card__status {
  display: flex;
  align-items: center;
  gap: 8px;
}
.listing-card__status-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background-color: #E1FF85;
  flex-shrink: 0;
}
.listing-card__status--for-lease .listing-card__status-dot {
  background-color: #E1FF85;
}
.listing-card__status--leased .listing-card__status-dot {
  background-color: #959a9e;
}
.listing-card__status--coming-soon .listing-card__status-dot {
  background-color: #ecfda8;
}
.listing-card__status--under-offer .listing-card__status-dot {
  background-color: #4A90D9;
}
.listing-card__status-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
}
.listing-card__badges {
  display: flex;
  gap: 8px;
}
.listing-card__badge {
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  background-color: #F5F3E7;
  border-radius: 4px;
}
.listing-card__details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.listing-card__title {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .listing-card__title {
    font-size: 20px;
  }
}
.listing-card__level {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .listing-card__level {
    font-size: 14px;
  }
}
.listing-card__price {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #231708;
  margin: 0;
}
@media (max-width: 768px) {
  .listing-card__price {
    font-size: 14px;
  }
}

/* Map View
   ========================================================================== */
.listing-map {
  margin-top: 40px;
  background-color: #F9F8ED;
}
@media (min-width: 992px) {
  .listing-map {
    margin-top: 0;
  }
}
.listing-map.is-hidden {
  display: none;
}
.listing-map__container {
  width: 100%;
  height: 300px;
  background-color: #F5F3E7;
}
@media (min-width: 992px) {
  .listing-map__container {
    height: 500px;
  }
}
@media (min-width: 1200px) {
  .listing-map__container {
    height: 600px;
  }
}
.listing-map__status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.listing-map__mobile-popup {
  padding: 24px 0;
  background-color: #FEFFF5;
}
@media (min-width: 992px) {
  .listing-map__mobile-popup {
    display: none;
  }
}
.listing-map__mobile-popup[hidden] {
  display: none;
}
.listing-map__mobile-popup-content .map-popup {
  max-width: 100%;
  width: 100%;
}

.gm-style-iw {
  padding: 0 !important;
  max-width: 360px !important;
}
.gm-style-iw .gm-style-iw-d {
  overflow: hidden !important;
  max-height: none !important;
}

.gm-ui-hover-effect,
.gm-style-iw-chr {
  display: none !important;
}

@media (max-width: 991px) {
  .gm-style-iw-c,
  .gm-style-iw-t {
    display: none !important;
  }
}
/* Map Popup Card
   Matches Figma 216:17498 - compact card for Google Maps InfoWindow
   Layout: Title → Image → Status/Badges footer
   ========================================================================== */
.map-popup {
  display: flex;
  flex-direction: column;
  width: 340px;
  max-width: calc(100vw - 80px);
  padding: 8px;
  background-color: #FEFFF5;
  border: 1px solid #F5F3E7;
  text-decoration: none;
  color: #231708;
}
.map-popup--single {
  position: relative;
}
.map-popup__link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.map-popup__title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  text-align: center;
  color: #231708;
  margin: 0 0 8px;
  padding: 0 24px;
}
.map-popup__image-wrap {
  width: 100%;
  height: 141px;
  overflow: hidden;
  background-color: #F5F3E7;
}
.map-popup__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.map-popup__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: #F5F3E7;
}
.map-popup__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
  gap: 8px;
}
.map-popup__status {
  display: flex;
  align-items: center;
  gap: 8px;
}
.map-popup__status-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background-color: #E1FF85;
  flex-shrink: 0;
}
.map-popup__status-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  white-space: nowrap;
}
.map-popup__badges {
  display: flex;
  gap: 4px;
}
.map-popup__badge {
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  background-color: #F5F3E7;
  border-radius: 4px;
  white-space: nowrap;
}
.map-popup {
  /* Cluster popup — several listings at one address
     Matches Figma 1:2572 (desktop) / 1:2861 (mobile)
     Layout: address + count + close → image → one row per listing
     ====================================================================== */
}
.map-popup--cluster {
  gap: 8px;
  text-align: left;
}
@media (min-width: 992px) {
  .map-popup--cluster {
    max-height: 410px;
  }
}
@media (min-width: 1200px) {
  .map-popup--cluster {
    max-height: 510px;
  }
}
.map-popup--cluster .map-popup__header, .map-popup--cluster .map-popup__image-wrap {
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .map-popup--cluster .map-popup__rows {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    max-height: 195px;
    scrollbar-width: thin;
    scrollbar-color: #231708 #F5F3E7;
  }
  .map-popup--cluster .map-popup__rows::-webkit-scrollbar {
    width: 6px;
  }
  .map-popup--cluster .map-popup__rows::-webkit-scrollbar-track {
    background-color: #F5F3E7;
    border-radius: 4px;
  }
  .map-popup--cluster .map-popup__rows::-webkit-scrollbar-thumb {
    background-color: #231708;
    border-radius: 4px;
  }
}
.map-popup__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.map-popup__heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 12px;
  row-gap: 0;
  min-width: 0;
}
.map-popup__heading-text {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  min-width: 0;
  overflow-wrap: break-word;
}
.map-popup__heading-count {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}
.map-popup__heading-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #231708;
  flex-shrink: 0;
}
.map-popup__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  min-height: 0;
  padding: 0;
  gap: 0;
  flex-shrink: 0;
  background: none;
  border: none;
  border-radius: 0;
  line-height: 1;
  color: #231708;
  cursor: pointer;
}
.map-popup__close::before {
  display: none !important;
}
@media (prefers-reduced-motion: no-preference) {
  .map-popup__close {
    transition: opacity 0.2s ease;
  }
}
.map-popup__close:hover {
  opacity: 0.7;
}
.map-popup--single .map-popup__close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
}
.map-popup__image-wrap--cluster {
  height: 119px;
}
.map-popup__rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.map-popup__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 22px;
  min-width: 0;
  text-decoration: none;
  color: #231708;
}
.map-popup__row + .map-popup__row {
  padding-top: 8px;
  border-top: 1px solid #F5F3E7;
}
@media (prefers-reduced-motion: no-preference) {
  .map-popup__row {
    transition: opacity 0.2s ease;
  }
}
.map-popup__row:hover {
  opacity: 0.7;
}
.map-popup__row-label {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #231708;
  white-space: nowrap;
}
.map-popup__row .map-popup__badges {
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

/* Loading State
   ========================================================================== */
.listing-page {
  position: relative;
}
.listing-page.is-loading .listing-grid__items,
.listing-page.is-loading .listing-map__container,
.listing-page.is-loading .listing-map__cards-grid {
  opacity: 0.5;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.listing-page.is-loading .listing-loader {
  display: flex !important;
}

.listing-loader {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.listing-loader[hidden] {
  display: none;
}
.listing-loader__spinner {
  width: 48px;
  height: 48px;
  border: 3px solid rgba(35, 23, 8, 0.1);
  border-top-color: #231708;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  background-color: #FEFFF5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.listing-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px;
}
.listing-spinner::after {
  content: "";
  width: 32px;
  height: 32px;
  border: 3px solid #F5F3E7;
  border-top-color: #E1FF85;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes blur-to-sharp {
  from {
    filter: blur(8px);
    transform: scale(1.02);
  }
  to {
    filter: blur(0);
    transform: scale(1);
  }
}
/*
    Homepage-Specific Styles

    Styles that ONLY apply to the homepage.
    Use sparingly — prefer reusable section styles instead.

    Target with body.home class from WordPress.
*/

/*# sourceMappingURL=style.css.map */
