/* ==========================================================================
   ImmoLosch
   Brand: Ivory #F5F2E8 · Brick Red #C6241E · Ink Blue #09234D
   Type:  Plus Jakarta Sans (everything) · Fraunces (short, large accents only)
   ========================================================================== */

/* ---------------------------------------------------------------- tokens */
:root{
  --canvas:#FAF8F1;
  --ivory:#F5F2E8;
  --ivory-deep:#ECE7D8;
  --ivory-line:#E2DBC8;
  --paper:#FFFFFF;
  --brick:#C6241E;
  --brick-dark:#A81C17;
  --ink:#09234D;
  --ink-2:#09234D;

  --ink-70:rgba(9,35,77,.70);
  --ink-55:rgba(9,35,77,.55);
  --ink-40:rgba(9,35,77,.40);
  --ink-12:rgba(9,35,77,.12);
  --ink-08:rgba(9,35,77,.08);

  --on-ink:#F5F2E8;
  --on-ink-65:rgba(245,242,232,.65);
  --on-ink-40:rgba(245,242,232,.34);
  --on-ink-line:rgba(245,242,232,.16);

  --wrap:1240px;
  --gut:clamp(20px,5vw,64px);
  --sect:clamp(52px,6vw,88px);
  --sect-compact:clamp(40px,4.5vw,64px);
  --space-head-content:clamp(28px,3.2vw,44px);
  --header-min-height:74px;
  --site-header-height:75px;
  --control-height:46px;
  --control-height-lg:52px;
  --divider:1px solid var(--ink-12);

  --r-sm:2px;
  --r:4px;
  --r-lg:6px;
  --r-xl:10px;

  --sans:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  /* Shared motion scale: controls, state changes, imagery, and section reveals. */
  --motion-fast:200ms;
  --motion-quick:160ms;
  --motion-ui:320ms;
  --motion-image:400ms;
  --motion-reveal:620ms;
  --motion-count:800ms;
  --motion-step:360ms;
  --motion-rise:18px;
  --motion-stagger:70ms;
  --shadow:0 1px 2px rgba(9,35,77,.04), 0 12px 32px -12px rgba(9,35,77,.14);
  --shadow-lg:0 2px 4px rgba(9,35,77,.05), 0 28px 60px -24px rgba(9,35,77,.24);
  --shadow-card:0 2px 6px rgba(9,35,77,.035);
  --shadow-card-hover:0 4px 12px rgba(9,35,77,.07);
  --shadow-pop:0 16px 38px -22px rgba(9,35,77,.38);
  --focus-ring:0 0 0 3px rgba(9,35,77,.07);
  --focus-ring-on-ink:0 0 0 3px rgba(245,242,232,.14);

  /* Accents on the navy surface. */
  --brick-on-ink:#FF938B;
  --error-on-ink:#FFAAA2;
  --ink-raised:#15325A;
  --brick-tint:#F8EEEB;
  --ink-tint:#E9EDF3;
}
/* One section rhythm: --sect for content sections, --sect-compact for strips and contact bands. */
@media (max-width:600px){ :root{ --sect:48px; --sect-compact:36px; } }

/* Calculator navigation covers the current screen without moving it away. */
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation:none; }
html.valuation-slide::view-transition-new(root) { animation:valuation-slide-in var(--motion-reveal) var(--ease) both; }
@keyframes valuation-slide-in { from { transform:translateX(100%); } to { transform:translateX(0); } }

/* ---------------------------------------------------------------- reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--site-header-height) + 20px)}
body{
  margin:0;background:var(--canvas);color:var(--ink);
  font-family:var(--sans);font-size:var(--type-body);line-height:var(--line-body);font-weight:var(--weight-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
img{height:auto}
/* <picture class="pic"> only offers a WebP copy; it adds no box, so the img keeps its usual layout. */
.pic{display:contents}.pic>source{display:none}
h1,h2,h3,p,dl,dd,figure,blockquote{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brick);outline-offset:3px;border-radius:2px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
  position:fixed;top:8px;left:8px;z-index:200;
  background:var(--ink);color:var(--on-ink);padding:10px 16px;border-radius:var(--r);
  transform:translateY(-180%);transition:transform var(--motion-fast) var(--ease);
}
.skip-link:focus{transform:none}

/* ---------------------------------------------------------------- layout */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--sect)}

/* ---------------------------------------------------------------- type */
.display{
  font-size:var(--heading-size,var(--type-h2-editorial));line-height:var(--heading-line,var(--line-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading));
  letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:balance;
}
h2{font-size:var(--heading-size,var(--type-h2-editorial));line-height:var(--heading-line,var(--line-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:balance}
h3{font-size:var(--heading-size,var(--type-h3));line-height:var(--heading-line,var(--line-h3));font-weight:var(--heading-weight,var(--weight-heading));letter-spacing:var(--heading-tracking,var(--tracking-heading))}
.lead{font-size:var(--type-lead);line-height:var(--line-lead);color:var(--ink-70);max-width:var(--measure-lead)}
p{max-width:var(--measure-body);color:var(--ink-70)}
.section-title{
  color:var(--ink);font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading));
  font-variation-settings:'opsz' 32;line-height:var(--heading-line,var(--line-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:balance;
}
.section-title--light{color:var(--on-ink)}
.accentfont{
  font-family:var(--heading-family,var(--sans));font-weight:var(--heading-weight,var(--weight-heading));font-variation-settings:'opsz' 32;
  font-size:var(--heading-size,var(--type-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));line-height:var(--heading-line,var(--line-h2-editorial));color:var(--brick);
}
.accentfont--light{color:var(--on-ink)}
.accentfont--ink{color:var(--ink)}
/* Page titles in Fraunces. Keep the optical size low: the high-opsz display
   cut has hairline strokes that are hard to read at this scale. */
.display.accentfont{
  font-size:var(--heading-size,var(--type-h2-editorial));
  font-weight:var(--heading-weight,var(--weight-heading));letter-spacing:var(--heading-tracking,var(--tracking-editorial));line-height:var(--heading-line,var(--line-h2-editorial));
  font-variation-settings:'opsz' 32;
}

.eyebrow{
  display:flex;align-items:center;gap:12px;
  font-size:var(--type-eyebrow);font-weight:var(--weight-label);line-height:var(--line-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
  color:var(--brick);margin-bottom:var(--space-eyebrow-heading);
}
.eyebrow i{display:block;width:28px;height:2px;background:var(--brick);flex:none}
.eyebrow > span{text-wrap:balance}
.eyebrow--light{color:var(--on-ink)}
.eyebrow--light i{background:var(--brick)}

.note{display:flex;align-items:center;gap:10px;font-size:var(--type-caption);color:var(--ink-55);margin-top:26px}
.note i{width:6px;height:6px;border-radius:50%;background:var(--brick);flex:none}
.note--light{color:var(--on-ink-65)}

.shead{max-width:var(--wrap);margin-bottom:var(--space-head-content)}
.shead h2 + .lead{margin-top:18px}

/* ---------------------------------------------------------------- buttons */
.btn{
  --bg:var(--brick); --fg:#fff; --bd:var(--brick);
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--bg);color:var(--fg);border:1px solid var(--bd);
  min-height:var(--control-height);padding:10px 21px;border-radius:var(--r-lg);
  font-size:var(--type-ui);font-weight:var(--weight-medium);letter-spacing:var(--tracking-body);text-align:center;
  transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease);
}
.btn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.btn:hover svg{transform:translateX(2px)}
.btn--brick{
  --bd:var(--brick-dark);
  box-shadow:inset 0 -1px 0 rgba(71,9,7,.34),0 2px 3px rgba(9,35,77,.12);
  transform:translateY(0);
  transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease);
}
.btn--brick:hover{
  --bg:var(--brick-dark);--bd:var(--brick-dark);
  transform:translateY(-1px);
  box-shadow:inset 0 -1px 0 rgba(71,9,7,.4),0 3px 6px rgba(9,35,77,.16);
}
.btn--brick:active{
  transform:translateY(1px);
  box-shadow:inset 0 1px 1px rgba(71,9,7,.28),0 1px 1px rgba(9,35,77,.1);
}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.btn--ghost,.btn--ink{
  --bg:transparent;--fg:var(--ink);--bd:transparent;
  width:auto;padding:8px 0;border-radius:0;justify-content:flex-start;
}
.btn--ghost:hover,.btn--ink:hover{--bg:transparent;--fg:var(--brick);--bd:transparent}
.btn--sm{min-height:42px;padding:9px 16px;font-size:var(--type-ui)}
.btn--full{width:100%}
.btnrow{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:26px}

.arrowlink{
  display:inline-flex;align-items:center;gap:9px;
  color:var(--ink);font-weight:var(--weight-medium);font-size:var(--type-ui);letter-spacing:var(--tracking-body);
  transition:color var(--motion-fast) var(--ease);
}
.arrowlink:active svg,.btn:active svg{transform:translateX(2px)}
.arrowlink svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.arrowlink:hover{color:var(--brick)}
.arrowlink:hover svg{transform:translateX(5px)}
.arrowlink--lg{font-size:var(--type-ui)}
/* Text arrows share one gap and one small hover movement across page templates. */
:is(.service-fees-link,.fees-item__overview a,.listing-card__view,.listings__helper a,.pd-location a,.pd-section-head>a,.pd-hero__request){gap:9px}
:is(.service-fees-link,.fees-item__overview a,.listing-card__view,.listings__helper a,.pd-location a,.pd-section-head>a,.pd-hero__request)>span[aria-hidden="true"]{display:inline-block;transition:transform var(--motion-fast) var(--ease)}
:is(.service-fees-link,.fees-item__overview a,.listing-card__view,.listings__helper a,.pd-location a,.pd-section-head>a,.pd-hero__request):hover>span[aria-hidden="true"]{transform:translateX(4px)}
.textaction{
  display:inline-flex;align-items:center;justify-content:flex-start;
  color:var(--ink);font-size:var(--type-ui);font-weight:var(--weight-medium);border-bottom:1px solid var(--ink-12);
  padding:4px 0;transition:color var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease);
}
.textaction:hover{color:var(--brick);border-bottom-color:var(--brick)}

/* ---------------------------------------------------------------- header */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(250,248,241,.94);
  backdrop-filter:saturate(1.6) blur(14px);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color var(--motion-fast) var(--ease);
}
.header.is-stuck{border-bottom-color:var(--ink-08)}
.header__in{display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);min-height:var(--header-min-height)}
.header__cta{white-space:nowrap}
.logo{flex:none;display:block}
.logo img{height:27px;width:auto}

.nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px);margin-right:auto}
.nav > a,.nav__btn{
  position:relative;display:inline-flex;align-items:center;gap:6px;
  font-size:var(--type-nav);font-weight:var(--weight-medium);color:var(--ink);padding-block:6px;
}
.nav > a::after,.nav__btn::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brick);
  transform:scaleX(0);transform-origin:left;transition:transform var(--motion-ui) var(--ease);
}
.nav > a:hover::after,.navitem:hover .nav__btn::after,.navitem.is-open .nav__btn::after{transform:scaleX(1)}
.nav__btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.navitem.is-open .nav__btn svg{transform:rotate(180deg)}

.header__end{display:flex;align-items:center;gap:clamp(10px,1.4vw,18px);flex:none;margin-left:auto}

/* language: full row at rest, compact picker once the page scrolls */
.langs{display:flex;align-items:center;gap:2px}
.lang{
  padding:5px 9px;border-radius:3px;
  font-size:var(--type-metadata);font-weight:var(--weight-label);letter-spacing:var(--tracking-body);
  color:var(--ink-40);transition:color var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease);
}
.lang:hover{color:var(--ink)}
.lang.is-active{color:var(--ink);background:var(--ink-08)}

.langs--row{
  position:relative;padding-right:clamp(10px,1.4vw,18px);
  transition:opacity var(--motion-ui) var(--ease),transform var(--motion-ui) var(--ease);
}
.langs--row::after{content:"";position:absolute;right:0;top:6px;bottom:6px;width:1px;background:var(--ink-12)}
.langpick{display:none}
/* desktop: full row at rest, compact picker once scrolled */
@media (min-width:1001px){
  .header.is-stuck .langs--row{display:none}
  .header.is-stuck .langpick{display:block}
}

.nav__btn--lang{
  border:1.5px solid var(--ink-12);border-radius:var(--r);
  padding:9px 12px;font-size:var(--type-nav);font-weight:var(--weight-medium);letter-spacing:var(--tracking-body);
}
.nav__btn--lang::after{display:none}
.nav__btn--lang:hover{border-color:var(--ink)}

.burger{display:none;width:44px;height:44px;flex:none;position:relative;margin-left:auto}
.burger span{position:absolute;left:11px;width:22px;height:2px;background:var(--ink);transition:transform var(--motion-ui) var(--ease)}
.burger span:nth-child(1){top:18px}
.burger span:nth-child(2){top:25px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

/* ---------------------------------------------------------------- dropdowns */
.navitem{position:relative}
.megamenu,.dropdown{
  position:absolute;top:calc(100% + 14px);z-index:120;
  background:var(--paper);border:1px solid var(--ink-08);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);
  animation:pop var(--motion-fast) var(--ease);
}
.megamenu[hidden],.dropdown[hidden]{display:none}
@keyframes pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* invisible bridge so the pointer can cross the gap */
.megamenu::before,.dropdown::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}

