/* Canonical approved design, migrated without redesign. */

:root {
    --paper: #f7f5ef;
    --white: #fffefb;
    --forest: #193d33;
    --forest2: #274d41;
    --ink: #263e34;
    --body: #4c5850;
    --muted: #697369;
    --line: #dcded3;
    --sage: #e9ece3;
    --gold: #d2c39c;
    --softgold: #e8dfc9;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Arial, "Helvetica Neue", sans-serif;
    --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 100px;
}
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font: 15px/1.7 var(--sans);
    -webkit-font-smoothing: antialiased;
}
button,
input,
select,
textarea {
    font: inherit;
}
button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}
button {
    cursor: pointer;
}
button,
a {
    touch-action: manipulation;
}
button {
    color: inherit;
}
a {
    color: inherit;
    text-decoration: none;
}
button {
    border: 0;
}
img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
figure,
p,
h1,
h2,
h3 {
    margin: 0;
}
svg {
    display: block;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
button svg,
a svg {
    pointer-events: none;
}
::selection {
    background: var(--softgold);
    color: var(--forest);
}
:focus-visible {
    outline: 3px solid #b08846;
    outline-offset: 5px;
}
button:disabled {
    cursor: default;
}
button[hidden],
[hidden] {
    display: none !important;
}
.wrap {
    width: min(1304px, calc(100% - 112px));
    margin-inline: auto;
}
.section {
    padding: 106px 0;
}
.eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.21em;
    text-transform: uppercase;
    line-height: 1.5;
    color: var(--muted);
}
.eyebrow .line {
    height: 1px;
    width: 32px;
    background: currentColor;
    opacity: 0.65;
}
.eyebrow.light {
    color: #c5d0bd;
}
.serif {
    font-family: var(--serif);
    font-weight: 400;
}
.italic {
    font-style: italic;
}
h2 {
    font-family: var(--serif);
    font-size: clamp(38px, 3.7vw, 54px);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 1.12;
}
h2 em {
    font-weight: 400;
}
h3 {
    font-family: var(--serif);
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: -0.025em;
}
.section-intro {
    font-size: 16px;
    line-height: 1.85;
    color: var(--body);
}
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 52px;
    padding: 15px 24px;
    border: 1px solid transparent;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.025em;
    line-height: 1.5;
    transition:
        background 0.2s,
        border-color 0.2s,
        transform 0.2s;
    white-space: nowrap;
}
.btn svg {
    width: 18px;
    height: 18px;
}
.btn:hover {
    transform: translateY(-2px);
}
.btn-primary {
    background: var(--forest);
    color: var(--white);
}
.btn-primary:hover {
    background: #2a5547;
}
.btn-outline {
    background: transparent;
    border-color: var(--line);
}
.btn-outline:hover {
    border-color: var(--forest);
    background: #f0f0e9;
}
.btn-light {
    background: var(--paper);
    color: var(--forest);
}
.text-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.035em;
    line-height: 1.6;
    border-bottom: 1px solid #b6bbae;
    padding: 7px 0;
    background: none;
}
.text-link:hover {
    border-color: var(--forest);
}
.text-link svg {
    width: 16px;
    height: 16px;
}
.skip {
    position: fixed;
    z-index: 999;
    left: 20px;
    top: -100px;
    background: var(--forest);
    color: white;
    padding: 12px 20px;
}
.skip:focus {
    top: 12px;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-header {
    height: 94px;
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(247, 245, 239, 0.97);
    border-bottom: 1px solid transparent;
    transition:
        box-shadow 0.25s,
        border-color 0.25s;
}
.site-header.scrolled {
    border-color: var(--line);
    box-shadow: 0 4px 22px #182e2010;
}
.header-inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}
.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.brand-mark {
    width: 44px;
    height: 44px;
}
.brand-words {
    display: grid;
    gap: 3px;
}
.brand-name {
    font: 27px/1 var(--serif);
    letter-spacing: 0.075em;
}
.brand-sub {
    font-size: 8px;
    letter-spacing: 0.26em;
    line-height: 1.3;
}
.desktop-nav {
    display: flex;
    align-items: center;
    gap: 30px;
}
.desktop-nav a {
    font-size: 11px;
    font-weight: 600;
    color: #5a645b;
    position: relative;
    white-space: nowrap;
}
.desktop-nav a:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -7px;
    width: 0;
    height: 1px;
    background: var(--forest);
    transition: width 0.2s;
}
.desktop-nav a:hover:after,
.desktop-nav a.active:after {
    width: 100%;
}
.header-cta {
    min-height: 44px;
    padding: 12px 20px;
    font-size: 11px;
    gap: 18px;
}
.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--line);
    align-items: center;
    justify-content: center;
}
.menu-toggle svg {
    width: 21px;
    height: 21px;
}

.hero {
    padding: 30px 0 0;
}
.hero-grid {
    display: grid;
    grid-template-columns: 0.95fr 1.3fr;
    gap: 56px;
    align-items: center;
}
.hero-copy {
    padding: 18px 0 22px;
}
.location-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #d8dbcf;
    padding: 7px 11px;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--body);
}
.location-kicker svg {
    width: 13px;
    height: 13px;
}
.hero h1 {
    font-family: var(--serif);
    font-weight: 400;
    font-size: clamp(54px, 5.05vw, 75px);
    letter-spacing: -0.052em;
    line-height: 1.07;
    margin: 27px 0 24px;
}
.hero h1 span {
    display: block;
    white-space: nowrap;
}
.hero h1 em {
    display: block;
    white-space: nowrap;
    font-weight: 400;
    color: #5e725c;
    letter-spacing: -0.06em;
}
.hero-lede {
    max-width: 365px;
    font-size: 15px;
    line-height: 1.85;
    color: var(--body);
}
.hero-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin: 30px 0 34px;
}
.hero-price {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
    max-width: 365px;
}
.price-label {
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
}
.price-value {
    font: 35px/1.1 var(--serif);
    letter-spacing: -0.03em;
    margin-top: 6px;
    color: var(--forest);
    white-space: nowrap;
}
.price-value small {
    font-size: 24px;
}
.price-aside {
    border-left: 1px solid var(--line);
    padding-left: 23px;
    line-height: 1.8;
    font-size: 11px;
    color: var(--muted);
    max-width: 140px;
}
.hero-visual {
    position: relative;
    min-width: 0;
    height: 618px;
}
.hero-main {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    background: var(--sage);
    text-align: left;
    cursor: zoom-in;
    padding: 0;
    border-radius: 2px;
}
.hero-main:after {
    content: "";
    position: absolute;
    inset: 55% 0 0;
    background: linear-gradient(0deg, #102a2180, transparent);
    pointer-events: none;
}
.hero-main img {
    object-position: 60% 53%;
    transition: transform 1.2s var(--ease);
}
.hero-main:hover img {
    transform: scale(1.025);
}
.photo-badge {
    position: absolute;
    top: 21px;
    right: 21px;
    padding: 9px 13px;
    background: #f7f5eff0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 10px;
    letter-spacing: 0.06em;
}
.photo-badge .dot {
    width: 5px;
    height: 5px;
    background: var(--forest);
    border-radius: 50%;
}
.hero-photo-hint {
    position: absolute;
    right: 24px;
    bottom: 25px;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 10px;
    z-index: 2;
    letter-spacing: 0.03em;
}
.hero-photo-hint svg {
    width: 18px;
    height: 18px;
}
.lake-inset {
    position: absolute;
    left: -29px;
    bottom: 29px;
    width: 202px;
    background: var(--white);
    padding: 7px;
    box-shadow: 0 12px 36px #18362323;
    transform: rotate(-3deg);
    transition: transform 0.3s var(--ease);
    cursor: zoom-in;
}
.lake-inset:hover {
    transform: rotate(0) translateY(-4px);
}
.lake-inset img {
    height: 139px;
    object-position: center 37%;
}
.inset-caption {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 11px 7px 6px;
    font-size: 10px;
    color: var(--body);
}
.inset-caption svg {
    width: 14px;
    height: 14px;
}
.hero-bottom-note {
    display: flex;
    justify-content: flex-end;
    padding-top: 12px;
    color: var(--muted);
    font-size: 9px;
    letter-spacing: 0.055em;
}
.hero-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 38px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 28px 0 30px;
}
.fact {
    padding-left: 37px;
    border-left: 1px solid var(--line);
}
.fact:first-child {
    padding-left: 0;
    border-left: 0;
}
.fact-value {
    font: 37px/1.2 var(--serif);
    letter-spacing: -0.035em;
}
.fact-value small {
    font-size: 24px;
}
.fact-label {
    font-size: 10px;
    color: var(--muted);
    margin-top: 6px;
    letter-spacing: 0.02em;
}
.fact-label a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.intro-layout {
    display: grid;
    grid-template-columns: 0.95fr 1.3fr;
    gap: 92px;
    align-items: center;
}
.intro-copy h2 {
    margin: 22px 0 23px;
}
.intro-copy .section-intro {
    max-width: 410px;
}
.feature-list {
    margin-top: 34px;
    display: grid;
    gap: 0;
}
.feature {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 15px;
    align-items: start;
    padding: 17px 0;
    border-top: 1px solid var(--line);
}
.feature .index {
    font-size: 9px;
    color: #8a9484;
    padding-top: 3px;
    letter-spacing: 0.12em;
}
.feature strong {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 3px;
}
.feature p {
    font-size: 11px;
    color: var(--muted);
    line-height: 1.7;
}
.intro-photos {
    position: relative;
    padding: 0 0 62px 0;
}
.intro-photo-main {
    display: block;
    width: calc(100% - 27px);
    height: 466px;
    padding: 0;
    overflow: hidden;
    cursor: zoom-in;
    position: relative;
    background: var(--sage);
}
.intro-photo-main img {
    object-position: center 56%;
    transition: transform 0.8s var(--ease);
}
.intro-photo-main:hover img {
    transform: scale(1.025);
}
.photo-corner {
    position: absolute;
    bottom: 17px;
    right: 17px;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fffefbe8;
}
.photo-corner svg {
    width: 15px;
    height: 15px;
}
.intro-photo-secondary {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 49%;
    height: 226px;
    padding: 8px;
    background: var(--paper);
    cursor: zoom-in;
}
.intro-photo-secondary img {
    object-position: center 57%;
}
.intro-photo-note {
    position: absolute;
    bottom: 14px;
    left: 2px;
    font-size: 10px;
    color: var(--muted);
    width: 44%;
    line-height: 1.7;
}
.intro-photo-note:before {
    content: "";
    display: block;
    width: 28px;
    height: 1px;
    background: #adb4a4;
    margin-bottom: 13px;
}

