/* theme.css — sitewide design (2026-11): square edges, editorial grid, thin rules,
   Cormorant Garamond display type. Every page carries body.hp; the hp-* blocks are the
   shared header/footer and homepage sections, the "legacy" block below re-skins the
   components the inner templates already use. Loaded after styles.css. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 500;font-display:swap;src:url('/fonts/cormorant-garamond-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/cormorant-garamond-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

.hp{--paper:#F3F0EA;--paper-2:#EAE6DE;--ink:#15191B;--ink-2:#3B4347;--mute:#5B6366;--rule:rgba(21,25,27,0.16);--rule-strong:rgba(21,25,27,0.4);--rule-inv:rgba(243,240,234,0.18);--accent:#1E4F4B;--display:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
.hp *,.hp *::before,.hp *::after{border-radius:0 !important}
.hp main{display:block}
.hp a{color:inherit}
.hp img{display:block;max-width:100%}

/* type */
.hp-label{font-family:var(--sans);font-size:0.68rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--mute)}
.hp-label b{color:var(--ink);font-weight:600;margin-right:14px}
.hp-display{font-family:var(--display);font-weight:300;line-height:1;letter-spacing:-0.01em;color:var(--ink);margin:0}
.hp-display i,.hp-display em{font-style:italic;font-weight:400}
.hp-h2{font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:1.02;letter-spacing:-0.01em;margin:0}
.hp-h3{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.15;margin:0}
.hp-body{font-size:1rem;line-height:1.7;color:var(--ink-2);max-width:46ch}
.hp-link{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--rule-strong);transition:border-color .25s ease,color .25s ease}
.hp-link::after{content:"\2192";font-family:var(--display);font-size:1.25rem;font-weight:400;line-height:0;transition:transform .25s ease}
.hp-link:hover{border-color:var(--ink)}
.hp-link:hover::after{transform:translateX(6px)}
.hp-link--plain::after{content:none}
.hp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);cursor:pointer;transition:background .25s ease,color .25s ease}
.hp-btn:hover{background:transparent;color:var(--ink)}
.hp-inv .hp-btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hp-inv .hp-btn:hover{background:transparent;color:var(--paper)}
.hp :focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* layout */
.hp-wrap{width:min(1360px,calc(100% - 96px));margin:0 auto}
.hp-sec{padding:clamp(80px,10vw,150px) 0}
.hp-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 32px}
.hp-inv{background:var(--ink);color:var(--paper)}
.hp-inv .hp-display,.hp-inv .hp-h2,.hp-inv .hp-h3,.hp-inv .hp-link,.hp-inv .hp-label b{color:var(--paper)}
.hp-inv .hp-body{color:rgba(243,240,234,0.72)}
.hp-inv .hp-label{color:rgba(243,240,234,0.5)}
.hp-inv .hp-link{border-color:rgba(243,240,234,0.4)}
.hp-inv .hp-link:hover{border-color:var(--paper)}
.hp-rule{border:0;border-top:1px solid var(--rule);margin:0}
.hp-inv .hp-rule{border-color:var(--rule-inv)}
.hp-sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 32px;align-items:end;padding-bottom:28px;border-bottom:1px solid var(--rule);margin-bottom:clamp(40px,5vw,72px)}
.hp-inv .hp-sec-head{border-color:var(--rule-inv)}
.hp-sec-head .hp-label{grid-column:1 / span 3;padding-bottom:10px}
.hp-sec-head .hp-h2{grid-column:4 / span 6}
.hp-sec-head .hp-link{grid-column:11 / span 2;justify-self:end;padding-bottom:4px}

/* nav */
.hp-nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 48px;background:var(--ink);color:var(--paper);box-shadow:inset 0 -1px 0 var(--rule-inv);transition:background .3s ease,color .3s ease,padding .3s ease,box-shadow .3s ease}
.hp-nav.is-solid{padding:14px 48px}
.hp-brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:inherit}
.hp-brand-name{font-family:var(--display);font-weight:400;font-size:1.45rem;letter-spacing:0.01em;white-space:nowrap}
.hp-brand-sep{width:1px;height:26px;background:currentColor;opacity:0.4}
.hp-brand-firm{font-size:0.62rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;line-height:1.35;opacity:0.9;max-width:150px}
.hp-nav-links{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.hp-nav-links a{font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;text-decoration:none;color:inherit;opacity:0.9;padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s ease,opacity .2s ease}
.hp-nav-links a:hover{opacity:1;border-color:currentColor}
.hp-nav-right{display:flex;align-items:center;justify-content:flex-end;gap:28px}
.hp-nav-phone{font-size:0.72rem;font-weight:600;letter-spacing:0.14em;text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:10px}
.hp-nav-phone i{font-size:0.8rem}
.hp-menu-btn{display:inline-flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:0 8px;background:transparent;border:1px solid currentColor;color:inherit;cursor:pointer}
.hp-menu-btn span{display:block;height:1px;background:currentColor;transition:transform .3s ease,opacity .3s ease}
.hp-menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.hp-menu-btn[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
.hp-drawer{position:fixed;inset:0;z-index:990;background:var(--paper);color:var(--ink);display:none;overflow:auto;padding:120px 48px 48px}
.hp-drawer.is-open{display:block}
.hp-drawer-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 32px;max-width:1360px;margin:0 auto}
.hp-drawer-col{grid-column:span 3}
.hp-drawer-col .hp-label{display:block;padding-bottom:14px;border-bottom:1px solid var(--rule);margin-bottom:18px}
.hp-drawer-col a{display:block;font-family:var(--display);font-size:1.5rem;font-weight:400;line-height:1.25;text-decoration:none;color:var(--ink);padding:6px 0}
.hp-drawer-col a:hover{color:var(--accent)}
.hp-drawer-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:16px 40px;padding-top:28px;border-top:1px solid var(--rule);font-size:0.86rem;color:var(--ink-2)}
.hp-drawer-foot a{color:var(--ink);text-decoration:none}
body.hp.hp-drawer-open{overflow:hidden}
body.hp.hp-drawer-open .hp-nav{background:var(--ink);color:var(--paper)}

/* hero */
.hp-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--paper);overflow:hidden;isolation:isolate}
.hp-hero picture,.hp-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hp-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(21,25,27,0.28) 0%,rgba(21,25,27,0.05) 35%,rgba(21,25,27,0.55) 72%,rgba(21,25,27,0.82) 100%)}
.hp-hero-inner{width:min(1360px,calc(100% - 96px));margin:0 auto;padding:160px 0 72px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 32px;align-items:end}
.hp-hero-place{grid-column:1 / -1;font-size:0.68rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;opacity:0.85;display:flex;gap:18px;align-items:center}
.hp-hero-place::before{content:"";width:48px;height:1px;background:currentColor;opacity:0.7}
.hp-hero .hp-display{grid-column:1 / span 9;color:var(--paper);font-size:clamp(2.8rem,6.6vw,5.8rem);max-width:15ch}
.hp-hero-kicker{display:block;width:max-content;max-width:100%;font-family:var(--sans);font-size:0.78rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--paper);opacity:0.95;margin-bottom:22px;max-width:none;line-height:1.5}
.hp-hero-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:12px 44px;padding-top:24px;border-top:1px solid rgba(243,240,234,0.35);align-items:center}
.hp-hero-foot p{grid-column:1 / span 5;margin:0;font-size:1rem;line-height:1.6;color:rgba(243,240,234,0.85);max-width:38ch}
.hp-hero-foot .hp-hero-links{display:flex;flex-wrap:wrap;gap:12px 44px}
.hp-hero .hp-link{color:var(--paper);border-color:rgba(243,240,234,0.45)}
.hp-hero .hp-link:hover{border-color:var(--paper)}
.hp-scroll{position:absolute;right:48px;bottom:64px;width:1px;height:72px;background:rgba(243,240,234,0.35);overflow:hidden}
.hp-scroll::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--paper);animation:hpScroll 2.2s cubic-bezier(.65,0,.35,1) infinite}
@keyframes hpScroll{0%{top:-100%}50%{top:0}100%{top:100%}}

/* intro */
.hp-intro .hp-grid{align-items:start}
.hp-intro-media{grid-column:1 / span 5}
.hp-intro-media img{width:100%;aspect-ratio:1/1;object-fit:cover}
.hp-intro-media figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid var(--rule);margin-top:14px}
.hp-intro-copy{grid-column:7 / span 6;padding-top:8px}
.hp-intro-copy .hp-label{display:block;margin-bottom:34px}
.hp-intro-copy .hp-display{font-size:clamp(1.9rem,3vw,2.75rem);line-height:1.15;font-weight:300}
.hp-facts{list-style:none;margin:48px 0 0;padding:0}
.hp-facts li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:baseline;padding:18px 0;border-top:1px solid var(--rule)}
.hp-facts li:last-child{border-bottom:1px solid var(--rule)}
.hp-facts .hp-label{color:var(--mute)}
.hp-facts span:last-child{font-family:var(--display);font-size:1.35rem;font-weight:400;text-align:right}
.hp-facts a{text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.hp-facts a:hover{border-color:var(--ink)}
.hp-intro-copy .hp-link{margin-top:40px}

/* featured listings */
.hp-feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px;min-height:320px}
.hp-card{text-decoration:none;color:inherit;display:block}
.hp-card figure{margin:0;overflow:hidden;aspect-ratio:4/5;background:#23292c}
.hp-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1);transform:var(--fit,none)}
.hp-card:hover img{transform:var(--fit,none) scale(1.03)}
.hp-card-meta{display:flex;justify-content:space-between;gap:16px;padding:18px 0 0;border-top:1px solid var(--rule-inv);margin-top:18px}
.hp-card-addr{font-family:var(--display);font-size:1.35rem;font-weight:400;line-height:1.2}
.hp-card-sub{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(243,240,234,0.55);margin-top:8px}
.hp-card-price{font-family:var(--display);font-size:1.25rem;white-space:nowrap}
.hp-feat-empty{grid-column:1 / -1;color:rgba(243,240,234,0.6);font-size:0.9rem}

