@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&display=swap');
:root{--ink:#123e4b;--sand:#f5f0e6;--gold:#be8c42;--line:#d9d5c9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--sand);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;gap:13px}.brand img{width:76px;height:76px;object-fit:contain;mix-blend-mode:multiply}.wordmark{font-family:Georgia,serif;font-size:29px;line-height:1.1;letter-spacing:4px}.wordmark small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:1.4px;margin-top:6px}nav{display:flex;gap:32px;align-items:center;font-size:14px}.navlink{padding:12px 0}.navlink:hover{color:#9a6a27}.btn{display:inline-flex;justify-content:center;align-items:center;gap:25px;background:var(--ink);color:white;border:1px solid var(--ink);padding:15px 24px;font-size:14px;font-weight:500;transition:background .2s}.btn:hover{background:#205968}.btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}.btn.outline{background:transparent;color:var(--ink)}.arrow{font-size:22px;line-height:1}.menu{display:none;background:none;border:0;font-size:25px;color:var(--ink)}.hero{position:relative;height:650px;min-height:540px;margin:0 20px;background:#406d74;overflow:hidden}.hero>img{height:100%;width:100%;object-fit:cover;object-position:center 52%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,34,39,.55),rgba(5,34,39,.07))}.hero-copy{position:absolute;z-index:1;top:15%;left:6%;max-width:660px;color:#fff}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:2.6px;font-weight:600}.hero h1{font-family:'Italiana',Georgia,serif;font-size:clamp(60px,6.8vw,98px);font-weight:400;line-height:.8;margin:23px 0}.hero h1 em{font-weight:400;color:#e8c997}.hero p{max-width:400px;font-size:16px;line-height:1.8;margin-bottom:27px}.hero .btn{background:var(--sand);color:var(--ink);border-color:var(--sand)}.hero-note{position:absolute;bottom:66px;right:4%;z-index:1;color:#fff;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;writing-mode:vertical-rl}.booking{position:relative;z-index:2;max-width:1120px;margin:-42px auto 0;display:grid;grid-template-columns:1.1fr 1fr 1fr .8fr 1.2fr;align-items:center;background:#fffdf8;padding:24px 28px;box-shadow:0 15px 40px #153f4a0c;gap:24px}.booking .intro{font-family:'Italiana',Georgia,serif;font-size:27px;line-height:1.1}.booking label{display:flex;flex-direction:column;font-size:11px;text-transform:uppercase;letter-spacing:1.4px;border-left:1px solid var(--line);padding-left:22px}.booking input,.booking select{border:0;background:transparent;color:var(--ink);padding:6px 0;font-size:14px;width:100%;min-width:0}.booking .btn{padding:17px 15px;gap:12px}.section{max-width:1180px;margin:auto;padding:105px 35px}.intro-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:120px;align-items:start}.kicker{color:#956a2d}.section h2,.room-top h1,.modal h2{font-family:'Italiana',Georgia,serif;font-size:clamp(40px,4.3vw,60px);line-height:1.12;font-weight:400;margin:18px 0 23px}.section p{color:#5b6c6d}.intro-section h2{margin-top:0}.text-link{display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid var(--gold);padding:9px 0;font-size:14px}.rooms-section{background:#eae5d9}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section-heading h2{margin-bottom:0}.room-card{display:grid;grid-template-columns:1.4fr 1fr;background:var(--sand)}.room-card img{width:100%;height:440px;object-fit:cover}.room-card .copy{padding:55px 45px;align-self:center}.room-card h3{font-family:'Italiana',Georgia,serif;font-size:40px;line-height:1.2;font-weight:400;margin:17px 0}.room-card .btn{margin-top:20px}.fine{font-size:12px!important;color:#69787a}.food{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.food img{width:100%;height:490px;object-fit:cover;border-radius:50% 50% 0 0}.food .copy{padding:20px 0}.island{background:var(--ink);color:var(--sand);text-align:center;padding:77px 24px}.island h2{font-family:'Italiana',Georgia,serif;font-size:clamp(40px,5vw,67px);font-weight:400;line-height:1.15;margin:18px 0 28px}.island p{color:#d3ddd8;max-width:500px;margin:0 auto 26px}footer{padding:50px 6% 24px}.footer-main{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-bottom:35px}.footer-links{display:flex;gap:27px;font-size:14px}.footer-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;font-size:12px;color:#627373}.room-top{max-width:1180px;margin:0 auto;padding:32px 35px 40px}.breadcrumb{font-size:13px;color:#657878;margin-bottom:36px}.room-title{display:flex;align-items:end;justify-content:space-between}.room-title h1{margin-bottom:0}.room-image{width:calc(100% - 40px);margin:0 20px;max-height:620px;object-fit:cover;display:block}.room-body{display:grid;grid-template-columns:1.4fr 1fr;gap:90px}.room-body h2{font-size:42px}.aside{border:1px solid var(--line);padding:33px;height:fit-content}.aside h3{font-family:'Italiana',Georgia,serif;font-size:32px;margin:0 0 14px}.aside .btn{width:100%;margin-top:16px}.details{margin-top:30px;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:17px 0}summary{cursor:pointer;font-size:15px}details p{font-size:14px}.modal{border:0;background:var(--sand);color:var(--ink);padding:40px;width:calc(100% - 32px);max-width:540px;max-height:90vh;overflow:auto}.modal::backdrop{background:#082e3ac9;backdrop-filter:blur(5px)}.modal h2{font-size:39px}.close{position:absolute;top:12px;right:15px;border:0;background:none;font-size:26px;color:var(--ink)}.modal form{display:grid;gap:16px}.modal label{display:grid;gap:5px;font-size:14px}.modal input,.modal select{width:100%;min-width:0;border:1px solid var(--line);background:#fffdf7;padding:11px;color:var(--ink)}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.result{background:#e7e5d9;padding:18px;font-size:14px;white-space:pre-line}.modal .muted{font-size:14px;color:#5c6b6d}.hidden{display:none!important}@media(min-width:1500px){.hero{max-width:1700px;margin:auto}}@media(max-width:1000px){nav{gap:18px}nav .navlink:nth-child(3){display:none}.booking{margin:-35px 45px 0;grid-template-columns:1fr 1fr 1fr 1.2fr;gap:12px}.booking .intro{display:none}.booking label{padding-left:10px}.intro-section{gap:60px}.food{gap:45px}.room-body{gap:40px}}@media(max-width:700px){header{height:82px;padding:0 20px;gap:10px}.brand img{width:56px;height:56px}.wordmark{font-size:22px;letter-spacing:2px}.wordmark small{font-size:7px}.menu{display:block}nav{display:none;position:absolute;top:82px;left:0;right:0;z-index:10;background:var(--sand);padding:24px;box-shadow:0 12px 20px #123e4b22}nav.open{display:flex;flex-direction:column;align-items:stretch}nav .navlink:nth-child(3){display:block}.hero{margin:0 10px;height:580px}.hero-copy{left:7%;right:7%;top:12%}.hero h1{font-size:61px}.hero p{max-width:300px;font-size:15px}.hero-note{bottom:100px}.booking{margin:-52px 25px 0;padding:22px;grid-template-columns:1fr 1fr;gap:16px}.booking label{border:0;padding:0}.booking .btn{height:52px}.section{padding:66px 25px}.intro-section,.food,.room-body{grid-template-columns:1fr;gap:25px}.section-heading{align-items:start;flex-direction:column;gap:15px}.room-card{grid-template-columns:1fr}.room-card img{height:300px}.room-card .copy{padding:28px}.food img{height:350px;max-width:400px}.food{gap:30px}.footer-main{align-items:start;flex-direction:column}.footer-links{gap:20px;flex-wrap:wrap}.footer-bottom{flex-direction:column;gap:8px}.room-top{padding:25px}.room-title{display:block}.room-title>.btn{margin-top:25px}.room-image{height:350px;width:calc(100% - 20px);margin:0 10px}.room-body{gap:30px}.modal{padding:30px 23px}.date-grid{grid-template-columns:1fr}.room-top h1{font-size:48px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Complete supplied brand artwork. */
.brand{flex-shrink:0}.brand img{display:block;width:104px;height:auto;object-fit:contain;border-radius:0;mix-blend-mode:normal}footer .brand img{width:180px}@media(max-width:700px){.brand img{width:82px}footer .brand img{width:160px}}

/* Real accommodation and property photography supplied by the owner. */
.room-card img{display:block;object-position:center 65%}
.accommodation-gallery{max-width:1440px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:16px;align-items:stretch}
.accommodation-gallery img{display:block;width:100%;height:100%;max-height:640px;aspect-ratio:3/4;object-fit:cover;object-position:center}
.property-gallery{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:-50px}
.property-gallery figure{margin:0;min-width:0}.property-gallery img{display:block;width:100%;height:370px;object-fit:cover}.property-gallery figure:nth-child(2) img{object-position:center 65%}.property-gallery figcaption{padding-top:10px;font-size:14px;color:var(--ink)}
@media(max-width:700px){.accommodation-gallery{padding:0 10px;grid-template-columns:1fr 1fr;gap:10px}.accommodation-gallery img:first-child{grid-column:1/-1;aspect-ratio:3/4;max-height:none}.accommodation-gallery img{aspect-ratio:9/16;max-height:none}.property-gallery{margin-top:8px;gap:22px;grid-template-columns:1fr}.property-gallery img{height:auto;max-height:540px;object-fit:cover}}

.about-story{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;padding-top:40px;padding-bottom:60px}.about-story h2{margin-top:16px}.about-story p:first-child{margin-top:0}.about-family{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:20px;padding-bottom:60px}.about-family>img{width:100%;height:auto;display:block}.about-spaces{padding-top:35px}.about-spaces .property-gallery{margin-top:0}@media(max-width:700px){.about-story,.about-family{grid-template-columns:1fr;gap:24px}.about-page .room-top h1{font-size:42px}.about-story{padding-top:20px}.about-family{padding-bottom:30px}}

.room-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:12px;padding-bottom:70px}.room-type{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);padding:30px 24px;background:#fffdf8}.room-type h2{font-size:34px;margin:20px 0;line-height:1.15}.room-type .bed-configuration{font-size:16px;color:var(--ink);margin:0 0 32px}.room-type .btn{margin-top:auto;width:100%;gap:12px;padding:14px 12px}.room-photo-heading{max-width:1180px;margin:0 auto;padding:0 35px 24px}.room-photo-heading h2{font-family:'Italiana',Georgia,serif;font-size:42px;line-height:1.15;font-weight:400;margin:16px 0}.room-availability{padding-top:32px;padding-bottom:60px}.room-availability p{margin:0}@media(max-width:900px){.room-types{grid-template-columns:1fr}.room-type{padding:28px}.room-type .btn{width:auto}.room-photo-heading{padding-left:25px;padding-right:25px}}

.room-type .bed-configuration{margin-bottom:12px}.room-type .room-size{font-size:14px;margin:0 0 18px}.room-amenities{width:100%;margin-bottom:24px;border-top:1px solid var(--line)}.room-amenities ul{padding-left:20px;font-size:14px;margin-bottom:0}.room-amenities li{margin:6px 0}