.build-section {
    background: var(--forest);
    color: var(--paper);
    padding: 92px 0 66px;
    position: relative;
    overflow: hidden;
}
.build-section:before {
    content: "";
    position: absolute;
    width: 620px;
    height: 620px;
    right: -250px;
    top: -300px;
    border-radius: 50%;
    border: 1px solid #ffffff0c;
    box-shadow:
        0 0 0 70px #ffffff03,
        0 0 0 140px #ffffff02;
    pointer-events: none;
}
.build-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 108px;
    position: relative;
}
.build-copy h2 {
    margin: 24px 0 23px;
    max-width: 510px;
}
.build-copy p {
    font-size: 14px;
    line-height: 1.85;
    color: #c3d0c3;
    max-width: 418px;
}
.use-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}
.use-tags span {
    border: 1px solid #b4c0ac4d;
    font-size: 10px;
    padding: 7px 13px;
    color: #dae1d2;
}
.build-numbers {
    padding-top: 2px;
}
.build-main-number {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 1px solid #93a58e55;
    padding-bottom: 21px;
}
.big-percentage {
    font: 110px/0.92 var(--serif);
    letter-spacing: -0.07em;
    color: #eee5c9;
}
.big-percentage span {
    font-size: 48px;
    margin-left: 6px;
    letter-spacing: -0.04em;
}
.build-number-label {
    font-size: 11px;
    text-align: right;
    line-height: 1.8;
    color: #d3ddce;
    max-width: 145px;
    padding-bottom: 5px;
}
.area-bar {
    height: 6px;
    background: #ffffff15;
    margin: 25px 0 12px;
    position: relative;
}
.area-bar-fill {
    height: 100%;
    width: 20%;
    background: var(--gold);
}
.bar-legend {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    color: #b7c6b7;
    letter-spacing: 0.035em;
}
.build-subnumbers {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 34px;
}
.build-subnumbers > div + div {
    border-left: 1px solid #93a58e55;
    padding-left: 27px;
}
.subnumber {
    font: 37px/1.15 var(--serif);
    letter-spacing: -0.03em;
}
.subnumber small {
    font-size: 22px;
}
.subnumber-label {
    font-size: 10px;
    line-height: 1.7;
    margin-top: 9px;
    color: #c0ccbc;
    max-width: 178px;
}
.build-detail-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 108px;
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid #93a58e55;
}
.build-detail-row h3 {
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    margin-bottom: 11px;
    color: #eee9d6;
}
.build-detail-row p {
    font-size: 11px;
    line-height: 1.85;
    color: #bdcaba;
    max-width: 470px;
}
.build-footnote {
    font-size: 10px;
    line-height: 1.8;
    color: #aebfac;
    margin-top: 33px;
    max-width: 1040px;
}
.build-footnote strong {
    font-weight: 400;
    color: #d5decd;
}

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 50px;
    margin-bottom: 32px;
}
.section-head h2 {
    margin-top: 18px;
}
.section-head .head-note {
    max-width: 272px;
    font-size: 12px;
    line-height: 1.8;
    color: var(--muted);
    padding-bottom: 3px;
}
.filter-bar {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 23px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 1px;
}
.filter-bar::-webkit-scrollbar {
    display: none;
}
.filter-btn {
    min-height: 39px;
    padding: 9px 17px;
    background: transparent;
    border: 1px solid var(--line);
    font-size: 10px;
    letter-spacing: 0.025em;
    white-space: nowrap;
    transition: all 0.2s;
}
.filter-btn[aria-pressed="true"] {
    background: var(--forest);
    border-color: var(--forest);
    color: var(--white);
}
.filter-btn:not([aria-pressed="true"]):hover {
    background: var(--sage);
    border-color: #b5bdaa;
}
.filter-btn span {
    margin-left: 6px;
    font-size: 9px;
    opacity: 0.65;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 240px;
    gap: 14px;
}
.gallery-grid.curated .gallery-card:first-child {
    grid-column: span 2;
    grid-row: span 2;
}
.gallery-card {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: var(--sage);
    cursor: zoom-in;
    text-align: left;
}
.gallery-card img {
    transition: transform 0.8s var(--ease);
}
.gallery-card:hover img {
    transform: scale(1.04);
}
.gallery-card:after {
    content: "";
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(transparent, #102b2280);
    pointer-events: none;
}
.gallery-card.map:after {
    background: linear-gradient(transparent, #102b22bd);
}
.gallery-caption {
    position: absolute;
    z-index: 2;
    left: 20px;
    right: 52px;
    bottom: 19px;
    display: grid;
    gap: 3px;
    color: white;
}
.gallery-caption strong {
    font-size: 12px;
    font-weight: 500;
}
.gallery-caption small {
    font-size: 9px;
    opacity: 0.85;
    line-height: 1.5;
}
.gallery-card:first-child .gallery-caption strong {
    font-family: var(--serif);
    font-size: 29px;
    font-weight: 400;
    letter-spacing: -0.025em;
}
.gallery-grid:not(.curated) .gallery-card:first-child .gallery-caption strong {
    font: 500 12px var(--sans);
    letter-spacing: 0;
}
.gallery-card .zoom-icon {
    position: absolute;
    right: 18px;
    bottom: 19px;
    color: white;
    z-index: 2;
}
.gallery-card .zoom-icon svg {
    width: 17px;
    height: 17px;
}
.gallery-under {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 24px;
}
.gallery-help {
    font-size: 10px;
    color: var(--muted);
    display: flex;
    gap: 8px;
    align-items: center;
}
.gallery-help svg {
    width: 14px;
    height: 14px;
}
.gallery-under .text-link {
    flex-shrink: 0;
}

.location-section {
    background: var(--sage);
    padding: 91px 0 81px;
}
.location-grid {
    display: grid;
    grid-template-columns: 1.37fr 0.83fr;
    gap: 76px;
    align-items: center;
    margin-top: 37px;
}
.location-title-row {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 28px;
}
.location-title-row h2 {
    margin-top: 17px;
}
.location-tag {
    font-size: 10px;
    color: var(--muted);
    padding-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.location-tag svg {
    width: 16px;
    height: 16px;
}
.map-frame {
    background: #d8e1d3;
    padding: 7px 7px 0;
}
.map-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--white);
    gap: 10px;
    padding: 9px 12px;
}
.map-tab-buttons {
    display: flex;
    gap: 5px;
}
.map-tab {
    font-size: 9px;
    padding: 7px 11px;
    min-height: 34px;
    background: transparent;
    color: var(--body);
}
.map-tab[aria-pressed="true"] {
    background: var(--forest);
    color: var(--paper);
}
.map-expand {
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
}
.map-expand svg {
    width: 17px;
    height: 17px;
}
.map-image-btn {
    display: block;
    padding: 0;
    width: 100%;
    aspect-ratio: 1.9;
    background: #cdded3;
    cursor: zoom-in;
    overflow: hidden;
    position: relative;
}
.map-image-btn img {
    object-fit: cover;
    object-position: 50% 52%;
    transition: opacity 0.15s;
}
.map-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 9px;
    font-size: 10px;
    color: var(--body);
}
.map-legend .orange-outline {
    width: 12px;
    height: 12px;
    border: 2px solid #ff862b;
    flex-shrink: 0;
}
.map-credit {
    font-size: 9px;
    color: var(--muted);
    line-height: 1.8;
    margin-top: 13px;
}
.location-copy h3 {
    font-size: 31px;
    line-height: 1.2;
    margin: 0 0 17px;
}
.location-copy > p {
    font-size: 13px;
    line-height: 1.85;
    color: var(--body);
}
.distance-list {
    margin-top: 25px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 20px 0 22px;
    border-top: 1px solid #c9d1c1;
    border-bottom: 1px solid #c9d1c1;
}
.distance-number {
    font: 28px/1.3 var(--serif);
    letter-spacing: -0.04em;
    white-space: nowrap;
}
.distance-number small {
    font-size: 16px;
}
.distance-label {
    font-size: 9px;
    color: var(--muted);
    margin-top: 5px;
    line-height: 1.7;
}
.distance-note {
    font-size: 9px !important;
    line-height: 1.7 !important;
    margin-top: 12px;
    color: var(--muted) !important;
}
.location-copy .text-link {
    margin-top: 22px;
}
.location-disclosure {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 31px;
    font-size: 10px;
    line-height: 1.8;
    color: var(--body);
}
.location-disclosure svg {
    width: 17px;
    height: 17px;
    margin-top: 2px;
}

.faq-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 106px;
    align-items: start;
}
.faq-copy h2 {
    margin-top: 21px;
}
.faq-copy p {
    font-size: 13px;
    color: var(--muted);
    max-width: 265px;
    margin-top: 22px;
    line-height: 1.9;
}
.faq-copy .text-link {
    margin-top: 20px;
}
.faq-list {
    border-top: 1px solid var(--line);
}
.faq-item {
    border-bottom: 1px solid var(--line);
}
.faq-item summary {
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    cursor: pointer;
    padding: 23px 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.6;
}
.faq-item summary::-webkit-details-marker {
    display: none;
}
.faq-item summary svg {
    width: 16px;
    height: 16px;
    transition: transform 0.2s;
}
.faq-item[open] summary svg {
    transform: rotate(45deg);
}
.faq-item .answer {
    font-size: 12px;
    line-height: 1.9;
    color: var(--body);
    padding: 0 35px 23px 0;
}
.faq-item .answer p + p {
    margin-top: 10px;
}