/* selling */
.hp-sell .hp-grid{align-items:start}
.hp-sell-copy{grid-column:1 / span 5}
.hp-sell-copy .hp-label{display:block;margin-bottom:34px}
.hp-steps{list-style:none;margin:48px 0 0;padding:0;counter-reset:hpstep}
.hp-steps li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:0 20px;padding:22px 0;border-top:1px solid var(--rule)}
.hp-steps li:last-child{border-bottom:1px solid var(--rule)}
.hp-steps li::before{counter-increment:hpstep;content:"0" counter(hpstep);font-family:var(--display);font-size:1.6rem;font-weight:300;line-height:1;color:var(--mute);padding-top:2px}
.hp-steps strong{grid-column:2;display:block;font-size:0.95rem;font-weight:600;margin-bottom:6px}
.hp-steps span{grid-column:2;font-size:0.95rem;line-height:1.6;color:var(--ink-2)}
.hp-steps li::before{grid-row:1 / span 2}
.hp-sell-copy .hp-link{margin-top:40px}
.hp-sell-media{grid-column:7 / span 6;margin-right:calc((100vw - min(1360px,100vw - 96px)) / -2);min-width:0}
.hp-sell-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hp-sell-media figcaption{padding:14px 0 0;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--mute)}

/* tools */
.hp-tools{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.hp-tool{padding:44px 36px 44px 0;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:18px;border-left:1px solid var(--rule);padding-left:36px;transition:background .25s ease}
.hp-tool:first-child{border-left:0;padding-left:0}
.hp-tool:hover{background:var(--paper-2)}
.hp-tool .hp-h3{margin-top:6px}
.hp-tool p{margin:0;font-size:0.95rem;line-height:1.6;color:var(--ink-2);flex:1}
.hp-tool .hp-link{align-self:flex-start;padding-top:0}

/* neighbourhoods */
.hp-areas .hp-grid{align-items:start}
.hp-areas-copy{grid-column:1 / span 4;position:sticky;top:120px}
.hp-areas-copy .hp-label{display:block;margin-bottom:34px}
.hp-areas-copy .hp-body{margin-top:24px}
.hp-areas-list{grid-column:6 / span 7;list-style:none;margin:0;padding:0;columns:2;column-gap:32px;border-top:1px solid var(--rule)}
.hp-areas-list li{break-inside:avoid}
.hp-areas-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:20px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
.hp-areas-list a:hover .hp-area-name{color:var(--accent)}
.hp-area-name{font-family:var(--display);font-size:1.55rem;font-weight:400;line-height:1.1;transition:color .2s ease}
.hp-area-note{grid-column:1;font-size:0.82rem;color:var(--mute)}
.hp-areas-list a::after{content:"\2192";grid-column:2;grid-row:1 / span 2;align-self:center;font-family:var(--display);font-size:1.4rem;opacity:0.5}

/* quote */

/* market notes: restyle the auto-injected blog module */
.hp .hp-blog .container{max-width:none !important;width:min(1360px,calc(100% - 96px));padding:0 !important;margin:0 auto}
@media (max-width:1100px){.hp .hp-blog .container{width:min(1360px,calc(100% - 56px))}}
@media (max-width:480px){.hp .hp-blog .container{width:calc(100% - 40px)}}
.hp .hp-blog .section-header.centered{text-align:left !important;max-width:none !important;margin:0 !important;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 32px;align-items:end;padding-bottom:28px;border-bottom:1px solid var(--rule);margin-bottom:56px}
.hp .hp-blog .section-header .eyebrow{grid-column:1 / span 3;font-size:0.68rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--mute);padding-bottom:10px;background:none;border:0;margin:0}
.hp .hp-blog .section-header .heading-lg{grid-column:4 / span 7;text-align:left;font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:1.02;margin:0 !important;color:var(--ink)}
.hp .hp-blog .section-header p{grid-column:4 / span 7;margin:14px 0 0 !important;color:var(--ink-2);max-width:46ch}
.hp .latest-blog-grid{gap:40px 32px !important;margin-top:0 !important}
.hp .latest-blog-card{background:transparent !important;border:0 !important;box-shadow:none !important;transform:none !important}
.hp .latest-blog-card-img{aspect-ratio:4/3;background-color:var(--paper-2)}
.hp .latest-blog-card-body{padding:18px 0 0 !important;border-top:1px solid var(--rule);margin-top:18px;gap:10px !important}
.hp .latest-blog-card-meta{font-size:0.66rem !important;letter-spacing:0.16em !important;color:var(--mute) !important}
.hp .latest-blog-card-title{font-family:var(--display) !important;font-size:1.45rem !important;font-weight:400 !important;line-height:1.15 !important;color:var(--ink) !important}
.hp .latest-blog-card-cta{font-size:0.68rem !important;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink) !important;border-bottom:1px solid var(--rule-strong);padding:6px 0;margin-top:auto}
.hp .latest-blog-card-cta i{display:none}
.hp .section-cta{justify-content:flex-start !important;gap:40px !important;margin-top:56px !important}
.hp .section-cta .btn{background:transparent !important;color:var(--ink) !important;border:0 !important;border-bottom:1px solid var(--rule-strong) !important;padding:14px 0 !important;font-size:0.72rem !important;font-weight:600 !important;letter-spacing:0.18em;text-transform:uppercase;box-shadow:none !important}
.hp .section-cta .btn i{display:none}
.hp .section-cta .btn:hover{border-color:var(--ink) !important;transform:none !important}
.hp .latest-blog-grid + .section-cta{margin-top:56px}
.hp .latest-blog-grid .latest-blog-card:nth-child(n+4){display:none}

/* contact */
.hp-contact .hp-grid{align-items:start}
.hp-contact-copy{grid-column:1 / span 5}
.hp-contact-copy .hp-label{display:block;margin-bottom:34px}
.hp-contact-lines{list-style:none;margin:40px 0 0;padding:0}
.hp-contact-lines li{padding:18px 0;border-top:1px solid var(--rule)}
.hp-contact-lines li:last-child{border-bottom:1px solid var(--rule)}
.hp-contact-lines .hp-label{display:block;margin-bottom:8px}
.hp-contact-lines a{font-family:var(--display);font-size:1.6rem;font-weight:400;text-decoration:none;color:var(--ink)}
.hp-contact-lines a:hover{color:var(--accent)}
.hp-contact-lines span{display:block;font-size:0.9rem;color:var(--ink-2);line-height:1.6}
.hp-contact form{grid-column:7 / span 6;background:transparent;border:0;padding:0;box-shadow:none}
.hp-contact .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.hp-contact .form-group{margin:0 0 28px}
.hp-contact label{display:block;font-size:0.68rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.hp-contact label span{text-transform:none;letter-spacing:0;font-weight:400}
.hp-contact input,.hp-contact select,.hp-contact textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule-strong);padding:12px 0;font:inherit;font-size:1.05rem;color:var(--ink);outline:none;box-shadow:none;min-height:48px}
.hp-contact input:focus,.hp-contact select:focus{border-color:var(--ink)}
.hp-contact input.is-invalid{border-color:#8f2d2d}
.hp-contact select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 6px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:28px}
.hp-contact .consult-submit{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;border:1px solid var(--ink);cursor:pointer;transition:background .25s ease,color .25s ease;width:auto;margin-top:8px}
.hp-contact .consult-submit:hover{background:transparent;color:var(--ink)}
.hp-contact .consult-submit i{display:none}
.hp-contact .consult-fineprint{font-size:0.8rem;color:var(--mute);margin-top:18px;line-height:1.6}
.hp-contact .consult-fineprint i{display:none}
.hp-contact .form-status,.hp-contact .form-success{font-size:0.95rem;line-height:1.6;margin-top:16px}
.hp-contact .form-success h3{font-family:var(--display);font-size:1.8rem;font-weight:400;margin:0 0 8px}
.hp-contact .form-success .check-icon{display:none}

/* footer */
.hp-foot{padding:clamp(72px,8vw,110px) 0 36px}
.hp-foot-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 32px;padding-bottom:56px;border-bottom:1px solid var(--rule-inv)}
.hp-foot-brand{grid-column:1 / span 4}
.hp-foot-brand .hp-display{font-size:clamp(2rem,3.4vw,3rem);color:var(--paper);font-weight:300}
.hp-foot-brand p{margin:18px 0 0;font-size:0.8rem;line-height:1.7;color:rgba(243,240,234,0.6)}
.hp-foot-col{grid-column:span 2}
.hp-foot-col .hp-label{display:block;margin-bottom:16px;color:rgba(243,240,234,0.5)}
.hp-foot-col a{display:block;font-size:0.9rem;line-height:1.5;padding:5px 0;text-decoration:none;color:rgba(243,240,234,0.85)}
.hp-foot-col a:hover{color:var(--paper)}
.hp-foot-mid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 40px;padding:28px 0;border-bottom:1px solid var(--rule-inv);font-size:0.86rem;color:rgba(243,240,234,0.75)}
.hp-foot-mid a{color:var(--paper);text-decoration:none}
.hp-foot-social{display:flex;gap:22px}
.hp-foot-social a{font-size:1rem;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--rule-inv)}
.hp-foot-logos{display:flex;flex-wrap:wrap;gap:28px 44px;align-items:center;padding:28px 0;border-bottom:1px solid var(--rule-inv)}
.hp-foot-logos img{height:30px;width:auto;opacity:0.7;filter:brightness(0) invert(1)}
.hp-foot-legal{padding-top:24px;font-size:0.74rem;line-height:1.7;color:rgba(243,240,234,0.5);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px}
.hp-foot-legal a{color:rgba(243,240,234,0.7);text-decoration:none;margin-left:18px}

