:root{--ink:#253c3b;--sand:#f7f4ee;--gold:#a98d61}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--sand);color:var(--ink);font:16px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}header{height:92px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--sand)}.brand{font:36px Georgia,serif;letter-spacing:-2px}.brand span{display:block;font:9px Arial,sans-serif;letter-spacing:3px;margin-top:2px}nav{display:flex;align-items:center;gap:38px;font-size:13px}.nav-book{border-bottom:1px solid var(--gold);padding:10px 0}.hero{height:calc(100svh - 92px);min-height:650px;position:relative;color:white;background:var(--ink);overflow:hidden}.hero>video,.shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{background:linear-gradient(90deg,rgba(10,27,28,.65),rgba(10,27,28,.05)),linear-gradient(0deg,rgba(10,27,28,.5),transparent 35%)}.hero-copy{position:relative;padding:9vh 7%;max-width:900px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:bold;margin:0 0 24px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.08;margin:0 0 26px}h1{font-size:clamp(54px,6vw,90px);letter-spacing:-3px}h2{font-size:clamp(36px,4vw,56px);letter-spacing:-1.5px}h3{font-size:30px}.hero-copy>p:not(.eyebrow){max-width:490px;font-size:16px;line-height:1.8}.button{display:flex;justify-content:space-between;align-items:center;width:240px;padding:16px 24px;font-size:13px;border:0;margin-top:30px}.light{background:var(--sand);color:var(--ink)}.dark{background:var(--ink);color:white;width:100%}.hero-foot{position:absolute;bottom:28px;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px}.hero-foot button{background:transparent;color:white;border:1px solid #ffffff75;padding:6px 12px;margin:3px;font-size:11px}.wrap{max-width:1320px;margin:auto;padding-left:6%;padding-right:6%}.intro{padding-top:100px;padding-bottom:50px;display:grid;grid-template-columns:1fr 1fr;gap:10%}.intro p:not(.eyebrow){color:#60706b;margin-top:0}.facts{display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:80px}.facts>div{border-top:1px solid #c9ccc3;padding-top:28px}.facts strong{display:block;font:38px Georgia,serif}.facts span{font-size:11px;letter-spacing:1px}.feature{display:grid;grid-template-columns:1.4fr 1fr;gap:8%;align-items:center;padding-bottom:100px}.feature img{width:100%;aspect-ratio:1.25;object-fit:cover}.feature p:not(.eyebrow){color:#60706b}.text-link{display:inline-block;border-bottom:1px solid var(--gold);padding:10px 0;font-size:13px}.gallery-section{background:#eceee7;padding:90px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}.section-heading h2{max-width:660px}.section-heading>p{font-size:12px;color:#65716c}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0 35px}.filters button{border:1px solid #bdc4bb;background:transparent;color:var(--ink);padding:10px 18px;font-size:12px}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px}.gallery figure{margin:0}.photo-button{border:0;background:transparent;padding:0;width:100%;display:block;overflow:hidden}.gallery img{width:100%;aspect-ratio:1.45;object-fit:cover;display:block;transition:transform .4s}.photo-button:hover img{transform:scale(1.035)}figcaption{font-size:13px;margin-top:13px;display:flex;justify-content:space-between}.tour{display:grid;grid-template-columns:1fr 1.5fr;gap:7%;align-items:center;padding-top:100px;padding-bottom:100px}.tour video{width:100%;display:block}.inquiry{background:#dfe5dc;padding:90px 0}.inquiry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.rate{margin:35px 0;font-size:13px}.rate strong{font:48px Georgia,serif;margin:0 5px}.inquiry-grid>div>p:not(.eyebrow){max-width:410px}.fine{font-size:11px;line-height:1.7;color:#65716c}form{background:var(--sand);padding:38px}label{display:block;font-size:11px;margin:14px 0;letter-spacing:.3px}label span{color:#687570}input,textarea{width:100%;border:0;border-bottom:1px solid #bcc4b9;padding:10px 0;background:transparent;color:var(--ink);border-radius:0;font-size:14px}input:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}#estimate{font-size:12px}#formResult a{display:block;text-decoration:underline;margin-top:14px}footer{padding-top:45px;padding-bottom:30px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:25px}footer p,footer>a:last-of-type{font-size:12px}footer small{width:100%;font-size:10px;border-top:1px solid #ccd0c6;padding-top:20px}dialog{border:0;padding:20px;background:#172b2a;color:white;max-width:94vw;width:1100px}dialog::backdrop{background:#000c}dialog img{width:100%;height:75vh;object-fit:contain}dialog button{background:transparent;color:white;border:1px solid #ffffff80;padding:8px 15px}#close{position:absolute;top:24px;right:24px;background:#172b2a}.lightbox-footer{display:flex;align-items:center;justify-content:space-between}.lightbox-footer p{font-size:13px}@media(max-width:760px){header{height:80px}.brand{font-size:30px}nav{gap:18px}nav>a:not(.nav-book){display:none}.hero{height:calc(100svh - 80px);min-height:600px}.hero-copy{padding-top:80px}h1{font-size:56px;letter-spacing:-2px}.hero-foot{flex-wrap:wrap;gap:12px}.hero-foot>a{display:none}.intro,.feature,.tour,.inquiry-grid{grid-template-columns:1fr;gap:30px}.intro,.tour{padding-top:65px}.facts{grid-template-columns:1fr 1fr;gap:25px;padding-bottom:65px}.facts strong{font-size:32px}.feature{padding-bottom:65px}.gallery-section,.inquiry{padding:65px 0}.section-heading{display:block}.gallery{grid-template-columns:1fr 1fr;gap:24px 14px}figcaption{font-size:11px}.filters{gap:7px}.filters button{font-size:11px;padding:8px 12px}form{padding:24px}.form-row{gap:15px}.tour{padding-bottom:65px}footer p{margin:0}dialog img{height:65vh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img{transition:none}}
@media(max-width:400px){.hero{min-height:790px}.hero-copy{padding-top:55px}h1{font-size:48px}.hero-foot{bottom:20px}.hero-copy>p:not(.eyebrow){font-size:14px}.gallery{grid-template-columns:1fr}.hero .button{margin-top:20px}}

.brand{font-size:29px;letter-spacing:-1px}@media(max-width:400px){header{padding:0 5%}.brand{font-size:23px}.brand span{font-size:8px;letter-spacing:2px}.nav-book{font-size:11px}}

.property-address{grid-column:1/-1;font-size:12px;border-top:1px solid #ccd0c6;padding-top:20px}@media(max-width:760px){nav>a[href*="cabo-haven-guests"]{display:block;font-size:10px}nav{gap:12px}}

.portal-access{border:1px solid #a98d61;padding:10px 16px;font-size:12px;white-space:nowrap}@media(max-width:760px){header{gap:12px}nav{gap:10px}nav>a.nav-book{display:none}nav>a.portal-access{display:block;font-size:11px;padding:9px 11px}}

.gallery-group{grid-column:1/-1;margin:25px 0 0;padding-top:24px;border-top:1px solid #c2c9bc;font-size:28px}.gallery-group:first-child{margin-top:0;padding-top:0;border-top:0}

.funds-note{background:#eceee7;border-left:3px solid #a98d61;padding:16px 18px;margin-top:22px;font-size:13px}.funds-note p{font-size:12px;margin:8px 0}.check-label{display:flex;align-items:flex-start;gap:10px;letter-spacing:0;font-size:12px}.check-label input{width:18px;height:18px;flex:0 0 18px;margin:2px 0;padding:0}.check-label span{color:#253c3b}.spam-trap{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}button:disabled{opacity:.65;cursor:wait}#formResult{font-size:13px;line-height:1.65;margin-top:15px}

.amenities{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding-bottom:90px;align-items:start}.amenities>div>p:not(.eyebrow){color:#60706b;max-width:390px}.amenities-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.amenities-list li{border-top:1px solid #c9ccc3;padding:18px 0;font-size:14px}.amenities-list li::before{content:"✓";color:#a98d61;margin-right:10px}@media(max-width:760px){.amenities{grid-template-columns:1fr;gap:20px;padding-bottom:65px}.amenities-list{gap:0 16px}.amenities-list li{font-size:12px}}