.contact-section {
    background: var(--forest);
    color: var(--paper);
    padding: 86px 0;
}
.contact-grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 100px;
    align-items: center;
}
.contact-copy h2 {
    font-size: clamp(44px, 4.2vw, 63px);
    margin: 24px 0;
    line-height: 1.1;
}
.contact-copy > p {
    color: #c7d1c1;
    font-size: 14px;
    line-height: 1.9;
    max-width: 360px;
}
.contact-price {
    margin: 31px 0 25px;
}
.contact-price .price-label {
    color: #c0cdb8;
}
.contact-price .price-value {
    font-size: 48px;
    color: #f4edda;
    margin-top: 10px;
}
.contact-meta {
    display: flex;
    gap: 17px;
    font-size: 10px;
    color: #c6d1bf;
    margin-top: 13px;
    align-items: center;
}
.contact-meta span + span:before {
    content: "·";
    display: inline-block;
    margin-right: 17px;
}
.contact-photo {
    height: 171px;
    max-width: 360px;
    overflow: hidden;
    margin: 25px 0 17px;
    opacity: 0.96;
}
.contact-photo img {
    object-position: center 55%;
}
.external-listing {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    font-size: 10px;
    color: #d6dfca;
    padding: 4px 0;
    border-bottom: 1px solid #728871;
}
.external-listing svg {
    width: 13px;
    height: 13px;
}
.contact-form {
    padding: 35px 38px 30px;
    background: var(--paper);
    color: var(--ink);
}
.form-heading {
    font: 29px/1.2 var(--serif);
    letter-spacing: -0.035em;
}
.form-subheading {
    font-size: 11px;
    color: var(--muted);
    margin: 10px 0 17px;
    line-height: 1.8;
}
.preview-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 10px;
    line-height: 1.6;
    color: #6d725e;
    padding: 9px 11px;
    border: 1px solid #e1e0d3;
    background: #eeece1;
    margin-bottom: 23px;
}
.preview-note svg {
    width: 13px;
    height: 13px;
    margin-top: 1px;
}
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 17px 16px;
}
.field {
    display: grid;
    gap: 6px;
    min-width: 0;
}
.field.full {
    grid-column: 1/-1;
}
.field label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.015em;
}
.field label .optional {
    font-weight: 400;
    color: var(--muted);
}
.field input,
.field select,
.field textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid #d9dcce;
    border-radius: 0;
    background: var(--white);
    padding: 12px 13px;
    font-size: 12px;
    color: var(--ink);
    transition: border-color 0.2s;
    line-height: 1.6;
}
.field input,
.field select {
    height: 45px;
}
.field textarea {
    min-height: 92px;
    resize: vertical;
}
.field input::placeholder,
.field textarea::placeholder {
    color: #90978d;
    font-size: 11px;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
    outline: 2px solid #3d5a4744;
    outline-offset: 1px;
    border-color: #527454;
}
.consent-field {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 17px 0 18px;
    font-size: 10px;
    line-height: 1.8;
    color: var(--body);
}
.consent-field input {
    width: 15px;
    height: 15px;
    accent-color: var(--forest);
    flex-shrink: 0;
    margin: 3px 0 0;
}
.consent-field button {
    font: inherit;
    background: transparent;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
    color: inherit;
}
.form-submit {
    width: 100%;
    justify-content: space-between;
}
.form-bottom-note {
    font-size: 9px;
    color: var(--muted);
    text-align: center;
    line-height: 1.8;
    margin-top: 12px;
}
.form-status {
    background: #e2e9dc;
    color: #254632;
    border: 1px solid #bcccb2;
    padding: 14px;
    font-size: 12px;
    line-height: 1.8;
    margin-top: 18px;
}
.form-status strong {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
}
.form-status svg {
    display: inline;
    width: 15px;
    height: 15px;
    vertical-align: middle;
    margin-right: 6px;
}

.site-footer {
    padding: 43px 0 28px;
}
.footer-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--line);
}
.footer-brand .brand-mark {
    width: 36px;
    height: 36px;
}
.footer-brand .brand-name {
    font-size: 24px;
}
.footer-brand .brand-sub {
    font-size: 7px;
}
.footer-address {
    font-size: 11px;
    color: var(--muted);
}
.backtop {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 10px;
}
.backtop svg {
    width: 15px;
    height: 15px;
}
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-top: 20px;
    font-size: 9px;
    color: var(--muted);
}
.footer-links {
    display: flex;
    gap: 23px;
}
.footer-links button {
    background: transparent;
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: 1.8;
}
.footer-links button:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.footer-disclaimer {
    font-size: 9px;
    line-height: 1.85;
    color: #7b8378;
    margin-top: 20px;
    max-width: 890px;
}
.mobile-bar {
    display: none;
}

dialog {
    padding: 0;
    border: 0;
    color: var(--ink);
}
dialog::backdrop {
    background: #091c16bd;
    backdrop-filter: blur(6px);
}
.lightbox {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    background: #101c17;
    color: #f1f3e9;
    overflow: hidden;
}
.lightbox[open] {
    display: grid;
    grid-template-rows: 65px minmax(0, 1fr) auto 80px;
    gap: 0;
}
.lightbox-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 27px;
    border-bottom: 1px solid #ffffff18;
}
.lightbox-title {
    font: 20px var(--serif);
    letter-spacing: -0.01em;
}
.lightbox-counter {
    font-size: 10px;
    letter-spacing: 0.17em;
    color: #b8c6b5;
}
.lightbox-tools {
    display: flex;
    align-items: center;
    gap: 13px;
}
.lightbox-tool {
    background: transparent;
    color: #e8ecdd;
    height: 38px;
    min-width: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #87997c59;
    font-size: 10px;
    gap: 6px;
    padding: 0 10px;
}
.lightbox-tool svg {
    width: 17px;
    height: 17px;
}
.lightbox-tool[aria-pressed="true"] {
    background: #e6e5d3;
    color: #122c21;
}
.lightbox-tool.close {
    border-color: transparent;
}
.lightbox-stage {
    position: relative;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 85px;
    overflow: auto;
}
.lightbox-stage img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    margin: auto;
    cursor: zoom-in;
}
.lightbox-stage.zoomed {
    display: block;
    padding: 15px;
}
.lightbox-stage.zoomed img {
    max-width: none;
    max-height: none;
    cursor: zoom-out;
}
.lightbox-prev,
.lightbox-next {
    position: fixed;
    z-index: 3;
    top: calc(50% - 37px);
    width: 44px;
    height: 60px;
    background: #f1f2e60f;
    color: white;
    border: 1px solid #a5b79733;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lightbox-prev {
    left: 19px;
}
.lightbox-next {
    right: 19px;
}
.lightbox-prev:hover,
.lightbox-next:hover {
    background: #ffffff25;
}
.lightbox-caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 12px 29px 14px;
    border-top: 1px solid #ffffff15;
    min-height: 59px;
}
.lightbox-caption-text {
    font-size: 12px;
    color: #e2e8d9;
    line-height: 1.6;
    max-width: 840px;
}
.lightbox-caption-text small {
    display: block;
    color: #b0bea8;
    font-size: 10px;
}
.lightbox-dimensions {
    color: #aabca3;
    font-size: 9px;
    white-space: nowrap;
}
.lightbox-thumbs {
    display: flex;
    justify-content: flex-start;
    gap: 7px;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: #647557 transparent;
    padding: 4px 29px 14px;
}
.lightbox-thumb {
    width: 72px;
    height: 54px;
    flex-shrink: 0;
    padding: 2px;
    background: transparent;
    border: 1px solid transparent;
    opacity: 0.55;
}
.lightbox-thumb.current {
    border-color: #ddd7b7;
    opacity: 1;
}
.lightbox-thumb:hover {
    opacity: 1;
}
.modal {
    width: min(620px, calc(100vw - 32px));
    max-height: 88dvh;
    background: var(--paper);
    padding: 35px 38px;
    margin: auto;
    overflow: auto;
    box-shadow: 0 30px 100px #05100d4d;
}
.modal-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    margin-bottom: 20px;
}
.modal-top h2 {
    font-size: 32px;
}
.modal-close {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--line);
    flex-shrink: 0;
}
.modal-close svg {
    width: 17px;
    height: 17px;
}
.modal p {
    font-size: 12px;
    line-height: 1.9;
    color: var(--body);
    margin: 12px 0;
}
.modal h3 {
    font-size: 20px;
    margin-top: 22px;
}
.modal-note {
    padding: 12px 15px;
    background: var(--sage);
    border-left: 2px solid #698160;
    font-size: 11px !important;
}
.pref-row {
    display: flex;
    gap: 25px;
    justify-content: space-between;
    align-items: center;
    padding: 17px 0;
    border-top: 1px solid var(--line);
}
.pref-row strong {
    display: block;
    font-size: 12px;
    font-weight: 500;
}
.pref-row small {
    font-size: 10px;
    color: var(--muted);
    line-height: 1.8;
    display: block;
    margin-top: 3px;
}
.pref-row input {
    width: 34px;
    height: 20px;
    flex-shrink: 0;
    accent-color: var(--forest);
}
.pref-required {
    font-size: 9px;
    white-space: nowrap;
    color: var(--muted);
}
.pref-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 20px;
}
.pref-actions .btn {
    flex: 1;
    padding: 12px;
    font-size: 10px;
    min-height: 45px;
}
.toast {
    position: fixed;
    bottom: 27px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 110;
    background: var(--forest);
    color: var(--paper);
    padding: 12px 22px;
    font-size: 11px;
    box-shadow: 0 8px 35px #0e251e30;
    max-width: calc(100% - 32px);
    text-align: center;
}

