
:root{--ink:#263238;--muted:#667075;--paper:#fffdf9;--soft:#f3eee8;--accent:#9b3f34;--gold:#d69c62;--teal:#4c7c82;--shadow:0 18px 45px rgba(20,30,34,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}
img{max-width:100%;display:block}a{color:inherit}.site-header{height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,253,249,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid #eee}.brand img{width:225px;height:auto}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav a{text-decoration:none;font-weight:650}.nav-cta{background:var(--accent);color:white;padding:12px 18px;border-radius:999px}.menu-toggle{display:none;border:0;background:none;font-size:28px}
.hero{min-height:78vh;position:relative;display:flex;align-items:end;overflow:hidden}.hero-bg{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,19,22,.82),rgba(12,19,22,.25) 65%,rgba(12,19,22,.08))}.hero-content{position:relative;z-index:2;color:white;max-width:760px;padding:9vw 7vw}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem}.eyebrow.dark{color:var(--accent)}h1{font-size:clamp(2.7rem,6vw,5.8rem);line-height:1.02;margin:.3em 0}.hero-content>p:not(.eyebrow){font-size:1.2rem;max-width:630px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.button{display:inline-block;text-decoration:none;padding:14px 22px;border-radius:999px;font-weight:800}.primary{background:var(--accent);color:#fff}.ghost{border:1px solid rgba(255,255,255,.65);color:#fff;background:rgba(255,255,255,.08)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);max-width:920px;margin:-34px auto 0;position:relative;z-index:3;background:white;border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.facts div{text-align:center;padding:25px;border-right:1px solid #eee}.facts div:last-child{border-right:0}.facts strong{display:block;font-size:1.8rem}.facts span{color:var(--muted)}
.section{padding:100px 7vw}.section h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.1;margin:.25em 0 .5em}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.feature-image{height:520px;width:100%;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.soft{background:var(--soft)}.amenities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:35px}.amenities-grid article{background:white;padding:26px;border-radius:18px;box-shadow:0 8px 22px rgba(20,30,34,.06)}.amenities-grid span{font-size:1.1rem;font-weight:850}.amenities-grid p{color:var(--muted);margin-bottom:0}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:14px}.gallery button{border:0;padding:0;overflow:hidden;border-radius:18px;cursor:pointer;background:#ddd}.gallery img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery button:hover img{transform:scale(1.05)}.gallery button:first-child{grid-column:span 2;grid-row:span 2}

.reviews{background:#fff}
.reviews-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}
.rating-summary{min-width:190px;padding:22px 26px;background:var(--soft);border-radius:20px;text-align:center}
.rating-summary strong{display:block;font-size:2.4rem;line-height:1}
.rating-summary span{display:block;color:var(--accent);letter-spacing:.18em;margin:10px 0 4px}
.rating-summary small{color:var(--muted)}
.reviews-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.review-card{background:var(--soft);padding:28px;border-radius:20px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.review-card .stars{color:var(--accent);letter-spacing:.12em}
.review-card blockquote{font-size:1.22rem;line-height:1.5;margin:22px 0;font-weight:700}
.review-card p{margin:0;color:var(--muted);font-weight:700}
.reviews-link{text-align:center;margin-top:34px}
.button.outline{border:1px solid var(--accent);color:var(--accent);background:transparent}

.location{background:linear-gradient(110deg,rgba(38,50,56,.95),rgba(76,124,130,.84)),url('assets/images/backyard-night.jpg') center/cover;color:white}.location>div{max-width:700px}.location .button{margin-top:14px}.booking{display:flex;justify-content:space-between;gap:40px;align-items:center}.booking>div{max-width:700px}
footer{padding:50px 7vw;background:#1d292d;color:white;display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:30px}footer img{filter:brightness(0) invert(1);width:210px}footer a{color:white}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;place-items:center;z-index:100;padding:30px}.lightbox.open{display:grid}.lightbox img{max-height:88vh;max-width:92vw}.close{position:absolute;right:25px;top:15px;background:none;border:0;color:white;font-size:48px;cursor:pointer}
@media(max-width:900px){.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:82px;left:0;right:0;background:white;padding:24px 5vw;flex-direction:column;align-items:flex-start;box-shadow:var(--shadow)}.site-header nav.open{display:flex}.facts{margin:0;border-radius:0}.split{grid-template-columns:1fr}.amenities-grid{grid-template-columns:repeat(2,1fr)}.reviews-grid{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(2,1fr)}.booking{align-items:flex-start;flex-direction:column}footer{grid-template-columns:1fr}}
@media(max-width:560px){.brand img{width:185px}.hero{min-height:72vh}.hero-content{padding:90px 6vw 60px}.facts{grid-template-columns:repeat(2,1fr)}.facts div:nth-child(2){border-right:0}.section{padding:72px 6vw}.amenities-grid{grid-template-columns:1fr}.reviews-heading{align-items:flex-start;flex-direction:column}.rating-summary{width:100%}.reviews-grid{grid-template-columns:1fr}.gallery{grid-auto-rows:170px}.gallery button:first-child{grid-column:span 2;grid-row:span 1}.feature-image{height:380px}}
