@font-face { font-family:"DM Sans"; font-style:normal; font-weight:400 700; font-display:swap; src:url("assets/fonts/dm-sans-latin-ext.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"DM Sans"; font-style:normal; font-weight:400 700; font-display:swap; src:url("assets/fonts/dm-sans-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Playfair Display"; font-style:normal; font-weight:500 700; font-display:swap; src:url("assets/fonts/playfair-display-latin-ext.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Playfair Display"; font-style:normal; font-weight:500 700; font-display:swap; src:url("assets/fonts/playfair-display-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Playfair Display"; font-style:italic; font-weight:500; font-display:swap; src:url("assets/fonts/playfair-display-italic-latin-ext.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Playfair Display"; font-style:italic; font-weight:500; font-display:swap; src:url("assets/fonts/playfair-display-italic-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
:root { --ink:#182425; --muted:#4b5956; --paper:#f4f1eb; --sand:#d8c6ae; --terra:#a24d31; --ocean:#286568; --line:rgba(24,36,37,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans", Arial, sans-serif; font-size:16px; line-height:1.55; }
button, input, textarea, select { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
section[id] { scroll-margin-top:24px; }
:focus-visible { outline:3px solid #f4c7a7; outline-offset:3px; }
.site-header { position:absolute; z-index:5; inset:0 0 auto; height:92px; padding:20px clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; color:#fff; border-bottom:1px solid rgba(255,255,255,.28); }
.brand { display:inline-grid; justify-items:start; line-height:1; font-weight:600; min-width:172px; }
.brand span { font-family:"Playfair Display",serif; font-size:22px; letter-spacing:.08em; white-space:nowrap; }.brand small { font-size:7px; letter-spacing:.16em; margin-top:7px; white-space:nowrap; opacity:.82; }
.desktop-nav { display:flex; gap:clamp(20px,3.2vw,50px); margin-left:auto; margin-right:clamp(28px,5vw,70px); font-size:15px; font-weight:600; letter-spacing:.01em; }.desktop-nav a { transition:opacity .2s; }.desktop-nav a:hover { opacity:.65; }
.header-cta, .button { background:var(--terra); color:white; padding:13px 19px; border:1px solid var(--terra); font-size:13px; font-weight:600; letter-spacing:.01em; transition:transform .2s, background .2s; }.header-cta:hover,.button:hover { transform:translateY(-2px); background:#9e472d; }.header-cta span,.button span { padding-left:10px; }
.menu-toggle { display:none; border:0; background:transparent; width:42px; padding:9px 0; }.menu-toggle span { display:block; height:1px; background:#fff; margin:6px 0; }
.hero { min-height:780px; height:100svh; max-height:980px; position:relative; color:white; overflow:hidden; }.hero>img { width:100%; height:100%; object-fit:cover; object-position:center 58%; }.hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,20,21,.34),rgba(11,22,22,.05) 46%,rgba(7,20,21,.47)); }.hero-content { position:absolute; left:clamp(24px,9.3vw,142px); bottom:clamp(72px,13vh,150px); max-width:720px; }.eyebrow { text-transform:uppercase; letter-spacing:.17em; font-size:11px; font-weight:700; margin:0 0 19px; color:var(--ocean); }.eyebrow.light { color:#fff; }.hero h1,.section h2,.contact h2,.modal h2 { font-family:"Playfair Display", Georgia, serif; font-weight:500; letter-spacing:-.04em; line-height:1.02; margin:0; }.hero h1 { font-size:clamp(54px,8.5vw,126px); max-width:690px; }.hero-intro { font-size:18px; max-width:430px; margin:23px 0 30px; }.round-link { display:inline-flex; gap:20px; align-items:center; text-transform:uppercase; font-size:11px; letter-spacing:.15em; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:8px; }.round-link span { font-size:17px; }.hero-caption { position:absolute; right:clamp(24px,5vw,76px); bottom:30px; margin:0; font-size:11px; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; }
.section { padding:clamp(80px,12vw,180px) clamp(24px,9.3vw,142px); }.intro { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(50px,11vw,165px); align-items:end; }.section h2 { font-size:clamp(41px,5.2vw,76px); max-width:760px; }.intro-text { max-width:450px; }.intro-text p,.stay-copy>p,.place-copy>p { color:#3f4c4a; font-size:17px; }.text-link { display:inline-block; margin-top:15px; color:var(--terra); text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:.13em; border-bottom:1px solid var(--terra); padding-bottom:7px; }.text-link span { padding-left:12px; font-size:17px; }.image-break { height:min(66vw,890px); overflow:hidden; }.image-break img { width:100%; height:100%; object-fit:cover; object-position:center; }
.stay { background:#dce5df; display:grid; grid-template-columns:1fr 1fr; padding-top:0; padding-bottom:0; gap:clamp(55px,9vw,150px); align-items:center; }.stay-image { margin-left:calc(clamp(24px,9.3vw,142px) * -1); height:min(70vw,810px); }.stay-image img { height:100%; width:100%; object-fit:cover; object-position:center; }.stay-copy { padding:80px 0; max-width:520px; }.stay-copy h2,.place h2 { font-size:clamp(40px,4.8vw,69px); }.note { font-size:13px!important; padding-left:17px; border-left:1px solid var(--ocean); color:var(--muted)!important; margin:27px 0 32px; }
.gallery { background:#fbfaf7; }.section-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(48px,9vw,140px); align-items:center; margin-bottom:58px; }.gallery-intro { width:100%; max-width:none; }.gallery-intro>p:first-child { color:#3f4c4a; font-size:17px; }.gallery-intro .note { width:100%; max-width:none; box-sizing:border-box; }.gallery-grid { display:grid; grid-template-columns:1.25fr .75fr .75fr; grid-auto-rows:270px; gap:15px; }.gallery-card { position:relative; padding:0; overflow:hidden; border:0; background:#ddd; color:white; text-align:left; }.gallery-card.large { grid-column:span 2; grid-row:span 2; }.gallery-card.wide { grid-column:span 2; }.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }.gallery-card:hover img { transform:scale(1.045); }.gallery-card:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(0,0,0,.45)); }.gallery-card span { position:absolute; z-index:1; bottom:17px; left:18px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.place { display:grid; grid-template-columns:1fr .95fr; align-items:center; gap:10vw; overflow:hidden; }.place-copy { max-width:560px; }.place-art { height:min(45vw,570px); background:#cf8157; position:relative; overflow:hidden; color:#fff2dd; }.place-art .sun { width:38%; aspect-ratio:1; border-radius:50%; background:#f6d591; position:absolute; right:17%; top:14%; }.horizon { position:absolute; height:3px; background:#fff2dd; opacity:.9; left:0; right:0; top:57%; }.sea { position:absolute; height:43%; background:#2a686d; bottom:0; width:100%; clip-path:polygon(0 12%,21% 18%,45% 7%,68% 17%,100% 6%,100% 100%,0 100%); }.place-art p { position:absolute; z-index:2; bottom:25px; left:30px; margin:0; font-size:clamp(25px,3.5vw,51px); line-height:.9; letter-spacing:.08em; }.place-art em { font-family:"Playfair Display",serif; font-size:.56em; font-weight:500; letter-spacing:0; }
.faq { background:#e7e1d6; }.faq-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(48px,9vw,140px); align-items:end; margin-bottom:58px; }.faq-heading>p { max-width:510px; margin:0; color:#3f4c4a; font-size:17px; }.faq-list { max-width:980px; margin-left:auto; border-bottom:1px solid var(--line); }.faq-list details { border-top:1px solid var(--line); }.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 2px; cursor:pointer; list-style:none; font-size:17px; font-weight:600; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary::after { content:"+"; flex:0 0 auto; color:var(--terra); font-size:24px; font-weight:400; line-height:1; transition:transform .2s; }.faq-list details[open] summary::after { transform:rotate(45deg); }.faq-list details p { max-width:760px; margin:-4px 46px 25px 2px; color:var(--muted); font-size:14px; }
.contact { background:var(--ink); color:#fff; padding:clamp(90px,11vw,160px) clamp(24px,9.3vw,142px); }.contact-inner { max-width:900px; }.contact h2 { font-size:clamp(49px,6vw,88px); }.contact p:not(.eyebrow) { color:#c6d2cf; max-width:440px; margin:26px 0 31px; }.button-light { background:#f6eee2; color:var(--ink); border-color:#f6eee2; }.button-light:hover { background:#dce5df; }
.contact-email { display:inline-flex; align-items:baseline; gap:12px; margin-top:20px; color:#d9e2df; border-bottom:1px solid rgba(217,226,223,.42); padding-bottom:5px; font-size:12px; letter-spacing:.04em; }.contact-email span { color:#9eb0ac; text-transform:uppercase; font-size:9px; font-weight:700; letter-spacing:.14em; }.contact-email:hover { color:#fff; border-color:#fff; }.contact-email[aria-disabled="true"] { display:none; }
.contact-nap { display:flex; flex-wrap:wrap; gap:7px 17px; align-items:center; margin-top:24px; color:#9eb0ac; font-size:12px; }.contact-nap strong { color:#fff; letter-spacing:.08em; text-transform:uppercase; }.contact-nap a { color:#d9e2df; border-bottom:1px solid rgba(217,226,223,.42); }.contact-nap a:hover { color:#fff; border-color:#fff; }
.footer { padding:42px clamp(24px,5vw,76px); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:15px; color:var(--muted); font-size:13px; }.footer-brand { color:var(--ink); justify-self:start; }.footer p { margin:0; text-align:center; }.footer>a:not(.brand) { justify-self:end; }.footer>small { grid-column:1/-1; padding-top:22px; border-top:1px solid var(--line); font-size:10px; letter-spacing:.07em; text-transform:uppercase; }
.modal,.lightbox { border:0; padding:clamp(30px,4vw,54px); background:#fbfaf7; color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.28); width:min(94vw,590px); }.modal::backdrop,.lightbox::backdrop { background:rgba(14,24,25,.75); backdrop-filter:blur(3px); }.modal h2 { font-size:clamp(34px,4vw,48px); margin-bottom:27px; }.modal-close { border:0; background:transparent; position:absolute; right:18px; top:12px; font-size:32px; color:var(--ink); line-height:1; }.modal form { display:grid; gap:16px; }.modal label { display:grid; gap:7px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.modal input,.modal textarea { background:transparent; border:0; border-bottom:1px solid var(--line); padding:8px 0 9px; outline-color:var(--ocean); color:var(--ink); resize:vertical; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }.form-status { min-height:1.4em; color:var(--ocean); margin:0; font-size:13px; }.form-note { color:var(--muted); font-size:11px; margin:20px 0 0; }.lightbox { width:0; height:0; max-width:calc(100vw - 32px); max-height:calc(100vh - 32px); padding:0; overflow:visible; background:#111; }.lightbox img { display:block; width:100%; height:100%; object-fit:contain; }.lightbox .modal-close { color:#fff; z-index:1; text-shadow:0 1px 8px #000; }
.reveal { animation:fade-up .7s both; animation-timeline:view(); animation-range:entry 10% cover 28%; } @keyframes fade-up { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@media (max-width:760px) { .site-header { height:78px; padding:16px 22px; }.brand { min-width:142px; }.brand span { font-size:18px; }.brand small { font-size:6px; letter-spacing:.12em; margin-top:5px; }.desktop-nav,.header-cta { display:none; }.menu-toggle { display:block; }.site-header.open { background:var(--ink); }.site-header.open .desktop-nav { display:flex; position:absolute; top:78px; left:0; right:0; background:var(--ink); padding:10px 22px 24px; flex-direction:column; gap:16px; }.hero { min-height:660px; }.hero-content { left:24px; bottom:74px; right:24px; }.hero h1 { font-size:59px; }.hero-intro { font-size:16px; }.hero-caption { display:none; }.section { padding:84px 24px; }.intro,.stay,.place { grid-template-columns:1fr; gap:35px; }.intro-text { max-width:none; }.image-break { height:94vw; }.stay { padding:0 24px 70px; }.stay-image { margin:0 -24px; height:112vw; }.stay-copy { padding:0; }.section-heading { grid-template-columns:1fr; align-items:stretch; gap:24px; margin-bottom:38px; }.gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:220px; gap:8px; }.gallery-card.large { grid-row:span 1; grid-column:span 2; }.gallery-card.wide { grid-column:span 2; }.place-art { height:88vw; }.footer { grid-template-columns:1fr auto; }.footer p { display:none; }.footer>a:not(.brand) { grid-column:2; }.footer>small { grid-column:1/-1; }.reveal { animation:none; } }

/* Enquiry contact details */
.form-contact-row { align-items:end; }
.modal-guest-field { display:grid; gap:7px; align-content:end; color:var(--ink); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.modal-guest-stepper { width:112px; min-height:39px; margin:0; padding:6px 7px 5px; border-bottom:1px solid var(--line); grid-template-columns:28px 1fr 28px; }
.modal-guest-stepper button { width:28px; height:28px; }
.modal-guest-stepper strong { font-size:14px; }

/* Booking and owner workflows extend the existing visual system. */
.skip-link { position:fixed; z-index:20; left:14px; top:-60px; padding:9px 12px; color:#fff; background:var(--ink); font-size:13px; transition:top .2s; }.skip-link:focus { top:14px; }
.header-actions { display:flex; align-items:center; gap:18px; }.language-switcher { position:relative; display:flex; align-items:center; border:1px solid rgba(255,255,255,.46); transition:border-color .2s,background .2s; }.language-switcher:hover,.language-switcher:focus-within { border-color:#fff; background:rgba(255,255,255,.08); }.language-switcher label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.language-switcher::after { content:"⌄"; position:absolute; right:9px; top:50%; transform:translateY(-57%); color:#fff; font-size:13px; pointer-events:none; }.language-switcher select { width:66px; appearance:none; border:0; outline:0; background:transparent; color:#fff; font:700 11px/1.2 "DM Sans",Arial,sans-serif; letter-spacing:.17em; padding:9px 25px 9px 10px; cursor:pointer; }.language-switcher select:focus-visible { outline:2px solid #fff; outline-offset:3px; }.language-switcher option { color:var(--ink); background:#fff; font-family:"DM Sans",Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.17em; }
.booking { background:#e7e1d6; display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(56px,9vw,140px); align-items:center; }.booking-intro { max-width:500px; }.booking-intro>p:not(.eyebrow) { color:#3f4c4a; font-size:17px; margin:27px 0 36px; }.integration-note { border-top:1px solid rgba(24,36,37,.25); padding-top:20px; display:grid; grid-template-columns:10px 1fr; gap:12px; max-width:440px; }.integration-dot { width:7px; height:7px; border-radius:50%; margin-top:8px; background:var(--terra); }.integration-note strong { font-size:13px; }.integration-note p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.booking-card { background:#fbfaf7; padding:clamp(22px,3vw,38px); box-shadow:0 18px 50px rgba(52,43,31,.12); }.booking-card-top { display:flex; justify-content:space-between; align-items:start; padding-bottom:20px; border-bottom:1px solid var(--line); }.booking-card-top p { margin:0 0 3px; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.booking-card-top strong { font-family:"Playfair Display",serif; font-weight:500; font-size:26px; }.demo-pill { color:var(--terra); border:1px solid currentColor; padding:3px 6px; font-size:9px; font-weight:700; letter-spacing:.12em; }.calendar-controls { display:grid; grid-template-columns:36px 1fr 36px; align-items:center; padding:20px 0 11px; }.calendar-controls p { margin:0; text-align:center; font-size:13px; font-weight:700; }.calendar-arrow { width:32px; height:32px; color:var(--ink); border:1px solid var(--line); background:transparent; font-size:17px; line-height:1; }.calendar-arrow:hover { color:#fff; background:var(--ink); }.calendar-controls [data-calendar-next] { justify-self:end; }.calendar-legends { display:flex; gap:15px; color:var(--muted); font-size:10px; padding-bottom:14px; }.calendar-legends span { display:inline-flex; align-items:center; gap:5px; }.legend-circle { width:8px; height:8px; border-radius:50%; display:inline-block; }.legend-circle.available { border:1px solid var(--ocean); }.legend-circle.selected { background:var(--terra); }.calendars { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.calendar-month { min-width:0; }.calendar-month h3 { text-align:center; font-size:12px; margin:0 0 9px; font-weight:700; }.weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }.weekdays span { color:var(--muted); text-align:center; font-size:9px; font-weight:700; text-transform:uppercase; padding-bottom:4px; }.calendar-day { aspect-ratio:1; padding:0; border:0; background:transparent; color:var(--ink); font-size:11px; border-radius:50%; transition:background .16s,color .16s; }.calendar-day:not(:disabled):hover { background:#dce5df; }.calendar-day:disabled { color:#c2c4c0; cursor:not-allowed; }.calendar-day.selected { background:var(--terra); color:#fff; }.calendar-day.in-range { border-radius:0; color:#fff; background:#c98c72; }.calendar-day.range-start { border-radius:50% 0 0 50%; }.calendar-day.range-end { border-radius:0 50% 50% 0; }.calendar-day.range-start.range-end { border-radius:50%; }.booking-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(96px,.72fr); margin-top:23px; border:1px solid var(--line); }.booking-summary>div { min-width:0; padding:11px 12px; border-right:1px solid var(--line); }.booking-summary>div:last-child { border-right:0; }.booking-summary>div>span { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:9px; font-weight:700; }.booking-summary>div>strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:2px; font-size:12px; }.booking-summary>.booking-guests { padding:7px 8px 6px; }.guest-stepper { display:grid; grid-template-columns:24px 1fr 24px; align-items:center; gap:2px; margin-top:3px; }.guest-stepper button { width:24px; height:24px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); font-size:17px; line-height:1; transition:background .16s,color .16s; }.guest-stepper button:hover:not(:disabled) { background:var(--ink); color:#fff; }.guest-stepper button:disabled { color:#c4c2bc; cursor:not-allowed; }.guest-stepper strong { text-align:center; font-size:13px; font-weight:600; }.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }.booking-button { width:100%; margin-top:18px; }.booking-disclaimer { margin:12px 0 0; color:var(--muted); text-align:center; font-size:10px; }
@media (max-width:960px) { .desktop-nav { gap:18px; margin-right:20px; }.booking { grid-template-columns:1fr; }.booking-intro { max-width:620px; }.booking-card { max-width:680px; } }
@media (max-width:900px) { .site-header { height:78px; padding:16px 22px; }.desktop-nav,.header-cta { display:none; }.menu-toggle { display:block; }.site-header.open { background:var(--ink); }.site-header.open .desktop-nav { display:flex; position:absolute; top:78px; left:0; right:0; background:var(--ink); padding:10px 22px 24px; flex-direction:column; gap:16px; }.header-actions { margin-left:auto; margin-right:16px; }.header-actions .header-cta { display:none; } }
@media (max-width:760px) { .header-actions { margin-left:auto; margin-right:16px; }.header-actions .header-cta { display:none; }.language-switcher { border-color:rgba(255,255,255,.55); }.booking { gap:42px; }.calendars { gap:9px; }.calendar-day { font-size:10px; }.booking-card { padding:20px 15px; margin:0 -5px; }.calendar-legends { gap:8px; }.calendar-controls { padding-top:16px; }.booking-summary>div { padding:10px 7px; }.booking-summary>div>strong { font-size:10px; } }

/* Live availability */
.demo-pill { display:none; }
.system-pill { color:var(--ocean); border:1px solid currentColor; padding:3px 6px; font-size:9px; font-weight:700; letter-spacing:.12em; }
.system-pill.offline { color:var(--terra); }
.calendar-legends { flex-wrap:wrap; padding-bottom:8px; }
.legend-circle.occupied { background:#b8b5ae; position:relative; }
.legend-circle.occupied::after { content:""; position:absolute; width:10px; height:1px; background:#777; transform:rotate(-45deg); left:-1px; top:3px; }
.availability-status { min-height:1.3em; margin:0 0 8px; color:var(--muted); font-size:10px; }
.availability-status.error { color:#9d3828; }
.calendar-day.occupied { color:#99958e; background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(95,91,85,.12) 3px,rgba(95,91,85,.12) 4px); text-decoration:line-through; }

/* Region */
.place { display:block; overflow:hidden; background:#f4f1eb; }
.place-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(48px,9vw,140px); align-items:center; margin-bottom:58px; }
.place-copy { max-width:720px; }
.place-intro { max-width:510px; }
.place-intro>p:first-child { color:#3f4c4a; font-size:17px; }
.region-mosaic { display:grid; grid-template-columns:1.2fr 1.2fr 1fr 1fr; grid-template-rows:250px 250px; gap:12px; margin-bottom:70px; }
.region-photo { position:relative; margin:0; overflow:hidden; min-width:0; }
.region-photo-main { grid-column:span 2; grid-row:span 2; }
.region-photo img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.region-photo:hover img { transform:scale(1.025); }
.photo-credit { position:absolute; z-index:1; right:7px; bottom:6px; max-width:calc(100% - 14px); padding:3px 5px; background:rgba(9,19,20,.58); color:rgba(255,255,255,.88); font-size:8px; line-height:1.25; letter-spacing:.015em; backdrop-filter:blur(2px); }
.photo-credit a:hover { text-decoration:underline; }
.attractions-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.attraction-card { min-height:300px; padding:31px 27px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; background:rgba(255,255,255,.22); }
.attraction-card>span { color:var(--terra); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.attraction-card h3 { font-family:"Playfair Display",serif; font-size:28px; font-weight:500; line-height:1.08; margin:14px 0 16px; }
.attraction-card p { color:var(--muted); font-size:14px; margin:0 0 28px; }
.attraction-card a { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-top:auto; padding-top:17px; border-top:1px solid var(--line); color:var(--ocean); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.attraction-card a b { font-size:17px; font-weight:400; }
.attraction-card-featured { grid-column:1 / -1; background:var(--ink); color:#fff; }
.attraction-card-featured>span { color:var(--sand); }
.attraction-card-featured p { color:#c6d2cf; }
.attraction-card-featured a { border-color:rgba(255,255,255,.22); color:#fff; }

/* Contact and enquiry */
.contact p:not(.eyebrow):not(.contact-status) { max-width:520px; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.whatsapp-button { background:#1e7558; border-color:#1e7558; display:inline-flex; align-items:center; }
.whatsapp-button:hover { background:#185f48; }
.whatsapp-mark { font-size:16px; padding-left:0!important; }
.button[aria-disabled="true"],.whatsapp-button[aria-disabled="true"] { opacity:.48; cursor:not-allowed; pointer-events:none; }
.contact-status { min-height:1.4em; margin:14px 0 0!important; color:#f2c7ad!important; font-size:12px; }
.consent-field { grid-template-columns:18px 1fr!important; align-items:start; gap:9px!important; text-transform:none!important; letter-spacing:0!important; font-weight:500!important; line-height:1.35; color:var(--muted); }
.consent-field input { width:16px; height:16px; margin:2px 0 0; accent-color:var(--terra); }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; opacity:0!important; }
.turnstile-container { min-height:65px; }
.modal-contact-actions { display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.modal-contact-actions .button { flex:1 1 220px; }
.modal-whatsapp { margin-top:0; }
.form-status.error { color:#9d3828; }

@media (min-width:761px) {
  .section h2 { font-size:clamp(40px,4vw,60px); }
  .stay-copy h2,.place h2 { font-size:clamp(38px,3.8vw,58px); }
  .contact h2 { font-size:clamp(46px,5vw,72px); }
}

@media (max-width:760px) {
  .gallery-card:last-child { grid-column:span 2; }
  .place-heading { grid-template-columns:1fr; align-items:stretch; gap:24px; margin-bottom:38px; }
  .region-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:240px 180px 180px; gap:7px; margin:0 -8px 48px; }
  .region-photo-main { grid-column:span 2; grid-row:span 1; }
  .attractions-grid { grid-template-columns:1fr; }
  .attraction-card,.attraction-card-featured { grid-column:span 1; min-height:260px; }
  .faq-heading { grid-template-columns:1fr; gap:24px; margin-bottom:38px; }
  .faq-list summary { padding:20px 0; font-size:16px; }
  .faq-list details p { margin:0 34px 22px 0; }
  .contact-actions { align-items:stretch; flex-direction:column; }
  .contact-actions .button { text-align:center; justify-content:center; }
  .contact-nap { display:grid; gap:6px; }
}