.megamenu{left:-20px;width:min(760px,86vw);padding:10px}
.megamenu__in{display:grid;grid-template-columns:1.35fr .65fr;gap:10px}
.megamenu__list{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.megamenu__list a{
  display:flex;gap:12px;padding:14px;border-radius:var(--r);
  transition:background var(--motion-fast) var(--ease);
}
.megamenu__list a:hover{background:var(--ivory)}
.megamenu__list svg{width:30px;height:30px;flex:none;margin-top:2px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.megamenu__list span{display:block;font-size:var(--type-metadata);line-height:var(--line-metadata);color:var(--ink-55)}
.megamenu__list strong{display:block;font-size:var(--type-nav);font-weight:var(--weight-medium);line-height:var(--line-nav);color:var(--ink);letter-spacing:var(--tracking-body);margin-bottom:2px}
html[lang="en"] .megamenu__list a[href="services-sell.html"] strong{max-width:11ch}

.megamenu__feature{
  display:flex;flex-direction:column;gap:8px;
  padding:20px;border-radius:var(--r);background:var(--ink);color:var(--on-ink);
  transition:background var(--motion-fast) var(--ease);
}
.megamenu__feature:hover{background:var(--ink-2)}
.megamenu__feature svg{width:30px;height:30px;fill:none;stroke:var(--on-ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.megamenu__feature strong{font-size:var(--type-ui);font-weight:var(--weight-medium);line-height:var(--line-ui);letter-spacing:var(--tracking-body)}
.megamenu__feature span{font-size:var(--type-metadata);line-height:var(--line-metadata);color:var(--on-ink-65);flex:1}
.megamenu__feature em{
  display:inline-flex;align-items:center;gap:7px;font-style:normal;
  font-size:var(--type-metadata);font-weight:var(--weight-label);color:#fff;margin-top:4px;
}
.megamenu__feature em svg{width:15px;height:15px;stroke:var(--brick);stroke-width:2}

.dropdown{right:0;min-width:190px;padding:6px}
.dropdown .lang{
  display:block;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r);
  font-size:var(--type-metadata);font-weight:var(--weight-medium);letter-spacing:var(--tracking-body);
}

/* ---------------------------------------------------------------- mobile menu */
.mobilemenu{
  position:fixed;inset:110px 0 0;z-index:99;background:var(--ivory);
  padding:clamp(20px,5vw,40px) var(--gut) 44px;
  display:flex;flex-direction:column;gap:28px;overflow-y:auto;
}
.mobilemenu[hidden]{display:none}
.mobilemenu__languages{padding-bottom:16px;border-bottom:1px solid var(--ink-12)}
.mobilemenu nav{display:flex;flex-direction:column}
.mobilemenu__h{
  font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
  color:var(--brick);margin:22px 0 6px;max-width:none;
}
.mobilemenu__h:first-child{margin-top:0}
.mobilemenu nav a{
  font-size:var(--type-nav);font-weight:var(--weight-medium);letter-spacing:var(--tracking-heading);
  padding-block:13px;border-bottom:1px solid var(--ink-08);
line-height:var(--line-nav);}
.mobilemenu .btn{align-self:stretch;min-height:var(--control-height-lg)}
/* The menu carries the full language row, so the bar's picker steps aside while it is open. */
.header__in:has(.burger[aria-expanded="true"]) .langpick{visibility:hidden}
.langs--big .lang{font-size:var(--type-metadata);padding:9px 15px}

/* ---------------------------------------------------------------- hero */
.hero{position:relative;padding-block:clamp(32px,4vw,60px) clamp(40px,5vw,72px)}
.hero__in{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(36px,5vw,80px);align-items:center}
.hero__copy .lead{margin-top:26px;max-width:var(--measure-lead)}
.hero__figure{margin:0;position:relative}

/* drawn → real lens.
   The illustration sits straight on the page ground — no frame, no tile.
   A small feathered radial mask trails the pointer, so the photograph
   bleeds through as a soft detail rather than a full reveal. */
@property --lens{syntax:'<length>';inherits:true;initial-value:0px}
@property --x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --y{syntax:'<percentage>';inherits:true;initial-value:50%}

.viewer{
  --x:50%; --y:50%; --lens:0px;
  position:relative;aspect-ratio:1198/1313;
  background:var(--canvas);border:0;border-radius:0;isolation:isolate;
  cursor:pointer;touch-action:pan-y pinch-zoom;
  /* the lens eases open slowly, and trails the cursor rather than snapping */
  /* eased in as well as out, so the patch grows gently instead of snapping */
  transition:--lens var(--motion-reveal) var(--ease), --x var(--motion-image) var(--ease), --y var(--motion-image) var(--ease);
}
.viewer.is-open{--lens:1800px;transition:--lens var(--motion-reveal) var(--ease)}

/* `any-*` keeps the lens available on hybrid touchscreen laptops whenever a
   mouse or trackpad is present. Touch taps are handled per event in main.js. */
@media (any-hover:hover) and (any-pointer:fine){
  .viewer{cursor:crosshair}
  .viewer:hover{--lens:clamp(72px,8vw,118px)}
}

.viewer__base,.viewer__base img,
.viewer__reveal picture,.viewer__reveal img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.viewer__base{mix-blend-mode:darken}
.viewer__reveal{
  position:absolute;inset:0;
  -webkit-mask-image:radial-gradient(circle at var(--x) var(--y),
    #000 0px, #000 calc(var(--lens) * .42), rgba(0,0,0,0) var(--lens));
  mask-image:radial-gradient(circle at var(--x) var(--y),
    #000 0px, #000 calc(var(--lens) * .42), rgba(0,0,0,0) var(--lens));
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}

.viewer:focus-visible{outline:2px solid var(--brick);outline-offset:5px}

/* No mask support: fall back to a plain crossfade on hover. */
@supports not ((mask-image:radial-gradient(#000,#000)) or (-webkit-mask-image:radial-gradient(#000,#000))){
  .viewer__reveal{opacity:0;transition:opacity var(--motion-image) var(--ease)}
  .viewer.is-open .viewer__reveal{opacity:1}
  @media (any-hover:hover) and (any-pointer:fine){
    .viewer:hover .viewer__reveal{opacity:1}
  }
}

/* ---------------------------------------------------------------- proof */
.proof{background:var(--brick);color:#fff}
.proof__in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-block:clamp(28px,3.2vw,42px)}
.stat{min-width:0;padding-inline:clamp(0px,3vw,44px);position:relative;display:flex;flex-direction:column}
.stat:first-child{padding-left:0}
.stat:last-child{padding-right:0}
.stat + .stat::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:rgba(255,255,255,.28)}
.stat__num{font-size:var(--type-stat);font-weight:var(--weight-bold);letter-spacing:var(--tracking-stat);line-height:var(--line-stat);color:#fff;max-width:none}
.stat:nth-child(2){padding-inline:clamp(0px,1.2vw,16px)}
.stat:nth-child(2) .stat__num{white-space:nowrap}
.stat__num [data-count]{display:inline-block;font-variant-numeric:tabular-nums;text-align:left}
.stat__label{margin-top:8px;font-size:var(--type-body);color:rgba(255,255,255,.78);max-width:30ch}

/* ---------------------------------------------------------------- services */
.services{background:var(--ivory);padding-block:var(--sect)}
.services .eyebrow{margin-bottom:var(--space-eyebrow-heading)}
.services .section-title{font-size:var(--heading-size,var(--type-h2-editorial));line-height:var(--heading-line,var(--line-h2-editorial))}
.services__grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12);
}
.service-item{
  position:relative;display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,1fr);
  align-items:center;gap:clamp(18px,2.4vw,34px);min-width:0;color:var(--ink);
  padding:clamp(20px,2.3vw,28px) clamp(20px,2.5vw,34px);
}
.service-item:nth-child(even){border-left:1px solid var(--ink-12);padding-right:0}
.service-item:nth-child(odd){padding-left:0}
.service-item:nth-child(-n+2){border-bottom:1px solid var(--ink-12)}
.service-item::before{
  content:"";position:absolute;left:0;top:-1px;width:46px;height:2px;background:var(--brick);
  transform:scaleX(0);transform-origin:left;transition:transform var(--motion-ui) var(--ease);
}
.service-item:hover::before,.service-item:focus-visible::before{transform:scaleX(1)}
.service-item__visual{
  width:100%;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:transparent;
}
.service-item__visual img{
  width:100%;max-width:none;
  transform:scale(.96);filter:saturate(.98) contrast(1.02);
  transition:transform var(--motion-image) var(--ease),filter var(--motion-image) var(--ease);
}
.service-item:hover .service-item__visual img{
  transform:scale(.98);filter:saturate(1) contrast(1.04);
}
.service-item__body{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}
.service-item h3{max-width:var(--heading-measure,var(--measure-heading))}
.service-item__body > p{margin-top:8px;line-height:var(--line-body);max-width:var(--measure-body)}
.service-item .arrowlink{margin-top:13px;font-size:var(--type-ui)}
.service-item--primary{min-height:clamp(206px,22vw,244px)}
.service-item--primary h3{
  font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));
  font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-h3));letter-spacing:var(--heading-tracking,var(--tracking-heading));
}
.service-item--primary .service-item__body > p{font-size:var(--type-body)}
.service-item--sell{grid-template-columns:minmax(150px,.58fr) minmax(0,1fr)}
.service-item--sell .service-item__visual{width:min(100%,188px);justify-self:start}
.service-item--valuation{grid-template-columns:minmax(140px,.52fr) minmax(0,1fr)}
.service-item--valuation .service-item__visual{width:min(92%,174px);justify-self:start}
.service-item--valuation h3{font-size:var(--heading-size,var(--type-h3))}
.service-item--secondary{min-height:clamp(170px,18vw,202px)}
.service-item--secondary .service-item__visual{width:min(100%,150px);justify-self:start}
.service-item--secondary h3{font-size:var(--heading-size,var(--type-h3));line-height:var(--heading-line,var(--line-h3))}
.service-item--secondary .service-item__body > p{font-size:var(--type-body);line-height:var(--line-body)}
.service-item--rent .service-item__visual,.service-item--renovation .service-item__visual{width:min(100%,152px)}

/* ---------------------------------------------------------------- valuation + calculator */
.valuation{background:var(--ink);color:var(--on-ink);padding-block:clamp(72px,7.5vw,120px)}
.valuation__in{
  max-width:1500px;display:grid;grid-template-columns:minmax(350px,.82fr) minmax(540px,1.38fr);
  gap:0;align-items:stretch;
}
.valuation__copy{
  display:flex;flex-direction:column;min-width:0;padding-right:clamp(44px,5vw,82px);
}
.valuation h2{color:var(--on-ink)}
.valuation__copy .section-title{
  max-width:var(--heading-measure,var(--measure-heading));margin-top:28px;font-size:var(--heading-size,var(--type-h2-editorial));line-height:var(--heading-line,var(--line-h2-editorial));
}
.valuation .lead{max-width:var(--measure-lead);color:var(--on-ink-65);margin-top:28px;font-size:var(--type-lead)}
.valuation__copy > p:not(.lead):not(.note):not(.eyebrow){color:var(--on-ink-65);margin-top:16px;font-size:var(--type-body)}

.valuation__benefits{margin-top:clamp(48px,6vw,90px)}
.valuation__benefits li{
  display:flex;align-items:center;gap:20px;padding:19px 0;border-bottom:1px solid var(--on-ink-line);
  color:var(--on-ink);font-size:var(--type-body);line-height:var(--line-body);
}
.valuation__benefits li:first-child{border-top:1px solid var(--on-ink-line)}
.valuation__benefits svg{
  width:27px;height:27px;flex:none;fill:none;stroke:var(--brick);stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.valuation__copy .note{margin-top:auto;padding-top:clamp(42px,5vw,72px)}

.valuation-map{
  display:grid;grid-template-columns:minmax(180px,.55fr) minmax(320px,1fr);
  gap:clamp(28px,3.2vw,54px);align-items:center;min-width:0;
  padding-left:clamp(44px,5vw,82px);border-left:1px solid var(--on-ink-line);
}
.valuation-map__intro{min-width:0}
.valuation-map__icon{
  width:44px;height:44px;margin-bottom:32px;fill:none;stroke:var(--on-ink);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;--acc:var(--brick);
}
.valuation-map__eyebrow{
  color:var(--brick);font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
}
.valuation-map__intro h3{
  max-width:var(--heading-measure,var(--measure-heading));margin-top:20px;color:var(--on-ink);font-size:var(--heading-size,var(--type-h3));
  line-height:var(--heading-line,var(--line-h3));letter-spacing:var(--heading-tracking,var(--tracking-heading));
}
.valuation-map__intro > p:not(.valuation-map__eyebrow):not(.valuation-map__proof){
  max-width:var(--measure-body);margin-top:24px;color:var(--on-ink-65);font-size:var(--type-lead);line-height:var(--line-lead);
}
.valuation-map__proof{margin-top:clamp(60px,7vw,106px)}
.valuation-map__proof strong{
  display:block;color:var(--brick);font-family:var(--sans);font-size:var(--type-data);
  font-weight:var(--weight-heading);line-height:var(--line-data);font-variant-numeric:tabular-nums;
}
.valuation-map__proof strong::after{content:"+"}
.valuation-map__proof span{display:block;margin-top:8px;color:var(--on-ink-65);font-size:var(--type-metadata)}

.calc{
  background:var(--ivory);border:1px solid var(--on-ink-line);border-radius:var(--r);
  padding:clamp(24px,2.6vw,36px);
  scroll-margin-top:calc(var(--site-header-height) + 20px);
}
.calc__eyebrow{
  font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
  color:var(--brick);margin-bottom:var(--space-eyebrow-heading);max-width:none;
}
.calc__title{margin-bottom:22px}
.calc__form{display:flex;flex-direction:column}
.calc__form .field{margin-bottom:16px}
.calc__form label span{color:var(--brick);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}

.calc__result{
  background:var(--ink);color:var(--on-ink);border-radius:var(--r);
  padding:20px 22px;margin:6px 0 18px;
}
.calc__label{font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--on-ink-40);max-width:none}
.calc__range{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:8px;max-width:none;
  font-size:var(--type-metadata);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);color:#fff;
  font-variant-numeric:tabular-nums;
}
.calc__range i{font-style:normal;color:var(--brick)}
.calc__per{margin-top:6px;font-size:var(--type-metadata);color:var(--on-ink-65);max-width:none}
.calc__disclaimer{margin-top:14px;font-size:var(--type-caption);line-height:var(--line-caption);color:var(--ink-55)}

/* range input */
input[type="range"]{
  -webkit-appearance:none;appearance:none;width:100%;height:26px;background:transparent;cursor:pointer;
}
input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--ink-12)}
input[type="range"]::-moz-range-track{height:4px;border-radius:2px;background:var(--ink-12)}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:18px;height:18px;margin-top:-7px;
  border-radius:50%;background:var(--brick);border:3px solid var(--ivory);
  box-shadow:0 1px 4px rgba(9,35,77,.3);transition:transform var(--motion-quick) var(--ease);
}
input[type="range"]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:var(--brick);border:3px solid var(--ivory);
  box-shadow:0 1px 4px rgba(9,35,77,.3);
}
input[type="range"]:hover::-webkit-slider-thumb{transform:scale(1.12)}

/* ---------------------------------------------------------------- valuation invite */
.invite{
  background:var(--ivory);color:var(--ink);border:1px solid rgba(245,242,232,.22);border-radius:var(--r);
  padding:clamp(26px,2.8vw,38px);
  display:flex;flex-direction:column;gap:12px;text-align:left;
}
.invite__ic{width:40px;height:40px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:2px}
.invite__eyebrow{font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--brick);max-width:none}
.invite__title{margin:0;font-size:var(--type-h3);letter-spacing:var(--tracking-heading)}
.invite__body{font-size:var(--type-body);max-width:36ch}
.invite .btn{margin-top:8px}
.invite__note{font-size:var(--type-caption);font-weight:var(--weight-label);letter-spacing:var(--tracking-body);text-transform:uppercase;color:var(--ink-40);max-width:none}
.invite--map{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.72fr);
  gap:clamp(22px,2.8vw,38px);align-items:center;
}
.invite__copy{min-width:0}
.invite__copy .invite__eyebrow{margin-top:12px}
.invite__copy .invite__body{margin-top:12px}
.invite__copy .invite__note{margin-top:12px}

/* full calculator, on the valuation page */
.calcsection{background:var(--ivory);border-top:1px solid var(--ink-08)}
.calcsection .shead{max-width:850px}
.calcsection--dedicated{padding-top:clamp(34px,4.5vw,62px)}
.calcsection__wrap{max-width:1540px}
.calculator-layout{
  display:grid;grid-template-columns:minmax(290px,340px) minmax(0,1fr);
  gap:clamp(24px,3vw,46px);align-items:start;
}
.calculator-layout .valuation-tool{max-width:none}
.valuation-tool{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.72fr);
  max-width:1160px;border:1px solid var(--ivory-line);background:var(--paper);border-radius:var(--r-lg);
}
.valuation-tool--formonly{display:block}
.valuation-tool__form{padding:clamp(24px,3.4vw,44px)}
.valuation-tool__formhead{
  display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--ink-08);
}
.valuation-tool__formhead p{max-width:none;font-size:var(--type-body);color:var(--ink-40)}
.valuation-tool__formhead .valuation-tool__step{
  color:var(--ink);font-size:var(--type-metadata);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.calc__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(16px,2vw,24px)}
.calc-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;min-width:0}
.calc-field--wide{grid-column:1/-1}
.calc-field label,.calc-options legend{font-size:var(--type-metadata);font-weight:var(--weight-label);color:var(--ink)}
.calc-field label > span{color:var(--brick)}
.calc-field label small{font-size:var(--type-caption);font-weight:var(--weight-body);color:var(--ink-40)}
.calc-field input,.calc-field select,.calc-field textarea{
  width:100%;min-height:46px;padding:10px 13px;background:#fff;color:var(--ink);
  border:1.5px solid var(--ivory-line);border-radius:var(--r);font-size:var(--type-body);
  transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease);
}
.calc-field select{
  appearance:auto;cursor:pointer;
}
.calc-field textarea{min-height:88px;resize:vertical;line-height:var(--line-body)}
.calc-field input::placeholder,.calc-field textarea::placeholder{color:var(--ink-40)}
.calc-field input:focus,.calc-field select:focus,.calc-field textarea:focus{
  outline:none;border-color:var(--ink);box-shadow:var(--focus-ring);
}
.calc-field select:disabled{cursor:not-allowed;background:rgba(9,35,77,.035);color:var(--ink-40)}
.calc-field.has-err input,.calc-field.has-err select,.calc-field.has-err textarea{border-color:var(--brick)}
.calc-field .err{min-height:0;font-size:var(--type-caption);line-height:var(--line-caption)}
.calc-field.has-err .err{min-height:1em}
.calc-options{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:2px 0 20px;padding:0;border:0;
}
.calc-options legend{float:left;margin-right:8px}
.calc-options label,.calc-check{
  display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:var(--type-metadata);cursor:pointer;
}
.calc-options input,.calc-check input{width:17px;height:17px;margin:0;accent-color:var(--brick)}
.calc-field--description{margin-bottom:20px}
.calc-details{margin:0 0 24px;border-top:1px solid var(--ink-08);border-bottom:1px solid var(--ink-08)}
.calc-details summary{
  display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;
  color:var(--ink);font-size:var(--type-metadata);font-weight:var(--weight-label);cursor:pointer;list-style:none;
}
.calc-details summary::-webkit-details-marker{display:none}
.calc-details summary span{font-size:var(--type-h4);font-weight:var(--weight-heading);color:var(--brick);transition:transform var(--motion-fast) var(--ease)}
.calc-details[open] summary span{transform:rotate(45deg)}
.calc-details__body{padding:6px 0 4px}
.calc-checkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px;align-items:start}
.calc-checkitem{min-width:0}
.calc-check{width:100%;padding:12px;border:1px solid var(--ivory-line);border-radius:var(--r);background:var(--canvas)}
.calc-field .calc-check input{width:17px;height:17px;min-height:17px;padding:0;margin:0;accent-color:var(--brick)}
.calc-field--sub{margin:9px 0 0}
.calc-field--sub label{font-size:var(--type-caption);color:var(--ink-55)}
.calc-field--sub input{min-height:42px;background:var(--canvas)}
.valuation-tool__submit{width:100%}