/* responsive */
@media (max-width:1100px){
  .hp-wrap,.hp-hero-inner{width:min(1360px,calc(100% - 56px))}
  .hp-nav,.hp-nav.is-solid{padding-left:28px;padding-right:28px}
  .hp-nav-links{display:none}
  .hp-sell-media{margin-right:calc((100vw - (100vw - 56px)) / -2)}
  .hp-foot-col{grid-column:span 3}
  .hp-foot-brand{grid-column:1 / -1}
  .hp-scroll{right:28px}
}
@media (max-width:860px){
  .hp-sec{padding:72px 0}
  .hp-sec-head{display:block;padding-bottom:20px;margin-bottom:36px}
  .hp-sec-head .hp-label{display:block;margin-bottom:16px}
  .hp-sec-head .hp-link{margin-top:20px}
  .hp-hero-inner{padding:140px 0 48px}
  .hp-hero .hp-display{grid-column:1 / -1;font-size:clamp(2.6rem,11.5vw,4.2rem);max-width:none}
  .hp-hero-foot{display:block}
  .hp-hero-foot p{max-width:none;margin-bottom:22px}
  .hp-hero-foot .hp-hero-links{justify-content:flex-start;gap:8px 32px}
  .hp-scroll{display:none}
  .hp-intro-media,.hp-intro-copy,.hp-sell-copy,.hp-sell-media,.hp-contact-copy,.hp-contact form,.hp-areas-copy,.hp-areas-list{grid-column:1 / -1}
  .hp-intro-copy{padding-top:40px}
  .hp-sell-media{margin:48px 0 0;margin-right:0}
  .hp-sell-media img{aspect-ratio:4/3}
  .hp-feat-grid{grid-template-columns:1fr;gap:36px}
  .hp-card figure{aspect-ratio:4/3}
  .hp-tools{grid-template-columns:1fr}
  .hp-tool,.hp-tool:first-child{border-left:0;padding:32px 0;border-top:1px solid var(--rule)}
  .hp-tool:first-child{border-top:0}
  .hp-areas-copy{position:static;margin-bottom:36px}
  .hp-areas-list{columns:1}
  .hp .section-header.centered{display:block}
  .hp .section-header .eyebrow{display:block;margin-bottom:14px}
  .hp .latest-blog-grid{grid-template-columns:1fr !important}
  .hp-contact form{margin-top:48px}
  .hp-contact .form-row{grid-template-columns:1fr}
  .hp-foot-top{gap:32px}
  .hp-foot-col{grid-column:span 6}
  .hp-foot-legal{grid-template-columns:1fr}
  .hp-drawer{padding:110px 28px 40px}
  .hp-drawer-col{grid-column:1 / -1}
  .hp-brand-firm{display:none}
  .hp-brand-sep{display:none}
}
@media (max-width:480px){
  .hp-wrap,.hp-hero-inner{width:calc(100% - 40px)}
  .hp-nav,.hp-nav.is-solid{padding-left:20px;padding-right:20px}
  .hp-nav-phone span{display:none}
  .hp-brand-name{font-size:1.25rem}
  .hp-sell-media{margin-right:0}
}
@media (prefers-reduced-motion:reduce){
  .hp-scroll::after{animation:none}
  .hp-card img{transition:none}
}


/* =====================================================================
   Legacy component re-skin: applies the new design to the inner templates
   without rewriting their markup. Tokens from styles.css are overridden
   here so every page shares the paper/ink palette.
   ===================================================================== */
.hp{--bg-primary:#F3F0EA;--bg-secondary:#F8F6F1;--bg-tertiary:#EAE6DE;--bg-elevated:#F8F6F1;--bg-inverse:#15191B;--text-primary:#15191B;--text-secondary:#3B4347;--text-tertiary:#5B6366;--accent:#1E4F4B;--accent-hover:#15191B;--accent-soft:rgba(30,79,75,0.08);--accent-border:rgba(30,79,75,0.18);--border:rgba(21,25,27,0.14);--border-strong:rgba(21,25,27,0.4);--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:none;--glass:#F3F0EA;--glass-border:rgba(21,25,27,0.14);--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-full:0;--font-serif:'Cormorant Garamond',Georgia,serif;--font-display:'Cormorant Garamond',Georgia,serif;--gold:#15191B;--header-height:70px}
.hp body,.hp{font-family:var(--sans)}
.hp h1,.hp h2,.hp h3,.hp .heading-xl,.hp .heading-lg,.hp .heading-md,.hp .section-heading,.hp .hero-heading,.hp .ng-hero-title,.hp .ng-section-title,.hp .blog-hero h1,.hp .error-title{font-family:var(--display) !important;font-weight:300 !important;letter-spacing:-0.01em;line-height:1.05;color:var(--text-primary)}
.hp h1,.hp .heading-xl{font-size:clamp(2.4rem,5vw,4.2rem) !important}
.hp h2,.hp .heading-lg{font-size:clamp(2rem,3.6vw,3.1rem) !important}
.hp h3,.hp .heading-md{font-size:clamp(1.4rem,2vw,1.8rem) !important;font-weight:400 !important}
.hp h4,.hp h5,.hp h6{font-family:var(--sans);font-weight:600;letter-spacing:0}
.hp .eyebrow,.hp .ng-hero-eyebrow,.hp .blog-tag,.hp .listing-badge,.hp .breadcrumbs,.hp .blog-meta,.hp .ng-hero-stat-label,.hp .ng-sub-title{font-family:var(--sans) !important;font-size:0.68rem !important;font-weight:600 !important;letter-spacing:0.2em !important;text-transform:uppercase !important;color:var(--mute) !important;background:transparent !important;border:0 !important;padding:0 !important}
.hp .eyebrow::before,.hp .eyebrow::after{display:none}
.hp .breadcrumbs a{color:var(--ink)}
.hp .body-lg{font-size:1.1rem;line-height:1.7;color:var(--ink-2)}
.hp .body-md{font-size:1rem;line-height:1.7;color:var(--ink-2)}
.hp p a,.hp li a{text-underline-offset:3px}

/* buttons */
.hp .btn,.hp .btn-primary,.hp .btn-accent,.hp .btn-lg,.hp .consult-submit,.hp button[type="submit"]:not(.hp-menu-btn):not(.hp-quote-nav button),.hp .newsletter-form button,.hp .nav-cta,.hp .ng-sidebar-cta .btn,.hp .cta-banner .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px !important;background:var(--ink) !important;color:var(--paper) !important;font-family:var(--sans) !important;font-size:0.72rem !important;font-weight:600 !important;letter-spacing:0.18em !important;text-transform:uppercase !important;text-decoration:none !important;border:1px solid var(--ink) !important;box-shadow:none !important;transition:background .25s ease,color .25s ease !important;transform:none !important}
.hp .btn:hover,.hp .btn-primary:hover,.hp .consult-submit:hover,.hp button[type="submit"]:hover{background:transparent !important;color:var(--ink) !important;transform:none !important}
.hp .btn-outline,.hp .btn-secondary,.hp .btn-solid-light,.hp .btn-ghost{background:transparent !important;color:var(--ink) !important;border-color:var(--rule-strong) !important}
.hp .btn-outline:hover,.hp .btn-secondary:hover,.hp .btn-solid-light:hover{background:var(--ink) !important;color:var(--paper) !important;border-color:var(--ink) !important}
.hp .btn i{font-size:0.85em}
.hp .back-to-top{background:var(--ink) !important;color:var(--paper) !important;border:1px solid var(--paper) !important;box-shadow:none !important;width:44px;height:44px}

/* sections and page headers */
.hp .section{padding:clamp(64px,8vw,120px) 0}
.hp .section-alt,.hp .ng-section-alt{background:var(--bg-secondary)}
.hp .page-header,.hp header.page-header,.hp .reviews-hero,.hp .mr-hero,.hp .sj-page-head{background:var(--paper) !important;padding:calc(var(--header-height) + 56px) 0 48px !important;border-bottom:1px solid var(--rule);background-image:none !important}
.hp .page-header .container{position:relative}
.hp .page-header h1,.hp .page-header .heading-lg{max-width:22ch;margin-top:18px !important;margin-bottom:20px !important}
.hp .page-header .body-lg,.hp .page-header p{max-width:56ch;margin-left:0;margin-right:0;text-align:left}
.hp .page-header .centered,.hp .page-header[style*="text-align: center"],.hp .page-header[style*="text-align:center"]{text-align:left !important}
.hp .section-header:not(.hp-blog .section-header){display:block !important;text-align:left !important;max-width:none !important;margin:0 0 48px !important;padding-bottom:26px;border-bottom:1px solid var(--rule)}
.hp .section-header:not(.hp-blog .section-header) .eyebrow{display:block;margin-bottom:14px}
.hp .section-header:not(.hp-blog .section-header) .heading-lg,.hp .section-header:not(.hp-blog .section-header) h2{margin:0 !important}
.hp .section-header:not(.hp-blog .section-header) p{margin:14px 0 0 !important;max-width:56ch}
.hp .section-header .heading-lg{margin-top:12px !important}
.hp .section-header p{margin-left:0 !important;margin-right:0 !important;max-width:56ch}

