/* Authorized visual refinements, functional states and accessibility additions. */
picture {
    display: contents;
}
.icon-library {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}
.header-phone {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    border-bottom: 1px solid #a5b29c;
    padding-block: 7px;
}
.header-inner {
    gap: 18px;
}
.desktop-nav {
    gap: 17px;
}
.hero-contact {
    display: grid;
    justify-items: start;
    gap: 5px;
    margin: -13px 0 17px;
}
.hero-phone {
    font-size: 13px;
    font-weight: 600;
    color: var(--forest);
}
.hero-listing {
    font-size: 10px;
    color: var(--body);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.hero-faded .hero-price .price-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--forest);
}
.hero-faded .hero-price .price-value {
    font-size: clamp(48px, 4.5vw, 64px);
    font-weight: 700;
}
.hero-faded .hero-price .price-value small {
    font-size: clamp(24px, 2.1vw, 30px);
    font-weight: 400;
}
.hero-faded .lake-inset {
    width: 280px;
    left: calc(57% - 94px);
}
.hero-faded .lake-inset img {
    height: auto;
    aspect-ratio: 4 / 3;
}
.hero-faded .inset-caption {
    font-size: 12px;
}
.contact-direct {
    display: grid;
    justify-items: start;
    padding-bottom: 20px;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--line);
}
.contact-direct > span {
    font-size: 10px;
    color: var(--muted);
}
.contact-direct > a[href^="tel:"] {
    font: 30px/1.5 var(--serif);
    color: var(--forest);
}
.contact-direct .text-link {
    font-size: 11px;
}
.external-listing {
    font-size: 12px;
    color: var(--white);
}
.form-fields {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}
.form-fields:disabled {
    opacity: 0.62;
}
.service-note {
    padding: 12px;
    margin-bottom: 20px;
    font-size: 11px;
    line-height: 1.8;
    border: 1px solid var(--line);
    background: var(--sage);
}
.service-note a,
.consent-field a {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.field-error {
    font-size: 11px;
    color: #943d27;
    line-height: 1.5;
}
.field-error:empty {
    display: none;
}
.form-error {
    background: #f6e8df;
    border-color: #c39983;
    color: #712d1d;
}
.form-status {
    margin: 0 0 20px;
}
.form-status ul {
    padding-left: 18px;
}
[aria-invalid="true"] {
    border-color: #943d27 !important;
}
.mobile-call small {
    display: block;
    font-size: 10px;
    font-weight: 400;
}
.lightbox-stage {
    touch-action: pan-x pan-y pinch-zoom;
}
.lightbox-stage.zoomed img {
    width: auto;
    height: auto;
}
.lightbox-thumb img {
    width: 100%;
    height: 100%;
}
.map-image-btn img {
    object-fit: contain;
    object-position: center;
}
.legal-page {
    max-width: 850px;
    padding-block: 65px;
}
.legal-page h1 {
    font: 45px/1.2 var(--serif);
    margin-bottom: 32px;
}
.legal-page h3 {
    font-size: 24px;
    margin: 28px 0 12px;
}
.legal-page p {
    margin: 15px 0;
}
.legal-page a {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.no-script {
    padding-block: 24px;
}
.footer-links a:hover {
    text-decoration: underline;
}
.consent-banner {
    position: fixed;
    z-index: 60;
    right: 22px;
    bottom: 22px;
    max-width: 360px;
    padding: 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 4px 20px #193d3322;
    font-size: 12px;
}
.consent-banner button {
    margin-top: 12px;
}
@media (max-width: 1200px) {
    .hero-faded .lake-inset {
        width: 240px;
        left: calc(54% - 70px);
    }
}
@media (min-width: 1051px) and (max-width: 1279px) {
    .header-phone {
        font-size: 11px;
    }
    .desktop-nav {
        gap: 11px;
    }
    .header-inner {
        gap: 12px;
    }
    .header-cta {
        padding-inline: 12px;
    }
}
@media (max-width: 1050px) {
    .hero-faded .lake-inset {
        width: 220px;
        left: calc(61% - 62px);
    }
    .header-phone {
        margin-left: auto;
    }
    .header-cta {
        margin-left: 0;
    }
}
@media (max-width: 850px) {
    .hero-faded .lake-inset {
        width: 200px;
        left: calc(62% - 57px);
    }
}
@media (max-width: 650px) {
    .hero-faded .lake-inset {
        width: 190px;
        left: 24px;
    }
    .hero-faded .inset-caption {
        font-size: 10px;
    }
    .header-phone {
        display: none;
    }
    .hero-contact {
        margin: -10px 0 17px;
    }
    .hero-phone {
        font-size: 13px;
    }
    .mobile-bar {
        gap: 10px;
    }
    .mobile-bar > a {
        flex: 1;
        padding: 8px 10px;
        min-height: 48px;
    }
    .mobile-bar .mobile-call {
        font-size: 12px;
    }
    .mobile-bar .mobile-call small {
        font-size: 10px;
    }
    .lightbox-title {
        max-width: 96px;
        white-space: normal;
        line-height: 1.1;
        font-size: 14px;
    }
    .lightbox-tools {
        gap: 2px;
    }
    .lightbox-tool {
        font-size: 8px;
        padding-inline: 5px;
    }
    .contact-direct > a[href^="tel:"] {
        font-size: 28px;
    }
    .consent-banner {
        bottom: 90px;
        right: 16px;
        left: 16px;
        max-width: none;
    }
    .legal-page h1 {
        font-size: 35px;
    }
}
@media (max-width: 370px) {
    .hero-faded .lake-inset {
        width: 180px;
        left: 20px;
    }
}