.valuation-result{
  display:flex;flex-direction:column;min-width:0;padding:clamp(24px,3vw,38px);
  background:var(--ink);color:var(--on-ink);border-radius:0 calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0;
}
.valuation-result__empty,.valuation-result__content{margin-block:auto}
.valuation-result__empty > svg{
  width:46px;height:46px;margin-bottom:24px;fill:none;stroke:var(--on-ink);stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;--acc:var(--brick);
}
.valuation-result__eyebrow{
  max-width:none;color:var(--brick);font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
}
.valuation-result h3{margin-top:10px;color:#fff;font-size:var(--heading-size,var(--type-h3))}
.valuation-result h3 + p,.valuation-result__empty h3 + p{margin-top:12px;color:var(--on-ink-65);font-size:var(--type-body)}
.valuation-result__range{
  display:flex;flex-direction:column;gap:2px;margin-top:13px;max-width:none;
  color:#fff;font-family:var(--sans);font-size:var(--type-metadata);
  font-weight:var(--weight-medium);line-height:var(--line-metadata);letter-spacing:var(--tracking-body);font-variant-numeric:tabular-nums;
}
.valuation-result__range i{
  color:var(--on-ink-40);font-family:var(--sans);font-size:var(--type-metadata);font-style:normal;font-weight:var(--weight-label);
  letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.valuation-result__basis{margin-top:12px;color:var(--on-ink-65);font-size:var(--type-caption);line-height:var(--line-caption)}
.valuation-result__rule{height:1px;margin:26px 0;background:var(--on-ink-line)}
.valuation-result__content .btn{margin-top:22px}
.valuation-result__contact{margin-top:16px;color:var(--on-ink);font-size:var(--type-metadata)}
.valuation-result__contact:hover{color:#fff}
.valuation-result__disclaimer{
  margin-top:auto;padding-top:26px;color:var(--on-ink-40);font-size:var(--type-caption);line-height:var(--line-caption);
}
.valuation-inline-result{
  margin-top:22px;padding:clamp(20px,2.6vw,30px);
  background:var(--canvas);border:1px solid var(--ivory-line);border-radius:var(--r);
}
.valuation-inline-result[hidden]{display:none}
.valuation-inline-result .valuation-result__content{margin:0}
.valuation-inline-result .valuation-result__range{
  display:flex;flex-flow:row wrap;align-items:baseline;gap:8px 12px;margin-top:10px;
  color:var(--ink);font-size:var(--type-metadata);
}
.valuation-inline-result .valuation-result__range i{color:var(--ink-40)}
.valuation-inline-result .valuation-result__basis{color:var(--ink-55)}
.valuation-inline-result__actions{
  display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:20px;padding-top:18px;border-top:1px solid var(--ink-08);
}
.valuation-inline-result .valuation-result__disclaimer{
  margin-top:18px;padding-top:0;color:var(--ink-40);
}

/* ---------------------------------------------------------------- canton sales map */
.canton-map{min-width:0}
.canton-map--full{
  position:sticky;top:104px;padding:clamp(22px,2.5vw,32px);
  background:var(--paper);border:1px solid var(--ivory-line);border-radius:var(--r-lg);
}
.canton-map__head{padding-bottom:18px;border-bottom:1px solid var(--ink-08)}
.canton-map__eyebrow,.canton-map__compact-title{
  color:var(--brick);font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
}
.canton-map__head h3{margin-top:8px;font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));font-weight:var(--heading-weight,var(--weight-heading))}
.canton-map__head > p:last-child{margin-top:9px;font-size:var(--type-metadata);line-height:var(--line-metadata)}
.canton-map__svg{width:100%;height:auto;max-height:470px;margin:22px auto 18px;overflow:visible}
.canton-map__region{
  cursor:pointer;fill:var(--ink);fill-opacity:.84;stroke:var(--ivory);stroke-width:1.5;
  transition:fill var(--motion-fast) var(--ease),fill-opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease);
  transform-box:fill-box;transform-origin:center;
}
.canton-map__region:hover,.canton-map__region:focus{fill-opacity:1;outline:none}
.canton-map__region:focus-visible{stroke:var(--brick);stroke-width:4}
.canton-map__region.is-active{fill:var(--brick);fill-opacity:1;transform:scale(1.012)}
.canton-map__dot{pointer-events:none;fill:var(--ivory)}
.canton-map__count-bg{pointer-events:none;fill:var(--ivory);stroke:var(--brick);stroke-width:1.5}
.canton-map__count{pointer-events:none;fill:var(--ink);font-family:var(--sans);font-size:var(--type-metadata);font-weight:var(--weight-bold)}
.canton-map__detail{
  min-height:58px;padding:14px 0;border-top:1px solid var(--ink-08);border-bottom:1px solid var(--ink-08);
}
.canton-map__detail strong,.canton-map__detail span{display:block}
.canton-map__detail strong{color:var(--ink);font-family:var(--sans);font-size:var(--type-h3);font-weight:var(--weight-heading);line-height:var(--line-h3)}
.canton-map__detail span{margin-top:2px;color:var(--ink-55);font-size:var(--type-caption);line-height:var(--line-caption)}
.canton-map__total{margin-top:13px;color:var(--ink-40);font-size:var(--type-caption);line-height:var(--line-caption)}
.canton-map__total strong{color:var(--ink);font-size:var(--type-metadata);font-variant-numeric:tabular-nums}

.canton-map--compact{padding-left:clamp(18px,2vw,26px);border-left:1px solid var(--ink-12)}
.canton-map__compact-title{display:flex;align-items:baseline;gap:8px;color:var(--ink);letter-spacing:var(--tracking-body);text-transform:none}
.canton-map__compact-title strong{
  color:var(--brick);font-family:var(--sans);font-size:var(--type-h3);font-weight:var(--weight-heading);
  line-height:var(--line-h3);font-variant-numeric:tabular-nums;
}
.canton-map__compact-title span{color:var(--ink-55);font-size:var(--type-caption);font-weight:var(--weight-label);line-height:var(--line-caption);letter-spacing:var(--tracking-body);text-transform:uppercase}
.canton-map--compact .canton-map__svg{max-height:220px;margin:14px auto 10px}
.canton-map--compact .canton-map__detail{min-height:45px;padding:9px 0 0;border-top:1px solid var(--ink-08);border-bottom:0}
.canton-map--compact .canton-map__detail strong{font-family:var(--sans);font-size:var(--type-h3);font-weight:var(--weight-heading)}
.canton-map--compact .canton-map__detail span{font-size:var(--type-caption)}

.canton-map--valuation{min-width:0}
.canton-map--valuation .canton-map__stage{position:relative}
.canton-map--valuation .canton-map__svg{
  width:100%;max-height:560px;margin:0 auto 20px;filter:drop-shadow(0 14px 28px rgba(0,0,0,.1));
}
.canton-map--valuation .canton-map__region{
  fill:var(--ink-raised);fill-opacity:.92;stroke:rgba(245,242,232,.32);stroke-width:1.3;
}
.canton-map--valuation .canton-map__region:hover,
.canton-map--valuation .canton-map__region:focus,
.canton-map--valuation .canton-map__region.is-active{fill:var(--brick);fill-opacity:1}
.canton-map--valuation .canton-map__region:focus-visible{stroke:var(--on-ink);stroke-width:3}
.canton-map--valuation .canton-map__dot,
.canton-map--valuation .canton-map__count-bg,
.canton-map--valuation .canton-map__count{display:none!important}
.canton-map--valuation .canton-map__detail{display:none}
.canton-map__tooltip{
  position:absolute;z-index:3;left:50%;top:50%;width:max-content;max-width:220px;
  padding:13px 16px;background:var(--canvas);color:var(--ink);border:1px solid rgba(245,242,232,.62);
  border-radius:var(--r);box-shadow:0 10px 26px rgba(0,0,0,.18);
  pointer-events:none;transform:translate(-50%,calc(-100% - 14px));
}
.canton-map__tooltip[hidden]{display:none}
.canton-map__tooltip strong,.canton-map__tooltip span{display:block}
.canton-map__tooltip strong{font-size:var(--type-metadata);line-height:var(--line-metadata)}
.canton-map__tooltip span{margin-top:3px;color:var(--ink-70);font-size:var(--type-caption);line-height:var(--line-caption)}
.canton-map__tooltip span b{color:var(--brick);font-weight:var(--weight-bold)}
.valuation-map__cta{width:100%;justify-content:center;margin-top:8px;padding-inline:18px}
.valuation-map__cta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------------------------------------------------------- guided valuation flow */
.valuation-flow{
  min-height:calc(100svh - 88px);padding:clamp(20px,2.4vw,34px) 0 24px;
  display:flex;align-items:center;background:var(--canvas);border-top:1px solid var(--ink-08);color:var(--ink);
  transition:background var(--motion-ui) var(--ease);
}
.valuation-flow[data-current-step="2"]{background:var(--canvas)}
.valuation-flow[data-current-step="3"]{background:var(--ivory)}
.valuation-flow[data-current-step="4"]{background:var(--ivory)}
.valuation-flow__wrap{max-width:1460px}
.valuation-flow__progress{width:100%;margin-bottom:clamp(16px,2vw,24px)}
.valuation-flow__label{
  max-width:none;margin-bottom:9px;color:var(--brick);font-size:var(--type-eyebrow);font-weight:var(--weight-label);
  letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
}
.vf-progress{display:flex;align-items:flex-end;gap:24px}
.vf-progress > strong{display:none}
.vf-progress ol{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%;list-style:none}
.vf-progress li{
  display:flex;align-items:center;gap:8px;min-height:32px;padding-top:7px;border-top:2px solid var(--ink-12);
  color:var(--ink-40);font-size:var(--type-metadata);line-height:var(--line-metadata);transition:color var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease);
}
.vf-progress li span{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}
.vf-progress li b{font-weight:var(--weight-label);white-space:nowrap}
.vf-progress li.is-complete{color:var(--brick);border-color:var(--brick)}
.vf-progress li.is-current{color:var(--ink);border-color:var(--brick)}
.vf-progress li.is-current span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:var(--brick);color:#fff}

.vf-step[hidden]{display:none}
.vf-step.is-active{animation:vf-enter var(--motion-step) var(--ease) both}
@keyframes vf-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.vf-heading{max-width:820px;margin-bottom:clamp(16px,2vw,25px)}
.vf-heading h2{
  margin:0;color:var(--ink);font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-display));
  font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-display));letter-spacing:var(--heading-tracking,var(--tracking-editorial));
}
.vf-heading p{max-width:620px;margin-top:10px;color:var(--ink-70);font-size:var(--type-lead);line-height:var(--line-lead)}
.vf-heading--with-art{display:flex;align-items:center;justify-content:space-between;gap:32px;max-width:none}
.vf-heading--with-art > div{max-width:780px}
.vf-heading__art{flex:none;width:clamp(150px,18vw,255px);height:108px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;--acc:var(--brick)}
.vf-heading__art--details{width:220px;height:116px}
.vf-heading__art--result{width:clamp(210px,24vw,340px);height:130px}
.vf-heading--type .vf-heading__art{display:none}

.vf-step.is-active[data-vf-step="1"]{
  display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);
  gap:12px clamp(42px,5vw,80px);align-items:start;
}
.vf-step[data-vf-step="1"] > .vf-heading{grid-column:1;grid-row:1;margin-bottom:0;align-self:end}
.vf-location{display:contents}
.vf-location__summary{grid-column:1;grid-row:2;align-self:start}
.canton-map--flow{grid-column:2;grid-row:1/3;align-self:center}
.vf-step[data-vf-step="1"] > .vf-fields--location{grid-column:2;grid-row:3}
.vf-step[data-vf-step="1"] > .vf-actions{grid-column:2;grid-row:4}
.vf-location__summary{padding:18px 0;border-block:1px solid var(--ink-12)}
.vf-local-proof{padding:20px;background:rgba(255,255,255,.35);border-left:3px solid var(--brick)}
.vf-kicker{display:flex;align-items:center;gap:10px;max-width:none;color:var(--ink-55);font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase}
.vf-kicker svg{width:22px;height:22px;fill:none;stroke:var(--brick);stroke-width:1.8}
.vf-location__summary > strong,.vf-local-proof > strong{display:block;margin-top:10px;font-family:var(--sans);font-size:var(--type-metadata);font-weight:var(--weight-label);line-height:var(--line-metadata)}
.vf-location__summary > b{display:block;margin-top:7px;color:var(--brick);font-size:var(--type-metadata)}
.vf-location__summary > p:last-child{margin-top:12px;font-size:var(--type-metadata);line-height:var(--line-metadata)}
.canton-map--flow .canton-map__stage{position:relative;max-width:560px;margin-inline:auto}
.canton-map--flow .canton-map__svg{max-height:350px;margin:0 auto}
.canton-map--flow .canton-map__region{fill:transparent;stroke:var(--ink);stroke-width:1.6}
.canton-map--flow .canton-map__region:hover,.canton-map--flow .canton-map__region:focus,.canton-map--flow .canton-map__region.is-active{fill:var(--brick);fill-opacity:1}
.canton-map--flow .canton-map__region:focus-visible{stroke:var(--brick);stroke-width:4}
.canton-map--flow .canton-map__dot,.canton-map--flow .canton-map__count-bg,.canton-map--flow .canton-map__count{display:none!important}
.canton-map--flow .canton-map__detail{display:none}
.canton-map--flow .canton-map__tooltip{background:#fff;border-color:var(--ink-12);box-shadow:0 10px 26px rgba(9,35,77,.14)}

.vf-fields{display:grid;gap:12px 18px}
.vf-fields--location{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}
.vf-fields--details{grid-template-columns:repeat(2,minmax(0,1fr))}
.vf-field{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0}
.vf-field[hidden],.calc-field[hidden]{display:none}
.vf-hint,.calc-hint{color:var(--ink-40);font-size:var(--type-caption);line-height:var(--line-caption)}
.vf-field label,.vf-spaces legend{color:var(--ink);font-size:var(--type-body);font-weight:var(--weight-bold)}
.vf-field label small{color:var(--ink-40);font-weight:var(--weight-body)}
.vf-field label em{color:var(--brick);font-style:normal}
.vf-field input,.vf-field select,.vf-field textarea{
  width:100%;min-height:43px;padding:9px 12px;background:rgba(255,255,255,.58);color:var(--ink);
  border:1px solid var(--ink-12);border-radius:var(--r);font:inherit;font-size:var(--type-body);
  transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease);
}
.vf-field textarea{min-height:58px;resize:vertical;line-height:var(--line-body)}
.vf-field input::placeholder,.vf-field textarea::placeholder{color:var(--ink-40)}
.vf-field input:focus,.vf-field select:focus,.vf-field textarea:focus{outline:none;background:#fff;border-color:var(--ink);box-shadow:var(--focus-ring)}
.vf-field select:disabled{cursor:not-allowed;opacity:.55}
.vf-field.has-error input,.vf-field.has-error select{border-color:var(--brick)}
.vf-error{min-height:1em;color:var(--brick);font-size:var(--type-caption);line-height:var(--line-caption)}
.vf-field--description{margin-top:0}
.vf-counter{position:absolute;right:13px;bottom:10px;color:var(--ink-40);font-size:var(--type-caption)}

.vf-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:clamp(16px,1.8vw,24px)}
.vf-actions--end{justify-content:flex-end}
.vf-actions--back{justify-content:flex-start}
.vf-actions .btn{min-width:200px;justify-content:center}
.vf-back,.vf-save{padding:8px 4px;background:none;border:0;color:var(--ink);font:inherit;font-size:var(--type-ui);font-weight:var(--weight-medium);cursor:pointer;line-height:var(--line-ui);}
.vf-back span,.vf-save{border-bottom:1px solid transparent;transition:border-color var(--motion-fast) var(--ease)}
.vf-back:hover span,.vf-save:hover{border-color:currentColor}

.vf-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);padding:0;border:0}
.vf-type{display:block;cursor:pointer}
.vf-type > input{position:absolute;opacity:0;pointer-events:none}
.vf-type__surface{
  position:relative;display:flex;min-height:230px;padding:22px;align-items:center;justify-content:center;flex-direction:column;text-align:center;
  background:rgba(255,255,255,.34);border:1px solid var(--ink-12);border-radius:var(--r);transition:border-color var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease);
}
.vf-type__surface > i{position:absolute;right:14px;top:14px;display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:var(--brick);color:#fff;font-style:normal;opacity:0;transform:scale(.7);transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
.vf-type__surface > svg{width:150px;height:92px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;--acc:var(--brick)}
.vf-type__surface > strong{margin-top:13px;font-family:var(--sans);font-size:var(--type-h3);font-weight:var(--weight-heading)}
.vf-type__surface > small{max-width:28ch;margin-top:8px;color:var(--ink-55);font-size:var(--type-caption);line-height:var(--line-caption)}
.vf-type:hover .vf-type__surface{border-color:var(--ink-40);transform:translateY(-1px)}
.vf-type > input:focus-visible + .vf-type__surface{outline:3px solid rgba(9,35,77,.16);outline-offset:3px}
.vf-type > input:checked + .vf-type__surface{border-color:var(--brick);background:#fff}
.vf-type > input:checked + .vf-type__surface > i{opacity:1;transform:scale(1)}
.vf-choice-error{min-height:1em;margin-top:10px;color:var(--brick);font-size:var(--type-caption)}

.vf-details-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:clamp(28px,4vw,54px);align-items:start}
.vf-detail-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vf-detail-group{padding:14px 16px;background:rgba(255,255,255,.34);border-top:2px solid var(--ink-12)}
.vf-detail-group--core{border-top-color:var(--brick)}
.vf-detail-group h2{margin-bottom:10px;font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-transform:uppercase}
.vf-spaces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:0;padding:0;border:0}
.vf-spaces legend{margin-bottom:7px}
.vf-spaces label{display:flex;align-items:center;gap:9px;min-height:42px;padding-right:14px;border-right:1px solid var(--ink-12);font-size:var(--type-metadata);cursor:pointer}
.vf-spaces label:nth-of-type(even){border-right:0}
.vf-spaces input{width:17px;height:17px;accent-color:var(--brick)}
.vf-local-proof{margin-top:0}
.vf-local-proof > b{display:block;margin-top:6px;font-family:var(--sans);font-size:var(--type-body-lg)}
.vf-local-proof hr{height:1px;margin:22px 0;border:0;background:var(--ink-12)}
.vf-local-proof > p:last-child span,.vf-local-proof > p:last-child small{display:block}
.vf-local-proof > p:last-child span{color:var(--brick);font-weight:var(--weight-bold);font-size:var(--type-metadata)}
.vf-local-proof > p:last-child small{margin-top:5px;color:var(--ink-55);font-size:var(--type-caption)}

