:root{--navy:#07384b;--sea:#0b607c;--foam:#eaf5f4;--sand:#f6f1e8;--coral:#e46f58;--ink:#15313b;--white:#fff;--line:rgba(7,56,75,.14);--display:"Playfair Display",Georgia,serif;--body:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:var(--body);font-size:16px;line-height:1.65}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}a{color:inherit}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,76px);background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.1}.brand-mark{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:var(--display);font-size:15px}.brand strong{display:block;font-family:var(--display);font-size:18px}.brand small{display:block;color:#66808a;text-transform:uppercase;letter-spacing:.16em;font-size:10px;margin-top:5px}.topbar nav{display:flex;align-items:center;gap:26px}.topbar nav a{text-decoration:none;font-size:14px;font-weight:600}.topbar nav a:not(.nav-cta):hover{color:var(--sea)}.nav-cta{background:var(--coral);color:#fff;padding:11px 18px;border-radius:999px}.menu-button{display:none;background:none;border:1px solid var(--line);padding:9px 14px;border-radius:999px;color:var(--ink)}
.hero{min-height:calc(100vh - 86px);position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,39,53,.86) 0%,rgba(4,39,53,.56) 48%,rgba(4,39,53,.06) 82%)}.hero-copy{position:relative;z-index:2;width:min(680px,calc(100% - 48px));margin-left:clamp(24px,8vw,128px);padding:80px 0 130px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:700;margin:0 0 22px;color:var(--coral)}h1,h2{font-family:var(--display);font-weight:600;line-height:.98;margin:0}h1{font-size:clamp(52px,7vw,104px);letter-spacing:-.055em}h1 em,h2 em{font-weight:600}h1 em{color:#b9e2df}.hero-intro{font-size:clamp(18px,2vw,23px);line-height:1.5;max-width:570px;margin:30px 0 36px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{border:0;border-radius:999px;padding:14px 23px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700;cursor:pointer;transition:.2s transform,.2s background}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--coral);color:#fff}.button-primary:hover{background:#cf5e48}.button-ghost{color:#fff;border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(5px)}.hero-card{position:absolute;right:clamp(24px,5vw,76px);bottom:42px;z-index:2;background:rgba(255,255,255,.95);color:var(--ink);display:grid;grid-template-columns:repeat(3,1fr);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.18)}.hero-card div{padding:18px 24px;border-right:1px solid var(--line)}.hero-card div:last-child{border:0}.hero-card strong{font-family:var(--display);font-size:30px;display:block;line-height:1}.hero-card span{font-size:11px;color:#68808a;text-transform:uppercase;letter-spacing:.08em}.scroll-cue{position:absolute;z-index:2;left:clamp(24px,5vw,76px);bottom:30px;font-size:11px;text-transform:uppercase;letter-spacing:.15em;opacity:.72}
.section{width:min(1180px,calc(100% - 48px));margin:auto;padding:110px 0}.intro{display:grid;grid-template-columns:1fr 1fr;gap:56px}.section-heading h2{font-size:clamp(45px,6vw,76px);letter-spacing:-.04em;color:var(--navy)}.section-heading h2 em{color:var(--sea)}.intro-copy{max-width:530px;padding-top:42px}.lead{font-size:21px;line-height:1.5;color:var(--navy);font-weight:600}.feature-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:40px}.feature-grid article{padding:34px 34px 0 0;border-right:1px solid var(--line);min-height:190px}.feature-grid article+article{padding-left:34px}.feature-grid article:last-child{border:0}.feature-grid span{color:var(--coral);font-size:12px;font-weight:700}.feature-grid h3{font-family:var(--display);font-size:24px;margin:10px 0 6px}.feature-grid p{color:#66808a;margin:0}
.amenities-section{background:var(--navy);color:#fff}.amenities-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.amenities-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.18)}.amenities-grid article{padding:28px 30px 30px 0;border-bottom:1px solid rgba(255,255,255,.18)}.amenities-grid article:nth-child(odd){border-right:1px solid rgba(255,255,255,.18)}.amenities-grid article:nth-child(even){padding-left:30px}.amenity-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:#8fd4ce;font-family:var(--display);font-size:20px}.amenities-grid h3{font-family:var(--display);font-size:22px;margin:16px 0 8px}.amenities-grid p{margin:0;color:#bad0d7;font-size:15px}.amenities-note{grid-column:2;margin:0;padding-top:22px;color:#bad0d7;font-size:13px}
.gallery-section{background:var(--sand);padding-bottom:26px}.gallery-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:50px}.gallery-head>p{color:#6a7b7f}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:280px;gap:8px;padding:0 8px}.photo{position:relative;border:0;padding:0;overflow:hidden;cursor:zoom-in;background:#dce6e5}.photo-wide{grid-column:span 2}.photo-tall{grid-row:span 2}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.photo:hover img{transform:scale(1.035)}.photo span{position:absolute;left:18px;bottom:16px;background:rgba(255,255,255,.93);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.lightbox{padding:0;border:0;background:transparent;max-width:92vw;max-height:92vh}.lightbox::backdrop{background:rgba(2,23,31,.9)}.lightbox img{max-width:92vw;max-height:88vh}.lightbox-close{position:fixed;top:20px;right:24px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.25);color:white;font-size:30px;cursor:pointer}
.location{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.location-card>p{max-width:500px;margin:30px 0}.distance-list{list-style:none;padding:0;margin:32px 0;border-top:1px solid var(--line)}.distance-list li{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.distance-list strong{color:var(--sea);font-size:14px}.text-link{color:var(--coral);font-weight:700;text-underline-offset:5px}.map-card{margin:0;background:var(--foam);padding:20px;border-radius:50% 50% 12px 12px}.map-card img{aspect-ratio:1/1;object-fit:cover;border-radius:50% 50% 6px 6px}.map-card figcaption{text-align:center;padding:17px 0 2px;font-size:13px;font-weight:700}
.city-section{background:var(--navy);color:#fff}.city-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.section-heading.light h2{color:#fff}.section-heading.light h2 em{color:#a9dbd7}.city-intro{max-width:420px;margin:30px 0 22px;color:#bad0d7}.city-link{display:inline-block;color:#ff8a73;font-weight:700;text-underline-offset:5px}.city-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.city-grid article{padding:15px 34px 35px;border-left:1px solid rgba(255,255,255,.18)}.city-grid article:nth-child(n+3){padding-top:35px;border-top:1px solid rgba(255,255,255,.18)}.city-grid span{font-family:var(--display);font-size:32px;color:#7fc9c3}.city-grid h3{font-family:var(--display);font-size:22px;margin:8px 0}.city-grid p{margin:0;color:#bad0d7;font-size:15px}
.availability{display:grid;grid-template-columns:.75fr 1.25fr;gap:54px 70px}.availability-summary{padding-top:36px;max-width:600px}.availability-summary p{margin-top:0}.calendar-legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px;font-size:13px;font-weight:700}.calendar-legend span{display:flex;align-items:center;gap:8px}.calendar-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}.legend-free{background:#fff}.legend-busy{background:#f7c9c0}.legend-change{background:linear-gradient(135deg,#fff 0%,#fff 49.5%,#f7c9c0 50.5%,#f7c9c0 100%)}.calendar-wrap{grid-column:1/-1}.calendar-status{margin:0 0 18px;color:#66808a;font-size:13px}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.calendar-month{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;box-shadow:0 10px 28px rgba(7,56,75,.06)}.calendar-month h3{font-family:var(--display);font-size:20px;color:var(--navy);margin:0 0 14px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-days strong{font-size:10px;text-align:center;color:#78909a;text-transform:uppercase}.calendar-days>span{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;font-size:12px}.day-empty{visibility:hidden}.day-free{background:var(--foam);color:var(--navy)}.day-busy{background:#f7c9c0;color:#8d2f21;font-weight:700;text-decoration:line-through}.day-arrival{background:linear-gradient(135deg,var(--foam) 0%,var(--foam) 49.5%,#f7c9c0 50.5%,#f7c9c0 100%);color:var(--navy);font-weight:700}.day-departure{background:linear-gradient(135deg,#f7c9c0 0%,#f7c9c0 49.5%,var(--foam) 50.5%,var(--foam) 100%);color:var(--navy);font-weight:700}.booking-panel{grid-column:1/-1;background:var(--foam);padding:48px;border-radius:14px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.booking-copy p{margin-top:0}.booking-note{display:flex;gap:12px;margin-top:28px}.booking-note>span{flex:0 0 26px;height:26px;border-radius:50%;background:var(--sea);color:white;display:grid;place-items:center;font-family:var(--display)}.booking-note p{font-size:13px;color:#58717a}.date-form{display:flex;flex-direction:column;gap:15px}.date-form label,.contact-form label{font-size:13px;font-weight:700;color:var(--navy)}input,select,textarea{width:100%;margin-top:6px;border:1px solid rgba(7,56,75,.18);border-radius:8px;background:#fff;padding:13px 14px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(11,96,124,.12)}.form-hint,.form-status{min-height:22px;margin:0;color:var(--sea);font-size:13px}
.contact-section{background:#c6e2df}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-copy h2{font-family:var(--display);font-size:clamp(45px,6vw,76px);line-height:1;color:var(--navy);letter-spacing:-.04em}.contact-copy h2 em{color:var(--sea)}.contact-copy>p:not(.eyebrow){font-size:18px;max-width:480px}.host{display:flex;align-items:center;gap:14px;margin-top:34px}.host>span{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:var(--display)}.host strong,.host small{display:block}.host small{color:#56717a}.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:22px}.contact-details a{display:inline-flex;flex-direction:column;text-decoration:none;padding:13px 18px;border:1px solid rgba(7,56,75,.18);border-radius:10px;background:rgba(255,255,255,.48)}.contact-details a:hover{background:#fff}.contact-details a span{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#56717a}.contact-details a strong{font-size:18px;color:var(--navy)}.contact-form{background:#fff;padding:38px;border-radius:14px;box-shadow:0 22px 70px rgba(7,56,75,.12);display:flex;flex-direction:column;gap:15px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.button-coral{background:var(--coral);color:white;margin-top:5px}
.calendar-toolbar{display:flex;align-items:center;gap:10px;margin-top:24px}.calendar-toolbar label{font-size:13px;font-weight:700;color:var(--navy)}.calendar-toolbar select{width:auto;min-width:105px;margin:0;padding:9px 34px 9px 12px}.calendar-toolbar+.calendar-legend{margin-top:18px}
.calendar-period-nav{display:flex;align-items:center;gap:24px;margin-bottom:18px}.calendar-nav-buttons{display:flex;flex:0 0 auto}.calendar-nav-buttons button{width:46px;height:46px;border:0;border-right:1px solid rgba(255,255,255,.22);background:var(--sea);color:#fff;font-size:31px;line-height:1;cursor:pointer}.calendar-nav-buttons button:first-child{border-radius:7px 0 0 7px}.calendar-nav-buttons button:last-child{border-right:0;border-radius:0 7px 7px 0}.calendar-nav-buttons button:hover:not(:disabled),.calendar-nav-buttons button:focus-visible:not(:disabled){background:var(--navy)}.calendar-nav-buttons button:disabled{opacity:.35;cursor:not-allowed}.calendar-period-nav>p{margin:0;color:var(--navy);font-family:var(--display);font-size:clamp(22px,3vw,32px);font-weight:600;white-space:nowrap}
.calendar-status:empty{display:none}
footer{background:#062c3b;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:35px clamp(24px,5vw,76px);font-size:13px}footer strong,footer span{display:block}footer span,footer p{color:#9db4bc}footer a{text-underline-offset:5px}.footer-links{display:flex;gap:20px}.privacy-page{width:min(780px,calc(100% - 40px));margin:0 auto;padding:70px 0 100px}.privacy-page h1{color:var(--navy);font-size:clamp(42px,7vw,72px)}.privacy-page h2{margin-top:42px;color:var(--navy);font-size:26px}.privacy-page p,.privacy-page li{color:#516a73}.privacy-back{display:inline-block;margin-bottom:35px;color:var(--sea);font-weight:700;text-underline-offset:4px}
@media(max-width:900px){.topbar{height:72px}.menu-button{display:block}.topbar nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;padding:20px 24px 26px;box-shadow:0 15px 30px rgba(0,0,0,.1);flex-direction:column;align-items:stretch}.topbar nav.open{display:flex}.topbar nav a{text-align:center}.hero{min-height:calc(100vh - 72px)}.hero-copy{margin-left:24px;padding:80px 0 170px}.hero-card{left:24px;right:24px;bottom:24px}.hero-card div{padding:15px}.scroll-cue{display:none}.intro,.amenities-inner,.location,.availability,.city-inner,.contact-inner{grid-template-columns:1fr}.availability-summary{padding-top:0}.calendar-grid{grid-template-columns:repeat(2,1fr)}.amenities-note{grid-column:1}.intro-copy{padding-top:0}.gallery{grid-template-columns:repeat(2,1fr)}.city-grid{margin-top:10px}.booking-panel{grid-template-columns:1fr}.section{padding:80px 0}.contact-inner{gap:50px}}
@media(max-width:600px){body{font-size:16px}.brand strong{font-size:16px}.hero-shade{background:linear-gradient(90deg,rgba(4,39,53,.8),rgba(4,39,53,.35))}h1{font-size:48px}.hero-intro{font-size:17px}.hero-actions{align-items:stretch;flex-direction:column}.hero-card span{font-size:9px}.hero-card strong{font-size:24px}.intro{gap:25px}.feature-grid{grid-template-columns:1fr}.feature-grid article,.feature-grid article+article{padding:24px 0;border-right:0;border-bottom:1px solid var(--line);min-height:0}.amenities-grid{grid-template-columns:1fr}.amenities-grid article,.amenities-grid article:nth-child(even){padding:24px 0;border-right:0}.gallery-head{align-items:start;flex-direction:column}.gallery{grid-auto-rows:230px}.photo,.photo-wide,.photo-tall{grid-column:span 1;grid-row:span 1}.location{gap:40px}.city-grid{grid-template-columns:1fr}.city-grid article,.city-grid article:nth-child(n+3){padding:24px 0;border-left:0;border-top:1px solid rgba(255,255,255,.18)}.calendar-period-nav{gap:12px}.calendar-nav-buttons button{width:40px;height:40px}.calendar-period-nav>p{font-size:18px;white-space:normal}.calendar-grid{grid-template-columns:1fr}.calendar-month{padding:16px}.booking-panel{padding:28px}.field-row{grid-template-columns:1fr}.contact-form{padding:25px}.section{width:min(100% - 32px,1180px)}footer{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo img,.button{transition:none}}
