@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Epilogue:wght@300;400;500;600;700&display=swap");
:root{--ink:#182126;--paper:#f4f0e7;--gold:#c6a45b;--muted:#b9bdbb;--enquire-bg:#d8ccaf;--display:"Cinzel",sans-serif;--body:"Epilogue",sans-serif;--content-width:1210px;--content-gutter:clamp(24px,5vw,80px);--button-height:56px;--button-padding:26px;--button-radius:999px;--button-font-size:11px;--button-tracking:.14em;--nav-button-height:46px;--nav-button-padding:22px;--menu-fg:#fff;--menu-muted:rgba(255,255,255,.66);--menu-accent:#c6a45b;--menu-surface:rgba(15,29,36,.97);--control-size:48px;--heading-h1:clamp(40px,5.2vw,56px);--heading-h2:clamp(30px,3.6vw,44px);--heading-h3:clamp(21px,2.4vw,28px);--heading-h4:clamp(18px,1.8vw,22px);--heading-h5:clamp(16px,1.5vw,19px);--heading-h6:clamp(14px,1.2vw,16px);--prose-h2:clamp(30px,3.2vw,40px);--prose-h3:clamp(24px,2.5vw,31px);--heading-leading-h1:.96;--heading-leading-h2:1.1;--heading-leading-h3:1.14;--heading-leading-small:1.2;--heading-tracking:-.035em}

.theme-scotland{--ink:#0a2039;--paper:#f7fbff;--gold:#68b4f2;--muted:#c5d8e8;--enquire-bg:#c9deed}
.theme-ireland{--enquire-bg:#cfdacb}
.theme-italy{--enquire-bg:#dfcfaa}
.theme-france{--enquire-bg:#d8d2c8}
.theme-england{--enquire-bg:#d3d9d2}

*{box-sizing:border-box}
[hidden]{display:none!important}
/* The front-end admin bar is disabled by the theme, so WordPress must not
   leave an inline top offset on <html>. Reset both roots to keep the fixed
   header flush with the viewport on every page and template. */
html{margin:0!important;padding:0;scroll-behavior:smooth;scroll-padding-top:88px;background:var(--ink)}
body{margin:0;padding:0;font-family:var(--body);color:var(--paper);background:var(--ink);overflow-x:hidden}
body.menu-open{overflow:hidden}
body.booking-open{overflow:hidden}
/* Override the legacy common.css `main { margin:25px 0 }`, which creates a
   visible strip above and below every modern theme template. */
main{margin:0}

a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* ============================================================
   HEADING TYPOGRAPHY — single source of truth
   Change heading sizes here; component rules should only control their own
   margin, colour, width, alignment and other layout-specific presentation.
   ============================================================ */
h1,h2,h3,h4,h5,h6{font-family:var(--display)!important;font-weight:400!important;letter-spacing:var(--heading-tracking)!important;text-wrap:balance}
h1{font-size:var(--heading-h1)!important;line-height:var(--heading-leading-h1)!important}
h2{font-size:var(--heading-h2)!important;line-height:var(--heading-leading-h2)!important}
h3{font-size:var(--heading-h3)!important;line-height:var(--heading-leading-h3)!important}
h4{font-size:var(--heading-h4)!important;line-height:var(--heading-leading-small)!important}
h5{font-size:var(--heading-h5)!important;line-height:var(--heading-leading-small)!important}
h6{font-size:var(--heading-h6)!important;line-height:var(--heading-leading-small)!important}

/* Long-form copy uses the same type family but a calmer reading scale. */
.prose h2{font-size:var(--prose-h2)!important;line-height:1.1!important}
.prose h3{font-size:var(--prose-h3)!important;line-height:1.14!important}
.primary-button,.outline-link,.form-submit{position:relative;isolation:isolate;overflow:hidden;min-height:var(--button-height);padding:0 var(--button-padding);display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border:1px solid rgba(255,255,255,.58);border-radius:var(--button-radius);font-family:var(--display)!important;font-size:var(--button-font-size);font-weight:400!important;line-height:1;letter-spacing:var(--button-tracking);text-transform:uppercase;cursor:pointer;transition:color .4s,border-color .4s,background .4s,transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s}
.primary-button:before,.outline-link:before,.form-submit:before{content:"";position:absolute;z-index:-1;inset:0;background:#fff;transform:translateY(102%);transition:transform .48s cubic-bezier(.22,1,.36,1)}
.primary-button:hover,.outline-link:hover,.form-submit:hover{color:var(--ink)!important;border-color:#fff;transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.16)}
.primary-button:hover:before,.outline-link:hover:before,.form-submit:hover:before{transform:none}
.primary-button b,.outline-link b,.form-submit b{display:inline-block;flex:0 0 14px;width:14px;height:14px;overflow:hidden;background:currentColor;font-size:0;line-height:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M320 32c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32v192c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L278.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L466.7 64H352c-17.7 0-32-14.3-32-32zM64 32h160c17.7 0 32 14.3 32 32s-14.3 32-32 32H64v352h352V288c0-17.7 14.3-32 32-32s32 14.3 32 32v160c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M320 32c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32v192c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L278.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L466.7 64H352c-17.7 0-32-14.3-32-32zM64 32h160c17.7 0 32 14.3 32 32s-14.3 32-32 32H64v352h352V288c0-17.7 14.3-32 32-32s32 14.3 32 32v160c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64z'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.primary-button:hover b,.outline-link:hover b,.form-submit:hover b{transform:translate(3px,-3px)}
.selector span{font-family:"Cinzel",sans-serif!important;font-weight:400!important}

.site-header{position:fixed;inset:0 0 auto;top:0!important;z-index:50;height:92px;padding:0 clamp(22px,4vw,68px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);color:var(--menu-fg);transition:height .45s cubic-bezier(.22,1,.36,1),background .35s,border-color .35s,box-shadow .35s,backdrop-filter .35s}
/* Header variants describe the section beneath the component, not the page.
   Every template uses one of these two treatments and shares one scroll state. */
.site-header--overlay:not(.is-scrolled){background:linear-gradient(180deg,rgba(7,13,16,.47),rgba(7,13,16,.12) 68%,transparent);border-bottom-color:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.site-header--solid:not(.is-scrolled){background:rgba(15,29,36,.96);border-bottom-color:rgba(255,255,255,.11);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}

/* common.css gives every <main> a 25px vertical margin. On property pages
   that exposed the root background as a dark strip above the hero. Keep its
   bottom spacing for the footer, but let the hero begin at the viewport top. */
.property-view{--property-section-space:clamp(44px,4vw,60px);--property-section-space-compact:clamp(26px,2.5vw,36px);--property-section-gutter:max(var(--content-gutter),calc((100vw - var(--content-width))/2));display:flow-root;margin-top:0;background:var(--paper);color:var(--ink)}
/* The visual editor wraps every shortcode in legacy `.full`, whose global
   float rule collapses the property main and exposes the dark html canvas.
   Property composition is vertical, so keep these wrappers in normal flow. */
.property-view>.full{float:none;clear:both;width:100%;margin:0;padding:0;background:transparent}
.property-view>.full:empty{display:none}
.property-editor-content{clear:both;width:100%;padding:var(--property-section-space) var(--property-section-gutter);background:var(--paper);color:var(--ink)}
.property-editor-content-inner{width:100%;max-width:var(--content-width);margin:0 auto}
.property-editor-content .section-label{margin:0 0 15px;color:var(--gold)}
.property-editor-content h2{max-width:820px;margin:0 0 28px}
.property-editor-copy{max-width:900px;color:#60676a;font-size:16px;line-height:1.85}
.property-editor-copy>:first-child{margin-top:0}
.property-editor-copy>:last-child{margin-bottom:0}
.property-editor-copy p{margin:0 0 1.25em}
.property-editor-copy :is(h3,h4){margin:1.7em 0 .65em;color:var(--ink)}
.property-editor-copy :is(ul,ol){margin:0 0 1.4em;padding-left:1.35em}
.property-editor-copy li+li{margin-top:.5em}
.property-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(34px,5vw,72px) clamp(32px,5vw,68px)}
.property-content-media{margin:0;overflow:hidden;border-radius:clamp(28px,5vw,72px) clamp(18px,3vw,46px) clamp(34px,5vw,78px) clamp(16px,3vw,42px);background:#ded8cb}
.property-content-media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.property-content-copy{max-width:590px;color:#3f484b;font-size:15px;line-height:1.62}
.property-content-copy>:first-child{margin-top:0}
.property-content-copy>:last-child{margin-bottom:0}
.property-content-copy p{margin:0 0 1em}
.property-content-title{margin:0 0 14px;color:var(--ink);font:500 clamp(21px,2.2vw,28px)/1.2 var(--body);letter-spacing:.01em}
.property-policy-note{position:relative;grid-column:1/-1;margin:clamp(4px,2vw,18px) 0 0;padding:26px 34px 26px 82px;overflow:hidden;border:1px solid rgba(198,164,91,.38);border-radius:4px 34px 4px 34px;background:radial-gradient(circle at 96% 0,rgba(198,164,91,.15),transparent 34%),linear-gradient(115deg,rgba(255,255,255,.72),rgba(255,255,255,.3));color:#495054;font-size:14px;font-style:italic;line-height:1.65;box-shadow:0 18px 44px rgba(24,33,38,.07)}
.property-policy-note:before{content:"✦";position:absolute;left:24px;top:50%;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(198,164,91,.72);border-radius:50%;background:var(--paper);color:var(--gold);font-size:15px;font-style:normal;transform:translateY(-50%);box-shadow:0 7px 20px rgba(24,33,38,.08)}
.property-policy-note:after{content:"";position:absolute;right:-24px;bottom:-36px;width:110px;height:110px;border:1px solid rgba(198,164,91,.2);border-radius:50%;pointer-events:none}
.property-policy-note p{margin:0}

/* Property amenities — reusable [rr_prop_amenities] section. */
.property-amenities{position:relative;padding:clamp(34px,4vw,54px) var(--content-gutter);color:var(--ink);border-bottom:1px solid rgba(24,33,38,.1)}
.property-amenities-inner{width:100%;max-width:var(--content-width);margin:0 auto}
.property-amenities .section-label{margin:0 0 18px;color:var(--gold)}
.property-amenity-list{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.property-amenity-list li{min-height:46px;display:inline-flex;align-items:center;gap:10px;padding:9px 15px;border:1px solid color-mix(in srgb,var(--gold) 60%,rgba(24,33,38,.25));border-radius:var(--button-radius);background:rgba(255,255,255,.72);color:var(--ink);font-size:13px;line-height:1.25;box-shadow:0 7px 20px rgba(17,33,41,.035);transition:color .3s,background .3s,border-color .3s,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}
.property-amenity-list li:hover{border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px rgba(17,33,41,.13)}
.property-amenity-list svg{flex:0 0 21px;width:21px;height:21px;color:var(--gold);transition:color .3s,transform .35s cubic-bezier(.22,1,.36,1)}
.property-amenity-list li:hover svg{color:var(--gold);transform:scale(1.08)}

.site-header.is-scrolled{height:72px;border-bottom-color:rgba(255,255,255,.11);background:rgba(15,29,36,.91);-webkit-backdrop-filter:blur(16px) saturate(120%);backdrop-filter:blur(16px) saturate(120%);box-shadow:0 12px 40px rgba(0,0,0,.18)}

/* Three columns so the logo is truly centred and can never collide with the
   nav: the menu is split around it (see the wp_nav_menu_objects filter). */
/* Columns take their content width first, then share the space that is
   left. With plain 1fr both sides were forced equal, so the busier
   right-hand nav had to wrap even when there was room. */
.site-header>.desktop{flex:1;display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:clamp(10px,1.8vw,34px)}
.site-header>.desktop>.desktop-nav-left{justify-self:start}
.site-header>.desktop>.brand,.site-header>.desktop>.custom-logo-link{justify-self:center}
.site-header>.desktop>.desktop-nav-right{justify-self:end}
.site-header>.mobile{display:none}

.brand{display:inline-flex;align-items:center;gap:12px}
.brand-mark{width:39px;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(255,255,255,.58);font:500 15px/1 var(--display)}

.brand>img{display:block;width:112px;height:112px;object-fit:contain;object-position:center;transform-origin:center;transition:transform .45s cubic-bezier(.22,1,.36,1)}
/* Crest treatment: the logo hangs below the bar, then tucks back in on scroll.
   Scaling keeps the grid column width fixed, so the split nav never jumps. */
.site-header>.desktop>.brand,.site-header>.desktop>.custom-logo-link{position:relative;width:112px;height:92px;align-self:center;justify-content:center;transform:none;transition:transform .45s cubic-bezier(.22,1,.36,1)}
/* A plinth of the same header surface continues down behind the logo, so the
   protruding part sits on the header background instead of on the hero.
   `background:inherit` reuses the bar's own gradient; because this box is
   taller the gradient simply fades out at the bottom — no hard edge. */
.site-header:after{display:none}
/* Once the logo tucks into the bar there is nothing left to sit on. */
.site-header.is-scrolled:after{opacity:0}
.site-header.is-scrolled>.desktop>.brand,.site-header.is-scrolled>.desktop>.custom-logo-link{transform:translateY(0)}
.site-header.is-scrolled .brand>img,.site-header.is-scrolled .custom-logo{transform:scale(.65)}
.site-header .brand>img,.site-header .custom-logo{filter:drop-shadow(0 3px 15px rgba(0,0,0,.44))}
.site-header>.desktop>.custom-logo-link .custom-logo{width:112px;height:112px;object-fit:contain;object-position:center;transform-origin:center;transition:transform .45s cubic-bezier(.22,1,.36,1)}

.brand>span:last-child{display:flex;flex-direction:column;gap:3px}
.brand b{font:500 18px/1 var(--display)}
.brand small{font-size:7px;letter-spacing:.35em;color:rgba(255,255,255,.68)}

.desktop-nav{display:flex;align-items:center;color:var(--menu-fg);white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.desktop-nav a{color:inherit}
.desktop-nav .nav-menu{display:flex;align-items:center;gap:clamp(22px,3vw,46px);margin:0;padding:0;list-style:none}
.desktop-nav .nav-menu li{position:relative}
.rr-external-farm>a{color:#68b4f2!important}
/* A menu item may carry "outline-link" as its admin CSS class; the button
   treatment belongs to the <a>, so strip it back off the wrapping <li>. */
.desktop-nav .nav-menu li.outline-link{min-height:0;padding:0;border:0;overflow:visible}
.desktop-nav .nav-menu li.outline-link:before{display:none}
.desktop-nav .nav-menu li.outline-link:hover{transform:none}
.desktop-nav .nav-menu>li>a:not(.outline-link){display:inline-flex;align-items:center;gap:7px;padding:12px 0;border-bottom:1px solid transparent;white-space:nowrap}
.desktop-nav .nav-menu>li>a:not(.outline-link):hover{border-color:var(--menu-accent)}
/* Header actions are intentionally more compact than in-page CTAs. */
.site-header .outline-link{min-height:var(--nav-button-height);padding-inline:var(--nav-button-padding)}
/* A restrained partner-brand badge distinguishes the external Rachel's Farm
   website without competing with the primary Enquire CTA. */
.desktop-nav .nav-menu>.rr-external-farm>a:not(.outline-link){min-height:var(--nav-button-height);padding:0 20px;border:1px solid rgba(104,180,242,.38);border-radius:var(--button-radius);letter-spacing:.13em;transition:color .35s,border-color .35s,background .35s,box-shadow .35s,transform .35s cubic-bezier(.22,1,.36,1);background: #045fad; color: #FFF !important;}
.desktop-nav .nav-menu>.rr-external-farm>a:not(.outline-link):before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:#68b4f2;box-shadow:0 0 0 4px rgba(104,180,242,.11),0 0 14px rgba(104,180,242,.55)}
.desktop-nav .nav-menu>.rr-external-farm>a:not(.outline-link):hover{background:#045fad;transform:translateY(-2px); border-color:#045fad}  

/* Parent items get a caret; sub-menus open on hover and on keyboard focus */
.desktop-nav .menu-item-has-children>a:after{content:"";flex:none;width:5px;height:5px;margin-bottom:2px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .3s}
.desktop-nav .menu-item-has-children:hover>a:after{transform:rotate(-135deg);margin-bottom:-2px}
.desktop-nav .sub-menu{position:absolute;left:0;top:100%;z-index:60;min-width:232px;margin:0;padding:9px 0;list-style:none;background:var(--menu-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.11);box-shadow:0 24px 60px rgba(0,0,0,.32);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:none;visibility:hidden;opacity:0;transform:translateY(9px);transition:visibility .3s,opacity .3s,transform .35s cubic-bezier(.22,1,.36,1)}
.desktop-nav li:hover>.sub-menu,.desktop-nav li:focus-within>.sub-menu{visibility:visible;opacity:1;transform:none}
.desktop-nav .sub-menu a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 18px;color:var(--menu-fg);white-space:nowrap}
.desktop-nav .sub-menu a:hover{background:rgba(255,255,255,.07);color:var(--menu-accent)}
/* Third level and deeper fly out to the side */
.desktop-nav .sub-menu .sub-menu{left:100%;top:-10px;transform:translateX(9px)}
/* Right-hand nav opens toward the edge it sits on, so it cannot overflow. */
.desktop-nav-right .nav-menu>li>.sub-menu{left:auto;right:0}
.desktop-nav-right .sub-menu .sub-menu{left:auto;right:100%;transform:translateX(-9px)}
.desktop-nav-right .sub-menu li:hover>.sub-menu,.desktop-nav-right .sub-menu li:focus-within>.sub-menu{transform:none}
.desktop-nav .sub-menu li:hover>.sub-menu,.desktop-nav .sub-menu li:focus-within>.sub-menu{transform:none}
.desktop-nav .sub-menu .menu-item-has-children>a:after{transform:rotate(-45deg)}
.desktop-nav .sub-menu .menu-item-has-children:hover>a:after{transform:rotate(-45deg)}

.menu-toggle{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.3);background:rgba(7,14,18,.15);cursor:pointer}
.menu-toggle i{display:block;width:17px;height:1px;background:#fff;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .2s ease}
/* Open state folds the three bars into a cross. 6px = bar height + gap. */
body.menu-open .menu-toggle i:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.menu-open .menu-toggle i:nth-child(2){opacity:0}
body.menu-open .menu-toggle i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.mobile-menu,.menu-backdrop{display:none}

.showcase{position:relative}
.stage{position:fixed;inset:0;z-index:0;overflow:hidden;background:#111a1e}
.stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;transform:scale(1.03);transition:opacity .48s ease,filter .48s ease,transform .48s cubic-bezier(.22,1,.36,1)}
.stage img:not(.is-changing):not(.is-cinematic){transform:scale(1.045)}
.stage img.is-changing{opacity:.82;filter:blur(1px);transform:translate3d(var(--pan-from-x,0),var(--pan-from-y,0),0) scale(var(--zoom-from,1.05))}
.stage img.is-cinematic{animation:cinematicDrift 14s cubic-bezier(.25,.55,.3,1) both;will-change:transform}
.carousel-home .stage .carousel-layer,.rr-banner.is-carousel .stage .carousel-layer{z-index:0;opacity:0;transition:opacity 1.6s cubic-bezier(.4,0,.2,1)}
.carousel-home .stage .carousel-layer.is-active,.rr-banner.is-carousel .stage .carousel-layer.is-active{z-index:1;opacity:1}
.carousel-home .stage .carousel-layer.is-leaving,.rr-banner.is-carousel .stage .carousel-layer.is-leaving{z-index:2;opacity:0}

.image-shade{position:absolute;z-index:2;inset:0;overflow:hidden;background:linear-gradient(90deg,rgba(4,9,12,.58) 0,rgba(4,9,12,.38) 28%,rgba(4,9,12,.08) 58%,transparent 72%),linear-gradient(180deg,rgba(3,8,11,.12),transparent 42%,rgba(3,8,11,.26));pointer-events:none}
.image-shade:after{content:"";position:absolute;inset:-18%;background:radial-gradient(circle at 68% 32%,rgba(255,245,218,.09),transparent 34%);animation:cinematicLight 12s ease-in-out infinite alternate;mix-blend-mode:screen}
@keyframes cinematicDrift{from{transform:translate3d(var(--pan-from-x),var(--pan-from-y),0) scale(var(--zoom-from))}to{transform:translate3d(var(--pan-to-x),var(--pan-to-y),0) scale(var(--zoom-to))}}
@keyframes cinematicLight{from{transform:translate3d(-2%,1%,0) scale(.96);opacity:.45}to{transform:translate3d(2%,-1%,0) scale(1.04);opacity:.9}}

.scroll-track{position:relative;z-index:1}
.scroll-panel{height:100vh;min-height:620px}
.home-page{scroll-snap-type:none}
.carousel-home .scroll-track{height:100vh;min-height:620px}
.carousel-home .scroll-panel{height:100%;min-height:inherit}

.hero-copy{position:fixed;z-index:10;left:clamp(28px,5vw,80px);bottom:clamp(78px,10vh,115px);width:min(760px,calc(100vw - 56px));text-shadow:0 2px 18px rgba(0,0,0,.66)}

.hero-copy:before,.detail-title:before{content:"";position:absolute;z-index:-1;inset:-65px -70px -42px -45px;background:radial-gradient(ellipse at 35% 54%,rgba(7,13,16,.68),rgba(7,13,16,.43) 55%,transparent 83%);pointer-events:none}

.eyebrow{display:flex;align-items:center;gap:15px;margin:0 0 18px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.eyebrow span:first-child{color:var(--gold)}
.eyebrow i{width:42px;height:1px;background:rgba(255,255,255,.42)}

h1,h2,h3,p{font-weight:400}
.hero-copy h1,.detail-title h1{max-width:100%;margin:0 0 17px}
.hero-copy.is-animating>*{animation:premiumRise .82s cubic-bezier(.22,1,.36,1) both}
.hero-copy.is-animating>*:nth-child(2){animation-delay:.06s}
.hero-copy.is-animating>*:nth-child(3){animation-delay:.12s}
.hero-copy.is-animating>*:nth-child(4){animation-delay:.18s}
.hero-copy.is-animating>*:nth-child(5){animation-delay:.24s}

.meta{display:flex;flex-wrap:wrap;gap:14px 24px;margin:0 0 20px;font-size:12px}
.meta span{display:flex;gap:7px;align-items:center}
.meta b{font-weight:400}

.description{max-width:630px;margin:0 0 26px;color:rgba(255,255,255,.75);font-size:15px;line-height:1.35}

.primary-button{min-width:220px;border-color:rgba(255,255,255,.68)}
/* The arrow sits outside the Cinzel label: that face has no ↗ glyph, so it
   fell back to a mismatched one. */

.scroll-cue{position:fixed;z-index:10;left:50%;bottom:-54px;width:120px;height:120px;padding:0;border:0;border-radius:50%;background:none;color:#fff;cursor:pointer;transform:translateX(-50%);transition:opacity .2s ease,visibility .2s ease}
.scroll-cue.is-hidden{visibility:hidden;opacity:0;pointer-events:none}
.scroll-cue svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:scrollRingRotate 8s linear infinite}
.scroll-cue path{fill:none}
.scroll-cue text{fill:rgba(255,255,255,.86);font:600 8px/1 var(--body);letter-spacing:1px}
.scroll-cue i{position:absolute;inset:0;display:grid;place-items:center;font-size:0;font-style:normal;transition:transform .35s,color .35s}
.scroll-cue i:before{content:"";width:13px;height:13px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-5px) rotate(45deg); margin-top:15px;}
.scroll-cue:hover i{color:var(--gold);transform:translateY(4px)}
@keyframes scrollRingRotate{to{transform:rotate(360deg)}}

.venue-control{position:fixed;z-index:10;right:clamp(28px,4vw,70px);bottom:34px;display:flex;align-items:center;gap:28px;text-shadow:0 2px 12px rgba(0,0,0,.75)}
.venue-control:before{content:"";position:absolute;z-index:-1;inset:-46px -58px -38px -44px;background:radial-gradient(ellipse at 55% 52%,rgba(7,13,16,.68),rgba(7,13,16,.4) 55%,transparent 82%);pointer-events:none}
.carousel-home .venue-control:after{content:"";position:absolute;right:0;bottom:-12px;width:290px;height:1px;background:rgba(255,255,255,.28);transform-origin:left;transform:scaleX(0)}
.carousel-home .venue-control.is-counting:after{animation:carouselProgress 7s linear both}
@keyframes carouselProgress{to{transform:scaleX(1)}}

.count{display:flex;align-items:center;gap:10px;font-size:11px}
.count b{color:var(--gold)}
.count i{width:37px;height:1px;background:rgba(255,255,255,.38)}
.count span{color:rgba(255,255,255,.55)}

.selector{width:290px;position:relative;display:grid;grid-template-columns:1fr auto;gap:5px 20px;padding:0 0 14px;border:0;border-bottom:1px solid rgba(255,255,255,.45);background:none;text-align:left;cursor:pointer}
.selector small{grid-column:1/3;color:var(--gold);font-size:7px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.selector span{font:500 17px/1 var(--display)}
.selector b{font-weight:400}

.property-grid-section{position:relative;z-index:20;padding:clamp(85px,10vw,145px) max(var(--content-gutter),calc((100vw - var(--content-width))/2));background:var(--paper);color:var(--ink)}
.property-grid-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);grid-template-rows:auto auto;align-items:end;gap:14px clamp(60px,9vw,140px);max-width:var(--content-width);margin:0 auto 58px}
.property-grid-heading>.section-label{grid-column:1;grid-row:1;margin:0}
.property-grid-heading h2{margin:0}
.property-grid-heading>p:last-child{grid-column:2;grid-row:1/3;align-self:end;margin:0 0 3px;color:#666d70;font-size:15px;line-height:1.5}
.property-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:38px 24px;max-width:var(--content-width);margin:auto}
.property-card{grid-column:span 4;display:block;color:var(--ink)}
.property-card:nth-child(1),.property-card:nth-child(2){grid-column:span 6}
.property-card figure{aspect-ratio:4/3;margin:0 0 20px;overflow:hidden;background:#d9d4ca}
.property-card:nth-child(1) figure,.property-card:nth-child(2) figure{aspect-ratio:16/10}
.property-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.property-card:hover img{transform:scale(1.035)}
.property-card small{color:#8b8579;font-size:8px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.property-card h3{margin:10px 0 6px}
.property-card p{margin:0;color:#6c7273;font-size:12px}
.property-card-link{display:inline-flex;gap:8px;margin-top:16px;padding-bottom:5px;border-bottom:1px solid #b9b0a0;color:var(--ink);font-size:8px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}

.property-grid-section{background:#e8eef3;transition:padding-bottom .55s cubic-bezier(.22,1,.36,1)}
.property-grid-section.has-sparse-results{padding-bottom:clamp(62px,7vw,96px)}
.property-filters{max-width:1400px;margin:-8px auto 40px;display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.property-filter{min-height:40px;padding:0 20px;border:1px solid #ccd6df;border-radius:999px;background:#f8fafc;color:#182126;font-size:12px;cursor:pointer;transition:.25s}
.property-filter:hover,.property-filter.active{border-color:#182126;background:#182126;color:white}
.property-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.property-grid.is-single{grid-template-columns:minmax(0,calc((100% - 48px)/3));justify-content:center}
.property-grid.is-pair{grid-template-columns:repeat(2,minmax(0,calc((100% - 48px)/3)));justify-content:center}
.property-grid.is-empty{display:block}
.property-empty{max-width:680px;margin:auto;padding:70px 28px;border:1px solid #ccd6df;border-radius:17px;background:#f8fafc;text-align:center}
.property-empty span{color:#66737d;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.property-empty h3{margin:14px 0 10px}
.property-empty p{margin:0;color:#66737d;font-size:15px}
.property-card,.property-card:nth-child(1),.property-card:nth-child(2){grid-column:auto;height:100%;border:1px solid #ccd6df;border-radius:17px;overflow:hidden;background:#f8fafc;transition:transform .3s,box-shadow .3s}
.property-grid.is-filtering .property-card,.property-grid.is-filtering .property-empty{animation:cardEnter .55s cubic-bezier(.22,1,.36,1) both}
.property-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(34,55,72,.12)}
.property-card figure,.property-card:nth-child(1) figure,.property-card:nth-child(2) figure{position:relative;aspect-ratio:16/10;margin:0;border-radius:0}
.property-card-badge{position:absolute;z-index:2;left:14px;top:14px;padding:9px 15px;border-radius:999px;background:#23445e;color:white;font-size:12px;font-weight:600;letter-spacing:.02em}
.property-card-body{padding:21px 22px 20px}
.property-card h3{margin:12px 0}
.property-card-body>p{min-height:60px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#4f5960;font-size:12px;line-height:1.45}
.property-card-meta{display:flex;align-items:center;gap:4px 12px;margin-top:8px;padding-top:16px;border-top:1px solid #ccd6df;color:#66737d;font-size:11px}
.property-card-meta b{color:#182126}
.property-card-link{margin:0 0 0 auto;padding:0;border:0;color:#66737d;font-size:12px;letter-spacing:0;text-transform:none}
.property-card-link b{position:relative;display:inline-block;flex:0 0 14px;width:14px;height:14px;font-size:0;line-height:0}
.property-card-link b:before{content:"";position:absolute;left:2px;bottom:2px;width:9px;height:1.5px;border-radius:2px;background:currentColor;transform:rotate(-45deg);transform-origin:center}
.property-card-link b:after{content:"";position:absolute;top:1px;right:1px;width:6px;height:6px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.property-card-link-icon{display:block;flex:0 0 13px;width:13px;height:13px;margin-left:2px;color:currentColor;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.property-card:hover .property-card-link-icon{transform:translate(2px,-2px)}
@keyframes cardEnter{from{opacity:0;transform:translateY(16px)}
to{opacity:1;transform:none}
}

.delivery-section{position:relative;z-index:20;display:grid;grid-template-columns:1fr 1fr;gap:clamp(65px,10vw,150px);padding:clamp(85px,9vw,135px) max(clamp(24px,5vw,80px),calc((100vw - 1210px)/2));background:#1b252b;color:#f5f4ef;scroll-margin-top:74px}
.delivery-intro h2{max-width:620px;margin:12px 0 22px}
.delivery-intro>p:not(.section-label){max-width:600px;margin:0 0 30px;color:rgba(255,255,255,.7);font-size:14px;line-height:1.35}
.delivery-intro .primary-button{width:max-content}
.delivery-list{align-self:center}
.delivery-list p{margin:0;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.88);font-size:14px;line-height:1.6}
.delivery-list strong{color:#fff;font-weight:600}


.venue-modal{visibility:hidden;opacity:0;position:fixed;inset:0;z-index:90;transition:.35s}
.venue-modal.is-open{visibility:visible;opacity:1}
.modal-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(2,7,9,.65);backdrop-filter:blur(4px)}
.modal-card{position:absolute;right:22px;bottom:22px;width:min(480px,calc(100vw - 44px));max-height:calc(100vh - 44px);overflow:auto;padding:30px 34px;background:#17252cc5;color:#fff;box-shadow:0 25px 80px rgba(0,0,0,.4);transform:translateY(25px);transition:.4s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(4px)}
.is-open .modal-card{transform:none}
.modal-card header{display:flex;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.14)}
.modal-card header small,.section-label{color:var(--gold);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.modal-card h2{margin:6px 0 0;color:#fff}
.modal-close,.menu-close{width:38px;height:38px;border:1px solid rgba(255,255,255,.35);background:none;color:#fff;font-size:23px;cursor:pointer}
.venue-item{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:17px 0;border:0;border-bottom:1px solid rgba(255,255,255,.1);background:none;text-align:left;cursor:pointer}
.venue-item span{font-size:8px;color:rgba(255,255,255,.4)}
.venue-item b{color:rgba(255,255,255,.88);font:500 19px/1.1 var(--display)}
.venue-item em{font-size:8px;font-style:normal;color:rgba(255,255,255,.4);text-transform:uppercase}
.venue-item.active span,.venue-item.active b{color:var(--gold)}

.booking-modal{visibility:hidden;opacity:0;position:fixed;inset:0;z-index:110;color:var(--paper);transition:opacity .35s,visibility .35s}
.booking-modal.is-open{visibility:visible;opacity:1}
.booking-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(3,10,13,.72);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.booking-panel{position:absolute;top:22px;right:22px;bottom:22px;width:min(720px,calc(100vw - 44px));overflow:auto;padding:clamp(28px,4vw,52px);background:#f4f0e7;color:#182126;box-shadow:0 30px 100px rgba(0,0,0,.42);transform:translateX(35px);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.is-open .booking-panel{transform:none}
.booking-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:34px;padding-bottom:28px;border-bottom:1px solid #d5cec0}
.booking-panel h2{max-width:520px;margin:8px 0 0;text-transform:uppercase}
.booking-close{flex:0 0 42px;width:42px;height:42px;border:1px solid #aaa498;background:none;color:#182126;font-size:25px;cursor:pointer;transition:background .3s,color .3s}
.booking-close:hover{background:#182126;color:#fff}
.booking-panel form{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}
.form-field{display:flex;flex-direction:column;gap:9px}
.form-wide{grid-column:1/-1}
.form-field label{font-size:9px;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.form-field input,.form-field select,.form-field textarea{width:100%;min-height:50px;padding:12px 0;border:0;border-bottom:1px solid #aaa498;border-radius:0;outline:0;background:transparent;color:#182126;font:400 14px/1.5 var(--body);transition:border-color .25s}
.form-field textarea{resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#182126}
.form-note{margin:0;color:#75736d;font-size:11px;line-height:1.5}
.form-submit{width:auto;min-width:235px;margin-top:8px;border-color:rgba(198,164,91,.58);background:linear-gradient(110deg,#152229,#1b2d34);color:#fff;box-shadow:0 14px 30px rgba(18,31,37,.14)}
.form-submit:after{content:"";position:absolute;top:-1px;left:28px;width:58px;height:1px;background:var(--gold);transition:width .5s cubic-bezier(.22,1,.36,1)}
.form-submit:hover{border-color:#fff;box-shadow:0 22px 46px rgba(18,31,37,.24)}
.form-submit:hover:after{width:calc(100% - 56px)}

.enquiry-page{min-height:100vh;background:var(--paper);color:var(--ink)}
.enquiry-layout{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);padding-top:78px}
.enquiry-intro{position:relative;overflow:hidden;min-height:calc(100vh - 78px);display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,6vw,90px);color:#fff;background:#132229}
/* The photograph comes from the Enquiry page's Background Image field via
   --enquiry-image; the bundled shot stays as the default. */
.enquiry-intro:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,17,21,.12),rgba(8,17,21,.86)),var(--enquiry-image,url("images/optimized/villa-senesi.webp")) center/cover;opacity:.84}
.enquiry-intro>*{position:relative}
.enquiry-intro h1{max-width:680px;margin:14px 0 24px;text-transform:uppercase}
.enquiry-intro>p:last-child{max-width:520px;margin:0;color:rgba(255,255,255,.74);font-size:14px;line-height:1.75}
.enquiry-form-wrap{display:flex;align-items:center;padding:clamp(48px,6vw,90px)}
.enquiry-form-wrap form{width:100%;max-width:720px;display:grid;grid-template-columns:1fr 1fr;gap:24px 22px}
.enquiry-form-wrap .form-submit{justify-self:start}

.ajax-status{position:fixed;z-index:200;inset:0;display:grid;place-items:center;background:#0a2039;color:white;font-size:12px;letter-spacing:.14em;text-transform:uppercase;transition:.5s}
.ajax-status.is-hidden{opacity:0;visibility:hidden}


/* Keep collection and delivery content on the same horizontal container. */
.property-filters{max-width:var(--content-width)}

.property-grid.is-single,.property-grid.is-pair{justify-content:center}

.delivery-section{padding-inline:max(var(--content-gutter),calc((100vw - var(--content-width))/2))}


@media(max-width:1100px) and (min-width:801px){.property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.property-grid.is-single{grid-template-columns:minmax(0,calc((100% - 24px)/2))}
.property-grid.is-pair{grid-template-columns:repeat(2,minmax(0,calc((100% - 24px)/2)))}
.property-grid-heading{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);column-gap:55px}
}


.detail-page{background:var(--paper);color:var(--ink)}
.detail-hero{position:relative;isolation:isolate;height:92vh;min-height:650px;overflow:hidden;color:white;background:#111a1e}
/* Same cinematic pan-zoom the home hero uses, so property heroes match.
   Values mirror cinematicPaths[0] in app.js. */
.detail-hero>img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;--pan-from-x:-1%;--pan-from-y:-.4%;--zoom-from:1.05;--pan-to-x:.65%;--pan-to-y:.3%;--zoom-to:1.078;animation:cinematicDrift 16s cubic-bezier(.25,.55,.3,1) both;will-change:transform}
.detail-title>*{opacity:0;transform:translateY(26px);filter:blur(5px)}
body.is-loaded .detail-title>*{animation:premiumRise .9s cubic-bezier(.22,1,.36,1) both}
body.is-loaded .detail-title>*:nth-child(2){animation-delay:.08s}
body.is-loaded .detail-title>*:nth-child(3){animation-delay:.16s}
body.is-loaded .detail-title>*:nth-child(4){animation-delay:.24s}
.detail-backdrop{position:absolute;z-index:-3;inset:-35px;background:center/cover;filter:blur(27px) brightness(.55);transform:scale(1.08)}
.detail-title{position:absolute;z-index:3;left:clamp(24px,6vw,90px);bottom:clamp(55px,9vh,105px);max-width:900px;text-shadow:0 2px 17px rgba(0,0,0,.7)}
.back-link{display:inline-flex;margin-bottom:45px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}

.intro,.highlights,.facilities,.experiences,.location{max-width:1320px;margin:auto;padding:clamp(80px,10vw,145px) clamp(24px,6vw,80px)}
.intro{display:block}
.intro{padding-bottom:clamp(52px,6vw,82px)}
.intro>div{width:100%;max-width:none}
.intro>.section-label{margin-bottom:15px}
.intro h2{max-width:770px}
.intro h2,.highlights h2,.facilities h2,.experiences h2,.location h2,.enquire h2{margin:0 0 28px}
.intro>div>p, main p{max-width:none;color:#60676a;font-size:16px;line-height:1.85}
.location p#address{max-width:690px;color:#60676a;font-size:15px;line-height:1.85}
.intro small{color:#8c887e;font-size:8px;letter-spacing:.14em;text-transform:uppercase}

.gallery{max-width:1500px;margin:auto;padding:0 clamp(12px,2vw,28px);display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:350px 350px 270px;grid-auto-rows:270px;gap:12px}
.gallery figure{margin:0;overflow:hidden}
.gallery figure[hidden]{display:none}
.gallery figure:first-child{grid-column:1/8;grid-row:1/3}
.gallery figure:nth-child(2),.gallery figure:nth-child(3){grid-column:8/13}
.gallery figure:nth-child(n+4){grid-column:span 4}
.adaptive{width:100%;height:100%;overflow:hidden;background:#20282b}
.adaptive img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1)}
figure:hover .adaptive img{transform:scale(1.035)}
.gallery-load-more-wrap{display:flex;justify-content:center;padding:clamp(34px,5vw,62px) var(--content-gutter) 0}
.gallery-load-more{display:inline-flex;align-items:center;gap:18px;min-height:50px;padding:13px 22px;border:1px solid rgba(17,33,41,.28);background:transparent;color:var(--ink);font:600 11px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.gallery-load-more-icon{display:inline-grid;width:18px;height:18px;place-items:center;font-size:19px;font-weight:300;transition:transform .3s}
.gallery-load-more:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.gallery-load-more:hover .gallery-load-more-icon{transform:rotate(90deg)}
.gallery-load-more:disabled{cursor:wait;opacity:.75}
.gallery-load-more.is-loading .gallery-load-more-icon{border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;font-size:0;animation:galleryButtonSpin .75s linear infinite}
@keyframes galleryButtonSpin{to{transform:rotate(360deg)}}
.gallery-load-more:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

.highlights{max-width:1400px}
.highlights{padding-bottom:clamp(58px,7vw,92px)}
.highlights>h2{max-width:770px;margin-top:15px}
.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,38px);margin-top:55px}
.highlight-grid article{position:relative}
.highlight-grid figure{height:auto;aspect-ratio:4/5;margin:0}
.highlight-grid article>span{position:absolute;top:15px;left:15px;width:34px;height:34px;display:grid;place-items:center;background:rgba(20,30,35,.78);color:white;font-size:8px}
.highlight-grid .has-image .content-card-title{margin:21px 0 10px}
.highlight-grid p{margin:0;color:#686b69;font-size:15px;line-height:1.7}

.facilities{display:grid;grid-template-columns:1fr;gap:48px;padding-top:clamp(58px,7vw,92px)}
.details-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:end;column-gap:clamp(45px,8vw,30px);row-gap:18px}
.details-intro h2{max-width:770px;margin-bottom:0}
.details-intro .section-label{grid-column:1/-1;margin-bottom:0}
.details-intro .details-copy{padding-bottom:6px}
.details-lists{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.detail-list-group{padding:clamp(26px,3vw,40px);border-top:2px solid var(--gold);background:rgba(255,255,255,.46)}
.detail-list-group h3{margin:0 0 18px;text-transform:uppercase}
.facilities ul{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;list-style:none}
.detail-list-group:last-child ul{grid-template-columns:1fr}
.facilities li{display:flex;align-items:center;gap:10px;min-height:58px;padding:15px 0;border-bottom:1px solid #d5d0c5;font-size:14px;line-height:1.35}
.facilities li b{color:var(--gold)}

.experiences{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,10vw,150px);background:var(--ink);color:var(--paper)}
.experiences>div:first-child>p:last-child{color:rgba(255,255,255,.55);line-height:1.35}
.experiences>div:last-child>div{display:grid;grid-template-columns:48px 1fr;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.15)}
.experiences span{color:var(--gold);font-size:36px;font-weight:600;line-height:1;letter-spacing:-.05em;opacity:.3;transition:opacity .35s}
.experiences>div:last-child>div:hover>span{opacity:.75}
.experiences h3{margin:0}
.experiences>div:last-child h3+ p{max-width:580px;margin:9px 0 0;color:rgba(255,255,255,.55);font-size:12px;line-height:1.55}

/* Property-specific stay activities: two editable lists with independent
   prices, charging units and supporting notes. */
.property-stay{position:relative;isolation:isolate;max-width:none;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 92%,white) 0%,var(--paper) 48%,color-mix(in srgb,var(--paper) 94%,var(--gold)) 100%);color:var(--ink)}
.property-stay-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:end;gap:clamp(38px,8vw,120px);margin-bottom:clamp(34px,5vw,62px)}
.property-stay-heading h2{max-width:760px;margin:14px 0 0}
.property-stay-heading>p{max-width:560px;margin:0 0 7px;color:#686b69;line-height:1.7}
.property-activity-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,5vw,72px)}
.property-activity-columns.is-single{grid-template-columns:minmax(0,760px)}
.property-activity-columns>section{position:relative;padding:clamp(24px,3vw,40px);overflow:hidden;border-top:2px solid var(--gold);background:color-mix(in srgb,var(--paper) 24%,white 76%);box-shadow:0 26px 65px color-mix(in srgb,var(--ink) 8%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease}
.property-activity-columns>section:after{content:"";position:absolute;right:-65px;bottom:-65px;width:170px;height:170px;border:1px solid color-mix(in srgb,var(--gold) 28%,transparent);border-radius:50%;box-shadow:0 0 0 24px color-mix(in srgb,var(--gold) 7%,transparent),0 0 0 48px color-mix(in srgb,var(--gold) 4%,transparent);pointer-events:none}
.property-activity-columns>section:hover{transform:translateY(-5px);box-shadow:0 34px 85px rgba(20,36,42,.13)}
.property-activity-columns>section>h3{display:flex;align-items:center;gap:15px;margin:0;padding:0 0 22px;border-bottom:1px solid #cbc7bc;font:400 clamp(24px,2.5vw,31px)/1.3 var(--display)}
.property-activity-columns>section>h3 span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:1px solid color-mix(in srgb,var(--gold) 64%,transparent);border-radius:50%;color:var(--gold);font:600 10px/1 var(--body);letter-spacing:.08em}
.property-activity-row{position:relative;z-index:1;padding:20px 0;border-bottom:1px solid #d5d0c5;transition:padding-left .3s ease,border-color .3s ease}
.property-activity-row:hover{padding-left:9px;border-color:color-mix(in srgb,var(--gold) 75%,transparent)}
.property-activity-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:22px;}
.property-activity-main h4{margin:0;font:400 16px/1.5 var(--body);text-transform:none;letter-spacing:0}
.property-activity-price{margin:0;text-align:right;white-space:nowrap;display:none}
.rr-show-prices .property-activity-price{display:block}
.property-activity-price strong{display:inline-block;padding:5px 11px;background:color-mix(in srgb,var(--gold) 16%,transparent);color:color-mix(in srgb,var(--gold) 72%,var(--ink));font:600 18px/1.3 var(--body)}
.property-activity-price small{display:block;margin-top:4px;color:#777974;font-size:13px;line-height:1.4}
.property-activity-note{max-width:580px;margin:7px 0 0;padding-right:34px;color:#777974;font-size:13px;line-height:1.55}
.property-pricing-note{display:none;margin:30px 0 0;color:#777974;font-size:12px;line-height:1.65}
.rr-show-prices .property-pricing-note{display:block}

/* Property transfer routes mirror the reference layout but only show the
   current venue, so no redundant venue selector or comparison table. */
.property-transfers{position:relative;isolation:isolate;max-width:none;display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.3fr);gap:clamp(48px,9vw,145px);overflow:hidden;background:linear-gradient(120deg,var(--enquire-bg) 0%,color-mix(in srgb,var(--enquire-bg) 88%,var(--paper)) 58%,color-mix(in srgb,var(--enquire-bg) 90%,var(--ink)) 100%);color:var(--ink)}
.property-transfer-copy h2{margin:14px 0 24px}
.property-transfer-copy>p:not(.section-label){max-width:420px;margin:0;color:#676b68;line-height:1.7}
.property-transfer-copy .property-transfer-terms{margin-top:16px;font-size:13px}
.property-transfer-routes{display:grid;align-content:center;gap:14px}
.property-transfer-route{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;padding:25px 27px;overflow:hidden;border:1px solid rgba(19,39,47,.1);background:rgba(255,255,255,.56);box-shadow:0 18px 45px rgba(20,36,42,.07);transition:transform .35s cubic-bezier(.22,1,.36,1),background-color .35s ease,box-shadow .35s ease}
.property-transfer-route:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--gold);transform:scaleY(.28);transform-origin:center;transition:transform .35s ease}
.property-transfer-route:hover{transform:translateX(7px);background:rgba(255,255,255,.82);box-shadow:0 24px 55px rgba(20,36,42,.11)}
.property-transfer-route:hover:before{transform:scaleY(1)}
.property-transfer-route h3{margin:0;font:400 clamp(23px,2.5vw,31px)/1.2 var(--display);text-transform:none;letter-spacing:0}
.property-transfer-route>div>p{margin:9px 0 0;color:#676b68;font-size:13px;line-height:1.5}
.property-transfer-price{display:none;margin:0;text-align:right;white-space:nowrap}
.rr-show-prices .property-transfer-price{display:block}
.property-transfer-price strong{display:block;color:color-mix(in srgb,var(--gold) 70%,var(--ink));font:400 clamp(36px,4vw,50px)/1 var(--display)}
.property-transfer-price small{display:block;margin-top:8px;color:#676b68;font-size:12px;line-height:1.4}

.location{max-width:1400px;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(50px,7vw,100px)}
.location iframe{width:100%;height:420px;border:0;filter:grayscale(.3) saturate(.75);box-shadow:0 24px 60px rgba(24,33,38,.13)}

.enquire{padding:clamp(90px,12vw,160px) 24px;text-align:center;background:var(--enquire-bg);transition:background-color .7s ease}
.enquire h2{max-width:760px;margin:15px auto 24px}
.enquire>p:not(.section-label){max-width:580px;margin:0 auto 34px;color:#5f5c54;line-height:1.7}
.primary-button.dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}

.reveal{opacity:1}
.motion-section .motion-item{opacity:0;transform:translate3d(0,30px,0);filter:blur(5px);transition:opacity .9s cubic-bezier(.22,1,.36,1) var(--motion-delay,0ms),transform .9s cubic-bezier(.22,1,.36,1) var(--motion-delay,0ms),filter .75s ease var(--motion-delay,0ms)}
.motion-section.is-visible .motion-item{opacity:1;transform:none;filter:none}
.motion-section.gallery .motion-item,.motion-section .highlight-grid>.motion-item,.motion-section .feature-grid>.motion-item{clip-path:inset(10% 0 0 0);transition:opacity 1s cubic-bezier(.22,1,.36,1) var(--motion-delay,0ms),transform 1s cubic-bezier(.22,1,.36,1) var(--motion-delay,0ms),filter .8s ease var(--motion-delay,0ms),clip-path 1.15s cubic-bezier(.22,1,.36,1) var(--motion-delay,0ms)}
.motion-section.is-visible.gallery .motion-item,.motion-section.is-visible .highlight-grid>.motion-item,.motion-section.is-visible .feature-grid>.motion-item{clip-path:inset(0)}
@keyframes premiumRise{from{opacity:0;transform:translate3d(0,26px,0);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.not-found{min-height:100vh;padding:140px 8vw;background:var(--paper);color:var(--ink)}
.not-found h1{margin:0}


/* Use the same content edges throughout venue detail pages. */
.detail-title{left:max(var(--content-gutter),calc((100vw - var(--content-width))/2));max-width:min(900px,var(--content-width))}

.intro,.features,.highlights,.facilities,.experiences,.location{max-width:none;padding-inline:max(var(--content-gutter),calc((100vw - var(--content-width))/2))}

.gallery{max-width:none;padding-inline:max(var(--content-gutter),calc((100vw - var(--content-width))/2))}

.enquire{padding-inline:max(var(--content-gutter),calc((100vw - var(--content-width))/2))}


.features{padding-block:clamp(80px,9vw,130px);background:#e7ddca}
.features>h2{max-width:760px;margin:15px 0 48px}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 22px}
.feature-grid article{position:relative}
.feature-grid figure{aspect-ratio:4/3;margin:0 0 20px}
.feature-grid article>span{position:absolute;top:14px;left:14px;width:34px;height:34px;display:grid;place-items:center;background:rgba(20,30,35,.8);color:white;font-size:8px}
.feature-grid .has-image .content-card-title{margin:0 0 9px}
.feature-grid p{margin:0;color:#62625d;font-size:12px;line-height:1.7}
.details-copy{max-width:520px;margin:0;color:#686b69;font-size:15px;line-height:1.35}
.policy-list li:before{content:"—";color:var(--gold);font-weight:600}
.policy-list li{gap:12px}

.highlights.is-expanded{padding-top:clamp(90px,10vw,145px)}
.highlights.is-expanded>h2{max-width:880px}
.highlights.is-expanded .highlight-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:46px 22px}
.highlights.is-expanded .highlight-grid article{grid-column:span 4}
.highlights.is-expanded .highlight-grid article:first-child{grid-column:span 8}
.highlights.is-expanded .highlight-grid article:nth-child(2){grid-column:span 4}
.highlights.is-expanded .highlight-grid figure{aspect-ratio:4/3}
.highlights.is-expanded .highlight-grid article:first-child figure{aspect-ratio:16/9}
.highlights.is-expanded .highlight-grid article:nth-child(2) figure{aspect-ratio:4/5}

/* Text-only feature/highlight cards: used automatically when no image URL is
   supplied. Numbering stays in flow, so it cannot overlap the card title. */
.feature-grid article.is-text-only,.highlight-grid article.is-text-only,.highlights.is-expanded .highlight-grid article.is-text-only{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);align-content:start;gap:10px 16px;min-height:136px;padding:18px 0;border-top:1px solid rgba(24,33,38,.28)}
.highlights.is-expanded .highlight-grid article.is-text-only{grid-column:span 4}
.feature-grid article.is-text-only>span,.highlight-grid article.is-text-only>span,.highlights.is-expanded .highlight-grid article.is-text-only>span{position:static;grid-column:1;grid-row:1;width:34px;height:34px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:8px}
.feature-grid .content-card-title,.highlight-grid .content-card-title{grid-column:2;grid-row:1;margin:0;color:var(--ink);font:400 clamp(17px,1.7vw,18px)/1.58 var(--display);text-transform:uppercase}
.feature-grid .content-card-description,.highlight-grid .content-card-description{grid-column:2;grid-row:2;margin:0;color:#62625d;font-size:13px;line-height:1.65}

/* ============================================================
   PROPERTY SECTION RHYTHM — single source of truth
   Components own internal layout; this owns their page-level spacing.
   ============================================================ */
.property-view :is(.intro,.features,.gallery,.highlights,.facilities,.experiences,.property-stay,.property-transfers,.location,.enquire){padding-block:var(--property-section-space);padding-inline:var(--property-section-gutter)}
.property-view .property-amenities{padding-block:var(--property-section-space-compact);padding-inline:var(--property-section-gutter)}


/* Between the hamburger breakpoint and a roomy desktop the header carries a
   lot: the external pill, the crest logo and four nav items. Tighten the
   spacing and the logo so nothing has to wrap. */
@media(max-width:1400px) and (min-width:801px){
  .site-header{padding-inline:clamp(16px,2.5vw,40px)}
  .site-header>.desktop{gap:clamp(8px,1.2vw,20px)}
  .desktop-nav .nav-menu{gap:clamp(14px,1.8vw,28px)}
  .brand>img{width:150px;height:150px}
  .site-header.is-scrolled .brand>img{transform:scale(.62)}
  .site-header>.desktop>.brand{transform:translateY(22px)}
  .site-header:after{width:clamp(190px,17vw,230px)}
}
@media(max-width:1150px) and (min-width:801px){
  .desktop-nav{font-size:10px;letter-spacing:.1em}
  .desktop-nav .nav-menu{gap:12px}
  .desktop-nav .nav-menu>.rr-external-farm>a:not(.outline-link){padding:0 14px}
  .brand>img{width:128px;height:128px}
  .site-header>.desktop>.brand{transform:translateY(16px)}
}

@media(max-width:800px){
  .property-view{--property-section-space:44px;--property-section-space-compact:26px;--property-section-gutter:20px}
  .property-content-grid{grid-template-columns:1fr;gap:26px}
  .property-content-copy{max-width:none;font-size:14px;line-height:1.7}
  .property-content-media{border-radius:28px 16px 34px 18px}
  .property-content-grid>.property-content-media:nth-of-type(2){order:3}
  .property-content-grid>.property-content-copy:nth-of-type(2){order:4}
  .property-policy-note{grid-column:auto;order:5;margin-top:8px;padding:58px 20px 20px;border-radius:4px 25px 4px 25px;font-size:13px}
  .property-policy-note:before{left:20px;top:17px;width:32px;height:32px;transform:none;font-size:13px}
  .site-header{height:88px;padding:0 18px}
  /* Logo is left-aligned and in-bar on mobile, so the centred plinth would
     just be a stray blurred column. */
  .site-header:after{display:none}
.site-header>.desktop{display:none}
.site-header>.mobile{display:flex;flex:1;align-items:center;justify-content:space-between}
.desktop-nav{display:none}
.menu-toggle{display:flex}
.brand-mark{width:34px}
.brand b{font-size:15px}
.brand>img{width:88px;height:88px}

  .mobile-menu,.menu-backdrop{display:block;position:fixed}
.mobile-menu{z-index:102}
.menu-backdrop{z-index:99;visibility:hidden;opacity:0;inset:0;width:100%;border:0;background:rgba(2,7,10,.5);backdrop-filter:blur(2px);transition:.4s}
.mobile-menu{inset:0 0 0 auto;width:min(90vw,420px);padding:24px 25px 28px;overflow-y:auto;overscroll-behavior:contain;background:var(--menu-surface);color:var(--menu-fg);transform:translateX(102%);transition:transform .6s cubic-bezier(.22,1,.36,1);box-shadow:-25px 0 75px rgba(0,0,0,.35)}
body.menu-open .mobile-menu{transform:none}
body.menu-open .menu-backdrop{visibility:visible;opacity:1}
.mobile-head{display:flex;justify-content:space-between;align-items:center;color:var(--menu-accent);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
/* ---- WordPress menu inside the slide-out (the panel's only content) ----
   Every item comes from Appearance > Menus; nothing here is hard-coded. */
.mobile-nav{margin:26px 0 0}
.mobile-nav ul{margin:0;padding:0;list-style:none}
.mobile-nav li{position:relative}
.mobile-nav .mobile-nav-list>li+li{border-top:1px solid rgba(255,255,255,.09)}
/* "outline-link" set as an admin CSS class is a desktop button style; the
   panel lays its items out as full-width rows, so strip it back. */
.mobile-nav li.outline-link{display:list-item;min-height:0;padding:0;border-width:1px 0 0;border-style:solid;border-color:rgba(255,255,255,.09);overflow:visible;transform:none}
.mobile-nav li.outline-link:before{display:none}

/* Top level — rows are flex so the label sits optically centred */
.mobile-nav .mobile-nav-list>li>a{display:flex;align-items:center;min-height:56px;padding:6px 46px 6px 0;color:var(--menu-fg);font:400 16px/1.25 var(--display);letter-spacing:.015em;transition:color .3s,opacity .3s}
.mobile-nav a:hover,.mobile-nav a:focus-visible{color:var(--menu-accent)}
.mobile-nav .current-menu-item>a,.mobile-nav .current-menu-ancestor>a{color:var(--menu-accent)}

/* Chevron toggle injected by app.js — centred against the row it belongs to */
.mobile-nav .submenu-toggle{position:absolute;top:0;right:-6px;display:grid;place-items:center;width:46px;height:56px;padding:0;border:0;background:none;cursor:pointer}
.mobile-nav .submenu-toggle:before{content:"";width:7px;height:7px;margin-top:-3px;border-right:1px solid rgba(255,255,255,.55);border-bottom:1px solid rgba(255,255,255,.55);transform:rotate(45deg);transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .3s}
.mobile-nav .is-open>.submenu-toggle:before{margin-top:3px;transform:rotate(-135deg);border-color:var(--menu-accent)}

/* Sub levels — smaller, letter-spaced, quieter than the parent */
.mobile-nav .sub-menu{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.22,1,.36,1)}
.mobile-nav .sub-menu>li>a{display:flex;align-items:center;min-height:44px;padding:5px 46px 5px 15px;color:var(--menu-muted);font:500 11px/1.35 var(--body);letter-spacing:.13em;text-transform:uppercase}
.mobile-nav .sub-menu>li>a:before{content:"";flex:none;width:12px;height:1px;margin-right:11px;background:rgba(255,255,255,.28);transition:width .35s cubic-bezier(.22,1,.36,1),background .3s}
.mobile-nav .sub-menu>li>a:hover:before,.mobile-nav .sub-menu .current-menu-item>a:before{width:20px;background:var(--menu-accent)}
.mobile-nav .sub-menu .submenu-toggle{height:44px}
.mobile-nav .sub-menu li+li{border-top:1px solid rgba(255,255,255,.055)}
/* Deeper levels step further in and fade back another notch */
.mobile-nav .sub-menu .sub-menu>li>a{padding-left:34px;font-size:10px;color:rgba(255,255,255,.5)}

/* Give the panel room to breathe now that it holds only the menu */
.mobile-menu{padding-bottom:40px}

  .scroll-panel{min-height:600px}
.hero-copy{left:20px;right:20px;bottom:128px;width:auto}
.hero-copy:before{inset:-45px -30px -34px}
.eyebrow{margin-bottom:12px;font-size:7px}
.eyebrow i{width:28px}
.meta{gap:10px 15px;margin-bottom:14px;font-size:8px}
.description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:18px;font-size:12px}
.scroll-cue{display:none}
.venue-control{left:20px;right:20px;bottom:20px;justify-content:space-between;gap:15px}
.venue-control:before{inset:-34px -24px -28px}
.selector{width:205px}
.selector span{font-size:14px}
.count i{width:22px}

  .property-grid-section{padding:76px 20px}
.property-grid-heading{grid-template-columns:1fr;gap:16px;margin-bottom:38px}
.property-grid-heading>.section-label,.property-grid-heading h2,.property-grid-heading>p:last-child{grid-column:1;grid-row:auto}
.property-grid-heading>p:last-child{margin-top:5px}
/* Wrap the filters instead of hiding them in a scroller with no visible
   scrollbar — every country stays reachable on a narrow screen. */
.property-filters{justify-content:center;flex-wrap:wrap;overflow:visible;margin:0 0 28px;padding:0;gap:8px}
.property-filter{flex:0 0 auto}
.property-grid,.property-grid.is-single,.property-grid.is-pair{grid-template-columns:1fr;gap:24px}
.property-card,.property-card:nth-child(1),.property-card:nth-child(2){grid-column:auto}
.property-card figure,.property-card:nth-child(1) figure,.property-card:nth-child(2) figure{aspect-ratio:16/10}
.property-card-body>p{min-height:0}
.property-card-meta{flex-wrap:wrap}
.property-card-link{margin-left:auto}

  .delivery-section{grid-template-columns:1fr;gap:45px;padding:76px 24px}
.delivery-list p{padding:18px 0}


  .modal-card{right:0;bottom:0;width:100%;max-height:78vh;padding:24px 22px}
.venue-item{grid-template-columns:30px 1fr}
.venue-item em{display:none}

  .detail-hero{height:82vh;min-height:590px}
.detail-title{left:20px;right:20px;bottom:48px}
.detail-title:before{inset:-55px -25px -28px}
.back-link{margin-bottom:34px}

  .property-amenities .section-label{margin-bottom:14px}
  .property-amenity-list{gap:8px}
  .property-amenity-list li{min-height:42px;padding:8px 12px;font-size:12px}
  .property-amenity-list svg{width:19px;height:19px;flex-basis:19px}

  .intro,.facilities,.experiences,.location{grid-template-columns:1fr;gap:38px}
.property-stay-heading,.property-transfers{grid-template-columns:1fr;gap:30px}
.property-activity-columns{grid-template-columns:1fr;gap:38px}
.property-transfer-copy>p:not(.section-label){max-width:none}
.property-transfer-route{padding:24px 20px}
.details-intro{grid-template-columns:1fr;gap:22px}
.details-intro .section-label{grid-column:auto;margin-bottom:0}
.details-intro h2{margin-bottom:0}
.feature-grid{grid-template-columns:1fr;gap:42px}
.gallery{grid-template-columns:1fr 1fr;grid-template-rows:390px repeat(3,210px);grid-auto-rows:210px}
.gallery figure:first-child{grid-column:1/3;grid-row:auto}
.gallery figure:nth-child(n+2){grid-column:span 1}
.highlight-grid,.highlights.is-expanded .highlight-grid{grid-template-columns:1fr;gap:48px}
.highlights.is-expanded .highlight-grid article,.highlights.is-expanded .highlight-grid article:first-child,.highlights.is-expanded .highlight-grid article:nth-child(2){grid-column:auto}
.highlights.is-expanded .highlight-grid article.is-text-only{grid-column:auto;min-height:0}
.highlight-grid figure,.highlights.is-expanded .highlight-grid article:first-child figure,.highlights.is-expanded .highlight-grid article:nth-child(2) figure{aspect-ratio:4/3}
.facilities ul{grid-template-columns:1fr}
.details-lists{grid-template-columns:1fr}
.detail-list-group{padding:24px 20px}
.facilities ul{grid-template-columns:1fr}
.location iframe{height:340px}

}

@media(max-width:460px){
  .property-activity-main,.property-transfer-route{grid-template-columns:1fr;gap:10px}
  .property-activity-price,.property-transfer-price{text-align:left}
  .property-activity-price strong,.property-activity-price small{display:inline}
  .property-activity-price small{margin-left:6px}
  .property-transfer-price small{text-align:left}
  .property-activity-note{padding-right:0}
}

@media(prefers-reduced-motion:reduce){
  .property-activity-columns>section,.property-activity-row,.property-transfer-route,.property-transfer-route:before{transition:none}
}

@media(max-width:380px){
.selector{width:184px}
.description{font-size:11px}
}

@media(max-width:800px){
.booking-panel{inset:0;width:100%;padding:28px 22px}
.booking-panel form{grid-template-columns:1fr}
.form-wide{grid-column:1}
.booking-panel header{margin-bottom:25px}
.enquiry-layout{display:block;padding-top:66px}
.enquiry-intro{min-height:52vh;padding:60px 22px 42px}
.enquiry-form-wrap{padding:52px 22px}
.enquiry-form-wrap form{grid-template-columns:1fr}
.enquiry-form-wrap .form-wide{grid-column:1}
.enquiry-form-wrap .form-submit{width:100%}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
.stage img.is-cinematic,.detail-hero>img{transform:scale(1.045)}
}

/* Premium mobile-first refinement */
@media(max-width:800px){
  :root{--content-gutter:20px}
  html{scroll-padding-top:88px}
  body{font-size:15px}

  .site-header{height:68px;padding-inline:20px;border-bottom:1px solid transparent}
  .site-header.is-scrolled{height:64px;border-bottom-color:rgba(255,255,255,.1);background:rgba(10,24,31,.9);box-shadow:0 10px 35px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%)}
  .menu-toggle{position:relative;width:44px;height:44px;border-radius:50%;border-color:rgba(255,255,255,.34);background:rgba(7,14,18,.24);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .menu-toggle i{width:15px}
  .site-header>.mobile>.brand,.site-header>.mobile>.custom-logo-link{width:84px;height:64px;justify-content:flex-start;overflow:visible}
  .site-header>.mobile .brand>img,.site-header>.mobile .custom-logo{width:76px;height:76px;object-fit:contain;object-position:left center;transform:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.38))}


  .stage:after{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(180deg,rgba(3,8,10,.16) 0%,rgba(3,8,10,.03) 30%,rgba(3,8,10,.18) 53%,rgba(3,8,10,.9) 100%);pointer-events:none}
  .image-shade{background:linear-gradient(180deg,rgba(3,8,11,.08),transparent 32%,rgba(3,8,11,.3) 67%,rgba(3,8,11,.82))}
  .image-shade:after{opacity:.55}
  .stage>img{transform:scale(1.02)}
  .stage img.is-cinematic,.detail-hero>img{animation-duration:20s}
  .scroll-panel,.carousel-home .scroll-track{height:100svh;min-height:650px}
  .rr-banner-sticky{height:100svh;margin-bottom:-100svh;background:var(--ink)}

  /* On phones, let the photography own the top 55% and give the venue copy
     a calm, solid panel below it. This keeps long names readable without
     covering the focal point of the image. */
  .rr-banner.is-carousel .stage{inset:0 0 auto!important;height:55%!important;max-height:55%!important}
  .rr-banner.is-carousel .stage:after{background:linear-gradient(180deg,rgba(3,8,10,.2),transparent 48%,rgba(3,8,10,.42))}
  .rr-banner.is-carousel .image-shade{background:linear-gradient(180deg,rgba(3,8,11,.1),transparent 55%,rgba(3,8,11,.32))}
  .rr-banner.is-carousel .rr-banner-sticky:after{content:"";position:absolute;z-index:4;inset:55% 0 0;background:var(--ink);pointer-events:none}

  .hero-copy{left:20px;right:20px;bottom:150px;width:auto;text-shadow:0 2px 22px rgba(0,0,0,.7)}
  .rr-banner.is-carousel .hero-copy{top:calc(55% + 14px);bottom:auto;text-shadow:none}
  .hero-copy:before{display:none}
  .hero-copy .eyebrow{gap:11px;margin-bottom:14px;font-size:8px;letter-spacing:.2em}
  .hero-copy h1{max-width:350px;margin-bottom:14px}
  .venue-item b{color:rgba(255,255,255,.88);font:500 16px/1.1 var(--display)}
  .hero-copy .meta{gap:8px 14px;margin-bottom:13px;font-size:9px;color:rgba(255,255,255,.9)}
  .hero-copy .description{max-width:350px;margin-bottom:18px;font-size:12px;line-height:1.55;color:rgba(255,255,255,.76);-webkit-line-clamp:2}
  .hero-copy .primary-button{min-width:190px;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

  .venue-control{left:14px;right:14px;bottom:50px;min-height:88px;padding:14px 15px;gap:12px;border:1px solid rgba(255,255,255,.18);border-radius:2px;background:rgba(8,18,23,.56);box-shadow:0 18px 45px rgba(0,0,0,.24);text-shadow:none;-webkit-backdrop-filter:blur(16px) saturate(120%);backdrop-filter:blur(16px) saturate(120%)}
  .venue-control:before{display:none}
  .venue-control .count{min-width:58px;gap:7px}
  .venue-control .count b{font-size:14px}
  .venue-control .count span{font-size:9px;color:rgba(255,255,255,.48)}
  .venue-control .count i{width:15px;background:rgba(255,255,255,.32)}
  .selector{width:auto;min-width:0;flex:1;padding:7px 28px 7px 13px;border-left:1px solid rgba(255,255,255,.16);text-align:left}
  .selector small{font-size:7px;letter-spacing:.16em;color:var(--gold)}
  .selector span{display:block;max-width:210px;overflow:hidden;font-size:14px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
  .selector>b{right:2px}
  .carousel-home .venue-control:after{right:15px;bottom:8px;width:calc(100% - 95px)}

  .property-grid-section{padding:78px 20px 84px}
  .property-grid-heading{gap:13px;margin-bottom:32px}
  .property-grid-heading h2{max-width:335px}
  .property-grid-heading>p:last-child{max-width:330px;font-size:13px;line-height:1.55}
  .property-filters{margin-bottom:24px;padding-bottom:0}
  .property-filter{min-height:42px;padding:0 16px;font-size:11.5px;background:rgba(255,255,255,.44)}
  .property-grid{gap:20px}
  .property-card,.property-card:nth-child(1),.property-card:nth-child(2){border-radius:12px;box-shadow:0 14px 36px rgba(24,43,57,.07)}
  .property-card figure,.property-card:nth-child(1) figure,.property-card:nth-child(2) figure{aspect-ratio:4/3}
  .property-card-body{padding:20px}
  .property-card-body>small{font-size:8px;letter-spacing:.12em}
  .property-card h3{margin:10px 0}
  .property-card-body>p{font-size:12px;line-height:1.6}
  .property-card-meta{margin-top:14px;padding-top:14px}

  .delivery-section{gap:34px;padding:76px 20px 82px}
  .delivery-intro>p:not(.section-label){font-size:13px;line-height:1.65}
  .delivery-intro .primary-button{width:100%}
  .delivery-list p{padding:18px 0;font-size:12px;line-height:1.65}

  .mobile-menu{width:min(94vw,430px);padding:22px 22px 30px;background:rgba(10,25,32,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
  .mobile-menu nav{margin:28px 0 45px}
  .mobile-menu nav a{min-height:64px}
  .mobile-menu nav b{font-size:clamp(17px,5.2vw,21px)}
  .menu-close{width:42px;height:42px;border-radius:50%}

}

@media(max-width:380px){
  .hero-copy{bottom:144px}
  .hero-copy .description{font-size:11px}
  .venue-control{padding-inline:12px}
  .venue-control .count{min-width:50px}
  .selector span{font-size:13px}
}

/* Custom logo — mirror the bespoke .brand styling so header/footer stay consistent */
.custom-logo-link{display:inline-flex;align-items:center}
.site-header .custom-logo-link{filter:drop-shadow(0 2px 10px rgba(0,0,0,.2))}
.custom-logo{display:block;width:112px;height:auto;object-fit:contain;object-position:left center}

/* ============================================================
   FOOTER — all footer CSS lives here (main footer + bottom bar)
   ============================================================ */

.site-footer,.footer-bottom{
  --footer-bg:var(--ink);                    /* main footer panel   */
  --footer-bar:#05111f;                      /* bottom bar, a shade deeper */
  --footer-accent:var(--gold);               /* icon circles        */
  --footer-text:var(--paper);                /* headings and logo   */
  --footer-muted:rgba(244,240,231,.62);
  --footer-line:rgba(244,240,231,.10);
}

/* ---- Main footer ---- */
.site-footer{background:#0a2039;color:var(--footer-muted);clear:both;}
.site-footer-inner{max-width:var(--content-width);margin:auto;padding:clamp(48px,6vw,76px) var(--content-gutter) clamp(40px,5vw,64px);text-align:center}

.footer-brand{display:inline-block}
.footer-brand img{width:clamp(150px,16vw,150px);height:auto}

.footer-address{margin:6px 0 0;font-style:normal;font-size:15px;line-height:1.9;color:var(--footer-muted)}

/* ---- Contact blocks ---- */
.footer-contacts{list-style:none;margin:clamp(34px,4.5vw,58px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 30px}
.footer-contact{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left}
.footer-contact-icon{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--footer-accent);color:var(--ink)}
.footer-contact-icon svg{width:24px;height:24px}
.footer-contact-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.footer-contact-text b{color:var(--footer-text);font-size:16px;font-weight:600;letter-spacing:.01em}
.footer-contact-text a,.footer-contact-text span{color:var(--footer-muted);font-size:14px;word-break:break-word}
.footer-contact-text a:hover{color:var(--footer-text)}

/* ---- Bottom bar ---- */
.footer-bottom{background:var(--footer-bar);border-top:1px solid var(--footer-line)}
.footer-bottom-inner{max-width:var(--content-width);margin:auto;padding:18px var(--content-gutter);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 24px;font-size: 12px; font-weight: 400; font-family: "Cinzel", sans-serif !important;}
.footer-bottom-inner a{opacity:0.7}
.footer-bottom-inner a:hover{opacity:1}

.footer-bottom small{color:var(--footer-muted);font-size:13px;letter-spacing:.01em}

.footer-social{list-style:none;display:flex;align-items:center;gap:20px;margin:0;padding:0}
.footer-social a{display:grid;place-items:center;width:22px;height:22px;color:var(--footer-muted);transition:color .3s}
.footer-social a:hover{color:var(--footer-text)}
.footer-social svg{width:17px;height:17px}

@media(max-width:800px){
  /* Centre the stack as a block, not each row — otherwise every icon lands at
     a different x because the labels are different widths. */
  .site-footer-inner{padding-inline:24px}
  .footer-contacts{grid-template-columns:1fr;gap:22px;width:max-content;max-width:100%;margin-inline:auto}
  .footer-contact{gap:14px}
  .footer-contact-icon{width:46px;height:46px}
  .footer-contact-icon svg{width:21px;height:21px}
  .footer-contact-text b{font-size:15px}
  .footer-contact-text a,.footer-contact-text span{font-size:13.5px;overflow-wrap:anywhere}
  .footer-bottom-inner{flex-direction:column;justify-content:center;text-align:center;gap:14px}
}

@media(max-width:800px){
  .site-footer{min-height:auto;padding:48px 0 34px}
  .footer-contact{justify-content:left;}
}
@media(max-width:768px){
  .site-footer{padding:44px 0 32px}
  .site-footer .row{flex-direction:column;align-items:center;text-align:center;gap:0}
  .site-footer .row>[class*="col-"]{flex:1 1 auto;width:100%;text-align:center!important;padding:28px 0;border-top:1px solid rgba(255,255,255,.09)}
  .site-footer .row>[class*="col-"]:first-child{border-top:0;padding-top:4px}
  .site-footer .brand>img,.site-footer .custom-logo{width:126px}
  .site-footer p{max-width:80ch;margin-inline:auto;font-size:15px;line-height:1.7}
  .site-footer .footer-widget{font-size:13.5px}
  .site-footer .footer-widget li{margin-bottom:8px}
  .footer-bottom{padding:16px 24px}
  .footer-bottom-inner{flex-direction:column;text-align:center;gap:7px}
}

/* ============================================================
   404 — page not found (bespoke, on-brand)
   ============================================================ */
.error-404{position:relative;isolation:isolate;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:150px clamp(24px,6vw,80px) 110px;background:var(--paper);color:var(--ink);overflow:hidden;text-align:center}
.error-404::before{content:"404";position:absolute;z-index:-1;top:50%;left:50%;transform:translate(-50%,-50%);font:600 clamp(220px,40vw,540px)/1 var(--display);color:rgba(24,33,38,.05);letter-spacing:-.04em;pointer-events:none;white-space:nowrap}
.error-404::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(198,164,91,.12),transparent 62%);pointer-events:none}
.error-404-inner{max-width:660px}
.error-404 .section-label{display:block;justify-content:center;margin:0 0 20px;color:var(--gold)}
.error-404 h1{margin:0 0 22px}
.error-404 .error-copy{max-width:520px;margin:0 auto 42px;color:rgba(24,33,38,.6);font-size:16px;line-height:1.85}
.error-404 .error-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.error-404 .error-actions>*{flex:1 1 200px;min-width:200px;max-width:260px}
/* CTAs tuned for the light background */
.error-404 .outline-link{color:var(--ink);border-color:rgba(24,33,38,.35)}
.error-404 .outline-link:before{background:var(--ink)}
.error-404 .outline-link:hover{color:var(--paper);border-color:var(--ink)}
@media(max-width:600px){.error-404{padding-top:130px}}

/* ============================================================
   POST ARCHIVE — blog index, archives, search results (loop.php)
   ============================================================ */
.post-archive{min-height:100vh;padding:calc(88px + clamp(70px,8vw,120px)) 0 clamp(80px,9vw,130px);background:radial-gradient(circle at 12% 24%,rgba(255,255,255,.82),transparent 30%),radial-gradient(circle at 88% 62%,rgba(104,180,242,.12),transparent 32%),#e8eef3;color:var(--ink)}
.post-archive-inner{max-width:var(--content-width);margin:auto;padding-inline:var(--content-gutter)}

.post-archive-heading{margin-bottom:clamp(40px,5vw,64px)}
.post-archive-heading h1{margin:12px 0 0}
.post-archive-intro{max-width:620px;margin:16px 0 0;color:#666d70;font-size:15px;line-height:1.5}

.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 24px}

.post-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:17px;background:rgba(248,250,252,.72);color:var(--ink);-webkit-backdrop-filter:blur(15px) saturate(125%);backdrop-filter:blur(15px) saturate(125%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 12px 32px rgba(34,55,72,.07);transition:transform .3s,box-shadow .3s,border-color .3s,background .3s}
.post-card:hover{border-color:rgba(255,255,255,.94);background:rgba(248,250,252,.84);transform:translateY(-5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 22px 52px rgba(34,55,72,.14)}
.post-card-media{position:relative;display:block;aspect-ratio:16/10;margin:0;overflow:hidden;background:linear-gradient(135deg,#d5d0c5,#b7c4c4)}
.post-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,17,21,.18));pointer-events:none}
.post-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.post-card:hover .post-card-media img{transform:scale(1.045)}
.post-card-meta{color:#66737d;font-size:8px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.post-card-body{display:flex;flex:1;flex-direction:column;padding:21px 22px 20px}
.post-card-title{margin:12px 0 10px;font:500 clamp(22px,2vw,27px)/1.08 var(--display);letter-spacing:-.035em}
.post-card-title a{color:inherit}
.post-card-title a:hover{color:#4a5559}
.post-card-excerpt{margin:0;color:#4f5960;font-size:12px;line-height:1.5}
.post-card-link{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding-bottom:5px;align-self:flex-start;border-bottom:1px solid #b9b0a0;color:var(--ink);font-size:8px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.post-card .post-card-link{width:100%;justify-content:flex-end;margin-top:auto;padding:16px 0 0;border:0;border-top:1px solid #ccd6df;color:#66737d;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.post-card-link:hover{border-color:var(--ink)}

.post-empty{max-width:680px;margin:auto;padding:70px 28px;border:1px solid #ccd6df;border-radius:17px;background:#f8fafc;text-align:center}
.post-empty span{color:#66737d;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.post-empty h2{margin:14px 0 10px}
.post-empty p{margin:0 0 26px;color:#66737d;font-size:15px}
.post-empty .outline-link{color:var(--ink);border-color:rgba(24,33,38,.4)}
.post-empty .outline-link:before{background:var(--ink)}
.post-empty .outline-link:hover{color:var(--paper);border-color:var(--ink)}

.post-pagination{margin-top:clamp(50px,6vw,80px)}
.post-pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.post-pagination .page-numbers{min-width:44px;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ccc4b4;color:var(--ink);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:.35s}
.post-pagination .page-numbers:hover{border-color:var(--ink)}
.post-pagination .page-numbers.current{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.post-pagination .page-numbers.dots{border-color:transparent}


@media(max-width:1100px) and (min-width:801px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
  .post-archive{padding-top:calc(74px + 60px)}
  .post-grid{grid-template-columns:1fr;gap:38px}
}

/* ============================================================
   JOURNAL ARTICLE — single.php
   ============================================================ */
.journal-single{background:var(--paper);color:var(--ink)}
.journal-hero{position:relative;isolation:isolate;min-height:clamp(500px,62vh,640px);display:flex;align-items:flex-end;overflow:hidden;background:#122229;color:#fff}
.journal-hero.no-image{background:radial-gradient(circle at 78% 18%,rgba(104,180,242,.12),transparent 34%),radial-gradient(circle at 20% 80%,rgba(198,164,91,.1),transparent 38%),#0f1d24}
.journal-hero.no-image .journal-hero-shade{background:linear-gradient(180deg,rgba(5,12,15,.04),rgba(5,12,15,.36))}
.journal-hero-media{position:absolute;z-index:0;inset:0}
.journal-hero-media img{width:100%;height:100%;object-fit:cover;animation:cinematicDrift 18s ease-out both;--pan-from-x:-.5%;--pan-from-y:0;--zoom-from:1.03;--pan-to-x:.4%;--pan-to-y:-.2%;--zoom-to:1.075}
.journal-hero-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(5,12,15,.2),rgba(5,12,15,.12) 38%,rgba(5,12,15,.86)),linear-gradient(90deg,rgba(5,12,15,.35),transparent 70%)}
.journal-hero-copy{position:relative;z-index:2;width:min(100%,var(--content-width));margin:0 auto;padding:170px var(--content-gutter) clamp(64px,8vw,110px)}
.journal-hero-copy h1{max-width:980px;margin:14px 0 24px}
.journal-byline{display:flex;flex-wrap:wrap;gap:10px;color:rgba(255,255,255,.72);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.journal-content{width:100%;max-width:var(--content-width);margin:auto;padding:clamp(72px,9vw,130px) var(--content-gutter);color:#3f484b;font-size:17px;line-height:1.9}
.journal-content>p:first-child{margin-top:0;color:var(--ink);font:400 clamp(23px,2.5vw,31px)/1.5 var(--display)}
.journal-content h2,.journal-content h3{margin:2.2em 0 .65em;color:var(--ink)}
.journal-content blockquote{float:none;clear:both;width:auto;margin:2.8em 0;padding:8px 0 8px clamp(24px,4vw,52px);border:0;border-left:1px solid var(--gold);color:var(--ink);font:400 clamp(26px,3.5vw,43px)/1.35 var(--display);font-style:normal}
.journal-content blockquote + h2,.journal-content blockquote + h3{clear:both;margin-top:2.2em}
.journal-content figure{margin:3em min(-10vw,-60px)}
.journal-content img{display:block;width:100%;height:auto}
.journal-content .journal-feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);align-items:center;gap:clamp(42px,7vw,96px);margin:clamp(72px,9vw,120px) 0}
.journal-content .journal-feature h2{margin:14px 0 24px}
.journal-content .journal-feature figure{margin:0;overflow:hidden;border-radius:72px 18px 72px 18px}
.journal-content .journal-feature img{aspect-ratio:4/3;object-fit:cover}
.journal-benefits{width:100vw;margin:clamp(76px,9vw,120px) calc(50% - 50vw);padding:clamp(54px,7vw,86px) max(var(--content-gutter),calc((100vw - var(--content-width))/2 + var(--content-gutter)));border-top:1px solid rgba(255,255,255,.78);border-bottom:1px solid rgba(255,255,255,.78);background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.72),transparent 30%),radial-gradient(circle at 84% 76%,rgba(104,180,242,.1),transparent 32%),#e8eef3}
.journal-benefits>header{max-width:760px;margin:0 auto 42px;text-align:center}
.journal-content .journal-benefits>header h2{margin:12px 0 14px}
.journal-benefits>header>p:last-child{margin:0}
.journal-benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.journal-benefit-grid article{overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:16px;background:rgba(248,250,252,.78);box-shadow:0 14px 34px rgba(34,55,72,.08)}
.journal-benefit-grid article>img{aspect-ratio:16/10;object-fit:cover}
.journal-benefit-grid article>div{padding:22px}
.journal-benefit-grid small{color:var(--gold);font-size:8px;font-weight:600;letter-spacing:.16em}
.journal-content .journal-benefit-grid h3{margin:9px 0 10px}
.journal-benefit-grid p{margin:0;font-size:13px;line-height:1.6}
.journal-cta{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(38px,7vw,90px);margin:clamp(76px,9vw,120px) 0;padding:clamp(38px,5vw,62px);background:#173a42;color:#fff;box-shadow:0 24px 55px rgba(17,52,60,.16)}
.journal-content .journal-cta h2{margin:12px 0 0;color:#fff}
.journal-cta>div:last-child>p{margin:0 0 24px;color:rgba(255,255,255,.78)}
.journal-cta .outline-link{border-color:rgba(198,164,91,.72);color:#f7f2e8}
.journal-cta .outline-link:before{background:#c6a45b}
.journal-cta .outline-link:hover,.journal-cta .outline-link:focus-visible{border-color:#c6a45b;color:#14252b!important;box-shadow:0 10px 26px rgba(4,14,18,.18)}
.journal-corporate{margin:clamp(76px,9vw,120px) 0;padding:clamp(44px,6vw,76px) clamp(28px,8vw,110px);border-top:1px solid #d8d0c0;border-bottom:1px solid #d8d0c0;text-align:center}
.journal-content .journal-corporate h2{max-width:850px;margin:12px auto 30px}
.journal-corporate>div{display:grid;grid-template-columns:1fr 1fr;gap:32px;text-align:left}
.journal-corporate>div p{margin:0}
.journal-scroller{width:100vw;margin:clamp(76px,9vw,120px) calc(50% - 50vw);padding:clamp(54px,7vw,84px) max(var(--content-gutter),calc((100vw - var(--content-width))/2 + var(--content-gutter)));overflow:hidden;background:radial-gradient(circle at 14% 18%,rgba(104,180,242,.14),transparent 30%),radial-gradient(circle at 88% 76%,rgba(198,164,91,.1),transparent 34%),#10272e;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -1px 0 rgba(255,255,255,.07)}
.journal-scroller>header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}
.journal-content .journal-scroller>header h2{margin:12px 0 0;color:#fff}
.journal-scroller-controls{display:flex;gap:10px}
.journal-scroller-controls button,.acf-scroller-controls button,.acf-gallery-close,.acf-gallery-prev,.acf-gallery-next{width:var(--control-size);height:var(--control-size);display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.05);color:#fff;font-size:18px;line-height:1;cursor:pointer;transition:color .3s,background .3s,border-color .3s,transform .3s,opacity .3s}
.journal-scroller-controls button:hover,.acf-scroller-controls button:hover:not(:disabled),.acf-gallery-close:hover,.acf-gallery-prev:hover,.acf-gallery-next:hover{border-color:var(--gold);background:var(--gold);color:var(--ink);transform:translateY(-2px)}
.journal-scroller-track{display:flex;gap:24px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none}
.journal-scroller-track::-webkit-scrollbar{display:none}
.journal-scroller-track>article{flex:0 0 calc((100% - 48px)/3);overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:17px;background:rgba(248,250,252,.92);color:var(--ink);scroll-snap-align:start;box-shadow:0 18px 40px rgba(2,11,15,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.journal-scroller-track>article>img{aspect-ratio:16/10;object-fit:cover}
.journal-scroller-track>article>div{padding:22px}
.journal-scroller-track small{color:var(--gold);font-size:8px;font-weight:600;letter-spacing:.16em}
.journal-content .journal-scroller-track h3{margin:9px 0 10px}
.journal-scroller-track p{margin:0;font-size:13px;line-height:1.6}
.journal-footer{width:100%;max-width:none;margin:0;border-top:1px solid #d8d0c0}
.journal-footer-inner{width:100%;max-width:var(--content-width);margin:0 auto;padding:42px var(--content-gutter) 64px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,72px)}
.journal-footer-slot{min-width:0}
.journal-footer-next{text-align:right}
.journal-back-link{justify-self:center;margin:0;white-space:nowrap;text-align:center}
.journal-story-link{position:relative;display:inline-flex;max-width:100%;flex-direction:column;gap:8px;margin:-12px;padding:12px;border-radius:10px;color:var(--ink);transition:color .35s,background .35s,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}
.journal-footer-next .journal-story-link{align-items:flex-end}
.journal-story-link:after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.journal-footer-next .journal-story-link:after{transform-origin:right}
.journal-story-link:hover,.journal-story-link:focus-visible{background:rgba(255,255,255,.46);box-shadow:0 10px 26px rgba(34,55,72,.08);transform:translateY(-3px)}
.journal-story-link:hover:after,.journal-story-link:focus-visible:after{transform:scaleX(1)}
.journal-story-link small{color:#8b8579;font-size:7px;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.journal-story-link span{font:400 clamp(17px,1.8vw,23px)/1.2 var(--display);transition:color .35s}
.journal-story-link span b{font-family:var(--body);font-size:.7em;font-weight:400}
.journal-story-link:hover span,.journal-story-link:focus-visible span{color:#927332}
@media(max-width:800px){.journal-hero{min-height:clamp(460px,64svh,600px)}
.journal-hero-copy{padding:130px 22px 58px}
.journal-content{width:100%;padding-inline:22px;font-size:16px}
.journal-content blockquote,.journal-content figure{margin-inline:0}
.journal-content .journal-feature{grid-template-columns:1fr;gap:32px}
.journal-content .journal-feature figure{border-radius:42px 12px}
.journal-benefits{padding:44px 22px}
.journal-benefit-grid{grid-template-columns:1fr}
.journal-scroller{padding:48px 22px}
.journal-scroller>header{align-items:flex-start}
.journal-scroller-track>article{flex-basis:min(82vw,340px)}
.journal-cta{grid-template-columns:1fr;padding:34px 24px}
.journal-corporate>div{grid-template-columns:1fr}
.journal-footer-inner{padding:34px 22px 52px;grid-template-columns:1fr;gap:28px}
.journal-footer-previous{grid-row:1;text-align:left}
.journal-back-link{grid-row:2;justify-self:center}
.journal-footer-next{grid-row:3;text-align:right}}
.single .journal-scroller h2{color:#FFF;}

/* ============================================================
   REUSABLE ACF SECTIONS — Scroller + Gallery
   ============================================================ */
.acf-section-shell{width:100%;max-width:var(--content-width);margin:0 auto}
.acf-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:clamp(30px,4vw,52px)}
.acf-section-heading .section-label{margin:0 0 12px}
.acf-section-heading h2{max-width:820px;margin:0}

.acf-scroller-section{position:relative;clear:both;width:100%;overflow:hidden;padding:clamp(72px,8vw,112px) max(var(--content-gutter),calc((100vw - var(--content-width))/2));background:radial-gradient(circle at 12% 12%,rgba(104,180,242,.12),transparent 30%),radial-gradient(circle at 88% 82%,rgba(198,164,91,.1),transparent 33%),#102129;color:#fff}
.acf-scroller-section .acf-section-heading h2{color:#fff}
.acf-scroller-controls{display:flex;flex:none;gap:10px}
.acf-scroller-controls-only{justify-content:flex-end;margin-bottom:24px}
.acf-scroller-controls button:disabled{cursor:default;opacity:.25}
.acf-scroller-track{display:flex;gap:24px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;outline:none}
.acf-scroller-track::-webkit-scrollbar{display:none}
.acf-scroller-track:focus-visible{outline:1px solid rgba(198,164,91,.75);outline-offset:8px}
.acf-scroller-card{flex:0 0 100%;min-width:0;padding:clamp(26px,3vw,38px);border:1px solid rgba(255,255,255,.16);border-radius:2px;background:rgba(247,251,255,.94);color:var(--ink);scroll-snap-align:start;box-shadow:0 24px 60px rgba(2,10,14,.2)}
.acf-scroller-section[data-visible="2"] .acf-scroller-card{flex-basis:calc((100% - 24px)/2)}
.acf-scroller-section[data-visible="3"] .acf-scroller-card{flex-basis:calc((100% - 48px)/3)}
.acf-scroller-card>:first-child{margin-top:0}
.acf-scroller-card>:last-child{margin-bottom:0}
.acf-scroller-card h2,.acf-scroller-card h3,.acf-scroller-card h4{margin:0 0 14px;color:var(--ink)}
.acf-scroller-card p{margin:0 0 1em;color:#5a6366;font-size:14px;line-height:1.72}
.acf-scroller-card img{width:calc(100% + clamp(52px,6vw,76px));max-width:none;margin:calc(clamp(26px,3vw,38px)*-1) calc(clamp(26px,3vw,38px)*-1) 24px;aspect-ratio:16/10;object-fit:cover}

.acf-gallery-section{clear:both;width:100%;overflow:hidden;padding:clamp(76px,9vw,126px) max(var(--content-gutter),calc((100vw - var(--content-width))/2));background:var(--paper);color:var(--ink)}
.acf-gallery-intro{align-items:start}
.acf-gallery-intro--right{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:clamp(42px,8vw,120px)}
.acf-gallery-intro--bottom{display:block}
.acf-gallery-intro--bottom .acf-gallery-intro-copy{max-width:760px;margin-top:clamp(22px,3vw,36px)}
.acf-gallery-intro-copy>:first-child{margin-top:0}
.acf-gallery-intro-copy>:last-child{margin-bottom:0}
.acf-gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(180px,20vw,300px);gap:12px}
.acf-gallery-grid figure{grid-column:span 4;margin:0;overflow:hidden;background:#dfe3e2}
.acf-gallery-grid figure:first-child{grid-column:span 7;grid-row:span 2}
.acf-gallery-grid figure:nth-child(2),.acf-gallery-grid figure:nth-child(3){grid-column:span 5}
.acf-gallery-open{width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
.acf-gallery-open img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,1,.36,1),filter .6s}
.acf-gallery-open:hover img{transform:scale(1.035);filter:saturate(1.05)}
.acf-gallery-open:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}

.acf-gallery-lightbox{position:fixed;inset:0;z-index:140;opacity:0;transition:opacity .32s ease}
.acf-gallery-lightbox[hidden]{display:none}
.acf-gallery-lightbox.is-open{opacity:1}
.acf-gallery-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(3,8,11,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:zoom-out}
.acf-gallery-dialog{position:absolute;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:88px clamp(16px,4vw,64px) clamp(20px,4vh,42px)}
.acf-gallery-bar{display:flex;align-items:center;justify-content:space-between;color:rgba(255,255,255,.65);font:600 10px/1 var(--body);letter-spacing:.16em}
.acf-gallery-bar b{color:var(--gold);font-weight:600}
.acf-gallery-close{font-size:24px}
.acf-gallery-stage{min-height:0;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:clamp(10px,2vw,28px)}
.acf-gallery-stage img{justify-self:center;max-width:100%;max-height:calc(100vh - 100px);object-fit:contain;box-shadow:0 24px 80px rgba(0,0,0,.38)}

@media(max-width:800px){
  .acf-section-heading{align-items:flex-start}
  .acf-gallery-intro--right{grid-template-columns:1fr;gap:24px}
  .acf-scroller-section,.acf-gallery-section{padding-inline:22px}
  .acf-scroller-section[data-visible] .acf-scroller-card{flex-basis:min(84vw,350px);padding:26px 24px}
  .acf-scroller-card img{width:calc(100% + 48px);margin:-26px -24px 22px}
  .acf-gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:210px;gap:8px}
  .acf-gallery-grid figure,.acf-gallery-grid figure:nth-child(n){grid-column:span 1;grid-row:auto}
  .acf-gallery-grid figure:first-child{grid-column:1/-1;min-height:320px}
  .acf-gallery-stage{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px}
}

@media(max-width:520px){
  .acf-section-heading{display:block}
  .acf-section-heading .acf-scroller-controls{margin-top:24px}
  .acf-gallery-grid{grid-auto-rows:160px}
  .acf-gallery-grid figure:first-child{min-height:250px}
}

/* ============================================================
   ACCESSIBILITY UTILITIES
   ============================================================ */
/* WordPress-standard visually-hidden helper (used by core markup too). */
.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;word-wrap:normal}
/* The skip link reveals itself once focused. */
.skip-link:focus,.screen-reader-text:focus{z-index:200;top:12px;left:12px;width:auto;height:auto;margin:0;padding:12px 22px;clip:auto;clip-path:none;background:var(--ink);color:#fff;font:600 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.35)}
/* Respect users who ask for less motion. */
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ============================================================
   EDITOR PAGES — page.php + [rr_banner] / [rr_grid] shortcodes
   ============================================================ */
.page-main{min-height:60vh;padding-bottom:clamp(60px,8vw,110px);background:var(--paper);color:var(--ink)}
/* Prose keeps a readable measure; full-bleed sections from the shortcodes
   (which style their own width and background) pass straight through. */
.page-main>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl){max-width:var(--content-width);margin-inline:auto;padding-inline:var(--content-gutter)}
/* Clear the fixed header only when the page opens with prose. */
.page-main>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl):first-child{margin-top:calc(88px + clamp(40px,5vw,70px))}

/* Shortcode pages bring their own full-bleed surfaces, so the page shell must
   not paint a band above or below them. The paper background stays, because
   the banner's stage is a descendant and paints over it anyway — and plain
   editor content written after the sections still needs a readable surface. */
.page-main:has(>.rr-banner),.page-main:has(>.property-grid-section){min-height:0;padding-bottom:0}
/* Editor content sits above the sticky banner stage (z-index 1) and gets the
   same measure and breathing room as the sections around it. */
.page-main:has(>.rr-banner)>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl){position:relative;z-index:20}
.page-main:has(>.rr-banner)>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl):first-child{margin-top:0}
.page-main>:where(section,div)+:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl){padding-top:clamp(60px,7vw,100px)}
.page-main>:where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,figure,table,pre,dl):last-child{padding-bottom:clamp(60px,8vw,110px)}

/* ============================================================
   LEGAL PAGES — calm, readable editorial treatment
   ============================================================ */
.legal-page{margin:0;padding-bottom:0;background:#f3f0e9}
.legal-page .legal-hero{position:relative;overflow:hidden;padding:clamp(154px,16vw,220px) max(var(--content-gutter),calc((100vw - var(--content-width))/2)) clamp(62px,7vw,96px);background:#112129;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
.legal-page .legal-hero:after{content:"";position:absolute;right:-7vw;bottom:-70%;width:min(54vw,760px);aspect-ratio:1;border:1px solid rgba(198,164,91,.16);border-radius:50%;box-shadow:0 0 0 70px rgba(198,164,91,.035),0 0 0 140px rgba(198,164,91,.025);pointer-events:none}
.legal-page .legal-hero .section-label{position:relative;z-index:1;margin:0 0 18px;color:var(--gold)}
.legal-page .legal-hero h1{position:relative;z-index:1;max-width:var(--content-width);margin:0;color:#fff;text-transform:uppercase}
/* Use the same 1210px grid and gutters as property, collection and delivery
   sections. Legal copy keeps a readable measure without changing its origin. */
.legal-content{width:100%;margin:0;padding:clamp(64px,8vw,112px) max(var(--content-gutter),calc((100vw - var(--content-width))/2)) clamp(82px,10vw,140px);color:#50595d;font:400 16px/1.85 var(--body)}
.legal-content>*{max-width:900px}
.legal-content>h2{margin:clamp(54px,7vw,82px) 0 20px;padding-top:clamp(28px,4vw,44px);border-top:1px solid rgba(17,33,41,.16);color:var(--ink);text-transform:none}
.legal-content>h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal-content>h3{margin:40px 0 15px;color:var(--ink)}
.legal-content p{margin:0 0 1.35em}
.legal-content ul,.legal-content ol{margin:0 0 1.6em;padding-left:1.25em}
.legal-content li{margin-bottom:.65em;padding-left:.35em}
.legal-content a{color:var(--ink);text-decoration:underline;text-decoration-color:rgba(198,164,91,.7);text-underline-offset:4px;transition:color .25s,text-decoration-color .25s}
.legal-content a:hover{color:#987330;text-decoration-color:#987330}
.legal-content strong{color:var(--ink);font-weight:600}
.legal-content .privacy-policy-tutorial{display:none}
.legal-content>:last-child{margin-bottom:0}

@media(max-width:700px){
  .legal-page .legal-hero{padding:124px 22px 52px}
  .legal-page .legal-hero:after{right:-42%;bottom:-18%;width:100vw}
  .legal-content{padding:56px 22px 86px;font-size:15px;line-height:1.8}
  .legal-content>h2{margin-top:48px;padding-top:28px}
}
/* The banner scrolls with the page: a sticky viewport keeps it in view while
   the scroll-track drives the venue sequence, then it lifts away naturally.
   The negative margin makes the track alone supply the banner's height. */
.rr-banner{position:relative;z-index:1}
.rr-banner-sticky{position:sticky;top:0;z-index:2;height:100vh;margin-bottom:-100vh}
/* Inside the banner these sit against the sticky viewport, not the window. */
.rr-banner .stage,.rr-banner .hero-copy,.rr-banner .scroll-cue,.rr-banner .venue-control{position:absolute}
/* The shortcode banner lives inside .page-main, whose dark foreground is for
   the light content sections below. Keep every control over photography light
   instead of allowing that inherited page colour to make it illegible. */
.rr-banner .hero-copy,.rr-banner .scroll-cue,.rr-banner .venue-control{color:#fff}
.rr-banner .hero-copy h1,.rr-banner .hero-copy .meta{color:#fff}
.rr-banner .hero-copy .description{color:rgba(255,255,255,.88)}
/* The banner's stage is fixed, so the grid below needs to scroll over it. */
.page-main:has(.rr-banner) .property-grid-section{position:relative;z-index:20}

/* ============================================================
   GALLERY LIGHTBOX — property page
   ============================================================ */
/* Tiles: the button fills the figure so the grid placement is unchanged. */
.gallery-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;-webkit-appearance:none;appearance:none}
.gallery-open:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

body.lightbox-open{overflow:hidden}

.gallery-lightbox{position:fixed;inset:0;z-index:120;opacity:0;transition:opacity .32s ease}
/* display:grid above would beat the UA rule for [hidden], leaving an
   invisible full-screen layer swallowing every click on the page. */
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox.is-open{opacity:1}
.lightbox-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(3,8,11,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:zoom-out}
.lightbox-panel{position:absolute;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px clamp(16px,5vw,72px) clamp(20px,4vh,44px);cursor:zoom-out}
.lightbox-stage img{cursor:default}
.lightbox-panel button{cursor:pointer}

.lightbox-bar{display:flex;align-items:center;justify-content:space-between;color:#fff}
.lightbox-count{display:flex;align-items:center;gap:7px;font:600 11px/1 var(--body);letter-spacing:.18em}
.lightbox-count b{color:var(--gold);font-weight:600}
.lightbox-count i{font-style:normal;opacity:.4}
.lightbox-count span{opacity:.6}
.lightbox-close{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.04);color:#fff;font-size:24px;line-height:1;cursor:pointer;transition:.3s}
.lightbox-close:hover{border-color:#fff;background:rgba(255,255,255,.12)}

.lightbox-stage{position:relative;margin:0;min-height:0;overflow:hidden}
.lightbox-stage img{position:absolute;inset:0;margin:auto;display:block;max-width:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.5);max-height:100%;max-height:min(100%,calc(100dvh - 116px))}

/* Arrows sit clear of the image on desktop and tuck to the edges on narrow screens. */
.lightbox-nav{position:absolute;top:50%;width:54px;height:54px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.22);background:rgba(8,16,20,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:30px;line-height:1;cursor:pointer;transition:.3s}
.lightbox-nav:hover{border-color:#fff;background:rgba(8,16,20,.8)}
.lightbox-prev{left:clamp(8px,2vw,28px)}
.lightbox-next{right:clamp(8px,2vw,28px)}
.lightbox-nav:focus-visible,.lightbox-close:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

@media(max-width:800px){
  .lightbox-panel{padding:14px 12px 20px}
  .lightbox-nav{width:44px;height:44px;font-size:24px;top:auto;bottom:14px;transform:none}
  .lightbox-prev{left:12px}
  .lightbox-next{right:12px}
  .lightbox-stage img{bottom:56px;max-height:min(100%,calc(100dvh - 172px))}
}

/* ============================================================
   CONTACT FORM 7 — enquiry form
   CF7 wraps every field in <span class="wpcf7-form-control-wrap">, which
   would break the grid unless it is made transparent to layout.
   ============================================================ */
.enquiry-form-wrap .wpcf7{width:100%}
.enquiry-form-wrap .wpcf7-form-control-wrap{display:block}
.enquiry-form-wrap .wpcf7-form-control-wrap>input,
.enquiry-form-wrap .wpcf7-form-control-wrap>select,
.enquiry-form-wrap .wpcf7-form-control-wrap>textarea{width:100%}
.enquiry-form-wrap .form-submit-row{display:flex}
.enquiry-form-wrap .wpcf7-submit{width:auto}

/* Validation messages */
.enquiry-form-wrap .wpcf7-not-valid-tip{display:block;margin-top:7px;color:#c05b4d;font-size:11px;letter-spacing:.04em}
.enquiry-form-wrap .wpcf7-not-valid{border-color:#c05b4d!important}

/* Response banner under the form */
.enquiry-form-wrap .wpcf7-response-output{grid-column:1/-1;margin:22px 0 0;padding:15px 18px;border:1px solid rgba(24,33,38,.25);font-size:13px;line-height:1.5}
.enquiry-form-wrap .wpcf7-form.sent .wpcf7-response-output{border-color:#5d7f63;background:rgba(93,127,99,.1)}
.enquiry-form-wrap .wpcf7-form.invalid .wpcf7-response-output,
.enquiry-form-wrap .wpcf7-form.failed .wpcf7-response-output{border-color:#c05b4d;background:rgba(192,91,77,.09)}

/* Submit is a real <button> (not CF7's [submit] input) because the theme's
   button treatment needs ::before/::after and a child <b> for the arrow —
   none of which an <input> can have, and inline-flex hides an input's value
   in Chromium. That means no CF7 spinner, so the button shows its own state. */
.enquiry-form-wrap .wpcf7-spinner{margin:0 0 0 12px}
.enquiry-form-wrap .wpcf7-form.submitting .form-submit{opacity:.65;pointer-events:none}
.enquiry-form-wrap .wpcf7-form.submitting .form-submit b{animation:submitPulse .9s ease-in-out infinite}
@keyframes submitPulse{0%,100%{opacity:1}50%{opacity:.35}}
/* Fallback if a plain [submit] tag is ever added back in CF7. */
.enquiry-form-wrap input.wpcf7-submit{display:inline-block;justify-content:initial;gap:0}

/* Page-editor content on the Enquiry page, shown above the form. */
.enquiry-form-inner{width:100%;display:flex;flex-direction:column;gap:clamp(26px,3vw,38px)}
.enquiry-content{max-width:720px;color:#5a6468;font-size:14px;line-height:1.75}
.enquiry-content>:first-child{margin-top:0}
.enquiry-content>:last-child{margin-bottom:0}
.enquiry-content h2,.enquiry-content h3,.enquiry-content h4{margin:0 0 10px;color:var(--ink)}
.enquiry-content p{margin:0 0 14px}
.enquiry-content ul,.enquiry-content ol{margin:0 0 14px;padding-left:18px}
.enquiry-content li{margin-bottom:6px}
.enquiry-content a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.enquiry-content a:hover{color:var(--gold)}

/* [rr_heading] renders on the same surface as [rr_grid]; when the two are
   stacked their touching padding collapses so they read as one block. */
.rr-heading-section{padding-bottom:0}
.rr-heading-section .property-grid-heading{margin-bottom:0}
.rr-heading-section + br{display:none}
.rr-heading-section + .property-grid-section,
.rr-heading-section + br + .property-grid-section{padding-top:clamp(34px,4vw,58px)}

/* ============================================================
   PER-SECTION EXTRA CONTENT — property pages
   Optional copy an editor can place above or below any section body.
   ============================================================ */
.section-extra{margin:18px 0 0;color:inherit;font-size:14px;line-height:1.75}
.section-extra>:first-child{margin-top:0}
.section-extra>:last-child{margin-bottom:0}
.section-extra p{margin:0 0 12px}
.section-extra ul,.section-extra ol{margin:0 0 12px;padding-left:18px}
.section-extra li{margin-bottom:5px}
.section-extra a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.section-extra a:hover{color:var(--gold)}
.section-extra-bottom{margin:24px 0 0}

/* Standalone heading/copy block for the gallery, which has no wrapper of its own */
.gallery-intro{max-width:var(--content-width);margin:0 auto;padding:0 max(var(--content-gutter),calc((100vw - var(--content-width))/2)) 26px}
.gallery-intro h2{margin:8px 0 0}

/* ============================================================
   LANDING TEMPLATES (temp/) — legacy float grid
   Those templates use the bootstrap-style columns from common.css, which
   float but have no clearfix. The row therefore collapsed to zero height and
   the footer (z-index 20, opaque navy) painted straight over the article.
   flow-root contains the floats; the padding clears the fixed header.
   ============================================================ */
.landtemp{position:relative;z-index:1;padding-top:calc(88px + clamp(28px,4vw,56px));padding-bottom:clamp(48px,6vw,88px)}
.landtemp .row{display:flow-root}
.landtemp .row>*{min-width:0}
.landtemp .entry-title{margin:0 0 6px;font:500 clamp(34px,4.4vw,58px)/1.05 var(--display);letter-spacing:-.035em}
.landtemp .cattag{display:inline-block;margin:0 8px 10px 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.landtemp .cattag a{color:inherit}
.landtemp img{max-width:100%;height:auto}

/* Premium ACF property landing pages (Page Landing template). */
.landtemp:has(.landing-property-hero){padding-top:0;padding-bottom:0;background:var(--paper);color:var(--ink)}
.landtemp .full-block:has(>.landing-property-hero),.landtemp .full-block:has(>.landing-property-section){padding:0}
.landing-property-hero{position:relative;isolation:isolate;min-height:min(860px,92svh);display:flex;align-items:flex-end;overflow:hidden;background:#102129;color:#fff}
.landing-property-hero>img{position:absolute;z-index:-2;inset:0;width:100%;height:100%!important;max-width:none!important;object-fit:cover;animation:cinematicDrift 18s ease-out both;--pan-from-x:-.4%;--pan-from-y:0;--zoom-from:1.025;--pan-to-x:.4%;--pan-to-y:-.3%;--zoom-to:1.07}
.landing-property-hero:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(4,10,13,.2),rgba(4,10,13,.12) 34%,rgba(4,10,13,.86)),linear-gradient(90deg,rgba(4,10,13,.45),transparent 72%)}
.landing-property-hero-inner{width:100%;max-width:var(--content-width);margin:0 auto;padding:170px var(--content-gutter) clamp(62px,8vw,104px)}
.landing-property-hero .section-label{margin:0 0 16px;color:#70b8eb}
.landing-property-hero h1{max-width:1000px;margin:0 0 22px;color:#fff;text-transform:uppercase}
.landing-property-hero .property-tagline{max-width:760px;margin:0 0 26px;color:rgba(255,255,255,.84);font-size:clamp(15px,1.45vw,19px);line-height:1.65}
.landing-property-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;list-style:none;color:#fff;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.landing-property-meta li:before{content:"";display:inline-block;width:4px;height:4px;margin:0 9px 2px 0;background:var(--gold);transform:rotate(45deg)}

.landing-property-section{padding:clamp(76px,9vw,130px) max(var(--content-gutter),calc((100vw - var(--content-width))/2));background:var(--paper)}
.landing-property-section.is-tint{background:#eaf0f3}
.landing-property-section.is-dark{background:#102129;color:#fff}
.landing-property-intro{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:clamp(50px,9vw,140px);align-items:start}
.landing-property-section .section-label{margin:0 0 15px}
.landing-property-section h2{margin:0;color:var(--ink);text-transform:uppercase}
.landing-property-section.is-dark h2{color:#fff}
.landing-property-prose{max-width:760px;color:#596265;font-size:16px;line-height:1.85}
.landing-property-prose p{margin:0 0 1.35em}
.landing-property-prose>:last-child{margin-bottom:0}
.landing-property-feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,5vw,72px);margin:clamp(44px,6vw,72px) 0 0;padding:0;list-style:none}
.landing-property-feature-list li{position:relative;padding:18px 0 18px 26px;border-top:1px solid rgba(24,33,38,.15);font-size:14px;line-height:1.55}
.landing-property-feature-list li:before{content:"+";position:absolute;left:0;color:var(--gold);font-weight:600}
.landing-property-details{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(48px,8vw,120px)}
.landing-property-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.landing-property-detail-columns h3{margin:0 0 18px;color:var(--ink)}
.landing-property-detail-columns ul{margin:0;padding:0;list-style:none}
.landing-property-detail-columns li{padding:12px 0;border-top:1px solid rgba(24,33,38,.15);font-size:14px;line-height:1.5}
.landing-property-concierge{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(44px,8vw,120px);align-items:center}
.landing-property-concierge .landing-property-prose{color:rgba(255,255,255,.68)}
.landing-property-concierge-images{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.landing-property-concierge-images img{width:100%;height:clamp(280px,38vw,520px)!important;object-fit:cover}
.landing-property-cta{text-align:center;background:#d8ccaf}
.landing-property-cta h2{max-width:760px;margin:0 auto 20px}
.landing-property-cta p{max-width:620px;margin:0 auto 30px;color:#5f5c54;line-height:1.7}

@media(max-width:800px){
  .landing-property-hero{min-height:760px}
  .landing-property-hero-inner{padding:130px 22px 56px}
  .landing-property-intro,.landing-property-details,.landing-property-concierge{grid-template-columns:1fr;gap:34px}
  .landing-property-section{padding:68px 22px}
  .landing-property-feature-list{grid-template-columns:1fr;margin-top:36px}
  .landing-property-detail-columns{gap:20px}
}
@media(max-width:520px){
  .landing-property-detail-columns,.landing-property-concierge-images{grid-template-columns:1fr}
  .landing-property-concierge-images img{height:300px!important}
}

/* Premium post landing template */
.landing-post-main{position:relative;z-index:1;background:var(--cream,#f4f0e8);color:var(--ink,#122028)}
.landing-post-article{margin:0}
.landing-post-content .container{max-width:1100px;margin:0 auto;font:400 16px/1.85 var(--sans);color:#60676a;
    font-size: 16px;
    line-height: 1.85;}

/*.landing-post-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(480px,66svh,680px);overflow:hidden;background:#172830;color:#fff}
.landing-post-hero-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.landing-post-hero:hover .landing-post-hero-image{transform:scale(1.018)}
.landing-post-hero-shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(8,20,26,.2) 10%,rgba(8,20,26,.32) 45%,rgba(8,20,26,.88) 100%)}
.landing-post-hero.no-image{min-height:clamp(420px,58svh,590px);background:linear-gradient(135deg,#0e2029,#253a3f)}
.landing-post-hero.no-image .landing-post-hero-shade{background:radial-gradient(circle at 78% 20%,rgba(197,153,69,.18),transparent 34%)}
.landing-post-hero-inner{width:min(100%,1280px);margin:0 auto;padding:clamp(150px,18vw,230px) clamp(24px,6vw,84px) clamp(58px,7vw,92px)}
.landing-post-kicker{margin-bottom:18px;color:#e2b55b;font:700 10px/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.landing-post-kicker a{color:inherit;text-decoration:none}
.landing-post-hero .entry-title{max-width:1000px;margin:0;color:#fff}
.landing-post-meta{display:flex;align-items:center;gap:12px;margin-top:26px;color:rgba(255,255,255,.78);font:700 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.landing-post-meta>span[aria-hidden]{width:28px;height:1px;background:#e2b55b}
 .landing-post-content>:first-child{margin-top:0;font-size:16px;line-height:1.85;color:#60676a} 
 .landing-post-content h2,.landing-post-content h3{max-width:800px;margin:clamp(58px,7vw,88px) 0 24px;color:var(--ink,#122028)}
.landing-post-content p{margin:0 0 1.5em}
.landing-post-content a{color:inherit;text-decoration-color:#c59a45;text-decoration-thickness:1px;text-underline-offset:4px}
.landing-post-content blockquote{float:none;width:auto;margin:clamp(58px,8vw,96px) 0;padding:8px 0 8px clamp(24px,4vw,50px);border:0;border-left:1px solid #c59a45;color:var(--ink,#122028);font:400 clamp(28px,3.6vw,45px)/1.3 var(--display);font-style:normal}

 .landing-post-content blockquote p{font:inherit;margin:0}
.landing-post-content figure{margin:clamp(48px,6vw,80px) 0}
.landing-post-content img{display:block;max-width:100%;height:auto;border-radius:2px}
.landing-post-content ul,.landing-post-content ol{margin:0 0 1.8em;padding-left:1.25em}
.landing-post-content li{margin-bottom:.65em;padding-left:.4em}

 
 */

/* Legacy common.php builder blocks inside the premium landing template. */
/*.landing-post-content> .full{float:none;clear:both;width:100%;margin:0}
 .landing-post-content>.container{position:relative;width:100%;max-width:none;margin:clamp(44px,6vw,82px) 0;padding:0} */

/* .landing-post-content>.container>.row,.landing-post-content>.container>.row>.col-xs-12{display:block;width:100%;margin:0;padding:0;float:none}
.landing-post-content .banner_cont{margin:0 0 20px}
.landing-post-content .banner_cont .bighead{margin:0;color:var(--ink,#122028);font:400 clamp(38px,5vw,64px)/1 var(--display)!important;letter-spacing:-.04em;text-transform:none}
.landing-post-content .bancont{max-width:880px;font-size:16px;line-height:1.85;color:#60676a}
.landing-post-content .full.padeql:has(>.col-lg-6),.landing-post-content .full:has(>.col-lg-4),.landing-post-content .full:has(>.col-md-3){display:grid;align-items:stretch;gap:18px}
.landing-post-content .full.padeql:has(>.col-lg-6){grid-template-columns:repeat(2,minmax(0,1fr))}
.landing-post-content .full:has(>.col-lg-4){grid-template-columns:repeat(3,minmax(0,1fr))}
.landing-post-content .full:has(>.col-md-3){grid-template-columns:repeat(2,minmax(0,1fr))}
.landing-post-content .full.padeql:has(>.col-lg-6)>[class*=col-],.landing-post-content .full:has(>.col-lg-4)>[class*=col-],.landing-post-content .full:has(>.col-md-3)>[class*=col-]{float:none;width:auto!important;max-width:none;padding:0;font-size:15px;line-height:1.65}
.landing-post-content .full.padeql:has(>.col-lg-6)>[class*=col-]+[class*=col-],.landing-post-content .full:has(>.col-lg-4)>[class*=col-]+[class*=col-],.landing-post-content .full:has(>.col-md-3)>[class*=col-]:nth-child(even){padding-left:18px;border-left:1px solid rgba(19,39,47,.12)}
.landing-post-content>.full.space{float:none;clear:both;display:block;width:100%;height:auto} */

/* Optional cards: add `landing-card-grid` to a parent section only when needed. */
/* .landing-card-grid{--card-gap:18px;display:grid;gap:var(--card-gap)}
.landing-card-grid.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.landing-card-grid.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.landing-card-grid.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.landing-card-grid>.landing-card,.landing-post-content .landing-card-grid .full:has(>[class*=col-])>[class*=col-]{padding:clamp(24px,2.6vw,36px);border:1px solid rgba(19,39,47,.12);border-radius:16px;background:rgba(255,255,255,.48);box-shadow:0 18px 45px rgba(24,39,45,.06);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.landing-card-grid>.landing-card:hover,.landing-post-content .landing-card-grid .full:has(>[class*=col-])>[class*=col-]:hover{transform:translateY(-4px);border-color:rgba(197,154,69,.45);box-shadow:0 22px 55px rgba(24,39,45,.1)}
.landing-card-grid>.landing-card>:last-child,.landing-post-content .landing-card-grid .full:has(>[class*=col-])>[class*=col-]>:last-child{margin-bottom:0}
@media(max-width:900px){.landing-card-grid.cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.landing-post-content .full:has(>.col-lg-4),.landing-card-grid.cards-3{grid-template-columns:1fr}
.landing-post-content .full:has(>.col-lg-4)>[class*=col-]+[class*=col-]{padding:18px 0 0;border:0;border-top:1px solid rgba(19,39,47,.12)}}
@media(max-width:700px){.landing-post-hero{min-height:520px}
.landing-post-hero-inner{padding:130px 22px 52px}
.landing-post-meta{flex-wrap:wrap}
.landing-post-content{padding:62px 22px 88px;font-size:16px}
.landing-post-content>:first-child{font-size:16px}
.landing-post-content h2{margin-top:54px}
.landing-post-content blockquote{margin:54px 0;padding-left:22px}
.landing-post-content>.container{width:100%;margin:40px 0}
.landing-post-content .full.padeql:has(>.col-lg-6),.landing-post-content .full:has(>.col-md-3),.landing-card-grid.cards-2,.landing-card-grid.cards-4{grid-template-columns:1fr}
.landing-post-content .full.padeql:has(>.col-lg-6)>[class*=col-]+[class*=col-],.landing-post-content .full:has(>.col-md-3)>[class*=col-]:nth-child(even){padding:18px 0 0;border:0;border-top:1px solid rgba(19,39,47,.12)}} */

/* ============================================================
   DEFAULT ARTICLE SYSTEM
   Shared by standard posts and optional post landing templates.
   ============================================================ */
.article-single{background:var(--paper);color:var(--ink);    float: left; width: 100%;}
.article-banner{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(500px,62vh,640px);overflow:hidden;background:#122229;color:#fff}
.article-banner.no-image{background:radial-gradient(circle at 78% 18%,rgba(104,180,242,.12),transparent 34%),radial-gradient(circle at 20% 80%,rgba(198,164,91,.1),transparent 38%),#0f1d24}
.article-banner-media{position:absolute;z-index:0;inset:0}
.article-banner-media img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;animation:cinematicDrift 18s ease-out both;--pan-from-x:-.5%;--pan-from-y:0;--zoom-from:1.03;--pan-to-x:.4%;--pan-to-y:-.2%;--zoom-to:1.075}
.article-banner-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(5,12,15,.2),rgba(5,12,15,.12) 38%,rgba(5,12,15,.86)),linear-gradient(90deg,rgba(5,12,15,.35),transparent 70%)}
.article-banner.no-image .article-banner-shade{background:linear-gradient(180deg,rgba(5,12,15,.04),rgba(5,12,15,.36))}
.article-banner-inner{position:relative;z-index:2;width:min(100%,var(--content-width));margin:0 auto;padding:170px var(--content-gutter) clamp(64px,8vw,110px)}
.article-banner-inner:before{content: "";
    position: absolute;
    z-index: -1;
    inset: -65px -70px -42px -45px;
    background: radial-gradient(ellipse at 35% 54%, rgba(7, 13, 16, .68), rgba(7, 13, 16, .43) 55%, transparent 83%);
    pointer-events: none;}
.article-banner .article-banner-title{max-width:50%;margin:14px 0 24px;color:#fff}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:rgba(255,255,255,.72);font:600 10px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase}
.article-body{width:100%;max-width:var(--content-width);margin:0 auto;padding:clamp(72px,9vw,130px) var(--content-gutter);color:#3f484b;font:400 17px/1.9 var(--body)}
.tagline{margin-top:0;color:var(--ink);font:400 clamp(23px,2.5vw,31px)/1.5 var(--display); padding:30px 0}

.article-single blockquote{float:none;clear:both;width:auto;margin:2.8em 0;padding:8px 0 8px clamp(24px,4vw,52px);border:0;border-left:1px solid var(--gold);color:var(--ink);font:400 clamp(26px,3.5vw,43px)/1.35 var(--display);font-style:normal}
.article-body>.container>.row{display:flow-root}
@media(max-width:800px){
   .article-banner{min-height:clamp(460px,64svh,600px)}
   .article-banner-inner{width:100%;padding:130px 22px 58px}
   .article-banner-inner:before{left:12px;right:12px;top:108px;bottom:34px;border-radius:2px;background:rgba(8,20,26,.4);-webkit-backdrop-filter:blur(11px) saturate(112%);backdrop-filter:blur(11px) saturate(112%)}
.article-body{padding-inline:22px;font-size:16px}
   .article-single blockquote{margin-inline:0}
}
