:root{--forest:#123c35;--deep:#0c2c28;--sand:#f1eadc;--cream:#fbf7ef;--lime:#d9f274;--ink:#162622;--line:rgba(18,60,53,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.nav{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:var(--cream);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-weight:600;line-height:1.05;letter-spacing:.03em}.brand small{font-weight:400;text-transform:uppercase;font-size:10px;letter-spacing:.25em}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:var(--lime);font-family:"Fraunces",serif;font-size:22px}.nav nav{display:flex;gap:36px;font-size:14px}.nav nav a:hover{opacity:.6}.nav-cta{font-size:14px;border-bottom:1px solid;padding-bottom:4px}.menu{display:none;border:0;background:none;font-size:24px}.hero{height:calc(100vh - 88px);min-height:620px;position:relative;color:white;overflow:hidden}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,26,23,.76) 0%,rgba(5,26,23,.23) 60%,rgba(5,26,23,.08)),linear-gradient(0deg,rgba(5,26,23,.45),transparent 50%)}.hero-copy{position:absolute;left:8vw;bottom:16%;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:12px;font-weight:600;margin:0 0 22px}.eyebrow.dark{color:#58706a}.hero h1,.intro h2,.story-card h2,.stay h2,.location h2,.final-cta h2{font-family:"Fraunces",serif;font-weight:500;line-height:.95;letter-spacing:-.035em;margin:0}.hero h1{font-size:clamp(60px,8vw,116px)}.hero-copy>p:not(.eyebrow){font-size:18px;max-width:560px;margin:28px 0 35px}.button{display:inline-flex;align-items:center;gap:42px;padding:15px 22px;border:1px solid;font-size:14px}.button.light{color:white}.button:hover span{transform:translateX(4px)}.button span{transition:.2s}.rating{position:absolute;right:5vw;bottom:5vw;display:flex;align-items:center;gap:14px}.rating strong{font-family:"Fraunces",serif;font-size:42px;font-weight:500}.rating span{font-size:12px;line-height:1.3;text-transform:uppercase;letter-spacing:.1em}.booking-strip{width:84%;max-width:1180px;margin:-36px auto 0;background:white;position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;box-shadow:0 20px 50px rgba(15,44,38,.12)}.booking-strip label{padding:17px 23px;border-right:1px solid var(--line)}.booking-strip label span{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.15em;color:#6b7c77;margin-bottom:3px}.booking-strip input,.booking-strip select{border:0;background:transparent;font:inherit;width:100%;color:var(--ink);outline:0}.booking-strip button{border:0;background:var(--lime);font:600 14px "DM Sans";color:var(--deep);cursor:pointer}.booking-strip button span{margin-left:18px}.notice{width:84%;max-width:1180px;margin:0 auto;height:0;overflow:hidden;text-align:center;background:var(--forest);color:white;transition:.3s}.notice.show{height:auto;padding:15px}.intro{padding:150px 8vw 120px;display:grid;grid-template-columns:1.25fr 1fr;gap:10vw}.intro h2,.story-card h2,.stay h2,.final-cta h2{font-size:clamp(44px,5vw,78px)}.intro-copy{padding-top:38px;font-size:18px}.intro-copy>p{max-width:520px}.features{margin-top:44px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.features span{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.photo-story{display:grid;grid-template-columns:1.6fr 1fr;min-height:720px}.photo-story .large{margin:0;min-height:620px}.story-card{background:var(--sand);padding:70px 5vw;display:flex;flex-direction:column;justify-content:center}.story-card .number{font-family:"Fraunces";font-size:28px;margin:0 auto auto 0;border-bottom:1px solid}.story-card>p:last-child{max-width:410px;margin-top:32px}.stay{padding:140px 8vw}.stay header{display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;align-items:end;margin-bottom:72px}.stay header>p{max-width:450px}.room-card{display:grid;grid-template-columns:1.45fr 1fr;background:white}.room-visual{position:relative;min-height:560px}.room-visual span{position:absolute;left:22px;bottom:20px;background:var(--cream);padding:8px 14px;text-transform:uppercase;font-size:10px;letter-spacing:.14em}.room-info{padding:64px 5vw;display:flex;flex-direction:column;justify-content:center}.room-info h3{font:500 48px "Fraunces";margin:0 0 18px}.room-info ul{list-style:none;padding:0;margin:25px 0}.room-info li{padding:8px 0;border-bottom:1px solid var(--line)}.room-info a{font-weight:600;margin-top:16px}.location{display:grid;grid-template-columns:1.3fr 1fr;background:var(--forest);color:white;min-height:680px}.map-art{position:relative;overflow:hidden;background:#d6e0c9}.coast{position:absolute;inset:-15% 48% -15% -20%;background:#8ebfc2;border-radius:45% 55% 49% 51%}.road{position:absolute;width:130%;height:14px;background:#faf5e8;transform:rotate(-18deg);top:52%;left:2%;box-shadow:0 0 0 2px rgba(18,60,53,.12)}.pin{position:absolute;background:white;color:var(--forest);padding:8px 12px 8px 30px;font-size:11px;font-weight:600;box-shadow:0 8px 24px rgba(18,60,53,.18)}.pin:before{content:"";position:absolute;left:12px;top:13px;width:8px;height:8px;border-radius:50%;background:#e55a3c}.villa{left:54%;top:43%}.beach{left:20%;top:70%}.light{left:50%;top:17%}.location-copy{padding:90px 6vw;display:flex;flex-direction:column;justify-content:center}.location h2{font-size:clamp(48px,5vw,76px);margin-bottom:30px}.location-copy>p:not(.eyebrow){max-width:500px;margin-bottom:35px;color:#c9d7d3}.location .button{align-self:flex-start}.final-cta{text-align:center;padding:150px 20px}.final-cta>p:not(.eyebrow){margin:30px 0}.button.dark{border-color:var(--forest);background:var(--forest);color:white}footer{background:var(--deep);color:white;padding:60px 6vw;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px;font-size:14px}.footer-brand .brand-mark{background:var(--lime);color:var(--forest)}footer p{margin:0 0 10px}.muted{color:#91a49f}
@media(max-width:800px){.nav{height:72px}.nav nav,.nav-cta{display:none}.menu{display:block}.hero{height:78vh;min-height:580px}.hero-copy{left:7vw;right:7vw;bottom:15%}.hero h1{font-size:52px}.hero-copy>p:not(.eyebrow){font-size:16px}.rating{display:none}.booking-strip{width:90%;margin:-24px auto 0;grid-template-columns:1fr 1fr}.booking-strip label:nth-child(3){border-top:1px solid var(--line)}.booking-strip button{min-height:72px}.intro{padding:100px 7vw 80px;grid-template-columns:1fr;gap:30px}.photo-story,.room-card,.location{grid-template-columns:1fr}.photo-story .large{min-height:420px}.story-card{min-height:520px}.stay{padding:100px 7vw}.stay header{grid-template-columns:1fr;gap:25px}.room-visual{min-height:420px}.location{min-height:0}.map-art{min-height:420px}.location-copy{padding:80px 7vw}.final-cta{padding:100px 7vw}footer{grid-template-columns:1fr;gap:28px}}
@media(max-width:480px){.booking-strip{grid-template-columns:1fr}.booking-strip label{border-bottom:1px solid var(--line)}.booking-strip button{min-height:64px}.features{grid-template-columns:1fr}.hero{min-height:620px}.photo-story .large,.room-visual{min-height:340px}.map-art{min-height:360px}.pin{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.availability-results{display:none;width:84%;max-width:1180px;margin:48px auto 0}.availability-results.show{display:block}.availability-results header{margin-bottom:28px}.availability-results h2{font:500 clamp(34px,4vw,54px) "Fraunces",serif;margin:0}.availability-card{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;padding:28px 0;border-top:1px solid var(--line)}.availability-card h3{font:500 28px "Fraunces",serif;margin:8px 0}.availability-card p{margin:0 0 8px;max-width:630px}.room-status{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}.room-status.available{color:#24774b}.room-status.unavailable{color:#9a493b}.room-price{text-align:right;min-width:190px}.room-price strong,.room-price span{display:block}.room-price strong{font:500 27px "Fraunces",serif}.room-price span{font-size:12px;color:#687a75}.room-price button,.submit-booking{margin-top:14px;border:0;background:var(--forest);color:white;padding:13px 17px;font:600 13px "DM Sans";cursor:pointer}.room-list{margin-top:48px}.booking-modal{width:min(680px,calc(100% - 32px));border:0;border-radius:4px;padding:0;box-shadow:0 30px 90px rgba(5,28,24,.3)}.booking-modal::backdrop{background:rgba(7,31,27,.68)}.booking-modal form{padding:42px;position:relative}.booking-modal h2{font:500 42px "Fraunces",serif;margin:0 0 8px}.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:28px;cursor:pointer}.booking-summary{background:var(--sand);padding:13px 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-modal label{display:block;font-size:13px;font-weight:600;margin-top:14px}.booking-modal input,.booking-modal textarea{width:100%;border:1px solid var(--line);background:#fff;padding:12px;font:inherit;margin-top:5px}.booking-modal .consent{display:flex;align-items:flex-start;gap:9px;font-weight:400}.booking-modal .consent input{width:auto;margin-top:4px}.submit-booking{width:100%;padding:16px}.nav nav{gap:26px}
@media(max-width:800px){.availability-results{width:90%}.availability-card{grid-template-columns:1fr}.room-price{text-align:left}.form-grid{grid-template-columns:1fr}.booking-modal form{padding:32px 22px}}