/* hero blocks with photos (city/neighbourhood pages) */
.hp .hero,.hp .ng-hero{height:auto !important;min-height:62svh;display:flex;align-items:flex-end;color:var(--paper);isolation:isolate;position:relative}
.hp .hero-overlay,.hp .ng-hero-overlay{background:linear-gradient(180deg,rgba(21,25,27,0.25) 0%,rgba(21,25,27,0.1) 40%,rgba(21,25,27,0.78) 100%) !important}
.hp .hero .container,.hp .ng-hero .container,.hp .ng-hero-content{padding-bottom:48px}
.hp .hero h1,.hp .ng-hero-title,.hp .hero .hero-heading{color:var(--paper) !important;font-size:clamp(2.6rem,6vw,5.2rem) !important;max-width:14ch;text-align:left !important;margin-left:0 !important}
.hp .hero p,.hp .ng-hero-subtitle,.hp .hero-subtitle{color:rgba(243,240,234,0.85) !important;text-align:left !important;margin-left:0 !important;max-width:48ch}
.hp .hero-content,.hp .ng-hero-content,.hp .hero > .container,.hp .ng-hero > .container{text-align:left !important;align-items:flex-start !important;width:min(1360px,calc(100% - 96px)) !important;max-width:none !important;margin:0 auto !important;padding-left:0 !important;padding-right:0 !important}
.hp .hero-ctas,.hp .ng-hero-ctas{justify-content:flex-start !important}
.hp .hero-stats,.hp .ng-hero-stats{display:flex;flex-wrap:wrap;gap:0 !important;border-top:1px solid rgba(243,240,234,0.3);margin-top:32px;padding-top:0 !important;background:transparent !important}
.hp .hero-stat,.hp .ng-hero-stat{background:transparent !important;border:0 !important;border-right:1px solid rgba(243,240,234,0.3) !important;padding:18px 28px 0 0 !important;margin-right:28px !important;text-align:left !important;backdrop-filter:none !important}
.hp .hero-stat:last-child,.hp .ng-hero-stat:last-child{border-right:0 !important}
.hp .hero-stat-value,.hp .ng-hero-stat-value,.hp .hero-stat strong{font-family:var(--display) !important;font-weight:300 !important;font-size:2.2rem !important;color:var(--paper) !important}
.hp .hero-stat-label,.hp .ng-hero-stat-label{color:rgba(243,240,234,0.65) !important}
.hp .hero-tag,.hp .hero-trust-line{background:transparent !important;border:0 !important;padding:0 !important;font-size:0.68rem !important;letter-spacing:0.2em !important;text-transform:uppercase !important;color:rgba(243,240,234,0.8) !important}
.hp .hero-accent-line{display:none}

/* cards, boxes, grids */
.hp [class*="card"]:not([class*="hp-card"]):not([class*="latest-blog-card"]):not([class*="-img"]):not([class*="-image"]):not([class*="-bg"]):not([class*="-media"]):not([class*="-thumb"]):not([class*="-photo"]):not(.sj-tool-card),.hp .seo-cta-box,.hp .ng-sidebar,.hp .ng-sidebar-cta,.hp .ng-quick-facts,.hp .blog-author-box,.hp .blog-realtor-qa,.hp .blog-cta,.hp .seo-content-block,.hp .cta-banner,.hp .consult-form,.hp .calculator,.hp .calc-card,.hp .result-box,.hp .results,.hp .form-wrap{background:var(--bg-secondary) !important;border:1px solid var(--rule) !important;box-shadow:none !important;backdrop-filter:none !important;transform:none !important}
.hp [class*="card"]:not([class*="hp-card"]):not([class*="latest-blog-card"]):not([class*="-img"]):not([class*="-image"]):not([class*="-bg"]):not([class*="-media"]):not([class*="-thumb"]):not([class*="-photo"]):hover{transform:none !important;box-shadow:none !important;border-color:var(--rule-strong) !important}
.hp .ng-hood-icon,.hp .testimonial-avatar,.hp .service-icon,.hp .feature-icon,.hp [class*="icon-wrap"]:not([class*="hp-"]),.hp [class*="icon-box"]:not([class*="hp-"]){background:transparent !important;border:1px solid var(--rule) !important;color:var(--ink) !important;box-shadow:none !important}
.hp .testimonial-card{padding:32px}
.hp .testimonial-text{font-family:var(--display) !important;font-size:1.35rem !important;line-height:1.4 !important;font-style:italic;color:var(--ink) !important}
.hp .testimonial-stars{color:var(--ink) !important;letter-spacing:2px;font-size:0.7rem !important}
.hp .testimonial-stars i{color:var(--ink) !important}
.hp .cta-banner,.hp .cta-section,.hp .seo-cta-box,.hp .ng-cta,.hp .blog-cta,.hp .ng-sidebar-cta{background:var(--ink) !important;color:var(--paper) !important;border:0 !important;background-image:none !important}
.hp .cta-banner *,.hp .cta-section *,.hp .seo-cta-box *,.hp .ng-cta *,.hp .blog-cta *,.hp .ng-sidebar-cta *{color:var(--paper) !important}
.hp .cta-banner .btn,.hp .cta-section .btn,.hp .seo-cta-box .btn,.hp .ng-cta .btn,.hp .blog-cta .btn,.hp .ng-sidebar-cta .btn,.hp .cta-section .btn-primary{background:var(--paper) !important;color:var(--ink) !important;border-color:var(--paper) !important}
.hp .cta-banner .btn:hover,.hp .cta-section .btn:hover,.hp .ng-cta .btn:hover,.hp .blog-cta .btn:hover{background:transparent !important;color:var(--paper) !important}
.hp .cta-banner{padding:56px 48px !important}
.hp .newsletter-section{background:var(--bg-tertiary) !important;border-top:1px solid var(--rule);padding:56px 0 !important}
.hp .newsletter-inner{box-shadow:none !important;background:transparent !important;border:0 !important}
.hp .newsletter-form input{background:transparent !important;border:0 !important;border-bottom:1px solid var(--rule-strong) !important;box-shadow:none !important;padding:12px 0 !important;font-size:1rem}
.hp .newsletter-form button{min-height:48px}

/* FAQ accordions */
.hp .seo-faq-item,.hp .faq-item,.hp details{background:transparent !important;border:0 !important;border-top:1px solid var(--rule) !important;box-shadow:none !important;padding:0 !important;margin:0 !important}
.hp .seo-faq-item:last-child,.hp .faq-item:last-child{border-bottom:1px solid var(--rule) !important}
.hp .seo-faq-item .question,.hp .faq-item .question,.hp .faq-question,.hp summary{font-family:var(--display) !important;font-size:1.35rem !important;font-weight:400 !important;padding:20px 0 !important;background:transparent !important;color:var(--ink) !important;line-height:1.3}
.hp .seo-faq-item .answer,.hp .faq-item .answer,.hp .faq-answer{padding:0 0 22px !important;background:transparent !important;color:var(--ink-2) !important;line-height:1.7}

/* forms */
.hp .form-group label,.hp label{font-size:0.68rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--mute)}
.hp .form-group input,.hp .form-group select,.hp .form-group textarea,.hp .form-control,.hp input[type="text"],.hp input[type="email"],.hp input[type="tel"],.hp input[type="number"],.hp select,.hp textarea{background:transparent !important;border:0 !important;border-bottom:1px solid var(--rule-strong) !important;box-shadow:none !important;padding:12px 0 !important;font-family:var(--sans);font-size:1.02rem;color:var(--ink)}
.hp input:focus,.hp select:focus,.hp textarea:focus{border-bottom-color:var(--ink) !important;outline:none;box-shadow:none !important}
.hp .consult-form{padding:36px}
.hp .sj-input{border:0 !important;border-bottom:1px solid var(--rule-strong) !important;background:transparent !important;padding:0 !important}
.hp .sj-input:focus-within{box-shadow:none !important;border-bottom-color:var(--ink) !important}
.hp .sj-panel{background:var(--bg-secondary) !important;border:1px solid var(--rule) !important}
.hp .sj-btn{min-height:52px;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase}
.hp .sj-btn--primary{background:var(--ink) !important;border-color:var(--ink) !important}
.hp .sj-btn--primary:hover{background:transparent !important;color:var(--ink) !important}
.hp .sj-h1,.hp .sj-h2,.hp .sj-h3,.hp .sj-card h3,.hp .sj-tool-card h3,.hp .sj-review blockquote,.hp .sj-verdict h3,.hp .sj-result-total output{font-family:var(--display) !important;font-weight:300 !important}
.hp .sj-eyebrow,.hp .sj-card-k{font-size:0.68rem;letter-spacing:0.2em;color:var(--mute)}
.hp .sj-tool-card{background:var(--ink) !important}
.hp .sj-tool-card::after{display:none}
.hp .sj-section--sea{background:var(--bg-tertiary) !important}
.hp .sj-callout{background:var(--bg-tertiary) !important}
.hp .sj-radio:has(input:checked){background:var(--bg-tertiary) !important;border-color:var(--ink) !important}
.hp .sj-faq details{border:0;border-top:1px solid var(--rule)}

/* blog */
.hp .blog-hero{background:var(--paper) !important}
.hp .blog-hero img,.hp .blog-featured-image img,.hp .blog-content img{border:0}
.hp .blog-content{font-size:1.05rem;line-height:1.8;color:var(--ink-2)}
.hp .blog-content h2{margin-top:2.2em}
.hp .blog-content blockquote{border-left:1px solid var(--ink);background:transparent;font-family:var(--display);font-size:1.4rem;font-style:italic;padding:4px 0 4px 24px}
.hp .blog-toc{background:transparent !important;border:1px solid var(--rule) !important;box-shadow:none !important}
.hp .blog-toc p{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--mute)}

