/* Inspire Property v4.3.1: public stylesheet entry point. */
@import url('/styles.css?v=4.3.1');
@import url('/extra.css?v=4.3.1');
@import url('/polish.css?v=4.3.1');
@import url('/v43.css?v=4.3.1');

/* Final public presentation layer.
   Older files retain component behaviour; this layer owns proportions, semantic colour roles and layout presets. */
:root{
  --surface-page:var(--paper,#fffdf8);--surface-section:var(--cream,#f6f3ec);--surface-card:var(--card,#fff);
  --surface-raised:var(--card,#fff);--text-primary:var(--ink,#1f2621);--text-secondary:var(--muted,#69716b);
  --border-subtle:var(--line,#ddd8cc);--action-bg:var(--button,var(--green,#173a2d));--action-text:var(--button-text,#fff);
  --focus-ring:var(--gold,#b99858);--overlay:rgba(10,18,14,.76);--danger:#9a3f35;--success:#27633f;
  --radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-soft:0 8px 26px rgba(18,31,24,.08);
  --shadow-raised:0 18px 52px rgba(18,31,24,.13);--content:1240px;--control-h:42px;
  --section-y:clamp(54px,6vw,78px);--gutter:clamp(20px,5vw,64px);font-size:17px
}
:root.font-standard{font-size:16px}:root.font-comfortable{font-size:17px}:root.font-large{font-size:18.5px}
html{background:var(--surface-page)}body{background:var(--surface-page);color:var(--text-primary);font-size:1rem;line-height:1.58}
h1{font-size:clamp(2.7rem,5.4vw,5rem);line-height:1.02}h2{font-size:clamp(1.9rem,3.2vw,3rem);line-height:1.12}h3{font-size:clamp(1.18rem,1.6vw,1.45rem);line-height:1.22}
p{max-width:72ch}.eyebrow{margin-bottom:10px;font-size:.76rem}.small,.hint,.card-meta{color:var(--text-secondary);font-size:.88rem;line-height:1.5}
a{color:var(--green);text-underline-offset:3px}button,input,select,textarea{font-size:16px}
input,select,textarea{background:var(--surface-card);border-color:var(--border-subtle);color:var(--text-primary);min-height:var(--control-h);padding:9px 12px}
textarea{min-height:112px}.contact-form input,.contact-form select,.booking-form input,.booking-form select{height:var(--control-h);min-height:var(--control-h)}
.button,.nav-cta{min-height:var(--control-h);padding:10px 18px;border-radius:var(--radius-sm);gap:10px;background:var(--action-bg);color:var(--action-text);line-height:1.2}
.button:hover,.nav-cta:hover{filter:brightness(.94)}
.site-header{height:70px;padding:0 var(--gutter);background:color-mix(in srgb,var(--surface-page) 94%,transparent);border-color:var(--border-subtle)}
.site-header nav{gap:clamp(13px,1.8vw,25px)}.site-header nav a{font-size:.9rem}.brand-mark{width:40px;height:40px}.brand strong{font-size:1.2rem}
.page-container,.intro,.section-head,.contact,.promise{max-width:var(--content);padding-left:var(--gutter);padding-right:var(--gutter)}
.page-container{padding-top:clamp(32px,4vw,52px);padding-bottom:clamp(42px,5vw,70px)}
.hero{min-height:540px;padding:clamp(64px,8vw,104px) var(--gutter);align-items:center}.hero-copy{max-width:710px}.hero-lead{font-size:1.08rem;margin:18px 0 26px;line-height:1.55}
.hero-card{right:var(--gutter);bottom:var(--gutter);padding:18px 20px;box-shadow:var(--shadow-soft);border-radius:var(--radius-md)}
.intro,.promise,.contact{padding-top:var(--section-y);padding-bottom:var(--section-y)}.intro{gap:clamp(38px,7vw,88px)}.intro p:last-child{font-size:1.04rem}
.stays{padding:0 0 var(--section-y);background:var(--surface-section)}.section-head{padding-top:var(--section-y);padding-bottom:30px}
.filters{gap:8px}.filters input,.filters select{height:42px;padding:8px 12px;background:var(--surface-card);border-color:var(--border-subtle);color:var(--text-primary)}
.property-grid{max-width:var(--content);padding:0 var(--gutter);gap:18px}.property-card{background:var(--surface-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:var(--radius-md)}
.property-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-raised)}.property-image{height:230px}.card-body{padding:19px}.card-body .eyebrow{margin-bottom:6px}.card-meta{margin:7px 0 13px}.card-actions{padding-top:13px;margin-top:13px}
.badge{background:color-mix(in srgb,var(--surface-card) 94%,transparent);color:var(--text-primary);border-radius:6px;padding:6px 9px}
.promise{gap:clamp(38px,6vw,70px)}.promise-photo{min-height:440px;border-radius:var(--radius-md)}.promise-copy{padding:0}.promise-copy>p:not(.eyebrow){font-size:1rem}
.ticks{gap:9px;margin-top:22px}.ticks span{padding-bottom:9px}.contact{gap:clamp(36px,6vw,72px);background:var(--surface-section)}
.contact-form,.corporate-form-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:26px;box-shadow:var(--shadow-soft)}
label{font-size:.88rem;margin-bottom:14px}.form-row{gap:13px}.notice,.approval-note,.arrival-detail,.quote-box{background:var(--surface-section);color:var(--text-primary);border-color:var(--border-subtle)}
.loading{padding:34px;color:var(--text-secondary)}
.site-footer{background:var(--green);color:#fff}.footer-layout{max-width:var(--content);padding:46px var(--gutter);gap:clamp(28px,5vw,64px)}.footer-bottom{padding:15px var(--gutter)}
.footer-column p,.footer-contact p{font-size:.94rem}.footer-title{font-size:1.55rem}.site-footer a{color:#fff}

/* Property page and booking components */
.stay-container{padding-top:24px}.stay-title{font-size:clamp(2.3rem,4vw,3.8rem)}.stay-heading{margin-bottom:17px}.stay-gallery{height:390px;border-radius:var(--radius-md);background:var(--surface-section)}
.stay-main{margin-top:38px}.v43-stay-main{gap:clamp(28px,4vw,50px)}.stay-main section{padding:7px 0 22px;margin-bottom:23px;border-color:var(--border-subtle)}.stay-main h2{font-size:1.75rem;margin-bottom:13px}
.v43-booking{padding:20px;top:86px;background:var(--surface-raised);border-color:var(--border-subtle);box-shadow:var(--shadow-raised)}.v43-booking h2{font-size:1.42rem}
.date-summary,.guest-trigger,.guest-popover,.counter button,.platform-links a{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}
.date-summary span{padding:9px 11px}.guest-trigger{padding:9px 11px}.guest-row{padding:10px 0}.counter button{width:36px;height:36px}
.booking-calendar-head{margin-bottom:17px}.booking-calendar-head h2{font-size:1.7rem}.calendar-nav button{width:40px;height:40px;background:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}
.booking-months{gap:clamp(16px,3vw,30px)}.booking-day{color:var(--text-primary)}.booking-day.in-range{background:color-mix(in srgb,var(--action-bg) 16%,var(--surface-card))}.booking-day.selected{background:var(--action-bg);color:var(--action-text)}
.booking-day.unavailable:not(.checkout-only){color:var(--text-secondary);opacity:.6}.calendar-foot{border-color:var(--border-subtle);color:var(--text-secondary)}
.quote-box{border:1px solid var(--border-subtle)}.photo-lightbox{background:#111713;color:#fff}.photo-lightbox::backdrop,.modal-backdrop{background:var(--overlay)}
.property-detail,.payment-card{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}.close{background:var(--surface-card);color:var(--text-primary)}

/* Business page */
.business-hero{min-height:390px}.business-hero h1{font-size:clamp(2.55rem,4.8vw,4.4rem)}.business-hero p:not(.eyebrow){font-size:1.04rem}
.business-solutions{padding-top:var(--section-y);padding-bottom:var(--section-y)}.business-solutions>.section-heading{margin-bottom:28px;gap:32px}.benefit-grid{gap:13px}.benefit-grid article{background:var(--surface-card);border-color:var(--border-subtle);padding:20px}.benefit-grid h3{font-size:1.2rem}
.corporate-process{background:var(--surface-section)}.corporate-process .page-container{padding-top:var(--section-y);padding-bottom:var(--section-y)}.corporate-process ol{margin-top:26px;gap:12px}.corporate-process li{background:var(--surface-card);border-color:var(--border-subtle);padding:17px}
.business-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}.business-path{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.business-path p{margin:0;color:var(--text-secondary)}
.corporate-enquiry-layout{gap:clamp(32px,5vw,64px)}.business-date-picker{margin:0 0 20px;padding:17px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-section)}.business-date-picker .booking-calendar-head h2{font-size:1.35rem}.business-date-picker .booking-calendar-head .eyebrow{display:none}.business-date-picker .booking-day{min-height:36px}.business-date-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0;color:var(--text-secondary);font-size:.88rem}

/* The four public compositions intentionally change structure, not just decoration. */
html[data-layout=classic] .hero{align-items:center}html[data-layout=classic] .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-layout=modern] .hero{min-height:470px;max-width:1500px;margin:18px auto 0;border-radius:var(--radius-lg);display:grid;grid-template-columns:minmax(0,1.55fr) minmax(230px,.45fr);gap:32px}
html[data-layout=modern] .hero-card{position:static;align-self:end;justify-self:end}html[data-layout=modern] .intro{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);padding-top:58px;padding-bottom:58px}
html[data-layout=modern] .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-layout=modern] .property-card{border-radius:18px}html[data-layout=modern] .property-image{height:215px}
html[data-layout=modern] .promise{max-width:var(--content);background:var(--surface-section);border-radius:var(--radius-lg);margin:var(--section-y) auto;padding:clamp(28px,5vw,58px)}
html[data-layout=modern] .business-solutions .benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-layout=editorial] .hero{min-height:650px;align-items:end;padding-bottom:70px}html[data-layout=editorial] .hero-copy{max-width:760px;margin-left:clamp(0px,7vw,110px)}html[data-layout=editorial] .hero-card{display:none}
html[data-layout=editorial] .intro{grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr);align-items:start}html[data-layout=editorial] .intro>p:last-child{padding-top:42px;font-size:1.08rem}
html[data-layout=editorial] .stays{background:var(--surface-page)}html[data-layout=editorial] .property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}html[data-layout=editorial] .property-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.35fr .65fr}html[data-layout=editorial] .property-card:first-child .property-image{height:420px}html[data-layout=editorial] .property-image{height:310px}
html[data-layout=editorial] .promise{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}html[data-layout=editorial] .promise-photo{order:2;min-height:520px}html[data-layout=editorial] .promise-copy{order:1}
html[data-layout=editorial] .business-solutions>.section-heading{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}html[data-layout=editorial] .benefit-grid article:nth-child(1),html[data-layout=editorial] .benefit-grid article:nth-child(4){grid-column:span 2}
html[data-layout=compact]{--section-y:40px;--content:1380px}html[data-layout=compact] .site-header{height:64px}html[data-layout=compact] .hero{min-height:390px;padding-top:54px;padding-bottom:54px;align-items:center}html[data-layout=compact] .hero h1{font-size:clamp(2.45rem,4.5vw,4rem)}html[data-layout=compact] .hero-lead{margin:13px 0 20px}
html[data-layout=compact] .hero-card{display:none}html[data-layout=compact] .intro{padding-top:40px;padding-bottom:40px}html[data-layout=compact] .section-head{padding-top:40px;padding-bottom:22px}
html[data-layout=compact] .property-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}html[data-layout=compact] .property-image{height:165px}html[data-layout=compact] .card-body{padding:14px}html[data-layout=compact] .card-meta{margin-bottom:9px}html[data-layout=compact] .promise-photo{min-height:330px}
html[data-layout=compact] .stay-gallery{height:310px}html[data-layout=compact] .stay-main{margin-top:26px}html[data-layout=compact] .business-hero{min-height:320px}html[data-layout=compact] .benefit-grid article{padding:16px}

