/* Combined by _source/bundle_assets.py from: assets/fx.css, assets/page-motion.css, assets/site-menu.css, assets/smart-search.css, assets/help-dock.css, assets/saved.css, assets/extras.css, assets/bottom-hero.css, assets/bh-shared.css */
/* ==========================================================================
   The Haven Group V2: shared polish for every page
   modal exits, image fade-in, page transitions, skip link, focus rings, reduced motion
   ========================================================================== */
:root{--fx-ease:cubic-bezier(.22,.61,.36,1);--fx-ease-in:cubic-bezier(.4,0,.2,1)}

/* utility: visible only to screen readers */
.sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* skip link: first thing a keyboard user reaches */
.skip-link{position:fixed;left:12px;top:-64px;z-index:var(--z-top,12000);padding:12px 18px;background:#fff;color:#171816;font:500 12px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.35);transition:top .25s var(--fx-ease)}
.skip-link:focus{top:12px;outline:2px solid #C31B37;outline-offset:2px}
main:focus{outline:0}

/* a clear focus ring for every control, unless a page defines a better one */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid #FF4D6A;outline-offset:3px}
:where(.hxLinks a,.hxCard,.hxCityLink,.hxBars button,.hxPause,.gatewayItem,.exclusiveArrow,.siteBar a):focus-visible{outline:2px solid #fff;outline-offset:4px}

/* pop-up windows leave as smoothly as they arrive */
.fx-closing{animation:fxOut .3s var(--fx-ease-in) forwards!important;pointer-events:none}
.fx-closing .tm-box,.fx-closing .inv-box,.fx-closing .mb-box,.fx-closing .rs-lb-stage,.fx-closing .socv-stage{animation:fxBoxOut .3s var(--fx-ease-in) forwards!important}
@keyframes fxOut{to{opacity:0}}
@keyframes fxBoxOut{to{opacity:0;transform:translateY(14px) scale(.985)}}

/* images fade in as they arrive instead of popping */
.img-wait{opacity:0}
.img-in{animation:fxImg .8s var(--fx-ease) both}
@keyframes fxImg{from{opacity:0}to{opacity:1}}

/* pages without native cross-document transitions get a gentle fade */
.pg-fallback body{animation:fxPage .55s var(--fx-ease) both}
.pg-fallback.pg-out body{opacity:0;transition:opacity .22s var(--fx-ease-in);animation:none}
@keyframes fxPage{from{opacity:0}to{opacity:1}}

/* people who ask for less motion get none */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .img-wait{opacity:1}
  .pg-fallback body{animation:none}
}

/* controls that are normally tucked away appear when a keyboard user reaches them */
.to-top:focus-visible,.moTop:focus-visible{opacity:1!important;transform:none!important;pointer-events:auto!important}

/* messages from the shared form check */
.hv-formmsg{grid-column:1/-1;margin:12px 0 0;padding:10px 14px;border-left:3px solid #C31B37;background:#fdf1f2;color:#7c0b19;font:500 13px/1.5 Inter,Inter Fallback,Arial,sans-serif}
.hv-formmsg:empty{display:none}
.hv-formmsg.ok{border-left-color:#1f6f45;background:#eef7f1;color:#1f6f45}
[aria-invalid="true"]{outline:2px solid #C31B37;outline-offset:1px}

/* Motion for every page (3.2.10, after ogroup.com): words and photographs that fade up as they arrive, large titles
   that drift sideways, still photographs behind full-width sections, smooth scrolling, and the social and contact column. See assets/page-motion.js. None of it runs for people
   who ask their device for less motion. */
:root{--mo-ease:cubic-bezier(.16,1,.3,1);--mo-ease-in:cubic-bezier(.7,0,.84,0)}

/* ---------- moving between pages: a soft cross-fade, the top bar held in place ---------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:mo-vt-out .35s ease both}
::view-transition-new(root){animation:mo-vt-in .55s ease both}
@keyframes mo-vt-out{to{opacity:0}}
@keyframes mo-vt-in{from{opacity:0}}
.sn{view-transition-name:hv-nav}
::view-transition-group(hv-nav){animation:none}
::view-transition-old(hv-nav),::view-transition-new(hv-nav){animation:none;mix-blend-mode:normal}

/* ---------- smooth scrolling (Lenis) ---------- */
html.hv-smooth,html.hv-smooth body{height:auto}
html.hv-smooth{scroll-behavior:auto!important;scroll-snap-type:none!important}
html.lenis-stopped{overflow:clip}
html.hv-smooth iframe{pointer-events:auto}

/* ---------- arriving, as on ogroup.com (AOS "fade-up": 100 px, 1 s, ease) ---------- */
@property --mo-ry{syntax:'<length>';inherits:false;initial-value:0px}
@property --mo-rx{syntax:'<length>';inherits:false;initial-value:0px}
html.mo-on .mo-a{opacity:0;--mo-ry:100px;translate:calc(var(--mo-x,0px) + var(--mo-rx)) var(--mo-ry);transition:opacity 1s ease var(--mo-d,0ms),--mo-ry 1s ease var(--mo-d,0ms),--mo-rx 1s ease var(--mo-d,0ms)}
html.mo-on .mo-a.mo-l{--mo-ry:0px;--mo-rx:-100px}
html.mo-on .mo-a.mo-r{--mo-ry:0px;--mo-rx:100px}
html.mo-on .mo-a.mo-f{--mo-ry:0px}
html.mo-on .mo-a.mo-d{--mo-ry:-100px}
html.mo-on .mo-a.mo-in{opacity:1;--mo-ry:0px;--mo-rx:0px}
/* the large titles drift sideways as you scroll */
html.mo-on .mo-p{translate:var(--mo-x,0px) var(--mo-ry,0px);will-change:translate}
html.mo-on,html.mo-on body{overflow-x:clip}
/* photographs behind full-width sections stay still while the page moves over them (wide screens) */
html.mo-fix .mo-fixbg{background-attachment:fixed!important;transform:none!important;translate:none!important;scale:none!important}
html.mo-fix .mo-hold{transform:none!important;translate:none!important;scale:none!important;filter:none!important;will-change:auto!important}

/* ---------- the social and contact column: as slim as ogroup.com's (13 px icons, hairline dividers) ---------- */
.hv-rail{position:fixed;left:clamp(6px,.65vw,12px);top:50%;z-index:35;transform:translateY(-50%);pointer-events:none;transition:opacity .45s ease,transform .45s ease}
.hv-rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:clamp(6px,.62vw,10px)}
.hv-rail li{display:flex;flex-direction:column;align-items:center;opacity:0;transition:opacity .6s ease;transition-delay:calc(var(--i) * 50ms + .3s)}
.hv-rail li.dk a{color:#000}
.hv-rail.in li{opacity:1}
.hv-rail a{pointer-events:auto;display:block;padding:clamp(3px,.313vw,5px);line-height:0;color:#fff;opacity:.92;transition:color .4s ease-in-out,opacity .4s ease-in-out,transform .4s ease-in-out;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}
.hv-rail li.dk a{filter:none}
.hv-rail a:hover{color:#b71f37!important}
.hv-rail a:hover{opacity:1}
.hv-rail a:focus-visible{outline:1px solid #fff;outline-offset:1px}
.hv-rail svg{display:block;width:clamp(11px,.813vw,13px);height:clamp(11px,.813vw,13px);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hv-rail svg .f,.hv-rail svg path.f{fill:currentColor;stroke:none}
.hv-rail-tip{position:fixed;z-index:36;transform:translate(-4px,-50%);padding:4px 8px;background:#151311;color:#fff;font:500 9.5px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .3s ease}
.hv-rail-tip.on{opacity:1;transform:translate(0,-50%)}
.hv-rail-tog{display:none}
html.hv-rail-away .hv-rail,html.hv-rail-away .hv-rail-tog{opacity:0;pointer-events:none}
html.hv-rail-away .hv-rail a{pointer-events:none}
/* phones and narrow screens: a small round button at the left opens the column */
@media (max-width:1100px),(hover:none){
  .hv-rail{top:auto;bottom:calc(68px + env(safe-area-inset-bottom,0px));left:12px;transform:none;z-index:37}
  .hv-rail li.dk a{color:#fff;filter:none}
  .hv-rail ul{padding:6px 4px;border-radius:16px;background:rgba(18,15,13,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-origin:bottom;transform:translateY(10px);opacity:0;visibility:hidden;transition:transform .35s ease,opacity .3s,visibility 0s .35s}
  html.hv-rail-open .hv-rail ul{transform:none;opacity:1;visibility:visible;transition:transform .35s ease,opacity .3s,visibility 0s}
  .hv-rail li,.hv-rail.in li{opacity:1;transition:none}
  .hv-rail ul{gap:2px}
  .hv-rail a{padding:6px}
  .hv-rail svg{width:13px;height:13px}
  .hv-rail-tog{position:fixed;left:12px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:37;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(18,15,13,.85);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:background .25s,opacity .45s}
  .hv-rail-tog svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;transition:transform .4s ease}
  html.hv-rail-open .hv-rail-tog{background:#7c0b19}
  html.hv-rail-open .hv-rail-tog svg{transform:rotate(-90deg)}
  .hv-rail-tog:focus-visible{outline:2px solid #fff;outline-offset:3px}
  .hv-rail-tip{display:none}
}
/* the demo inbox button sits bottom-left in demo mode: lift the round button above it */
body:has(.ac-inbox-btn) .hv-rail-tog{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
body:has(.ac-inbox-btn) .hv-rail{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
@media (min-width:1101px) and (hover:hover){body:has(.ac-inbox-btn) .hv-rail{bottom:auto}}
@media print{.hv-rail,.hv-rail-tog,.hv-rail-tip{display:none!important}.mo-a,.mo-p{opacity:1!important;translate:none!important}}

/* people who ask for less motion: everything is simply there */
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .mo-a,.mo-p{opacity:1!important;translate:none!important;transition:none!important}
  .mo-fixbg{background-attachment:scroll!important}
  .hv-rail li{opacity:1;transition:none}
}

/* ---------- 3.2.20: calm motion on phones and tablets (html.hv-calm, set by assets/hv-early.js) ----------
   One signature moment per page (its opening) stays; sections fade in briefly instead of sliding or unmasking, and
   looping attention effects stop. */
html.hv-calm .rv,html.hv-calm .rv-fade,html.hv-calm .hd-rv,html.hv-calm h1.hd,html.hv-calm h2.hd,html.hv-calm .feat,html.hv-calm .feat .ph,html.hv-calm .panel{transition-property:opacity!important;transition-duration:.45s!important;transition-delay:0s!important}   /* the slide and unmask jump straight to the end; only the fade remains */
html.hv-calm .prs-play .c:after,html.hv-calm .hvAsk .hvHelp-b:after{animation:none!important;display:none}
html.hv-calm .lh-spot:before{animation-iteration-count:2!important}

/* Full site menu (3.0.0): "+" button on the home hero and the full-screen menu it opens (assets/site-menu.js). */

/* 3.0.0 font: Calibri where the visitor's device has it (Windows, Macs with Office). Calibri cannot be bundled with a website
   (Microsoft licence), so other devices get Carlito, a free font (SIL Open Font License) with the same shapes and spacing. */
@font-face{font-family:"Carlito";src:local("Carlito"),url("fonts/carlito-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Carlito";src:local("Carlito Bold"),local("Carlito-Bold"),url("fonts/carlito-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* ---------- the + button ---------- */
.hvMenuBtn{position:relative;flex:0 0 auto;align-self:center;width:42px;height:42px;margin-left:clamp(-14px,-1vw,-4px);padding:0;border:0;border-radius:50%;background:none;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hvMenuBtn-ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.6);transition:transform .45s cubic-bezier(.22,.61,.36,1),background-color .35s,border-color .35s;box-shadow:0 2px 18px rgba(0,0,0,.25)}
.hvMenuBtn-ring:after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid #c9a76c;opacity:0;animation:hvPulse 2.6s cubic-bezier(.22,.61,.36,1) 2.2s 2}
@keyframes hvPulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.7)}}
.hvMenuBtn-plus{position:absolute;inset:0;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.hvMenuBtn-plus i{position:absolute;left:50%;top:50%;width:16px;height:1.5px;margin:-.75px 0 0 -8px;background:currentColor;border-radius:2px}
.hvMenuBtn-plus i+i{transform:rotate(90deg)}
.hvMenuBtn:hover .hvMenuBtn-ring,.hvMenuBtn:focus-visible .hvMenuBtn-ring{transform:scale(1.12);background:#8E0D20;border-color:#8E0D20}
.hvMenuBtn:hover .hvMenuBtn-plus,.hvMenuBtn:focus-visible .hvMenuBtn-plus{transform:rotate(90deg)}
.hvMenuBtn.on .hvMenuBtn-plus{transform:rotate(135deg)}
.hvMenuBtn:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:900px){.hvMenuBtn{width:38px;height:38px;margin-left:0}}

/* ---------- the menu ---------- */
html.hvM-lock,html.hvM-lock body{overflow:hidden}
.hvM{--gold:#c9a76c;--red:#ff6b7f;--ink:#0d0a0b;--ox:90%;--oy:6%;--mx:50%;--my:40%;--px:0px;--py:0px;
  position:fixed;inset:0;z-index:var(--z-modal,10000);display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;color:#fff;background:var(--ink);
  font-family:Inter,Inter Fallback,Arial,sans-serif;clip-path:circle(0 at var(--ox) var(--oy));transition:clip-path .75s cubic-bezier(.77,0,.18,1)}
.hvM[hidden]{display:none}
.hvM [hidden]{display:none!important}
.hvM.in{clip-path:circle(150% at var(--ox) var(--oy))}
.hvM.out{clip-path:circle(0 at var(--ox) var(--oy));transition-duration:.5s}
.hvM a{color:inherit;text-decoration:none}
.hvM :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.hvM-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hvM,.hvM input,.hvM button,.hvM kbd,.hvM output,.hvM-a,.hvM-tog,.hvM-chip,.hvM-follow,.hvM-oh,.hvM-g h2,.hvM-offices b,.hvM-offices span,.hvM-offices em,.hvM-brand p,.hvM-count,.hvM-hint,.hvM-tog small,.hvM-chip b,.hvM-none{font-family:Calibri,Carlito,"Segoe UI",Candara,Arial,sans-serif!important}

/* background: photo of the group in focus, a light that follows the pointer, and a brushed ring */
.hvM-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.hvM-ph{position:absolute;inset:-40px;background:center/cover no-repeat;opacity:0;transform:scale(1.1);filter:brightness(.3) saturate(.75) blur(1px);transition:opacity 1s ease,transform 6s cubic-bezier(.22,.61,.36,1)}
.hvM-ph.on{opacity:1;transform:scale(1)}
.hvM-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,10,11,.88) 0%,rgba(13,10,11,.55) 55%,rgba(13,10,11,.8) 100%),linear-gradient(0deg,rgba(13,10,11,.9),transparent 30%)}
.hvM-glow{position:absolute;inset:0;z-index:1;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(201,167,108,.13),transparent 60%);transition:background .2s}
.hvM-brush{position:absolute;z-index:1;left:4%;top:8%;width:min(78vmin,760px);height:auto;transform:translate(var(--px),var(--py)) rotate(-110deg);transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.hvM-brush circle{fill:none;stroke:#8E0D20;stroke-width:46;stroke-linecap:round;opacity:.22;stroke-dasharray:1056;stroke-dashoffset:1056;transition:stroke-dashoffset 1.8s cubic-bezier(.65,0,.35,1) .25s}
.hvM-brush circle.t{stroke:var(--gold);stroke-width:1.5;opacity:.35;stroke-dasharray:943;stroke-dashoffset:943;transition-delay:.6s}
.hvM.in .hvM-brush circle{stroke-dashoffset:90}
.hvM.in .hvM-brush circle.t{stroke-dashoffset:0}
.hvM.searching .hvM-brush{opacity:.35}

/* top bar */
.hvM-top{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:1fr minmax(0,560px) 1fr;align-items:center;gap:20px;padding:22px clamp(18px,4vw,60px);background:linear-gradient(180deg,rgba(13,10,11,.92),rgba(13,10,11,.6) 70%,transparent)}
.hvM-logo img{display:block;height:34px;width:auto}
.hvM-search{position:relative;display:flex;align-items:center}
.hvM-search>svg{position:absolute;z-index:1;pointer-events:none;left:16px;width:18px;height:18px;fill:none;stroke:rgba(255,255,255,.7);stroke-width:2}
.hvM-search input{width:100%;height:48px;padding:0 92px 0 46px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;font:400 15px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color .3s,background-color .3s,box-shadow .3s}
.hvM-search input::placeholder{color:rgba(255,255,255,.55)}
.hvM-search input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.12);box-shadow:0 0 0 4px rgba(201,167,108,.18)}
.hvM-search input::-webkit-search-cancel-button{filter:invert(1);opacity:.6}
.hvM-search kbd{position:absolute;z-index:1;right:16px;padding:3px 8px;border:1px solid rgba(255,255,255,.3);border-radius:5px;font:500 12px/1 Inter,Inter Fallback,Arial,sans-serif;color:rgba(255,255,255,.7)}
.hvM-search input:focus~kbd,.hvM.searching .hvM-search kbd{display:none}
.hvM-count{position:absolute;right:18px;font:500 12px/1 Inter,Inter Fallback,Arial,sans-serif;color:var(--gold);letter-spacing:.06em;pointer-events:none}
.hvM-x{justify-self:end;position:relative;width:48px;height:48px;border:0;background:none;color:var(--red);cursor:pointer;border-radius:50%;transition:transform .5s cubic-bezier(.34,1.56,.64,1),background-color .3s}
.hvM-x i{position:absolute;left:50%;top:50%;width:30px;height:1.6px;margin:-.8px 0 0 -15px;background:currentColor;transform:rotate(45deg)}
.hvM-x i+i{transform:rotate(-45deg)}
.hvM-x:hover,.hvM-x:focus-visible{transform:rotate(90deg);background:rgba(255,107,127,.1)}

/* body */
.hvM-body{position:relative;z-index:2;flex:1 0 auto;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);gap:clamp(30px,5vw,90px);width:100%;max-width:1480px;margin:0 auto;padding:clamp(12px,3vh,40px) clamp(18px,5vw,80px) 40px}
.hvM-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(20px,3vw,48px);align-content:start}
.hvM-col{display:flex;flex-direction:column;gap:clamp(26px,4vh,44px)}
.hvM-g{transition:opacity .35s}
.hvM-nav:hover .hvM-g:not(.lit){opacity:.5}
.hvM.searching .hvM-nav:hover .hvM-g{opacity:1}
.hvM-g h2{margin:0 0 14px;font-weight:500;font-size:clamp(20px,1.7vw,26px);letter-spacing:.26em;text-transform:uppercase;line-height:1.1}
.hvM-g h2 span{background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;padding-bottom:4px;transition:background-size .5s cubic-bezier(.22,.61,.36,1)}
.hvM-g.lit h2 span{background-size:100% 1px}
.hvM-g ul{list-style:none;margin:0;padding:0}
.hvM-a,.hvM-tog{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:4px 0;border:0;background:none;color:rgba(255,255,255,.62);font-weight:500;font-size:15px;letter-spacing:.15em;text-transform:uppercase;text-align:left;cursor:pointer;transition:color .25s,transform .35s cubic-bezier(.22,.61,.36,1)}
.hvM-a:before{content:"";position:absolute;left:-22px;top:50%;width:0;height:1px;background:var(--gold);transition:width .35s cubic-bezier(.22,.61,.36,1)}
.hvM-a:hover,.hvM-a:focus-visible,.hvM-tog:hover,.hvM-tog:focus-visible{color:#fff;transform:translateX(8px)}
.hvM-a:hover:before,.hvM-a:focus-visible:before{width:14px}
.hvM-a.sm{min-height:32px;font-size:13.5px;letter-spacing:.12em;color:rgba(255,255,255,.55)}
.hvM-a mark{background:none;color:var(--gold);box-shadow:inset 0 -1px var(--gold)}
.hvM-a.first{color:#fff}
.hvM-a.first:after{content:"↵ Enter";margin-left:auto;padding:2px 7px;border:1px solid rgba(201,167,108,.6);border-radius:4px;font:500 10px/1.4 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.05em;color:var(--gold);text-transform:none}
.hvM-tog small{margin-left:auto;min-width:24px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.08);font:500 11px/1.3 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:0;text-align:center;color:rgba(255,255,255,.65)}
.hvM-pm{position:relative;width:12px;height:12px;flex:0 0 12px}
.hvM-pm:before,.hvM-pm:after{content:"";position:absolute;left:0;top:50%;width:12px;height:1.5px;margin-top:-.75px;background:var(--gold);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.hvM-pm:after{transform:rotate(90deg)}
.hvM-sub.open>.hvM-tog{color:#fff}
.hvM-sub.open .hvM-pm:after{transform:rotate(0)}
.hvM-items{overflow:hidden;margin:2px 0 8px!important;padding-left:14px!important;border-left:1px solid rgba(201,167,108,.45);transition:height .4s cubic-bezier(.22,.61,.36,1)}
.hvM-none{grid-column:1/-1;margin:20px 0;font-size:16px;color:rgba(255,255,255,.75)}
.hvM-none a{color:var(--gold);text-decoration:underline}

/* side: brand, quick actions, offices */
.hvM-side{display:flex;flex-direction:column;gap:22px;align-self:start;text-align:center}
.hvM-brand img{display:block;width:min(340px,100%);height:auto;margin:0 auto}
.hvM-brand p{margin:14px auto 0;max-width:34ch;font:300 14px/1.6 Inter,Inter Fallback,Arial,sans-serif;color:rgba(255,255,255,.7)}
.hvM-quick{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.hvM-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 15px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-weight:500;font-size:14px;letter-spacing:.1em;text-transform:uppercase;transition:background-color .3s,border-color .3s,transform .3s,color .3s}
.hvM-chip svg{width:17px;height:17px}
.hvM-chip:hover,.hvM-chip:focus-visible{background:#fff;color:#1a1213;border-color:#fff;transform:translateY(-2px)}
.hvM-chip.wa:hover,.hvM-chip.wa:focus-visible{background:#1b8146;color:#fff;border-color:#1b8146}
.hvM-chip b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#8E0D20;color:#fff;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif}
.hvM-oh{margin:6px 0 0;font-weight:500;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hvM-offices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hvM-offices li:last-child:nth-child(odd){grid-column:1/-1}
.hvM-offices a{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;padding:16px 12px 30px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:rgba(13,10,11,.35);overflow:hidden;transition:border-color .35s,background-color .35s,transform .35s cubic-bezier(.22,.61,.36,1)}
.hvM-offices b{font-weight:500;font-size:19px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.hvM-offices span{font:400 13px/1.5 Inter,Inter Fallback,Arial,sans-serif;color:rgba(255,255,255,.72)}
.hvM-offices em{position:absolute;bottom:9px;left:0;right:0;font:500 11px/1 Inter,Inter Fallback,Arial,sans-serif;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);opacity:0;transform:translateY(8px);transition:opacity .3s,transform .35s}
.hvM-offices a:hover,.hvM-offices a:focus-visible{border-color:rgba(201,167,108,.6);background:rgba(142,13,32,.22);transform:translateY(-3px)}
.hvM-offices a:hover em,.hvM-offices a:focus-visible em{opacity:1;transform:none}

/* footer */
.hvM-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 30px;width:calc(100% - 2*clamp(18px,5vw,80px));max-width:1480px;margin:0 auto;padding:24px 0 30px;border-top:1px solid rgba(255,255,255,.12)}
.hvM-follow{font-weight:500;font-size:16px;letter-spacing:.42em;text-transform:uppercase}
.hvM-soc{list-style:none;display:flex;gap:10px;margin:0;padding:0}
.hvM-soc a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid transparent;transition:background-color .3s,transform .35s cubic-bezier(.34,1.56,.64,1),border-color .3s}
.hvM-soc svg{width:19px;height:19px}
.hvM-soc a:hover,.hvM-soc a:focus-visible{background:#8E0D20;border-color:#8E0D20;transform:translateY(-4px) rotate(-6deg)}
.hvM-hint{position:absolute;right:0;font:400 12px/1 Inter,Inter Fallback,Arial,sans-serif;color:rgba(255,255,255,.5)}
.hvM-hint kbd{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid rgba(255,255,255,.25);border-radius:4px;font:inherit}

/* entrance: everything with --d rises in, one after another */
.hvM [style*="--d"]{opacity:0;transform:translateY(16px)}
.hvM.in [style*="--d"]{opacity:1;transform:none;transition:opacity .6s ease calc(.28s + var(--d) * 22ms),transform .7s cubic-bezier(.22,.61,.36,1) calc(.28s + var(--d) * 22ms)}
.hvM.in .hvM-a[style*="--d"]:hover,.hvM.in .hvM-a[style*="--d"]:focus-visible{transform:translateX(8px);transition-delay:0s}
.hvM-top,.hvM-foot{opacity:0;transition:opacity .5s ease .35s}
.hvM.in .hvM-top,.hvM.in .hvM-foot{opacity:1}

/* tablets and phones */
@media(max-width:1180px){.hvM-body{grid-template-columns:1fr}.hvM-side{order:-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);text-align:left;align-items:start}.hvM-brand img{margin:0;width:260px}.hvM-brand p{margin-left:0}.hvM-quick{justify-content:flex-start}.hvM-oh,.hvM-offices{grid-column:1/-1}.hvM-offices{grid-template-columns:repeat(5,1fr)}.hvM-offices li:last-child:nth-child(odd){grid-column:auto}.hvM-hint{display:none}}
@media(max-width:900px){.hvM-nav{grid-template-columns:1fr 1fr}.hvM-nav .hvM-col:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.hvM-offices{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){
  .hvM-top{grid-template-columns:1fr auto;padding:14px 16px;gap:12px}
  .hvM-search{grid-column:1/-1;grid-row:2}.hvM-search kbd{display:none}
  .hvM-logo img{height:28px}
  .hvM-body{padding:8px 16px 30px;gap:30px}
  .hvM-side{display:flex;text-align:center}.hvM-brand img{margin:0 auto;width:230px}.hvM-brand p{margin:12px auto 0}.hvM-quick{justify-content:center}
  .hvM-offices{grid-template-columns:1fr 1fr}.hvM-offices li:last-child:nth-child(odd){grid-column:1/-1}
  .hvM-nav,.hvM-nav .hvM-col:nth-child(3){grid-template-columns:1fr;display:grid}
  .hvM-col{gap:28px;margin-bottom:28px}
  .hvM-a,.hvM-tog{min-height:44px;font-size:16px}.hvM-a.sm{min-height:40px;font-size:14.5px}
  .hvM-brush{left:-30%;top:0;width:120vw}
  .hvM-foot{width:calc(100% - 32px);flex-direction:column;gap:10px}
  .hvM-follow{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  .hvM,.hvM *,.hvMenuBtn *{transition:none!important;animation:none!important}
  .hvM{clip-path:none}
  .hvM [style*="--d"],.hvM-top,.hvM-foot{opacity:1;transform:none}
  .hvM-brush circle{stroke-dashoffset:90}.hvM-brush circle.t{stroke-dashoffset:0}
}
@media print{.hvMenuBtn,.hvM{display:none!important}}

/* the site's own form styles must not square off the search field */
#hvMenu .hvM-search input{-webkit-appearance:none;appearance:none;border-radius:999px!important;border:1px solid rgba(255,255,255,.22)!important;outline:none!important;box-sizing:border-box}
#hvMenu .hvM-search input:focus{border-color:#c9a76c!important;box-shadow:0 0 0 4px rgba(201,167,108,.2)}
/* type tuning for Calibri */
.hvM-g h2{font-weight:700;font-size:clamp(21px,1.75vw,27px);letter-spacing:.2em}
.hvM-g h2 span{background-position:0 92%}
.hvM-a,.hvM-tog{font-weight:400;font-size:16px;letter-spacing:.15em}
.hvM-a.sm{font-size:14.5px;letter-spacing:.12em}
.hvM-chip{font-weight:700;font-size:13.5px;letter-spacing:.12em}
.hvM-follow{font-weight:700;font-size:15px;letter-spacing:.42em}
.hvM-oh{font-weight:700;font-size:14px;letter-spacing:.3em}
.hvM-offices a{padding:14px 10px 28px}
.hvM-offices b{font-weight:700;font-size:20px;letter-spacing:.14em}
.hvM-offices span,.hvM-brand p{font-size:15px}
.hvM-search input{font-size:16px!important}
/* while searching, results flow from the first column instead of keeping their usual places */
.hvM.searching .hvM-col{display:contents}
.hvM.searching .hvM-g{margin-bottom:28px}
.hvM.searching .hvM-tog small{display:none}
/* on tablets and phones the links come first, the brand and offices after them */
@media(max-width:1180px){.hvM-side{order:2}}
/* keep each label on one line */
.hvM-tog>span{white-space:nowrap}
@media(min-width:1181px) and (max-width:1600px){.hvM-a,.hvM-tog{letter-spacing:.13em}.hvM-nav{gap:0 clamp(16px,2.2vw,40px)}}

/* ---------- 3.0.0 compact size: smaller type, tighter spacing, a narrower centred layout ---------- */
.hvM-top{padding:16px clamp(18px,4vw,56px);grid-template-columns:1fr minmax(0,460px) 1fr}
.hvM-logo img{height:28px}
.hvM-search input{height:42px;font-size:14px!important;padding-left:42px}
.hvM-search>svg{left:14px;width:16px;height:16px}
.hvM-x{width:42px;height:42px}.hvM-x i{width:24px;margin-left:-12px}
.hvM-body{max-width:1120px;gap:clamp(24px,4vw,64px);padding:clamp(8px,2vh,24px) clamp(18px,4vw,48px) 28px;align-items:start}
.hvM-nav{gap:0 clamp(16px,2.4vw,36px)}
.hvM-col{gap:clamp(18px,2.6vh,28px)}
.hvM-g h2{font-size:16px;letter-spacing:.2em;margin-bottom:8px}
.hvM-a,.hvM-tog{font-size:12.5px;letter-spacing:.12em;min-height:28px;padding:3px 0}
.hvM-a.sm{font-size:12px;letter-spacing:.1em;min-height:26px}
.hvM-tog small{font-size:10px;padding:1px 5px;min-width:20px}
.hvM-pm,.hvM-pm:before,.hvM-pm:after{width:10px}.hvM-pm{height:10px;flex-basis:10px}
.hvM-a:hover,.hvM-a:focus-visible,.hvM-tog:hover,.hvM-tog:focus-visible,.hvM.in .hvM-a[style*="--d"]:hover,.hvM.in .hvM-a[style*="--d"]:focus-visible{transform:translateX(6px)}
.hvM-side{gap:14px}
.hvM-brand img{width:min(230px,100%)}
.hvM-brand p{font-size:13px;margin-top:10px}
.hvM-quick{gap:6px}
.hvM-chip{min-height:32px;padding:0 12px;font-size:11.5px;letter-spacing:.1em}
.hvM-chip svg{width:15px;height:15px}
.hvM-oh{font-size:12px;margin-top:2px}
.hvM-offices{gap:8px}
.hvM-offices a{padding:10px 8px 22px;gap:3px}
.hvM-offices b{font-size:15px;letter-spacing:.12em}
.hvM-offices span{font-size:12.5px}
.hvM-offices em{font-size:10px;bottom:7px}
.hvM-foot{max-width:1120px;width:calc(100% - 2*clamp(18px,4vw,48px));padding:16px 0 20px;gap:10px 22px}
.hvM-follow{font-size:12px;letter-spacing:.38em}
.hvM-soc a{width:36px;height:36px}.hvM-soc svg{width:16px;height:16px}
.hvM-hint{font-size:11px}
.hvM-brush{width:min(64vmin,600px)}
@media(min-width:1181px){.hvM-body{grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr)}}
@media(min-width:1181px) and (max-width:1600px){.hvM-a,.hvM-tog{letter-spacing:.11em}}
@media(max-width:1180px){.hvM-brand img{width:200px}.hvM-offices{grid-template-columns:repeat(5,1fr)}}
@media(max-width:900px){.hvM-offices{grid-template-columns:repeat(3,1fr)}}
/* phones: smaller text, but rows stay tall enough to tap */
@media(max-width:640px){
  .hvM-a,.hvM-tog{font-size:13.5px;min-height:40px}.hvM-a.sm{font-size:13px;min-height:38px}
  .hvM-g h2{font-size:16px}
  .hvM-col{gap:20px;margin-bottom:20px}
  .hvM-offices{grid-template-columns:1fr 1fr}
}
/* the menu and its footer sit together in the middle of the screen instead of stretching to the edges */
.hvM-body{flex:0 0 auto;margin-top:auto}
.hvM-foot{margin-bottom:auto}

/* ---------- 3.0.0 centred panel instead of a full-screen cover ---------- */
.hvM-veil{position:fixed;inset:0;z-index:calc(var(--z-modal,10000) - 1);background:rgba(10,7,8,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .45s ease}
.hvM-veil[hidden]{display:none}
.hvM-veil.in{opacity:1}
.hvM{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(1180px,calc(100vw - 48px));height:auto;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
  border-radius:16px;border:1px solid rgba(201,167,108,.25);box-shadow:0 30px 90px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.4)}
.hvM-bg{position:absolute;border-radius:inherit}
.hvM-top{border-radius:16px 16px 0 0;padding:14px clamp(16px,3vw,32px)}
.hvM-body{max-width:none;margin-top:0;padding:clamp(6px,1.5vh,16px) clamp(16px,3vw,40px) 22px}
.hvM-foot{max-width:none;width:calc(100% - 2*clamp(16px,3vw,40px));margin-bottom:0;padding:14px 0 18px}
.hvM-glow{background:radial-gradient(420px circle at var(--mx) var(--my),rgba(201,167,108,.13),transparent 60%)}
.hvM-brush{width:min(56vmin,520px)}
@media(max-width:640px){
  .hvM{width:calc(100vw - 20px);max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);border-radius:14px}
  .hvM-top{border-radius:14px 14px 0 0;padding:12px 14px}
  .hvM-body{padding:6px 14px 22px}
  .hvM-foot{width:calc(100% - 28px)}
}
@media(prefers-reduced-motion:reduce){.hvM-veil{transition:none}}
/* 3.2.9: the reception photograph behind the menu, a little brighter, drifting slowly */
.hvM-ph.lobby{filter:brightness(.5) saturate(.95);background-position:58% 40%}
.hvM-ph.lobby.on{animation:hvM-drift 26s ease-in-out infinite alternate}
.hvM-bg:has(.hvM-ph.lobby) .hvM-brush{opacity:.4}
@keyframes hvM-drift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.2%,-1%,0)}}
@media(prefers-reduced-motion:reduce){.hvM-ph.lobby.on{animation:none}}
button.hvM-chip{background:none;color:inherit;font-family:inherit;cursor:pointer}.hvM-find{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}

/* 3.2.21: language and currency, in the menu on every inner page */
.hvM-prefs{display:flex;flex-direction:column;align-items:center;gap:10px}
.hvM-prefs .hvM-oh{font-size:12px}
.hvM-prefs .hvPrefs{margin:0;gap:10px}
.hvM-prefs .hvPref select{min-height:38px;min-width:76px;padding:0 26px 0 12px;border-color:rgba(255,255,255,.45);color:#fff;font-size:13px;letter-spacing:.08em}
@media(max-width:1180px){.hvM-prefs{align-items:flex-start}}
@media(max-width:700px){.hvM-prefs{align-items:center}}

/* 3.2.37: "All locations" under Our offices (the separate Offices column was removed) */
.hvM-alloff{display:inline-flex;align-self:center;gap:8px;align-items:center;margin:16px auto 0;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px}.hvM-alloff:hover,.hvM-alloff:focus-visible{border-color:var(--red);color:#fff}

/* Smart search (3.2.19). See assets/smart-search.js. */
.hvS{position:fixed;inset:0;z-index:var(--z-modal,10000);display:flex;justify-content:center;align-items:flex-start;padding:clamp(12px,10vh,110px) 16px 16px}
.hvS[hidden]{display:none}
.hvS-veil{position:absolute;inset:0;background:rgba(14,10,8,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .25s}
.hvS.in .hvS-veil{opacity:1}
.hvS-box{position:relative;width:min(720px,100%);max-height:calc(100svh - 2 * clamp(12px,10vh,110px));display:flex;flex-direction:column;background:#fff;color:#1d1a18;border-radius:16px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);overflow:hidden;transform:translateY(-10px);opacity:0;transition:transform .3s cubic-bezier(.22,.61,.36,1),opacity .25s}
.hvS.in .hvS-box{transform:none;opacity:1}
.hvS-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hvS-tabs{display:flex;gap:6px;padding:14px 16px 0}
.hvS-tabs button{min-height:36px;padding:0 16px;border:1px solid #e3d8ca;border-radius:999px;background:#fff;color:#3a3532;font:600 12px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.hvS-tabs button[aria-selected="true"]{background:#8E0D20;border-color:#8E0D20;color:#fff}
.hvS-tabs button:focus-visible{outline:2px solid #8E0D20;outline-offset:2px}
.hvS-field{display:flex;align-items:center;gap:10px;margin:12px 16px;padding:0 6px 0 14px;border:1.5px solid #d8cbbb;border-radius:12px}
.hvS-field:focus-within{border-color:#8E0D20;box-shadow:0 0 0 4px rgba(142,13,32,.1)}
.hvS-field svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:#8E0D20;stroke-width:2}
.hvS-field input{flex:1;min-width:0;min-height:52px;border:0;outline:0;background:none;font:400 17px/1.3 Inter,"Inter Fallback",Arial,sans-serif;color:#1d1a18}
.hvS-field input::-webkit-search-cancel-button{display:none}
.hvS-x{min-height:34px;padding:0 10px;border:1px solid #e3d8ca;border-radius:8px;background:#faf7f2;color:#5d5752;font:600 11px/1 Inter,"Inter Fallback",Arial,sans-serif;cursor:pointer}
.hvS-list{list-style:none;margin:0;padding:0 8px 8px;overflow-y:auto;overscroll-behavior:contain}
.hvS-head{padding:12px 10px 6px;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#6a625b}
.hvS-item{display:flex;align-items:center;gap:8px;border-radius:10px}
.hvS-item>a{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:9px 10px;color:inherit;text-decoration:none}
.hvS-item:hover,.hvS-item:focus-within{background:#f7f1ea}.hvS-item>a:focus-visible,.hvS-alts a:focus-visible{outline:2px solid #8E0D20;outline-offset:-2px;border-radius:10px}
.hvS-t{min-width:0;display:flex;flex-direction:column}
.hvS-t b{font:600 14px/1.3 Inter,"Inter Fallback",Arial,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvS-t small{font:400 12px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#6a625b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvS-ic{width:32px;height:32px;flex:0 0 32px;border-radius:8px;background:#f3ece2 center/16px no-repeat}
.hvS-ic.place{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E0D20' stroke-width='2'%3E%3Cpath d='M12 21s6-6.2 6-11a6 6 0 0 0-12 0c0 4.8 6 11 6 11z'/%3E%3Ccircle cx='12' cy='10' r='2.2'/%3E%3C/svg%3E")}
.hvS-ic.listing{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E0D20' stroke-width='2'%3E%3Cpath d='M3 11 12 4l9 7v9H3z'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E")}
.hvS-ic.agent{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E0D20' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E")}
.hvS-ic.text,.hvS-ic.example,.hvS-ic.recent{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E0D20' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
.hvS-alts{display:flex;gap:6px;padding-right:8px;flex:0 0 auto}
.hvS-alts a{padding:6px 10px;border:1px solid #e3d8ca;border-radius:999px;color:#8E0D20;font:600 11px/1 Inter,"Inter Fallback",Arial,sans-serif;text-decoration:none;white-space:nowrap}
.hvS-alts a:hover{background:#8E0D20;border-color:#8E0D20;color:#fff}
.hvS-note{padding:18px 12px;color:#6a625b;font:400 14px/1.5 Inter,"Inter Fallback",Arial,sans-serif}
.hvS-foot{display:flex;justify-content:space-between;gap:12px;margin:0;padding:10px 16px;border-top:1px solid #f0ebe4;font:400 11px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#6a625b}
.hvS-foot kbd{display:inline-block;min-width:18px;margin:0 2px;padding:1px 5px;border:1px solid #e3d8ca;border-bottom-width:2px;border-radius:4px;background:#faf7f2;font:600 10px/1.4 Inter,"Inter Fallback",Arial,sans-serif;text-align:center;color:#3a3532}
html.hvS-on{overflow:hidden}
/* the search button in the bar on inner pages */
.snSearch{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:none;color:#fff;cursor:pointer;transition:background .25s,border-color .25s}
.snSearch svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.snSearch:hover,.snSearch:focus-visible{background:rgba(255,255,255,.12);border-color:#fff}
.snSearch:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:700px){.hvS{padding:0}.hvS-box{width:100%;max-height:100svh;height:100svh;border-radius:0}.hvS-foot span:last-child{display:none}.hvS-alts{display:none}}
@media(prefers-reduced-motion:reduce){.hvS-veil,.hvS-box{transition:none}}
@media print{.hvS,.snSearch{display:none!important}}
/* "Book a consultation" in the bar on inner pages (assets/consult.js) */
.snBook{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:none;color:#fff;font:500 10.5px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.snBook:hover,.snBook:focus-visible{background:#fff;color:#0b0d0c;border-color:#fff}
.snBook:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:1180px){.snBook{padding:0 12px;letter-spacing:.12em}}
@media(max-width:860px){
  .snLinks{flex-wrap:wrap;row-gap:4px}
  .snSearch{width:34px;height:34px}
  .snBook{min-height:32px;padding:0 11px;font-size:9px;letter-spacing:.1em}
}
.snBook .snBookX{display:inline}
@media(max-width:480px){.snBook .snBookX{display:none}}
/* 3.2.36: guides, magazine stories and pages (an open book) */
.hvS-ic.read{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E0D20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5h6a4 4 0 0 1 4 4v11a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 5h-6a4 4 0 0 0-4 4v11a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E")}

/* Call and Ask Haven: two round buttons stacked above "Chat on WhatsApp" (3.2.15). See assets/help-dock.js. */
:root{--hvH-r:clamp(14px,2vw,22px);--hvH-b:clamp(14px,2.4vh,22px);--hvH-s:48px;--hvH-gap:12px}
.hvHelp{position:fixed;right:var(--hvH-r);z-index:var(--z-float,1000);transition:opacity .3s,transform .35s cubic-bezier(.22,.61,.36,1)}
.hvCall{bottom:calc(var(--hvH-b) + 50px + var(--hvH-gap))}
.hvAsk{bottom:calc(var(--hvH-b) + 50px + var(--hvH-gap) * 2 + var(--hvH-s))}
html:not(.has-wa) .hvCall{bottom:var(--hvH-b)}
html:not(.has-wa) .hvAsk{bottom:calc(var(--hvH-b) + var(--hvH-gap) + var(--hvH-s))}
.hvHelp.away{opacity:0;pointer-events:none;transform:translateY(10px)}
.hvHelp-b{position:relative;display:grid;place-items:center;width:var(--hvH-s);height:var(--hvH-s);padding:0;border:0;border-radius:50%;cursor:pointer;color:#fff;box-shadow:0 14px 28px -12px rgba(0,0,0,.55);animation:hvHin .5s cubic-bezier(.22,.61,.36,1) both;transition:transform .35s cubic-bezier(.22,.61,.36,1),background .25s}
.hvCall .hvHelp-b{background:#171816;animation-delay:.75s}
.hvAsk .hvHelp-b{background:linear-gradient(135deg,#a3192f,#6e0a18);animation-delay:.9s}
.hvHelp-b svg{width:21px;height:21px;fill:currentColor}
.hvAsk .hvHelp-b svg .s{fill:none;stroke:#fff;stroke-width:1.7}
.hvAsk .hvHelp-b svg .k{fill:#e6c46a}
.hvHelp-b:hover{transform:translateY(-2px) scale(1.04)}
.hvCall .hvHelp-b:hover,.hvCall.open .hvHelp-b{background:#8E0D20}
.hvHelp-b:focus-visible{outline:2px solid #8E0D20;outline-offset:3px;box-shadow:0 0 0 5px #fff}
.hvAsk .hvHelp-b:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(163,25,47,.45);border-radius:50%;animation:hvHpulse 2.8s ease-out 2.2s 3}
.hvAsk.loading .hvHelp-b{opacity:.7;cursor:progress}
/* a label slides out to the left on hover */
.hvHelp-t{position:absolute;right:calc(100% + 10px);top:50%;transform:translate(8px,-50%);padding:7px 11px;background:#171816;color:#fff;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s}
.hvHelp-b:hover .hvHelp-t,.hvHelp-b:focus-visible .hvHelp-t{opacity:1;transform:translate(0,-50%)}
.hvHelp.open .hvHelp-t{opacity:0}
@keyframes hvHin{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
@keyframes hvHpulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.5);opacity:0}}
/* the pop-ups open to the left of the buttons */
.hvHelp-pop{position:absolute;right:0;bottom:calc(100% + 12px);width:min(290px,calc(100vw - 28px));padding:16px;background:#fff;color:#1d1a18;border-radius:14px;box-shadow:0 24px 60px -18px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.05);animation:hvHpop .28s cubic-bezier(.22,.61,.36,1)}
.hvHelp-pop[hidden]{display:none}
@keyframes hvHpop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hvHelp-h{margin:0;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#8E0D20}
.hvHelp-n{margin:8px 0 12px;font:500 20px/1.1 "Antonio","Antonio Fallback","Oswald",sans-serif;letter-spacing:.06em}
.hvHelp-o{display:flex;align-items:center;gap:12px;padding:11px 12px;margin-top:8px;border:1px solid #ece6dd;border-radius:10px;color:#1d1a18;text-decoration:none;transition:background .2s,border-color .2s}
.hvHelp-o:hover,.hvHelp-o:focus-visible{background:#faf6f1;border-color:#d8c7b0}
.hvHelp-o svg{width:20px;height:20px;flex:0 0 20px;fill:#8E0D20}
.hvHelp-o b{display:block;font:600 13px/1.2 Inter,"Inter Fallback",Arial,sans-serif}
.hvHelp-o small{display:block;margin-top:2px;font:400 11px/1.2 Inter,"Inter Fallback",Arial,sans-serif;color:#6a625b}
/* Ask Haven panel (used until Zendesk is connected) */
.hvAsk-pop{width:min(340px,calc(100vw - 28px));padding:0;overflow:hidden}
.hvAsk-top{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:linear-gradient(135deg,#8E0D20,#4a0005);color:#fff}
.hvAsk-av{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#fff;color:#8E0D20;font:600 20px/1 "Cormorant Garamond",Cormorant Garamond Fallback,Georgia,serif;box-shadow:0 0 0 2px rgba(230,196,106,.8)}
.hvAsk-name{margin:0;font:600 14px/1.2 Inter,"Inter Fallback",Arial,sans-serif}
.hvAsk-sub{margin:2px 0 0;font:400 11px/1.3 Inter,"Inter Fallback",Arial,sans-serif;opacity:.85}
.hvAsk-x{margin-left:auto;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font:300 22px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.hvAsk-x:hover{background:rgba(255,255,255,.25)}
.hvAsk-log{max-height:220px;overflow:auto;padding:14px 14px 4px;display:flex;flex-direction:column;gap:8px}
.hvAsk-msg{margin:0;padding:10px 12px;border-radius:12px;font:400 13px/1.5 Inter,"Inter Fallback",Arial,sans-serif;max-width:88%}
.hvAsk-msg.me{background:#f6f1ea;border-bottom-left-radius:4px;align-self:flex-start}
.hvAsk-msg.you{background:#8E0D20;color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.hvAsk-msg a{color:#8E0D20;font-weight:600}
.hvAsk-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px}
.hvAsk-chips a{padding:7px 11px;border:1px solid #e3d8ca;border-radius:999px;color:#3a3532;text-decoration:none;font:500 11.5px/1 Inter,"Inter Fallback",Arial,sans-serif;transition:background .2s,border-color .2s,color .2s}
.hvAsk-chips a:hover,.hvAsk-chips a:focus-visible{background:#8E0D20;border-color:#8E0D20;color:#fff}
.hvAsk-f{display:flex;gap:8px;margin:6px 14px 10px;padding:4px 4px 4px 12px;border:1px solid #e3d8ca;border-radius:999px}
.hvAsk-f input{flex:1;min-width:0;border:0;outline:0;background:none;font:400 13px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#1d1a18}
.hvAsk-f button{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:50%;background:#8E0D20;color:#fff;font-size:16px;cursor:pointer}
.hvAsk-f:focus-within{border-color:#8E0D20}
.hvAsk-people{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 14px 14px;border-top:1px solid #f0ebe4}
.hvAsk-people p{margin:0;flex-basis:100%;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#6a625b}
.hvAsk-people a{font:600 12px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#8E0D20;text-decoration:none;border-bottom:1px solid transparent}
.hvAsk-people a:hover{border-color:#8E0D20}
/* the back-to-top buttons move above the stack */
html.has-help .moTop,html.has-help .to-top,html.has-help.has-wa .moTop,html.has-help.has-wa .to-top{bottom:calc(var(--hvH-b) + 50px + var(--hvH-gap) * 3 + var(--hvH-s) * 2)!important}
@media(max-width:700px){
  :root{--hvH-s:44px;--hvH-gap:10px}
  .hvCall{bottom:calc(var(--hvH-b) + 52px + var(--hvH-gap))}
  .hvAsk{bottom:calc(var(--hvH-b) + 52px + var(--hvH-gap) * 2 + var(--hvH-s))}
  .hvHelp-t{display:none}
  html.has-help .moTop,html.has-help .to-top,html.has-help.has-wa .moTop,html.has-help.has-wa .to-top{bottom:calc(var(--hvH-b) + 52px + var(--hvH-gap) * 3 + var(--hvH-s) * 2)!important}
}
@media(prefers-reduced-motion:reduce){.hvHelp-b,.hvHelp-pop{animation:none}.hvAsk .hvHelp-b:after{animation:none;display:none}}
@media print{.hvHelp{display:none!important}}
/* the call menu opens to the left of its button, so it never covers Ask Haven */
.hvCall .hvHelp-pop{right:calc(100% + 12px);bottom:0}
@media(max-width:420px){.hvCall .hvHelp-pop{right:0;bottom:calc(100% + 12px + var(--hvH-s) + var(--hvH-gap))}}
/* ---------- Book a consultation (3.2.19, assets/consult.js) ---------- */
.hvB{position:fixed;inset:0;z-index:var(--z-modal,10000);display:flex;justify-content:center;align-items:center;padding:16px}
.hvB[hidden]{display:none}
.hvB-veil{position:absolute;inset:0;background:rgba(14,10,8,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .25s}
.hvB.in .hvB-veil{opacity:1}
.hvB-box{position:relative;width:min(600px,100%);max-height:calc(100svh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:28px clamp(18px,4vw,34px) 24px;background:#fff;color:#1d1a18;border-top:4px solid #8E0D20;border-radius:14px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);transform:translateY(12px);opacity:0;transition:transform .3s cubic-bezier(.22,.61,.36,1),opacity .25s;outline:none}
.hvB.in .hvB-box{transform:none;opacity:1}
.hvB-x{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#f5efe8;color:#3a3532;font:300 24px/1 Inter,"Inter Fallback",Arial,sans-serif;cursor:pointer}
.hvB-k{margin:0;font:600 10px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:#8E0D20}
.hvB-box h2{margin:10px 0 6px;font:500 clamp(26px,3vw,34px)/1.05 "Antonio","Antonio Fallback","Oswald",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.hvB-lead{margin:0 0 16px;font:400 14px/1.6 Inter,"Inter Fallback",Arial,sans-serif;color:#4a4540}
.hvB-f fieldset{margin:0 0 14px;padding:0;border:0;min-width:0}
.hvB-f legend,.hvB-f label{font:600 11px/1.4 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#3f3a37}
.hvB-f legend{margin-bottom:8px}
.hvB-f label small{font-weight:400;letter-spacing:0;text-transform:none;color:#6a625b}
.hvB-chips{display:flex;flex-wrap:wrap;gap:8px}
.hvB-chips label{position:relative;letter-spacing:0;text-transform:none}
.hvB-chips input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.hvB-chips span{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid #d8cbbb;border-radius:999px;font:500 13px/1 Inter,"Inter Fallback",Arial,sans-serif;color:#3a3532;transition:background .2s,border-color .2s,color .2s}
.hvB-chips input:checked+span{background:#8E0D20;border-color:#8E0D20;color:#fff}
.hvB-chips input:focus-visible+span{outline:2px solid #8E0D20;outline-offset:2px}
.hvB-f input:not([type=radio]),.hvB-f select,.hvB-f textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;min-height:44px;padding:8px 12px;border:1px solid #d8cbbb;border-radius:8px;background:#fff;font:400 15px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#1d1a18;letter-spacing:0;text-transform:none}
.hvB-f input:focus,.hvB-f select:focus,.hvB-f textarea:focus{outline:2px solid rgba(142,13,32,.35);border-color:#8E0D20}
.hvB-f>label,.hvB-office{display:block;margin:0 0 12px}
.hvB-office{margin-top:10px!important}
.hvB-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.hvB-val{margin:10px 0 0;font:400 13px/1.5 Inter,"Inter Fallback",Arial,sans-serif;color:#4a4540}
.hvB-val a,.hvB-done a{color:#8E0D20;font-weight:600}
.hvB-msg{min-height:1em;margin:0 0 8px;font:500 13px/1.4 Inter,"Inter Fallback",Arial,sans-serif;color:#a3192f}
.hvB-go{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border:0;border-radius:999px;background:#8E0D20;color:#fff;font:600 13px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.06em;cursor:pointer}
.hvB-go:hover{background:#6e0a18}
.hvB-small{margin:10px 0 0;font:400 11.5px/1.5 Inter,"Inter Fallback",Arial,sans-serif;color:#6a625b}
.hvB-done h3{margin:6px 0 8px;font:500 24px/1.1 "Antonio","Antonio Fallback","Oswald",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.hvB-done p{margin:0 0 16px;font:400 14px/1.6 Inter,"Inter Fallback",Arial,sans-serif}
html.hvB-on{overflow:hidden}
@media(max-width:520px){.hvB{padding:0;align-items:stretch}.hvB-box{max-height:100svh;border-radius:0}.hvB-two{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.hvB-veil,.hvB-box{transition:none}}
@media print{.hvB{display:none!important}}

/* Saved listings: floating button, drawer and compare table (assets/saved.js) */
.sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.hvSavedBtn{position:fixed;left:clamp(14px,2vw,24px);bottom:clamp(14px,2.4vh,24px);z-index:var(--z-float,1000);display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 18px 0 14px;border:0;border-radius:999px;background:#171816;color:#fff;font:500 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;box-shadow:0 14px 30px -12px rgba(0,0,0,.55);animation:hvIn .45s cubic-bezier(.22,.61,.36,1) both;transition:background .3s,transform .35s cubic-bezier(.22,.61,.36,1)}
.hvSavedBtn[hidden]{display:none}
.hvSavedBtn svg{width:18px;height:18px;fill:#FF4D6A}
.hvSavedBtn .n{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#C31B37;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:0}
.hvSavedBtn:hover{background:#7c0b19;transform:translateY(-2px)}
.hvSavedBtn:focus-visible{outline:2px solid #FF4D6A;outline-offset:3px}
@keyframes hvIn{from{opacity:0;transform:translateY(12px)}}

.hvSaved{position:fixed;inset:0;z-index:var(--z-modal,10000);background:rgba(8,8,8,.62);display:flex;justify-content:flex-end;animation:hvFade .3s ease}
.hvSaved[hidden]{display:none}
@keyframes hvFade{from{opacity:0}}
.hvSaved-panel{position:relative;width:min(460px,100%);height:100%;overflow:auto;background:#faf7f3;color:#2d2926;box-shadow:-30px 0 60px -30px rgba(0,0,0,.5);display:flex;flex-direction:column;animation:hvSlide .45s cubic-bezier(.22,.61,.36,1);outline:0}
@keyframes hvSlide{from{transform:translateX(40px);opacity:.4}}
.hvSaved.comparing .hvSaved-panel{width:min(1080px,100%)}
.hvSaved-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px 6px}
.hvSaved-head h2{margin:0;font:500 30px/1 "Antonio",Antonio Fallback,"Oswald",Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#7c0b19}
.hvSaved-x{width:44px;height:44px;border:1px solid #d6cdc0;background:#fff;font:300 26px/1 Inter,Inter Fallback,sans-serif;color:#2d2926;cursor:pointer}
.hvSaved-x:hover{background:#7c0b19;border-color:#7c0b19;color:#fff}
.hvSaved-hint{margin:6px 24px 14px;font:400 13px/1.5 Inter,Inter Fallback,sans-serif;color:#6a625b}
.hvSaved-list{list-style:none;margin:0;padding:0 24px;flex:1}
.hvSaved-empty{padding:30px 0;font:400 15px/1.6 Inter,Inter Fallback,sans-serif;color:#5d5752}
.hvSaved-item{display:grid;grid-template-columns:auto 76px 1fr auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e6dccf}
.hvSaved-item .pick{display:grid;place-items:center;width:30px;height:44px;cursor:pointer}
.hvSaved-item .pick input{width:18px;height:18px;accent-color:#7c0b19;cursor:pointer}
.hvSaved-item .ph{display:block;width:76px;height:56px;overflow:hidden;background:#e9e2d8}
.hvSaved-item .ph img{width:100%;height:100%;object-fit:cover;display:block}
.hvSaved-item .tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.hvSaved-item .tt{font:500 14px/1.3 Inter,Inter Fallback,sans-serif;color:#2d2926;text-decoration:none}
.hvSaved-item .tt:hover{color:#7c0b19;text-decoration:underline}
.hvSaved-item b{font:600 13px/1.2 Inter,Inter Fallback,sans-serif;color:#7c0b19}
.hvSaved-item small{font:400 12px/1.3 Inter,Inter Fallback,sans-serif;color:#6a625b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvSaved-item .rm{width:40px;height:40px;border:0;background:none;font:300 22px/1 Inter,Inter Fallback,sans-serif;color:#6a625b;cursor:pointer}
.hvSaved-item .rm:hover{color:#C31B37}
.hvSaved-foot{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 24px 22px;background:#faf7f3;border-top:1px solid #e6dccf}
.hvSaved-cmp,.hvSaved-enq{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.hvSaved-cmp{border:1px solid #171816;background:#171816;color:#fff}
.hvSaved-cmp:disabled{background:#fff;color:#6a625b;border-color:#cdbfb4;cursor:not-allowed}
.hvSaved-enq{border:1px solid #C31B37;background:#C31B37;color:#fff}
.hvSaved-enq:hover{background:#7c0b19;border-color:#7c0b19}
.hvSaved-enq[hidden],.hvSaved-cmp[hidden],.hvSaved-clear[hidden]{display:none}
.hvSaved-clear{margin-left:auto;min-height:44px;border:0;background:none;color:#6a625b;font:500 12px/1 Inter,Inter Fallback,sans-serif;text-decoration:underline;cursor:pointer}
.hvSaved-clear.arm{color:#C31B37;font-weight:600}
.hvSaved :focus-visible{outline:2px solid #C31B37;outline-offset:2px}

.hvSaved.comparing .hvSaved-hint,.hvSaved.comparing .hvSaved-list,.hvSaved.comparing .hvSaved-foot{display:none}
.hvCmp{padding:0 24px 28px}
.hvCmp-head{padding:6px 0 14px}
.hvCmp-back{min-height:44px;border:0;background:none;padding:0;color:#7c0b19;font:600 12px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.hvCmp-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.hvCmp-t{border-collapse:collapse;min-width:100%;font:400 14px/1.45 Inter,Inter Fallback,sans-serif}
.hvCmp-t th,.hvCmp-t td{padding:12px 14px;border-bottom:1px solid #e6dccf;text-align:left;vertical-align:top;min-width:170px}
.hvCmp-t th{position:sticky;left:0;z-index:1;min-width:110px;background:#faf7f3;font:600 10.5px/1.4 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6a625b}
.hvCmp-t td.blank{position:sticky;left:0;background:#faf7f3;min-width:110px}
.hvCmp-t .cph{display:block;height:110px;margin-bottom:8px;background:#e9e2d8;overflow:hidden}
.hvCmp-t .cph img{width:100%;height:100%;object-fit:cover;display:block}
.hvCmp-t a{color:#2d2926;font-weight:500}
.hvCmp-t td.best b{color:#1f6f45}
.hvCmp-t td.best b:after{content:" · lowest";font-weight:500;color:#1f6f45}
.hvCmp-t .cenq{display:inline-block;padding:10px 14px;background:#C31B37;color:#fff;text-decoration:none;font:600 10.5px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase}

@media(max-width:560px){
  .hvSaved-panel{width:100%}
  .hvSavedBtn .t{display:none}
  .hvSavedBtn{padding:0 14px}
}
@media(prefers-reduced-motion:reduce){.hvSavedBtn,.hvSaved,.hvSaved-panel{animation:none}.hvSavedBtn{transition:none}}
/* ---------- 3.2.19: saved searches (assets/saved-searches.js) ---------- */
.hvSavedBtn.fresh:after{content:"";position:absolute;right:6px;top:6px;width:10px;height:10px;border-radius:50%;background:#FF4D6A;box-shadow:0 0 0 2px #171816}
.hvSaved-ss{padding:6px 24px 14px}
.hvSaved-sh{margin:14px 0 8px;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#8E0D20}
.hvSaved-sl{list-style:none;margin:0;padding:0}
.hvSaved-sl li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e6dccf}
.hvSaved-sl a{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;color:#1d1a18;text-decoration:none}
.hvSaved-sl b{font:600 14px/1.35 Inter,Inter Fallback,Arial,sans-serif}
.hvSaved-sl em{font-style:normal;padding:3px 8px;border-radius:999px;background:#8E0D20;color:#fff;font:600 10.5px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.04em}
.hvSaved-sl small{flex-basis:100%;font:400 12px/1.4 Inter,Inter Fallback,Arial,sans-serif;color:#6a625b}
.hvSaved-sl a:hover b{color:#8E0D20;text-decoration:underline}
.hvSaved-sl .rm{flex:0 0 auto;width:32px;height:32px;border:0;border-radius:50%;background:#f3ece2;color:#3a3532;font-size:18px;cursor:pointer}
.hvSS{position:fixed;inset:0;z-index:calc(var(--z-modal,10000) + 5);display:flex;align-items:center;justify-content:center;padding:16px}
.hvSS-veil{position:absolute;inset:0;background:rgba(14,10,8,.6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.hvSS-box{position:relative;width:min(480px,100%);max-height:calc(100svh - 32px);overflow-y:auto;padding:26px 26px 22px;background:#fff;color:#1d1a18;border-top:4px solid #8E0D20;border-radius:14px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);outline:none}
.hvSS-x{position:absolute;right:10px;top:10px;width:36px;height:36px;border:0;border-radius:50%;background:#f5efe8;color:#3a3532;font:300 22px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.hvSS-box h2{margin:0 0 14px;font:500 26px/1.1 "Antonio","Antonio Fallback","Oswald",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.hvSS-box form>label,.hvSS-to{display:block;margin:0 0 12px;font:600 11px/1.4 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#3f3a37}
.hvSS-box input[name=label],.hvSS-to input{display:block;width:100%;box-sizing:border-box;margin-top:6px;min-height:44px;padding:8px 12px;border:1px solid #d8cbbb;border-radius:8px;font:400 15px/1.4 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:0;text-transform:none;color:#1d1a18}
.hvSS-box .hvSS-chk{display:flex!important;align-items:center;gap:10px;letter-spacing:0!important;text-transform:none!important;font:500 14px/1.4 Inter,Inter Fallback,Arial,sans-serif!important}
.hvSS-chk input{width:18px;height:18px;accent-color:#8E0D20}
.hvSS-how{margin:0;padding:0;border:0;min-width:0}
.hvSS-how legend{margin-bottom:8px;font:600 11px/1.4 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#3f3a37}
.hvSS-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.hvSS-chips label{position:relative}
.hvSS-chips input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.hvSS-chips span{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid #d8cbbb;border-radius:999px;font:500 13px/1 Inter,Inter Fallback,Arial,sans-serif}
.hvSS-chips input:checked+span{background:#8E0D20;border-color:#8E0D20;color:#fff}
.hvSS-chips input:focus-visible+span{outline:2px solid #8E0D20;outline-offset:2px}
.hvSS-small{margin:0 0 6px;font:400 12px/1.5 Inter,Inter Fallback,Arial,sans-serif;color:#6a625b}
.hvSS-msg{min-height:1em;margin:4px 0 8px;font:500 13px/1.4 Inter,Inter Fallback,Arial,sans-serif;color:#a3192f}
.hvSS-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hvSS-go{min-height:46px;padding:0 22px;border:0;border-radius:999px;background:#8E0D20;color:#fff;font:600 13px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.hvSS-go:disabled{opacity:.6}
.hvSS-cancel{min-height:46px;padding:0 18px;border:1px solid #d8cbbb;border-radius:999px;background:#fff;color:#3a3532;font:500 13px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.hvSS-done{margin:0 0 16px;font:400 14px/1.6 Inter,Inter Fallback,Arial,sans-serif}
@media print{.hvSS{display:none!important}}
/* "Save this search" on Homes for sale, Land for sale and Rentals */
.mk-savesearch{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid #8E0D20;border-radius:999px;background:#fff;color:#8E0D20;font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.mk-savesearch svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.mk-savesearch:hover,.mk-savesearch:focus-visible,.mk-savesearch.on{background:#8E0D20;color:#fff}
.mk-savesearch:focus-visible{outline:2px solid #8E0D20;outline-offset:2px}
.rs-tools .rs-savesearch{margin-right:12px}
@media(max-width:560px){.rs-tools{flex-wrap:wrap;row-gap:8px}.rs-tools .rs-savesearch{flex-basis:100%;justify-content:center;margin-right:0}}

/* 3.2.25: favourites need an account: the "Save your favourites" prompt, the confirmation, and hearts on any card */
.hvFavAsk{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:16px;background:rgba(12,10,9,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hvFavAsk[hidden]{display:none}
.hvFavAsk-box{position:relative;width:min(420px,100%);padding:30px 26px 22px;border-radius:18px;background:#fff;color:#1d1a18;text-align:center;box-shadow:0 30px 70px -30px rgba(0,0,0,.6);animation:hvFavIn .35s cubic-bezier(.22,.61,.36,1)}
@keyframes hvFavIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.hvFavAsk-ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fbeef0}
.hvFavAsk-ic svg{width:24px;height:24px;fill:#C31B37}
.hvFavAsk h2{margin:12px 0 8px;font:500 30px/1 "Antonio","Antonio Fallback","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.02em;color:#7c0b19}
.hvFavAsk p{margin:0 0 18px;font:400 15px/1.6 Inter,"Inter Fallback",Arial,sans-serif;color:#4a423d}
.hvFavAsk-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hvFavAsk-acts a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:999px;font:600 12px/1 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.hvFavAsk-in{background:#8E0D20;color:#fff}.hvFavAsk-in:hover,.hvFavAsk-in:focus-visible{background:#6d0a18}
.hvFavAsk-reg{border:1px solid #8E0D20;color:#8E0D20}.hvFavAsk-reg:hover,.hvFavAsk-reg:focus-visible{background:#fbeef0}
.hvFavAsk a:focus-visible,.hvFavAsk button:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.hvFavAsk-no{margin-top:12px;padding:10px;border:0;background:none;color:#6a625b;font:500 13px Inter,"Inter Fallback",Arial,sans-serif;cursor:pointer}
.hvFavAsk-x{position:absolute;right:10px;top:8px;width:40px;height:40px;border:0;background:none;font-size:26px;line-height:1;color:#6a625b;cursor:pointer}
.hvFavAsk-small{margin:6px 0 0!important;font-size:12.5px!important;color:#6a625b!important}
@media(max-width:380px){.hvFavAsk-acts{grid-template-columns:1fr}}
.hvFavToast{position:fixed;left:50%;bottom:24px;z-index:1250;max-width:calc(100% - 32px);padding:12px 18px;border-radius:999px;background:#1d1a18;color:#fff;font:500 14px/1.4 Inter,"Inter Fallback",Arial,sans-serif;box-shadow:0 14px 34px -14px rgba(0,0,0,.6);transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.hvFavToast.on{opacity:1;transform:translate(-50%,0)}
.hvFav{position:absolute;right:12px;top:12px;z-index:3;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.94);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18);transition:transform .25s,background .25s}
.hvFav svg{width:20px;height:20px;fill:none;stroke:#8E0D20;stroke-width:1.8;transition:fill .25s}
.hvFav:hover{transform:scale(1.1)}
.hvFav[aria-pressed="true"]{background:#8E0D20}.hvFav[aria-pressed="true"] svg{fill:#fff;stroke:#fff}
.hvFav.pop{animation:hvFavPop .4s}
@keyframes hvFavPop{50%{transform:scale(1.25)}}
.hvFav:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #8E0D20}
@media(prefers-reduced-motion:reduce){.hvFavAsk-box,.hvFav.pop{animation:none}.hvFavToast{transition:none}}
/* hearts on cards that are one big link: the heart sits beside the link, over the photo */
.exclusiveCard{position:relative}.exclusiveLink{display:block;color:inherit;text-decoration:none}
.ol-card{position:relative}
.ofCard{position:relative}.ofCard .hvFav{top:14px;right:14px}
.rail>.ofCard{flex:0 0 min(430px,78vw);scroll-snap-align:start;min-width:0}.ofCard>.card{display:block}
.hvFav.prFav{position:static;display:inline-grid;margin-left:10px;vertical-align:middle;box-shadow:none;border:1px solid #e3dcd0}

/* 3.2.27: recently viewed (in the Saved panel) and "Picked for you" (Homes for sale, Rentals): assets/recent.js */
.hvSaved-rv{margin:18px 0 0;padding-top:14px;border-top:1px solid #e6ddd1}
.hvRv-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.hvRv-h h3{margin:0;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#8E0D20}
.hvRv-clear,.hvPick-x{border:0;background:none;padding:6px 4px;color:#6a625b;font:500 12.5px Inter,Inter Fallback,Arial,sans-serif;text-decoration:underline;cursor:pointer}
.hvRv-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.hvRv-list a{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;color:inherit;text-decoration:none}
.hvRv-list .ph{display:block;width:64px;height:48px;border-radius:6px;overflow:hidden;background:#e9e3d9}
.hvRv-list img{width:100%;height:100%;object-fit:cover;display:block}
.hvRv-list b{display:block;font-size:13.5px;font-weight:600}.hvRv-list small{color:#6a625b;font-size:12px}
.hvRv-list a:hover b{color:#8E0D20}
.hvPick{max-width:1320px;margin:18px auto 8px;padding:20px clamp(16px,3vw,28px);border:1px solid #e6ddd1;border-radius:16px;background:#fbf8f3;box-sizing:border-box}
.hvPick-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hvPick-k{margin:0 0 4px;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#8E0D20}
.hvPick h2{margin:0;font:500 26px/1.1 "Cormorant Garamond",Cormorant Garamond Fallback,Georgia,serif;color:#1d1a18;text-transform:none;letter-spacing:0}
.hvPick-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:14px 0 0;padding:0;list-style:none}
.hvPick-list a{display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none}
.hvPick-list .ph{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#e9e3d9}
.hvPick-list img{width:100%;height:100%;object-fit:cover;display:block}
.hvPick-list .pr{margin-top:6px;font:500 17px/1 Antonio,Antonio Fallback,"Arial Narrow",sans-serif;color:#8E0D20}
.hvPick-list .tt{font-weight:600;font-size:13.5px}.hvPick-list small{font-size:12px;color:#6a625b}
.hvPick-list a:hover .tt{color:#8E0D20}
.hvPick-list a:focus-visible,.hvRv-list a:focus-visible,.hvPick-x:focus-visible,.hvRv-clear:focus-visible{outline:2px solid #8E0D20;outline-offset:3px;border-radius:6px}
.hvPick-n{margin:10px 0 0;font-size:11.5px;color:#6a625b}
@media(max-width:1000px){.hvPick-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.hvPick-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.hvPick-list li{flex:0 0 62%;scroll-snap-align:start}}

/* 3.2.28: notes on favourites, alerts and the shared link (Saved panel) */
.hvSaved-tools{display:grid;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#f6f1ea}
.hvSaved-al{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;line-height:1.4;color:#3a332f;cursor:pointer}
.hvSaved-al input{margin-top:2px;accent-color:#8E0D20}
.hvSaved-shb,.hvSaved-copy,.hvSaved-unsh,.nt,.nt-s,.nt-c{border:1px solid #1d1a18;border-radius:999px;background:#fff;color:#1d1a18;padding:7px 14px;font:500 12.5px Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.hvSaved-shb:hover,.hvSaved-copy:hover,.nt-s:hover{background:#1d1a18;color:#fff}
.hvSaved-shbox{display:grid;gap:6px}
.hvSaved-shbox label{font-size:12.5px;color:#6a625b}
.hvSaved-shrow{display:flex;gap:6px}
.hvSaved-shrow input{flex:1;min-width:0;padding:8px 10px;border:1px solid #d9d0c4;border-radius:8px;font:13px Inter,Inter Fallback,Arial,sans-serif;background:#fff}
.hvSaved-unsh{justify-self:start;border:0;background:none;padding:4px 0;text-decoration:underline;color:#6a625b}
.hvSaved-item .nt{justify-self:start;margin-top:6px;padding:4px 10px;font-size:12px;border-color:#d9d0c4}
.hvSaved-item .nt-t{display:block;margin-top:5px;padding:6px 9px;border-left:2px solid #8E0D20;background:#fbf8f3;font-size:12.5px;line-height:1.45;color:#3a332f;white-space:pre-wrap}
.nt-ed{display:grid;gap:6px;margin-top:6px}
.nt-ed textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #d9d0c4;border-radius:8px;font:13px/1.45 Inter,Inter Fallback,Arial,sans-serif;resize:vertical}
.nt-ed span{display:flex;gap:6px}
.nt-c{border-color:#d9d0c4}
.hvSaved-tools button:focus-visible,.hvSaved-item .nt:focus-visible,.nt-ed button:focus-visible,.hvSaved-al input:focus-visible{outline:2px solid #8E0D20;outline-offset:2px}

/* 3.1.7 FALLBACK FONTS. Shown while a web font downloads, sized to take the same space (size-adjust and the overrides
   were measured from the real font files against Arial and Times New Roman), so text does not jump when the web font
   arrives. Font lists name them right after the web font: Inter,Inter Fallback,Arial,sans-serif (added by the build). */
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica"),local("Roboto");size-adjust:107.48%;ascent-override:90.13%;descent-override:22.44%;line-gap-override:0%}
@font-face{font-family:"Cormorant Garamond Fallback";src:local("Times New Roman"),local("Liberation Serif"),local("Times");size-adjust:97.34%;ascent-override:94.93%;descent-override:29.49%;line-gap-override:0%}
@font-face{font-family:"Barlow Condensed Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica"),local("Roboto");size-adjust:66.49%;ascent-override:150.4%;descent-override:30.08%;line-gap-override:0%}
@font-face{font-family:"Antonio Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica"),local("Roboto");size-adjust:64.39%;ascent-override:179.35%;descent-override:21.61%;line-gap-override:0%}
/* 3.1.4 STACKING ORDER. Every layer that floats above the page takes its place from here, so a dialog is never
   covered by a sticky bar or a floating button. Page content stays below 100. Each use also carries the same number
   as a fallback (var(--z-modal,10000)), so a page without this file still stacks correctly.
   sticky   top bars and progress lines                                              100
   float    WhatsApp, Saved and inbox buttons; install banner                        1000
   modal    menus, dialogs, lightboxes, side panels; tours and share sheets above    10000
   toast    short confirmations                                                      11000
   top      the skip link when focused                                               12000 */
:root{--z-sticky:100;--z-float:1000;--z-modal:10000;--z-toast:11000;--z-top:12000}
/* 2.2.6 extras: WhatsApp button, virtual tour viewer, calculators, extra listing-card actions */

/* ---------- WhatsApp ---------- */
.hvWA{position:fixed;right:clamp(14px,2vw,22px);bottom:clamp(14px,2.4vh,22px);z-index:var(--z-float,1000);display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 20px 0 15px;border-radius:999px;background:#1a7f4b;color:#fff;text-decoration:none;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 16px 30px -12px rgba(0,0,0,.5);animation:hvWAin .5s cubic-bezier(.22,.61,.36,1) .6s both;transition:background .3s,transform .35s cubic-bezier(.22,.61,.36,1),opacity .3s}
.hvWA svg{width:22px;height:22px;fill:#fff;flex:0 0 auto}
.hvWA:hover{background:#136c3b;transform:translateY(-2px)}
.hvWA:focus-visible{outline:2px solid #1a7f4b;outline-offset:3px;box-shadow:0 0 0 5px #fff}
.hvWA.away{opacity:0;pointer-events:none;transform:translateY(10px)}
@keyframes hvWAin{from{opacity:0;transform:translateY(16px)}}
html.has-wa .to-top,html.has-wa .moTop{bottom:84px!important}
@media(max-width:700px){.hvWA{padding:0;width:52px;height:52px;justify-content:center}.hvWA .t{display:none}html.has-wa .to-top,html.has-wa .moTop{bottom:80px!important}}

/* ---------- virtual tours ---------- */
.hvTour{position:fixed;inset:0;z-index:calc(var(--z-modal,10000) + 10);display:flex;flex-direction:column;background:#0b0d0c;color:#fff;animation:hvTourIn .35s ease}
.hvTour[hidden]{display:none}
@keyframes hvTourIn{from{opacity:0}}
.hvTour-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 10px clamp(16px,3vw,32px);background:#0b0d0c;border-bottom:1px solid rgba(255,255,255,.12)}
.hvTour-bar h2{margin:0;font:500 clamp(18px,2vw,24px)/1.1 "Antonio",Antonio Fallback,"Oswald",Impact,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvTour-x{flex:0 0 auto;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);background:none;color:#fff;font:300 28px/1 Inter,Inter Fallback,sans-serif;cursor:pointer}
.hvTour-x:hover{background:#C31B37;border-color:#C31B37}
.hvTour-x:focus-visible{outline:2px solid #fff;outline-offset:2px}
.hvTour-stage{position:relative;flex:1}
.hvTour-wait{position:absolute;inset:0;display:grid;place-items:center;margin:0;font:400 14px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.1em;color:rgba(255,255,255,.75)}
.hvTour.ready .hvTour-wait{display:none}
.hvTour-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0b0d0c}
.ltour{display:inline-flex;align-items:center;min-height:32px;margin-top:10px;padding:0 12px;border:1px solid #171816;background:#171816;color:#fff;font:600 10.5px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.ltour:hover{background:#C31B37;border-color:#C31B37}
.ltour.hero-tour{margin-top:22px;min-height:46px;padding:0 20px;background:#fff;border-color:#fff;color:#171816}
.ltour:focus-visible{outline:2px solid #C31B37;outline-offset:2px}

/* ---------- extra actions on listing cards ---------- */
.lwa,.lcalc{display:inline-flex;align-items:center;min-height:32px;margin:10px 10px 0 0;padding:0 12px;border:1px solid #cdbfb4;background:#fff;color:#2d2926;font:600 10.5px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.lwa{color:#136c3b;border-color:#b9d8c6}
.lwa:hover{background:#136c3b;border-color:#136c3b;color:#fff}
.lcalc:hover{background:#171816;border-color:#171816;color:#fff}
.lwa:focus-visible,.lcalc:focus-visible,.saved-view:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.lbody .lenq{display:inline-block;margin-right:14px}
.saved-view{min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.5);background:none;color:#fff;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.saved-view:hover{background:#fff;color:#171516}

/* ---------- calculators ---------- */
.hvCalc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,3vw,44px);align-items:start;margin:0;padding:clamp(40px,6vw,72px) clamp(20px,10.5%,160px);background:#f6f2ed;border-top:1px solid #e6dccf;border-bottom:1px solid #e6dccf;color:#2d2926;scroll-margin-top:150px}
.hvCalc .kicker{font:600 10.5px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#C31B37}
.hvCalc h2{margin:12px 0 12px;font:500 clamp(30px,3.2vw,46px)/1 "Antonio",Antonio Fallback,"Oswald",Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#7c0b19;-webkit-text-fill-color:#7c0b19;background:none}
.hvCalc-head p{margin:0;font:400 14px/1.7 Inter,Inter Fallback,sans-serif;color:#5d5752}
.hvCalc-in{display:grid;gap:22px}
.hvCalc-f label{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font:600 10.5px/1.3 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#4a4540}
.hvCalc-f output{font:600 13px/1.3 Inter,Inter Fallback,sans-serif;letter-spacing:0;text-transform:none;color:#7c0b19}
.hvCalc-f input[type=range]{width:100%;accent-color:#C31B37;height:28px}
.hvCalc-f input[type=text]{width:100%;box-sizing:border-box;padding:14px;border:1px solid #cdbfb4;background:#fff;font:500 16px/1 Inter,Inter Fallback,sans-serif;color:#2d2926}
.hvCalc-f input:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.hvCalc-out{padding:24px;background:#171816;color:#fff}
.hvCalc-out .lbl{display:block;font:600 10.5px/1.3 Inter,Inter Fallback,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hvCalc-out .big{display:block;margin:12px 0 16px;font:500 clamp(30px,3vw,42px)/1 "Antonio",Antonio Fallback,"Oswald",Impact,sans-serif;letter-spacing:.03em;color:#fff}
.hvCalc-out dl{margin:0 0 14px;display:grid;gap:8px}
.hvCalc-out dl div{display:flex;justify-content:space-between;gap:10px;font:400 13px/1.4 Inter,Inter Fallback,sans-serif;border-top:1px solid rgba(255,255,255,.14);padding-top:8px}
.hvCalc-out dt{color:rgba(255,255,255,.75)}.hvCalc-out dd{margin:0;font-weight:600}
.hvCalc-out .band{margin:0 0 12px;font:400 13px/1.5 Inter,Inter Fallback,sans-serif;color:rgba(255,255,255,.85)}
.hvCalc-out .fine{margin:0 0 16px;font:400 11.5px/1.55 Inter,Inter Fallback,sans-serif;color:rgba(255,255,255,.72)}
.hvCalc-go{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;background:#C31B37;color:#fff;text-decoration:none;font:600 11px/1 Inter,Inter Fallback,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.hvCalc-go[hidden]{display:none}
.hvCalc-go:hover{background:#fff;color:#7c0b19}
.hvCalc-go:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:1000px){.hvCalc{grid-template-columns:1fr 1fr}.hvCalc-head{grid-column:1/-1}}
@media(max-width:640px){.hvCalc{grid-template-columns:1fr;padding:36px 6%}}
@media(prefers-reduced-motion:reduce){.hvWA,.hvTour{animation:none}.hvWA,.lwa,.lcalc{transition:none}}

/* ---- 2.2.7 verification badges (assets/verify.js, _source/verification.py) ---- */
.vbadge{display:inline-flex;align-items:center;gap:6px;font:600 10px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#2b2523;white-space:nowrap}
.vbadge svg{width:14px;height:14px;flex:0 0 14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vbadge.vb-property{color:#1d6b45}
.vbadge.vb-agent{color:#8a1426}
.vbadge.vb-owner{color:#5a4a2c}
.vbadge.vb-card{display:flex;margin:9px 0 2px}
.exclusiveBody .vbadge.vb-card{margin:0 0 7px}
.card .vbadge.vb-card{margin:14px 0 -6px}
.vlisting{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:18px 0 0;padding:12px 14px;border:1px solid #e3dcd0;background:#faf8f4;font:400 13px/1.5 Inter,Inter Fallback,Arial,sans-serif;color:#4a423d}
.vlisting em{font-style:normal;color:#6a625b}
.vlegend{margin:14px 0 0;font:400 13px/1.5 Inter,Inter Fallback,Arial,sans-serif;color:#4a423d}
.vlegend summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8a1426;padding:8px 0;list-style:none}
.vlegend summary::-webkit-details-marker{display:none}
.vlegend summary::after{content:'+';font-size:14px;letter-spacing:0}
.vlegend[open] summary::after{content:'–'}
.vlegend summary:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.vlegend ul{list-style:none;margin:6px 0 8px;padding:0;display:grid;gap:8px}
.vlegend li{display:grid;grid-template-columns:minmax(170px,auto) 1fr;gap:4px 14px;align-items:center}
.vlegend p{margin:0;font-size:12px;color:#6a625b}
@media(max-width:560px){.vlegend li{grid-template-columns:1fr}}

/* ---- 2.2.7 "Add to home screen" offer (assets/pwa.js) ---- */
.hvInstall{position:fixed;left:clamp(12px,2vw,24px);bottom:clamp(14px,2.4vh,24px);z-index:calc(var(--z-float,1000) + 5);display:flex;align-items:center;gap:12px;max-width:min(440px,calc(100vw - 24px));padding:12px 12px 12px 14px;background:#171816;color:#f4efe6;box-shadow:0 12px 34px rgba(0,0,0,.3);font:400 13px/1.45 Inter,Inter Fallback,Arial,sans-serif;opacity:0;transform:translateY(16px);transition:opacity .3s,transform .3s}
.hvInstall.on{opacity:1;transform:none}
.hvInstall img{flex:0 0 40px;border-radius:9px}
.hvInstall-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.hvInstall-t b{font-weight:600;color:#fff}
.hvInstall-t span{color:#cfc7bb;font-size:12px}
.hvInstall button{flex:0 0 auto;min-height:40px;padding:0 14px;border:1px solid #f4efe6;background:none;color:#f4efe6;font:600 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.hvInstall .hvInstall-go{background:#C31B37;border-color:#C31B37;color:#fff}
.hvInstall .hvInstall-x{border-color:transparent;padding:0 8px;color:#cfc7bb}
.hvInstall button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:640px){.hvInstall{right:12px;bottom:calc(clamp(14px,2.4vh,24px) + 66px);flex-wrap:wrap}.hvInstall-t{flex:1 1 calc(100% - 56px)}.hvInstall .hvInstall-go{margin-left:52px}}
@media(prefers-reduced-motion:reduce){.hvInstall{transition:none}}

/* ---- 2.2.8 share menu and "Link copied" notice (assets/share.js) ---- */
.hvShareBtn{display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.hvShareBtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.hvShare{position:absolute;z-index:calc(var(--z-modal,10000) + 20);min-width:220px;max-width:calc(100vw - 16px);padding:6px;background:#fff;border:1px solid #e3dcd0;box-shadow:0 14px 40px rgba(20,14,10,.22);display:flex;flex-direction:column}
.hvShare a,.hvShare button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:11px 12px;border:0;background:none;text-align:left;font:500 14px/1.3 Inter,Inter Fallback,Arial,sans-serif;color:#2b2523;text-decoration:none;cursor:pointer}
.hvShare a:hover,.hvShare button:hover,.hvShare a:focus-visible,.hvShare button:focus-visible{background:#f6f1ea;outline:none;box-shadow:inset 3px 0 0 #C31B37}
.hvShare button span{font-size:11px;color:#6a625b;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvToast{position:fixed;left:50%;bottom:28px;z-index:var(--z-toast,11000);transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:12px 18px;background:#171816;color:#fff;font:500 13px/1.4 Inter,Inter Fallback,Arial,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:opacity .25s,transform .25s;max-width:calc(100vw - 32px)}
.hvToast.on{opacity:1;transform:translate(-50%,0)}
.lshare{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:0;border:0;background:none;color:#5f574f;font:600 10px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.lshare:hover{color:#7d111b}
.lshare:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.lagent{margin:6px 0 2px;font-size:12px;color:#5f574f}
.lagent a{color:#7d111b;text-decoration:none;border-bottom:1px solid rgba(125,17,27,.3)}
.lagent a:hover{border-bottom-color:currentColor}

/* ---- 2.2.8 skeleton placeholders while content loads ---- */
.sk,.sk-card .sk-ph,.sk-card .sk-l{background:linear-gradient(90deg,#ece6dd 0,#f6f2ec 40%,#ece6dd 80%);background-size:300% 100%;animation:hvSk 1.3s ease-in-out infinite}
.sk-line{height:12px;margin:0 0 12px;width:100%}
.sk-h{height:64px;width:80%;margin:6px 0 18px}
.sk-card{background:#fff;min-height:100%}
.sk-card .sk-ph{aspect-ratio:1.4;width:100%}
.sk-card .sk-b{padding:18px}
.sk-card .sk-l{height:12px;margin:0 0 12px}
.sk-card .sk-l.big{height:26px;width:55%}
.sk-card .sk-l.s{width:70%}
@keyframes hvSk{0%{background-position:100% 0}100%{background-position:0 0}}
@media(prefers-reduced-motion:reduce){.sk,.sk-card .sk-ph,.sk-card .sk-l{animation:none}.hvToast{transition:none}}
.rs-photo,.lthumb,.exclusiveImage,.ag-ph{background-color:#ece6dd}

/* ---- 2.2.8 listing page: reference, share, print, listing agent (assets/listing-page.js) ---- */
.lp-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:18px 0 0}
.lp-ref{font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6a625b;margin-right:6px}
.lp-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid #cdbfb0;background:#fff;color:#2b2523;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.lp-btn:hover{border-color:#7d111b;color:#7d111b}
.lp-btn:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.lp-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.lp-agent{display:flex;align-items:center;gap:14px;margin-top:22px}
.lp-av{position:relative;flex:0 0 56px;width:56px;height:56px;border-radius:50%;overflow:hidden;background:linear-gradient(140deg,#5a0b14,#c31b37);display:flex;align-items:center;justify-content:center}
.lp-av b{font:500 20px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;color:#fff}
.lp-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lp-who{display:flex;flex-direction:column;gap:3px}
.lp-who small{font:600 9.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#b8b2aa}
.contact .lp-who a{font:500 22px/1.1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;letter-spacing:0;text-transform:none;border:0;padding:0;color:#fff}
.contact .lp-who a:hover{text-decoration:underline}
.lp-who span{font-size:12px;color:#b8b2aa}
.lp-print{display:none}

/* ---- 2.2.8 printing: any page prints without menus, floating buttons or pop-ups; the listing page prints as a datasheet ---- */
@media print{
  @page{margin:14mm}
  .hvCalc,.sn,.snSvc,.snBack,.skip-link,#hvDock,.hvWA,.hvSavedBtn,.hvInstall,.hvToast,.hvShare,.to-top,#get-in-touch,.bh,footer,.lp-tools,.rs-saved,.saved-bar,.lwa,.lcalc,.lshare,.save,.rs-save{display:none!important}
  html,body{background:#fff!important;color:#000!important}
  *{animation:none!important;transition:none!important;box-shadow:none!important}
  .reveal,[class*="reveal"]{opacity:1!important;transform:none!important}
  a{color:inherit!important}
  html[data-page="listing"] .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:6mm;padding:0 0 6mm;align-items:start}
  html[data-page="listing"] .hero img{height:72mm!important}
  html[data-page="listing"] .copy h1{font-size:34pt;line-height:.95;margin:0 0 4mm;color:#4a0005!important;-webkit-text-fill-color:#4a0005!important;background:none!important}
  html[data-page="listing"] .price{font-size:20pt;margin:4mm 0}
  html[data-page="listing"] .facts{font-size:9pt;gap:4mm}
  html[data-page="listing"] .vlisting{margin-top:4mm;font-size:9pt;border-color:#999}
  html[data-page="listing"] .intro{display:block;padding:0 0 5mm}
  html[data-page="listing"] .intro h2,html[data-page="listing"] .gallery h2{font-size:16pt;margin:0 0 2mm;color:#000!important;-webkit-text-fill-color:#000!important;background:none!important}
  html[data-page="listing"] .intro p{font-size:10pt;line-height:1.5;color:#222}
  html[data-page="listing"] .gallery{background:none;padding:0 0 4mm;break-inside:avoid}
  html[data-page="listing"] .galleryHead span,html[data-page="listing"] .gallery .ey{display:none}
  html[data-page="listing"] .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm}
  html[data-page="listing"] .g,html[data-page="listing"] .g:nth-child(n){grid-column:auto!important;height:32mm!important;background:#eee}
  html[data-page="listing"] .g:nth-child(n+4){display:none}
  html[data-page="listing"] .contact{background:none!important;color:#000!important;padding:4mm 0;border-top:1px solid #999;display:block;break-inside:avoid}
  html[data-page="listing"] .contact h2{font-size:14pt;color:#000!important}
  html[data-page="listing"] .contact p,html[data-page="listing"] .lp-who span,html[data-page="listing"] .lp-who small{color:#333!important}
  html[data-page="listing"] .contact>a,html[data-page="listing"] .contact a[href^="contact-us"]{display:none}
  html[data-page="listing"] .contact .lp-who a{color:#000!important}
  html[data-page="listing"] .note{background:none;font-size:7.5pt;padding:2mm 0}
  html[data-page="listing"] .lp-print{break-inside:avoid;display:flex;justify-content:space-between;gap:8mm;padding:4mm 0 0;border-top:1px solid #999;font:9pt/1.5 Inter,Inter Fallback,Arial,sans-serif}
  html[data-page="listing"] .lp-print div:last-child{text-align:right}
}

/* ---- 2.2.8 listing grids: empty-state help, card share, link targets ---- */
.lcard{scroll-margin-top:150px}
.lcard:target{outline:2px solid #C31B37;outline-offset:4px}
.lempty-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.lreset{min-height:44px;padding:0 18px;border:1px solid #8a1426;background:#8a1426;color:#fff;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.lidea{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #cdbfb4;background:#fff;color:#2d2926;font:500 14px/1.2 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer;text-decoration:none}
.lidea em{font-style:normal;font-size:12px;color:#6a625b}
.lidea:hover{border-color:#8a1426;color:#8a1426}
.lidea.ask{border-color:transparent;color:#8a1426;padding-left:4px}
.lreset:focus-visible,.lidea:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.lempty p{margin:0}
.lthumb:not(.ld),.exclusiveImage:not(.ld),.ag-ph:not(.ld){background-image:linear-gradient(90deg,#e5ddd3 0,#f3eee7 40%,#e5ddd3 80%);background-size:300% 100%;animation:hvSk 1.3s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.lthumb:not(.ld),.exclusiveImage:not(.ld),.ag-ph:not(.ld){animation:none}}
.ex-sk{flex:0 0 min(24vw,330px)}
@media(max-width:900px){.ex-sk{flex-basis:44vw}}
@media(max-width:600px){.ex-sk{flex-basis:64vw}}

/* ---- 2.2.9 viewing requests (assets/booking.js) ---- */
.lp-book{padding:56px 4.5% 60px;background:#fff;border-top:1px solid #eee7e1}
.hvBook{--bk:#7d111b}
.hvBook .bk-head{max-width:720px;margin-bottom:22px}
.hvBook .bk-head h2{font:500 clamp(36px,4.4vw,58px)/.9 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0 0 10px;color:#4a0005}
.hvBook .bk-head p{margin:0;font-size:15px;line-height:1.6;color:#4a423d}
.bk-form{max-width:980px}
.bk-form fieldset{border:0;margin:0 0 20px;padding:0;min-width:0}
.bk-form legend{padding:0;margin:0 0 10px;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#4a423d}
.bk-type{display:flex;flex-wrap:wrap;gap:10px}
.bk-type legend{width:100%}
.bk-form input[type=radio]{position:absolute;opacity:0;width:1px;height:1px}
.bk-type label span{display:flex;flex-direction:column;gap:3px;min-width:220px;padding:12px 16px;border:1px solid #d6cabd;cursor:pointer;background:#fff}
.bk-type b{font:600 14px/1.2 Inter,Inter Fallback,Arial,sans-serif;color:#2b2523}
.bk-type small{font-size:12px;color:#6a625b}
.bk-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity}
.bk-days label{flex:0 0 auto;scroll-snap-align:start}
.bk-days label span:first-of-type{display:flex;flex-direction:column;align-items:center;gap:2px;width:68px;padding:10px 4px;border:1px solid #d6cabd;background:#fff;cursor:pointer;text-align:center}
.bk-days b{font:300 26px/1 'Antonio',Antonio Fallback,'Arial Narrow',sans-serif;color:#2b2523}
.bk-days small{font:600 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#6a625b}
.bk-days i{font:500 9px/1 Inter,Inter Fallback,Arial,sans-serif;font-style:normal;color:#6a625b}
.bk-days label.off span:first-of-type{background:#f4f0ea;cursor:not-allowed;opacity:.7}
.bk-slots{display:flex;flex-wrap:wrap;gap:8px}
.bk-slots label span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid #d6cabd;background:#fff;font:500 14px/1 Inter,Inter Fallback,Arial,sans-serif;color:#2b2523;cursor:pointer}
.bk-none{margin:0;font-size:14px;color:#6a625b}
.bk-form input[type=radio]:checked+span{border-color:var(--bk);background:var(--bk);color:#fff}
.bk-form input[type=radio]:checked+span b,.bk-form input[type=radio]:checked+span small{color:#fff}
.bk-form input[type=radio]:focus-visible+span{outline:2px solid #C31B37;outline-offset:3px}
.bk-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin:0 0 14px}
.bk-fields label{display:flex;flex-direction:column;gap:6px;font:600 11px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#4a423d}
.bk-fields small{font-weight:400;text-transform:none;letter-spacing:0;color:#6a625b}
.bk-fields .bk-wide{grid-column:1/-1}
.bk-fields input,.bk-fields textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cdbfb0;background:#fff;font:400 15px/1.4 Inter,Inter Fallback,Arial,sans-serif;color:#2b2523;letter-spacing:0;text-transform:none}
.bk-fields input:focus-visible,.bk-fields textarea:focus-visible{outline:2px solid #C31B37;outline-offset:1px}
.bk-consent{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;font-size:14px;color:#4a423d}
.bk-consent input{width:18px;height:18px;margin-top:1px;accent-color:#7d111b}
.bk-msg{min-height:1.2em;margin:0 0 10px;font-size:14px;color:#a3122c}
.bk-go,.bk-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--bk);background:var(--bk);color:#fff;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.bk-ghost{background:#fff;color:var(--bk)}
.bk-go:focus-visible,.bk-ghost:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.bk-note{margin:12px 0 0;font-size:12.5px;color:#6a625b;max-width:640px}
.bk-done{max-width:720px;padding:24px;border:1px solid #e3dcd0;background:#faf8f4}
.bk-done h3{margin:6px 0 10px;font:500 32px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif}
.bk-done p{margin:0 0 12px;line-height:1.6;color:#3a332f}
.bk-ref{font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#7d111b}
.bk-acts{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:760px){.bk-fields{grid-template-columns:1fr}.bk-type label,.bk-type label span{width:100%}}
@media print{.lp-book{display:none!important}}
.bk-scroll,.bk-form label{position:relative}

/* ---- 2.2.9 language and currency switches (assets/prefs.js) ---- */
.hvPrefs{display:inline-flex;align-items:center;gap:6px;margin-left:14px;vertical-align:middle}
.hvPrefs[data-hv-hold]{min-width:118px;min-height:30px}   /* 3.1.5: space kept for the language and currency switches until prefs.js fills it */
.hvPref select{appearance:none;-webkit-appearance:none;min-height:30px;padding:0 22px 0 9px;border:1px solid rgba(255,255,255,.35);border-radius:2px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat right 7px center;color:inherit;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.1em;cursor:pointer}
.hvPref select option{color:#2b2523;background:#fff}
.hvPref select:hover{border-color:currentColor}
.hvPref select:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ab-nav .hvPref select,.lc-nav .hvPref select,header.nav .hvPref select{border-color:rgba(43,37,35,.35);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%232b2523'/%3E%3C/svg%3E")}
.ab-nav .hvPref select:focus-visible,.lc-nav .hvPref select:focus-visible,header.nav .hvPref select:focus-visible{outline-color:#C31B37}
@media print{.hvPrefs{display:none}}
.bk-local{display:block;margin-top:3px;font-size:10.5px;font-weight:400;color:#6a625b}
.bk-times legend small{font-weight:400;text-transform:none;letter-spacing:0;color:#6a625b}
.bk-slots label span{flex-direction:column;justify-content:center;align-items:flex-start;padding-top:6px;padding-bottom:6px}
.bk-slots label input:checked+span .bk-local{color:rgba(255,255,255,.8)}
/* header switches follow the header's own text colour (light over photos, dark once the header turns solid) */
.hvPref{position:relative;display:inline-flex}
.hvPref select,.ab-nav .hvPref select,.lc-nav .hvPref select,header.nav .hvPref select{background-image:none;color:inherit;border-color:currentColor;border-color:color-mix(in srgb,currentColor 45%,transparent)}
.hvPref::after{content:'';position:absolute;right:8px;top:50%;margin-top:-2px;border:4px solid transparent;border-top-color:currentColor;pointer-events:none}
@media(max-width:700px){
  .ab-nav .hvPrefs,.lc-nav .hvPrefs,header.nav .navlinks .hvPrefs{position:absolute;right:16px;top:100%;margin:4px 0 0}
}

/* ---- 2.2.10 agent ratings: gold stars with a burgundy outline (assets/agents.js) ---- */
.hvStars{position:relative;display:inline-block;line-height:0;white-space:nowrap;vertical-align:middle}
.hvStars svg{width:18px;height:18px;margin-right:2px}
.hvStars.sm svg{width:13px;height:13px;margin-right:1px}
.hvStars.lg svg{width:26px;height:26px;margin-right:3px}
.hvStars-base svg{fill:#f3e7cf;stroke:#8a1426;stroke-width:1.4;stroke-linejoin:round}
.hvStars-fill{position:absolute;inset:0 auto 0 0;overflow:hidden}
.hvStars-fill svg{fill:#C9A646;stroke:#7d111b;stroke-width:1.4;stroke-linejoin:round}
.tm-rate{display:flex;align-items:center;gap:6px;margin-top:6px}
.tm-rate em{font-style:normal;font-size:11px;color:#6a625b}
.tm-m-rate{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:10px 0 4px}
.tm-m-rate>a:first-child{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:inherit}
.tm-m-rate b{font:600 15px/1 Inter,Inter Fallback,Arial,sans-serif;color:#7d111b}
.tm-m-rate span{font-size:12px;color:#6a625b}
.tm-direct{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid #cdbfb0;color:#2b2523;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.tm-direct svg,.lp-direct svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.tm-direct:hover{border-color:#7d111b;color:#7d111b}
.tm-direct:focus-visible,.tm-m-rate a:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.lp-rate{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;color:#d9cfbf!important;text-decoration:none}
.lp-direct{display:flex;gap:8px;margin-left:8px}
.lp-direct a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.4);color:#fff!important;font:600 10px/1 Inter,Inter Fallback,Arial,sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase;text-decoration:none;padding-bottom:0!important}
.lp-direct a:hover{border-color:#d8b46a}
@media(max-width:640px){.lp-agent{flex-wrap:wrap}.lp-direct{margin:4px 0 0 70px}}
@media print{.lp-direct{display:none}}
/* the Our Team pop-up is dark */
#tm-box .tm-m-rate b{color:#e6c46a}
#tm-box .tm-m-rate span{color:#cfc7bb}
#tm-box .tm-direct{color:#f4efe6;border-color:rgba(255,255,255,.35)}
#tm-box .tm-direct:hover{border-color:#e6c46a;color:#fff}
.contact .lp-who a.lp-rate{font:400 12px/1.3 Inter,Inter Fallback,Arial,sans-serif;color:#d9cfbf}

/* ---- 2.2.11 "My account" in the menus: keep the right-hand group clear of the logo ---- */
@media(min-width:901px) and (max-width:1500px){
  .snLinks{gap:clamp(14px,1.5vw,26px)}
  .snLinks a{letter-spacing:.13em}
  .snLinks.r .hvPrefs{margin-left:6px}
}
.snAcct[data-signed-in="true"],.navAcct[data-signed-in="true"]{color:#e6c46a!important}
.navAcct{display:inline-flex;align-items:center;gap:6px}
.navAcct svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8}
.hxLinks .navAcct svg{display:none}
header.nav .navlinks a[href="#contact"]{display:inline-block!important}
@media(max-width:860px){
  .ab-nav .navAcct span,.lc-nav .navAcct span,header.nav .navAcct span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ab-nav .navAcct svg,.lc-nav .navAcct svg,header.nav .navAcct svg{width:20px;height:20px}
}
header.nav .navlinks a.navAcct{display:inline-flex!important}
.hxNav>.hvPrefs{position:absolute;right:var(--hx-gx);top:100%;margin:6px 0 0}
@media(max-width:700px){.hxNav>.hvPrefs{position:static;grid-column:1/-1;justify-self:start;margin:8px 0 0}}
@media(max-width:900px){.snLinks.r{flex-wrap:wrap;row-gap:4px}.snLinks.r .hvPrefs{margin-left:0}}

/* Home: bottom hero, Get in touch + Our offices (home page type system) */
.bh{--gold:#c9a76c;position:relative;isolation:isolate;overflow:hidden;background:#0a0c0b;color:#fff;min-height:var(--sec-h,740px);display:flex;align-items:center;padding:var(--sec-py,56px) var(--sec-gx,6%);box-sizing:border-box;font-family:Inter,Inter Fallback,Arial,sans-serif;font-weight:300}
.bh-bgs{position:absolute;inset:0;z-index:-2}
.bh-bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transform:scale(1.07);transition:opacity 1.1s cubic-bezier(.4,0,.2,1),transform 7s cubic-bezier(.22,.61,.36,1)}
.bh-bg.on{opacity:1;transform:scale(1)}
.bh:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,8,7,.9) 0%,rgba(6,8,7,.68) 45%,rgba(6,8,7,.38) 100%),linear-gradient(180deg,rgba(6,8,7,.5),rgba(6,8,7,0) 30%,rgba(6,8,7,.7) 100%)}
.bh-in{width:100%;max-width:var(--sec-max,1280px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:6%;align-items:center}
.bh .ey{color:var(--gold)}
.bh h2{font:400 var(--sec-h2,clamp(34px,3.6vw,50px)) "Cormorant Garamond",Cormorant Garamond Fallback,serif;line-height:1.02;margin:10px 0 14px}
.bh-lead{margin:0 0 16px;max-width:470px;color:rgba(255,255,255,.78);font-size:13px;line-height:1.9}
.bh-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;max-width:560px;padding:22px 28px 20px;background:rgba(8,10,9,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.bh-f{display:flex;flex-direction:column;gap:8px;min-width:0}
.bh-f.full{grid-column:1/-1}
.bh-f label{font:300 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.62)}
.bh-f input,.bh-f select,.bh-f textarea{width:100%;padding:9px 0 10px;border:0;border-bottom:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font:300 14px/1.4 Inter,Inter Fallback,sans-serif;border-radius:0;transition:border-color .3s}
.bh-f select{-webkit-appearance:none;appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23c9a76c' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 2px center;padding-right:20px;cursor:pointer}
.bh-f select option{color:#171816}
.bh-f textarea{resize:none;min-height:44px}
.bh-f input::placeholder,.bh-f textarea::placeholder{color:rgba(255,255,255,.32)}
.bh-f input:focus,.bh-f select:focus,.bh-f textarea:focus{outline:0;border-color:var(--gold)}
.bh-f.bad input,.bh-f.bad select{border-color:#f0a0a8}
.bh-consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:11px;line-height:1.7;color:rgba(255,255,255,.65);cursor:pointer}
.bh-consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--gold);flex:0 0 auto}
.bh-row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.bh-send{padding:15px 30px;border:1px solid #f4f0e8;background:#f4f0e8;color:#171816;font:400 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:1.8px;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s}
.bh-send:hover,.bh-send:focus-visible{background:transparent;color:#fff}
.bh-to{font:300 11px/1.4 Inter,Inter Fallback,sans-serif;letter-spacing:.04em;color:rgba(255,255,255,.62)}
.bh-to b{font-weight:400;color:var(--gold)}
.bh-msg{grid-column:1/-1;min-height:1.3em;margin:0;font:300 12px/1.5 Inter,Inter Fallback,sans-serif;color:var(--gold)}
.bh-msg.err{color:#f0a0a8}
.bh-done{display:none;max-width:560px;padding:34px 30px;background:rgba(8,10,9,.55);border:1px solid rgba(201,167,108,.5);backdrop-filter:blur(10px)}
.bh-done h3{margin:0 0 12px;font:400 30px/1.1 "Cormorant Garamond",Cormorant Garamond Fallback,serif}
.bh-done p{margin:0 0 18px;font-size:13px;line-height:1.8;color:rgba(255,255,255,.78)}
.bh-done button{border:0;border-bottom:1px solid var(--gold);background:none;color:var(--gold);font:300 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:2px;text-transform:uppercase;padding:0 0 6px;cursor:pointer}
.bh.sent .bh-form{display:none}.bh.sent .bh-done{display:block}

.bh-off{padding-left:6%;border-left:1px solid rgba(255,255,255,.2)}
.bh-list{list-style:none;margin:16px 0 0;padding:0}
.bh-list li{border-bottom:1px solid rgba(255,255,255,.16)}
.bh-list li:first-child{border-top:1px solid rgba(255,255,255,.16)}
.bh-list a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:9px 4px 9px 0;border:0;background:transparent;color:rgba(255,255,255,.58);text-align:left;cursor:pointer;font:400 clamp(26px,2.5vw,34px)/1 "Cormorant Garamond",Cormorant Garamond Fallback,serif;transition:color .3s,padding .35s cubic-bezier(.22,.61,.36,1)}
.bh-list a:after{content:"→";font:300 18px/1 Inter,Inter Fallback,sans-serif;color:var(--gold);opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .35s}
.bh-list a:before{content:"";position:absolute;left:-6.4%;top:50%;width:0;height:2px;background:var(--gold);transition:width .4s cubic-bezier(.22,.61,.36,1)}
.bh-list a:hover,.bh-list a:focus-visible,.bh-list a[aria-current="true"]{color:#fff;padding-left:14px}
.bh-list a[aria-current="true"]:after,.bh-list a:hover:after{opacity:1;transform:none}
.bh-list a[aria-current="true"]:before{width:5.6%}
.bh-list a:focus-visible{outline:1px solid var(--gold);outline-offset:-1px}
.bh-detail{margin-top:22px;min-height:150px;animation:bhin .5s ease}
@keyframes bhin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bh-detail h3{margin:0 0 8px;font:300 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
.bh-detail p{margin:0 0 14px;max-width:420px;font-size:13px;line-height:1.85;color:rgba(255,255,255,.8)}
.bh-detail dl{margin:0 0 14px;display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:12px;line-height:1.5}
.bh-detail dt{font:300 9px/1.8 Inter,Inter Fallback,sans-serif;letter-spacing:2.4px;text-transform:uppercase;color:rgba(255,255,255,.5)}
.bh-detail dd{margin:0;color:rgba(255,255,255,.88)}
.bh-detail dd.soon{color:rgba(255,255,255,.5);font-style:italic}
.bh-links{display:flex;flex-wrap:wrap;gap:8px 22px}
.bh-links a{color:#fff;text-decoration:none;font:300 9px/1 Inter,Inter Fallback,sans-serif;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:6px;transition:color .25s}
.bh-links a:hover{color:var(--gold)}
.bh-note{position:absolute;left:var(--sec-gx,6%);bottom:16px;margin:0;font:300 11px/1.5 Inter,Inter Fallback,sans-serif;letter-spacing:.04em;color:rgba(255,255,255,.42)}
.bh button:focus-visible,.bh a:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
@media(max-width:980px){.bh{flex-direction:column;align-items:stretch;justify-content:flex-start;padding-top:56px;padding-bottom:48px}.bh-in{grid-template-columns:1fr;gap:44px}.bh-off{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.2);padding-top:34px}.bh-list a:before{display:none}.bh-note{position:static;margin-top:30px}}
@media(max-width:560px){.bh-form{grid-template-columns:1fr;padding:22px 20px}}
@media(prefers-reduced-motion:reduce){.bh-bg{transition:opacity .4s;transform:none}.bh-detail{animation:none}}

.bh-f input:focus-visible,.bh-f select:focus-visible,.bh-f textarea:focus-visible{outline:2px solid #FF6F86;outline-offset:3px}
.bh-consent input:focus-visible,.bh-list a:focus-visible,.bh-links a:focus-visible,.bh-send:focus-visible{outline:2px solid #FF6F86;outline-offset:3px}
.bh-list a{text-decoration:none;box-sizing:border-box}

/* 3.2.34: office email and phone links */
.bh-detail dd a{color:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}.bh-detail dd a:hover{text-decoration-color:currentColor}

/* "Get in touch" bottom section on every sub-page. The home page carries its own copy of these rules in
   headings.css and home-system.css; this file gives the identical look to pages that do not load those. */
@font-face{font-family:"Antonio";src:url("fonts/antonio.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
.bh,.bh *{box-sizing:border-box}
.bh{--hd-font:"Antonio",Antonio Fallback,"Oswald","Arial Narrow",Impact,sans-serif;--hd-grad:linear-gradient(180deg,#FF6F86 0%,#EC3A54 50%,#C31B37 100%);--hd-ey:#FF6F86;--hd-small:.36em;
  --sec-gx:max(6%,calc((100% - 1280px)/2));--sec-py:56px;--sec-max:1280px;--sec-h:800px;--sec-h2:clamp(34px,3.6vw,50px);margin:0;scroll-margin-top:0;font-size:16px;line-height:1.5;text-align:left}
.bh .ey{display:block;font:400 9px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:4px;text-transform:uppercase;color:var(--hd-ey);margin:0 0 14px}
.bh .hd-plate{display:inline-block;background:none;padding:0;text-align:left;margin-bottom:16px}
.bh .bh-off .hd-plate{margin-bottom:6px}
.bh h2.hd{margin:0;font-family:var(--hd-font);font-weight:500;font-size:clamp(48px,4.9vw,70px);line-height:.9;letter-spacing:.04em;text-transform:uppercase;text-align:left;font-style:normal;
  background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:none;padding:0}
.bh h2.hd-sm{font-size:clamp(44px,4.8vw,70px)}
.bh .hd .h-a{display:block;font-size:var(--hd-small);line-height:1;letter-spacing:.08em;margin:0 0 .12em}
.bh .hd .h-b{display:block;line-height:.92;padding-bottom:.08em}
.bh h3{margin:0;background:none;-webkit-text-fill-color:initial}
.bh p{margin-top:0}
.bh a{text-decoration:none}
@media(max-width:860px){.bh h2.hd{font-size:clamp(46px,12vw,66px)}}

.bh-f input:focus-visible,.bh-f select:focus-visible,.bh-f textarea:focus-visible{outline:2px solid #FF6F86;outline-offset:3px}
.bh-consent input:focus-visible,.bh-list a:focus-visible,.bh-links a:focus-visible,.bh-send:focus-visible{outline:2px solid #FF6F86;outline-offset:3px}