/* listings */
.hp .listing-card .listing-price,.hp .listing-price,.hp .lp-price{font-family:var(--display) !important;font-weight:400 !important;color:var(--ink) !important}
.hp .listing-badge{background:var(--ink) !important;color:var(--paper) !important;padding:6px 10px !important;font-size:0.6rem !important}
.hp .lp-footer-listing{display:none}

/* tables */
.hp table{border-collapse:collapse;width:100%}
.hp th{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--mute);font-weight:600;text-align:left;padding:12px 8px;border-bottom:1px solid var(--rule-strong)}
.hp td{padding:12px 8px;border-bottom:1px solid var(--rule)}

/* site directory block above the footer (SEO links) */
.hp .site-directory{background:var(--bg-tertiary) !important;border-top:1px solid var(--rule)}
.hp .site-directory-h{font-size:0.68rem !important;letter-spacing:0.2em !important;color:var(--mute) !important}
.hp .site-directory-grid a{color:var(--ink-2) !important}

/* spacing under the fixed header for pages whose first block is plain */
.hp main > .section:first-child,.hp main > section.section:first-of-type:not(.hero):not(.page-header){padding-top:calc(var(--header-height) + 56px)}
.hp .ng-jump-nav{top:var(--header-height) !important;background:var(--paper) !important;border-bottom:1px solid var(--rule)}

/* fixes after the first sitewide pass */
.hp .input-with-prefix input{padding-left:26px !important}
.hp .input-with-suffix input{padding-right:30px !important}
.hp #searchLocation{padding-left:36px !important}
.hp .stats-bar{background:transparent !important;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:28px 0 !important;box-shadow:none !important}
.hp .stat-item{text-align:left;padding:0 32px 0 0;border-right:1px solid var(--rule)}
.hp .stat-item:last-child{border-right:0}
.hp .stat-item > :first-child,.hp .stat-number,.hp .stat-value{font-family:var(--display) !important;font-weight:300 !important;font-size:2.6rem !important;color:var(--ink) !important;line-height:1}
.hp .stat-item > :last-child,.hp .stat-label{font-size:0.68rem !important;letter-spacing:0.18em;text-transform:uppercase;color:var(--mute) !important;margin-top:8px}
.hp .breadcrumbs,.hp .breadcrumbs *{font-size:0.68rem !important;letter-spacing:0.18em !important;text-transform:uppercase !important;font-weight:600 !important;line-height:1.8}
.hp .breadcrumbs a{color:var(--ink) !important;text-decoration:none}
.hp .breadcrumb-sep{color:var(--mute) !important;margin:0 8px}
.hp .ng-hero .breadcrumbs,.hp .hero .breadcrumbs{color:rgba(243,240,234,0.8)}
.hp .ng-hero .breadcrumbs a{color:var(--paper) !important}
.hp .reviews-hero h1{max-width:22ch}
.hp .form-success h3{font-family:var(--display)}
.hp .check-icon{display:none}
.hp .ng-hero-eyebrow{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
.hp .service-detail-visual{background-color:var(--ink) !important;background-size:cover !important;background-position:center !important;border:0 !important;color:var(--paper) !important;display:flex;align-items:center;justify-content:center;min-height:320px;box-shadow:none !important}
.hp .service-detail-visual *{color:var(--paper) !important;background:transparent !important;border-color:rgba(243,240,234,0.3) !important}
.hp .service-detail-visual i{font-size:2.2rem}
.hp .contact-hero-v2,.hp .contact-hero{padding-top:calc(var(--header-height) + 48px) !important}

/* ---- Photography bands (Commons-licensed local photographs, credited in the caption) ---- */
.hp-page-photo{margin:0;background:var(--paper)}
.hp-page-photo img{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;display:block}
.hp-page-photo figcaption{width:min(1360px,calc(100% - 96px));margin:0 auto;padding:12px 0 0;display:flex;justify-content:space-between;gap:16px;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute)}
.hp-page-photo figcaption a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.hp-page-photo + .section,.hp-page-photo + section{padding-top:clamp(56px,7vw,100px) !important}
.hp-strip{display:grid;grid-template-columns:1.2fr 0.8fr 1fr;gap:16px;align-items:stretch}
.hp-strip figure{margin:0;position:relative}
.hp-strip img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.hp-strip figure:first-child img{aspect-ratio:3/2}
.hp-strip figcaption{padding:10px 0 0;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute);display:flex;justify-content:space-between;gap:12px}
.hp-strip figcaption a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.hp-strip figcaption span:last-child{opacity:0.7;white-space:nowrap}
@media (max-width:860px){
  .hp-page-photo img{aspect-ratio:4/3}
  .hp-page-photo figcaption{width:calc(100% - 56px);flex-direction:column;gap:4px}
  .hp-strip{grid-template-columns:1fr 1fr}
  .hp-strip figure:first-child{grid-column:1 / -1}
}
@media (max-width:480px){.hp-page-photo figcaption{width:calc(100% - 40px)}}
.hp .ng-hero{position:relative}
.hp .hp-hero-credit{position:absolute;right:24px;bottom:12px;z-index:3;margin:0;font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:rgba(243,240,234,0.7)}
.hp .hp-hero-credit a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(243,240,234,0.3)}

/* ---- No boxes: cards, panels and sidebars become ruled blocks (top rule, no fill, no outline) ---- */
.hp [class*="card"]:not([class*="hp-card"]):not([class*="latest-blog-card"]):not([class*="-img"]):not([class*="-image"]):not([class*="-bg"]):not([class*="-media"]):not([class*="-thumb"]):not([class*="-photo"]):not(.sj-tool-card),.hp .sj-card,.hp .sj-panel,.hp .sj-review,.hp .ng-sidebar,.hp .ng-sidebar-cta,.hp .ng-quick-facts,.hp .blog-author-box,.hp .blog-realtor-qa,.hp .seo-content-block,.hp .consult-form,.hp .calculator,.hp .calc-card,.hp .result-box,.hp .results,.hp .form-wrap,.hp .search-box,.hp .testimonial-card,.hp .ng-hood-card,.hp .stat-card,.hp .info-card,.hp .contact-card,.hp .faq-card{background:transparent !important;border:0 !important;border-top:1px solid var(--rule) !important;box-shadow:none !important;padding-left:0 !important;padding-right:0 !important;padding-top:26px !important}
.hp [class*="card"]:not([class*="hp-card"]):not([class*="latest-blog-card"]):not([class*="-img"]):not([class*="-image"]):not([class*="-bg"]):not([class*="-media"]):not([class*="-thumb"]):not([class*="-photo"]):hover,.hp .sj-card:hover{border-color:var(--ink) !important;background:transparent !important}
.hp .sj-gateway,.hp .sj-tools,.hp .sj-reviews{gap:0 40px !important}
.hp .sj-card .sj-card-cta,.hp .sj-tool-card .sj-card-cta{border-bottom:1px solid var(--rule-strong);padding:10px 0;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase}
.hp .sj-tool-card{background:transparent !important;color:var(--ink) !important;border-top:1px solid var(--rule) !important;padding:26px 0 0 !important}
.hp .sj-tool-card h3,.hp .sj-tool-card p,.hp .sj-tool-card .sj-card-k,.hp .sj-tool-card .sj-card-cta{color:var(--ink) !important}
.hp .sj-tool-card p{color:var(--ink-2) !important}
.hp .sj-tool-card:hover{background:transparent !important}
.hp .sj-panel{padding-top:26px !important}
.hp .sj-tool-grid{gap:48px 64px}
.hp .ng-sidebar,.hp .ng-quick-facts{padding-top:20px !important}
.hp .ng-sidebar-cta,.hp .cta-banner,.hp .seo-cta-box,.hp .blog-cta{background:var(--ink) !important;border:0 !important;padding:40px !important}
.hp .consult-form{padding-top:26px !important}
.hp .search-box{padding-top:0 !important;border-top:0 !important}
.hp .testimonial-card{padding-top:24px !important}
.hp .ng-hood-icon,.hp .testimonial-avatar,.hp .service-icon,.hp .feature-icon,.hp [class*="icon-wrap"]:not([class*="hp-"]),.hp [class*="icon-box"]:not([class*="hp-"]){border:0 !important;background:transparent !important;width:auto !important;height:auto !important;padding:0 !important;margin-bottom:8px}
.hp .testimonial-avatar{display:none !important}
.hp .contact-info-card,.hp .contact-method,.hp .contact-channel{border:0 !important;border-top:1px solid var(--rule) !important;background:transparent !important;padding-left:0 !important}
.hp .contact-method i,.hp .contact-channel i{background:transparent !important;border:0 !important;width:auto !important;height:auto !important}
.hp .office-hours,.hp .hours-card{border:0 !important;background:transparent !important;padding-left:0 !important;padding-right:0 !important}