@media (min-width: 1600px) {
    .hero-visual {
        height: 660px;
    }
    .hero-copy {
        padding-right: 8px;
    }
    .hero {
        padding-top: 38px;
    }
    .hero h1 {
        font-size: 77px;
    }
    .wrap {
        width: min(1370px, calc(100% - 128px));
    }
    .hero-grid {
        gap: 65px;
    }
    .intro-photo-main {
        height: 490px;
    }
    .gallery-grid {
        grid-auto-rows: 258px;
    }
}

@media (max-width: 1200px) {
    .wrap {
        width: calc(100% - 72px);
    }
    .desktop-nav {
        gap: 19px;
    }
    .hero-grid {
        gap: 39px;
        grid-template-columns: 1fr 1.15fr;
    }
    .hero h1 {
        font-size: clamp(49px, 5.2vw, 66px);
    }
    .hero-visual {
        height: 568px;
    }
    .hero-actions {
        gap: 19px;
    }
    .hero-actions .btn {
        padding: 14px 18px;
        gap: 13px;
    }
    .hero-actions .text-link {
        font-size: 10px;
    }
    .hero-price {
        max-width: 340px;
    }
    .lake-inset {
        left: -19px;
        width: 175px;
    }
    .lake-inset img {
        height: 119px;
    }
    .hero-photo-hint {
        font-size: 9px;
        right: 17px;
        bottom: 21px;
    }
    .intro-layout {
        gap: 56px;
    }
    .intro-photo-main {
        height: 436px;
    }
    .intro-photo-secondary {
        height: 203px;
    }
    .build-grid,
    .build-detail-row {
        gap: 70px;
    }
    .location-grid {
        gap: 45px;
    }
    .faq-grid {
        gap: 66px;
    }
    .contact-grid {
        gap: 62px;
    }
    .contact-form {
        padding: 29px;
    }
    .gallery-grid {
        grid-auto-rows: 214px;
    }
}

@media (max-width: 1020px) {
    .desktop-nav {
        gap: 17px;
    }
    .desktop-nav a {
        font-size: 10px;
    }
    .header-cta {
        padding: 11px 15px;
        gap: 11px;
        font-size: 10px;
    }
    .brand-name {
        font-size: 25px;
    }
    .brand-mark {
        width: 38px;
        height: 38px;
    }
    .hero h1 {
        font-size: 54px;
    }
    .hero-grid {
        gap: 32px;
        grid-template-columns: 1fr 1.02fr;
    }
    .hero-visual {
        height: 555px;
    }
    .hero-copy {
        padding-top: 0;
    }
    .hero-lede {
        font-size: 14px;
    }
    .hero-actions {
        display: grid;
        justify-items: start;
        gap: 8px;
        margin: 24px 0;
    }
    .hero-price {
        gap: 15px;
    }
    .price-aside {
        padding-left: 15px;
    }
    .price-value {
        font-size: 32px;
    }
    .hero-photo-hint {
        right: 14px;
        bottom: 13px;
    }
    .hero-photo-hint span {
        display: none;
    }
    .lake-inset {
        width: 165px;
        bottom: 23px;
        left: -16px;
    }
    .hero-facts {
        padding: 25px 0;
    }
    .fact {
        padding-left: 25px;
    }
    .fact-value {
        font-size: 34px;
    }
    .section {
        padding: 85px 0;
    }
    .intro-layout {
        gap: 43px;
    }
    .intro-photo-main {
        height: 437px;
    }
    .intro-photo-secondary {
        width: 63%;
        height: 203px;
    }
    .intro-photo-note {
        font-size: 9px;
        width: 33%;
        bottom: 3px;
    }
    .build-grid,
    .build-detail-row {
        gap: 48px;
    }
    .big-percentage {
        font-size: 96px;
    }
    .build-subnumbers {
        gap: 14px;
    }
    .build-subnumbers > div + div {
        padding-left: 18px;
    }
    .subnumber {
        font-size: 33px;
    }
    .gallery-grid {
        grid-auto-rows: 195px;
    }
    .location-grid {
        grid-template-columns: 1.25fr 1fr;
        gap: 32px;
    }
    .location-copy h3 {
        font-size: 27px;
    }
    .distance-number {
        font-size: 24px;
    }
    .distance-number small {
        font-size: 14px;
    }
    .distance-list {
        gap: 8px;
    }
    .map-image-btn {
        aspect-ratio: 1.65;
    }
    .map-image-btn img {
        object-fit: cover;
        object-position: 38% center;
    }
    .faq-grid {
        grid-template-columns: 0.8fr 1.2fr;
        gap: 49px;
    }
    .contact-grid {
        gap: 41px;
    }
    .contact-form {
        padding: 26px;
    }
    .contact-copy h2 {
        font-size: 46px;
    }
    .form-heading {
        font-size: 27px;
    }
}

@media (max-width: 850px) {
    .wrap {
        width: calc(100% - 48px);
    }
    .site-header {
        height: 78px;
    }
    .desktop-nav {
        display: none;
        position: absolute;
        top: 77px;
        left: 0;
        right: 0;
        background: var(--paper);
        padding: 17px 24px 26px;
        border-bottom: 1px solid var(--line);
        box-shadow: 0 15px 24px #112e2011;
    }
    .desktop-nav.open {
        display: grid;
        gap: 0;
    }
    .desktop-nav a {
        font-size: 13px;
        padding: 13px 0;
    }
    .desktop-nav a:after {
        display: none;
    }
    .menu-toggle {
        display: flex;
    }
    .header-inner {
        gap: 15px;
    }
    .header-cta {
        margin-left: auto;
        min-height: 41px;
    }
    .hero {
        padding-top: 20px;
    }
    .hero-grid {
        grid-template-columns: 1fr 1fr;
        gap: 27px;
    }
    .hero h1 {
        font-size: 46px;
    }
    .hero-lede {
        font-size: 13px;
        line-height: 1.9;
        max-width: 295px;
    }
    .hero-visual {
        height: 498px;
    }
    .photo-badge {
        font-size: 9px;
        top: 14px;
        right: 14px;
        padding: 7px 9px;
    }
    .hero-price {
        gap: 16px;
    }
    .price-value {
        font-size: 31px;
    }
    .price-aside {
        font-size: 9px;
        max-width: 110px;
    }
    .lake-inset {
        width: 146px;
        left: -13px;
        bottom: 21px;
    }
    .lake-inset img {
        height: 107px;
    }
    .inset-caption {
        font-size: 9px;
        padding: 8px 4px 4px;
    }
    .hero h1 {
        margin: 22px 0;
    }
    .hero-bottom-note {
        font-size: 8px;
    }
    .hero-facts {
        margin-top: 27px;
    }
    .fact {
        padding-left: 18px;
    }
    .fact-value {
        font-size: 32px;
    }
    .fact-label {
        font-size: 9px;
    }
    .intro-layout {
        gap: 32px;
        grid-template-columns: 1fr 1.08fr;
    }
    .intro-photo-main {
        height: 450px;
        width: 100%;
    }
    .intro-photo-secondary {
        height: 176px;
        width: 70%;
        right: -5px;
    }
    .intro-photo-note {
        font-size: 8px;
        width: 27%;
    }
    .feature-list {
        margin-top: 21px;
    }
    .feature {
        padding: 13px 0;
        gap: 6px;
        grid-template-columns: 25px 1fr;
    }
    .feature strong {
        font-size: 11px;
    }
    .feature p {
        font-size: 10px;
    }
    .intro-copy .section-intro {
        font-size: 14px;
    }
    .build-grid {
        gap: 40px;
    }
    .build-copy h2 {
        font-size: 39px;
    }
    .build-copy p {
        font-size: 13px;
    }
    .build-detail-row {
        gap: 40px;
    }
    .build-main-number {
        display: block;
    }
    .big-percentage {
        font-size: 85px;
    }
    .build-number-label {
        max-width: none;
        text-align: left;
        font-size: 10px;
        margin-top: 17px;
        padding-bottom: 0;
    }
    .build-subnumbers {
        gap: 10px;
    }
    .subnumber {
        font-size: 29px;
    }
    .subnumber small {
        font-size: 17px;
    }
    .subnumber-label {
        font-size: 9px;
    }
    .gallery-grid {
        grid-auto-rows: 176px;
        gap: 11px;
    }
    .gallery-caption {
        left: 14px;
        bottom: 14px;
        right: 34px;
    }
    .gallery-caption strong {
        font-size: 11px;
    }
    .gallery-caption small {
        font-size: 8px;
    }
    .gallery-card:first-child .gallery-caption strong {
        font-size: 26px;
    }
    .gallery-card .zoom-icon {
        right: 12px;
        bottom: 14px;
    }
    .gallery-card .zoom-icon svg {
        width: 14px;
        height: 14px;
    }
    .gallery-help {
        max-width: 275px;
    }
    .location-grid {
        grid-template-columns: 1fr;
        gap: 31px;
        margin-top: 31px;
    }
    .location-copy {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px 32px;
        align-items: start;
    }
    .location-copy h3 {
        grid-row: 1;
        grid-column: 1;
        margin-bottom: 8px;
    }
    .location-copy > p:not(.distance-note) {
        grid-column: 1;
        grid-row: 2;
    }
    .distance-list {
        grid-column: 2;
        grid-row: 1 / 3;
        margin-top: 0;
    }
    .location-copy .distance-note {
        grid-column: 2;
        grid-row: 3;
        margin-top: -12px;
    }
    .location-copy .text-link {
        grid-column: 1;
        grid-row: 3;
        justify-self: start;
        margin-top: 8px;
    }
    .location-disclosure {
        grid-column: 1/-1;
        margin-top: 13px;
    }
    .map-image-btn {
        aspect-ratio: 2.14;
    }
    .map-image-btn img {
        object-position: center;
        object-fit: cover;
    }
    .location-tag {
        display: none;
    }
    .faq-grid {
        gap: 35px;
    }
    .faq-item summary {
        font-size: 12px;
        padding: 19px 0;
    }
    .faq-copy p {
        font-size: 12px;
    }
    .contact-grid {
        gap: 30px;
        grid-template-columns: 0.9fr 1.1fr;
    }
    .contact-form {
        padding: 23px;
    }
    .contact-copy h2 {
        font-size: 43px;
    }
    .contact-copy > p {
        font-size: 13px;
    }
    .contact-photo {
        height: 145px;
    }
    .form-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .field.full {
        grid-column: auto;
    }
    .form-heading {
        font-size: 25px;
    }
    .contact-price .price-value {
        font-size: 42px;
    }
    .footer-address {
        font-size: 10px;
    }
}