.vf-result-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.78fr);gap:clamp(26px,4vw,52px);align-items:stretch}
.vf-result,.vf-disclaimer,.vf-professional{border-radius:var(--r)}
.vf-result{padding:clamp(24px,3vw,34px);background:var(--ink);color:var(--on-ink);border-left:4px solid var(--brick)}
.vf-result > p{color:var(--on-ink-65);font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase}
.vf-result > strong{display:block;margin-top:9px;color:var(--on-ink);font-family:var(--sans);font-size:var(--type-data);font-weight:var(--weight-heading);line-height:var(--line-data);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}
.vf-result > small{display:block;margin-top:8px;color:var(--brick);font-size:var(--type-caption);font-weight:var(--weight-bold)}
.vf-result > small.vf-result__basis{margin-top:6px;color:var(--on-ink-65);font-size:var(--type-caption);font-weight:var(--weight-body);line-height:var(--line-caption)}
.vf-result hr{height:1px;margin:20px 0;border:0;background:var(--on-ink-line)}
.vf-result ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;list-style:none}
.vf-result li b,.vf-result li span{display:block}
.vf-result li b{color:var(--on-ink);font-size:var(--type-caption);line-height:var(--line-caption)}
.vf-result li span{margin-top:3px;color:var(--on-ink-40);font-size:var(--type-caption)}
.vf-disclaimer{margin-top:12px;padding:13px 16px;color:var(--ink-70);font-size:var(--type-caption);line-height:var(--line-caption);border:1px solid var(--ink-12)}
.vf-professional{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:clamp(22px,2.5vw,32px);background:rgba(255,255,255,.42);border-top:2px solid var(--brick)}
.vf-professional > svg{width:56px;height:56px;padding:13px;border:1px solid var(--ink-12);border-radius:50%;fill:none;stroke:var(--ink);stroke-width:1.5;--acc:var(--brick)}
.vf-professional h2{font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading))}
.vf-professional p{margin-top:10px;font-size:var(--type-body);line-height:var(--line-body)}
.vf-professional .btn{width:100%;justify-content:center;margin-top:18px}
.vf-save{display:block;margin-top:14px;text-align:left}

.vf-proofbar{display:grid;grid-template-columns:repeat(3,1fr);margin-top:34px;border:1px solid var(--ink-12);border-radius:var(--r)}
.vf-proofbar > div{display:flex;align-items:center;justify-content:center;gap:15px;min-height:84px;border-right:1px solid var(--ink-12)}
.vf-proofbar > div:last-child{border-right:0}
.vf-proofbar strong{color:var(--brick);font-family:var(--sans);font-size:var(--type-data);font-weight:var(--weight-heading)}
.vf-proofbar span{color:var(--ink-70);font-size:var(--type-caption);line-height:var(--line-caption)}

@media(max-width:1000px){
  .vf-heading--with-art{align-items:flex-start}.vf-heading__art{width:230px;height:130px}
  .vf-step.is-active[data-vf-step="1"]{grid-template-columns:240px minmax(0,1fr);column-gap:36px}
  .vf-fields--location{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vf-fields--location .vf-field:last-child{grid-column:1/-1}
  .vf-details-layout{grid-template-columns:1fr 240px;gap:28px}.vf-spaces label{border-right:0}
  .vf-result > strong{font-size:var(--type-data)}
}
@media(min-width:761px) and (max-height:760px){
  .valuation-flow{padding-block:14px 18px}
  .valuation-flow__progress{margin-bottom:12px}
  .valuation-flow__label{margin-bottom:5px}
  .vf-progress li{min-height:27px;padding-top:5px}
  .vf-heading{margin-bottom:14px}.vf-heading h2{font-size:var(--heading-size,var(--type-display))}.vf-heading p{margin-top:7px}
  .canton-map--flow .canton-map__svg{max-height:300px}
  .vf-type__surface{min-height:205px;padding:18px}.vf-type__surface > svg{height:78px}
  .vf-actions{margin-top:13px}
}
@media(max-width:760px){
  .valuation-flow{display:block;min-height:0;padding-top:28px}.valuation-flow__progress{margin-bottom:30px}
  .vf-progress ol{gap:6px}.vf-progress li{display:block}.vf-progress li span{display:block;margin-bottom:5px}.vf-progress li.is-current span{display:grid}
  .vf-progress li b{font-size:var(--type-metadata);white-space:normal}
  .vf-heading{margin-bottom:28px}.vf-heading h2{font-size:var(--heading-size,var(--type-display))}
  .vf-heading--with-art{display:block}.vf-heading__art{display:none}
  .vf-step.is-active[data-vf-step="1"]{display:block}.vf-step[data-vf-step="1"] > .vf-heading{margin-bottom:28px}
  .vf-location{display:flex;flex-direction:column-reverse;gap:22px;align-items:stretch}.vf-location__summary{padding:20px}
  .canton-map--flow .canton-map__stage{width:min(100%,470px)}.canton-map--flow .canton-map__svg{max-height:410px}
  .vf-fields--location{grid-template-columns:1fr;margin:22px 0 0}.vf-fields--location .vf-field:last-child{grid-column:auto}.vf-types{grid-template-columns:1fr;gap:14px}
  .vf-type__surface{min-height:190px;padding:18px}.vf-type__surface > svg{width:140px;height:85px}
  .vf-details-layout{grid-template-columns:1fr}.vf-local-proof{order:-1}.vf-detail-groups{grid-template-columns:1fr}.vf-fields--details{grid-template-columns:1fr}
  .vf-result-layout{grid-template-columns:1fr}.vf-result ul{grid-template-columns:repeat(2,1fr)}.vf-professional{grid-template-columns:1fr}.vf-professional > svg{width:48px;height:48px}
  .vf-proofbar{grid-template-columns:1fr}.vf-proofbar > div{justify-content:flex-start;padding:16px 24px;border-right:0;border-bottom:1px solid var(--ink-12)}.vf-proofbar > div:last-child{border-bottom:0}
}
@media(max-width:480px){
  .vf-progress{gap:12px}.vf-progress ol{gap:5px}
  .vf-actions{align-items:stretch}.vf-actions .btn{min-width:0}.vf-spaces{grid-template-columns:1fr 1fr}
  .vf-result{padding:20px}.vf-result > strong{font-size:var(--type-data)}.vf-result ul{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.vf-step.is-active{animation:none}.vf-type__surface{transition:none}}

/* ---------------------------------------------------------------- about */
.about__in{display:grid;grid-template-columns:minmax(0,.78fr) minmax(480px,1.22fr);gap:clamp(36px,5vw,72px);align-items:center}
.about__copy > p:not(.lead){margin-top:12px;font-size:var(--type-lead)}

.about__teamline{
  margin-top:clamp(28px,3vw,38px);padding-top:22px;border-top:1px solid var(--ink-12);
  display:flex;align-items:flex-end;justify-content:space-between;gap:22px;flex-wrap:wrap;
}
.about__teamline strong{display:block;color:var(--ink);font-size:var(--type-body);letter-spacing:var(--tracking-body)}
.about__teamline span{display:block;margin-top:3px;font-size:var(--type-metadata);color:var(--ink-55)}
.about__teamline .arrowlink{flex:none}

.about__portrait{
  margin:0;background:var(--ink);border-radius:2px;overflow:hidden;
  align-self:start;
}
.about__portrait > img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ivory-deep)}
.about__portrait figcaption{
  position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:26px;
  padding:clamp(20px,2.2vw,28px);color:var(--on-ink);
}
.about__portrait figcaption::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brick)}
.about__portrait strong{display:block;font-size:var(--type-h4);letter-spacing:var(--tracking-heading);color:var(--on-ink)}
.about__portrait strong i{font-family:var(--sans);font-weight:var(--weight-medium);font-style:italic;color:var(--brick);padding-inline:3px}
.about__portrait figcaption span{display:block;margin-top:4px;font-size:var(--type-caption);color:var(--on-ink-65)}
.about__portrait figcaption p{
  flex:none;text-align:right;font-size:var(--type-caption);font-weight:var(--weight-bold);line-height:var(--line-caption);
  letter-spacing:var(--tracking-body);text-transform:uppercase;color:var(--on-ink-65);max-width:none;
}

/* ---------------------------------------------------------------- properties (CRM) */
.properties{background:var(--ivory)}
.properties-pagehead__in{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:clamp(48px,8vw,128px);align-items:end;
}
.properties-pagehead .display{max-width:var(--heading-measure,var(--measure-heading))}
.properties-pagehead__note{padding:0 0 4px clamp(24px,3.2vw,48px);border-left:1px solid var(--ink-12)}
.properties-pagehead__note .lead{margin-top:16px;font-size:var(--type-lead);max-width:var(--measure-lead)}
.properties-pagehead__status{
  color:var(--brick);font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;
}

.properties--full{padding-block:clamp(30px,3.6vw,54px) clamp(64px,7vw,104px)}
.crm{display:flex;flex-direction:column;gap:clamp(28px,3.5vw,48px)}

.crm__bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-bottom:18px;border-bottom:1px solid var(--ink-12);
}
.crm__count{font-size:var(--type-metadata);color:var(--ink-55);max-width:none}
.crm__count strong{color:var(--ink);font-weight:var(--weight-bold)}
.field--inline{margin:0;min-width:190px}
.field--inline label{display:none}

.crm__grid{display:flex;flex-direction:column}
.crm__empty{padding:48px 0;color:var(--ink-55);font-size:var(--type-body)}
.crm__foot{margin-top:clamp(28px,3vw,40px)}

.prop{
  display:grid;grid-template-columns:minmax(0,1.42fr) minmax(340px,.72fr);
  gap:clamp(30px,4.5vw,72px);align-items:center;padding-block:clamp(32px,4vw,58px);
  border:0;border-bottom:1px solid var(--ink-12);border-radius:0;background:transparent;
}
.prop:last-child{border-bottom:0}
.prop:nth-child(even) .prop__art{grid-column:2}
.prop:nth-child(even) .prop__body{grid-column:1;grid-row:1}
.prop__art{
  position:relative;display:block;overflow:hidden;background:var(--ivory-deep);aspect-ratio:16/10;
}
.prop__art img{
  width:100%;height:100%;object-fit:cover;transition:transform var(--motion-image) var(--ease),filter var(--motion-image) var(--ease);
}
.prop:hover .prop__art img{transform:scale(1.018);filter:saturate(1.03)}
.prop__body{padding-block:4px}
.prop__meta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.prop__meta p{
  max-width:none;color:var(--ink-55);font-size:var(--type-metadata);font-weight:var(--weight-bold);line-height:var(--line-metadata);
  letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.prop__meta p:last-child{text-align:right;color:var(--brick)}
.prop h3{font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-h3));letter-spacing:var(--heading-tracking,var(--tracking-heading))}
.prop__loc{margin:0;color:var(--ink-55)}
.prop__price{margin-top:17px;font-size:var(--type-h3);font-weight:var(--weight-heading);letter-spacing:var(--tracking-heading);color:var(--ink);font-variant-numeric:tabular-nums}
.prop__description{margin-top:16px;font-size:var(--type-body);line-height:var(--line-body);color:var(--ink-70)}
.prop__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px;border-block:1px solid var(--ink-12)}
.prop__facts div{padding:13px 12px 14px 0}
.prop__facts dt{color:var(--ink-40);font-size:var(--type-metadata);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase}
.prop__facts dd{margin-top:4px;color:var(--ink);font-size:var(--type-metadata);font-weight:var(--weight-label);line-height:var(--line-metadata)}
.prop__foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px}
.prop__foot>span{color:var(--ink-55);font-size:var(--type-metadata)}
.prop__foot .arrowlink{font-size:var(--type-ui);flex:none}
.prop__ref{
  position:absolute;right:15px;bottom:15px;padding:5px 8px;background:rgba(250,248,241,.9);
  color:var(--ink);font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;
}

.tag{
  position:absolute;top:14px;left:14px;
  font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;
  color:var(--brick);background:rgba(255,255,255,.94);
  border:1px solid rgba(198,36,30,.28);padding:5px 10px;border-radius:2px;
}
.tag--solid{background:var(--brick);color:#fff;border-color:var(--brick)}

.prop--feature{padding-top:0;background:transparent;border-color:var(--ink-12)}
.prop--feature .prop__art{aspect-ratio:16/9}

.specs{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--ink-08)}
.specs li{display:flex;align-items:center;gap:7px;font-size:var(--type-metadata);color:var(--ink-70);font-weight:var(--weight-medium)}
.specs svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--brick);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.filters{
  position:relative;z-index:5;display:grid;
  grid-template-columns:190px minmax(145px,1fr) minmax(160px,1fr) minmax(210px,1.15fr) auto auto;
  gap:14px;align-items:end;padding-block:16px;border-block:1px solid var(--ink-12);
  background:transparent;border-radius:0;
}
.filters .field{margin:0}
.filters__lead>span,.filters label{display:block;margin-bottom:7px;color:var(--ink-55);font-size:var(--type-lead);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase}
.filters__numbers{gap:8px}
.filters__numbers label{white-space:nowrap}
.seg{display:flex;gap:18px;padding:0;background:transparent;border-radius:0;margin:0}
.seg__btn{
  position:relative;padding:10px 0;border-radius:0;font-size:var(--type-metadata);font-weight:var(--weight-label);color:var(--ink-55);
  transition:color var(--motion-fast) var(--ease);
}
.seg__btn:hover{color:var(--ink)}
.seg__btn::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--brick);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-fast) var(--ease)}
.seg__btn.is-active{background:transparent;color:var(--ink)}
.seg__btn.is-active::after{transform:scaleX(1)}
.filters__more{position:relative;align-self:end}
.filters__more summary{
  min-height:45px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  border-bottom:1px solid var(--ink-20);color:var(--ink);font-size:var(--type-metadata);font-weight:var(--weight-label);white-space:nowrap;
}
.filters__more summary::-webkit-details-marker{display:none}
.filters__more summary::after{content:"+";color:var(--brick);font-size:var(--type-body)}
.filters__more[open] summary::after{content:"−"}
.filters__ranges{
  position:absolute;right:0;top:calc(100% + 10px);width:min(520px,80vw);display:grid;grid-template-columns:1fr 1fr;
  gap:22px;padding:22px;background:var(--canvas);border:1px solid var(--ink-12);box-shadow:0 12px 28px rgba(9,35,77,.08);
}
.filters>.textaction{align-self:end;min-height:45px;padding:0 0 0 4px;font-size:var(--type-ui)}

.seek{
  margin-top:clamp(32px,4vw,52px);
  background:transparent;border-block:1px solid var(--ink-12);border-radius:0;
  padding:clamp(28px,3.4vw,48px) 0;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
}
.seek p{margin-top:10px;font-size:var(--type-body);max-width:var(--measure-body)}
.seek .btn{flex:none}

/* ---------------------------------------------------------------- property previews */
.preview{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px)}
.mini{display:flex;flex-direction:column}
.mini__art{
  position:relative;background:var(--ivory-deep);
  border-radius:2px;aspect-ratio:16/11;display:grid;place-items:center;
  overflow:hidden;
}
.mini__art img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:none;opacity:.94;
  transition:opacity var(--motion-ui) var(--ease),transform var(--motion-image) var(--ease);
}
/* A listing with no photo falls back to the house illustration, which is artwork
   rather than a photograph and has to be contained, not cropped. */
.mini__art--placeholder img{object-fit:contain;padding:9%}
.prop__art--placeholder img{object-fit:contain;padding:7%}
.mini__art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(250,248,241,0),rgba(9,35,77,.035));pointer-events:none}
.mini:hover .mini__art img{opacity:1;transform:scale(1.018)}
.mini h3{margin-top:13px;font-size:var(--heading-size,var(--type-h3))}
.mini__loc{margin-top:3px;font-size:var(--type-metadata);color:var(--ink-55)}
.mini__price{margin-top:8px;font-size:var(--type-h3);font-weight:var(--weight-heading);color:var(--ink);font-variant-numeric:tabular-nums}
.specs--sm{margin-top:10px;padding-top:10px;gap:4px 14px}
.specs--sm li{font-size:var(--type-metadata)}
.specs--sm svg{width:15px;height:15px}
.properties__foot{margin-top:clamp(28px,3.4vw,40px)}