/* ---- No boxes, pass 2: one paper tone (no lighter panels), ruled contact rows, underline tabs ---- */
.hp{--bg-secondary:#F3F0EA;--bg-elevated:#F3F0EA;--bg-tertiary:#F3F0EA}
.hp .section-alt,.hp .ng-section-alt,.hp .newsletter-section{background:var(--paper) !important;border-top:1px solid var(--rule)}
.hp .calculator-inputs,.hp .calculator-results,.hp .calc-results,.hp .results-panel,.hp [class*="calculator-"]{background:transparent !important;border:0 !important;box-shadow:none !important;padding-left:0 !important;padding-right:0 !important}
.hp .calculator-inputs,.hp .calculator-results{border-top:1px solid var(--rule) !important;padding-top:28px !important}
.hp .contact-v2-channel,.hp a.contact-v2-channel,.hp .contact-v2-hours,.hp .contact-v2-form,.hp .contact-hero-v2-caption{background:transparent !important;border:0 !important;box-shadow:none !important;padding-left:0 !important;padding-right:0 !important}
.hp .contact-v2-channel,.hp a.contact-v2-channel{border-top:1px solid var(--rule) !important;padding-top:18px !important;padding-bottom:18px !important;margin:0 !important}
.hp .contact-v2-channel i,.hp .contact-v2-channel [class*="icon"]{background:transparent !important;border:0 !important;width:auto !important;height:auto !important;color:var(--ink) !important}
.hp .contact-v2-hours{border-top:1px solid var(--rule) !important;padding-top:22px !important;margin-top:8px}
.hp .contact-v2-form{padding-top:0 !important}
.hp .contact-hero-v2-caption{position:static !important;padding:14px 0 0 !important;border-top:1px solid var(--rule) !important;margin-top:12px}
.hp .service-tabs,.hp .contact-tabs-v2{background:transparent !important;border:0 !important;border-bottom:1px solid var(--rule) !important;padding:0 !important;gap:32px !important;box-shadow:none !important}
.hp .service-tabs button,.hp .service-tabs a,.hp .service-tab{background:transparent !important;color:var(--mute) !important;border:0 !important;border-bottom:2px solid transparent !important;padding:14px 0 !important;font-size:0.72rem !important;letter-spacing:0.18em !important;text-transform:uppercase !important;font-weight:600 !important;box-shadow:none !important}
.hp .service-tabs .active,.hp .service-tabs [aria-selected="true"],.hp .service-tab.active{color:var(--ink) !important;border-bottom-color:var(--ink) !important}
.hp .social-link,.hp .social-links a{border:0 !important;background:transparent !important;width:auto !important;height:auto !important;padding:0 14px 0 0 !important;color:var(--ink) !important}
.hp .sj-card,.hp .sj-tool-card,.hp .sj-review,.hp .sj-panel{outline:0 !important}
.hp .sj-card::before,.hp .sj-card::after,.hp .sj-tool-card::before{display:none !important}
.hp .sj-gateway > *,.hp .sj-tools > *{margin-top:0 !important}
/* sub-elements of cards (labels, ctas, meta) must never pick up the card rule */
.hp [class*="card-"]:not(.hp-card){border-top:0 !important;padding-top:0 !important}
.hp .sj-card .sj-card-cta,.hp .sj-tool-card .sj-card-cta{border-bottom:1px solid var(--rule-strong) !important;padding:10px 0 !important}
.hp .latest-blog-card-body{padding-top:18px !important;border-top:1px solid var(--rule) !important}
.hp .hp-card-meta{border-top:1px solid var(--rule-inv) !important;padding-top:18px !important}
/* tinted info boxes in calculators -> ruled lines */
.hp [class*="alert"],.hp [class*="highlight"],.hp [class*="notice"],.hp [class*="callout"],.hp .result-main,.hp .result-total,.hp .cmhc-note,.hp .info-box,.hp .tip-box{background:transparent !important;border:0 !important;border-left:1px solid var(--ink) !important;padding:6px 0 6px 18px !important;color:var(--ink) !important;box-shadow:none !important}
.hp [class*="alert"] *,.hp [class*="highlight"] *,.hp .result-main *{color:var(--ink) !important}
.hp .result-main{padding:18px 0 18px 18px !important}

/* card sub-elements: final override (span/div with card- in the class name are labels, ctas, meta, not cards) */
.hp span[class*="card-"],.hp div[class*="card-"]:not(.hp-card-meta):not([class*="latest-blog-card"]):not([class*="-img"]):not([class*="-image"]):not([class*="-bg"]):not([class*="-media"]):not([class*="-thumb"]):not([class*="-photo"]),.hp p[class*="card-"],.hp h3[class*="card-"]{border-top:0 !important;padding-top:0 !important;background:transparent !important}
.hp .sj-card .sj-card-cta,.hp .sj-tool-card .sj-card-cta{padding:10px 0 !important;border-bottom:1px solid var(--rule-strong) !important}
/* specificity bump so the generic card rule never paints label/link spans */
.hp span[class*="card-"]:not(.a):not(.b):not(.c):not(.d):not(.e),.hp p[class*="card-"]:not(.a):not(.b):not(.c):not(.d):not(.e),.hp h3[class*="card-"]:not(.a):not(.b):not(.c):not(.d):not(.e){border-top:0 !important;padding-top:0 !important}
.hp .sj-card .sj-card-cta:not(.a):not(.b):not(.c):not(.d):not(.e){padding:10px 0 !important;border-bottom:1px solid var(--rule-strong) !important}
.hp .sj-radio{border:0 !important;border-top:1px solid var(--rule) !important;background:transparent !important;padding:14px 0 !important}
.hp .sj-radio:has(input:checked){background:transparent !important;border-top-color:var(--ink) !important}
.hp .sj-radio:has(input:checked) span{font-weight:600}

/* ---- FAQ blocks: question and answer share one left edge; no icons, no indents ---- */
.hp .seo-faq-item,.hp .faq-item{border:0 !important;border-top:1px solid var(--rule) !important;padding:22px 0 !important;margin:0 !important;background:transparent !important}
.hp .seo-faq-item:last-child,.hp .faq-item:last-child{border-bottom:1px solid var(--rule) !important}
.hp .seo-faq-item .question,.hp .faq-item .faq-question,.hp .faq-question,.hp .faq-item h3,.hp .faq-item h4{display:block !important;font-family:var(--display) !important;font-size:1.35rem !important;font-weight:400 !important;line-height:1.3 !important;color:var(--ink) !important;margin:0 0 10px !important;padding:0 !important;background:transparent !important;gap:0 !important;text-align:left !important}
.hp .seo-faq-item .question i,.hp .faq-question i,.hp .faq-item i,.hp .question > .fas,.hp .question > .far{display:none !important}
.hp .seo-faq-item .answer,.hp .answer,.hp .faq-answer,.hp .faq-item p{padding:0 !important;margin:0 !important;color:var(--ink-2) !important;line-height:1.7 !important;font-size:1rem !important;text-align:left !important;max-width:72ch}
.hp .faq-answer{max-height:none !important;overflow:visible !important}
.hp .faq-list,.hp .seo-faq-list,.hp .faq-grid{display:block !important;max-width:820px}
.hp .seo-faq-item + .seo-faq-item{margin-top:0 !important}
.hp .sj-faq details{border-top:1px solid var(--rule) !important;padding:0 !important}
.hp .sj-faq details:last-child{border-bottom:1px solid var(--rule) !important}
.hp .sj-faq summary{padding:20px 0 !important;font-family:var(--display) !important;font-size:1.35rem !important;font-weight:400 !important}
.hp .sj-faq details p{padding:0 0 22px !important;max-width:72ch}
.hp .calculator-seo-content h2,.hp .faq-section h2{text-align:left !important}
.hp button.faq-question{width:100% !important;padding:0 !important;margin:0 0 10px !important;background:transparent !important;border:0 !important;box-shadow:none !important;cursor:default;justify-content:flex-start !important;letter-spacing:0 !important;text-transform:none !important;min-height:0 !important;color:var(--ink) !important}
.hp button.faq-question:hover{background:transparent !important;color:var(--ink) !important}
.hp .faq-answer{padding:0 !important;max-height:none !important}
/* seo grid items / info cards (calculator pages) -> ruled blocks */
.hp .seo-grid-item,.hp .seo-info-card,.hp .seo-grid-item:hover{background:transparent !important;border:0 !important;border-top:1px solid var(--rule) !important;box-shadow:none !important;padding:22px 0 0 !important;transform:none !important}
.hp .seo-grid{gap:28px 40px !important}
.hp .seo-grid-item h3,.hp .seo-grid-item h4,.hp .seo-info-card h3{display:block !important;font-family:var(--display) !important;font-size:1.3rem !important;font-weight:400 !important;margin:0 0 10px !important;gap:0 !important}
.hp .seo-grid-item i,.hp .seo-info-card > i,.hp .seo-grid-item h3 i,.hp .seo-grid-item h4 i{display:none !important}
.hp .calculator-seo-content h2 i,.hp .seo-content-block h2 i,.hp h2 > i.fas,.hp h2 > i.far,.hp h3 > i.fas{display:none !important}
.hp .result-note,.hp .mr-market-tiers,.hp .ng-jump-inner,.hp .mr-tier,.hp .tier-card{background:transparent !important;border:0 !important;box-shadow:none !important;padding-left:0 !important;padding-right:0 !important}
.hp .result-note{border-left:1px solid var(--ink) !important;padding-left:18px !important}
.hp .mr-market-tiers{border-top:1px solid var(--rule) !important;padding-top:24px !important}
.hp .ng-jump-inner{border-bottom:1px solid var(--rule) !important}
.hp .ng-highlights,.hp .ng-highlights-grid{border:0 !important;background:transparent !important;padding:0 !important}
.hp .ng-highlight-item{border:0 !important;border-top:1px solid var(--rule) !important;background:transparent !important;padding:18px 0 0 !important;display:block !important}
.hp .ng-highlight-item i{display:none !important}
.hp .ng-highlight-item strong{display:block;font-size:0.98rem;margin-bottom:6px}

/* ---- Balanced homepage (2026-11-10): hero copy, credibility strip, pathways, buying section, tools grid ---- */
.hp-hero-sub{grid-column:1 / span 7;margin:0;font-size:1.08rem;line-height:1.6;color:rgba(243,240,234,0.85);max-width:52ch}
.hp-hero-ctas{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}
.hp-hero-ctas .hp-btn{min-width:200px;background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hp-hero-ctas .hp-btn:hover{background:transparent;color:var(--paper)}
.hp-hero-ctas .hp-btn--ghost{background:transparent;color:var(--paper);border-color:rgba(243,240,234,0.6)}
.hp-hero-ctas .hp-btn--ghost:hover{background:var(--paper);color:var(--ink)}
.hp-cred{border-bottom:1px solid var(--rule)}
.hp-cred ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.hp-cred li{padding:22px 28px 22px 0;border-left:1px solid var(--rule);padding-left:28px;display:flex;flex-direction:column;gap:4px}
.hp-cred li:first-child{border-left:0;padding-left:0}
.hp-cred strong{font-family:var(--display);font-weight:300;font-size:1.9rem;line-height:1;color:var(--ink)}
.hp-cred span{font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--mute)}
.hp-cred a{color:inherit;text-decoration:none}
.hp-cred a strong{border-bottom:1px solid var(--rule-strong)}
.hp-paths{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.hp-path{display:grid;grid-template-rows:auto 1fr;text-decoration:none;color:inherit}
.hp-path figure{margin:0;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2)}
.hp-path img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.hp-path:hover img{transform:scale(1.03)}
.hp-path-body{padding:28px 0 0;border-top:1px solid var(--rule);margin-top:20px;display:flex;flex-direction:column;gap:14px}
.hp-path-body .hp-label b{margin-right:14px}
.hp-path-body h2{font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.05;margin:0}
.hp-path-body p{font-family:var(--display);font-size:1.3rem;line-height:1.35;color:var(--ink-2);margin:0;max-width:32ch}
.hp-path-body .hp-link{align-self:flex-start;margin-top:6px}
.hp-path-cap{font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute);margin:10px 0 0;display:flex;justify-content:space-between;gap:12px}
.hp-path-cap a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.hp-buy .hp-grid{align-items:start}
.hp-buy-media{grid-column:1 / span 6;margin-left:calc((100vw - min(1360px,100vw - 96px)) / -2);min-width:0}
.hp-buy-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hp-buy-media figcaption{padding:14px 0 0;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--mute);display:flex;justify-content:space-between;gap:12px;width:min(100%,calc(100% - 0px))}
.hp-buy-media figcaption a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.hp-buy-copy{grid-column:8 / span 5}
.hp-buy-copy .hp-label{display:block;margin-bottom:34px}
.hp-buy-copy .hp-steps{margin-top:40px}
.hp-ctas-row{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:40px;align-items:center}
.hp-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--rule)}
.hp-tools-group{grid-column:1 / -1;padding:26px 0 8px;display:flex;align-items:baseline;gap:18px}
.hp-tools-group + .hp-tool{border-top:0}
.hp-tools-grid .hp-tool{border-left:0;padding:22px 0 30px;border-top:1px solid var(--rule)}
.hp-tools-grid .hp-tool:hover{background:transparent}
.hp-tools-foot{display:flex;flex-wrap:wrap;gap:12px 40px;padding-top:26px;border-top:1px solid var(--rule)}
@media (max-width:1100px){.hp-buy-media{margin-left:calc((100vw - (100vw - 56px)) / -2)}}
@media (max-width:860px){
  .hp-hero-sub{grid-column:1 / -1}
  .hp-hero-ctas .hp-btn{flex:1 1 100%}
  .hp-cred ul{grid-template-columns:1fr 1fr}
  .hp-cred li{border-left:0;padding-left:0;padding-right:0;border-top:1px solid var(--rule)}
  .hp-cred li:nth-child(-n+2){border-top:0}
  .hp-paths{grid-template-columns:1fr;gap:48px}
  .hp-buy-media,.hp-buy-copy{grid-column:1 / -1}
  .hp-buy-media{margin:0 0 40px}
  .hp-buy-media img{aspect-ratio:4/3}
  .hp-tools-grid{grid-template-columns:1fr}
}
@media (max-width:480px){.hp-cred ul{grid-template-columns:1fr}.hp-cred li:nth-child(2){border-top:1px solid var(--rule)}}
.hp-path-wrap{display:flex;flex-direction:column;min-width:0}
.hp-path-wrap .hp-path{order:1}
.hp-path-wrap .hp-path-cap{order:2;margin-top:14px}
.hp-hero-kicker{width:auto !important;max-width:100% !important;white-space:normal}
.hp-strip figure,.hp-strip img{min-width:0;max-width:100%}
.hp-strip figcaption{flex-wrap:wrap}
.hp-strip figcaption span:last-child{white-space:normal}
@media (max-width:860px){.hp-strip figure:nth-child(n+2){grid-column:1 / -1}}