@media (max-width: 650px) {
    html {
        scroll-padding-top: 85px;
    }
    .wrap {
        width: calc(100% - 40px);
    }
    .section {
        padding: 69px 0;
    }
    h2 {
        font-size: 39px;
        letter-spacing: -0.045em;
        line-height: 1.14;
    }
    .eyebrow {
        font-size: 9px;
        letter-spacing: 0.18em;
    }
    .site-header {
        height: 72px;
    }
    .brand-mark {
        width: 35px;
        height: 35px;
    }
    .brand {
        gap: 9px;
    }
    .brand-name {
        font-size: 23px;
    }
    .brand-sub {
        font-size: 7px;
        letter-spacing: 0.22em;
    }
    .header-cta {
        display: none;
    }
    .menu-toggle {
        margin-left: auto;
        width: 40px;
        height: 40px;
    }
    .desktop-nav {
        top: 71px;
        padding-inline: 20px;
    }
    .hero {
        padding-top: 18px;
    }
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }
    .hero-copy {
        padding: 8px 0 0;
    }
    .location-kicker {
        font-size: 8px;
        padding: 6px 10px;
    }
    .hero h1 {
        font-size: clamp(44px, 11.7vw, 63px);
        line-height: 1.05;
        letter-spacing: -0.05em;
        margin: 21px 0 19px;
    }
    .hero h1 em {
        letter-spacing: -0.06em;
    }
    .hero-lede {
        max-width: 410px;
        font-size: 13px;
        line-height: 1.85;
    }
    .hero-actions {
        display: flex;
        gap: 23px;
        flex-wrap: nowrap;
        margin: 23px 0;
    }
    .hero-actions .btn {
        padding: 13px 17px;
        font-size: 10px;
        min-height: 47px;
        gap: 11px;
    }
    .hero-actions .text-link {
        font-size: 10px;
    }
    .hero-price {
        padding-top: 18px;
        max-width: none;
        gap: 28px;
        justify-content: flex-start;
    }
    .price-label {
        font-size: 8px;
    }
    .price-value {
        font-size: 31px;
        margin-top: 5px;
    }
    .price-aside {
        font-size: 10px;
        max-width: 155px;
        padding-left: 24px;
        line-height: 1.8;
    }
    .hero-visual {
        height: 370px;
        margin: 0 0 7px;
    }
    .hero-main img {
        object-position: 58% center;
    }
    .hero-main:after {
        inset: 70% 0 0;
    }
    .photo-badge {
        top: 14px;
        right: 14px;
        font-size: 9px;
    }
    .lake-inset {
        width: 150px;
        bottom: -7px;
        left: 10px;
        transform: rotate(-4deg);
    }
    .lake-inset img {
        height: 104px;
    }
    .hero-photo-hint {
        right: 16px;
        bottom: 17px;
    }
    .hero-photo-hint span {
        display: none;
    }
    .hero-bottom-note {
        font-size: 8px;
        justify-content: flex-end;
        padding-top: 10px;
        max-width: 220px;
        margin-left: auto;
        line-height: 1.7;
        text-align: right;
    }
    .hero-facts {
        grid-template-columns: 1fr 1fr;
        padding: 0;
        margin-top: 25px;
    }
    .fact {
        padding: 21px 0 21px 23px;
        border-left: 1px solid var(--line);
    }
    .fact:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }
    .fact:nth-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }
    .fact-value {
        font-size: 33px;
    }
    .fact-value small {
        font-size: 22px;
    }
    .fact-label {
        font-size: 9px;
        margin-top: 4px;
    }
    .intro-layout {
        grid-template-columns: 1fr;
        gap: 33px;
    }
    .intro-copy h2 {
        margin-top: 20px;
        margin-bottom: 20px;
        max-width: 430px;
    }
    .intro-copy .section-intro {
        max-width: 450px;
        font-size: 14px;
    }
    .feature-list {
        margin-top: 25px;
    }
    .feature {
        padding: 15px 0;
        grid-template-columns: 26px 1fr;
        gap: 12px;
    }
    .feature strong {
        font-size: 12px;
    }
    .feature p {
        font-size: 11px;
    }
    .intro-photo-main {
        height: 357px;
        width: calc(100% - 19px);
    }
    .intro-photos {
        padding-bottom: 59px;
    }
    .intro-photo-secondary {
        width: 49%;
        height: 177px;
        right: 0;
        padding: 7px;
    }
    .intro-photo-note {
        width: 44%;
        font-size: 9px;
        bottom: 9px;
    }
    .build-section {
        padding: 66px 0 46px;
    }
    .build-grid {
        grid-template-columns: 1fr;
        gap: 41px;
    }
    .build-copy h2 {
        font-size: 40px;
        margin-top: 21px;
    }
    .build-copy p {
        font-size: 13px;
        max-width: 420px;
    }
    .use-tags {
        margin-top: 22px;
        gap: 8px;
    }
    .use-tags span {
        font-size: 9px;
        padding: 6px 11px;
    }
    .build-main-number {
        display: flex;
        align-items: end;
        padding-bottom: 20px;
    }
    .big-percentage {
        font-size: 100px;
    }
    .big-percentage span {
        font-size: 42px;
    }
    .build-number-label {
        font-size: 11px;
        text-align: right;
        max-width: 135px;
        padding-bottom: 3px;
        margin: 0;
    }
    .build-subnumbers {
        margin-top: 27px;
        gap: 24px;
    }
    .subnumber {
        font-size: 37px;
    }
    .subnumber small {
        font-size: 23px;
    }
    .subnumber-label {
        font-size: 10px;
        max-width: 180px;
    }
    .build-subnumbers > div + div {
        padding-left: 28px;
    }
    .area-bar {
        margin-top: 22px;
    }
    .build-detail-row {
        grid-template-columns: 1fr;
        gap: 23px;
        margin-top: 34px;
        padding-top: 24px;
    }
    .build-detail-row h3 {
        font-size: 12px;
        margin-bottom: 8px;
    }
    .build-detail-row p {
        font-size: 11px;
    }
    .build-footnote {
        margin-top: 24px;
        font-size: 9px;
    }
    .section-head {
        display: block;
        margin-bottom: 24px;
    }
    .section-head h2 {
        margin-top: 18px;
    }
    .section-head .head-note {
        font-size: 11px;
        margin-top: 17px;
        max-width: 350px;
    }
    .filter-bar {
        gap: 7px;
        margin-bottom: 18px;
        margin-right: -20px;
        padding-right: 20px;
    }
    .filter-btn {
        font-size: 9px;
        padding: 8px 12px;
        min-height: 37px;
    }
    .filter-btn span {
        font-size: 8px;
        margin-left: 4px;
    }
    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 170px;
        gap: 10px;
    }
    .gallery-grid.curated .gallery-card:first-child {
        grid-column: span 2;
        grid-row: span 1;
        height: 264px;
    }
    .gallery-grid.curated {
        grid-template-rows: 264px 165px 165px;
        grid-auto-rows: 165px;
    }
    .gallery-grid.curated .gallery-card:last-child {
        display: none;
    }
    .gallery-caption {
        left: 12px;
        bottom: 12px;
        right: 27px;
        gap: 3px;
    }
    .gallery-caption strong {
        font-size: 10px;
        line-height: 1.4;
    }
    .gallery-caption small {
        display: none;
    }
    .gallery-card:first-child .gallery-caption strong {
        font-size: 27px;
    }
    .gallery-card:first-child .gallery-caption small {
        display: block;
        font-size: 9px;
    }
    .gallery-card .zoom-icon {
        right: 10px;
        bottom: 12px;
    }
    .gallery-card .zoom-icon svg {
        width: 12px;
        height: 12px;
    }
    .gallery-under {
        display: grid;
        gap: 14px;
        margin-top: 21px;
    }
    .gallery-help {
        max-width: none;
        font-size: 9px;
    }
    .gallery-under .text-link {
        justify-self: start;
        font-size: 11px;
    }
    .location-section {
        padding: 64px 0 57px;
    }
    .location-grid {
        margin-top: 29px;
        gap: 28px;
    }
    .location-title-row h2 {
        font-size: 39px;
    }
    .map-frame {
        padding: 5px 5px 0;
    }
    .map-toolbar {
        padding: 6px 8px;
    }
    .map-tab {
        font-size: 8px;
        padding: 6px 10px;
        min-height: 33px;
    }
    .map-image-btn {
        aspect-ratio: 1.75;
    }
    .map-image-btn img {
        object-fit: cover;
        object-position: 37% center;
    }
    .map-legend {
        font-size: 9px;
        padding: 10px 7px;
    }
    .map-credit {
        font-size: 8px;
        line-height: 1.8;
        margin-top: 10px;
    }
    .location-copy {
        display: block;
    }
    .location-copy h3 {
        font-size: 30px;
        max-width: 300px;
        margin-bottom: 15px;
    }
    .location-copy > p {
        font-size: 13px;
    }
    .distance-list {
        margin-top: 24px;
        padding: 20px 0;
    }
    .distance-number {
        font-size: 31px;
    }
    .distance-number small {
        font-size: 17px;
    }
    .distance-label {
        font-size: 10px;
    }
    .location-copy .distance-note {
        font-size: 9px !important;
        margin-top: 13px;
    }
    .location-copy .text-link {
        margin-top: 17px;
        font-size: 11px;
    }
    .location-disclosure {
        margin-top: 21px;
        font-size: 10px;
        gap: 9px;
    }
    .faq-grid {
        grid-template-columns: 1fr;
        gap: 29px;
    }
    .faq-copy h2 {
        margin-top: 19px;
    }
    .faq-copy p {
        max-width: 320px;
        font-size: 12px;
        margin-top: 17px;
    }
    .faq-copy .text-link {
        margin-top: 15px;
        font-size: 11px;
    }
    .faq-item summary {
        font-size: 12px;
        padding: 20px 0;
        gap: 18px;
    }
    .faq-item .answer {
        font-size: 12px;
        padding-right: 18px;
    }
    .contact-section {
        padding: 62px 0 45px;
    }
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .contact-copy h2 {
        font-size: 45px;
        margin: 22px 0;
    }
    .contact-copy > p {
        font-size: 13px;
        max-width: 350px;
    }
    .contact-price {
        margin: 26px 0 20px;
    }
    .contact-price .price-value {
        font-size: 43px;
    }
    .contact-photo {
        display: none;
    }
    .contact-meta {
        margin-top: 12px;
    }
    .external-listing {
        margin-top: 8px;
    }
    .contact-form {
        padding: 26px 23px;
    }
    .form-heading {
        font-size: 28px;
    }
    .form-subheading {
        font-size: 11px;
    }
    .preview-note {
        font-size: 9px;
        margin-bottom: 20px;
    }
    .form-grid {
        gap: 16px;
    }
    .field label {
        font-size: 11px;
    }
    .field input,
    .field select,
    .field textarea {
        font-size: 16px;
        padding: 11px 12px;
    }
    .field input,
    .field select {
        height: 47px;
    }
    .field input::placeholder,
    .field textarea::placeholder {
        font-size: 12px;
    }
    .field textarea {
        min-height: 93px;
    }
    .consent-field {
        font-size: 10px;
        gap: 10px;
        line-height: 1.8;
    }
    .form-submit {
        font-size: 11px;
    }
    .form-bottom-note {
        font-size: 9px;
    }
    .site-footer {
        padding: 30px 0 calc(96px + env(safe-area-inset-bottom));
    }
    .footer-top {
        flex-wrap: wrap;
        gap: 18px;
        padding-bottom: 22px;
    }
    .footer-address {
        order: 3;
        width: 100%;
        font-size: 10px;
    }
    .footer-brand .brand-name {
        font-size: 23px;
    }
    .footer-brand .brand-mark {
        width: 34px;
        height: 34px;
    }
    .backtop {
        font-size: 9px;
    }
    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        margin-top: 17px;
        font-size: 9px;
    }
    .footer-links {
        gap: 22px;
    }
    .footer-disclaimer {
        font-size: 8px;
        line-height: 1.85;
        margin-top: 18px;
    }
    .mobile-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 45;
        padding: 11px 20px calc(11px + env(safe-area-inset-bottom));
        background: #f7f5effa;
        border-top: 1px solid var(--line);
        box-shadow: 0 -5px 30px #142e1f12;
        transition: transform 0.3s;
    }
    .mobile-bar.hide {
        transform: translateY(105%);
    }
    .mobile-bar-price {
        font: 25px/1.1 var(--serif);
        letter-spacing: -0.04em;
        white-space: nowrap;
    }
    .mobile-bar-label {
        font-size: 8px;
        line-height: 1.6;
        color: var(--muted);
        margin-top: 3px;
    }
    .mobile-bar .btn {
        min-height: 43px;
        padding: 11px 14px;
        font-size: 10px;
        gap: 10px;
    }
    .mobile-bar svg {
        width: 15px;
        height: 15px;
    }
    .lightbox[open] {
        grid-template-rows: 59px minmax(0, 1fr) auto 65px;
    }
    .lightbox-top {
        padding: 0 13px;
        gap: 10px;
    }
    .lightbox-title {
        font-size: 17px;
    }
    .lightbox-counter {
        font-size: 9px;
        letter-spacing: 0.09em;
    }
    .lightbox-tools {
        gap: 3px;
    }
    .lightbox-tool {
        height: 34px;
        min-width: 34px;
        padding: 0 7px;
        font-size: 9px;
    }
    .lightbox-stage {
        padding: 10px 0;
    }
    .lightbox-prev,
    .lightbox-next {
        width: 33px;
        height: 45px;
        top: calc(50% - 30px);
        background: #152c2099;
    }
    .lightbox-prev {
        left: 7px;
    }
    .lightbox-next {
        right: 7px;
    }
    .lightbox-prev svg,
    .lightbox-next svg {
        width: 18px;
        height: 18px;
    }
    .lightbox-caption {
        display: block;
        padding: 12px 16px;
        min-height: 82px;
    }
    .lightbox-caption-text {
        font-size: 11px;
        line-height: 1.7;
    }
    .lightbox-caption-text small {
        font-size: 9px;
        line-height: 1.7;
    }
    .lightbox-dimensions {
        font-size: 8px;
        margin-top: 7px;
        display: block;
    }
    .lightbox-thumbs {
        padding: 3px 13px 9px;
        gap: 5px;
    }
    .lightbox-thumb {
        width: 63px;
        height: 47px;
    }
    .modal {
        padding: 24px 22px;
    }
    .modal-top {
        gap: 15px;
    }
    .modal-top h2 {
        font-size: 29px;
    }
    .modal p {
        font-size: 12px;
    }
    .modal-note {
        font-size: 10px !important;
    }
    .pref-row {
        gap: 16px;
    }
    .pref-row strong {
        font-size: 11px;
    }
    .pref-row small {
        font-size: 9px;
    }
    .pref-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
    }
    .pref-actions .btn {
        min-height: 44px;
    }
    .toast {
        bottom: 91px;
        font-size: 10px;
        width: max-content;
        max-width: calc(100% - 35px);
    }
}