/* Dark mode: every public surface consumes semantic roles. */
html[data-resolved-theme=dark]{--surface-page:var(--paper);--surface-section:var(--cream);--surface-card:var(--card);--surface-raised:color-mix(in srgb,var(--card) 92%,#fff 8%);--text-primary:var(--ink);--text-secondary:var(--muted);--border-subtle:var(--line);--overlay:rgba(0,0,0,.84);--shadow-soft:0 8px 28px rgba(0,0,0,.24);--shadow-raised:0 20px 54px rgba(0,0,0,.36)}
html[data-resolved-theme=dark] .property-card,html[data-resolved-theme=dark] .contact-form,html[data-resolved-theme=dark] .corporate-form-card,html[data-resolved-theme=dark] .benefit-grid article,html[data-resolved-theme=dark] .corporate-process li,html[data-resolved-theme=dark] .business-path,html[data-resolved-theme=dark] .booking-panel,html[data-resolved-theme=dark] .photo-tile,html[data-resolved-theme=dark] .payment-card{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}
html[data-resolved-theme=dark] .filters input,html[data-resolved-theme=dark] .filters select,html[data-resolved-theme=dark] input,html[data-resolved-theme=dark] select,html[data-resolved-theme=dark] textarea{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}
html[data-resolved-theme=dark] .site-header,html[data-resolved-theme=dark] .site-header nav.mobile-open{background:color-mix(in srgb,var(--surface-page) 94%,transparent)}html[data-resolved-theme=dark] .badge{background:color-mix(in srgb,var(--surface-card) 92%,transparent)}
html[data-resolved-theme=dark] .book-ota,html[data-resolved-theme=dark] .viewer-close{background:var(--surface-card);color:var(--text-primary)}html[data-resolved-theme=dark] .modal-backdrop{background:var(--overlay)}
html[data-resolved-theme=dark] .site-footer{background:#0c120f;color:#fff}html[data-resolved-theme=dark] .site-footer a{color:#fff}html[data-resolved-theme=dark] .corporate-disclaimer{background:var(--surface-section)!important;color:var(--text-primary)}

@media(max-width:1050px){html[data-layout=compact] .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-header nav{gap:12px}.theme-switcher{order:5}}
@media(max-width:900px){
  :root{--section-y:50px}.site-header{height:66px}.menu{min-width:44px;min-height:44px;color:var(--text-primary)}.site-header nav.mobile-open{background:var(--surface-page);border-bottom:1px solid var(--border-subtle);padding:14px var(--gutter)}.site-header nav.mobile-open a{min-height:44px;display:flex;align-items:center}
  .hero{min-height:500px}.hero-card{display:none}.intro,.promise,.contact{gap:30px}.property-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.property-image{height:220px}
  html[data-layout=modern] .hero{margin:0;border-radius:0;display:flex}html[data-layout=editorial] .hero-copy{margin-left:0}html[data-layout=editorial] .property-card:first-child{display:block;grid-column:auto}html[data-layout=editorial] .property-card:first-child .property-image{height:280px}
  html[data-layout=editorial] .promise-photo{order:initial}html[data-layout=editorial] .promise-copy{order:initial}.business-paths{grid-template-columns:1fr}.business-solutions>.section-heading{grid-template-columns:1fr!important}.corporate-enquiry-layout{grid-template-columns:1fr}.stay-gallery{height:330px}
}
@media(max-width:650px){
  :root,:root.font-standard,:root.font-comfortable{font-size:16px;--gutter:20px;--control-h:44px;--section-y:44px}:root.font-large{font-size:18px}
  h1{font-size:clamp(2.35rem,12vw,3.25rem)}h2{font-size:clamp(1.65rem,8vw,2.2rem)}.hero{min-height:480px;padding:68px var(--gutter)}.hero-lead{font-size:1rem}.intro,.section-head,.promise,.contact{padding-top:44px;padding-bottom:44px}
  .property-grid{grid-template-columns:1fr!important}.property-image{height:220px!important}.contact-form,.corporate-form-card{padding:19px}.button,.nav-cta,.filters input,.filters select,.calendar-nav button,.theme-switcher button{min-height:44px}
  .stay-gallery{height:250px}.stay-main{margin-top:28px}.v43-booking{margin-inline:0;padding:17px}.booking-day{min-width:40px;min-height:40px}.business-hero{min-height:430px}.business-path{padding:18px}
  html[data-layout=compact] .hero{min-height:390px}.footer-layout{padding:38px var(--gutter)}.site-footer .footer-links{grid-template-columns:1fr}.theme-switcher{width:max-content}
}