/* button colour must beat `.hp a{color:inherit}` */
.hp .hp-btn{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.hp .hp-btn:hover{background:transparent;color:var(--ink)}
.hp .hp-inv .hp-btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hp .hp-inv .hp-btn:hover{background:transparent;color:var(--paper)}
.hp .hp-hero-ctas .hp-btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hp .hp-hero-ctas .hp-btn:hover{background:transparent;color:var(--paper)}
.hp .hp-hero-ctas .hp-btn--ghost{background:transparent;color:var(--paper);border-color:rgba(243,240,234,0.6)}
.hp .hp-hero-ctas .hp-btn--ghost:hover{background:var(--paper);color:var(--ink)}
.hp-cred li > a{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.hp-cred a strong{border-bottom:0}
.hp-cred a:hover strong{text-decoration:underline;text-underline-offset:4px}
.hp .latest-blog-card-img{background-size:cover !important;background-position:center !important;background-color:var(--paper-2) !important}

/* listing photos with the feed's white letterbox trimmed (theme.js sets --fit per image) */
.hp img.is-trimmed{transform:var(--fit) !important;transform-origin:50% 50%}
.hp img.is-trimmed.no-anim{transition:none !important}
.hp .listing-card:hover .listing-image img.is-trimmed{transform:var(--fit) scale(1.05) !important}
.hp .hp-card:hover img.is-trimmed{transform:var(--fit) scale(1.03) !important}
.hp .lp-gallery:hover img.is-trimmed{transform:var(--fit) scale(1.03) !important}
.hp .listing-img.is-trimmed{background-repeat:no-repeat}

/* condensed homepage sections (2026-11-11): summary + button per section */
.hp-buy-copy .hp-body,.hp-sell-copy .hp-body{margin-top:28px}
.hp-ctas-row .hp-link{margin-top:0}
.hp-inv .hp-sec-head{border-color:var(--rule-inv)}
.hp-tools-brief{align-items:start}
.hp-tools-brief-copy{grid-column:1 / span 6;display:flex;flex-direction:column;gap:34px;align-items:flex-start}
.hp-tools-inline{grid-column:8 / span 5;list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.hp-tools-inline a{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);font-size:0.98rem}
.hp-tools-inline a::after{content:"\2192";font-family:var(--display);font-size:1.3rem;line-height:1;color:var(--mute)}
.hp-tools-inline a:hover{color:var(--accent)}
.hp-areas-btn{margin-top:32px}
.hp-areas-list a{grid-template-rows:auto}
.hp-quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.hp-quote-item{margin:0;display:flex;flex-direction:column;gap:22px}
.hp-quote-item p{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(1.3rem,1.7vw,1.6rem);line-height:1.35;margin:0;color:var(--paper)}
.hp-quote-item footer{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding-top:18px;border-top:1px solid var(--rule-inv)}
.hp-quote-item strong{font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase}
.hp-quote-item a{font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(243,240,234,0.6);text-decoration:none;border-bottom:1px solid rgba(243,240,234,0.3)}
.hp .hp-blog .section-cta{justify-content:flex-start !important;margin-top:40px !important}
@media (max-width:860px){
  .hp-tools-brief-copy,.hp-tools-inline{grid-column:1 / -1}
  .hp-tools-inline{margin-top:36px}
  .hp-quotes{grid-template-columns:1fr;gap:36px 0}
}
.tools-page .hp-sec-head .hp-h2{grid-column:4 / span 8}
.tools-page{padding-top:16px}
.hp-buy-media img,.hp-sell-media img{aspect-ratio:4/3}
/* No-JS baseline for the feed's white letterbox (5.5% top and bottom on padded photos):
   zoom every listing photo 12% so the bands sit outside the frame even before theme.js
   measures the exact amount and sets --fit. */
.hp .hp-card img,.hp .listing-image img,.hp .lp-gallery-main img,.hp .lp-gallery-side img{--fit:scale(1.12);transform:var(--fit)}
.hp .hp-card:hover img{transform:var(--fit) scale(1.03)}
.hp .listing-card:hover .listing-image img{transform:var(--fit) scale(1.05) !important}
.hp .lp-gallery:hover img{transform:var(--fit) scale(1.03) !important}
.hp .listing-img{background-size:auto 112%;background-repeat:no-repeat}

/* homepage contact form: a clearly-marked form panel (2026-11-11) */
.hp-contact form{background:var(--paper-2);padding:40px;border-top:2px solid var(--ink)}
.hp-form-head{margin-bottom:28px}
.hp-form-head .hp-label{display:block;margin-bottom:10px}
.hp-form-head p{margin:0;font-size:1rem;line-height:1.6;color:var(--ink-2);max-width:40ch}
.hp-contact .form-group{margin:0 0 20px}
.hp-contact label{margin-bottom:8px;color:var(--ink)}
.hp-contact label span{color:var(--mute)}
.hp-contact input,.hp-contact select,.hp-contact textarea{background:var(--paper);border:1px solid var(--rule-strong);padding:13px 14px;font-size:1rem;min-height:50px}
.hp-contact textarea{min-height:96px;resize:vertical;line-height:1.5}
.hp-contact input::placeholder,.hp-contact textarea::placeholder{color:var(--mute);opacity:0.8}
.hp-contact input:focus,.hp-contact select:focus,.hp-contact textarea:focus{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.hp-contact select{background-position:calc(100% - 16px) 55%,calc(100% - 10px) 55%;padding-right:36px}
.hp-contact .consult-submit{width:100%;margin-top:4px}
.hp-contact .consult-fineprint{margin-top:14px}
@media (max-width:860px){.hp-contact form{padding:24px 20px}}

/* contact panel must beat the generic no-boxes reset on .consult-form */
.hp .hp-contact form.consult-form{background:var(--paper-2) !important;padding:40px !important;border:0 !important;border-top:2px solid var(--ink) !important;box-shadow:none !important}
.hp .hp-contact form.consult-form input,.hp .hp-contact form.consult-form select,.hp .hp-contact form.consult-form textarea{background:var(--paper) !important;border:1px solid var(--rule-strong) !important;padding:13px 14px !important;box-shadow:none !important}
.hp .hp-contact form.consult-form input:focus,.hp .hp-contact form.consult-form select:focus,.hp .hp-contact form.consult-form textarea:focus{border-color:var(--ink) !important;box-shadow:inset 0 0 0 1px var(--ink) !important}
.hp .hp-contact form.consult-form select{padding-right:36px !important}
@media (max-width:860px){.hp .hp-contact form.consult-form{padding:24px 20px !important}}

.hp main:focus{outline:none}
.hp iframe{max-width:100%}

/* FAQ rows (homepage + services): ruled, collapsed, no boxes */
.hp-faq{border-top:1px solid var(--rule);max-width:900px}
.hp .section-header + .hp-faq{margin-top:32px}
.hp-faq details{border-bottom:1px solid var(--rule)}
.hp-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:22px 0;font-family:var(--display);font-size:clamp(1.2rem,1.6vw,1.45rem);font-weight:400;line-height:1.25;color:var(--ink)}
.hp-faq summary::-webkit-details-marker{display:none}
.hp-faq summary::after{content:"+";font-family:var(--display);font-size:1.7rem;line-height:1;color:var(--mute);flex:none}
.hp-faq details[open] summary::after{content:"\2212"}
.hp-faq p{margin:0 0 24px;font-size:1rem;line-height:1.7;color:var(--ink-2);max-width:68ch}

/* blog sources block */
.hp .blog-sources{margin:48px 0 0;padding:24px 0 8px;border-top:1px solid var(--rule)}
.hp .blog-sources h2{font-family:var(--sans);font-size:0.68rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--mute);margin:0 0 12px}
.hp .blog-sources ul{list-style:none;margin:0;padding:0}
.hp .blog-sources li{padding:8px 0;border-bottom:1px solid var(--rule);font-size:0.95rem}
.hp .blog-sources a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.hp .blog-sources a:hover{color:var(--accent)}
/* body links are distinguishable without colour */
.hp p a:not(.hp-btn):not(.hp-link):not(.btn),.hp li a:not(.hp-btn):not(.hp-link):not(.btn):not([class*="nav"]):not([class*="foot"]):not([class*="drawer"]):not([class*="areas"]):not([class*="tools-inline"]){text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-strong)}
.hp-areas-list a,.hp-tools-inline a,.hp-foot-col a,.hp-drawer-col a,.hp-contact-lines a{text-decoration:none}
.hp article .blog-sources h2,.hp .blog-sources h2{font-family:var(--sans) !important;font-size:0.68rem !important;font-weight:600 !important;letter-spacing:0.2em !important;text-transform:uppercase !important;color:var(--mute) !important;margin:0 0 12px !important;line-height:1.4 !important}

