:root {
    --ink: #243730;
    --sage: #536d61;
    --sage-dark: #3e574b;
    --cream: #f7f3eb;
    --paper: #fcfaf6;
    --sand: #ded8cb;
    --line: #d9d5cb;
    --clay: #c97855;
    --content-max: 1440px;
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'DM Sans', Arial, sans-serif;
    --mono: 'DM Mono', monospace
}

* {
    box-sizing: border-box
}

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

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.55
}

a {
    color: inherit
}

.skip-link {
    position: absolute;
    left: -999px
}

.skip-link:focus {
    left: 1rem;
    top: 1rem;
    z-index: 200;
    background: #fff;
    padding: .7rem
}

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 24px max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    border-bottom: 1px solid rgba(217, 213, 203, .72);
    background: rgba(252, 250, 246, .94);
    box-shadow: 0 8px 28px rgba(36, 55, 48, .06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px)
}

.brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none
}

.brand svg {
    width: 43px;
    fill: none;
    stroke: var(--sage);
    stroke-width: 1.7
}

.brand strong,
.brand small {
    display: block
}

.brand strong {
    font-family: "Ephesis";
    font-size: 2rem;
    font-weight: 400;
    line-height: 1
}

.brand small {
    margin-top: 3px;
    color: #65756d;
    font-family: var(--mono);
    font-size: .61rem;
    letter-spacing: .08em;
    text-transform: uppercase
}

.brand .brand-mark {
    width: 93px;
    height: 60px;
    object-fit: contain;
    object-position: left center;
}

nav {
    display: flex;
    align-items: center;
    gap: 1.7rem;
    font-size: .86rem
}

nav a {
    position: relative;
    text-decoration: none
}

nav a:not(.nav-cta):after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -.45rem;
    left: 0;
    height: 1px;
    background: var(--sage);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease
}

nav a:not(.nav-cta):hover:after,
nav a[aria-current="page"]:after {
    transform: scaleX(1)
}

nav a[aria-current="page"] {
    color: var(--sage);
    font-weight: 600
}

.nav-cta,
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    background: var(--sage);
    border: 1px solid var(--sage);
    color: #fff !important;
    padding: .85rem 1.15rem;
    transition: .2s ease
}

.nav-cta {
    padding: .65rem 1rem
}

.button {
    text-decoration: none;
    font-weight: 600
}

.button:hover {
    background: var(--sage-dark);
    transform: translateY(-2px)
}

.nav-cta:hover {
    background: var(--sage-dark)
}

.button:focus-visible,
.nav-cta:focus-visible,
.text-link:focus-visible,
nav a:focus-visible {
    outline: 2px solid var(--clay);
    outline-offset: 4px
}

.menu-toggle {
    display: none;
    background: none;
    border: 0;
    font: inherit
}

.hero {
    position: relative;
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 7vw;
    min-height: 620px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 70px max(5vw, calc((100vw - var(--content-max))/2 + 5vw)) 100px;
    align-items: center;
    overflow: hidden
}

.hero:before {
    content: '';
    position: absolute;
    width: 44vw;
    height: 44vw;
    border-radius: 50%;
    background: #e8e5d9;
    left: -16vw;
    top: -16vw;
    z-index: -1
}

.hero-copy {
    max-width: 650px
}

.eyebrow {
    margin: 0 0 1rem;
    color: var(--sage);
    font-family: var(--mono);
    font-size: .69rem;
    letter-spacing: .13em;
    text-transform: uppercase
}

.hero h1,
h2 {
    font-family: var(--serif);
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 1.04
}

.hero h1 {
    margin: .15em 0 .35em;
    font-size: clamp(3.3rem, 6vw, 6.2rem)
}

h1 em {
    color: var(--sage);
    font-weight: 500
}

.intro {
    max-width: 480px;
    margin: 0 0 2rem;
    font-size: 1.12rem;
    color: #4d5d55
}

.hero-image {
    height: 500px;
    overflow: hidden;
    transform: rotate(2.7deg);
    box-shadow: 18px 19px 0 var(--sand)
}

.hero-image img,
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.hero-note {
    position: absolute;
    right: 3.5vw;
    bottom: 47px;
    margin: 0;
    color: #65756d;
    font-family: var(--mono);
    font-size: .65rem;
    letter-spacing: .08em;
    line-height: 1.6;
    text-transform: uppercase;
    text-align: right
}

.section {
    max-width: var(--content-max);
    margin: auto;
    padding: 115px 5vw
}

.story {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12vw;
    max-width: none;
    padding-right: max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    padding-left: max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    background: var(--cream)
}

