:root {
    --green:#073b2b;
    --green2:#0e5039;
    --gold:#d8bd77;
    --acid:#c7d45b;
    --paper:#f7f6f0;
    --pale:#eeefdf;
    --ink:#1b2821;
    --muted:#69746b;
    --line:#dfe3d8
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:84px
}
body {
    margin:0;
    color:var(--ink);
    background:#fff;
    font-family:'Open Sans',sans-serif
}
a {
    text-decoration:none
}
img {
    max-width:100%
}
.container {
    max-width:1220px
}
h1,h2,h3,.display-serif {
    font-family:'Lora',serif;
    letter-spacing:-.035em
}
.section-pad {
    padding:105px 0
}
.kicker {
    font:800 10px/1.4 'Manrope',sans-serif;
    text-transform:uppercase;
    letter-spacing:.22em;
    color:#8a9a3e;
    display:flex;
    gap:11px;
    align-items:center
}
.kicker:before {
    content:"";
    width:28px;
    height:1px;
    background:currentColor
}
.heading {
    font-size:clamp(36px,4.2vw,57px);
    line-height:1.08;
    color:var(--green);
    margin:17px 0 20px
}
.intro {
    max-width:580px;
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}
.btn-main {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    padding:15px 21px;
    background:var(--acid);
    color:#193b27;
    border:1px solid var(--acid);
    font:800 11px 'Manrope',sans-serif;
    letter-spacing:.04em;
    text-transform:uppercase;
    transition:.25s
}
.btn-main:hover {
    background:var(--gold);
    border-color:var(--gold);
    color:var(--green)
}
.btn-ghost {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:14px 20px;
    border:1px solid #ffffff70;
    color:#fff;
    font:700 11px 'Manrope',sans-serif;
    text-transform:uppercase
}
.btn-ghost:hover {
    background:#fff;
    color:var(--green)
}
/* navigation */
.site-nav {
    background:var(--green);
    padding:12px 0;
    position:fixed;
    z-index:1000;
    top:0;
    left:0;
    right:0;
    transition:.25s
}
.site-nav.scrolled {
    box-shadow:0 8px 30px #00180e30;
    background:#042b1f
}
.brand {
    display:flex;
    align-items:center;
    gap:10px;
    color:white;
    font-family:Manrope,sans-serif;
    font-weight:800;
    letter-spacing:.09em;
    font-size:15px
}
.brand:hover {
    color:#fff
}
.brand-symbol {
    height:39px;
    width:39px;
    border:1px solid var(--gold);
    color:var(--gold);
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:22px
}
.brand small {
    display:block;
    font-size:8px;
    font-weight:600;
    letter-spacing:.24em;
    color:#c9d4ca
}
.site-nav .nav-link {
    color:#e7eee7;
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    padding:12px 13px!important
}
.site-nav .nav-link:hover {
    color:var(--gold)
}
.nav-enquire {
    display:inline-flex;
    padding:12px 15px;
    background:var(--gold);
    color:var(--green);
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em
}
.navbar-toggler {
    border-color:#ffffff50
}
.navbar-toggler-icon {
    filter:invert(1)
}
/* hero: asymmetrical split */
.hero {
    padding: 125px 0 58px;
    background:
        linear-gradient(rgba(11, 65, 43, 0.72), rgba(11, 65, 43, 0.78)),
        url("../img/1.webp") center/cover no-repeat;
    color: #fff;
    overflow: hidden;
    position: relative;
}
.hero:after {
    content:"INSYNC";
    position:absolute;
    left:-25px;
    bottom:-72px;
    font:800 clamp(90px,16vw,230px)/1 Manrope,sans-serif;
    letter-spacing:-.11em;
    color:#ffffff06;
    pointer-events:none
}
.hero .container {
    position:relative;
    z-index:1
}
.hero-copy {
    padding:26px 18px 35px 0
}
.hero .kicker {
    color:var(--gold)
}
.hero h1 {
    font-size:clamp(48px,6.4vw,83px);
    line-height:.99;
    margin:25px 0 24px;
    max-width:640px
}
.hero h1 em {
    font-style:normal;
    color:var(--gold)
}
.hero-desc {
    font-size:14px;
    line-height:1.9;
    color:#d2dfd5;
    max-width:490px
}
.hero-meta {
    display:flex;
    gap:20px;
    align-items:center;
    margin:30px 0 27px
}
.hero-price {
    font:800 30px Manrope,sans-serif;
    letter-spacing:-.05em
}
.hero-price small {
    display:block;
    font:600 9px Manrope,sans-serif;
    letter-spacing:.17em;
    color:#c6d4c8;
    margin-top:4px
}
.meta-divider {
    height:44px;
    width:1px;
    background:#ffffff35
}
.limited {
    font-size:12px;
    line-height:1.7;
    color:#e3e9df
}
.limited strong {
    color:#fff;
    display:block;
    font-size:13px
}
.hero-actions {
    display:flex;
    gap:10px;
    flex-wrap:wrap
}
.hero-foot {
    font-size:10px;
    color:#c3d2c7;
    margin-top:20px
}
.hero-photo-wrap {
    position:relative;
    padding:0 0 48px 22px
}
.hero-photo {
    width:100%;
    height:510px;
    object-fit:cover;
    display:block;
    border-radius:180px 180px 2px 2px
}
.photo-stamp {
    position:absolute;
    left:-5px;
    bottom:7px;
    background:var(--paper);
    color:var(--green);
    padding:22px 25px;
    min-width:220px;
    box-shadow:0 18px 50px #00170e20
}
.photo-stamp span {
    display:block;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.17em;
    color:#6f7c6d
}
.photo-stamp strong {
    font:600 22px 'Lora',serif
}

