@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root{
  --green:#18382f;--green2:#264b40;--sage:#dfe9e5;--cream:#f6f1e7;
  --sand:#e7d7bb;--ink:#17221f;--muted:#5e6965;--white:#fff;
  --radius:22px;--shadow:0 18px 60px rgba(16,45,37,.13)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:"DM Sans",system-ui,sans-serif;line-height:1.65}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-80px;background:#fff;padding:12px 18px;z-index:99;border-radius:8px}
.skip-link:focus{top:16px}
.site-header{position:absolute;z-index:20;left:0;right:0;top:0;color:#fff}
.nav-wrap{height:94px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}
.brand img{filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}
.brand span{display:grid;line-height:1.2}
.brand strong{font-family:"Playfair Display",serif;font-size:1.35rem}
.brand small{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;opacity:.78}
.main-nav{display:flex;align-items:center;gap:28px;font-weight:600;font-size:.94rem}
.main-nav a{opacity:.88}
.main-nav a:hover{opacity:1}
.nav-cta{border:1px solid rgba(255,255,255,.5);padding:10px 17px;border-radius:99px}
.menu-btn{display:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:99px;padding:8px 14px}
.hero{min-height:760px;height:92vh;max-height:930px;position:relative;display:grid;align-items:center;color:#fff;overflow:hidden}
.hero-art,.hero-overlay{position:absolute;inset:0}
.hero-art svg{width:100%;height:100%}
.hero-overlay{background:linear-gradient(90deg,rgba(8,29,24,.86) 0%,rgba(8,29,24,.55) 52%,rgba(8,29,24,.12) 100%),linear-gradient(0deg,rgba(8,29,24,.25),transparent 40%)}
.hero-content{position:relative;z-index:2;padding-top:70px}
.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.17em;font-size:.74rem;font-weight:700;color:#9bc1b4;margin:0 0 14px}
.hero h1,.section h2{font-family:"Playfair Display",serif;line-height:1.08;margin:0}
.hero h1{font-size:clamp(3.2rem,7vw,6.4rem);max-width:900px}
.hero-lead{font-size:1.08rem;max-width:650px;color:rgba(255,255,255,.85);margin:25px 0 30px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap}
.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:999px;padding:14px 22px;font-weight:700;cursor:pointer}
.btn-primary{background:#d7b777;color:#142a24}
.btn-primary:hover{background:#e5c98f;transform:translateY(-1px)}
.btn-ghost{border:1px solid rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(5px)}
.hero-points{display:flex;gap:28px;flex-wrap:wrap;list-style:none;padding:0;margin:36px 0 0;color:rgba(255,255,255,.8);font-size:.92rem}
.hero-points li:before{content:"✓";color:#d7b777;margin-right:8px;font-weight:bold}
.scroll-cue{position:absolute;z-index:3;bottom:27px;left:50%;font-size:1.6rem;opacity:.75;animation:bob 1.7s infinite}
@keyframes bob{50%{transform:translateY(7px)}}
.section{padding:110px 0}
.section h2{font-size:clamp(2.2rem,4vw,4rem)}
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:95px;align-items:start}
.prose{font-size:1.08rem;color:var(--muted)}
.prose p:first-child{margin-top:0}
.rooms{background:var(--cream)}
.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:44px}
.section-head>p{max-width:430px;color:var(--muted);margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 24px rgba(27,48,42,.06);border:1px solid rgba(24,56,47,.08);position:relative}
.card.featured{transform:translateY(-12px);box-shadow:var(--shadow)}
.room-visual{height:230px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(150deg,#dce8e3,#92aa9f)}
.room-visual:before,.room-visual:after{content:"";position:absolute;border-radius:50%}
.room-visual:before{width:220px;height:220px;background:rgba(255,255,255,.24);right:-50px;top:-80px}
.room-visual:after{width:180px;height:180px;background:rgba(24,56,47,.15);left:-70px;bottom:-90px}
.room-visual span{font-family:"Playfair Display",serif;font-size:7rem;color:#fff;text-shadow:0 8px 25px rgba(0,0,0,.15)}
.room-3{background:linear-gradient(150deg,#d7c298,#7c5f38)}
.room-4{background:linear-gradient(150deg,#cfdde3,#6d8792)}
.card-body{padding:28px}
.card h3{font-family:"Playfair Display",serif;font-size:1.55rem;margin:0 0 12px}
.card p{color:var(--muted)}
.card ul{padding-left:20px;margin:20px 0 0}
.badge{display:inline-block!important;margin:-45px 0 18px!important;background:#d7b777;color:#18382f!important;border-radius:99px;padding:7px 12px;font-size:.72rem;font-weight:700;position:relative}
.price-note{margin-top:30px;background:var(--green);color:#fff;border-radius:18px;padding:22px 28px;display:flex;align-items:center;gap:25px}
.price-note span{color:rgba(255,255,255,.75);flex:1}
.price-note a{font-weight:700;color:#e6ca91}
.amenities{background:#fff}
.amenity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#dfe6e2;border:1px solid #dfe6e2;border-radius:var(--radius);overflow:hidden;margin-top:45px}
.amenity{background:#fff;padding:35px}
.amenity>span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sage);font-size:1.25rem}
.amenity h3{margin:18px 0 7px}
.amenity p{margin:0;color:var(--muted)}
.local{background:var(--sage)}
.local-grid{display:grid;grid-template-columns:1fr .9fr;gap:80px;align-items:center}
.local-copy>p:not(.section-kicker){color:var(--muted);font-size:1.06rem}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}
.chips span{background:rgba(255,255,255,.65);padding:8px 13px;border-radius:99px;font-size:.84rem}
.text-link{font-weight:700;color:var(--green2)}
.mountain-card svg{box-shadow:var(--shadow);border-radius:24px}
.contact{background:var(--green);color:#fff}
.light{color:#d7b777}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.contact-grid>div>p:not(.section-kicker){color:rgba(255,255,255,.72);max-width:500px}
.contact-list{display:grid;gap:18px;margin-top:35px}
.contact-list a{display:grid}
.contact-list small{color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}
.contact-list strong{font-size:1.15rem}
.contact-form{background:#fff;color:var(--ink);padding:34px;border-radius:var(--radius);display:grid;gap:16px;box-shadow:var(--shadow)}
.contact-form label{display:grid;gap:7px;font-size:.84rem;font-weight:700}
.contact-form input,.contact-form textarea{border:1px solid #d8dfdc;border-radius:11px;padding:12px 13px;background:#fbfcfb;width:100%}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #8eafa3;border-color:transparent}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important;color:var(--muted)}
.consent input{width:auto}
.wide{width:100%}
.form-note{font-size:.75rem;color:var(--muted);margin:0}
.hp{position:absolute!important;left:-9999px!important}
.footer{background:#102a23;color:rgba(255,255,255,.7);padding:32px 0;font-size:.84rem}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}
.footer-brand{color:#fff}

@media(max-width:860px){
  .menu-btn{display:block}
  .main-nav{display:none;position:absolute;top:78px;left:20px;right:20px;background:#fff;color:var(--ink);padding:18px;border-radius:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:4px}
  .main-nav.open{display:flex}
  .main-nav a{padding:10px 12px}.nav-cta{border-color:#dfe6e2}
  .split,.local-grid,.contact-grid{grid-template-columns:1fr;gap:45px}
  .cards{grid-template-columns:1fr}.card.featured{transform:none}
  .amenity-grid{grid-template-columns:1fr 1fr}
  .section-head{display:block}.section-head>p{margin-top:18px}
  .hero{min-height:720px}.hero h1{font-size:clamp(3rem,12vw,5rem)}
}
@media(max-width:560px){
  .container{width:min(100% - 28px,1160px)}
  .section{padding:78px 0}
  .hero-actions,.price-note,.footer-inner{align-items:stretch;flex-direction:column}
  .hero-points{gap:10px 18px}
  .amenity-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .contact-form{padding:22px}
  .brand strong{font-size:1.15rem}
}
.hero-art picture,.hero-art img{width:100%;height:100%;display:block}
.hero-art img{object-fit:cover;object-position:center}
.room-photo{display:block;height:230px;overflow:hidden;background:#dfe9e5}
.room-photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.room-photo:hover img{transform:scale(1.035)}
.mountain-card img{width:100%;aspect-ratio:6/5;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}
.gallery-section{background:#fff}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.gallery-grid a{display:block;overflow:hidden;border-radius:16px;background:#dfe9e5}
.gallery-grid .gallery-main{grid-column:span 2;grid-row:span 2}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.gallery-grid a:hover img{transform:scale(1.035)}
.lightbox{position:fixed;inset:0;background:rgba(7,18,15,.94);z-index:200;display:grid;place-items:center;padding:30px;cursor:zoom-out}
.lightbox img{max-width:min(1200px,96vw);max-height:90vh;object-fit:contain;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.lightbox button{position:absolute;top:18px;right:22px;border:0;background:rgba(255,255,255,.12);color:#fff;width:46px;height:46px;border-radius:50%;font-size:30px;cursor:pointer}
@media(max-width:860px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}.gallery-grid .gallery-main{grid-column:span 2}}
@media(max-width:560px){.gallery-grid{grid-auto-rows:150px;gap:8px}.gallery-grid a{border-radius:11px}}
