:root{--forest:#173b32;--deep:#102d27;--cream:#f4f0e7;--sand:#d9c6a7;--ink:#1c2924;--muted:#778078;--line:#d9ddd5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}a{text-decoration:none;color:inherit}.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:var(--cream);position:relative;z-index:5}.brand{display:flex;gap:11px;align-items:center;font-size:11px;line-height:1.05;letter-spacing:2px;font-weight:700}.brand em{font-style:normal;font-weight:400;letter-spacing:3.5px}.brand-mark{width:30px;height:30px;border:1px solid var(--forest);border-radius:50%;display:grid;place-items:center;color:var(--forest);font:600 10px 'Playfair Display'}.nav{display:flex;gap:34px;font-size:13px;color:#53625a}.nav a:hover,.text-link:hover{color:var(--forest)}.button{display:inline-flex;align-items:center;gap:20px;border:1px solid transparent;padding:15px 21px;font-size:12px;letter-spacing:.2px;transition:.25s}.button span,.text-link span{font-size:17px;line-height:0}.button-small{padding:12px 16px;border-color:#b9c2b8}.button:hover{transform:translateY(-2px)}.button-light{background:var(--cream);color:var(--forest)}.button-dark{background:var(--forest);color:var(--cream)}.menu-toggle{display:none;background:none;border:0;font-size:23px}.hero{height:calc(100vh - 84px);min-height:600px;position:relative;color:var(--cream);display:flex;align-items:center}.hero-image{position:absolute;inset:0;background:url('assets/villa-exterior.jpeg') center 52%/cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,37,31,.82),rgba(14,37,31,.22) 64%,rgba(14,37,31,.12))}.hero-content{position:relative;margin-left:10vw;max-width:570px}.eyebrow{text-transform:uppercase;letter-spacing:3px;color:#8c9a8d;font-size:10px;margin:0 0 21px;font-weight:600}.eyebrow.light{color:#d3d9ce}.hero h1,h2{font:500 clamp(44px,6vw,78px)/1.02 'Playfair Display',serif;letter-spacing:-2px;margin:0}.hero h1 i,h2 i{font-weight:500;color:var(--sand)}.hero-copy{max-width:380px;color:#d9ded7;line-height:1.7;font-size:15px;margin:28px 0 32px}.hero-note{position:absolute;right:6vw;bottom:45px;font-size:11px;letter-spacing:1px;line-height:1.7;text-align:right;color:#d7ded6}.hero-note small{color:#aab9ad}.section-grid{padding:125px 10vw;display:grid;grid-template-columns:1fr 1fr;gap:9vw}.intro{background:var(--cream)}h2{font-size:clamp(40px,5vw,64px);color:var(--forest)}.intro-text{align-self:end;max-width:390px;margin-bottom:7px}.intro-text p,.gallery-copy>p,.location-card>p,.booking-copy>p{font-size:15px;line-height:1.8;color:#6e7971;margin:0 0 27px}.text-link{display:inline-flex;align-items:center;gap:17px;color:var(--forest);font-size:12px;border-bottom:1px solid #aebcaf;padding-bottom:8px}.section-dark{background:var(--forest);color:var(--cream)}.rooms{padding:115px 10vw}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:54px}.section-heading h2{color:var(--cream)}.section-heading h2 i{color:var(--sand)}.heading-copy{max-width:275px;line-height:1.7;font-size:13px;color:#bdc9be;margin:0}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.room-card{min-width:0}.room-card img{height:285px;width:100%;object-fit:cover;display:block}.room-card-tall img{height:365px}.room-caption{display:flex;gap:20px;padding-top:18px}.room-caption>span{font-size:10px;color:#9dae9e}.room-caption h3{font:500 22px 'Playfair Display';margin:0 0 5px}.room-caption p{font-size:11px;color:#aebbae;margin:0}.gallery{align-items:center}.gallery-copy{max-width:390px}.gallery-copy h2{margin-bottom:29px}.gallery-images{display:grid;grid-template-columns:1.35fr .75fr;gap:16px;align-items:end}.gallery-images img{width:100%;height:220px;object-fit:cover}.gallery-images .gallery-main{height:450px}.location{display:grid;grid-template-columns:1fr 1fr;min-height:500px;background:#e4dfd2}.location-card{padding:105px 10vw;max-width:620px}.location-card h2{font-size:clamp(38px,4vw,56px);margin-bottom:25px}.map-art{background:linear-gradient(135deg,#b9c5b6,#899f8b);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--cream);font:28px 'Playfair Display';background-image:radial-gradient(#e7ede3 1px,transparent 1px),linear-gradient(135deg,#b9c5b6,#78927e);background-size:25px 25px,auto}.map-art small{font:11px 'DM Sans';letter-spacing:2px;margin-top:9px;text-transform:uppercase}.map-pin{font-size:40px;color:#e3c797;margin-bottom:15px}.booking{padding:115px 10vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.booking h2{color:var(--cream);font-size:clamp(42px,5vw,65px);margin-bottom:26px}.booking-copy>p{color:#becabe;max-width:370px}.booking-form{background:#244940;padding:32px;display:grid;gap:18px}.booking-form label{font-size:11px;color:#c9d4c8;display:grid;gap:8px}.booking-form input,.booking-form select,.booking-form textarea{font:14px 'DM Sans';color:var(--cream);background:transparent;border:0;border-bottom:1px solid #638074;padding:7px 0;outline:0;width:100%;resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--sand)}.booking-form select option{color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.optional,.form-note{color:#8ea89a;font-size:10px}.button-submit{border:0;justify-content:space-between;cursor:pointer;margin-top:5px}.form-note{margin:0}.footer{background:#102d27;color:#cdd6cc;padding:72px 10vw 45px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px;border-top:1px solid #35574d}.footer .brand{color:var(--cream)}.footer .brand-mark{color:var(--cream);border-color:#a8b9a7}.footer-brand>p{font:22px/1.35 'Playfair Display';color:var(--sand);margin-top:28px}.footer-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#829a8c;margin:5px 0 18px}.footer>div>a{display:block;font-size:12px;margin:0 0 12px;color:#e0e7df}.copyright{align-self:end;font-size:10px;line-height:1.7;color:#7f998a}.nav a,.footer a{transition:.2s}.footer a:hover{color:#e4c99e}.booking-form ::placeholder{color:#8ea89a}@media(max-width:800px){.site-header{height:72px;padding:0 6vw}.nav,.site-header>.button{display:none}.menu-toggle{display:block;color:var(--forest)}.hero{height:calc(100vh - 72px);min-height:560px}.hero-content{margin:0 8vw}.hero h1{font-size:53px}.hero-note{right:8vw}.section-grid,.booking{grid-template-columns:1fr;padding:82px 8vw;gap:45px}.rooms{padding:82px 8vw}.section-heading{display:block}.heading-copy{margin-top:25px}.room-grid{grid-template-columns:1fr 1fr}.room-card-tall{grid-row:span 2}.room-card img,.room-card-tall img{height:230px}.room-card-tall img{height:480px}.gallery-images{grid-template-columns:1fr 1fr}.gallery-images .gallery-main{height:360px}.gallery-images img{height:200px}.location{grid-template-columns:1fr}.location-card{padding:82px 8vw}.map-art{min-height:300px}.footer{padding:58px 8vw 35px;grid-template-columns:1fr 1fr}.footer-brand{grid-column:span 2}.copyright{grid-column:span 2;margin-top:20px}}@media(max-width:520px){.room-grid{grid-template-columns:1fr}.room-card-tall{grid-row:auto}.room-card img,.room-card-tall img{height:270px}.gallery-images{gap:8px}.gallery-images .gallery-main{height:260px}.gallery-images img{height:150px}.booking-form{padding:22px}.footer{grid-template-columns:1fr}.footer-brand,.copyright{grid-column:auto}}