/* ---------------------------------------------------------------- reviews */
.reviews{
  --rv-gap:clamp(12px,1.35vw,18px);
  --rv-peek:clamp(44px,4.5vw,72px);
  --rv-edge:calc(var(--rv-peek) + var(--rv-gap));
  background:var(--canvas);padding-block:var(--sect);
}
.reviews__head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(24px,4vw,56px);
  flex-wrap:wrap;margin-bottom:clamp(22px,2.7vw,32px);
}
.reviews__head > div:first-child{flex:1;min-width:0}
.reviews__head .lead{margin-top:10px;font-size:var(--type-lead);max-width:var(--measure-lead)}

.gscore{
  display:flex;align-items:center;gap:14px;flex:none;
  padding-left:18px;border-left:1px solid var(--ink-12);
}
.gscore__num{
  font-family:var(--sans);font-weight:var(--weight-heading);
  font-size:var(--type-data);letter-spacing:var(--tracking-heading);line-height:var(--line-data);color:var(--ink);max-width:none;
}
.gscore__meta{font-size:var(--type-metadata);color:var(--ink-55);max-width:none;white-space:nowrap}
.gscore__link{
  display:inline-flex;align-items:center;gap:7px;margin-top:5px;
  font-size:var(--type-metadata);font-weight:var(--weight-label);color:var(--ink);transition:color var(--motion-fast) var(--ease);
}
.gscore__link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.gscore__link:hover{color:var(--brick)}
.gscore__link:hover svg{transform:translateX(4px)}

/* star rating (shared by the score block and the cards) */
.stars{display:flex;align-items:center;gap:3px}
.stars svg{
  width:17px;height:17px;flex:none;
  fill:var(--brick);stroke:var(--brick);stroke-width:.8;stroke-linejoin:round;
}
.stars--sm svg{width:14px;height:14px}
.stars svg.is-empty{fill:none;stroke:var(--ink-12)}

.reviews__rail{
  width:100%;overflow:hidden;
}
.reviews__viewport{
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scroll-padding-inline:var(--rv-edge);
  overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:1px 0 4px;cursor:grab;touch-action:pan-x pan-y pinch-zoom;
}
.reviews__viewport:active,.reviews__viewport.is-dragging{cursor:grabbing}
.reviews__viewport.is-dragging{scroll-snap-type:none;scroll-behavior:auto;user-select:none}
.reviews__viewport::-webkit-scrollbar{display:none}
.reviews__track{display:flex;align-items:stretch;gap:var(--rv-gap);width:100%}
.gcard{
  flex:0 0 calc((100% - (2 * var(--rv-peek)) - (5 * var(--rv-gap))) / 4);min-width:0;
  display:flex;flex-direction:column;gap:13px;scroll-snap-align:start;scroll-snap-stop:always;
  background:var(--paper);border:1px solid var(--ink-08);border-radius:var(--r-lg);
  padding:clamp(18px,1.8vw,23px);box-shadow:none;
}
.gcard:focus-visible{outline:2px solid var(--brick);outline-offset:-3px}
.gcard__head{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px}
.gcard__avatar{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:var(--ink);color:#fff;font-size:var(--type-metadata);font-weight:var(--weight-bold);text-transform:uppercase;
}
.gcard:nth-child(5n+2) .gcard__avatar{background:#7E57C2}
.gcard:nth-child(5n+3) .gcard__avatar{background:#00897B}
.gcard:nth-child(5n+4) .gcard__avatar{background:#E65100}
.gcard:nth-child(5n+5) .gcard__avatar{background:#5C6BC0}
.gcard__identity{min-width:0}
.gcard__name{display:block;font-size:var(--type-metadata);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);color:var(--ink);max-width:none;line-height:var(--line-metadata)}
.gcard__when{display:block;margin-top:2px;font-size:var(--type-caption);color:var(--ink-40);white-space:nowrap}
.gcard__google{
  font-size:var(--type-body-lg);font-weight:var(--weight-bold);line-height:var(--line-body-lg);
  background:conic-gradient(from -35deg,#4285f4 0 28%,#34a853 28% 46%,#fbbc05 46% 66%,#ea4335 66% 83%,#4285f4 83% 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.gcard__stars{display:flex;align-items:center;gap:2px;color:#F9AB00;font-size:var(--type-metadata);line-height:var(--line-metadata);letter-spacing:var(--tracking-body)}
.gcard__text{
  display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5;white-space:pre-line;
  font-size:var(--type-metadata);line-height:var(--line-metadata);color:var(--ink-70);max-width:none;
}
.gcard.is-expanded .gcard__text{display:block;overflow:visible;-webkit-line-clamp:unset}
.gcard__more{
  align-self:flex-start;margin-top:auto;padding-top:2px;color:var(--ink);font-size:var(--type-caption);font-weight:var(--weight-bold);
  border-bottom:1px solid var(--ink-12);transition:color var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease);
}
.gcard__more:hover{color:var(--brick);border-color:var(--brick)}

/* ---------------------------------------------------------------- stories */
.stories{background:var(--canvas);border-top:0;padding-top:clamp(38px,4vw,56px)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,30px)}
.story-card{display:flex;flex-direction:column}
.story-card__art{
  position:relative;overflow:hidden;border-radius:2px;
  border:0;background:var(--ivory);aspect-ratio:4/3;
}
.story-card__art img{width:100%;height:100%;object-fit:cover;transition:transform var(--motion-image) var(--ease)}
.story-card:hover .story-card__art img{transform:scale(1.025)}
.story-card__art--draw{display:grid;place-items:center;padding:clamp(20px,2.6vw,36px)}
.story-card__art--draw svg{width:100%;height:auto;fill:none;stroke:var(--ink);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-image) var(--ease)}
.story-card:hover .story-card__art--draw svg{transform:translateY(-2px)}
.story-card h3{margin-top:16px;max-width:var(--heading-measure,var(--measure-heading))}
.story-card p{margin-top:8px;font-size:var(--type-body);max-width:var(--measure-body);flex:1}
.story-card .arrowlink{margin-top:14px;align-self:flex-start}
.stories__more{display:flex;justify-content:flex-end;margin-top:clamp(24px,3vw,38px);padding-top:20px;border-top:1px solid var(--ink-12)}

.credit{
  margin-top:clamp(20px,2.4vw,30px);font-size:var(--type-metadata);color:var(--ink-40);max-width:none;
}
.credit a{border-bottom:1px solid var(--ink-12)}
.credit a:hover{color:var(--brick);border-bottom-color:var(--brick)}

/* ---------------------------------------------------------------- contact */
.contact{background:var(--ink);color:var(--on-ink)}
.contact__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,88px);align-items:start;padding-block:var(--sect-compact)}
.contact h2{color:var(--on-ink)}
.contact .lead{color:var(--on-ink-65);margin-top:18px}
.details{margin-top:clamp(24px,2.6vw,34px);display:grid;grid-template-columns:1fr 1fr;gap:2px}
.details > div{padding:16px 0;border-top:1px solid var(--on-ink-line)}
.details dt{
  display:flex;align-items:center;gap:9px;
  font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;color:var(--on-ink-40);
}
.details dt svg{width:15px;height:15px;flex:none;fill:none;stroke:var(--brick);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.details dd{margin:9px 0 0;font-size:var(--type-body);line-height:var(--line-body);color:var(--on-ink)}
.details dd a{border-bottom:1px solid var(--on-ink-line);transition:border-color var(--motion-fast) var(--ease)}
.details dd a:hover{border-bottom-color:var(--brick)}

.contact__formwrap{background:var(--ivory);border:1px solid var(--on-ink-line);border-radius:var(--r);padding:clamp(22px,2.4vw,32px)}
.form__title{font-size:var(--type-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-body);text-transform:uppercase;color:var(--brick);margin-bottom:18px;max-width:none}

/* Homepage contact: a quiet, open composition with the form on the same dark field. */
.contact--home{
  background:
    radial-gradient(ellipse at 0% 0%,rgba(88,133,174,.22),transparent 38%),
    radial-gradient(ellipse at 100% 100%,rgba(173,153,130,.12),transparent 35%),
    var(--ink);
}
.contact--home .contact__in{
  grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:clamp(52px,6vw,96px);
}
.contact--home .contact__info{padding-top:clamp(18px,3.8vw,48px)}
.contact--home .section-title{font-size:var(--heading-size,var(--type-h2-editorial));line-height:var(--heading-line,var(--line-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:initial}
.contact--home .section-title span{display:block}
.contact--home .lead{max-width:var(--measure-lead);margin-top:clamp(25px,3vw,38px);font-size:var(--type-lead);line-height:var(--line-lead);color:rgba(245,242,232,.76)}
.contact--home .details{margin-top:clamp(38px,4vw,60px);gap:0 clamp(24px,3vw,48px)}
.contact--home .details > div{min-width:0;padding:23px 0 25px}
.contact--home .details dt{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:center;color:rgba(245,242,232,.72);font-size:var(--type-caption)}
.contact--home .details dt svg{width:20px;height:20px}
.contact--home .details dd{margin:11px 0 0 34px;font-size:var(--type-body);line-height:var(--line-body);overflow-wrap:anywhere}
.contact--home .details dd a:not(.contact__map-link){border-bottom:0}
.contact--home .details dd a:not(.contact__map-link):hover{text-decoration:underline;text-underline-offset:4px}
.contact--home .contact__map-link{display:flex;width:fit-content;align-items:center;gap:7px;margin-top:8px;color:rgba(245,242,232,.78);font-size:var(--type-ui);line-height:var(--line-ui);border-bottom:1px solid var(--on-ink-line)}
.contact--home .contact__map-link svg{width:14px;height:14px;fill:none;stroke:var(--brick);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact--home .contact__map-link:hover{color:var(--on-ink);border-bottom-color:var(--brick)}
/* Shared dark contact form skin; page variants only adjust composition. */
.contact .contact__formwrap{min-width:0;padding:clamp(27px,3.1vw,45px);border:1px solid rgba(245,242,232,.31);border-radius:var(--r-xl);background:rgba(255,255,255,.025);box-shadow:0 22px 60px rgba(1,14,39,.12)}
.contact .form__title{display:flex;align-items:center;gap:18px;margin-bottom:31px;color:var(--on-ink);font-size:var(--type-caption)}
.contact .form__title::before{content:"";width:32px;height:2px;flex:none;background:var(--brick)}
.contact .field{margin-bottom:21px;gap:9px}
.contact .field2{gap:0 16px}
.contact .field label{color:var(--on-ink);font-size:var(--type-body)}
.contact .field input:not([type="range"]),
.contact .field textarea,
.contact .field select,
.contact .sel__btn{min-height:var(--control-height-lg);border:1px solid var(--on-ink-40);border-radius:var(--r-lg);background:rgba(255,255,255,.025);color:var(--on-ink);font:inherit;font-size:var(--type-body)}
.contact .field textarea{min-height:122px}
.contact .field input::placeholder,.contact .field textarea::placeholder,.contact .sel.is-placeholder .sel__val{color:rgba(245,242,232,.58)}
.contact .field input:hover,.contact .field textarea:hover,.contact .sel__btn:hover{border-color:rgba(245,242,232,.6)}
.contact .field input:focus,.contact .field textarea:focus,.contact .sel.is-open .sel__btn,.contact .sel__btn:focus-visible{outline:none;border-color:var(--on-ink);box-shadow:var(--focus-ring-on-ink)}
.contact .sel__chev{stroke:var(--on-ink)}
.contact .sel__list{border:1px solid var(--on-ink-40);background:var(--ink-raised);box-shadow:0 18px 36px rgba(1,14,39,.32)}
.contact .sel__opt{color:var(--on-ink)}
.contact .sel__opt:hover,.contact .sel__opt:focus-visible{background:rgba(245,242,232,.12)}
.contact .sel__opt.is-on{background:rgba(198,36,30,.34)}
.contact .field.has-err input,.contact .field.has-err textarea,.contact .field.has-err .sel__btn{border-color:var(--error-on-ink)}
.contact .field .err{color:var(--error-on-ink)}
.contact .form .btn--full{min-height:var(--control-height-lg);margin-top:4px;font-size:var(--type-ui)}
.contact .form__ok{background:rgba(245,242,232,.09);color:var(--on-ink)}
.contact .form__ok[data-state="pending"]{color:var(--on-ink-65)}
.contact .form__ok[data-state="error"]{background:rgba(198,36,30,.16);color:var(--error-on-ink)}
@media(min-width:1051px){
  .contact--home .contact__in{gap:clamp(50px,4.5vw,70px)}
  .contact--home .contact__formwrap{padding:clamp(26px,2.2vw,34px)}
  .contact--home .form__title{margin-bottom:20px}
  .contact--home .field{gap:7px;margin-bottom:14px}
  .contact--home .field textarea{min-height:100px}
}
@media(min-width:1051px) and (max-height:850px){
  .contact--home .contact__info{padding-top:28px}
  .contact--home .lead{margin-top:22px}
  .contact--home .details{margin-top:34px}
  .contact--home .details > div{padding:17px 0 18px}
  .contact--home .contact__formwrap{padding:24px}
  .contact--home .form__title{margin-bottom:12px}
  .contact--home .field{gap:5px;margin-bottom:8px}
  .contact--home .field input:not([type="range"]),.contact--home .field select,.contact--home .sel__btn{min-height:44px}
  .contact--home .field textarea{min-height:76px}
  .contact--home .form .btn--full{min-height:48px}
}
@media(max-width:1050px){
  .contact--home .contact__in{grid-template-columns:1fr;gap:clamp(36px,5vw,64px)}
  .contact--home .contact__info{padding-top:0}
  .contact--home .section-title{font-size:var(--heading-size,var(--type-h2-editorial))}
  .contact--home .contact__formwrap{max-width:760px}
}
@media(max-width:600px){
  .contact--home .contact__in{gap:38px}
  .contact--home .section-title{font-size:var(--heading-size,var(--type-h2-editorial))}
  .contact--home .details{grid-template-columns:1fr;margin-top:32px}
  .contact--home .details > div{padding:18px 0}
  .contact--home .contact__formwrap{padding:24px 20px}
  .contact--home .field2{grid-template-columns:1fr;gap:0}
}
@media(max-width:360px){
  .contact--home .section-title{font-size:var(--heading-size,var(--type-h2-editorial))}
  .contact--home .section-title span{display:inline}
}

/* map */
.map{position:relative;margin-top:clamp(16px,1.8vw,22px);border-radius:var(--r-lg);overflow:hidden;background:rgba(255,255,255,.06)}
.map iframe{display:block;width:100%;height:clamp(140px,15vw,178px);border:0;filter:grayscale(.35) contrast(1.05)}
.map__link{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;background:rgba(255,255,255,.07);
  font-size:var(--type-metadata);font-weight:var(--weight-label);color:var(--on-ink);
  transition:background var(--motion-fast) var(--ease);
}
.map__link:hover{background:rgba(255,255,255,.13)}
.map__link svg{width:16px;height:16px;fill:none;stroke:var(--brick);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.map__link:hover svg{transform:translateX(4px)}

/* ---------------------------------------------------------------- fields */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.field label{font-size:var(--type-body);font-weight:var(--weight-label);color:var(--ink)}
.field input:not([type="range"]),.field textarea{
  background:var(--paper);border:1.5px solid var(--ivory-line);border-radius:var(--r);
  padding:11px 14px;font-size:var(--type-body);color:var(--ink);width:100%;
  transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease);
}
.field input:not([type="range"]){min-height:var(--control-height)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-40)}
.field input:disabled,.field textarea:disabled{cursor:not-allowed;opacity:.55;background:var(--ivory)}
.field textarea{resize:vertical;min-height:84px;font-family:inherit}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:var(--focus-ring)}
.field.has-err input,.field.has-err textarea,.field.has-err .sel__btn{border-color:var(--brick)}
.err{font-size:var(--type-caption);color:var(--brick);font-weight:var(--weight-medium)}
.field.has-err .err{min-height:1.2em}
.form__ok{
  margin-top:18px;padding:15px 18px;background:rgba(9,35,77,.05);
  border-left:3px solid var(--brick);border-radius:var(--r);
  font-size:var(--type-body);color:var(--ink);max-width:none;
}
.form__ok[data-state="pending"]{border-left-color:var(--ink-40);color:var(--ink-40)}
.form__ok[data-state="error"]{background:rgba(198,36,30,.07);color:var(--brick)}
/* Honeypot: off-screen for people, reachable for bots. Never display:none. */
.form__trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* custom select — the native control cannot be styled to match the brand */
.sel{position:relative;min-width:0}
.sel__btn{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  background:var(--paper);border:1.5px solid var(--ivory-line);border-radius:var(--r);
  min-height:var(--control-height);padding:11px 14px;font-size:var(--type-body);color:var(--ink);text-align:left;cursor:pointer;
  transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease);
}
.sel__btn:hover{border-color:var(--ink-40)}
.sel.is-open .sel__btn{border-color:var(--ink);box-shadow:var(--focus-ring)}
.sel.is-placeholder .sel__val{color:var(--ink-40)}
.sel.is-disabled .sel__btn{cursor:not-allowed;opacity:.52;background:rgba(9,35,77,.025)}
.sel__chev{width:18px;height:18px;flex:none;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.sel.is-open .sel__chev{transform:rotate(180deg)}

.sel__list{
  position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;
  background:var(--canvas);border:1px solid var(--ivory-line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-pop);padding:6px;max-height:min(280px,var(--sel-space,280px));overflow-y:auto;
  overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ink-12) transparent;
  animation:pop var(--motion-fast) var(--ease);
}
.sel.opens-up .sel__list{top:auto;bottom:calc(100% + 6px)}
.sel__list[hidden]{display:none}
.sel__opt{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  padding:10px 12px;border-radius:3px;font-size:var(--type-body);color:var(--ink);text-align:left;
  transition:background var(--motion-quick) var(--ease);
}
.sel__opt:hover,.sel__opt:focus-visible{background:var(--ivory);outline:none}
.sel__opt.is-on{background:var(--ink);color:var(--on-ink);font-weight:var(--weight-label)}
.sel__opt.is-on::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--brick);flex:none}