@media (max-width: 370px) {
    .wrap {
        width: calc(100% - 32px);
    }
    .hero h1 {
        font-size: 42px;
    }
    .hero-actions {
        gap: 16px;
    }
    .hero-actions .btn {
        padding: 12px 14px;
        font-size: 9px;
        gap: 10px;
    }
    .hero-actions .text-link {
        font-size: 9px;
    }
    .hero-visual {
        height: 325px;
    }
    .hero-price {
        gap: 19px;
    }
    .price-aside {
        padding-left: 19px;
        font-size: 9px;
    }
    .hero .price-value {
        font-size: 30px;
    }
    .gallery-grid {
        grid-auto-rows: 150px;
    }
    .gallery-grid.curated {
        grid-template-rows: 244px 150px 150px;
    }
    .gallery-grid.curated .gallery-card:first-child {
        height: 244px;
    }
    .intro-photo-main {
        height: 318px;
    }
    .intro-photo-secondary {
        height: 157px;
    }
    .contact-form {
        padding: 24px 19px;
    }
    .contact-copy h2 {
        font-size: 42px;
    }
    .mobile-bar {
        padding-left: 16px;
        padding-right: 16px;
    }
    .mobile-bar .btn {
        font-size: 9px;
        gap: 8px;
    }
    .mobile-bar-price {
        font-size: 23px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *:before,
    *:after {
        transition: none !important;
        animation: none !important;
    }
}

@media print {
    .site-header {
        position: static;
    }
    .menu-toggle,
    .hero-actions,
    .gallery-under,
    .filter-bar,
    .contact-section,
    .mobile-bar,
    .footer-links,
    .backtop {
        display: none !important;
    }
    .section,
    .build-section,
    .location-section {
        padding: 35px 0;
    }
    body {
        font-size: 11px;
    }
    .wrap {
        width: 100%;
    }
    .build-section {
        background: white;
        color: var(--ink);
    }
    .build-section p,
    .build-section .eyebrow,
    .build-section .subnumber-label,
    .big-percentage,
    .build-number-label,
    .bar-legend {
        color: var(--ink);
    }
    .hero-visual {
        height: 350px;
    }
    .hero h1 {
        font-size: 42px;
    }
    .hero-grid {
        gap: 25px;
    }
    .site-footer {
        padding-bottom: 10px;
    }
    a[href^="http"]:after {
        content: " (" attr(href) ")";
        font-size: 8px;
    }
}

.filter-bar {
    max-width: 100%;
    margin-right: 0;
}

/* Valkó – Tópart, second design iteration. Real plot photograph, softened beneath the copy. */
.brand-name {
    font-size: 25px;
    letter-spacing: 0.045em;
    white-space: nowrap;
    line-height: 1.08;
}

.brand-sub {
    letter-spacing: 0.2em;
}
.header-inner {
    gap: 22px;
}
.desktop-nav {
    gap: 23px;
}
.desktop-nav a {
    font-size: 11px;
}

.footer-brand .brand-name {
    font-size: 23px;
    letter-spacing: 0.04em;
}

.hero-faded {
    padding-top: 0;
    overflow: hidden;
    overflow: clip;
}

.hero-faded .hero-grid {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 648px;
    gap: 0;
    isolation: isolate;
}

.hero-faded .hero-copy {
    position: relative;
    z-index: 3;
    width: 48%;
    max-width: 545px;
    padding: 57px 0 63px;
}

.hero-faded h1 {
    font-size: clamp(54px, 5.2vw, 77px);
    margin: 27px 0 26px;
    line-height: 1.09;
}

.hero-faded .hero-lede {
    max-width: 376px;
}

.hero-faded .hero-actions {
    margin: 29px 0 30px;
    gap: 24px;
}

.hero-faded .hero-price {
    max-width: 375px;
}

.hero-faded .location-kicker {
    background: rgba(247, 245, 239, 0.64);
    border-color: #d8dbcf;
}

.hero-faded .hero-visual {
    position: absolute;
    z-index: 0;
    left: 14%;
    right: calc((100% - 100vw) / 2);
    top: 0;
    bottom: 0;
    height: 100%;
    margin: 0;
}

.hero-faded .hero-main {
    position: absolute;
    inset: 0;
    background: var(--paper);
    border-radius: 0;
    width: 100%;
    height: 100%;
}

.hero-faded .hero-main img {
    object-fit: cover;
    object-position: 65% 50%;
    filter: none;
}

.hero-faded .hero-main::after {
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            #f7f5ef 0%,
            rgba(247, 245, 239, 0.98) 9%,
            rgba(247, 245, 239, 0.83) 23%,
            rgba(247, 245, 239, 0.43) 36%,
            rgba(247, 245, 239, 0.08) 52%,
            rgba(247, 245, 239, 0) 66%
        ),
        linear-gradient(
            0deg,
            #f7f5ef 0%,
            rgba(247, 245, 239, 0.75) 4%,
            rgba(247, 245, 239, 0) 24%
        ),
        linear-gradient(
            180deg,
            rgba(247, 245, 239, 0.56) 0%,
            rgba(247, 245, 239, 0) 13%
        );
}

