:root{
  --bg:#f8f6f1;--paper:#fff;--text:#1d2824;--muted:#68726e;--accent:#2f5d50;
  --accent-dark:#193b33;--line:#dfe4df;--soft:#eef2ed;--blocked:#e9e9e7;
  --radius:22px;--shadow:0 18px 50px rgba(29,40,36,.09)
}
*{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;background:var(--bg);color:var(--text);line-height:1.55}
a{color:inherit;text-decoration:none}.wrap{width:min(1120px,calc(100% - 40px));margin:0 auto}
.hero{padding-bottom:76px;background:linear-gradient(180deg,#edf1ea 0%,#f8f6f1 100%)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:24px 0}.brand{font-weight:800;letter-spacing:-.02em}
.nav-links{display:flex;gap:26px;font-size:.95rem;color:var(--muted)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-top:44px}
.hero-copy h1,.section-heading h2,.booking-grid h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em;line-height:1.05;margin:.35rem 0 1rem}
.hero-copy h1{font-size:clamp(3.25rem,7vw,6.4rem);max-width:760px}.hero-copy p{font-size:1.12rem;color:var(--muted);max-width:650px}
.eyebrow{font-size:.76rem;font-weight:800;letter-spacing:.18em;color:var(--accent)}
.hero-actions{display:flex;gap:12px;margin:28px 0}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:14px 20px;font-weight:800;cursor:pointer;font-size:.98rem}
.button.primary{background:var(--accent);color:#fff}.button.primary:disabled{opacity:.45;cursor:not-allowed}.button.secondary{background:transparent;border:1px solid var(--line)}.button.dark{background:var(--text);color:#fff}.button.full{width:100%;border-radius:14px}
.quick-facts{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.photo-placeholder{min-height:560px;border-radius:34px;background:linear-gradient(145deg,#789083,#b3b8a7);display:flex;align-items:flex-end;padding:30px;color:#fff;box-shadow:var(--shadow);overflow:hidden;position:relative}
.photo-placeholder:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(12,31,25,.58))}.photo-placeholder div{position:relative;z-index:1}.photo-placeholder strong{display:block;font-size:1.25rem}.photo-placeholder small{opacity:.8}
.section{padding:96px 0}.section.soft{background:var(--soft)}.section-heading{max-width:820px}.section-heading h2,.booking-grid h2{font-size:clamp(2.4rem,5vw,4.25rem)}.section-heading p,.booking-grid p{color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.card,.sleep-card,.rating-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.card h3{margin:.7rem 0 .5rem}.card p{color:var(--muted);margin:0}.icon{font-size:1.8rem}
.sleep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}.sleep-card span{color:var(--muted);font-size:.85rem}.sleep-card h3{margin:.5rem 0 0}
.amenities{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}.amenities span{background:#fff;border:1px solid var(--line);padding:18px;border-radius:14px}
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rating-card{display:flex;gap:22px;align-items:center}.rating-number{font-family:Georgia,serif;font-size:3rem;font-weight:700}.rating-card p{margin:.25rem 0 0;color:var(--muted)}
.booking-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:62px;align-items:start}.notice{margin-top:26px;padding:18px 20px;background:#edf4f0;border-left:4px solid var(--accent);border-radius:0 14px 14px 0}
.booking-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow)}
.calendar-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.calendar-header small{display:block;color:var(--muted);margin-top:3px}.calendar-nav{display:flex;gap:8px}.calendar-nav button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.4rem;cursor:pointer}
.calendar{display:grid;grid-template-columns:1fr 1fr;gap:18px}.month{border:1px solid var(--line);border-radius:16px;padding:14px}.month-title{text-align:center;font-weight:800;margin-bottom:10px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays span{font-size:.7rem;text-align:center;color:var(--muted);padding:5px 0}.day{aspect-ratio:1;border:0;background:transparent;border-radius:50%;cursor:pointer;font:inherit;font-size:.85rem}.day:hover:not(:disabled){background:#edf4f0}.day:disabled{color:#b7bbb8;cursor:not-allowed;text-decoration:line-through}.day.in-range{background:#e3eee9;border-radius:8px}.day.selected{background:var(--accent);color:#fff}.day.empty{visibility:hidden}
.selected-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.selected-dates div{border:1px solid var(--line);border-radius:12px;padding:12px}.selected-dates span,.selected-dates strong{display:block}.selected-dates span{font-size:.75rem;color:var(--muted)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:.88rem;font-weight:750;margin-bottom:14px}input,select{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:12px;padding:13px 12px;font:inherit;background:#fff;color:var(--text)}
.quote,.guest-details{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.quote-row{display:flex;justify-content:space-between;gap:20px;padding:8px 0}.quote-row.total{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);font-size:1.28rem;font-weight:900}.quote-row small{color:var(--muted)}.hidden{display:none!important}.fineprint{font-size:.78rem!important;color:var(--muted)!important}.guest-details h3{margin-top:0}.checkbox{display:flex;gap:10px;align-items:flex-start;font-weight:500}.checkbox input{width:auto;margin-top:4px}
.policy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px}.policy-grid div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.policy-grid strong,.policy-grid span{display:block}.policy-grid span{color:var(--muted);margin-top:4px}
footer{padding:48px 0;background:var(--text);color:#fff}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer-grid p{color:#b9c1bd;margin:.4rem 0}.footer-note{max-width:520px}
@media(max-width:900px){.calendar{grid-template-columns:1fr}.calendar .month:nth-child(2){display:none}}
@media(max-width:820px){.nav-links{display:none}.hero-grid,.booking-grid{grid-template-columns:1fr}.photo-placeholder{min-height:420px}.feature-grid,.sleep-grid,.trust-grid{grid-template-columns:1fr}.amenities,.policy-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.wrap{width:min(100% - 24px,1120px)}.field-grid,.amenities,.policy-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column}.footer-grid{display:block}}

.hero-photo-wrap{min-height:560px;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);background:#ddd}
.hero-photo{width:100%;height:560px;object-fit:cover;display:block}
.photo-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:240px 240px;gap:10px;margin-top:34px}
.photo-grid img{width:100%;height:100%;object-fit:cover;border-radius:16px;display:block}
.photo-grid .photo-large{grid-row:1 / span 2}
.photo-note{font-size:.8rem;color:var(--muted);margin-top:12px}
@media(max-width:820px){
  .hero-photo-wrap,.hero-photo{min-height:420px;height:420px}
  .photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:280px 180px 180px}
  .photo-grid .photo-large{grid-column:1 / span 2;grid-row:auto}
}
@media(max-width:520px){
  .photo-grid{display:block}
  .photo-grid img{height:240px;margin-bottom:10px}
  .photo-grid .photo-large{height:300px}
}