h2 {
    margin: .1em 0;
    font-size: clamp(2.5rem, 4.4vw, 4.6rem)
}

.story-copy {
    font-size: 1.15rem
}

.story-copy p:first-child {
    margin-top: 0
}

.history-images { display:grid; grid-template-columns:1.25fr .75fr; gap:14px; margin-top:2rem }
.history-images figure { margin:0 }.history-images img { display:block; width:100%; height:240px; object-fit:cover }.history-images figcaption { margin-top:.7rem; color:#65756d; font-size:.78rem; line-height:1.45 }
.gallery-link { margin:0 0 2rem }

.page-hero {
    width: 100%;
    max-width: none;
    padding: 80px max(5vw, calc((100vw - var(--content-max))/2 + 5vw)) 90px;
    background: var(--cream)
}
.page-hero h1 { max-width:860px; margin:.1em 0 .35em; font-family:var(--serif); font-size:clamp(3.3rem,6vw,6.2rem); font-weight:500; letter-spacing:-.04em; line-height:1.04 }
.page-hero h1 em { color:var(--sage); font-weight:500 }
.page-hero .intro { margin-bottom:0 }
.service-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; align-items:start; padding-top:90px; padding-bottom:90px }
.service-section-alt { max-width:none; padding-left:max(5vw,calc((100vw - var(--content-max))/2 + 5vw)); padding-right:max(5vw,calc((100vw - var(--content-max))/2 + 5vw)); background:#eee9df }
.service-intro h2 { font-size:clamp(2.4rem,4vw,4rem) }
.service-list { margin:1.8rem 0 0; padding:0; list-style:none }
.service-list li { position:relative; padding:.65rem 0 .65rem 1.35rem; border-bottom:1px solid var(--line) }
.service-list li:before { content:'↗'; position:absolute; left:0; color:var(--clay) }
.service-photos { display:grid; grid-template-columns:repeat(3,1fr); gap:14px }
.service-photos figure { margin:0; min-width:0 }
.service-photos img { display:block; width:100%; height:340px; object-fit:cover }
.service-details { display:grid; grid-template-columns:1fr; gap:4vw }.service-details-wide { width:100% }.columns { columns:2; column-gap:3rem; margin-top:0 }.columns li { break-inside:avoid }
.rooms-gallery { padding-top:100px }.room-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px }.room-card { background:var(--cream) }.room-card>img { display:block; width:100%; height:440px; object-fit:cover }.room-card-copy { padding:1.75rem 1.8rem 2rem }.room-card h3 { margin:0 0 .65rem; font-family:var(--serif); font-size:2rem; font-weight:500 }.room-card-copy p { max-width:52ch; margin:0; color:#59665f }
.booking-cta { padding:85px 5vw; background:var(--sage); color:white; text-align:center }.booking-cta h2 { max-width:760px; margin:.2em auto .45em; font-size:clamp(2.3rem,4vw,4rem) }.booking-cta>p:not(.eyebrow) { max-width:520px; margin:0 auto 1.7rem; color:#e4eae5 }.booking-cta .eyebrow { color:#d6dfd7 }.booking-cta .button { background:var(--paper); border-color:var(--paper); color:var(--sage)!important }.booking-cta .button:hover { background:#e7e2d8 }
.where-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; align-items:center; padding-top:0 }.address-large { margin:1.4rem 0 2rem; font-family:var(--serif); font-size:1.55rem; line-height:1.4 }
.map-shell { position:relative; min-height:430px; overflow:hidden; background:#e2e7de }
.map-shell > .mapbox-map { position:absolute; inset:0; width:100%; height:100% }
.map-status, .map-fallback { position:absolute; z-index:2; inset:50% auto auto 50%; width:min(80%,360px); margin:0; padding:1rem 1.2rem; background:rgba(252,250,246,.94); color:var(--ink); font-size:.85rem; text-align:center; transform:translate(-50%,-50%); box-shadow:0 8px 30px rgba(36,55,48,.12) }
.map-status:empty { display:none }
.map-shell.map-ready .map-status { opacity:0; pointer-events:none; transition:opacity .25s ease }
.map-shell.map-error .map-status { opacity:1 }
.mapbox-map .mapboxgl-popup-content { padding:1rem 1.15rem; border-radius:0; color:var(--ink); font-family:var(--sans); line-height:1.45; box-shadow:0 8px 28px rgba(36,55,48,.2) }
.mapbox-map .mapboxgl-popup-content strong { font-family:var(--serif); font-size:1.15rem; font-weight:500 }
.mapbox-map .mapboxgl-popup-tip { border-top-color:#fff }
.mapbox-map .mapboxgl-ctrl-group { border-radius:0; box-shadow:0 2px 14px rgba(36,55,48,.18) }
.corte-map-marker { position:relative; width:54px; height:54px; border:3px solid #fff; border-radius:50%; background:var(--clay); color:#fff; box-shadow:0 7px 20px rgba(36,55,48,.3); cursor:pointer }
.corte-map-marker::after { content:''; position:absolute; bottom:-10px; left:50%; width:18px; height:18px; border-right:3px solid #fff; border-bottom:3px solid #fff; background:var(--clay); transform:translateX(-50%) rotate(45deg); transform-origin:center }
.corte-map-marker span { position:relative; z-index:1; display:grid; height:100%; place-items:center; font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.08em }
.city-distances { max-width:none; padding:80px max(5vw,calc((100vw - var(--content-max))/2 + 5vw)); background:var(--sage); color:#fff }.city-distances-inner { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; align-items:end }.city-distances h2 { margin:.1em 0 .35em; color:#fff; font-size:clamp(2.4rem,4vw,4rem) }.city-distances .eyebrow { color:#d6dfd7 }.city-distances-inner>div>p:last-child { margin:0; color:#dbe3dd }.city-distances ul { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin:0; padding:0; list-style:none }.city-distances li { padding-top:1rem; border-top:1px solid #9dafA5 }.city-distances li span,.city-distances li strong { display:block }.city-distances li strong { margin-top:.25rem; font-family:var(--serif); font-size:1.45rem; font-weight:500 }
.nearby { padding-top:95px; padding-bottom:95px }.nearby-alt { max-width:none; padding-left:max(5vw,calc((100vw - var(--content-max))/2 + 5vw)); padding-right:max(5vw,calc((100vw - var(--content-max))/2 + 5vw)); background:var(--cream) }.nearby-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:20px }.nearby-grid article { padding:1.6rem; background:#fff; border-top:3px solid var(--sage) }.nearby-alt article { background:var(--paper) }.nearby-grid h3 { margin:.25rem 0 .65rem; font-family:var(--serif); font-size:1.7rem; font-weight:500; line-height:1.1 }.nearby-grid p:last-child { margin:0; color:#65756d }.distance { margin:0; color:var(--clay); font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase }

.gallery {
    padding-top: 135px
}

.section-heading {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    column-gap: 7vw;
    row-gap: 0;
    align-items: end;
    margin-bottom: 48px
}

.section-heading .eyebrow {
    grid-column: 1
}

.section-heading h2 {
    grid-column: 1;
    margin-top: -.1em
}

.section-heading>p {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: #5f6963
}

.gallery-grid {
    display: grid;
    grid-template-columns: 1.08fr .92fr .92fr;
    grid-template-rows: 280px 280px;
    gap: 18px
}

.gallery-item {
    margin: 0;
    overflow: hidden;
    background: #e2dfd7
}

.gallery-item img {
    transition: transform .5s ease
}

.gallery-item:hover img {
    transform: scale(1.04)
}

.item-1 {
    grid-row: span 2
}

.item-4 {
    grid-column: 2
}

.item-5 {
    grid-column: 3
}

.item-6 {
    display: none
}

.photo-ribbon {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 430px
}

.photo-ribbon article {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 430px;
    padding: 55px max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    overflow: hidden;
    background-image: linear-gradient(180deg, transparent 24%, #18261fca 100%), var(--ribbon-image);
    background-position: center;
    background-size: cover;
    color: #fff
}

.photo-ribbon article:first-child {
    padding-right: 4vw
}

.photo-ribbon article:last-child {
    padding-left: 4vw
}

.photo-ribbon article>div {
    position: relative;
    z-index: 1;
    max-width: 480px
}

.photo-ribbon .eyebrow {
    color: #dce7dc
}

.photo-ribbon h2 {
    margin: 0 0 .35rem;
    font-size: clamp(2.2rem, 3.2vw, 3.5rem)
}

.photo-ribbon p:last-child {
    max-width: 42ch;
    margin: 0;
    color: #edf1ed
}

.features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.7rem 2rem;
    background: var(--sage);
    color: #fff;
    padding: 80px max(5vw, calc((100vw - var(--content-max))/2 + 5vw))
}

.features-heading {
    grid-column: 1 / -1;
    max-width: 680px;
    margin-bottom: .5rem
}

.features-heading .eyebrow {
    color: #d6dfd7
}

.features-heading h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(2.5rem, 4vw, 4rem)
}

.features article {
    border-top: 1px solid #a1b1a9;
    padding-top: 18px;
    display: flex;
    gap: 1rem;
}

.features span {
    font-family: var(--mono);
    font-size: .7rem;
    color: #d6dfd7
}

.features h3 {
    font-family: var(--serif);
    font-size: 1.65rem;
    font-weight: 500;
    margin: .55rem 0
}

.features p {
    max-width: 270px;
    margin: 0;
    color: #e4eae5
}

.features .amenity-icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    padding: 11px;
    border-radius: 50%;
    background: #dce7dc;
    fill: none;
    stroke: #355247;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.features-link {
    grid-column: 1 / -1;
    justify-self: start;
    color: #fff;
    font-weight: 600;
    text-decoration-color: #a1b1a9;
    text-underline-offset: 6px
}

.features-link:hover {
    text-decoration-color: #fff
}

.location {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 8vw;
    align-items: center
}

.location-card p:not(.eyebrow) {
    max-width: 530px;
    color: #59665f;
    font-size: 1.05rem
}

.text-link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--sage);
    font-weight: 600;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px
}

.address {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
    padding: 1.35rem 1.5rem;
    background: #eee9df;
    text-align: left
}

.address svg {
    flex: 0 0 28px;
    width: 28px;
    fill: none;
    stroke: var(--clay);
    stroke-width: 1.7
}

.address p {
    margin: 0;
    line-height: 1.8
}

.contact {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 11vw;
    max-width: none;
    padding-right: max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    padding-left: max(5vw, calc((100vw - var(--content-max))/2 + 5vw));
    background: #eeece5
}

.contact>div>p:not(.eyebrow) {
    color: #5d6862;
    font-size: 1.08rem
}

.contact-email {
    display: inline-block;
    margin-top: 1rem;
    font-family: var(--serif);
    font-size: 1.7rem;
    color: var(--sage);
    text-underline-offset: 5px
}

.contact-phones {
    display: grid;
    justify-items: start;
    gap: .25rem;
    margin-top: 1.7rem
}

.contact-phones span {
    margin-bottom: .25rem;
    color: #65756d;
    font-family: var(--mono);
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase
}

.contact-phones a {
    color: var(--sage);
    font-family: var(--serif);
    font-size: 1.35rem;
    text-underline-offset: 4px
}

.contact-form {
    display: grid;
    gap: 1.1rem
}

.contact-form label {
    display: grid;
    gap: .4rem;
    font-size: .85rem;
    font-weight: 600
}

.contact-form input:not([type=checkbox]),
.contact-form textarea {
    width: 100%;
    border: 1px solid #c5c4bb;
    border-radius: 0;
    background: #fff;
    padding: .85rem;
    font: inherit
}

.contact-form textarea {
    min-height: 125px;
    resize: vertical
}

.contact-form input:focus,
.contact-form textarea:focus {
    outline: 2px solid var(--sage);
    outline-offset: 1px
}

.consent {
    grid-template-columns: 20px 1fr;
    align-items: start;
    font-size: .75rem !important;
    font-weight: 400 !important
}

.consent input {
    margin-top: 4px
}

.trap {
    position: absolute;
    left: -9999px
}

.form-message {
    margin: 0;
    padding: .8rem
}

.success {
    background: #d9eadb
}

.error {
    background: #f5d8d0
}

footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    max-width: var(--content-max);
    margin: auto;
    padding: 38px 5vw;
    color: #66746c;
    font-size: .78rem
}

footer p {
    margin: 0
}

.turnstile-widget {
    min-height: 65px
}

.turnstile-status {
    margin: -.45rem 0 0;
    color: #65756d;
    font-size: .78rem
}

.contact-form .button:disabled {
    cursor: wait;
    opacity: .55
}

.contact-form .button:disabled:hover {
    background: var(--sage);
    transform: none
}

.button-spinner {
    display: none;
    width: 1rem;
    height: 1rem;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: button-spin .7s linear infinite
}

.button.is-submitting .button-spinner {
    display: block
}

.button.is-submitting .button-arrow {
    display: none
}

@keyframes button-spin {
    to { transform: rotate(360deg) }
}

.privacy-hero .intro { max-width:760px }
.privacy-updated { margin:2rem 0 0; color:#65756d; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase }
.privacy-content { max-width:1120px; padding-top:90px }
.privacy-content>section { display:grid; grid-template-columns:80px minmax(0,760px); gap:2.5rem; justify-content:center; padding:0 0 70px; margin:0 0 70px; border-bottom:1px solid var(--line) }
.privacy-content>section:last-child { padding-bottom:0; margin-bottom:0; border-bottom:0 }
.privacy-number { margin:.55rem 0 0; color:var(--clay); font-family:var(--mono); font-size:.75rem; letter-spacing:.08em }
.privacy-content h2 { margin:0 0 1.4rem; font-size:clamp(2rem,3.4vw,3.2rem); line-height:1.08 }
.privacy-content h3 { margin:0 0 .45rem; font-family:var(--serif); font-size:1.35rem; font-weight:500 }
.privacy-content p { max-width:72ch }
.privacy-content li+li { margin-top:.55rem }
.privacy-content a { text-underline-offset:3px }
.privacy-purpose { padding:1.25rem 0; border-top:1px solid var(--line) }
.privacy-purpose:last-of-type { border-bottom:1px solid var(--line) }
.privacy-purpose p { margin:0; color:#59665f }
.privacy-contacts { margin:1.5rem 0; padding:1.25rem 1.5rem; background:var(--cream); list-style:none }

.error-page { min-height:calc(100vh - 245px); align-content:center }
.error-page .error-code { margin:0 0 .5rem; color:var(--clay); font-family:var(--mono); font-size:.8rem; letter-spacing:.2em }
.error-page .intro { max-width:650px }
.error-page .button { justify-self:start; margin-top:1.5rem }

@media(max-width:760px) {
    .site-header {
        padding: 20px 6vw
    }

    .menu-toggle {
        display: block;
        color: var(--sage);
        font-family: var(--mono);
        font-size: .72rem;
        text-transform: uppercase
    }

    nav {
        display: none;
        position: absolute;
        z-index: 5;
        top: 82px;
        right: 6vw;
        left: 6vw;
        padding: 1.4rem;
        background: #fff;
        box-shadow: 0 10px 35px #26382d22;
        flex-direction: column;
        align-items: stretch
    }

    nav.open {
        display: flex
    }

    .hero {
        grid-template-columns: 1fr;
        padding: 50px 6vw 80px;
        gap: 42px;
        min-height: 0
    }

    .hero:before {
        width: 95vw;
        height: 95vw;
        left: -45vw;
        top: -25vw
    }

    .hero h1 {
        font-size: 3.35rem
    }

    .hero-image {
        height: 360px;
        width: 82%;
        justify-self: end
    }

    .hero-note {
        bottom: 36px;
        right: 6vw
    }

    .section {
        padding: 80px 6vw
    }

    .story,
    .location,
    .contact {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .section-heading {
        display: block
    }

    .section-heading>p {
        margin-top: 1.4rem
    }

    .gallery {
        padding-top: 90px
    }

    .history-images { grid-template-columns:1fr 1fr; gap:10px }.history-images img { height:150px }
    .page-hero { padding-top:58px; padding-bottom:65px }
    .page-hero h1 { font-size:3.35rem }
    .service-section, .where-layout { grid-template-columns:1fr; gap:35px; padding-top:65px; padding-bottom:65px }
    .service-section-alt, .nearby-alt { padding-left:6vw; padding-right:6vw }
    .service-photos { grid-template-columns:1fr; gap:22px }
    .service-photos img { height:300px; min-height:300px }
    .service-details { grid-template-columns:1fr; gap:30px }
    .columns { columns:1 }
    .room-grid, .nearby-grid { grid-template-columns:1fr }
    .room-card>img { height:370px; min-height:370px }
    .booking-cta { padding:65px 6vw }
    .where-layout { padding-top:0 }
    .map-shell { min-height:360px }
    .city-distances { padding:65px 6vw }
    .city-distances-inner { grid-template-columns:1fr; gap:35px }
    .city-distances ul { grid-template-columns:1fr 1fr; gap:1.2rem }
    .nearby { padding-top:65px; padding-bottom:65px }
    .privacy-content { padding-top:65px }
    .privacy-content>section { grid-template-columns:1fr; gap:1rem; padding-bottom:50px; margin-bottom:50px }
    .privacy-number { margin:0 }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 240px 190px 190px;
        gap: 10px
    }

    .item-1 {
        grid-row: span 2
    }

    .item-3 {
        display: none
    }

    .item-4 {
        grid-column: 2
    }

    .item-5 {
        grid-column: 1 / span 2
    }

    .photo-ribbon {
        grid-template-columns: 1fr
    }

    .photo-ribbon article,
    .photo-ribbon article:first-child,
    .photo-ribbon article:last-child {
        min-height: 360px;
        padding: 45px 6vw
    }

    .features {
        grid-template-columns: 1fr;
        padding: 58px 6vw;
        gap: 2rem
    }

    .features-heading,
    .features-link {
        grid-column: auto
    }

    .address {
        padding: 40px 20px
    }

    footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
        padding: 32px 6vw
    }
}