.hero-counter {
    position:absolute;
    right:16px;
    top:22px;
    writing-mode:vertical-rl;
    font:700 9px Manrope;
    letter-spacing:.2em;
    color:#f5f1dc
}
/* quick facts band */
.fact-band {
    background:var(--paper);
    border-bottom:1px solid var(--line)
}
.fact {
    display:flex;
    gap:13px;
    align-items:center;
    padding:23px 8px;
    border-right:1px solid var(--line);
    height:100%
}
.fact:last-child {
    border-right:0
}
.fact i {
    font-size:20px;
    color:#899b3d
}
.fact strong {
    display:block;
    color:var(--green);
    /* font:800 12px Manrope */
  
}
.fact span {
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-top:4px
}
/* availability + image editorial */
.intro-section {
    background:#fff
}
.availability-card {
    display:flex;
    gap:16px;
    align-items:center;
    background:var(--pale);
    padding:20px 22px;
    margin-top:29px;
    max-width:470px
}
.availability-num {
    font:800 38px Manrope;
    color:var(--green);
    line-height:1
}
.availability-card p {
    font-size:11px;
    color:#657064;
    line-height:1.7;
    margin:0
}
.availability-card strong {
    color:var(--green)
}
.editorial-image {
    position:relative;
    padding:0 35px 30px 0
}
.editorial-image img {
    width:100%;
    height:530px;
    object-fit:cover
}
.image-note {
    position:absolute;
    right:0;
    bottom:0;
    background:var(--green);
    color:white;
    padding:23px 26px;
    width:205px
}
.image-note span {
    font-size:14px;
    color:var(--gold);
    letter-spacing:.16em;
    text-transform:uppercase
}
.image-note strong {
    display:block;
    font:500 22px/1.25 'Lora',serif;
    margin-top:8px
}
/* gallery cards */
.gallery-section {
    background:var(--paper)
}
.gallery-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
    margin-bottom:42px
}
.gallery-tile {
    position:relative;
    overflow:hidden;
    background:#dfe3d8
}
.gallery-tile img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}
.gallery-tile:hover img {
    transform:scale(1.035)
}
.gallery-large {
    height:510px
}
.gallery-small {
    height:245px
}
.tile-label {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:35px 20px 18px;
    color:#fff;
    background:linear-gradient(transparent,#071d14b8)
}
.tile-label span {
    font-size:9px;
    letter-spacing:.17em;
    text-transform:uppercase;
    color:#e4d08a
}
.tile-label strong {
    display:block;
    font:500 23px 'Lora',serif;
    margin-top:4px
}
/* reasons */
.why-section {
    background:#fff
}
.why-intro {
    position:sticky;
    top:110px
}
.why-grid {
    border-top:1px solid var(--line)
}
.why-item {
    padding:26px 22px 29px 0;
    border-bottom:1px solid var(--line);
    min-height:205px
}
.why-num {
    font:700 16px Manrope;
    color:#9ca94e;
    letter-spacing:.14em
}
.why-icon {
    font-size:23px;
    color:var(--green);
    margin:18px 0 13px
}
.why-item h3 {
    font:600 16px Manrope;
    letter-spacing:-.025em;
    color:var(--green);
    margin-bottom:10px
}
.why-item p {
    font-size:12px;
    color:var(--muted);
    line-height:1.8;
    margin:0
}
/* location */
.location-section {
    background:var(--green);
    color:#fff;
    position:relative;
    overflow:hidden
}
.location-section .heading {
    color:#fff
}
.location-section .intro {
    color:#c5d5c9
}
.location-section .kicker {
    color:var(--gold)
}
.location-detail {
    margin-top:32px
}
.landmark {
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:13px 0;
    border-bottom:1px solid #ffffff20;
    font-size:11px;
    color:#e0e8df
}
.landmark strong {
    white-space:nowrap;
    color:var(--gold);
    font-weight:700
}
.map-panel {
    background:#f1f1e4;
    padding:23px;
    color:var(--green);
    height:100%;
    min-height:460px
}
.map-top {
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:center;
    margin-bottom:16px
}
.map-top span {
    font:800 10px Manrope;
    letter-spacing:.14em;
    text-transform:uppercase
}
.map-graphic {
    height:280px;
    position:relative;
    overflow:hidden;
    background-color:#e6eadb;
    background-image:linear-gradient(27deg,transparent 47%,#c8d4bd 48%,#c8d4bd 50%,transparent 51%),linear-gradient(115deg,transparent 35%,#d1dbc7 36%,#d1dbc7 38%,transparent 39%),linear-gradient(90deg,transparent 65%,#d1dbc7 66%,#d1dbc7 68%,transparent 69%)
}
.map-road {
    height:13px;
    width:125%;
    position:absolute;
    left:-12%;
    top:45%;
    background:#18844e;
    transform:rotate(24deg)
}
.map-road.two {
    height:10px;
    width:85%;
    left:25%;
    top:52%;
    transform:rotate(-62deg)
}
.map-road.three {
    height:8px;
    width:70%;
    left:35%;
    top:28%;
    transform:rotate(72deg)
}
.map-pin {
    position:absolute;
    left:48%;
    top:40%;
    height:44px;
    width:44px;
    border-radius:50% 50% 50% 0;
    transform:rotate(-45deg);
    display:grid;
    place-items:center;
    background:var(--green);
    color:var(--gold);
    box-shadow:0 8px 20px #1235
}
.map-pin i {
    transform:rotate(45deg);
    font-size:18px
}
.map-label {
    position:absolute;
    left:55%;
    top:37%;
    font:800 10px Manrope;
    color:var(--green)
}
.map-caption {
    font-size:10px;
    color:#667464;
    line-height:1.7;
    margin-top:14px
}
.map-button {
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:16px;
    color:var(--green);
    font:800 16px Manrope;
    text-transform:uppercase;
    border-bottom:1px solid #8e9c57;
    padding-bottom:7px
}
/* specifications */
.spec-section {
    background:var(--pale)
}
.spec-heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
    margin-bottom:43px
}
.spec-list {
    background:#fff;
    padding:32px 34px
}
.spec-row {
    display:grid;
    grid-template-columns:55px 1fr;
    gap:15px;
    padding:23px 0;
    border-bottom:1px solid var(--line)
}
.spec-row:first-child {
    padding-top:0
}
.spec-row:last-child {
    border-bottom:0;
    padding-bottom:0
}
.spec-row i {
    font-size:22px;
    color:#8b9d3d
}
.spec-row h3 {
    font:800 13px Manrope;
    letter-spacing:0;
    color:var(--green);
    margin:3px 0 10px
}
.spec-row p {
    font-size:11px;
    line-height:1.9;
    color:var(--muted);
    margin:0
}
.spec-side {
    height:100%;
    min-height:450px;
    background:var(--green);
    color:white;
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:30px
}
.spec-side img {
    width:100%;
    height:245px;
    object-fit:cover;
    opacity:.86
}
.spec-side .side-caption {
    font:500 28px/1.2 'Lora',serif;
    margin-top:25px
}
.spec-side small {
    color:var(--gold);
    font-size:9px;
    letter-spacing:.18em;
    text-transform:uppercase
}
/* developer + journey */
.developer-section {
    background:#fff
}
.developer-mark {
    background:var(--green);
    color:var(--gold);
    min-height:380px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:30px
}
.developer-mark .infinity {
    font-size:78px;
    line-height:1
}
.developer-mark strong {
    font:800 26px Manrope;
    letter-spacing:.08em
}
.developer-mark small {
    font-size:9px;
    letter-spacing:.22em;
    color:#d6e0d5
}
.developer-mark .level {
    margin-top:44px;
    font:500 24px 'Lora',serif
}
.developer-copy {
    padding:20px 0 20px 28px
}
.developer-copy p {
    font-size:13px;
    line-height:1.95;
    color:var(--muted)
}
.developer-stats {
    display:flex;
    gap:30px;
    flex-wrap:wrap;
    border-top:1px solid var(--line);
    padding-top:22px;
    margin-top:28px
}
.developer-stats strong {
    display:block;
    color:var(--green);
    font:800 21px Manrope
}
.developer-stats span {
    font-size:9px;
    color:var(--muted);
    letter-spacing:.12em
}
.journey-section {
    background:var(--paper)
}
.journey-top {
    text-align:center;
    margin-bottom:48px
}
.journey-top .kicker {
    justify-content:center
}
.journey-top .intro {
    margin:auto
}
.journey-card {
    background:#fff;
    padding:27px 24px;
    height:100%;
    border-top:2px solid var(--gold)
}
.journey-num {
    font:800 32px Manrope;
    color:#d4dcb0;
    line-height:1
}
.journey-card h3 {
    font:800 14px Manrope;
    letter-spacing:0;
    color:var(--green);
    margin:20px 0 10px
}
.journey-card p {
    font-size:12px;
    line-height:1.8;
    color:var(--muted);
    margin:0
}
/* FAQ and CTA */
.faq-section {
    background:#fff
}
.faq-aside {
    background:var(--green);
    color:#fff;
    padding:32px;
    height:100%
}
.faq-aside .heading {
    color:#fff;
    font-size:38px
}
.faq-aside p {
    font-size:12px;
    line-height:1.8;
    color:#c8d7cc
}
.faq-aside .kicker {
    color:var(--gold)
}
.accordion-item {
    border:0;
    border-bottom:1px solid var(--line);
    border-radius:0!important
}
.accordion-button {
    font:800 13px Manrope;
    color:var(--green);
    padding:22px 3px;
    background:white!important;
    box-shadow:none!important
}
.accordion-button:after {
    background-image:none;
    content:"+";
    font:400 24px 'DM Sans';
    color:#8b9d3d;
    width:auto;
    height:auto
}
.accordion-button:not(.collapsed):after {
    content:"−";
    transform:none
}
.accordion-body {
    font-size:12px;
    line-height:1.9;
    color:var(--muted);
    padding:0 30px 21px 3px
}
.visit-banner {
    background:var(--gold);
    padding:68px 0
}
.visit-banner .heading {
    margin:0;
    color:var(--green);
    font-size:clamp(36px,4vw,52px)
}
.visit-banner p {
    font-size:12px;
    line-height:1.9;
    color:#435443;
    max-width:560px;
    margin:16px 0 0
}
.visit-banner .btn-main {
    background:var(--green);
    border-color:var(--green);
    color:white
}
.visit-banner .btn-main:hover {
    background:#0b563b
}
/* enquiry */
.enquiry-section {
    background:var(--paper)
}
.enquiry-contact {
    padding:25px 0
}
.contact-line {
    display:flex;
    gap:13px;
    align-items:center;
    margin-top:22px
}
.contact-icon {
    width:42px;
    height:42px;
    border:1px solid #d9dfcc;
    display:grid;
    place-items:center;
    color:var(--green);
    font-size:18px
}
.contact-line small {
    font-size:13px;
    letter-spacing:.13em;
    color:#7d887b;
    display:block
}
.contact-line a {
    font:800 18px Manrope;
    color:var(--green)
}
.enquiry-card {
    background:white;
    padding:35px;
    box-shadow:0 20px 55px #092d1b0c;
    border:1px solid #e7eadf;
    position:relative
}
.enquiry-card:before {
    content:"";
    position:absolute;
    left:-1px;
    top:-1px;
    width:75px;
    height:4px;
    background:var(--gold)
}
.enquiry-card h3 {
    font-size:29px;
    color:var(--green);
    margin-bottom:8px
}
.enquiry-card>p {
    font-size:12px;
    line-height:1.8;
    color:var(--muted);
    margin-bottom:24px
}
.form-label {
    font:800 9px Manrope;
    letter-spacing:.07em;
    color:#4c5b4f;
    margin-bottom:7px
}
.form-control,.form-select {
    min-height:48px;
    border:1px solid #dfe4d9;
    border-radius:0;
    font-size:12px
}
.form-control:focus,.form-select:focus {
    border-color:#8b9d3d;
    box-shadow:0 0 0 .2rem #c7d45b28
}
.submit-btn {
    width:100%;
    border:0;
    background:var(--green);
    color:white;
    padding:16px;
    font:800 10px Manrope;
    letter-spacing:.07em
}
.submit-btn:hover {
    background:var(--green2)
}
.form-privacy {
    text-align:center;
    font-size:10px;
    color:#879187;
    margin:13px 0 0
}
.form-status {
    display:none;
    padding:12px;
    background:#edf1d7;
    color:var(--green);
    font-size:12px;
    line-height:1.6;
    margin-top:12px
}
/* footer + floating actions */
.footer {
    background:#04281d;
    color:white;
    padding:45px 0 22px
}
.footer .brand {
    margin-bottom:17px
}
.footer p,.footer a {
    font-size:11px;
    line-height:1.9;
    color:#bdcbbf
}
.footer a:hover {
    color:var(--gold)
}
.footer-title {
    font:800 9px Manrope;
    letter-spacing:.18em;
    color:var(--gold);
    margin-bottom:15px
}
.footer-bottom {
    border-top:1px solid #ffffff1c;
    margin-top:30px;
    padding-top:18px;
    color:#8da094;
    font-size:9px;
    line-height:1.8
}
.float-actions {
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:999;
    display:flex;
    flex-direction:column;
    gap:9px
}
.float-actions a {
    height:47px;
    width:47px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:20px;
    box-shadow:0 7px 22px #00170e2e
}
.float-wa {
    background:#20b866
}
.float-call {
    background:var(--green)
}
.back-top {
    position:fixed;
    left:18px;
    bottom:18px;
    z-index:999;
    height:39px;
    width:39px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--green);
    display:none;
    place-items:center
}
@media(max-width:991px) {
    .section-pad {
        padding:78px 0
    }
    .hero {
        padding-top:110px
    }
    .hero-photo-wrap {
        padding:15px 0 42px 15px
    }
    .hero-photo {
        height:440px
    }
    .site-nav .nav-link {
        padding:10px 0!important
    }
    .nav-enquire {
        margin-top:8px
    }
    .why-intro {
        position:static
    }
    .gallery-head,.spec-heading {
        display:block
    }
    .gallery-head .intro,.spec-heading .intro {
        margin-top:15px
    }
    .map-panel {
        margin-top:20px
    }
    .developer-copy {
        padding:28px 0
    }
    .fact {
        border-right:0
    }
    .spec-side {
        min-height:380px
    }
}
@media(max-width:575px) {
    .section-pad {
        padding:62px 0
    }
    .hero {
        padding:95px 0 35px
    }
    .hero-copy {
        padding:14px 0 0
    }
    .hero h1 {
        font-size:48px
    }
    .hero-desc {
        font-size:13px
    }
    .hero-meta {
        gap:13px;
        margin:24px 0
    }
    .hero-price {
        font-size:27px
    }
    .hero-photo-wrap {
        padding:10px 0 35px 10px
    }
    .hero-photo {
        height:340px;
        border-radius:130px 130px 0 0
    }
    .photo-stamp {
        padding:16px 18px;
        min-width:185px
    }
    .photo-stamp strong {
        font-size:19px
    }
    .fact {
        padding:15px 0
    }
    .fact i {
        font-size:17px
    }
    .fact strong {
        font-size:11px
    }
    .fact span {
        font-size:9px
    }
    .heading {
        font-size:37px
    }
    .editorial-image {
        padding:0 20px 25px 0
    }
    .editorial-image img {
        height:360px
    }
    .image-note {
        width:175px;
        padding:16px
    }
    .image-note strong {
        font-size:19px
    }
    .gallery-large {
        height:350px
    }
    .gallery-small {
        height:175px
    }
    .tile-label strong {
        font-size:20px
    }
    .why-item {
        min-height:auto;
        padding:23px 0
    }
    .map-panel {
        padding:15px;
        min-height:0
    }
    .map-graphic {
        height:220px
    }
    .spec-list {
        padding:23px 20px
    }
    .spec-side {
        padding:22px;
        min-height:350px
    }
    .spec-side img {
        height:190px
    }
    .developer-mark {
        min-height:310px
    }
    .developer-stats {
        gap:20px
    }
    .journey-card {
        padding:23px 20px
    }
    .faq-aside {
        padding:26px
    }
    .faq-aside .heading {
        font-size:34px
    }
    .visit-banner {
        padding:52px 0
    }
    .enquiry-card {
        padding:24px 19px
    }
    .float-actions {
        right:12px;
        bottom:12px
    }
    .float-actions a {
        width:43px;
        height:43px
    }
    .back-top {
        left:12px;
        bottom:12px
    }
}
/* Hero lead form */
.hero-form-panel {
    background:var(--paper);
    color:var(--ink);
    padding:30px 31px 24px;
    max-width:490px;
    margin-left:auto;
    position:relative;
    box-shadow:0 25px 65px #00170e30;
    border-top:4px solid var(--gold)
}
.hero-form-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:20px
}
.form-eyebrow {
    font:800 9px Manrope,sans-serif;
    letter-spacing:.17em;
    color:#71813a
}
.availability-pill {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font:800 8px Manrope,sans-serif;
    letter-spacing:.07em;
    color:#315b36;
    background:#e8edcf;
    padding:8px 9px
}
.availability-pill i {
    font-size:6px;
    color:#819b38
}
.hero-form-panel h2 {
    font:600 32px/1.08 'Lora',serif;
    letter-spacing:-.035em;
    color:var(--green);
    margin:0 0 10px
}
.hero-form-intro {
    font-size:11px;
    line-height:1.7;
    color:var(--muted);
    margin-bottom:20px
}
.hero-form-panel .form-label {
    font:800 9px Manrope;
    letter-spacing:.07em;
    color:#4c5b4f;
    margin-bottom:6px
}
.hero-form-panel .form-control,.hero-form-panel .form-select {
    min-height:44px;
    background:#fff;
    border:1px solid #dfe4d9;
    border-radius:0;
    font-size:11px
}
.hero-form-panel .submit-btn {
    margin-top:3px;
    min-height:48px
}
.hero-form-bottom {
    display:flex;
    gap:9px;
    align-items:flex-start;
    border-top:1px solid #e3e6dc;
    padding-top:14px;
    margin-top:17px;
    color:#7a8578;
    font-size:9px;
    line-height:1.6
}
.hero-form-bottom i {
    color:#87993e;
    font-size:14px
}
.enquiry-contact-card {
    background:#fff;
    padding:38px;
    border:1px solid #e4e8dc;
    box-shadow:0 20px 55px #092d1b0a
}
.enquiry-contact-card h3 {
    font:500 32px/1.15 'Lora',serif;
    color:var(--green);
    margin:17px 0 12px
}
.enquiry-contact-card>p {
    font-size:12px;
    line-height:1.9;
    color:var(--muted);
    max-width:450px
}
.contact-options {
    margin-top:26px;
    border-top:1px solid var(--line)
}
.contact-options>a {
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px 0;
    border-bottom:1px solid var(--line);
    color:var(--green)
}
.contact-options .contact-icon {
    flex:0 0 42px
}
.contact-options small {
    display:block;
    font:800 13px Manrope;
    letter-spacing:.12em;
    color:#879187;
    margin-bottom:4px
}
.contact-options strong {
    font:800 17px Manrope;
    color:var(--green)
}
.contact-options>a>i:last-child {
    color:#8b9d3d
}
@media(max-width:991px) {
    .hero-form-panel {
        max-width:none;
        margin:8px 0 20px
    }
    .hero {
        padding-bottom:48px
    }
}
@media(max-width:575px) {
    .hero-form-panel {
        padding:23px 19px 20px
    }
    .hero-form-panel h2 {
        font-size:29px
    }
    .hero-form-top {
        align-items:flex-start
    }
    .enquiry-contact-card {
        padding:25px 20px
    }
    .enquiry-contact-card h3 {
        font-size:28px
    }
}
/* Typography system: Lora headings + Open Sans descriptions, responsive at every breakpoint */
body {
    font-family:'Open Sans',sans-serif;
    font-size:16px;
    line-height:1.7
}
h1,h2,h3,h4,h5,h6,.heading,.display-serif {
    font-family:'Lora',serif
}
p,li,label,input,select,textarea,button,.intro,.hero-desc,.hero-form-intro,.hero-foot,.limited,.fact span,.why-item p,.landmark,.map-caption,.journey-card p,.accordion-body,.footer p,.footer a {
    font-family:'Open Sans',sans-serif
}
.hero h1 {
    font-size:clamp(2.8rem,4.4vw,4.15rem);
    line-height:1.04
}
.heading {
    font-size:clamp(2.15rem,3.8vw,3.65rem);
    line-height:1.16
}
.hero-desc {
    font-size:clamp(1rem,1.15vw,1.15rem);
    line-height:1.9;
    max-width:520px
}
.intro {
    font-size:clamp(.98rem,1.05vw,1.1rem);
    line-height:1.9
}
.hero-foot {
    font-size:clamp(.98rem,.85vw,.9rem);
    line-height:1.7
}
.limited {
    font-size:clamp(.92rem,.9vw,.95rem);
    line-height:1.75
}
.limited strong {
    font-size:clamp(2.25vw,.95vw,1rem)
}
.hero-price {
    font-size:clamp(1.7rem,2.25vw,2rem)
}
.hero-price small {
    font-size:.7rem
}
.fact strong {
    font-size:clamp(.9rem,.88vw,.9rem)
}
.fact span {
    font-size:clamp(.92rem,.78vw,.82rem);
    line-height:1.6
}
.availability-card p {
    font-size:.82rem;
    line-height:1.8
}
.image-note strong {
    font-size:clamp(1.2rem,1.8vw,1.5rem);
    line-height:1.35
}
.tile-label strong {
    font-size:clamp(1.15rem,1.7vw,1.5rem);
    line-height:1.3
}
.tile-label span,.gallery-section>div>p {
    font-size:.75rem;
    line-height:1.7
}
.why-item h3 {
    font-size:clamp(1.03rem,1.15vw,1.1rem);
    line-height:1.45
}
.why-item p {
    font-size:clamp(.88rem,.95vw,.98rem);
    line-height:1.85
}
.landmark {
    font-size:clamp(1.05rem,.9vw,.92rem);
    line-height:1.6
}
.map-caption {
    font-size:.8rem;
    line-height:1.8
}
.spec-row h3 {
    font-size:.95rem;
    line-height:1.5
}
.spec-row p {
    font-size:clamp(1.05rem,.9vw,.92rem);
    line-height:1.9
}
.spec-side .side-caption {
    font-size:clamp(1.45rem,2.1vw,1.8rem);
    line-height:1.35
}
.developer-copy p {
    font-size:clamp(.9rem,1vw,1rem);
    line-height:1.95
}
.developer-stats strong {
    font-size:clamp(1.25rem,1.65vw,1.45rem)
}
.developer-stats span {
    font-size:.7rem;
    line-height:1.6
}
.journey-card h3 {
    font-size:1rem;
    line-height:1.5
}
.journey-card p {
    font-size:clamp(1.05rem,.92vw,.95rem);
    line-height:1.85
}
.faq-aside p,.accordion-body {
    font-size:clamp(.88rem,.95vw,.98rem);
    line-height:1.9
}
.accordion-button {
    font-size:clamp(1.05rem,1.5vw,1rem);
    line-height:1.6
}
.visit-banner p {
    font-size:clamp(.9rem,1vw,1rem);
    line-height:1.9
}
.enquiry-contact-card>p,.enquiry-card>p {
    font-size:.9rem;
    line-height:1.9
}
.form-label,.form-eyebrow,.availability-pill,.submit-btn,.form-privacy,.hero-form-bottom {
    letter-spacing:.04em
}
.hero-form-panel h2 {
    font-size:clamp(1.8rem,2.5vw,2.15rem);
    line-height:1.2
}
.hero-form-intro {
    font-size:.88rem;
    line-height:1.8
}
.hero-form-panel .form-label,.enquiry-card .form-label {
    font-size:.72rem
}
.hero-form-panel .form-control,.hero-form-panel .form-select,.form-control,.form-select {
    font-size:.9rem;
    min-height:49px
}
.submit-btn {
    font-size:.78rem;
    line-height:1.5
}
.footer p,.footer a {
    font-size:.8rem;
    line-height:1.9
}
.footer-bottom {
    font-size:.7rem;
    line-height:1.8
}
@media(min-width:1400px) {
    .container {
        max-width:1280px
    }
    .section-pad {
        padding:120px 0
    }
    .hero {
        padding-top:90px;
        padding-bottom:72px
    }
    .hero-photo {
        height:560px
    }
    .hero-form-panel {
        padding:36px 36px 28px;
        max-width:510px
    }
    .hero-form-panel .form-control,.hero-form-panel .form-select {
        min-height:52px
    }
    .hero-desc {
        font-size:1.15rem
    }
    .intro {
        font-size:1.1rem
    }
}
@media(max-width:991px) {
    body {
        font-size:15px
    }
    .hero h1 {
        font-size:clamp(2.7rem,7vw,4.2rem)
    }
    .heading {
        font-size:clamp(2.05rem,5vw,3rem)
    }
    .hero-desc,.intro {
        font-size:1rem
    }
    .why-item p,.spec-row p,.journey-card p,.accordion-body,.faq-aside p,.developer-copy p {
        font-size:.92rem
    }
    .hero-form-panel {
        padding:30px
    }
}
@media(max-width:575px) {
    body {
        font-size:14px;
        line-height:1.7
    }
    .hero h1 {
        font-size:clamp(2.55rem,11vw,3.15rem);
        line-height:1.04
    }
    .heading {
        font-size:clamp(2rem,8.5vw,2.45rem);
        line-height:1.18
    }
    .hero-desc,.intro {
        font-size:.94rem;
        line-height:1.85
    }
    .hero-foot {
        font-size:.85rem
    }
    .limited {
        font-size:.78rem
    }
    .hero-price {
        font-size:1.65rem
    }
    .fact strong {
        font-size:.78rem
    }
    .fact span {
        font-size:.69rem
    }
    .availability-card p {
        font-size:.78rem
    }
    .why-item h3,.spec-row h3,.journey-card h3 {
        font-size:.98rem
    }
    .why-item p,.spec-row p,.journey-card p,.accordion-body,.faq-aside p,.developer-copy p {
        font-size:.86rem;
        line-height:1.85
    }
    .landmark {
        font-size:.78rem
    }
    .map-caption {
        font-size:.74rem
    }
    .tile-label strong {
        font-size:1.1rem
    }
    .hero-form-panel h2 {
        font-size:1.8rem
    }
    .hero-form-intro {
        font-size:.84rem
    }
    .hero-form-panel .form-control,.hero-form-panel .form-select {
        font-size:.85rem;
        min-height:47px
    }
    .enquiry-contact-card>p {
        font-size:.86rem
    }
    .footer p,.footer a {
        font-size:.76rem
    }
}
img{
    border-radius: 16px;
}

