:root{--ink:#172727;--forest:#173333;--cream:#f4f0e8;--paper:#fbfaf7;--gold:#d8b46a;--line:rgba(23,39,39,.16)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}
img{width:100%;height:100%;object-fit:cover;display:block}
a{color:inherit;text-decoration:none}
.site-header{height:86px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:12px;font:600 15px/1.1 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.brand em{display:block;font:500 10px/1.5 'DM Sans';letter-spacing:.22em;color:#607070}
.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--ink);color:var(--gold);clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);font:700 17px Manrope}
.site-header nav{display:flex;align-items:center;gap:30px;font-size:14px}
.site-header nav a:not(.nav-cta){border-bottom:1px solid transparent}
.site-header nav a:hover{border-color:currentColor}
.nav-cta{background:var(--ink);color:white;padding:12px 19px}
.menu-button{display:none;background:none;border:1px solid var(--ink);padding:8px 12px}
.hero{height:calc(100svh - 86px);min-height:650px;position:relative;color:#fff}
.hero>img{position:absolute;inset:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,17,.72) 0,rgba(5,18,17,.18) 66%,transparent),linear-gradient(0deg,rgba(5,18,17,.5),transparent 42%)}
.hero-content{position:absolute;left:8vw;top:49%;transform:translateY(-50%);max-width:850px}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font:600 12px/1.4 Manrope;color:#6b7b78;margin:0 0 22px}
.eyebrow.light{color:#e4d9c2}
.hero h1,.intro h2,.feature-card h2,.section-heading h2,.location h2,.booking h2{font:600 clamp(2.7rem,6vw,6.1rem)/.98 Manrope,sans-serif;letter-spacing:-.055em;margin:0}
.hero-content>p:not(.eyebrow){font-size:19px;max-width:560px;margin:28px 0 36px;color:rgba(255,255,255,.86)}
.hero-actions{display:flex;align-items:center;gap:28px}
.button{display:inline-block;padding:15px 24px;font:600 14px Manrope}
.button.gold{background:var(--gold);color:var(--ink)}
.text-link{font-size:14px;border-bottom:1px solid rgba(255,255,255,.5);padding:10px 0}
.quick-facts{position:absolute;right:4.5vw;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--paper);color:var(--ink);padding:25px 32px;gap:30px}
.quick-facts span{font-size:12px;color:#697573;white-space:nowrap}
.quick-facts strong{display:block;font:600 22px Manrope;color:var(--ink)}
.section{padding:120px 8vw}
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:11vw;align-items:end}
.intro h2,.section-heading h2,.feature-card h2,.booking h2{font-size:clamp(2.7rem,4.8vw,5.1rem)}
.intro-copy{font-size:18px;color:#586562}
.intro-copy p:last-child{margin-bottom:0}
.feature-grid{display:grid;grid-template-columns:1fr 1fr}
.feature-photo{height:510px;margin:0}
.feature-photo.tall{height:650px}
.feature-card{padding:8vw;display:flex;flex-direction:column;justify-content:center;background:var(--cream)}
.feature-card p:last-child{font-size:18px;color:#596763;max-width:500px;margin-top:27px}
.feature-card.dark{background:var(--forest);color:#fff}
.feature-card.dark p:last-child{color:#c8d3d0}
.section-heading{display:grid;grid-template-columns:1.35fr .65fr;gap:10vw;align-items:end}
.section-heading>p{font-size:18px;color:#596763}
.amenity-list{display:grid;grid-template-columns:repeat(4,1fr);margin-top:80px;border-top:1px solid var(--line)}
.amenity-list article{padding:35px 28px 25px 0;border-right:1px solid var(--line)}
.amenity-list article+article{padding-left:28px}
.amenity-list article:last-child{border-right:0}
.amenity-list span{color:#9a8459;font:600 12px Manrope}
.amenity-list h3{font:600 20px Manrope;margin:30px 0 10px}
.amenity-list p{color:#64706d;margin:0;font-size:15px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:350px;gap:8px;padding:8px}
.gallery figure{margin:0;overflow:hidden}
.gallery figure.wide{grid-column:span 2}
.gallery img{transition:transform .7s ease}
.gallery figure:hover img{transform:scale(1.025)}
.location{background:var(--forest);color:#fff;display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center}
.location-image{height:620px}
.location-copy p:not(.eyebrow){font-size:18px;color:#c3cfcc;margin:30px 0}
.location-copy ul{list-style:none;padding:25px 0 0;margin:0;border-top:1px solid rgba(255,255,255,.18);display:flex;gap:30px;flex-wrap:wrap;color:#d8b46a;font-size:14px}
.faq{background:var(--paper)}
.faq-heading{margin-bottom:55px}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line);padding:0 4px}
.faq-list summary{cursor:pointer;list-style:none;padding:27px 52px 27px 0;position:relative;font:600 19px Manrope}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';position:absolute;right:5px;top:22px;font:400 28px/1 Manrope;color:#8a754c}
.faq-list details[open] summary::after{content:'−'}
.faq-list details p{max-width:820px;margin:0;padding:0 52px 28px 0;color:#596763;font-size:17px}
.booking{text-align:center;background:var(--cream)}
.booking p:not(.eyebrow){max-width:580px;margin:28px auto;color:#596763;font-size:18px}
.dark-button{background:var(--ink);color:#fff;margin-top:12px}
.booking-actions{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap}
.phone-link{margin-top:12px;padding:13px 0 10px;border-bottom:1px solid #8a754c;font:600 14px Manrope;color:#715f3d}
footer{background:#102322;color:#fff;padding:55px 5vw;display:flex;justify-content:space-between;align-items:center;gap:35px;font-size:13px}
footer p{color:#9fb0ac}
.footer-brand .brand-mark{background:var(--gold);color:var(--ink)}
.footer-brand em{color:#9fb0ac}
.footer-links{display:flex;align-items:center;gap:24px}
.footer-links a{border-bottom:1px solid #637875}
@media(max-width:900px){.site-header{height:72px;padding:0 20px}
.menu-button{display:block}
.site-header nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;align-items:flex-start;box-shadow:0 12px 20px rgba(0,0,0,.1)}
.site-header nav.open{display:flex}
.hero{height:760px;min-height:0}
.hero-content{left:25px;right:25px;top:42%}
.hero h1{font-size:clamp(2.8rem,12vw,4.6rem)}
.hero-content>p:not(.eyebrow){font-size:17px}
.quick-facts{left:16px;right:16px;bottom:16px;grid-template-columns:1fr 1fr;padding:18px 22px;gap:14px}
.section{padding:85px 25px}
.intro,.section-heading,.location{grid-template-columns:1fr;gap:45px}
.feature-grid{grid-template-columns:1fr}
.feature-photo,.feature-photo.tall{height:420px}
.feature-card{min-height:440px;padding:70px 25px}
.feature-grid .feature-photo:nth-of-type(2){order:4}
.amenity-list{grid-template-columns:1fr 1fr}
.amenity-list article:nth-child(2){border-right:0}
.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:260px}
.gallery .wide{grid-column:span 2}
.location-image{height:440px}
.location-copy{padding-bottom:10px}
footer{flex-direction:column;align-items:flex-start}
.footer-links{flex-wrap:wrap}
}
@media(max-width:560px){.brand{font-size:12px}
.hero-actions{align-items:flex-start;flex-direction:column;gap:8px}
.quick-facts{grid-template-columns:repeat(2,1fr)}
.amenity-list{grid-template-columns:1fr}
.amenity-list article,.amenity-list article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--line)}
.gallery{grid-template-columns:1fr;grid-auto-rows:270px}
.gallery figure.wide{grid-column:auto}
.location-image{height:340px}
.location-copy h2{font-size:2.8rem}
}

.rooms{padding-top:85px}
.rooms-heading{margin-bottom:58px}
.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.room-card{margin:0;background:var(--cream)}
.room-card img{height:420px}
.room-card.portrait-photo img{object-position:center 42%}
.room-card figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:23px 25px}
.room-card strong{font:600 18px Manrope}
.room-card span{font-size:14px;color:#697573}
.games-showcase{display:grid;grid-template-columns:1.18fr .82fr;margin-top:70px;background:var(--forest);color:#fff}
.games-showcase figure{height:520px;margin:0}
.games-showcase>div{padding:7vw;display:flex;flex-direction:column;justify-content:center}
.games-showcase h3{font:600 clamp(2.5rem,4vw,4.5rem)/1 Manrope;margin:0;letter-spacing:-.05em}
.games-showcase p:last-child{font-size:18px;color:#c8d3d0;margin:28px 0 0}
@media(max-width:900px){
  .room-card img{height:340px}
  .room-card figcaption{align-items:flex-start;flex-direction:column;gap:4px}
  .games-showcase{grid-template-columns:1fr}
  .games-showcase figure{height:440px}
  .games-showcase>div{padding:70px 30px}
}
@media(max-width:560px){
  .room-grid{grid-template-columns:1fr}
  .room-card img{height:285px}
  .games-showcase{margin-top:45px}
  .games-showcase figure{height:310px}
}

.reviews{background:var(--paper)}
.reviews-heading{margin-bottom:55px}
.review-ratings{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}
.review-ratings a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:28px 30px}
.review-ratings a:first-child{border-right:1px solid var(--line)}
.review-ratings strong{font:600 34px Manrope;color:var(--ink)}
.review-ratings span{font-size:15px;color:#64706d}
.review-ratings em{font-style:normal;font-size:13px;color:#8a754c;border-bottom:1px solid #c7aa70}
.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.review-card{min-height:310px;background:var(--cream);padding:38px;display:flex;flex-direction:column}
.stars{color:#a98643;letter-spacing:.13em;font-size:14px}
.review-card blockquote{font:500 clamp(1.45rem,2vw,2rem)/1.35 Manrope;margin:32px 0;letter-spacing:-.025em}
.review-card p{margin:auto 0 0;display:flex;justify-content:space-between;align-items:baseline;gap:15px}
.review-card p strong{font:600 14px Manrope}
.review-card p span{font-size:13px;color:#697573;text-align:right}
@media(max-width:900px){
  .review-ratings a{grid-template-columns:1fr;gap:2px;padding:25px}
  .review-ratings em{margin-top:10px;width:max-content}
}
@media(max-width:650px){
  .review-ratings,.review-grid{grid-template-columns:1fr}
  .review-ratings a:first-child{border-right:0;border-bottom:1px solid var(--line)}
  .review-card{min-height:275px;padding:30px 25px}
  .review-card p{align-items:flex-start;flex-direction:column;gap:3px}
  .review-card p span{text-align:left}
}
