@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600&family=Italiana&display=swap');
:root{--paper:#faf8f2;--ink:#193932;--muted:#526760;--line:#ccd2c9;--accent:#ad4b26;--sand:#f0ece1;--white:#fff;--serif:'Italiana',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%;height:auto}p{margin:0 0 1.1rem}h1,h2,h3{font-weight:400;margin:0}h1,h2{font-family:var(--serif);line-height:1.08;letter-spacing:-.025em}h1{font-size:clamp(3.2rem,6.8vw,7rem)}h2{font-size:clamp(2.3rem,4.1vw,4.4rem)}em{font-family:Georgia,serif;font-weight:400;font-size:.87em}h3{font-size:1.28rem;line-height:1.4}.header{padding:1.9rem 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:2rem}.brand{text-decoration:none;font-size:1rem;letter-spacing:.15em;line-height:1.1;white-space:nowrap}.brand span{display:block;font-family:var(--serif);font-size:2rem;letter-spacing:.07em;margin-top:.35rem}.header nav{display:flex;align-items:center;gap:2.4rem;font-size:.9rem}.header nav a{text-decoration:none}.header nav a[aria-current]{text-decoration:underline;text-underline-offset:7px}.nav-pill{border:1px solid var(--ink);padding:.65rem 1.35rem;border-radius:2rem}.hero{display:grid;grid-template-columns:43% 57%;min-height:690px}.hero-copy{padding:4rem 9% 3rem 12%}.eyebrow{font-size:.82rem;font-weight:600;letter-spacing:.12em;margin-bottom:1.6rem}.intro{font-size:1.08rem;color:var(--muted);max-width:38rem;margin:1.8rem 0}.hero h1 em{color:var(--accent)}.button{display:inline-flex;gap:2.8rem;align-items:center;justify-content:space-between;text-decoration:none;background:var(--ink);color:var(--white);padding:1rem 1.5rem;border:1px solid var(--ink);font-size:.94rem;transition:background .2s}.button:hover{background:#2f5147}.micro{font-size:.88rem;color:var(--muted);margin-top:1.3rem}.hero-image{margin:0;position:relative;min-height:650px;overflow:hidden;background:#e7eadd}.hero-image>img{width:100%;height:100%;object-fit:cover;position:absolute}.hero-image figcaption{position:absolute;bottom:0;left:0;right:0;color:white;font-size:.79rem;background:linear-gradient(transparent,rgba(10,28,24,.8));padding:3rem 1.5rem 1rem;margin:0}.image-label{position:absolute;right:1.6rem;top:1.6rem;width:8rem;height:8rem;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--paper);font-size:.79rem;letter-spacing:.1em;transform:rotate(9deg)}.facts{display:grid;grid-template-columns:repeat(4,1fr);padding:2.3rem 5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts>div{text-align:center;border-right:1px solid var(--line)}.facts>div:last-child{border:0}.facts strong{display:block;font-family:var(--serif);font-weight:400;font-size:2.7rem;line-height:1.2}.facts strong small{font-size:1.3rem}.facts span{font-size:.9rem}.wrap{padding:5.5rem 7%;}.story{display:grid;grid-template-columns:28% 1fr;gap:4rem}.story>div>p{max-width:44rem;margin-top:1.6rem;color:var(--muted)}.text-link{text-decoration:none;border-bottom:1px solid;padding-bottom:.3rem;font-size:.92rem}.services{background:var(--sand)}.section-top{display:flex;justify-content:space-between;gap:2rem;align-items:start;margin-bottom:3.5rem}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}.service-grid article{border-top:1px solid var(--line);padding-top:1.6rem}.service-number{font-family:var(--serif);font-size:2.6rem;color:var(--accent);line-height:1.2}.service-grid h3{margin:1rem 0}.service-grid p{color:var(--muted)}.closing{display:flex;align-items:center;justify-content:space-between;gap:3rem;background:var(--ink);color:var(--paper)}.button.light{background:var(--paper);color:var(--ink);flex-shrink:0}.closing .eyebrow{color:#c7d2c2}footer{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:3rem 5%;align-items:center}footer>p{text-align:right;margin:0}.footer-note{grid-column:1/-1;font-size:.8rem;color:var(--muted);text-align:left;border-top:1px solid var(--line);padding-top:1.5rem}.detail-intro{padding-bottom:3rem}.detail-intro h1{font-size:clamp(3rem,5.4vw,5.8rem)}.spaces{display:grid;grid-template-columns:1fr .8fr;gap:7rem;padding-top:2rem}.spaces h2{margin-bottom:1.8rem}.room-list{margin:0}.room-list>div{padding:1.7rem 0;border-bottom:1px solid var(--line)}dt{font-size:1.05rem;font-weight:600;margin-bottom:.6rem}dd{margin:0;color:var(--muted)}.plan-section{background:var(--sand)}.plan-link{display:block;background:white;border:1px solid var(--line)}.plan-link img{width:100%}.plan-caption{display:flex;justify-content:space-between;align-items:start;gap:2rem;margin-top:1.2rem;font-size:.88rem;color:var(--muted)}.plan-caption p{margin:0}.included>h2{margin-bottom:3rem}.rates{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:6rem}.rates h2{margin-bottom:2rem}.rates .micro{color:#ced6cf}.rate-cards article{border-top:1px solid #849890;padding:1.5rem 0}.rate-cards article>p:first-child{font-size:.8rem;letter-spacing:.12em}.rate-cards h3{font-family:var(--serif);font-size:3.7rem;margin:.7rem 0}.rate-cards h3 span{font-family:'DM Sans',Arial,sans-serif;font-size:.95rem}.rate-cards article>p:last-child{font-size:.95rem;color:#ced6cf}.reservation-note{max-width:65rem}.reservation-note h2{margin-bottom:1.6rem}.reservation-note>p:last-child{max-width:48rem;color:var(--muted)}
@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero-copy{padding-top:6rem}.hero{min-height:800px}}@media(max-width:1000px){.hero{grid-template-columns:48% 52%;min-height:620px}.hero-copy{padding:3rem 8% 2rem 10%}.hero-image{min-height:600px}.hero h1{font-size:5rem}.header nav{gap:1.2rem}.story{gap:2rem;grid-template-columns:24% 1fr}.wrap{padding:4rem 6%}.spaces,.rates{gap:3rem}.service-grid{gap:1.8rem}.closing{display:block}.closing .button{margin-top:2rem}}@media(max-width:700px){.header{padding:1.3rem 6%;align-items:start;gap:1rem}.brand{font-size:.75rem}.brand span{font-size:1.5rem}.header nav{gap:.8rem;flex-wrap:wrap;justify-content:flex-end;font-size:.88rem;max-width:13rem}.nav-pill{padding:.3rem .7rem}.hero{display:flex;flex-direction:column}.hero-copy{padding:3.2rem 7% 2.6rem}.hero h1{font-size:4.6rem}.hero-image{min-height:450px}.image-label{width:6.5rem;height:6.5rem;font-size:.72rem}.facts{grid-template-columns:repeat(2,1fr);gap:1.5rem;padding:2rem 5%}.facts>div:nth-child(2){border:0}.facts strong{font-size:2.4rem}.wrap{padding:3.5rem 7%}.story,.spaces,.rates{display:block}.story>.eyebrow{margin-bottom:2rem}.section-top{display:block;margin-bottom:2rem}.service-grid{display:block}.service-grid article{margin-top:2rem}.service-grid p{max-width:35rem}.closing h2{font-size:2.7rem}.spaces{padding-top:0}.room-list{margin-top:2rem}.plan-caption{display:block}.plan-caption .text-link{display:inline-block;margin-top:1rem}.rate-cards{margin-top:2.5rem}.detail-intro h1{font-size:3.25rem}.reservation-note h2{font-size:2.6rem}footer{display:block;padding:2.5rem 7%}footer>p{text-align:left;margin-top:1.5rem}.footer-note{padding-top:1rem}.hero-image figcaption{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Photographs and room-by-room visit */
button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.hero-secondary{display:block;width:fit-content;font-size:.9rem;margin-top:1.2rem;text-underline-offset:5px}.hero-image>img{object-position:center 48%}.hero-image figcaption{font-size:.88rem;line-height:1.5}.header nav{flex-wrap:wrap;justify-content:flex-end;gap:1.5rem}.visit-teaser{display:grid;grid-template-columns:1.15fr .7fr .7fr;gap:2rem;align-items:center;padding-top:2rem}.visit-teaser h2{margin-bottom:1.6rem}.visit-teaser>div>p:not(.eyebrow){color:var(--muted)}.teaser-photo{position:relative;align-self:stretch;text-decoration:none;min-height:400px;overflow:hidden;background:var(--sand)}.teaser-photo img{height:100%;width:100%;object-fit:cover}.teaser-photo span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(12,31,25,.9));padding:3rem 1.2rem 1rem;color:white;font-size:.88rem}.teaser-photo:last-child{margin-top:4rem}.villa-gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:2rem;padding-top:0;align-items:center}.villa-gallery h2{font-size:clamp(2.3rem,3.5vw,3.9rem);margin-bottom:1.6rem}.villa-gallery figure{margin:0;align-self:stretch;display:flex;flex-direction:column}.villa-gallery figure img{width:100%;height:420px;object-fit:cover;flex-grow:1}.villa-gallery figcaption{font-size:.875rem;color:var(--muted);padding-top:.8rem}.tour-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;padding-top:3.5rem;padding-bottom:2.8rem}.tour-heading h1{font-size:clamp(3rem,5vw,5.8rem)}.tour-heading>p{color:var(--muted);max-width:23rem;margin-bottom:.2rem}.tour{padding-top:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr);gap:5%;align-items:start}.tour-viewer{min-width:0;background:var(--ink);color:white}.tour-mode{display:flex;gap:.35rem;padding:.8rem;border-bottom:1px solid #536a61}.tour-mode button{flex:1;min-width:0;padding:.65rem .4rem;background:none;border:1px solid transparent;color:#e1e8e1;font-size:.9rem;border-radius:2px;line-height:1.4}.tour-mode button[aria-pressed="true"]{background:var(--paper);color:var(--ink)}.tour-mode button:hover:not([aria-pressed="true"]){border-color:#a6b7aa}.tour-frame{position:relative;margin:0;background:#10261f;display:flex;justify-content:center;min-height:480px;height:min(75vh,740px)}.tour-frame>img,.tour-frame>video{height:100%;width:100%;object-fit:contain;min-width:0}.tour-frame figcaption{position:absolute;left:50%;transform:translateX(-50%);top:1rem;white-space:normal;text-align:center;max-width:calc(100% - 2rem);width:max-content;background:rgba(250,248,242,.96);color:var(--ink);padding:.4rem .9rem;border-radius:2px;font-size:.875rem;pointer-events:none;line-height:1.5}.tour-controls{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;gap:.5rem}.tour-controls button{width:44px;height:44px;flex-shrink:0;border:1px solid #718c7c;background:none;color:white;font-size:1.3rem}.tour-controls button:hover{background:#2f5147}.tour-controls p{text-align:center;margin:0;font-size:.9rem}.tour-details{padding-top:1.6rem}.tour-details h2{font-size:clamp(2.5rem,3.6vw,4.5rem);margin-bottom:1.5rem}.tour-details>p:not(.eyebrow){color:var(--muted)}.tour-details .eyebrow{margin-bottom:1.1rem}.tour-note{font-size:.875rem;border-left:2px solid var(--accent);padding-left:1rem;line-height:1.6}.tour-details>.button{margin:1rem 0 1.6rem;gap:1.5rem;min-height:48px}.room-steps{display:grid;margin-top:.8rem}.room-steps>button{display:flex;gap:1rem;text-align:left;align-items:center;color:var(--ink);padding:1rem 0;background:none;border:0;border-top:1px solid var(--line);width:100%}.room-steps>button:last-child{border-bottom:1px solid var(--line)}.room-steps img{width:45px;height:64px;object-fit:cover}.room-steps>button>span:first-of-type{flex:1;font-size:1.05rem;line-height:1.4}.room-steps small{display:block;font-size:.8rem;letter-spacing:.035em;margin-bottom:.35rem;color:var(--muted)}.room-steps button[aria-current="step"]{box-shadow:inset 3px 0 var(--accent);padding-left:1rem;background:var(--sand);padding-right:1rem}.room-steps button:hover{background:var(--sand)}.tour-next{background:var(--sand);display:flex;align-items:center;justify-content:space-between;gap:2rem}.tour-next h2{font-size:clamp(2.4rem,3.7vw,4rem)}.tour-next .button{flex-shrink:0}
@media(max-width:1050px){.visit-teaser{grid-template-columns:1fr 1fr}.visit-teaser>div{grid-column:1/-1;max-width:46rem}.teaser-photo{height:450px;min-height:0}.teaser-photo:last-child{margin-top:0}.villa-gallery{grid-template-columns:1fr 1fr}.villa-gallery-intro{grid-column:1/-1;max-width:48rem}.tour{gap:4%}.tour-heading>p{max-width:18rem}.tour-details h2{font-size:2.6rem}.tour-frame{height:660px;min-height:0}.tour-mode button{font-size:.875rem}.tour-mode{padding:.6rem}.tour-next{display:block}.tour-next .button{margin-top:2rem}}
@media(max-width:700px){.header nav{gap:.65rem .9rem;max-width:14rem}.hero-image{min-height:520px}.visit-teaser{gap:1rem;padding-top:1rem}.visit-teaser>div{margin-bottom:1rem}.teaser-photo{height:340px}.teaser-photo span{font-size:.875rem;line-height:1.4;padding:.8rem}.villa-gallery{gap:1rem}.villa-gallery figure img{height:310px}.villa-gallery figcaption{font-size:.875rem}.tour-heading{display:block;padding-top:2.6rem;padding-bottom:2rem}.tour-heading>p{max-width:100%;margin:1.5rem 0 0}.tour-heading h1{font-size:3.5rem}.tour{display:flex;flex-direction:column;padding-top:0;gap:1.7rem}.tour-viewer{width:100%}.tour-frame{height:auto;aspect-ratio:512/910;max-height:78svh;min-height:360px}.tour-details{padding-top:.5rem;width:100%}.tour-details h2{font-size:3rem}.tour-controls{padding:.5rem}.tour-controls p{font-size:.875rem}.tour-mode{gap:.2rem;padding:.5rem}.tour-mode button{padding:.65rem .3rem}.tour-note{margin-bottom:.5rem}.tour-details>.button{margin-top:.8rem}.room-steps small{font-size:.8rem}.tour-next h2{font-size:2.8rem}}
@media(max-width:380px){.header{flex-direction:column;align-items:stretch}.header nav{justify-content:flex-start;max-width:none}.hero h1{font-size:4rem}.teaser-photo{height:280px}.tour-heading h1{font-size:3rem}.tour-mode{flex-wrap:wrap}.tour-mode button{min-width:85px}.tour-frame{min-height:320px}}

/* Exterior photography and furnished film */
.exterior-hero{grid-template-columns:35% 65%;min-height:0}.exterior-hero .hero-copy{padding:3.2rem 10% 3rem 14%}.exterior-hero h1{font-size:clamp(3.5rem,5.2vw,6rem)}.exterior-hero .hero-image{min-height:0}.exterior-hero .hero-image>img{object-position:50% 50%}.exterior-hero .intro{font-size:1rem}.exterior-hero .button{gap:1rem;padding:1rem 1.15rem}.exterior-gallery{background:var(--sand)}.home-photo-grid{display:grid;grid-template-columns:1fr .8fr 1fr;align-items:center;gap:1.7rem}.home-photo-grid figure{margin:0;min-width:0}.home-photo-grid img{width:100%;height:auto}.home-photo-grid figcaption{font-size:.9rem;color:var(--muted);line-height:1.5;padding-top:.8rem}.exterior-gallery>.micro{margin-bottom:0;margin-top:2rem}.home-film{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-top:1rem}.home-film h2{margin-bottom:1.8rem}.home-film>div>p:not(.eyebrow){color:var(--muted);max-width:34rem}.home-film .tour-note{margin-top:2rem;max-width:30rem}.home-film-player{margin:0;background:var(--ink);color:var(--paper)}.home-film-player video{display:block;width:100%;height:620px;max-height:78svh;object-fit:contain;background:#10261f}.home-film-player figcaption{font-size:.9rem;padding:.9rem 1.2rem;line-height:1.5}.furnished-banner{padding:1.1rem 1.5rem;text-align:center;font-size:.9rem;letter-spacing:.12em;border-bottom:1px solid #536a61}.furnished-tour .tour-details>.button{margin-top:.6rem}
@media(max-width:1100px){.exterior-hero{grid-template-columns:38% 62%}.exterior-hero .hero-copy{padding:2.8rem 8% 2.5rem 12%}.exterior-hero h1{font-size:3.8rem}.home-photo-grid{gap:1.1rem}.home-film{gap:5%}.home-film-player video{height:580px}}
@media(max-width:800px){.exterior-hero{display:flex;flex-direction:column}.exterior-hero .hero-copy{padding:2.7rem 7%;max-width:45rem}.exterior-hero .hero-image{min-height:0;aspect-ratio:4/3}.exterior-hero .hero-image>img{width:100%;height:100%;object-fit:cover}.exterior-hero h1{font-size:4.2rem}.exterior-hero h1 br{display:none}.exterior-hero h1 br::after{content:' '}.exterior-hero h1 em{display:block}.home-photo-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1.8rem 1rem}.home-photo-grid .entrance-photo{grid-column:2;grid-row:1/3}.home-photo-grid figure:last-child{grid-column:1}.home-film{display:block;padding-top:1rem}.home-film>div{margin-bottom:2rem}.home-film-player{max-width:32rem;margin-inline:auto}.home-film-player video{height:auto;max-height:78svh;aspect-ratio:9/16}.exterior-gallery .section-top h2{font-size:2.7rem}}
@media(max-width:450px){.exterior-hero h1{font-size:3.7rem}.exterior-hero .hero-image figcaption{font-size:.875rem;padding:3rem 1rem 1rem}.home-photo-grid{display:flex;flex-direction:column;gap:1.8rem}.home-photo-grid figure{width:100%}.home-photo-grid .entrance-photo{order:3}.home-photo-grid .entrance-photo img{max-height:560px;object-fit:contain;object-position:left}.exterior-gallery .section-top h2{font-size:2.4rem}}

/* Location and Surf & Chill */
.location-intro{display:grid;grid-template-columns:1.6fr 1fr;gap:5%;align-items:end;padding-bottom:3rem}.location-intro h1{font-size:clamp(3rem,5.4vw,6rem)}.location-intro>p{color:var(--muted);max-width:25rem}.location-map-section{padding:0 5% 3.5rem}.map-toolbar,.map-bottom,.map-links{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.map-toolbar{padding:1.5rem 0}.map-toolbar .eyebrow{margin-bottom:.5rem}.map-toolbar h2{font-size:2.5rem}.map-shell{position:relative;border:1px solid var(--line);background:#193932}#villa-map{height:590px;min-height:380px;isolation:isolate}.map-message{position:absolute;z-index:450;left:10%;right:10%;top:40%;padding:1.5rem;background:var(--paper);color:var(--ink);text-align:center;pointer-events:none}.map-bottom{padding:1.3rem 0;flex-wrap:wrap}.map-bottom p{margin:0;font-size:.9rem}.map-presets{display:flex;gap:.5rem;flex-wrap:wrap}.map-presets button{padding:.65rem 1rem;border:1px solid var(--line);background:transparent;color:var(--ink);min-height:44px}.map-presets button:hover,.map-presets button[aria-pressed=true]{background:var(--ink);color:white}.map-links{justify-content:flex-start;flex-wrap:wrap;margin:1rem 0}.map-source{font-size:.875rem;color:var(--muted);max-width:60rem;margin:1rem 0 0}.ohana-map-label{font:600 14px 'DM Sans',sans-serif;color:#193932;padding:.5rem .8rem}.location-story{display:grid;grid-template-columns:.7fr 1.5fr;gap:8%;background:var(--sand)}.location-story h2{margin-bottom:2rem}.location-story p{max-width:49rem}.surf-section{background:var(--ink);color:var(--paper);scroll-margin-top:1rem}.surf-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.surf-heading h2{font-size:clamp(4rem,9vw,8rem)}.surf-heading>p{color:#d3dfd3}.surf-film{margin:0}.surf-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#10261f}.surf-film figcaption{font-size:.875rem;color:#ced6cf;padding:1rem 0;max-width:60rem}.surf-offer-intro{max-width:47rem;margin:3.5rem 0 2.5rem}.surf-offer-intro h3{font-size:1.7rem;margin-bottom:1rem}.offer-status{display:inline-block;border:1px solid #82968b;padding:.4rem .8rem;font-size:.9rem}.surf-offers p{color:#d3dfd3}.surf-offers .service-number{color:#e9b58a}.surf-offers .offer-detail{font-size:.9rem}.surf-practical{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid #71877b}.surf-practical h3{margin-bottom:1rem}.surf-practical p{color:#d3dfd3}.surf-practical .button{background:var(--paper);color:var(--ink);margin-top:.8rem}.surf-teaser{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}.surf-teaser h2{margin-bottom:1.5rem}.surf-teaser img{aspect-ratio:16/9;object-fit:cover;width:100%}.surf-teaser .button{margin-top:1rem}.header nav{gap:1rem}button:disabled{opacity:.5;cursor:default}
@media(max-width:1050px){.header{gap:1rem}.header nav{gap:.65rem 1rem}.location-intro{grid-template-columns:1fr}.location-intro>p{max-width:38rem}.location-story{gap:4%}.surf-teaser{gap:4%}.map-toolbar .button{gap:1rem}.map-toolbar h2{font-size:2rem}}
@media(max-width:700px){.header{flex-direction:column;align-items:stretch}.header nav{max-width:none;justify-content:flex-start}.location-intro h1{font-size:3.2rem}.map-toolbar,.surf-heading{display:block}.map-toolbar .button{margin-top:1.2rem;width:100%;font-size:.9rem}.location-map-section{padding-inline:4%}#villa-map{height:470px}.map-links{gap:1rem}.location-story,.surf-practical,.surf-teaser{display:block}.location-story>.eyebrow{margin-bottom:2rem}.surf-heading>p{margin-top:1.5rem}.surf-practical>div+div{margin-top:2.5rem}.surf-teaser>a{display:block;margin-top:2rem}.surf-offer-intro{margin-top:2.5rem}.map-message{left:5%;right:5%}.surf-film figcaption{line-height:1.5}}