.map-graphic {
    width: 100%;
    height: 100%;
    min-height: 350px;
    position: relative;
    overflow: hidden;
    border-radius: 16px;
}

.map-graphic iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 350px;
    border: 0;
}

@media (max-width: 768px) {
    .map-graphic {
        min-height: 300px;
        border-radius: 12px;
    }

    .map-graphic iframe {
        min-height: 300px;
    }
}

.brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.brand-logo {
    display: block;
    width: 80px;
    height: auto;
    max-width: 100%;
    object-fit: contain;
}

@media (max-width: 576px) {
    .brand-logo {
        width: 65px;
    }
}


/* ==========================================
   MOBILE RESPONSIVE OVERFLOW FIX
========================================== */

@media (max-width: 767px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

    main,
    section,
    .container,
    .container-fluid {
        max-width: 100%;
    }

    .row {
        --bs-gutter-x: 1.25rem;
    }

    /* Hero layout */
    .hero {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .hero .container,
    .hero .container-fluid {
        width: 100%;
        max-width: 100%;
    }

    .hero h1 {
        max-width: 100%;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .hero p {
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .hero img,
    section img {
        max-width: 100%;
    }

    /* Prevent flex/grid children from forcing overflow */
    .row > *,
    .hero > *,
    .hero .row > * {
        min-width: 0;
    }

    /* Keep floating contact buttons inside the viewport */
    .whatsapp-float,
    .call-float,
    .sticky-contact,
    .floating-contact {
        max-width: calc(100vw - 20px);
    }
}

/* -------------------------------------------------------------------- */
/* Hero price and availability highlights */
.hero-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 28px;
}

.hero-price {
    flex-shrink: 0;
    font-size: 69px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.hero-price small {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    letter-spacing: 2px;
    font-weight: 600;
}

.meta-divider {
    width: 1px;
    align-self: stretch;
    background: rgba(255, 255, 255, 0.35);
}

.limited {
    flex: 1;
    font-size: 14px;
    line-height: 1.6;
}

.limited strong {
    display: block;
    font-size: 25px;
    line-height: 1.3;
    margin-bottom: 5px;
}

/* Mobile responsive layout */
@media (max-width: 767px) {
    .hero-meta {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
        padding: 18px;
        background: rgba(0, 45, 31, 0.72);
        border: 1px solid rgba(216, 189, 119, 0.4);
        border-radius: 8px;
    }

    .hero-price {
        font-size: 30px;
        white-space: normal;
        color: #d8bd77;
    }

    .hero-price small {
        font-size: 11px;
        margin-top: 5px;
    }

    .meta-divider {
        width: 100%;
        height: 1px;
        background: rgba(216, 189, 119, 0.4);
    }

    .limited {
        font-size: 14px;
        line-height: 1.6;
    }

    .limited strong {
        font-size: 21px;
        color: #d8bd77;
        margin-bottom: 5px;
    }
}



/* Developer Statistics */
.developer-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    margin-top: 28px;
    padding: 24px 18px;
    background: #f8f5ec;
    border: 1px solid #dfc47e;
    border-radius: 10px;
}

.developer-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0 10px;
}

.developer-stat-item + .developer-stat-item {
    border-left: 1px solid #d0c9b5;
}

.developer-stat-item strong {
    display: block;
    color: #004532;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 6px;
}

.developer-stat-item span {
    display: block;
    color: #53615b;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.3px;
    line-height: 1.5;
}

/* Mobile Responsive */
@media (max-width: 767px) {
    .developer-stats {
        grid-template-columns: 1fr;
        gap: 0;
        margin-top: 22px;
        padding: 8px 18px;
    }

    .developer-stat-item {
        padding: 18px 5px;
    }

    .developer-stat-item + .developer-stat-item {
        border-left: none;
        border-top: 1px solid #d0c9b5;
    }

    .developer-stat-item strong {
        font-size: 27px;
        margin-bottom: 5px;
    }

    .developer-stat-item span {
        font-size: 10px;
        letter-spacing: 1.2px;
    }
}
/* ------------------------------------------------------------------------------ */


/* Specifications video section */
.spec-video-section {
    background: #ffffff;
    padding: 28px;
    border: 1px solid #e0e6d8;
    border-radius: 8px;
   
}

 
 

.spec-video-heading h3 {
    color: #004532;
    font-family: Georgia, serif;
    font-size: 30px;
    line-height: 1.25;
    margin-bottom: 12px;
}

.spec-video-heading p {
    color: #68776e;
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 0;
}

.spec-video-wrapper {
    overflow: hidden;
   
    background: #003e2c;
    aspect-ratio: 16 / 9;
}

.spec-video-wrapper video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.spec-video-caption {
    color: #68776e;
    font-size: 12px;
    letter-spacing: 0.4px;
    margin: 14px 0 0;
}

/* Mobile responsive */
@media (max-width: 767px) {
    .spec-video-section {
        padding: 18px;
    }

    .spec-video-heading h3 {
        font-size: 25px;
    }

    .spec-video-heading p {
        font-size: 14px;
    }

    .spec-video-wrapper {
        aspect-ratio: 16 / 9;
    }
}