.vf-field .sel__btn{
  min-height:43px;padding:9px 12px;background:rgba(255,255,255,.58);
  border:1px solid var(--ink-12);font-size:var(--type-body);
}
.vf-field .sel__btn:hover{background:rgba(255,255,255,.82);border-color:var(--ink-40)}
.vf-field .sel.is-open .sel__btn{background:#fff;border-color:var(--ink);box-shadow:var(--focus-ring)}
.vf-field .sel__list{font-size:var(--type-metadata)}
.vf-field .sel__opt{padding:9px 10px;font-size:var(--type-body);line-height:var(--line-body)}
.vf-field.has-error .sel__btn{border-color:var(--brick)}

/* ---------------------------------------------------------------- footer */
.footer{
  background:radial-gradient(ellipse at 45% 45%,rgba(18,65,112,.26),transparent 65%),var(--ink-2);
  color:var(--on-ink-65);border-top:1px solid rgba(245,242,232,.14);
  padding-block:clamp(56px,5.8vw,84px) 26px;
}
.footer__top{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:clamp(40px,4.7vw,72px);padding-bottom:clamp(38px,4.6vw,60px)}
.footer__brand img{height:clamp(36px,3.5vw,50px);width:auto;max-width:100%}
.footer__brand p{margin-top:24px;font-size:var(--type-body);line-height:var(--line-body);color:rgba(245,242,232,.73);max-width:var(--measure-body)}
.footer__cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.82fr) minmax(0,.78fr) minmax(0,1.25fr);gap:0}
.footer__cols > div{min-width:0;padding-left:clamp(18px,2vw,30px);border-left:1px solid var(--on-ink-line)}
.footer__h{font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--on-ink);margin-bottom:22px;max-width:none}
.footer__h::after{content:"";display:block;width:24px;height:3px;margin-top:13px;background:var(--brick)}
.footer__cols ul{display:flex;flex-direction:column;gap:10px}
.footer__cols li{font-size:var(--type-body);line-height:var(--line-body)}
.footer__cols a{transition:color var(--motion-fast) var(--ease)}
.footer__cols a:hover{color:var(--on-ink)}
/* Social links under the email in "Find us": outlined round icons, brick on hover. */
.footer__cols .footer__social{display:grid;grid-template-columns:repeat(5,minmax(0,34px));gap:6px;margin-top:22px}
.footer__social a{display:grid;place-items:center;width:100%;aspect-ratio:1;border:1px solid var(--on-ink-line);border-radius:50%;color:var(--on-ink-65);transition:color var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),background-color var(--motion-fast) var(--ease)}
.footer__social a:hover,.footer__social a:focus-visible{color:var(--on-ink);border-color:var(--brick);background:var(--brick)}
.footer__social svg{width:min(18px,56%);height:auto;aspect-ratio:1}
.footer__bar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--on-ink-line)}
.langs--foot .lang{color:var(--on-ink-40)}
.langs--foot .lang:hover{color:var(--on-ink)}
.langs--foot .lang.is-active{color:var(--on-ink);background:rgba(245,242,232,.1)}
.footer__legal{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:var(--type-metadata);color:var(--on-ink-65);max-width:none}
.footer__legal > span{padding-right:20px;border-right:1px solid var(--on-ink-line)}
.footer__legal a{transition:color var(--motion-fast) var(--ease)}
.footer__legal a:hover{color:var(--on-ink)}
@media(max-width:1120px){
  .footer__top{grid-template-columns:1fr;gap:38px}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .footer__cols > div:nth-child(odd){padding-left:0;border-left:0}
  .footer__cols > div:nth-child(n+3){padding-top:26px;border-top:1px solid var(--on-ink-line)}
}
@media(max-width:480px){
  .footer__cols{row-gap:0}
  .footer__cols > div{padding:22px 0 0;margin-top:22px;border-left:0;border-top:1px solid var(--on-ink-line)}
  .footer__cols > div:nth-child(odd){padding-left:0}
  .footer__cols > div:nth-child(n+3){padding-top:22px}
  .footer__cols > div:first-child{margin-top:0}
  .footer__legal{gap:9px}
  .footer__legal > span{padding-right:0;border-right:0}
}

/* ---------------------------------------------------------------- subpages */
.pagehead{padding-block:clamp(32px,4vw,56px) clamp(26px,3vw,40px);border-bottom:1px solid var(--ink-08)}
.pagehead--consultation{border-bottom:0}
.pagehead--consultation h1{font-family:var(--heading-family,var(--sans));font-weight:var(--heading-weight,var(--weight-heading))}
.pagehead .lead{margin-top:22px}
.pagehead__in{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.pagehead__ic{
  width:clamp(90px,11vw,150px);height:clamp(90px,11vw,150px);flex:none;
  fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.9;
}
.pagehead--consultation .pagehead__in{
  grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:clamp(34px,6vw,88px);
}
.pagehead__illustration{
  align-self:stretch;display:grid;place-items:center;min-height:260px;margin:0;
  padding:clamp(18px,3vw,40px);
}
.pagehead__illustration img{
  display:block;width:min(100%,360px);height:clamp(220px,22vw,275px);object-fit:contain;
  filter:drop-shadow(0 14px 24px rgba(9,35,77,.05));
}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3vw,48px)}
.step{background:transparent;border:0;border-top:1px solid var(--ink-12);border-radius:0;padding:clamp(20px,2.2vw,28px) 0 0}
.step__n{font-size:var(--type-eyebrow);font-weight:var(--weight-label);letter-spacing:var(--tracking-eyebrow);color:var(--brick);margin-bottom:12px;max-width:none}
.step h3{margin-bottom:8px}
.step p{font-size:var(--type-body)}

/* Service subpages: one visual family, three distinct editorial rhythms. */
.service-page{background:var(--canvas)}
.service-hero{
  overflow:hidden;background:var(--canvas);border-bottom:0;
}
.service-hero__in{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,.72fr);
  align-items:center;gap:clamp(34px,6vw,88px);min-height:clamp(360px,38vw,470px);
}
.service-hero__copy{position:relative;z-index:1;padding-block:clamp(36px,4.5vw,58px)}
.service-hero__label{max-width:none}
.service-hero h1{
  max-width:var(--heading-measure,var(--measure-heading));font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-display));font-weight:var(--heading-weight,var(--weight-heading));
  font-variation-settings:'opsz' 32;line-height:var(--heading-line,var(--line-display));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:balance;
}
.service-page--renovation .service-hero h1{max-width:var(--heading-measure,var(--measure-heading));font-size:var(--heading-size,var(--type-display))}
.service-hero__copy>p:not(.service-hero__label){margin-top:18px;font-size:var(--type-lead);line-height:var(--line-lead);max-width:var(--measure-body)}
.service-hero .btnrow{margin-top:26px}
.service-hero__visual{
  position:relative;align-self:stretch;display:grid;place-items:center;min-height:360px;
  margin:18px 0;
}
.service-hero__visual img{
  display:block;width:min(100%,430px);height:clamp(290px,34vw,430px);
  object-fit:contain;filter:drop-shadow(0 14px 24px rgba(9,35,77,.05));
}
.service-page--rent .service-hero__visual img{width:min(76%,340px);transform:rotate(-2deg)}
.service-page--renovation .service-hero__visual img{width:min(80%,365px)}

.service-process{padding-block:clamp(42px,5vw,66px)}
.service-section-head{max-width:700px;margin-bottom:var(--space-head-content)}
.service-section-head h2,.service-editorial h2{
  font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));font-weight:var(--heading-weight,var(--weight-heading));
  font-variation-settings:'opsz' 32;line-height:var(--heading-line,var(--line-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));
}

.service-process--sell{background:var(--ivory)}
.sell-timeline{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-block:1px solid var(--ink-12);
}
.sell-timeline article{min-height:205px;padding:22px 18px;border-left:1px solid var(--ink-12)}
.sell-timeline article:first-child{border-left:0}
.sell-timeline article>span,.renovation-stages article>span,.rental-phases__number{
  display:block;margin-bottom:24px;color:var(--brick);font-size:var(--type-metadata);font-weight:var(--weight-bold);
  line-height:var(--line-metadata);letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.sell-timeline h3{font-size:var(--heading-size,var(--type-h3));margin-bottom:10px}
.sell-timeline p{font-size:var(--type-body);line-height:var(--line-body)}
.sell-timeline__focus{background:var(--ink);color:var(--on-ink)}
.sell-timeline__focus h3{color:var(--on-ink)}
.sell-timeline__focus p{color:var(--on-ink-65)}

.service-process--rent{background:var(--ivory)}
.rental-process{display:grid;grid-template-columns:minmax(240px,.58fr) minmax(0,1.42fr);gap:clamp(36px,5vw,72px)}
.rental-process .service-section-head{margin-bottom:0}
.rental-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink-12)}
.rental-phases article{padding:24px 20px 4px;border-left:1px solid var(--ink-12)}
.rental-phases article:first-child{border-left:0}
.rental-phases__focus{border-top:3px solid var(--brick);background:rgba(255,255,255,.46);margin-top:-3px}
.rental-phases h3{font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));font-weight:var(--heading-weight,var(--weight-heading));margin-bottom:16px}
.rental-phases li+li{margin-top:15px;padding-top:15px;border-top:1px solid var(--ink-08)}
.rental-phases li strong,.rental-phases li span{display:block}
.rental-phases li strong{font-size:var(--type-metadata);line-height:var(--line-metadata)}
.rental-phases li span{margin-top:4px;color:var(--ink-55);font-size:var(--type-metadata);line-height:var(--line-metadata)}

.service-process--renovation{background:var(--ivory-deep)}
.renovation-process{display:grid;grid-template-columns:minmax(240px,.58fr) minmax(0,1.42fr);gap:clamp(36px,5vw,72px)}
.renovation-process .service-section-head{margin-bottom:0}
.renovation-stages{display:grid;grid-template-columns:.9fr 1.18fr .9fr;gap:14px;align-items:stretch}
.renovation-stages article{padding:24px 20px;border-top:1px solid var(--ink-12);background:rgba(250,248,241,.42)}
.renovation-stages h3{font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));font-weight:var(--heading-weight,var(--weight-heading));margin-bottom:15px}
.renovation-stages li{position:relative;padding-left:13px;color:var(--ink-70);font-size:var(--type-metadata);line-height:var(--line-metadata)}
.renovation-stages li+li{margin-top:8px}
.renovation-stages li::before{content:"";position:absolute;left:0;top:.7em;width:5px;height:1px;background:var(--brick)}
.renovation-stages__focus{background:var(--ink)!important;color:var(--on-ink);border-top-color:var(--brick)!important}
.renovation-stages__focus h3{color:var(--on-ink)}
.renovation-stages__focus li{color:var(--on-ink-65)}

.service-editorial{padding-block:var(--sect);background:var(--canvas)}
.service-editorial__grid,.rent-factors,.renovation-advice{
  display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:clamp(44px,7vw,100px);align-items:start;
}
.service-editorial header>p:last-child{margin-top:var(--space-heading-body);font-size:var(--type-lead)}
.service-questions div{display:grid;grid-template-columns:minmax(190px,.58fr) minmax(0,1fr);gap:30px;padding:20px 0;border-top:1px solid var(--ink-12)}
.service-questions div:last-child{border-bottom:1px solid var(--ink-12)}
.service-questions dt{font-family:var(--sans);font-size:var(--type-body-lg);font-weight:var(--weight-label);line-height:var(--line-body-lg)}
.service-questions dd{color:var(--ink-70);font-size:var(--type-metadata);line-height:var(--line-metadata)}
.rent-factors ol{counter-reset:factor;border-top:1px solid var(--ink-12)}
.rent-factors li{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--ink-12)}
.rent-factors li span{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(198,36,30,.35);border-radius:50%;color:var(--brick);font-size:var(--type-caption)}
.rent-factors li strong{font-size:var(--type-body);line-height:var(--line-body)}
.renovation-advice__columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;border-top:1px solid var(--ink-12)}
.renovation-advice__columns>div{padding:24px 0}
.renovation-advice__columns>div+div{padding-left:36px;border-left:1px solid var(--ink-12)}
.renovation-advice__columns h3{font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));font-weight:var(--heading-weight,var(--weight-heading));margin-bottom:12px}
.renovation-advice__columns p{font-size:var(--type-body);line-height:var(--line-body)}

.teamstory{padding-block:var(--sect);background:var(--canvas)}
.teamstory__top{
  display:grid;grid-template-columns:minmax(340px,.74fr) minmax(600px,1.36fr);
  column-gap:clamp(42px,4.5vw,72px);row-gap:12px;align-items:start;
}
.teamstory__intro{grid-row:1/3;align-self:center}
.teamstory__kicker{
  max-width:none;
}
.teamstory__title{
  margin-top:0;
}
.teamstory__title span{white-space:nowrap}
.teamstory__copy{display:grid;gap:14px;margin-top:22px}
.teamstory__copy p{max-width:var(--measure-body);color:var(--ink-70);font-size:var(--type-body);line-height:var(--line-body)}
.teamstory__photo{
  position:relative;grid-column:2;justify-self:end;width:90%;aspect-ratio:1.78/1;
  overflow:hidden;background:var(--ivory-deep);
}
.teamstory__photo > img{
  width:100%;height:100%;object-fit:cover;object-position:center 24%;
}
.teamstory__caption{
  grid-column:2;display:flex;align-items:flex-start;justify-content:space-between;gap:28px;
  justify-self:end;width:90%;padding-top:12px;border-top:1px solid var(--ink-12);
}
.teamstory__caption::before{display:none}
.teamstory__caption h2,.teamstory__caption h3{
  color:var(--ink);font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));
  font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));
}
.teamstory__person:last-child{text-align:right}
.teamstory__caption p{
  max-width:none;margin-top:2px;color:var(--brick);font-size:var(--type-caption);font-weight:var(--weight-label);
  line-height:var(--line-caption);letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.teamroster{
  margin-top:clamp(20px,2.2vw,30px);
}
.teamroster__head{
  display:flex;align-items:baseline;justify-content:flex-end;gap:24px;margin-bottom:14px;
}
.teamroster__head h2,.teamroster__head h3{
  color:var(--ink);font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h2-editorial));
  font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-h2-editorial));letter-spacing:var(--heading-tracking,var(--tracking-editorial));
}
.teamroster__link{margin:0;font-size:var(--type-ui);line-height:var(--line-ui);}
.teamroster__mobile-link{display:none}
.teamroster__grid{display:grid;grid-template-columns:repeat(6,minmax(0,154px));justify-content:space-between;gap:clamp(10px,1.15vw,17px)}
.team-person__photo{aspect-ratio:4/4.35;overflow:hidden;background:var(--ivory-deep)}
.team-person__photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.team-person--megan .team-person__photo img{object-position:center 18%}
.team-person--hugo .team-person__photo img{object-position:center 25%}
.team-person--jorge .team-person__photo img{object-position:center 25%}
.team-person--filipe .team-person__photo img{object-position:center 22%}
.team-person__photo img[src*="team-rachelle"]{object-position:center top}
.team-person--maui .team-person__photo img{object-position:38% 34%}
.team-person h3{
  margin-top:8px;color:var(--ink);font-family:var(--heading-family,var(--sans));font-size:var(--heading-size,var(--type-h3));
  font-weight:var(--heading-weight,var(--weight-heading));line-height:var(--heading-line,var(--line-h3));letter-spacing:var(--heading-tracking,var(--tracking-heading));
}
.team-person p{margin-top:2px;color:var(--ink-55);font-size:var(--type-metadata);line-height:var(--line-metadata)}

/* ---------------------------------------------------------------- about page */
.team-page__hero{padding-block:clamp(50px,6vw,88px);background:var(--canvas);border-bottom:1px solid var(--ink-12)}
.team-page__hero-in{
  display:grid;grid-template-columns:minmax(280px,.72fr) minmax(460px,1.28fr);
  gap:clamp(40px,6vw,96px);align-items:center;
}
.team-page__hero h1{max-width:var(--heading-measure,var(--measure-heading))}
.team-page__intro{margin-top:clamp(24px,3vw,34px);padding-top:clamp(20px,2.4vw,28px);border-top:1px solid var(--ink-12)}
.team-page__intro p{font-size:var(--type-lead);line-height:var(--line-lead);max-width:var(--measure-lead)}
.team-page__intro p + p{margin-top:16px}
.team-page__family-photo{margin:0;min-width:0}
.team-page__family-photo img{
  display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center 28%;
  background:var(--ivory-deep);
}
.team-page__family-photo figcaption{
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  padding-top:15px;border-top:1px solid var(--ink-12);
}
.team-page__family-photo strong{
  color:var(--ink);font-family:var(--sans);font-size:var(--type-metadata);
  font-weight:var(--weight-label);line-height:var(--line-metadata);
}
.team-page__family-photo span{
  color:var(--brick);font-size:var(--type-caption);font-weight:var(--weight-bold);line-height:var(--line-caption);
  letter-spacing:var(--tracking-body);text-align:right;text-transform:uppercase;
}

