:root {
            --forest: #12322b;
            --green: #124734;
            --acid: #b8be14;
            --paper: #f7f5ef;
            --white: #fff;
            --ink: #172d26;
            --muted: #59665e;
            --line: #d8ddd4;
            --soft: #e9ece2;
            --serif: Georgia,'Times New Roman',serif;
            --sans: Arial,Helvetica,sans-serif
        }

        * {
            box-sizing: border-box
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 92px
        }

        body {
            margin: 0;
            color: var(--ink);
            background: var(--paper);
            font: 16px/1.65 var(--sans)
        }

        a {
            color: inherit;
            text-underline-offset: 4px
        }

        button, input, select {
            font: inherit
        }

        button, a, select {
            touch-action: manipulation
        }

        button {
            cursor: pointer
        }

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

        h1, h2, h3, p {
            margin-top: 0
        }

        h1, h2, h3 {
            line-height: 1.12
        }

        h2 {
            font: 400 clamp(32px,3.3vw,48px)/1.13 var(--serif);
            letter-spacing: -1.3px;
            margin-bottom: 22px
        }

        h3 {
            font-size: 20px;
            font-weight: 600
        }

        p {
            margin-bottom: 20px
        }

        a:focus-visible, button:focus-visible, select:focus-visible, summary:focus-visible {
            outline: 3px solid #a78115;
            outline-offset: 5px
        }

        ::selection {
            background: var(--acid);
            color: var(--forest)
        }

        .wrap {
            max-width: 1264px;
            padding: 0 44px;
            margin: auto
        }

        .skip {
            position: fixed;
            left: 12px;
            top: -90px;
            padding: 12px;
            background: #fff;
            z-index: 100
        }

            .skip:focus {
                top: 10px
            }

        .topline {
            background: var(--forest);
            color: #d4dfd7;
            font-size: 11px;
            letter-spacing: 2px;
            text-align: center;
            padding: 7px 16px
        }

        .header {
            background: rgba(247,245,239,.98);
            border-bottom: 1px solid var(--line);
            position: sticky;
            top: 0;
            z-index: 30
        }

        .nav {
            min-height: 83px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 24px
        }

        .logo img {
            width: 178px;
            height: 57px;
            object-fit: contain
        }

        .navlinks {
            display: flex;
            align-items: center;
            gap: 25px;
            font-size: 13px
        }

            .navlinks > a:not(.btn) {
                text-decoration: none
            }

                .navlinks > a:not(.btn):hover {
                    text-decoration: underline
                }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            min-height: 49px;
            padding: 12px 22px;
            border: 1px solid transparent;
            font-size: 13px;
            font-weight: 700;
            letter-spacing: .2px;
            text-decoration: none;
            background: var(--forest);
            color: white;
            border-radius: 3px;
            transition: background .15s
        }

            .btn:hover {
                background: #245646
            }

            .btn.lime {
                background: var(--acid);
                color: var(--forest)
            }

                .btn.lime:hover {
                    background: #c9ce38
                }

            .btn.outline {
                background: transparent;
                color: var(--forest);
                border-color: #9fae9f
            }

                .btn.outline:hover {
                    background: var(--soft)
                }

            .btn.light {
                background: #fff;
                color: var(--forest)
            }

            .btn.small {
                min-height: 41px;
                padding: 9px 16px
            }

        .arrow {
            font-size: 19px;
            line-height: 1
        }

        .crumb {
            font-size: 11px;
            color: var(--muted);
            padding: 25px 0 19px
        }

            .crumb a {
                text-decoration: none
            }

        .hero {
            display: grid;
            grid-template-columns: .91fr 1.09fr;
            min-height: 585px;
            padding-bottom: 44px;
            gap: 36px;
            align-items: stretch
        }

        .eyebrow {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: #5b6f5b;
            margin-bottom: 20px
        }

        .hero h1 {
            font: 500 16px/1.45 var(--sans);
            max-width: 365px;
            margin: 0 0 18px;
            color: #4f6659
        }

        .headline {
            font: 400 clamp(42px,4.65vw,67px)/1.01 var(--serif);
            letter-spacing: -2.4px;
            margin: 0 0 22px
        }

        .hero-copy {
            padding: 20px 5px 10px 0;
            display: flex;
            flex-direction: column;
            align-items: flex-start
        }

        .intro {
            font-size: 15px;
            color: var(--muted);
            line-height: 1.7;
            max-width: 420px;
            margin-bottom: 26px
        }

        .price {
            font-size: 30px;
            letter-spacing: -1px;
            line-height: 1.15;
            margin: 3px 0 5px;
            font-weight: 600
        }

            .price small {
                font-size: 12px;
                letter-spacing: 1px;
                margin-left: 8px;
                font-weight: 400
            }

        .label {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 1.6px;
            text-transform: uppercase;
            display: block;
            color: var(--muted)
        }

        .price-note {
            font-size: 11px;
            color: var(--muted);
            margin: 7px 0 23px
        }

        .actions {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px
        }

        .hero-visual {
            position: relative;
            min-height: 580px;
            border-radius: 3px;
            overflow: hidden;
            background: #ddd9cf
        }

            .hero-visual > img {
                width: 100%;
                height: 100%;
                position: absolute;
                object-fit: cover
            }

        .photo-badge {
            position: absolute;
            top: 20px;
            left: 20px;
            background: rgba(247,245,239,.95);
            padding: 8px 13px;
            font-size: 11px;
            color: var(--forest);
            border-radius: 2px;
            max-width: 90%
        }

        .photo-foot {
            position: absolute;
            bottom: 20px;
            left: 20px;
            right: 20px;
            display: flex;
            gap: 12px;
            justify-content: space-between;
            align-items: center
        }

            .photo-foot .btn {
                background: rgba(247,245,239,.95);
                color: var(--forest);
                font-size: 11px
            }

        .photo-ref {
            color: #fff;
            background: rgba(18,50,43,.9);
            padding: 5px 9px;
            border-radius: 2px;
            font-size: 10px;
            letter-spacing: 1px
        }

        .stats {
            display: grid;
            grid-template-columns: repeat(5,1fr);
            padding: 30px 0;
            border-top: 1px solid var(--line);
            border-bottom: 1px solid var(--line);
            margin-bottom: 0
        }

        .stat {
            padding: 0 26px;
            border-left: 1px solid var(--line)
        }

            .stat:first-child {
                padding-left: 0;
                border: 0
            }

            .stat b {
                font: 400 30px/1.2 var(--serif);
                display: block;
                margin-bottom: 7px
            }

            .stat span {
                font-size: 11px;
                color: var(--muted)
            }

            .stat sup {
                font-size: .6em
            }

        .section {
            padding: 86px 0
        }

        .section-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            gap: 28px;
            margin-bottom: 34px
        }

            .section-head h2 {
                margin-bottom: 0;
                max-width: 720px
            }

            .section-head p {
                font-size: 13px;
                max-width: 315px;
                color: var(--muted);
                margin-bottom: 2px
            }

        .section .eyebrow {
            margin-bottom: 16px
        }

        .intro-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 76px
        }

        .summary {
            font-size: 18px;
            line-height: 1.75;
            color: #44574b
        }

        .source-line {
            font-size: 11px;
            color: var(--muted);
            line-height: 1.8
        }

            .source-line a {
                color: var(--forest)
            }

        .benefits {
            display: grid;
            grid-template-columns: repeat(3,1fr);
            gap: 35px;
            margin-top: 52px
        }

        .benefit {
            padding: 24px 0 0;
            border-top: 1px solid #abb9a7
        }

            .benefit .num {
                font: italic 24px var(--serif);
                color: #75855d;
                display: block;
                margin-bottom: 22px
            }

            .benefit h3 {
                font: 400 25px/1.2 var(--serif);
                max-width: 280px
            }

            .benefit p {
                font-size: 14px;
                color: var(--muted)
            }

        .gallery-section {
            background: #eeeee6
        }

        .gallery {
            display: grid;
            grid-template-columns: repeat(4,1fr);
            gap: 14px
        }

        .photo {
            position: relative;
            margin: 0;
            overflow: hidden;
            background: #dbdfd5;
            border-radius: 2px
        }

            .photo:first-child {
                grid-column: span 2;
                grid-row: span 2
            }

            .photo a {
                display: block;
                height: 100%;
                min-height: 172px
            }

            .photo img {
                width: 100%;
                height: 100%;
                aspect-ratio: 1.34;
                object-fit: cover;
                transition: transform .3s
            }

            .photo:first-child img {
                aspect-ratio: 1.25
            }

            .photo a:hover img {
                transform: scale(1.025)
            }

            .photo figcaption {
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                padding: 28px 13px 11px;
                color: white;
                background: linear-gradient(transparent,rgba(0,0,0,.75));
                font-size: 11px;
                pointer-events: none
            }

        .photo-note {
            font-size: 12px;
            line-height: 1.8;
            color: var(--muted);
            max-width: 880px;
            margin: 20px 0 0
        }

        .video-links {
            display: flex;
            gap: 12px;
            margin-top: 24px;
            flex-wrap: wrap
        }

        .layout {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 40px
        }

        .floor {
            border-top: 2px solid var(--forest);
            padding-top: 22px
        }

        .floor-head {
            display: flex;
            align-items: baseline;
            gap: 20px;
            margin-bottom: 20px
        }

            .floor-head span {
                font: 400 42px var(--serif);
                color: #7c8a70
            }

            .floor-head h3 {
                font: 400 28px var(--serif);
                margin: 0
            }

        .checklist {
            list-style: none;
            padding: 0;
            margin: 0
        }

            .checklist li {
                padding: 10px 0 10px 25px;
                position: relative;
                font-size: 14px;
                border-bottom: 1px solid var(--line)
            }

                .checklist li:before {
                    content: '✓';
                    position: absolute;
                    left: 0;
                    color: #637332;
                    font-weight: bold
                }

        .equipment {
            background: var(--soft);
            padding: 24px 28px;
            margin-top: 28px
        }

            .equipment h3 {
                font-size: 15px
            }

            .equipment .checklist li {
                font-size: 13px;
                border-color: #d0d7c6
            }

        .detail-grid {
            display: grid;
            grid-template-columns: 1.04fr .96fr;
            gap: 70px
        }

        .facts {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px
        }

            .facts caption {
                text-align: left;
                font: 400 29px var(--serif);
                margin-bottom: 18px
            }

            .facts th, .facts td {
                padding: 12px 2px;
                border-bottom: 1px solid var(--line);
                vertical-align: top;
                text-align: left
            }

            .facts th {
                width: 50%;
                font-weight: 400;
                color: var(--muted)
            }

            .facts td {
                font-weight: 600
            }

            .facts .price-row td {
                font-size: 20px
            }

        .side-story {
            background: var(--forest);
            padding: 38px;
            color: #fff;
            align-self: start
        }

            .side-story h3 {
                font: 400 34px/1.15 var(--serif);
                margin-bottom: 27px
            }

            .side-story .checklist li {
                color: #e1e8df;
                border-color: #3b5749;
                font-size: 14px;
                padding-bottom: 16px;
                padding-top: 16px
            }

                .side-story .checklist li:before {
                    color: var(--acid)
                }

            .side-story p {
                font-size: 13px;
                color: #d3dfd1;
                margin-top: 24px
            }

        .amenities {
            margin-top: 28px;
            padding: 28px;
            background: var(--soft)
        }

            .amenities p, .amenities li {
                font-size: 14px;
                color: var(--muted)
            }

            .amenities h3 {
                font: 400 26px var(--serif)
            }

        .location {
            background: #e7e9df
        }

        .location-box {
            border: 1px solid #c7cec1;
            padding: 28px
        }

            .location-box .place {
                font: 400 35px var(--serif);
                margin-bottom: 12px
            }

            .location-box p {
                font-size: 14px;
                color: var(--muted)
            }

        .location-meta {
            margin-top: 18px;
            font-size: 11px;
            color: var(--muted)
        }

        .step-list {
            counter-reset: steps;
            list-style: none;
            padding: 0;
            margin: 0
        }

            .step-list li {
                position: relative;
                padding: 0 0 24px 47px;
                font-size: 14px;
                color: #50624f
            }

                .step-list li:before {
                    counter-increment: steps;
                    content: '0' counter(steps);
                    position: absolute;
                    left: 0;
                    color: var(--forest);
                    font: 400 24px var(--serif)
                }

            .step-list strong {
                display: block;
                color: var(--forest);
                font-size: 15px;
                margin-bottom: 6px
            }

        .faq-layout {
            display: grid;
            grid-template-columns: .7fr 1.3fr;
            gap: 80px
        }

            .faq-layout > div > p {
                font-size: 14px;
                color: var(--muted)
            }

        details {
            border-top: 1px solid #c9d1c3
        }

            details:last-child {
                border-bottom: 1px solid #c9d1c3
            }

        summary {
            list-style: none;
            cursor: pointer;
            padding: 22px 28px 22px 0;
            font-size: 15px;
            line-height: 1.5;
            position: relative;
            font-weight: 600
        }

            summary::-webkit-details-marker {
                display: none
            }

            summary:after {
                content: '+';
                position: absolute;
                right: 0;
                top: 20px;
                font-size: 21px;
                font-weight: 400
            }

        details[open] summary:after {
            content: '−'
        }

        details p {
            color: var(--muted);
            font-size: 14px;
            line-height: 1.8;
            padding: 0 20px 4px 0
        }

        .contact {
            background: var(--forest);
            color: #fff
        }

            .contact .eyebrow {
                color: #bdc575
            }

            .contact h2 {
                font-size: clamp(38px,4vw,58px);
                max-width: 480px
            }

            .contact p {
                color: #cfdbd1;
                font-size: 15px
            }

        .contact-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 80px
        }

        .contact-form {
            background: #f7f5ef;
            color: var(--forest);
            padding: 30px
        }

            .contact-form label {
                display: block;
                font-size: 12px;
                font-weight: bold;
                margin-bottom: 7px
            }

            .contact-form select {
                width: 100%;
                padding: 13px;
                background: #fff;
                border: 1px solid #c4cfc0;
                border-radius: 2px;
                color: var(--forest);
                margin-bottom: 19px;
                font-size: 14px
            }

            .contact-form .btn {
                width: 100%
            }

            .contact-form p {
                font-size: 11px;
                color: var(--muted);
                margin: 14px 0 0
            }

        .direct-phone {
            font: 400 29px var(--serif);
            display: inline-block;
            text-decoration: none;
            margin: 12px 0
        }

        .contact .source-line {
            color: #d2dace
        }

        .footer {
            padding: 40px 0 110px;
            font-size: 11px;
            color: var(--muted)
        }

        .footer-main {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            margin-bottom: 24px
        }

        .footer img {
            width: 163px;
            height: 54px;
            object-fit: contain
        }

        .footer p {
            max-width: 1030px;
            margin: 10px 0
        }

        .footer-links {
            display: flex;
            gap: 20px;
            flex-wrap: wrap
        }

        .text-button {
            border: 0;
            background: none;
            color: var(--forest);
            padding: 0;
            text-decoration: underline;
            text-underline-offset: 4px;
            font-size: 11px
        }

        .mobile-bar {
            display: none
        }

        .float-cta {
            position: fixed;
            bottom: 23px;
            right: 25px;
            z-index: 25;
            box-shadow: 0 5px 22px #0003
        }

        .consent {
            position: fixed;
            bottom: 14px;
            left: 16px;
            z-index: 50;
            max-width: 355px;
            width: calc(100% - 32px);
            background: #fff;
            padding: 18px 20px;
            border: 1px solid #ccd4c8;
            box-shadow: 0 8px 26px #0002;
            color: var(--forest)
        }

            .consent p {
                font-size: 12px;
                line-height: 1.6;
                margin: 0 0 12px
            }

        .consent-actions {
            display: flex;
            gap: 10px
        }

            .consent-actions button {
                font-size: 11px;
                padding: 8px 13px;
                min-height: 40px
            }

        .consent[hidden] {
            display: none
        }

        .lightbox {
            border: 0;
            padding: 0;
            width: min(1000px,94vw);
            max-height: 93vh;
            background: #11251d;
            color: #fff;
            overflow: auto
        }

            .lightbox::backdrop {
                background: #08110eed
            }

            .lightbox header {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 13px 18px;
                gap: 20px
            }

                .lightbox header p {
                    margin: 0;
                    font-size: 13px
                }

            .lightbox button {
                background: transparent;
                color: white;
                border: 1px solid #7f9686;
                padding: 9px 15px;
                min-height: 44px;
                border-radius: 2px
            }

            .lightbox .large-image {
                width: 100%;
                max-height: 68vh;
                object-fit: contain
            }

            .lightbox nav {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 12px 18px;
                gap: 20px
            }

                .lightbox nav span {
                    font-size: 12px
                }

        .noscript {
            padding: 12px 20px;
            background: #e7e9df;
            font-size: 12px
        }

        .notice {
            font-size: 12px;
            padding: 18px 0;
            color: var(--muted)
        }

        @media(min-width:1500px) {
            .hero-visual {
                min-height: 620px
            }
        }

        @media(max-width:1000px) {
            .wrap {
                padding: 0 28px
            }

            .navlinks {
                gap: 16px
            }

            .hero {
                gap: 25px
            }

            .headline {
                font-size: 52px
            }

            .hero-visual {
                min-height: 590px
            }

            .hero-copy {
                padding-top: 15px
            }

            .intro-grid, .detail-grid, .contact-grid {
                gap: 40px
            }

            .faq-layout {
                gap: 40px
            }

            .stat {
                padding: 0 17px
            }

            .photo-ref {
                display: none
            }

            .gallery {
                grid-template-columns: repeat(3,1fr)
            }

            .photo:first-child {
                grid-row: span 1
            }

                .photo:first-child img {
                    aspect-ratio: 2.68
                }
        }

        @media(max-width:740px) {
            html {
                scroll-padding-top: 75px
            }

            .wrap {
                padding: 0 21px
            }

            .topline {
                font-size: 9px;
                letter-spacing: 1.3px
            }

            .nav {
                min-height: 70px;
                gap: 12px
            }

            .logo img {
                width: 137px;
                height: 47px
            }

            .navlinks > a:not(.btn) {
                display: none
            }

            .navlinks .btn {
                font-size: 11px;
                min-height: 40px;
                padding: 9px 14px
            }

            .crumb {
                font-size: 10px;
                padding: 19px 0 15px
            }

            .hero {
                display: flex;
                flex-direction: column;
                gap: 23px;
                padding-bottom: 28px
            }

            .hero-copy {
                padding: 4px 0 0
            }

            .eyebrow {
                font-size: 9px;
                letter-spacing: 1.7px;
                margin-bottom: 15px
            }

            .hero h1 {
                font-size: 14px;
                margin-bottom: 13px;
                max-width: 330px
            }

            .headline {
                font-size: 53px;
                letter-spacing: -1.8px;
                margin-bottom: 20px
            }

            .intro {
                font-size: 14px;
                margin-bottom: 22px;
                max-width: 480px
            }

            .price {
                font-size: 28px
            }

            .price-note {
                margin-bottom: 20px
            }

            .hero-visual {
                min-height: 405px;
                height: 405px
            }

            .photo-badge {
                font-size: 10px;
                left: 15px;
                top: 15px
            }

            .photo-foot {
                left: 15px;
                right: 15px;
                bottom: 15px
            }

            .photo-ref {
                display: block
            }

            .stats {
                grid-template-columns: repeat(3,1fr);
                row-gap: 24px;
                padding: 27px 0
            }

            .stat {
                padding: 0 12px
            }

                .stat:nth-child(4) {
                    padding-left: 0;
                    border-left: 0
                }

                .stat b {
                    font-size: 27px
                }

                .stat span {
                    font-size: 10px
                }

            .section {
                padding: 58px 0
            }

            .section-head {
                display: block;
                margin-bottom: 27px
            }

                .section-head p {
                    margin-top: 16px
                }

            .intro-grid, .layout, .detail-grid, .faq-layout, .contact-grid {
                grid-template-columns: 1fr;
                gap: 30px
            }

            .summary {
                font-size: 16px
            }

            .benefits {
                grid-template-columns: 1fr;
                gap: 8px;
                margin-top: 28px
            }

            .benefit {
                padding-top: 20px
            }

                .benefit .num {
                    float: left;
                    margin: 0 17px 10px 0;
                    font-size: 22px
                }

                .benefit h3 {
                    font-size: 24px;
                    max-width: none
                }

                .benefit p {
                    font-size: 14px
                }

            .gallery {
                grid-template-columns: repeat(2,1fr);
                gap: 9px
            }

            .photo:first-child {
                grid-column: span 2
            }

                .photo:first-child img {
                    aspect-ratio: 1.4
                }

            .photo a {
                min-height: 135px
            }

            .photo img {
                aspect-ratio: 1.12
            }

            .photo figcaption {
                font-size: 10px;
                padding: 28px 9px 8px
            }

            .layout {
                gap: 34px
            }

            .side-story {
                padding: 28px
            }

            .facts {
                font-size: 13px
            }

                .facts th {
                    width: 48%
                }

                .facts .price-row td {
                    font-size: 18px
                }

            .contact-form {
                padding: 24px
            }

            .footer-main {
                align-items: flex-start;
                flex-direction: column
            }

            .footer-links {
                gap: 14px
            }

            .float-cta {
                display: none
            }

            .mobile-bar {
                position: fixed;
                bottom: 0;
                left: 0;
                right: 0;
                z-index: 35;
                background: var(--paper);
                border-top: 1px solid var(--line);
                padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
                display: flex;
                gap: 16px;
                align-items: center;
                justify-content: space-between
            }

                .mobile-bar strong {
                    font-size: 17px;
                    font-weight: 600
                }

                .mobile-bar small {
                    font-size: 9px;
                    display: block;
                    color: var(--muted)
                }

                .mobile-bar .btn {
                    font-size: 11px;
                    min-height: 44px;
                    padding: 9px 16px
                }

            .consent {
                bottom: 86px
            }

            .contact h2 {
                font-size: 43px
            }

            .location-box {
                padding: 23px
            }

            .lightbox header p {
                font-size: 11px
            }
        }

        @media(prefers-reduced-motion:reduce) {
            html {
                scroll-behavior: auto
            }

            *, *:before, *:after {
                transition: none !important;
                animation: none !important
            }
        }

        @media print {
            .header, .topline, .mobile-bar, .float-cta, .consent, .contact-form, .video-links, .lightbox, .navlinks {
                display: none !important
            }

            .section {
                padding: 25px 0
            }

            .wrap {
                padding: 0
            }

            .hero-visual {
                min-height: 300px
            }

            .hero {
                min-height: 0
            }

            .photo {
                break-inside: avoid
            }

            .faq-layout {
                display: block
            }

            details p {
                display: block
            }

            details {
                break-inside: avoid
            }

            .contact, .side-story {
                background: #fff;
                color: #000
            }

                .contact p, .side-story p, .side-story .checklist li {
                    color: #333
                }

            .footer {
                padding-bottom: 0
            }

            body {
                font-size: 12px
            }

            .hero h1 {
                font-size: 18px
            }
        }
