:root{--bg:#fff;--text:#1a1a1a;--soft:#f9f6f3;--accent:#d16806;--muted:#f4e2d8}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Sora',sans-serif}a{text-decoration:none;color:inherit}
.wrap{width:min(1650px,92vw);margin:0 auto}.top-info{display:flex;gap:60px;padding:8px 0;font-size:14px}.top-header{background:var(--soft);border-bottom:1px solid #ececec}.nav{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.brand{font-family:'Cormorant Upright',serif;font-size:42px;letter-spacing:1px;text-transform:uppercase}.menu{display:flex;gap:26px;text-transform:capitalize}
.hero{position:relative;margin-top:30px;display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.hero figure{margin:0;border-radius:20px;overflow:hidden;grid-column:1/2}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero-content{position:absolute;left:6%;top:20%;max-width:620px}.hero h1{font:400 72px/1.05 'Cormorant Upright',serif;margin:0 0 20px}.btn,button{background:var(--soft);padding:14px 24px;border-radius:9px;border:1px solid #e4e4e4;cursor:pointer}.availability{background:#fff;padding:30px;border-radius:20px;box-shadow:0 10px 40px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:10px}
h2{font:400 56px/1.1 'Cormorant Upright',serif;text-align:center;margin:120px 0 20px}.about p,.generic p,.long-copy{color:#353535;line-height:1.6;letter-spacing:.3px}.gallery-three,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-three figure,.cards figure{margin:0;border-radius:18px;overflow:hidden}.cards img,.gallery-three img{width:100%;height:100%;object-fit:cover;display:block}.cards article{border:1px solid var(--muted);padding:18px;border-radius:20px}
.footer{margin-top:120px;padding:70px 0;background:var(--soft)}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.5fr;gap:20px}.footer a{display:block;margin:8px 0}.newsletter input{display:block;width:100%;margin:8px 0;padding:12px;border:1px solid #ddd;border-radius:8px}.copyright{text-align:center;margin:40px 0 0}.form-message{font-size:14px;color:var(--accent);min-height:20px}.generic{padding:60px 0;max-width:960px}
@media(max-width:1100px){.hero{grid-template-columns:1fr}.hero-content{position:static;padding:20px 0}.hero h1{font-size:52px}.footer-grid,.gallery-three,.cards,.menu{grid-template-columns:1fr;display:grid}.menu{gap:10px}}