/* Office visit section on the About subpage. */
.about-office{padding-block:var(--sect);background:var(--canvas)}
.about-office__in{display:grid;grid-template-columns:clamp(240px,26vw,320px) minmax(0,1fr);gap:28px clamp(32px,5vw,72px);align-items:center}
.about-office__photo{grid-row:span 2;overflow:hidden;border-radius:var(--r);background:var(--ivory-deep)}
.about-office__photo img{display:block;width:100%;height:auto}
.about-office__info{min-width:0;max-width:650px;align-self:end}
.about-office h2{margin-top:16px;color:var(--ink);font:var(--heading-weight,var(--weight-heading)) var(--heading-size,var(--type-h2-editorial))/var(--heading-line,var(--line-h2-editorial)) var(--heading-family,var(--sans));letter-spacing:var(--heading-tracking,var(--tracking-editorial));text-wrap:balance}
.about-office__copy{margin-top:20px;color:var(--ink-70);font-size:var(--type-lead);line-height:var(--line-lead);max-width:var(--measure-lead)}
.about-office address{margin-top:24px;color:var(--ink);font-size:var(--type-body);font-style:normal;line-height:var(--line-body)}
.about-office .arrowlink{margin-top:24px;font-size:var(--type-ui)}
.about-office__secondary{--office-secondary-height:210px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:16px;align-self:start;min-width:0}
.about-office__sign{height:var(--office-secondary-height);overflow:hidden;border-radius:var(--r);background:var(--ivory-deep)}
.about-office__sign img{display:block;width:100%;height:100%;object-fit:cover}
.about-office__map{height:var(--office-secondary-height);min-width:0;overflow:hidden;border:1px solid var(--ink-12);border-radius:var(--r);background:var(--ivory-deep)}
.about-office__map iframe{display:block;width:100%;height:100%;border:0}
@media(min-width:651px) and (max-width:1000px){
  .about-office__photo{grid-row:auto}
  .about-office__secondary{grid-column:1/-1}
}
@media(max-width:650px){
  .about-office__in{grid-template-columns:1fr;gap:28px}
  .about-office__photo{grid-row:auto;width:min(100%,280px);justify-self:center}
  .about-office__copy,.about-office address{font-size:var(--type-body-lg)}
  .about-office__secondary{--office-secondary-height:240px;grid-template-columns:1fr;gap:20px}
}

.agency-team{padding-block:var(--sect);background:var(--ivory)}
.agency-team__head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:clamp(36px,6vw,96px);
  align-items:end;margin-bottom:clamp(32px,4vw,52px);
}
.agency-team__head > p{font-size:var(--type-body);max-width:var(--measure-body);justify-self:end}
.agency-team__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(32px,4vw,52px) clamp(14px,2.2vw,30px)}
.agency-person{min-width:0;outline-offset:7px}
.agency-person figure{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--ivory-deep)}
.agency-person figure img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center 22%;
  transition:transform var(--motion-image) var(--ease);
}
.agency-person:hover figure img,.agency-person:focus figure img{transform:scale(1.025)}
.agency-person--claude figure img,.agency-person--tom figure img{object-position:center 15%}
.agency-person--maui figure img{object-position:38% 34%}
.agency-person--megan figure img{object-position:center 18%}
.agency-person--hugo figure img,.agency-person--jorge figure img{object-position:center 25%}
.agency-person--de-jong figure img{object-position:center 18%}
.agency-person--rachelle figure img{object-position:center top}
.agency-person__fact{
  position:absolute;z-index:2;inset:auto 0 0;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:46%;padding:20px;background:rgba(9,35,77,.96);border-top:3px solid var(--brick);
  color:var(--on-ink);transform:translateY(calc(100% - 3px));
  transition:transform var(--motion-ui) var(--ease);
}
.agency-person:hover .agency-person__fact,.agency-person:focus .agency-person__fact,.agency-person:focus-within .agency-person__fact{transform:translateY(0)}
.agency-person__fact span{
  color:var(--on-ink-65);font-size:var(--type-caption);font-weight:var(--weight-bold);line-height:var(--line-caption);letter-spacing:var(--tracking-body);text-transform:uppercase;
}
.agency-person__fact p{margin-top:8px;color:var(--on-ink);font-size:var(--type-body);line-height:var(--line-body);max-width:var(--measure-body)}
/* A personal quote on the back of the card: the photo flips on hover, keyboard focus or a tap. */
.agency-person--quote{cursor:default}
.agency-person--quote figure{overflow:visible;perspective:1400px;background:none;container-type:inline-size}
.agency-person__flip{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s var(--ease)}
.agency-person--quote:hover .agency-person__flip,.agency-person--quote:focus-within .agency-person__flip{transform:rotateY(180deg)}
.agency-person__flip img,.agency-person__quote{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.agency-person--quote:hover figure img,.agency-person--quote:focus figure img{transform:none}
.agency-person__quote{
  display:flex;flex-direction:column;justify-content:center;padding:9cqi 8cqi;transform:rotateY(180deg);overflow:hidden;
  background:var(--ink);border-bottom:3px solid var(--brick);color:var(--on-ink);
}
.agency-person__quote::before{content:"“";display:block;color:var(--brick-on-ink);font-family:var(--heading-family,var(--sans));font-size:var(--type-quote-mark);line-height:var(--line-quote-mark);margin-bottom:clamp(8px,5cqi,14px)}
/* Sized to the card, so the longest quote fits a phone's two-column grid too. */
.agency-person__quote p{margin:0;color:var(--on-ink);font-family:var(--heading-family,var(--sans));font-size:var(--type-quote);line-height:var(--line-quote);font-weight:var(--weight-heading);text-wrap:pretty;max-width:none}
.agency-person__identity{min-height:70px;padding-top:14px}
.agency-person h3{font-size:var(--heading-size,var(--type-h3))}
.agency-person__identity p{margin-top:4px;color:var(--ink-55);font-size:var(--type-metadata);line-height:var(--line-metadata);max-width:var(--measure-body)}
.about-stories{padding-block:var(--sect);background:var(--canvas);border-top:1px solid var(--ink-08)}
.about-stories__head{max-width:980px;margin-bottom:clamp(36px,5vw,60px)}
.about-stories__intro{margin-top:16px;font-size:var(--type-lead);line-height:var(--line-lead);max-width:var(--measure-lead)}
.about-stories__grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:clamp(30px,4vw,58px);align-items:start}
.about-story{min-width:0}
.about-story figure{overflow:hidden;background:var(--ivory-deep)}
.about-story figure img{width:100%;height:100%;object-fit:cover;transition:transform var(--motion-image) var(--ease)}
.about-story:hover figure img{transform:scale(1.025)}
.about-story--feature figure{aspect-ratio:4/3}
.about-story--feature figure img{object-position:center 28%}
.about-story--feature .about-story__body{padding-top:22px;max-width:650px}
.about-story__type{
  color:var(--brick);font-size:var(--type-eyebrow);font-weight:var(--weight-label);line-height:var(--line-eyebrow);
  letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;
}
.about-story h3{margin-top:8px;font-size:var(--heading-size,var(--type-h3));max-width:var(--heading-measure,var(--measure-heading))}
.about-story__body > p:not(.about-story__type){margin-top:10px;font-size:var(--type-body);line-height:var(--line-body);max-width:var(--measure-body)}
.about-story .arrowlink{margin-top:17px}
.about-stories__secondary{display:flex;flex-direction:column}
.about-story--compact{
  display:grid;grid-template-columns:minmax(150px,.78fr) minmax(0,1.22fr);
  gap:clamp(18px,2.4vw,28px);padding-block:clamp(24px,3vw,34px);border-top:1px solid var(--ink-12);
}
.about-story--compact:first-child{padding-top:0;border-top:0}
.about-story--compact figure{aspect-ratio:1/1}
.about-story--compact h3{font-size:var(--heading-size,var(--type-h3))}
.about-story--compact .about-story__body > p:not(.about-story__type){font-size:var(--type-body);line-height:var(--line-body)}
.about-story--compact .arrowlink{font-size:var(--type-ui);margin-top:13px}


.otherservices{padding-block:var(--sect-compact);border-top:1px solid var(--ink-08)}
.otherlist{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.otherlist a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:22px 0;border-top:1px solid var(--ink-08);
  font-size:var(--type-body);font-weight:var(--weight-label);letter-spacing:var(--tracking-body);color:var(--ink);
  transition:color var(--motion-fast) var(--ease);
}
.otherlist a:hover{color:var(--brick)}
.otherlist svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--brick);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--motion-fast) var(--ease)}
.otherlist a:hover svg{transform:translateX(5px)}

/* ---------------------------------------------------------------- reveal */
/* Individual translate preserves card rotations and hover transforms. Content
   stays visible until JavaScript has registered it with the scroll observer. */
.js .reveal{transition:opacity var(--motion-reveal) var(--ease),translate var(--motion-reveal) var(--ease);transition-delay:var(--reveal-delay,0ms)}
.js .reveal.is-pending{opacity:0;translate:0 var(--motion-rise)}
.js .reveal.is-in{opacity:1;translate:0 0}
.js .reveal:focus-within{opacity:1;translate:0 0;transition:none}
@media (max-width:760px){.reveal{--motion-rise:12px;--motion-reveal:500ms}}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1180px){
  .crm{grid-template-columns:1fr 280px}
  .filters{grid-template-columns:180px repeat(3,minmax(140px,1fr));align-items:end}
  .filters__more,.filters>.textaction{grid-row:2}
  .filters__more{grid-column:3}
  .filters>.textaction{grid-column:4;justify-self:end}
  .prop{grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr);gap:36px}
  .teamstory__top{grid-template-columns:minmax(280px,.72fr) minmax(440px,1.28fr);column-gap:clamp(32px,4vw,54px)}
  .teamroster__grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .header__end .langs--row{display:none}
  .langpick{display:block}
}
@media (max-width:1080px){
  .reviews{--rv-peek:clamp(36px,5vw,48px)}
  .gcard{flex-basis:calc((100% - (2 * var(--rv-peek)) - (3 * var(--rv-gap))) / 2)}
  .preview{grid-template-columns:repeat(2,1fr)}
  .calc__grid{grid-template-columns:repeat(2,1fr)}
  .invite{max-width:560px}
  .hero__in{grid-template-columns:minmax(0,1fr) minmax(300px,.65fr);gap:36px}
  .valuation__in,.reviews__in,.about__in,.contact__in{grid-template-columns:1fr}
  .valuation__copy{padding-right:0;padding-bottom:clamp(48px,7vw,72px)}
  .valuation-map{
    padding:clamp(48px,7vw,72px) 0 0;border-left:0;border-top:1px solid var(--on-ink-line);
  }
  .calc{max-width:560px}
  .calculator-layout{grid-template-columns:1fr}
  .canton-map--full{
    position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,340px);
    gap:16px 36px;align-items:center;
  }
  .canton-map--full .canton-map__head{grid-column:1}
  .canton-map--full .canton-map__svg{grid-column:2;grid-row:1/4;margin:0}
  .canton-map--full .canton-map__detail,.canton-map--full .canton-map__total{grid-column:1}
  .about__portrait{width:min(100%,760px)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .otherlist{grid-template-columns:1fr}
  .service-hero__in{grid-template-columns:minmax(0,1fr) minmax(300px,.65fr);gap:36px}
  .sell-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sell-timeline article:nth-child(4){border-left:0}
  .sell-timeline article:nth-child(-n+3){border-bottom:1px solid var(--ink-12)}
  .rental-process,.renovation-process{grid-template-columns:1fr}
  .rental-process .service-section-head,.renovation-process .service-section-head{max-width:640px}
}
@media (max-width:1000px){
  .nav{display:none}
  /* keep the language control reachable in the bar on small screens */
  .header__end{display:flex;gap:6px;margin-left:auto}
  .header__end .langs--row,.header__end .btn{display:none}
  .langpick{display:block}
  .header.is-stuck .langpick{display:none}
  .burger{display:block;margin-left:0}
  .crm{grid-template-columns:1fr}
  .filters{position:static;order:-1}
  .filters .seg{margin-bottom:16px}
}
@media (max-width:380px){
  .header__in{gap:10px}
  .logo img{width:clamp(132px,calc(100vw - 174px),190px);height:auto}
}
@media (max-width:900px){
  .properties-pagehead__in{grid-template-columns:1fr;gap:30px}
  .properties-pagehead__note{padding:24px 0 0;border-left:0;border-top:1px solid var(--ink-12)}
  .properties-pagehead__note .lead{max-width:var(--measure-lead)}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters__lead{grid-column:1/-1}
  .filters__more,.filters>.textaction{grid-row:auto;grid-column:auto}
  .filters>.textaction{justify-self:end}
  .prop,.prop:nth-child(even){grid-template-columns:1fr;gap:24px}
  .prop:nth-child(even) .prop__art,.prop:nth-child(even) .prop__body{grid-column:auto;grid-row:auto}
  .prop__art,.prop--feature .prop__art{aspect-ratio:16/9}
  .prop__body{max-width:720px}
  .team-page__hero-in{grid-template-columns:1fr;gap:30px}
  .team-page__family-photo{max-width:760px}
  .agency-team__head{grid-template-columns:1fr;gap:18px}
  .agency-team__head > p{justify-self:start}
  .agency-team__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .about-stories__grid{grid-template-columns:1fr}
  .about-stories__secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .about-story--compact,.about-story--compact:first-child{grid-template-columns:1fr;padding-top:24px;border-top:1px solid var(--ink-12)}
  .about-story--compact figure{aspect-ratio:4/3}
  .services__grid{grid-template-columns:1fr}
  .services__grid .service-item{
    grid-template-columns:150px minmax(0,1fr);gap:28px;min-height:0;
    padding:24px 0;border-left:0;border-bottom:1px solid var(--ink-12);
  }
  .services__grid .service-item:last-child{border-bottom:0}
  .services__grid .service-item__visual,
  .services__grid .service-item--valuation .service-item__visual,
  .services__grid .service-item--secondary .service-item__visual{width:140px;justify-self:start}
  .reviews__head{align-items:flex-start}
  .valuation-tool{grid-template-columns:1fr}
  .valuation-result{min-height:430px;border-radius:0 0 calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px)}
  .grid3{grid-template-columns:1fr 1fr}
  .footer__top{grid-template-columns:1fr;gap:44px}
  .footer__cols{grid-template-columns:1fr 1fr}
  .teamstory__top{grid-template-columns:1fr}
  .teamstory__intro{grid-row:auto;max-width:620px}
  .teamstory__copy{grid-template-columns:repeat(2,minmax(0,1fr));max-width:660px}
  .teamstory__photo{grid-column:auto;grid-row:auto;width:100%;aspect-ratio:1.55/1}
  .teamstory__caption{grid-column:auto;width:100%}
  .teamroster__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}
  .pagehead__in{grid-template-columns:1fr}
  .pagehead__ic{display:none}
  .pagehead--consultation .pagehead__in{grid-template-columns:minmax(0,1fr) 280px;gap:24px}
  .pagehead__illustration{min-height:260px;padding:20px}
  .pagehead__illustration img{height:280px}
  .service-hero__in{grid-template-columns:minmax(0,1fr) 280px;gap:24px}
  .hero__in{grid-template-columns:minmax(0,1fr) 280px;gap:24px}
  .service-hero__visual{min-height:320px}
  .service-hero__visual img{height:320px}
  .service-editorial__grid,.rent-factors,.renovation-advice{grid-template-columns:1fr;gap:30px}
}
@media (max-width:720px){
  html{scroll-padding-top:calc(var(--site-header-height) + 12px)}
  .proof__in{grid-template-columns:1fr;gap:0}
  .stat{padding-inline:0;padding-block:22px}
  .stat + .stat::before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px;background:rgba(255,255,255,.28)}
  .stat:first-child{padding-top:0}
  .stat:last-child{padding-bottom:0}
  .stat:nth-child(2){padding-inline:0}
  .stat:nth-child(2) .stat__num{white-space:normal}
  .grid3,.crm__grid,.steps,.calc__grid{grid-template-columns:1fr}
  .properties--full{padding-top:22px}
  .filters{grid-template-columns:1fr;gap:16px;padding-block:18px}
  .filters__lead,.filters__more,.filters>.textaction{grid-column:auto}
  .filters__ranges{position:static;width:100%;grid-template-columns:1fr;margin-top:12px;padding:18px;box-shadow:none}
  .filters>.textaction{justify-self:start;min-height:34px}
  .prop{padding-block:30px}
  .prop__art,.prop--feature .prop__art{aspect-ratio:4/3}
  .prop__meta{align-items:flex-start;flex-direction:column;gap:5px;margin-bottom:12px}
  .prop__meta p:last-child{text-align:left}
  .prop h3{font-size:var(--heading-size,var(--type-h3))}
  .prop__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prop__foot{align-items:flex-start;flex-direction:column}
  .calc-field--wide{grid-column:auto}
  .calc-checkgrid{grid-template-columns:1fr}
  .services .section-title br{display:none}
  .services__grid .service-item{grid-template-columns:112px minmax(0,1fr);gap:20px;padding-block:21px}
  .services__grid .service-item__visual,
  .services__grid .service-item--valuation .service-item__visual,
  .services__grid .service-item--secondary .service-item__visual{width:106px}
  .service-item--primary h3{font-size:var(--heading-size,var(--type-h3))}
  .service-item--primary .service-item__body > p{font-size:var(--type-body)}
  .service-item--secondary h3{font-size:var(--heading-size,var(--type-h3))}
  .valuation{padding-block:clamp(58px,11vw,84px)}
  .valuation__copy .section-title{font-size:var(--heading-size,var(--type-h2-editorial))}
  .valuation__benefits{margin-top:42px}
  .valuation__copy .note{padding-top:40px}
  .valuation-map{grid-template-columns:1fr;gap:38px}
  .valuation-map__intro h3{max-width:var(--heading-measure,var(--measure-heading))}
  .valuation-map__proof{margin-top:34px}
  .canton-map--valuation .canton-map__svg{width:min(100%,480px);max-height:520px}
  .canton-map--valuation .canton-map__detail{
    display:block;min-height:0;padding:13px 0;margin-bottom:18px;
    border-color:var(--on-ink-line);color:var(--on-ink);
  }
  .canton-map--valuation .canton-map__detail strong{color:var(--on-ink);font-family:var(--sans);font-size:var(--type-h3)}
  .canton-map--valuation .canton-map__detail span{color:var(--on-ink-65);font-size:var(--type-caption)}
  .invite--map{grid-template-columns:1fr}
  .canton-map--compact{padding:20px 0 0;border-left:0;border-top:1px solid var(--ink-12)}
  .canton-map--compact .canton-map__svg{width:min(72%,240px)}
  .canton-map--full{display:block}
  .canton-map--full .canton-map__svg{margin:20px auto 16px;max-height:390px}
  .preview{grid-template-columns:1fr 1fr}
  .details,.field2{grid-template-columns:1fr}
  .seek{flex-direction:column;align-items:flex-start}
  .seek .btn{width:100%}
  .footer__bar{flex-direction:column;align-items:flex-start}
  .crm__bar{flex-direction:column;align-items:stretch}
  .field--inline{min-width:0}
  .viewer{cursor:pointer}
  .teamstory__copy{grid-template-columns:1fr}
  .teamstory__caption{display:flex}
  .teamstory__person:last-child{text-align:right}
  .agency-team__grid{gap:34px 14px}
  .agency-person__fact{padding:17px}
  .service-hero__in{grid-template-columns:1fr;gap:0}
  .hero__in{grid-template-columns:1fr;gap:32px}
  .hero__figure{max-width:560px}
  .service-hero__copy{padding-bottom:28px}
  .service-hero h1,.service-page--renovation .service-hero h1{font-size:var(--heading-size,var(--type-display))}
  .service-hero__visual{min-height:250px;margin:0 0 20px}
  .service-hero__visual img{height:260px;width:min(82%,340px)}
  .service-page--rent .service-hero__visual img,.service-page--renovation .service-hero__visual img{width:min(70%,290px)}
  .pagehead--consultation .pagehead__in{grid-template-columns:1fr;gap:0}
  .pagehead__illustration{min-height:230px;margin-top:20px;padding:16px 0 0}
  .pagehead__illustration img{width:min(78%,300px);height:260px}
  .sell-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sell-timeline article:nth-child(odd){border-left:0}
  .sell-timeline article:nth-child(even){border-left:1px solid var(--ink-12)}
  .sell-timeline article{min-height:180px;border-bottom:1px solid var(--ink-12)}
  .sell-timeline article:nth-last-child(-n+2){border-bottom:0}
  .rental-phases,.renovation-stages{grid-template-columns:1fr}
  .rental-phases article,.rental-phases article:first-child{padding:22px 0;border-left:0;border-bottom:1px solid var(--ink-12)}
  .rental-phases__focus{padding-inline:18px!important}
  .renovation-stages{gap:10px}
  .service-questions div{grid-template-columns:1fr;gap:8px}
  .renovation-advice__columns{grid-template-columns:1fr;gap:0}
  .renovation-advice__columns>div+div{padding-left:0;border-left:0;border-top:1px solid var(--ink-12)}
}
@media (max-width:600px){
  .reviews{--rv-peek:30px}
  .gcard{flex-basis:calc(100% - (2 * var(--rv-peek)) - (2 * var(--rv-gap)))}
}
@media (max-width:480px){
  .services__grid .service-item{grid-template-columns:88px minmax(0,1fr);gap:15px;padding-block:18px}
  .services__grid .service-item__visual,
  .services__grid .service-item--valuation .service-item__visual,
  .services__grid .service-item--secondary .service-item__visual{width:84px;justify-self:start}
  .service-item__body>p{font-size:var(--type-body)}
  .service-item .arrowlink{font-size:var(--type-ui)}
  .team-page__hero{padding-block:48px}
  .team-page__family-photo figcaption{align-items:flex-start;flex-direction:column;gap:4px}
  .team-page__family-photo span{text-align:left}
  .agency-team__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
  .agency-person__identity{min-height:0}
  .about-stories__secondary{grid-template-columns:1fr;gap:0}
  .about-story--compact,.about-story--compact:first-child{padding-block:28px}
  .reviews__head{flex-direction:column;align-items:flex-start;gap:18px}
  .gscore{padding-left:0;border-left:0}
  .gscore__meta{white-space:normal}
  .gcard{padding:18px}
  .valuation-tool__form,.valuation-result{padding:22px 18px}
  .valuation-tool__formhead{align-items:flex-start;flex-direction:column;gap:4px}
  .calc-options{align-items:flex-start;flex-direction:column;gap:10px}
  .calc-options legend{float:none;margin:0 0 2px}
  .valuation-result{min-height:390px}
  .footer__cols,.preview{grid-template-columns:1fr}
  .teamstory__top{gap:22px}
  .section-title{font-size:var(--heading-size,var(--type-h2-editorial))}
  .teamstory__photo{aspect-ratio:1.05/1}
  .teamstory__caption{display:flex;justify-content:space-between;gap:18px}
  .teamstory__caption p{margin-top:0}
  .teamroster__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
  .btnrow .btn{width:100%}
  .about__portrait figcaption{align-items:flex-start;flex-direction:column;gap:12px}
  .about__portrait figcaption p{text-align:left}
}