.hero-faded .photo-badge {
    top: 28px;
    right: max(32px, calc((100vw - 1304px) / 2));
    padding: 10px 14px;
    background: #f7f5eff0;
    font-size: 10px;
}

.hero-faded .hero-photo-hint {
    right: max(32px, calc((100vw - 1304px) / 2));
    bottom: 63px;
    color: var(--forest);
    background: #f7f5efec;
    padding: 10px 12px;
    font-size: 10px;
    gap: 9px;
}

.hero-faded .hero-photo-hint span {
    display: inline;
}

.hero-faded .hero-photo-hint svg {
    width: 15px;
    height: 15px;
}

.hero-faded .lake-inset {
    z-index: 2;
    left: 57%;
    right: auto;
    bottom: 32px;
    width: 186px;
    padding: 6px;
    transform: rotate(-3deg);
    box-shadow: 0 12px 38px #193d3325;
}

.hero-faded .lake-inset:hover {
    transform: rotate(0) translateY(-3px);
}

.hero-faded .lake-inset img {
    height: 129px;
    object-position: center 61%;
}

.hero-faded .inset-caption {
    padding: 10px 6px 5px;
    font-size: 10px;
}

.hero-faded .hero-bottom-note {
    position: relative;
    padding-top: 5px;
    font-size: 9px;
    margin-top: 0;
}

.hero-faded .hero-facts {
    margin-top: 27px;
}

/* Lakeside imagery remains a separate, explicitly labelled environmental chapter. */
.lake-section {
    padding: 84px 0 74px;
    background: #eceee6;
    border-top: 1px solid #e0e4d7;
}

.lake-section-head {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 90px;
    align-items: end;
    margin-bottom: 36px;
}

.lake-section-head h2 {
    margin-top: 20px;
    max-width: 670px;
}

.lake-section-copy {
    max-width: 397px;
    justify-self: end;
    padding-bottom: 3px;
}

.lake-section-copy p {
    font-size: 14px;
    line-height: 1.85;
    color: var(--body);
}

.lake-section-copy .text-link {
    font-size: 11px;
    margin-top: 16px;
}

.lake-mosaic {
    display: grid;
    grid-template-columns: 1.28fr 1fr;
    grid-template-rows: 258px 258px;
    gap: 17px;
}

.lake-photo {
    display: block;
    position: relative;
    padding: 0;
    overflow: hidden;
    background: #d6e1d2;
    color: white;
    text-align: left;
    cursor: zoom-in;
}

.lake-photo::after {
    content: "";
    position: absolute;
    inset: 50% 0 0;
    background: linear-gradient(0deg, rgba(12, 36, 28, 0.74), transparent);
    pointer-events: none;
}

.lake-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s var(--ease);
}

.lake-photo:hover img {
    transform: scale(1.025);
}

.lake-photo-main {
    grid-row: 1 / 3;
}
.lake-photo-main img {
    object-position: 50% 68%;
}

.lake-photo-second img {
    object-position: 50% 67%;
}
.lake-photo-third img {
    object-position: 50% 65%;
}

.environment-label {
    position: absolute;
    left: 24px;
    top: 24px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f7f5efed;
    color: var(--forest);
    padding: 9px 12px;
    font-size: 10px;
    z-index: 2;
}

.environment-label .dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--forest);
}

.lake-photo-caption {
    position: absolute;
    z-index: 2;
    left: 24px;
    right: 24px;
    bottom: 22px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 22px;
}

.lake-photo-caption strong {
    display: block;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 500;
    letter-spacing: 0.015em;
}

.lake-photo-caption svg {
    width: 18px;
    height: 18px;
    margin-bottom: 3px;
}

.lake-photo-main .lake-photo-caption {
    left: 30px;
    right: 28px;
    bottom: 28px;
}

.lake-photo-main .lake-photo-caption small {
    display: block;
    font-size: 9px;
    letter-spacing: 0.16em;
    margin-bottom: 8px;
}

.lake-photo-main .lake-photo-caption strong {
    font: 38px/1.1 var(--serif);
    letter-spacing: -0.035em;
}

.lake-photo-note {
    display: flex;
    align-items: start;
    gap: 10px;
    margin-top: 19px;
    color: #5d6a59;
    max-width: 935px;
}

.lake-photo-note svg {
    width: 15px;
    height: 15px;
    margin-top: 1px;
}

.lake-photo-note p {
    font-size: 10px;
    line-height: 1.85;
}
.lake-photo-note strong {
    font-weight: 600;
}

.filter-bar {
    max-width: 100%;
    margin-right: 0;
}

.gallery-card.environment .gallery-caption small {
    color: #ecf0d9;
}

.lightbox-title {
    font-size: 19px;
    white-space: nowrap;
}

@media (min-width: 1600px) {
    .hero-faded .hero-grid {
        min-height: 680px;
    }
    .hero-faded .hero-copy {
        padding-top: 65px;
        padding-bottom: 70px;
    }
    .hero-faded .hero-visual {
        left: 12%;
    }
    .hero-faded .photo-badge,
    .hero-faded .hero-photo-hint {
        right: calc((100vw - 1370px) / 2);
    }
    .lake-mosaic {
        grid-template-rows: 274px 274px;
    }
}

@media (max-width: 1200px) {
    .brand-name {
        font-size: 23px;
    }
    .brand-sub {
        font-size: 7px;
    }
    .brand-mark {
        width: 40px;
        height: 40px;
    }
    .desktop-nav {
        gap: 17px;
    }
    .desktop-nav a {
        font-size: 10px;
    }
    .header-inner {
        gap: 18px;
    }
    .hero-faded .hero-grid {
        min-height: 612px;
    }
    .hero-faded .hero-copy {
        width: 49%;
        max-width: 510px;
    }
    .hero-faded h1 {
        font-size: clamp(48px, 5.3vw, 65px);
    }
    .hero-faded .hero-actions {
        gap: 18px;
    }
    .hero-faded .hero-lede {
        max-width: 350px;
        font-size: 14px;
    }
    .hero-faded .lake-inset {
        left: 54%;
        width: 170px;
        bottom: 34px;
    }
    .hero-faded .lake-inset img {
        height: 116px;
    }
    .hero-faded .hero-photo-hint span {
        display: none;
    }
    .hero-faded .hero-photo-hint {
        right: 36px;
    }
    .lake-section-head {
        gap: 54px;
    }
    .lake-mosaic {
        grid-template-rows: 234px 234px;
    }
    .lake-photo-main .lake-photo-caption strong {
        font-size: 34px;
    }
}