/* slim homepage (2026-11-11) */
.hp-hero-sub{max-width:34ch}
.hp-path-btn{margin-top:4px}
.hp-tools-brief--list .hp-tools-inline--wide{grid-column:1 / -1;columns:2;column-gap:40px;margin-top:0}
.hp-tools-inline--wide li{break-inside:avoid}
.hp-areas-copy .hp-areas-btn{margin-top:28px}
@media (max-width:860px){
  .hp-tools-brief--list .hp-tools-inline--wide{columns:1}
  .hp-quotes .hp-quote-item:nth-child(n+2){display:none}
  .hp-cred li:nth-child(4){display:none}
  .hp-sec{padding:56px 0}
}
/* no scroll-in fades: content is visible immediately */
.hp .reveal,.hp [class*="reveal-delay"]{opacity:1 !important;transform:none !important;transition:none !important}

/* sold page: real closings */
.sold-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px;margin-top:40px}
.sold-card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.sold-card img{width:100%;height:100%;object-fit:cover;display:block}
.sold-meta{padding:16px 0 0;border-top:1px solid var(--rule);margin-top:16px}
.sold-addr{font-family:var(--display);font-size:1.3rem;line-height:1.2;color:var(--ink)}
.sold-sub{font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--mute);margin-top:6px}
.sold-tag{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:0.82rem;color:var(--ink-2)}
.sold-more{margin-top:40px;text-align:center}
.sold-rows{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid var(--rule)}
.sold-rows li{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;gap:8px 24px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule)}
.sold-row-addr{font-family:var(--display);font-size:1.15rem;color:var(--ink)}
.sold-row-place{display:block;font-family:var(--sans);font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--mute);margin-top:4px}
.sold-row-facts,.sold-row-when{font-size:0.9rem;color:var(--ink-2)}
.sold-source{margin-top:28px;font-size:0.82rem;color:var(--mute)}
.sold-source a{color:inherit}
@media (max-width:860px){.sold-grid{grid-template-columns:1fr 1fr;gap:28px 16px}.sold-rows li{grid-template-columns:1fr;gap:4px}}
@media (max-width:560px){.sold-grid{grid-template-columns:1fr}}

/* homepage about preview */
.hp-about .hp-grid{align-items:center}
.hp-about-media{grid-column:1 / span 5;margin:0}
.hp-about-media img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%;display:block}
.hp-about-copy{grid-column:7 / span 5;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.hp-about-copy .hp-label{margin-bottom:4px}
.hp-about-copy .hp-body{margin:0}
@media (max-width:860px){.hp-about-media,.hp-about-copy{grid-column:1 / -1}.hp-about-copy{margin-top:28px}.hp-about-media img{aspect-ratio:4/4}}
/* city pages: dark listing band sits between light sections */
.hp .section + .hp-feat,.hp .hp-feat + .section{margin-top:0}

/* listings search: four filters visible, the rest behind a toggle */
.hp .search-more-toggle{display:inline-flex;align-items:center;gap:10px;margin:14px 0 0;padding:10px 0;background:transparent;border:0;border-bottom:1px solid var(--rule-strong);font-family:var(--sans);font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.hp .search-more-toggle span{font-family:var(--display);font-size:1.2rem;line-height:1}
.hp .search-more{margin-top:8px}

.hp .search-note{margin:28px 0 8px;font-size:0.95rem;line-height:1.6;color:var(--ink-2);max-width:70ch}

/* tighter seam between the pathways and the About preview */
.hp-paths-sec{padding-bottom:48px}
.hp-about{padding-top:48px}
/* sold-home photo band used to break up text-only stretches */
.hp .sold-strip{padding-top:0}
.hp .sold-strip .hp-strip img{aspect-ratio:4/3}
.hp .sold-strip-note{margin:14px 0 0;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute)}
.hp .sold-strip-note a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong)}
.hp .service-detail-visual{background-size:cover;background-position:center;aspect-ratio:4/3;min-height:0}
@media (max-width:860px){.hp .sold-strip .hp-strip{grid-template-columns:1fr 1fr}.hp .sold-strip .hp-strip figure:last-child{display:none}}

/* blog cards outside the homepage module */
.hp .latest-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:36px}
.hp .latest-blog-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:transparent;border:0}
.hp .latest-blog-card-img{aspect-ratio:16/10;background-size:cover;background-position:center;background-color:var(--paper-2)}
.hp .latest-blog-card-body{padding:16px 0 0;display:flex;flex-direction:column;gap:8px;flex:1}
.hp .latest-blog-card-meta{display:flex;gap:8px;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute)}
/* property-type photo tiles */
.hp .type-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:36px}
.hp .type-tile{position:relative;display:flex;align-items:flex-end;aspect-ratio:4/5;background-size:cover;background-position:center;text-decoration:none;color:var(--paper);isolation:isolate;overflow:hidden}
.hp .type-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(21,25,27,0.78) 0%,rgba(21,25,27,0.15) 55%,rgba(21,25,27,0) 100%);z-index:-1;transition:background .3s ease}
.hp .type-tile:hover::after{background:linear-gradient(to top,rgba(21,25,27,0.88) 0%,rgba(21,25,27,0.3) 60%,rgba(21,25,27,0.05) 100%)}
.hp .type-tile-label{padding:22px;font-family:var(--display);font-size:1.45rem;line-height:1.15}
.hp .type-tile-label::after{content:"\2192";display:block;font-size:1.3rem;margin-top:8px;opacity:0.8}
@media (max-width:860px){.hp .latest-blog-grid{grid-template-columns:1fr;gap:28px}.hp .type-tiles{grid-template-columns:1fr 1fr}.hp .type-tile{aspect-ratio:1/1}}

.hp .service-detail{align-items:center}