/* Compact homepage contact, team rail and footer for phones. */
@media (max-width:720px){
  .teamroster__head{display:none}
  .teamroster__grid{
    display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 10px;margin-inline:-2px;
    scroll-snap-type:x mandatory;scroll-snap-stop:always;scroll-padding-inline:2px;scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:none;
  }
  .teamroster__grid::-webkit-scrollbar{display:none}
  .teamroster__grid .team-person{flex:0 0 min(38%,220px);scroll-snap-align:start}
  .teamroster__grid .team-person__photo{aspect-ratio:1/1.08}
  .teamroster__grid .team-person h3,.teamroster__grid .team-person p{display:none}
  .teamroster__mobile-link{
    display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:12px;padding:13px 14px;
    border:1px solid var(--ink-12);border-radius:3px;font-size:var(--type-body);
  }

  .footer{padding-block:30px 18px}
  .footer__top{grid-template-columns:1fr;gap:18px;padding-bottom:18px}
  .footer__brand img{height:30px}
  .footer__brand p{display:none}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;row-gap:0}
  .footer__cols>div{min-width:0;margin:0;padding:13px 0 0;border:0;border-top:1px solid var(--on-ink-line)}
  .footer__cols>div:nth-child(odd){padding-left:0;border-left:0}
  .footer__cols>div:nth-child(-n+2){padding-top:0;border-top:0}
  .footer__cols>div:nth-child(n+3){padding-top:13px}
  .footer__cols>div:first-child ul li:nth-child(n+2){display:none}
  .footer__h{margin-bottom:10px;font-size:var(--type-eyebrow)}
  .footer__h::after{width:18px;height:2px;margin-top:7px}
  .footer__cols ul{gap:5px}
  .footer__cols li{font-size:var(--type-body);line-height:var(--line-body)}
  .footer__cols>div:nth-child(4) ul:not(.footer__social){display:grid;grid-template-columns:minmax(0,1fr);gap:5px}
  .footer__cols .footer__social{gap:4px;margin-top:14px}
  .footer__cols>div:nth-child(4) .footer__contact li:first-child{grid-column:1/-1}
  .footer__cols>div:nth-child(4) li{white-space:normal;overflow-wrap:anywhere}
  .footer__bar{gap:8px;padding-top:12px}
  .footer__bar .langs--foot,.footer__legal .footer__credit{display:none}
  .footer__legal{column-gap:16px;row-gap:8px}
  .footer__legal > span{flex-basis:100%}
  .footer__policy-link{padding-block:6px}
  .footer__legal{font-size:var(--type-metadata)}
}

@media (max-width:600px){
  .contact--home .contact__in{gap:26px}
  .contact--home .contact__formwrap{padding:19px 16px}
  .contact--home .form__title{margin-bottom:17px}
  .contact--home .field{gap:6px;margin-bottom:12px}
  .contact--home .field textarea{min-height:88px}
}
@media (prefers-reduced-motion:reduce){
  .teamroster__grid{scroll-behavior:auto;scroll-snap-type:x proximity}
}

/* ---------------------------------------------------------------- a11y */
@media (prefers-reduced-motion:reduce){
  html.valuation-slide::view-transition-new(root){animation:none!important}
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .js .reveal,.js .reveal.is-pending{opacity:1;translate:none;transition:none}
  .reviews__viewport{scroll-behavior:auto}
  .prop:hover .prop__art img,.mini:hover .mini__art img,.story-card:hover .story-card__art img,
  .story-card:hover .story-card__art--draw svg,.agency-person:hover figure img,
  .about-story:hover figure img,.vf-type:hover .vf-type__surface{transform:none}
}
@media print{
  .header,.mobilemenu,.burger,.filters{display:none}
  body{background:#fff}
  .js .reveal,.js .reveal.is-pending{opacity:1;translate:none;transition:none}
}

/* Each session illustration occupies the original house's frame, so swapping
   artwork cannot move the copy or the next section. Both reveal layers fit it. */
.viewer { aspect-ratio:1448/1086; background:var(--canvas); overflow:hidden; }
.viewer__base img,.viewer__reveal img { object-fit:contain; }
/* The opaque ivory travels with the photo's mask, covering sketch strokes
   even where the photograph itself has transparent pixels. */
.viewer__base,.viewer__reveal { background:var(--canvas); }
/* Register the drawing with the photo without stretching its proportions.
   Feather only the paper margin so it merges with the site's ivory. */
.viewer__base img {
  transform:translate(.55%, 1.4%);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);
  mask-composite:intersect;
}
/* The other session houses (index.html picks one per visit). Each drawing is registered to
   its photo by matching the drawing's strokes to the photo's edges. */
.viewer[data-hero-set="modern"] .viewer__base img { transform:translate(1.21%, 2.27%) scale(1.026); }
/* The townhouse ink drawing is baked onto the photo's canvas already registered. */
.viewer[data-hero-set="townhouse"] .viewer__base img { transform:none; }
/* These photos sit on white: multiplying over the ivory turns that white into the page colour. */
.viewer:is([data-hero-set="modern"],[data-hero-set="townhouse"]) .viewer__reveal img { mix-blend-mode:multiply; }
@media (min-width:1081px) {
  .hero { overflow-x:clip; }
  .hero__figure .viewer {
    width:calc(100% + clamp(80px, calc(50vw - 522px), 220px));
    margin-left:-50px;
  }
  .hero__figure .viewer[data-hero-set="modern"] {
    transform:translateX(24px) scale(1.12);
    transform-origin:left center;
  }
}
.viewer__base { mix-blend-mode:normal; transition:opacity var(--motion-fast) var(--ease); }
/* The drawing's paper (#FDF6EF) is a shade off the canvas: lift it to white-ish and keep only the darker of
   drawing and canvas, so the paper disappears into the page and only the strokes remain. */
.viewer__base img { filter:brightness(1.013); mix-blend-mode:darken; }
/* Explicit activation must win over the pointer's smaller hover lens. */
.viewer.is-open { --lens:1800px; }
.viewer.is-open .viewer__base { opacity:0; transition-delay:var(--motion-ui); }
@media (prefers-reduced-motion:reduce) {
  .viewer,.viewer__base,.viewer.is-open .viewer__base { transition:none; }
  .viewer__reveal { -webkit-mask-image:none;mask-image:none;opacity:0;transition:opacity var(--motion-fast) var(--ease); }
  .viewer.is-open .viewer__reveal { opacity:1; }
}

/* Hero reveal, script-driven: position and size are animated by main.js frame by frame,
   so CSS transitions on them would only add lag. The edge is feathered in several steps
   so the photograph dissolves into the drawing like ink thinning out, not a hard disc. */
.viewer.is-driven,.viewer.is-driven.is-open { transition:none; }
@media (prefers-reduced-motion:no-preference) {
  .viewer__reveal {
    -webkit-mask-image:radial-gradient(circle at var(--x) var(--y), #000 0px, #000 calc(var(--lens) * .46), rgba(0,0,0,.82) calc(var(--lens) * .6), rgba(0,0,0,.45) calc(var(--lens) * .76), rgba(0,0,0,.14) calc(var(--lens) * .9), rgba(0,0,0,0) var(--lens));
    mask-image:radial-gradient(circle at var(--x) var(--y), #000 0px, #000 calc(var(--lens) * .46), rgba(0,0,0,.82) calc(var(--lens) * .6), rgba(0,0,0,.45) calc(var(--lens) * .76), rgba(0,0,0,.14) calc(var(--lens) * .9), rgba(0,0,0,0) var(--lens));
  }
  /* Once the photo has opened over the whole picture, the drawing beneath fades out slowly. */
  .viewer.is-open .viewer__base { transition:opacity 700ms var(--ease) 260ms; }
}

/* Preserved Stories content is controlled by site-features.js. */
[data-stories][hidden] { display:none!important; }

/* ---------------------------------------------------------------- breadcrumb */
.crumbs{background:var(--canvas)}
.crumbs__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding-top:10px}
.crumbs__trail{display:flex;align-items:center;min-width:0;margin:0;padding:0;list-style:none;color:var(--ink-55);font-size:var(--type-metadata);line-height:var(--line-metadata)}
.crumbs__trail li{display:flex;align-items:center;min-width:0;white-space:nowrap}
.crumbs__trail li + li::before{content:"›";margin-inline:9px;color:var(--ink-40)}
.crumbs__trail li[aria-current]{overflow:hidden;text-overflow:ellipsis;display:block;color:var(--ink)}
.crumbs__trail li[aria-current]::before{display:inline}
.crumbs__trail a,.crumbs__back{color:var(--ink-70);transition:color var(--motion-fast) var(--ease)}
.crumbs__trail a:hover,.crumbs__back:hover{color:var(--brick)}
.crumbs__back{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:var(--type-metadata);font-weight:var(--weight-medium)}
.crumbs + main .service-hero__copy,.crumbs + main .team-page__hero{padding-top:clamp(18px,2.6vw,36px)}
.crumbs + .legal-page .pagehead{padding-top:clamp(20px,3vw,40px)}
@media (max-width:480px){
  /* Phones keep Home and the current page; the middle level is one tap away via Back. */
  .crumbs__trail li:not(:first-child):not([aria-current]){display:none}
}

/* Touch screens: small text links get a 44px tap area without changing their look. */
@media (pointer:coarse){
  :is(.arrowlink,.footer__cols a,.footer__policy-link,.service-fees-strip a,.gcard__more,.gscore__link,.pd-description__toggle,.contact__map-link,.pd-agent__links a){position:relative}
  :is(.arrowlink,.footer__cols a,.footer__policy-link,.service-fees-strip a,.gcard__more,.gscore__link,.pd-description__toggle,.contact__map-link,.pd-agent__links a)::before{
    content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%);
  }
}

/* Chambre Immobilière certification: small and quiet under the agency description. */
.footer__brand .footer__award { display:block; width:auto; height:clamp(83px,6.9vw,106px); margin-top:26px; }
@media (max-width:720px) { .footer__brand .footer__award { height:67px; margin-top:12px; } }

/* Required fields: a brick asterisk after the label. It follows the `required` attribute, so
   fields that become required for some property types gain it too. Screen readers already
   announce "required", so the mark is decorative for them. */
:is(.field,.vf-field):has(> :is(input,select,textarea)[required]:not([type="radio"]):not([type="checkbox"]):not(:disabled)) > label::after,
:is(.field,.vf-field):has(> :is(.sel,.commune-picker) > select[required]:not(:disabled)) > label::after {
  content:'*'; content:'*' / ''; margin-left:.2em; color:var(--brick);
}

/* Long German and Luxembourgish compound words ("Immobilienberatung") must not run off a narrow phone. */
h1,h2,.type-display{overflow-wrap:break-word;hyphens:manual}
