:root {
    --location-ink: #173a2b;
    --location-green: #275e3e;
    --location-dark: #123426;
    --location-cream: #f4efe3;
    --location-paper: #fffdf8;
    --location-line: #d9e0da;
    --location-pink: #d23887;
    --location-pink-light: #f4a0c7;
}
.location-page h1,.location-page h2,.location-page h3 { text-transform: none; }
.location-eyebrow { margin: 0 0 .75rem; color: var(--location-pink-light); font-size: .71rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.location-eyebrow-dark { color: var(--location-green); }
.location-hero { position: relative; display: flex; align-items: flex-end; min-height: 560px; margin-bottom: 1.5rem; overflow: hidden; border-radius: .5rem; background: var(--location-dark); color: #fff; }
.location-hero > img,.location-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.location-hero > img { object-fit: cover; object-position: center 44%; }
.location-hero-shade { background: linear-gradient(90deg,rgba(8,36,24,.96),rgba(8,36,24,.72) 48%,rgba(8,36,24,.08) 82%); }
.location-hero-copy { position: relative; z-index: 1; max-width: 780px; padding: clamp(2.5rem,6vw,5rem); }
.location-hero h1 { max-width: 760px; margin: 0 0 1.2rem; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(3.1rem,6vw,5.6rem); line-height: .96; letter-spacing: -.045em; }
.location-hero-copy > p:not(.location-eyebrow) { max-width: 620px; color: #e5eee8; font-size: 1.15rem; line-height: 1.65; }
.location-hero-copy > div { display: flex; align-items: center; gap: 1.3rem; flex-wrap: wrap; }
.location-button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .88rem 1.2rem; border-radius: .28rem; font-weight: 700; }
.location-button:hover { text-decoration: none; transform: translateY(-1px); }
.location-button-gold { background: #fff; color: var(--location-dark); }
.location-button-gold:hover { background: var(--location-pink-light); color: var(--location-dark); }
.location-button-green { background: var(--location-green); color: #fff; }
.location-button-green:hover { background: var(--location-dark); color: #fff; }
.location-hero-link { padding-bottom: .25rem; border-bottom: 1px solid rgba(255,255,255,.65); color: #fff; font-weight: 700; }
.location-hero-link:hover { color: #fff; text-decoration: none; }
.location-visit { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(2.2rem,6vw,6rem); align-items: center; margin-bottom: 4rem; padding: clamp(2rem,5vw,4.5rem); border-radius: .5rem; background: var(--location-cream); }
.location-visit h2,.location-gallery h2,.location-offerings h2,.location-map h2,.location-story h2,.location-cta h2 { margin: 0 0 1rem; color: var(--location-ink); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.5rem,4.5vw,4.2rem); line-height: 1.03; letter-spacing: -.035em; }
.location-gallery h2,.location-offerings h2 { max-width: 100%; font-size: clamp(2.35rem,3.5vw,3.55rem); text-wrap: balance; }
.location-visit > div > p:last-child { margin: 0; color: #526258; line-height: 1.7; }
.location-info-card { padding: 1.8rem; border: 1px solid var(--location-line); border-top: 4px solid var(--location-green); border-radius: .4rem; background: var(--location-paper); box-shadow: 0 4px 18px rgba(20,48,35,.04); }
.location-info-card h2 { margin-bottom: 1rem; font-size: 1.6rem; letter-spacing: -.02em; }
.location-info-card address { margin: 0; color: #526159; font-style: normal; line-height: 1.6; }
.location-info-card dl { margin: 1.3rem 0; }
.location-info-card dl div { display: grid; grid-template-columns: 68px 1fr; padding: .8rem 0; border-top: 1px solid var(--location-line); }
.location-info-card dt { color: var(--location-ink); font-weight: 700; }
.location-info-card dd { margin: 0; }
.location-info-card a,.location-story a { color: var(--location-green); font-weight: 700; }
.location-gallery,.location-offerings { margin-bottom: 4.5rem; }
.location-gallery header,.location-offerings header { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--location-line); border-image: linear-gradient(90deg,#49b947 0 20%,var(--location-pink) 20% 30%,var(--location-line) 30%) 1; }
.location-gallery header > *,.location-offerings header > * { margin-bottom: 0; }
.location-gallery > div { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; gap: 1rem; }
.location-gallery figure { margin: 0; overflow: hidden; border-radius: .45rem; background: var(--location-dark); }
.location-gallery-wide { grid-column: 1 / -1; grid-row: span 2; }
.location-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.location-gallery figure:hover img { transform: scale(1.035); }
.location-offerings > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.location-offerings > div > a { display: flex; align-items: flex-start; flex-direction: column; padding: 1.7rem; border: 1px solid var(--location-line); border-radius: .4rem; background: var(--location-paper); color: #58665e; box-shadow: 0 4px 18px rgba(20,48,35,.04); transition: transform .2s,box-shadow .2s,border-color .2s; }
.location-offerings > div > a:hover { border-color: #b8cabb; color: #58665e; text-decoration: none; transform: translateY(-4px); box-shadow: 0 14px 32px rgba(20,48,35,.11); }
.location-offerings i { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-bottom: 1.1rem; border-radius: 50%; background: #e8f3e7; color: var(--location-green); }
.location-offerings h3 { margin: 0 0 .7rem; color: var(--location-ink); font-family: Georgia,"Times New Roman",serif; font-size: 1.7rem; line-height: 1.1; }
.location-offerings p { margin: 0; color: #58665e; line-height: 1.65; }
.location-offerings > div > a > strong { display: block; margin-top: auto; padding-top: 1.2rem; color: var(--location-green); font-size: .82rem; }
.location-story { display: grid; grid-template-columns: .95fr 1.05fr; margin-bottom: 4rem; overflow: hidden; border-radius: .5rem; background: var(--location-dark); color: #fff; }
.location-story > div { padding: clamp(2.5rem,6vw,5rem); }
.location-story h2 { color: #fff; }
.location-story h2 { font-size: clamp(2.4rem,3.5vw,3.4rem); text-wrap: balance; }
.location-story p:not(.location-eyebrow) { color: #d7e3db; line-height: 1.7; }
.location-story a { display: inline-block; margin-top: .7rem; color: var(--location-pink-light); }
.location-story img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.location-map { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(2rem,5vw,5rem); align-items: center; margin-bottom: 4rem; padding: clamp(2rem,5vw,4rem); border-radius: .5rem; background: var(--location-cream); }
.location-map p:not(.location-eyebrow) { color: #5d6962; line-height: 1.65; }
.location-map iframe { display: block; width: 100%; height: 420px; border: 0; border-radius: .4rem; box-shadow: 0 10px 30px rgba(24,57,43,.08); }
.location-cta { display: flex; align-items: center; justify-content: space-between; gap: 3rem; margin-bottom: 1rem; padding: clamp(2.5rem,6vw,5rem); border-radius: .5rem; background: var(--location-green); color: #fff; }
.location-cta h2 { margin-bottom: .7rem; color: #fff; }
.location-cta h2 { font-size: clamp(2.35rem,3.4vw,3.35rem); text-wrap: balance; }
.location-cta p:not(.location-eyebrow) { max-width: 650px; margin: 0; color: #e3ece6; }
.location-cta .location-button { flex: 0 0 auto; }
@media (max-width: 900px) {
    .location-visit,.location-map { grid-template-columns: 1fr; }
    .location-offerings > div { grid-template-columns: 1fr; }
    .location-story { grid-template-columns: 1fr; }
    .location-story img { min-height: 380px; }
}
@media (min-width: 1100px) {
    .location-gallery h2,.location-offerings h2 { font-size: 3.25rem; }
}
@media (max-width: 700px) {
    .location-gallery > div { grid-auto-rows: 260px; }
    .location-cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575px) {
    .location-hero { min-height: 570px; }
    .location-hero > img { object-position: 62% center; }
    .location-hero-shade { background: linear-gradient(0deg,rgba(8,36,24,.98),rgba(8,36,24,.68) 55%,rgba(8,36,24,.1)); }
    .location-hero-copy { padding: 2rem; }
    .location-visit,.location-map { padding: 1.5rem; }
    .location-gallery > div { grid-template-columns: 1fr; }
    .location-gallery-wide { grid-column: auto; grid-row: auto; }
    .location-story > div,.location-cta { padding: 2rem 1.5rem; }
    .location-map iframe { height: 320px; }
}
@media (prefers-reduced-motion: reduce) {
    .location-gallery img,.location-button,.location-offerings > div > a { transition: none; }
    .location-button:hover { transform: none; }
    .location-offerings > div > a:hover { transform: none; }
}