@media (max-width: 1050px) {
    .desktop-nav {
        display: none;
        position: absolute;
        top: 93px;
        left: 0;
        right: 0;
        background: var(--paper);
        padding: 17px 36px 25px;
        border-bottom: 1px solid var(--line);
        box-shadow: 0 15px 24px #112e2011;
    }
    .desktop-nav.open {
        display: grid;
        gap: 0;
    }
    .desktop-nav a {
        font-size: 13px;
        padding: 12px 0;
    }
    .desktop-nav a:after {
        display: none;
    }
    .menu-toggle {
        display: flex;
    }
    .header-cta {
        margin-left: auto;
    }
    .hero-faded .hero-grid {
        min-height: 590px;
    }
    .hero-faded .hero-copy {
        width: 50%;
        padding: 44px 0 48px;
    }
    .hero-faded h1 {
        font-size: clamp(47px, 5.4vw, 58px);
    }
    .hero-faded .hero-lede {
        max-width: 330px;
    }
    .hero-faded .hero-actions {
        display: flex;
        gap: 18px;
    }
    .hero-faded .hero-visual {
        left: 10%;
    }
    .hero-faded .hero-main::after {
        background:
            linear-gradient(
                90deg,
                #f7f5ef 0%,
                rgba(247, 245, 239, 0.98) 15%,
                rgba(247, 245, 239, 0.8) 30%,
                rgba(247, 245, 239, 0.4) 43%,
                rgba(247, 245, 239, 0) 69%
            ),
            linear-gradient(0deg, #f7f5ef 0%, rgba(247, 245, 239, 0) 23%);
    }
    .hero-faded .lake-inset {
        left: 61%;
        width: 158px;
        bottom: 34px;
    }
    .hero-faded .lake-inset img {
        height: 108px;
    }
    .hero-faded .hero-price {
        max-width: 340px;
    }
    .lake-section {
        padding: 70px 0 62px;
    }
    .lake-section-head {
        gap: 32px;
        grid-template-columns: 1.2fr 1fr;
    }
    .lake-section-copy p {
        font-size: 13px;
    }
    .lake-mosaic {
        grid-template-rows: 204px 204px;
        gap: 14px;
    }
    .lake-photo-main .lake-photo-caption strong {
        font-size: 30px;
    }
    .lake-photo-caption strong {
        font-size: 12px;
    }
}

@media (max-width: 850px) {
    .desktop-nav {
        top: 77px;
        padding-inline: 24px;
    }
    .hero-faded .hero-grid {
        min-height: 567px;
    }
    .hero-faded .hero-copy {
        width: 55%;
        padding: 37px 0 45px;
    }
    .hero-faded h1 {
        font-size: 46px;
    }
    .hero-faded .hero-lede {
        max-width: 310px;
        font-size: 13px;
    }
    .hero-faded .hero-actions {
        display: grid;
        gap: 9px;
        margin: 23px 0 22px;
    }
    .hero-faded .hero-price {
        max-width: 315px;
    }
    .hero-faded .hero-visual {
        left: 9%;
    }
    .hero-faded .photo-badge {
        right: 24px;
        top: 22px;
        font-size: 9px;
        padding: 8px 10px;
    }
    .hero-faded .lake-inset {
        width: 143px;
        left: 62%;
        bottom: 40px;
    }
    .hero-faded .lake-inset img {
        height: 100px;
    }
    .hero-faded .inset-caption {
        font-size: 9px;
    }
    .hero-faded .hero-photo-hint {
        right: 22px;
        bottom: 47px;
    }
    .hero-faded .hero-bottom-note {
        font-size: 8px;
    }
    .lake-section-head {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .lake-section-copy {
        max-width: 510px;
        justify-self: start;
    }
    .lake-section-copy .text-link {
        margin-top: 12px;
    }
    .lake-mosaic {
        grid-template-columns: 1.12fr 1fr;
        grid-template-rows: 184px 184px;
        gap: 12px;
    }
    .lake-photo-caption {
        left: 17px;
        right: 17px;
        bottom: 18px;
    }
    .lake-photo-main .lake-photo-caption {
        left: 21px;
        right: 20px;
        bottom: 23px;
    }
    .lake-photo-main .lake-photo-caption strong {
        font-size: 28px;
    }
    .environment-label {
        left: 18px;
        top: 18px;
        font-size: 9px;
    }
    .lake-photo-main .lake-photo-caption small {
        font-size: 8px;
    }
}

@media (max-width: 650px) {
    .brand-name {
        font-size: 21px;
        letter-spacing: 0.035em;
    }
    .brand-mark {
        width: 34px;
        height: 34px;
    }
    .brand-sub {
        font-size: 6.5px;
        letter-spacing: 0.18em;
    }
    .brand {
        gap: 8px;
    }
    .header-inner {
        gap: 12px;
    }
    .desktop-nav {
        top: 71px;
        padding-inline: 20px;
    }
    .hero-faded .hero-grid {
        display: block;
        min-height: 0;
    }
    .hero-faded .hero-copy {
        width: 100%;
        max-width: none;
        padding: 26px 0 0;
        z-index: 3;
    }
    .hero-faded h1 {
        font-size: clamp(44px, 11.7vw, 64px);
        line-height: 1.05;
        margin: 22px 0 20px;
    }
    .hero-faded .hero-lede {
        font-size: 13px;
        max-width: 420px;
        line-height: 1.85;
    }
    .hero-faded .hero-actions {
        display: flex;
        gap: 23px;
        margin: 23px 0;
        flex-wrap: wrap;
    }
    .hero-faded .hero-price {
        width: 100%;
        max-width: none;
        gap: 25px;
    }
    .hero-faded .price-aside {
        padding-left: 23px;
    }
    .hero-faded .hero-visual {
        position: relative;
        left: calc((100% - 100vw) / 2);
        right: auto;
        top: auto;
        bottom: auto;
        width: 100vw;
        height: 388px;
        margin: -37px 0 0;
        z-index: 0;
    }
    .hero-faded .hero-main img {
        object-position: 62% 57%;
    }
    .hero-faded .hero-main::after {
        background:
            linear-gradient(
                180deg,
                #f7f5ef 0%,
                rgba(247, 245, 239, 0.88) 10%,
                rgba(247, 245, 239, 0.16) 29%,
                rgba(247, 245, 239, 0) 43%
            ),
            linear-gradient(
                0deg,
                #f7f5ef 0%,
                rgba(247, 245, 239, 0.35) 10%,
                rgba(247, 245, 239, 0) 29%
            );
    }
    .hero-faded .photo-badge {
        top: 77px;
        right: 20px;
        font-size: 8px;
        padding: 7px 10px;
    }
    .hero-faded .lake-inset {
        left: 24px;
        right: auto;
        bottom: 18px;
        width: 144px;
        padding: 5px;
        transform: rotate(-3deg);
    }
    .hero-faded .lake-inset img {
        height: 98px;
    }
    .hero-faded .inset-caption {
        font-size: 9px;
        padding: 8px 4px 4px;
    }
    .hero-faded .hero-photo-hint {
        bottom: 39px;
        right: 20px;
        padding: 9px 11px;
        gap: 8px;
    }
    .hero-faded .hero-photo-hint span {
        display: inline;
        font-size: 8px;
    }
    .hero-faded .hero-photo-hint svg {
        width: 14px;
        height: 14px;
    }
    .hero-faded .hero-bottom-note {
        padding-top: 4px;
        max-width: 210px;
        line-height: 1.7;
    }
    .hero-faded .hero-facts {
        margin-top: 22px;
    }
    .lake-section {
        padding: 62px 0 43px;
    }
    .lake-section-head {
        gap: 18px;
        margin-bottom: 26px;
    }
    .lake-section-head h2 {
        font-size: 39px;
        margin-top: 19px;
    }
    .lake-section-copy {
        max-width: 435px;
    }
    .lake-section-copy p {
        font-size: 13px;
    }
    .lake-section-copy .text-link {
        font-size: 10px;
    }
    .lake-mosaic {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 336px 190px;
        gap: 10px;
    }
    .lake-photo-main {
        grid-column: 1 / 3;
        grid-row: 1;
    }
    .lake-photo-main img {
        object-position: 50% 74%;
    }
    .lake-photo-main .lake-photo-caption {
        left: 20px;
        bottom: 23px;
    }
    .lake-photo-main .lake-photo-caption strong {
        font-size: 31px;
    }
    .lake-photo-main .lake-photo-caption small {
        font-size: 8px;
        letter-spacing: 0.1em;
    }
    .lake-photo-caption {
        left: 12px;
        right: 12px;
        bottom: 14px;
        gap: 8px;
        align-items: center;
    }
    .lake-photo-caption strong {
        font-size: 10px;
        line-height: 1.55;
        max-width: 155px;
    }
    .lake-photo-caption svg {
        width: 13px;
        height: 13px;
        flex-shrink: 0;
    }
    .lake-photo-third img {
        object-position: 54% 62%;
    }
    .environment-label {
        top: 16px;
        left: 16px;
        padding: 8px 10px;
    }
    .lake-photo-note {
        margin-top: 16px;
        gap: 9px;
    }
    .lake-photo-note p {
        font-size: 9px;
        line-height: 1.85;
    }
    .lake-photo-note svg {
        width: 14px;
        height: 14px;
    }
    .filter-bar {
        padding-right: 0;
        gap: 7px;
    }
    .footer-brand .brand-name {
        font-size: 21px;
    }
    .lightbox-title {
        font-size: 16px;
    }
    .lightbox-counter {
        font-size: 8px;
        letter-spacing: 0.04em;
    }
}

@media (max-width: 370px) {
    .brand-name {
        font-size: 19px;
    }
    .brand-mark {
        width: 30px;
        height: 30px;
    }
    .brand-sub {
        font-size: 6px;
    }
    .header-inner {
        gap: 8px;
    }
    .hero-faded h1 {
        font-size: 42px;
    }
    .hero-faded .hero-actions {
        gap: 16px;
    }
    .hero-faded .hero-visual {
        height: 349px;
    }
    .hero-faded .hero-photo-hint span {
        display: none;
    }
    .hero-faded .lake-inset {
        width: 134px;
        left: 20px;
    }
    .hero-faded .lake-inset img {
        height: 94px;
    }
    .lake-section-head h2 {
        font-size: 36px;
    }
    .lake-mosaic {
        grid-template-rows: 296px 172px;
        gap: 8px;
    }
    .lake-photo-main .lake-photo-caption strong {
        font-size: 29px;
    }
    .footer-brand .brand-name {
        font-size: 19px;
    }
    .lightbox-title {
        font-size: 14px;
    }
    .lightbox-tools {
        gap: 2px;
    }
    .lightbox-top {
        padding: 0 11px;
        gap: 7px;
    }
}

@media print {
    .hero-faded .hero-visual {
        position: relative;
        left: auto;
        right: auto;
        width: 50%;
        height: 350px;
    }
    .hero-faded .hero-grid {
        display: flex;
        min-height: 0;
    }
    .hero-faded .hero-copy {
        width: 50%;
        padding: 20px 0;
    }
    .hero-faded .hero-main::after {
        display: none;
    }
    .lake-section {
        padding: 35px 0;
        break-inside: avoid;
    }
    .lake-mosaic {
        grid-template-rows: 150px 150px;
    }
}

.lake-photo-main .lake-photo-caption strong {
    max-width: none;
}
