/* brianbyers.com: pages served by our server. Recreates Brian's Lofty site (standard template)
   module by module, measured from the live site on 2026-09-30, so the rebuilt pages and the
   pages still rendered by Lofty read as one site. */

/* Engel & Völkers faces, same files the Lofty pages load. One face per family, as on the Lofty
   site, so bold text is synthesized the same way it is there. */
@font-face{font-family:"EV Text";src:url("https://cdn.chime.me/doc/fs/upload/20221012/10/0499d084-60e7-4b97-bf41-d7aa95c0aaf8/EngelVoelkersText_Rg.ttf") format("truetype");font-display:swap}
@font-face{font-family:"EV Text Bd";src:url("https://cdn.chime.me/doc/fs/upload/20221012/10/a04c3873-f343-4242-bbea-5c2ed1b7acc1/EngelVoelkersText_Bd.ttf") format("truetype");font-display:swap}
@font-face{font-family:"EV Text Lt";src:url("https://cdn.chime.me/doc/fs/upload/20221012/10/f3414fd8-9fbc-4538-9d76-c3c428e86371/EngelVoelkersText_Lt.ttf") format("truetype");font-display:swap}
@font-face{font-family:"EV Head";src:url("https://cdn.chime.me/doc/fs/upload/20221012/10/aee158c3-8848-4ac1-afc7-80f8b558b881/EngelVoelkersHead_Bd.ttf") format("truetype");font-display:swap}

/* UI icons: the same glyphs the Lofty template draws with its icon font (subset: src/tools/make_icons.py) */
@font-face{font-family:"bb-icons";src:url("/assets/fonts/bb-icons.woff2") format("woff2");font-display:block}
.ic{font-family:"bb-icons"!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.ic-fashion-down::before{content:"\e696"}.ic-account::before{content:"\e660"}.ic-close::before{content:"\e71f"}.ic-menu::before{content:"\e757"}.ic-arrow-up::before{content:"\e67c"}.ic-Star::before{content:"\e7a5"}.ic-people_02::before{content:"\e725"}.ic-arrow_06_left::before{content:"\e78e"}.ic-arrow_06_right::before{content:"\e78f"}.ic-checked::before{content:"\e71a"}.ic-success::before{content:"\e6ad"}.ic-facebook-sign::before{content:"\e726"}.ic-linkedin::before{content:"\e792"}.ic-zillow::before{content:"\e63a"}.ic-instagram::before{content:"\e793"}.ic-youtube::before{content:"\e63b"}.ic-arrow_03_up::before{content:"\e79b"}.ic-arrow_04_down::before{content:"\e6cf"}.ic-arrow-down::before{content:"\e607"}.ic-pig::before{content:"\f07a"}.ic-loufang::before{content:"\e654"}.ic-arrow_08_up::before{content:"\e7a0"}.ic-arrow_08_down::before{content:"\e7a4"}.ic-agent-facebook::before{content:"\e66b"}.ic-agent-zillow::before{content:"\e675"}.ic-agent-linkedin::before{content:"\e66d"}.ic-youtube1::before{content:"\e744"}

:root{
  --red:#c12029; --title:#202437; --text:#505050; --ink:#191919; --tip:#a8a8a8; --border:#dadada;
  --link:#4c84ff; --cream:#fbf8f1; --header-h:70px;
  --head:"EV Head",Georgia,serif; --body:"EV Text",Arial,sans-serif; --bold:"EV Text Bd",Arial,sans-serif;
  --light:"EV Text Lt",Arial,sans-serif;
  --mw:1340px;
}
@media (min-width:1500px){:root{--mw:90vw}}
@media (min-width:1681px){:root{--mw:1512px}}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font:400 14px/normal var(--body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
@media (max-width:1080px){body{font-size:12px}}
h1,h2,h3,h4,h5,p,ul,ol,figure,blockquote{margin:0;padding:0}
h1,h2,h3,h4,h5{font-size:1em;font-weight:normal}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;border:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit}
.wrap{width:var(--mw);max-width:100%;margin-left:auto;margin-right:auto}
@media (max-width:1440px){.wrap{width:calc(100vw - 100px)}}
@media (max-width:1080px){.wrap{width:calc(100vw - 80px)}}
@media (max-width:840px){.wrap{width:calc(100vw - 60px)}}
@media (max-width:800px){.wrap{width:calc(100vw - 40px)}}
@media (max-width:600px){.wrap{width:calc(100vw - 30px)}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:8px 14px;z-index:999}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.mod-title{font:400 24px/36px var(--head);color:var(--title)}

/* Buttons (Lofty: square corners, bold E&V text face) */
.btn{display:inline-flex;align-items:center;justify-content:center;height:50px;padding:0 20px;background:var(--red);border:1px solid var(--red);color:#fff;font:400 14px/1 var(--bold);white-space:nowrap;cursor:pointer;transition:opacity .2s}
.btn:hover{opacity:.9}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1);z-index:400}
.site-header .logo{position:absolute;left:30px;top:20px}
.site-header .logo img{width:231px;height:30px}
.site-nav{position:absolute;top:0;right:20px;height:100%;display:flex;align-items:center}
.menu{display:flex;height:100%}
.menu-item{position:relative;display:flex;align-items:center;margin-right:40px}
.menu-item>a{display:flex;align-items:center;height:100%;font:400 14px/14px var(--body);text-transform:uppercase;color:#282828;white-space:nowrap}
.menu-item>a .chev{display:inline-block;margin-left:6px;font-size:12px;font-weight:700;transform:rotate(180deg) scale(.7)}
.menu-item.is-active>a,.menu-item:hover>a{color:var(--red)}
.sub{position:absolute;top:60px;left:0;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.2);padding:15px 0;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.menu-item:hover .sub,.menu-item:focus-within .sub{opacity:1;visibility:visible}
.sub a{display:block;padding:0 25px;font:400 14px/35px var(--body);color:#333}
.sub a:hover{color:var(--red)}
.account{display:flex;align-items:center;font:400 14px/19px var(--body);text-transform:uppercase;color:#282828}
.account .icon-account{margin-right:20px;font-size:23px;color:#606060}
.account a:hover{color:var(--red)}
.account .sep{width:1px;height:17px;margin:0 8px;background:#282828;opacity:.3;transform:rotate(20deg)}
.nav-toggle{display:none}
.nav-mask{display:none}
main{display:block;padding-top:60px} /* Lofty's header placeholder is 60px; the fixed bar (70px) overlaps the first module by 10px */

/* Home: hero slideshow (Lofty md-hero, slide effect) */
.hero{position:relative;height:900px;overflow:hidden;background:#d9d9d9}
.hero-track{display:flex;height:100%;transition:transform 1s ease}
.hero-slide{flex:0 0 100%;height:100%}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-mask{position:absolute;inset:0;background:rgba(0,0,0,.15);pointer-events:none}
.hero-content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 20px;text-align:center}
.hero h1{font:900 64px/1.1 var(--head);color:#fff;margin-bottom:15px}
.hero-sub{font:700 24px/32px var(--light);color:#ecf0f1;margin-bottom:51px}
.hero-actions{display:flex;justify-content:center;gap:30px}
.btn-hero{display:inline-flex;align-items:center;justify-content:center;width:280px;height:56px;padding:0 15px;border:2px solid;border-radius:3px;font:400 16px/52px var(--body)}
.btn-hero--red{background:var(--red);border-color:var(--red);color:#fff}
.btn-hero--white{background:#fff;border-color:#fff;color:#515666}

/* Home: intro (md-cta-tc-sc) */
.intro{display:flex;margin-bottom:60px;background:#fff}
.intro-img{flex:0 0 50%;background:#eee center/cover no-repeat}
.intro-copy{flex:0 0 50%;display:flex;flex-direction:column;align-items:flex-start;padding:20px 6.25%;background:var(--cream);font:400 16px/24px var(--body);color:#404040}
.intro-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font:700 26px/35.88px var(--head);color:#000;margin-bottom:30px} /* Lofty clamps the title to 3 lines */
.intro-title .kicker{font-size:16px;line-height:22.08px}
.intro-copy p{margin:0 0 24px}
.intro-copy strong{font-weight:700}
.intro-copy a{color:inherit}
.intro-copy p:last-of-type{margin-bottom:0}
.intro-copy .btn{margin-top:60px;color:#fff;height:50px;padding:0 20px;border:0;font:400 14px/50px var(--bold)}

/* Home: off-market card over a banner (md-cta layout2) */
.om-cta{padding:0 0 80px;background:#fff}
.om-band{position:relative;height:333px;background:#555 center/cover no-repeat}
.om-band::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5)}
.om-card{position:relative;margin-top:-85px;padding:40px 100px 50px;background:#fff;border-bottom:2px solid var(--red);box-shadow:0 10px 30px rgba(25,25,25,.15);text-align:center}
.om-card h2{font:400 34px/51px var(--head);color:var(--title)}
.om-card p{font:400 16px/24px var(--body);color:var(--title)}
.om-card .btn{margin-top:35px;width:200px;height:50px;border:0;font:500 16px/50px var(--bold)}

/* Listing sliders (md-house layout6), filled from Brian's Lofty IDX feed. Four 25% slides; the first
   visible one is the tall "lead" card, the arrows and More button sit under the other three. */
.listings{padding:80px 0;background:#fff}
.listings .mod-title{color:var(--ink);margin-bottom:40px}
.ls-box{position:relative}
.ls-viewport{overflow:hidden;height:520px}
.ls-track{display:flex;align-items:flex-start;transition:transform 1s ease}
.ls-slide{flex:0 0 25%;padding-left:15px;transition:padding .3s}
.ls-slide.is-lead{padding:0 35px 0 0}
.ls-card{position:relative;height:400px;padding:15px;border:1px solid rgba(218,218,218,.5);background:#fff;color:var(--text);transition:height .3s}
.ls-photo{display:block;width:100%;height:224px;object-fit:cover;background:#eee}
.ls-info{padding-top:27px}
.ls-price{display:block;font:700 24px/36px var(--body);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-meta{margin-top:5px;height:18px;overflow:hidden;font:400 12px/18px var(--body);white-space:nowrap}
.ls-meta span:not(:last-child)::after{content:"|";margin:0 8px}
.ls-addr{display:block;margin-top:5px;height:18px;overflow:hidden;font:400 12px/18px var(--body);white-space:nowrap;text-overflow:ellipsis}
.ls-mlsbox{display:flex;align-items:flex-end;margin-top:15px}
.ls-by{flex:1 1 auto;min-width:0;font:400 12px/18px var(--body);color:var(--tip)}
.ls-mls{flex:0 0 auto;height:20px;width:auto;margin-left:10px}
.ls-slide.is-lead .ls-card{height:520px;padding:0;border:0}
.ls-slide.is-lead .ls-photo{height:520px}
.ls-slide.is-lead .ls-info{position:absolute;left:0;right:0;bottom:0;height:266px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(rgba(25,25,25,0),rgba(25,25,25,.8))}
.ls-slide.is-lead .ls-price{color:#fff}
.ls-slide.is-lead .ls-meta,.ls-slide.is-lead .ls-addr{margin-top:10px;color:rgba(255,255,255,.8)}
.ls-slide.is-lead .ls-by{color:rgba(255,255,255,.5)}
.ls-nav{position:absolute;left:calc(25% + 15px);right:0;bottom:0;height:50px;display:flex;align-items:center;justify-content:space-between}
.ls-arrows{display:flex;gap:30px}
.ls-arrow{position:relative;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid var(--red);border-radius:50%;color:var(--red);transform:rotate(90deg)}
.ls-arrow--prev{transform:rotate(-90deg)}
.ls-arrow .ic{font-size:20px}
.ls-arrow:hover::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(25,25,25,.1)}
.ls-arrow[disabled]{opacity:.3;cursor:not-allowed}
.ls-arrow[disabled]:hover::after{display:none}
.ls-more{width:200px;height:50px;padding:0 15px;font:400 16px/50px var(--bold)}
.ls-empty{padding:40px 0;color:var(--tip)}

/* Testimonials (md-testimonial layout1): fixed background, one bordered slide at a time */
.t1{position:relative;margin-bottom:50px;padding:80px 0;background:#191919 50% 50%/cover no-repeat fixed;color:#f6f7fb}
.t1-mask{position:absolute;inset:0;z-index:1;background:rgba(25,25,25,.7)}
.t1-inner{position:relative;z-index:2}
.t1 .mod-title{margin-bottom:40px;color:#f6f7fb}
.t1-wrap{position:relative}
.t1-viewport{margin:0 100px;overflow:hidden}
.t1-track{display:flex;align-items:center;transition:transform 1.7s ease}
.t1-slide{position:relative;flex:0 0 100%;margin-right:20px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;padding:40px 65px;border:5px solid hsla(0,0%,100%,.2);background-repeat:no-repeat;background-position:65px 80px}
.t1-stars{display:flex;align-items:center}
.t1-stars .ic{margin-right:10px;font-size:20px;color:#f6f7fb}
.t1-comment{margin-top:30px;min-height:94px;font:500 16px/24px var(--body);color:#f6f7fb}
.t1-who{display:flex;align-items:center;justify-content:flex-end;column-gap:10px;margin-top:40px}
.t1-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid hsla(0,0%,100%,.3);border-radius:50%}
.t1-avatar .ic{font-size:10px;line-height:1;color:#fff}
.t1-name{font:700 16px/16px var(--body);color:#f6f7fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t1-buttons{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.t1-btn{position:relative;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid #f6f7fb;border-radius:50%;color:#f6f7fb;pointer-events:auto}
.t1-btn .ic{font-size:14px;line-height:1}
.t1-btn:hover::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(25,25,25,.1)}
.t1-btn[disabled]{opacity:.4;cursor:not-allowed}
.t1-btn[disabled]:hover::after{display:none}
@media (max-width:800px){.t1-slide{margin-left:20px;margin-right:20px}}
@media (max-width:600px){
  .t1{background-attachment:scroll}
  .t1 .mod-title{margin-bottom:20px}
  .t1-viewport{margin:0}
  .t1-track{align-items:flex-start}
  .t1-slide{padding:30px 20px;background-position:15px 70px;margin-left:15px;margin-right:15px}
  .t1-comment{font-size:14px;line-height:21px}
  .t1-who{justify-content:flex-start}
  .t1-name{font-size:14px;line-height:21px}
  .t1-buttons{position:static;justify-content:center;column-gap:30px;margin-top:40px;height:auto}
  .t1-btn{width:30px;height:30px}
  .t1-btn .ic{font-size:10px}
}

/* Buyer / seller resources (md-tc-tb-cta): two coloured halves, text centred, button below */
.resources{margin-bottom:50px;background:#fff}
.res-grid{position:relative;display:flex;align-items:stretch;min-height:300px;padding:10px 0}
.res{position:relative;z-index:2;flex:none;width:50%;display:flex;flex-wrap:wrap;padding:0 80px}
.res+.res{flex:1}
.res--dark{background:#000;color:#fff}
.res--cream{background:var(--cream);color:#000}
.res-bg{position:absolute;top:0;bottom:0}
.res-bg--l{left:0;right:50%;background:#000}
.res-bg--r{left:50%;right:0;background:var(--cream)}
.res-text{width:100%;align-self:center;text-align:center}
.res h2{font:700 34px/40.8px var(--head)}
.res p{margin-top:20px;font:400 14px/20.02px var(--body)}
.res-btns{display:flex;justify-content:center;width:100%;margin-top:20px;align-self:center}
.res-btn{display:block;min-width:140px;height:36px;padding:0 20px;border:1px solid #b72619;background:#b72619;color:#fff;font:400 14px/34px "font-Gotham-500",serif;text-align:center;white-space:nowrap}
.res-btn:hover{background:#851f14;border-color:#851f14}

/* App callout (md-cta layout8) */
.app-cta{padding:80px 0;background:#fff}
.app-box{position:relative;padding-top:70px}
.app-text{min-height:460px;padding:30px 610px 65px 50px;background:#ececec}
.app-text h2{font:400 48px/72px var(--head);color:var(--title)}
.app-text p{margin-top:20px;font:500 18px/27px var(--body);color:var(--text)}
.app-text .btn{margin-top:30px;width:350px;height:50px;font:500 16px/50px var(--body)}
.app-img{position:absolute;top:0;right:50px;width:460px;height:460px;object-fit:cover}

/* Newsletter (md-form layout13) */
.newsletter{padding:80px 0;background:#fff}
.nl-box{padding:50px;background:#fafafa}
.nl-box h2{font:400 34px/51px var(--head);color:var(--title);text-align:center}
.nl-box h3{margin-top:20px;font:500 16px/24px var(--body);color:var(--text);text-align:center}
.nl-form{margin-top:40px}
.nl-row{display:flex;align-items:flex-end}
.nl-row input{width:calc(50% - 15px);height:50px;margin-right:30px;padding:0;border:0;border-bottom:1px solid var(--text);border-radius:0;background:transparent;box-shadow:none;color:var(--title);font:600 16px var(--body);outline:0}
.nl-row input:placeholder-shown{font-weight:400}
.nl-row input::placeholder{color:var(--tip);opacity:1}
.nl-row input:focus{border-color:var(--red)}
.nl-fields{display:flex;flex:1;column-gap:30px;padding-right:30px}
.nl-fields input{flex:1;width:auto;margin:0}
.nl-submit{flex:0 0 300px;max-width:100%;height:50px;padding:0 20px;background:var(--red);border:1px solid var(--red);color:#fff;font:400 20px/56px var(--bold);cursor:pointer}
.nl-submit.is-disabled{opacity:.4;cursor:not-allowed}
.nl-form .consent{margin-top:20px}

/* Lofty TCPA consent: 14px box with a check glyph, grey 12px text, blue underlined links */
.consent{position:relative;display:flex;margin-top:20px;font:400 12px/18px var(--body);color:var(--tip);text-align:left}
.consent-cb{position:absolute;left:0;top:2px;width:14px;height:14px;margin:0;opacity:0;cursor:pointer}
.consent-box{position:relative;flex:none;display:inline-flex;width:14px;height:14px;margin:2px 10px 0 0;border:1px solid #a0a3af;color:#a0a3af;pointer-events:none}
.consent-box .ic{position:absolute;left:50%;top:50%;display:none;font-size:13px;transform:translate(-50%,-50%)}
.consent-cb:checked+.consent-box .ic{display:block}
.consent-cb:focus-visible+.consent-box{outline:2px solid var(--red);outline-offset:2px}
.consent-text{flex:1;word-break:break-word}
.consent-text a{color:var(--link);text-decoration:underline}
.btn.is-disabled{opacity:.4}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin-top:12px;font:400 14px/20px var(--body)}
.form-status:empty{display:none}
.form-status.ok{color:#20c472}
.form-status.err{color:#f0454c}
.form-toast{position:fixed;inset:0;z-index:1001;display:flex;justify-content:center;align-items:center;background:rgba(25,25,25,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.toast-wrapper{margin:0 auto;padding:50px 30px 30px;text-align:center;background:#fff;box-shadow:0 4px 10px 0 rgba(170,186,218,.3)}
.toast-icon .ic{font-size:60px;color:var(--red)}
.toast-content{margin-top:22px;margin-bottom:13px;font:400 18px var(--body);color:#191919}
@media (max-width:600px){.toast-wrapper{width:290px;margin:0;padding:30px 15px 15px}.toast-icon .ic{font-size:48px}.toast-content{margin-top:10px;margin-bottom:5px;font-size:16px}}

/* Blog (md-blog layout1) */
.blog{padding:80px 0;background:#fff}
.blog .mod-title{margin-bottom:40px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.blog-card{display:block;color:var(--text)}
.blog-card img{width:100%;height:260px;object-fit:cover;background:#eee}
.blog-card .t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:20px;font:400 24px/36px var(--head);color:var(--title)} /* 2 lines, like Lofty */
.blog-card .d{display:-webkit-box;margin-top:15px;overflow:hidden;font:400 18px/27px var(--body);color:var(--text);-webkit-line-clamp:3;-webkit-box-orient:vertical}
.blog-more{display:flex;justify-content:center;margin-top:40px}
.blog-more .btn{width:200px;height:50px;padding:2px 20px 0;font:400 16px/1 var(--bold)}

/* Footer (md-footer layout5) */
.site-footer{position:relative;padding:80px 0;background:#eee center/cover no-repeat;text-align:center}
.site-footer::before{content:"";position:absolute;inset:0;background:rgba(232,229,225,.9)}
.site-footer .wrap{position:relative}
.f-logos{display:flex;justify-content:center;align-items:center;gap:30px}
.f-logos img{height:50px}
.f-social{display:flex;justify-content:center;gap:10px;margin-top:30px}
.f-social a{display:block;width:30px;height:30px;border:1px solid var(--title);border-radius:50%;opacity:.8;line-height:1;text-align:center}
.f-social a:hover{opacity:1}
.f-social .ic{font-size:12px;line-height:28px;color:var(--tip)}
.f-social a:hover .ic{color:var(--title)}
.f-company,.f-name{font:700 24px/36px var(--head);color:var(--title)}
.f-company{margin-top:30px}
.f-name{margin-top:10px}
.f-contact{margin-top:16px}
.f-contact a{display:inline-block;font:400 14px/21px var(--body);color:var(--text);text-decoration:underline}
.f-contact .f-email{margin-top:15px}
.f-contact .f-app{margin-top:20px}
.f-mls{height:30px;width:auto;margin:47px auto 0}
.f-disc{margin-top:30px;font:400 14px/21px var(--body);color:var(--text)}
.f-mls+.f-disc{margin-top:30px}
.f-disc+.f-mls{margin-top:10px}
.f-dns{display:block;text-align:left;font:400 14px/19px var(--body);color:#000}
.f-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:30px;padding-top:15px;border-top:1px solid rgba(218,218,218,.5);font:400 14px/21px var(--body);color:var(--tip)}
.f-bottom p{margin-top:15px}
.f-bottom a,.f-bottom button{color:var(--tip);font:inherit;text-decoration:underline}
.f-dns:hover{text-decoration:underline}

/* Cookie banner + preferences (same wording and storage as Lofty's cookie authority) */
.cookie-mask{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.2)}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:999;padding:20px 50px;background:#fff;box-shadow:0 -10px 20px rgba(25,25,25,.2);text-align:left}
.cookie-banner .ck-title{font:400 20px/26px var(--body);color:var(--title)}
.cookie-banner p{font:400 14px/24.5px var(--body);color:var(--text)}
.cookie-banner .ck-text{margin-top:15px}
.cookie-banner a,.cookie-banner .ck-prefs{color:var(--link);cursor:pointer}
.ck-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 25px;font:400 14px/40px var(--body);border:1px solid var(--red);cursor:pointer}
.ck-btn--fill{background:var(--red);color:#fff}
.ck-btn--line{background:#fff;color:var(--red);padding:0 40px}
.cookie-banner .ck-btn{margin-top:14px}
.ck-modal-mask{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5)}
.ck-modal{position:relative;width:800px;max-width:calc(100vw - 30px);max-height:calc(100vh - 30px);overflow:auto;background:#fff}
.ck-modal-head{padding:20px 40px 20px 20px;font:400 20px/26px var(--body);color:var(--title);text-transform:uppercase}
.ck-close{position:absolute;right:16px;top:20px;width:24px;height:24px;color:#606060}
.ck-body{padding:20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ck-tabs{display:flex;flex-wrap:wrap;gap:0 30px}
.ck-tab{padding-bottom:3px;border-bottom:3px solid transparent;font:400 14px/19px var(--body);color:var(--text)}
.ck-tab[aria-selected="true"]{color:var(--red);border-bottom-color:var(--red)}
.ck-pane{margin-top:20px;min-height:200px;display:flex;flex-direction:column}
.ck-pane[hidden]{display:none}
.ck-pane .desc{font:400 16px/27.36px var(--body);color:var(--text)}
.ck-pane ul{margin:20px 0 0 35px;list-style:disc;font:400 14px/23.94px var(--body);color:var(--text)}
.ck-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:20px;font:400 14px/19px var(--body);color:#000}
.ck-switch{position:relative;width:40px;height:20px;border-radius:10px;background:#d0d0d0;transition:background .2s}
.ck-switch::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.1);transition:left .2s}
.ck-switch[aria-checked="true"]{background:var(--red)}
.ck-switch[aria-checked="true"]::after{left:22px}
.ck-foot{padding:20px}
.ck-actions{display:flex;justify-content:flex-end;gap:20px}
.ck-share{margin-top:15px;font:400 16px/24px var(--body);color:#000;text-align:right}
.ck-share button{color:var(--red);font:inherit}
.ck-toast{margin-top:10px;font:400 14px/20px var(--body);color:#20c472;text-align:right}

/* ===== About page ===== */
/* Page banner (md-banner standard) */
.pbanner--about{margin-bottom:60px}
.pbanner--about .pbanner-box{min-height:265px}
.pbanner-box{position:relative;display:flex;justify-content:center;align-items:center;padding:10px 0;color:#fff}
.pbanner-pic{position:absolute;inset:0;overflow:hidden;background:center/cover no-repeat}
.pbanner-mask{position:absolute;inset:0;z-index:1;pointer-events:none}
.pbanner-title{position:relative;z-index:2;display:flex;text-shadow:0 6px 12px rgba(0,0,0,.1)}
.pbanner-line{flex:none;width:4px;margin-right:20px;background:var(--red)}
.pbanner-text{flex:1;font:700 40px/1.1 var(--head);text-shadow:0 1px 1px rgba(8,17,38,.5)}
@media (max-width:1080px){.pbanner-text{font-size:35px}}
@media (max-width:800px){.pbanner-text{font-size:30px}}
@media (max-width:600px){.pbanner-text{font-size:24px}}

/* Work with me (md-banner layout6) */
.wwm{padding:80px 0;background:#fff}
.wwm-box{display:flex;align-items:center;gap:50px}
.wwm-images{position:relative;width:calc(59% - 50px);padding-bottom:270px}
.wwm-img{aspect-ratio:1;overflow:hidden}
.wwm-img img{width:100%;height:100%;object-fit:cover;vertical-align:bottom}
.wwm-img--first{position:relative;z-index:2;width:48%;border-top-left-radius:100px}
.wwm-img--second{position:absolute;top:120px;right:0;bottom:0;z-index:1;width:68%;border-bottom-right-radius:100px}
.wwm-text{width:41%;display:flex;flex-direction:column;gap:30px}
.wwm-title{font:400 48px/1.5 var(--head);color:var(--title)}
.wwm-line{width:100%;height:1px;background:#dadada}
.wwm-copy{width:100%;max-height:490px;overflow-y:auto;padding-right:10px;font:400 16px/1.6 var(--body);color:var(--text)}
.wwm-copy p+p{margin-top:1.6em}
.wwm-copy::-webkit-scrollbar{width:5px}
.wwm-copy::-webkit-scrollbar-track{background:transparent;border-radius:5px}
.wwm-copy::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(218,218,218,.5)}
@media (max-width:800px){
  .wwm-box{flex-direction:column}
  .wwm-images{flex:none;width:100%;height:294px;padding-bottom:0}
  .wwm-img--first{position:absolute;bottom:130px;width:164px;border-top-left-radius:50px}
  .wwm-img--second{top:60px;width:234px;border-bottom-right-radius:50px}
  .wwm-text{width:100%;gap:15px}
  .wwm-copy{max-height:none;overflow-y:visible;padding-right:0}
}

/* Story (md-banner layout2) */
.story{display:flex;justify-content:flex-end;min-height:560px}
.story-text{width:calc(var(--mw) / 2);max-width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 50px 0 0;font:400 16px/1.5 var(--body);color:var(--text)}
.story-text p+p{margin-top:1.5em}
.story-text p.tight{margin-top:0}
.story-pic{position:relative;width:50%;aspect-ratio:720/520;background:center/cover no-repeat}
@media (max-width:1440px){.story-text{width:calc(50vw - 50px)}}
@media (max-width:1080px){.story-text{width:calc(50vw - 40px)}}
@media (max-width:840px){.story-text{width:calc(50vw - 30px)}}
@media (max-width:600px){
  .story{min-height:auto;flex-direction:column-reverse}
  .story-pic{width:100%;height:300px;aspect-ratio:auto}
  .story-text{width:100%;padding:30px 15px}
}

/* Sold listings (md-house layout8): coverflow, 50vw slides, sides scaled 0.884 per step */
.sold{padding:80px 0;background:#fff}
.sold .mod-title{margin-bottom:40px;color:var(--title)}
.sold-stage{position:relative;height:475px;overflow:hidden}
.sold-slide{position:absolute;left:50%;top:50%;width:50vw;transition:transform 1s ease}
.sold-slide.no-anim{transition:none}
.sold-card{position:relative;display:block;height:475px;overflow:hidden;color:#fff}
.sold-card img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.sold-card:hover>img{transform:scale(1.1)}
.sold-mask{position:absolute;inset:0;z-index:10;background:rgba(25,25,25,.5)}
.sold-info{position:absolute;inset:0;z-index:20;display:none;flex-direction:column;justify-content:space-between;padding:20px}
.sold-slide.is-active .sold-info{display:flex}
.sold-top{display:flex;justify-content:space-between;align-items:flex-start;gap:50px}
.sold-where{display:block;min-width:0}
.sold-addr{display:block;margin-bottom:10px;font:400 24px/36px var(--head)}
.sold-meta{display:block;font:400 14px/21px var(--body)}
.sold-meta span:not(:last-child)::after{content:"|";margin:0 8px}
.sold-prices{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:none}
.sold-date{display:inline-block;height:20px;padding:0 5px;background:#505050;font:700 12px/20px var(--body);white-space:nowrap}
.sold-price{font:400 24px/36px var(--head)}
.sold-trendrow{display:flex}
.sold-initial{font:400 16px/20px var(--body);text-decoration:line-through;opacity:.7}
.sold-trend{display:flex;align-items:center;padding-left:10px;font:700 16px/20px var(--body)}
.sold-trend .ic{margin-right:8px;font-size:12px}
.sold-trend.up{color:#20c472}
.sold-trend.down{color:#f0454c}
.sold-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.sold-by{font:400 12px/18px var(--body);color:hsla(0,0%,100%,.8);white-space:pre-wrap;text-align:left}
.sold-card .sold-mls{flex-shrink:0;width:auto;height:24px;max-width:120px;object-fit:contain;vertical-align:middle;transform:none;transition:none}
.sold-buttons{position:absolute;z-index:1;top:50%;left:50%;width:calc(50vw + 150px);height:50px;display:flex;justify-content:space-between;transform:translate(-50%,-50%);pointer-events:none}
.sold-btn{position:relative;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:var(--red);color:#fff;transform:rotate(90deg);pointer-events:auto}
.sold-btn--prev{transform:rotate(-90deg)}
.sold-btn .ic{font-size:24px}
.sold-btn:hover::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(25,25,25,.1)}
.sold-more{width:200px;margin:40px auto 0}
.sold-more-btn{position:relative;display:block;width:100%;height:50px;padding:15px;background:var(--red);border:1px solid var(--red);color:#fff;font:400 16px/20px var(--body);text-align:center}
.sold-more-btn:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
@media (min-width:1920px){.sold-stage,.sold-card{height:634px}}
@media (max-width:1000px){.sold-stage,.sold-card{height:330px}}

/* Testimonials (md-testimonial layout6): big centred quote, loops, height follows the slide */
.t6{min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;background:#fff}
.t6-viewport{overflow:hidden}
.t6-track{display:flex;align-items:center;transition:transform .5s ease,height .5s ease}
.t6-slide{flex:0 0 100%;margin-right:20px}
.t6-comment{min-height:51px;font:400 34px/51px var(--head);color:var(--title);text-align:center}
.t6-name{display:flex;align-items:center;justify-content:center;margin-top:30px;font:500 16px/16px var(--body);color:var(--text);text-align:center}
.t6-line{display:inline-block;width:25px;height:1px;margin-right:8px;background:var(--text)}
.t6-buttons{width:130px;height:50px;margin:40px auto 0;display:flex;justify-content:space-between;align-items:center}
.t6-btn{position:relative;display:flex;justify-content:center;align-items:center;width:50px;height:50px;border:1px solid var(--red);border-radius:50%;color:var(--red)}
.t6-btn .ic{font-size:14px;line-height:1}
.t6-btn:hover::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(25,25,25,.1)}
@media (max-width:600px){
  .t6{min-height:auto}
  .t6-comment{min-height:30px;font-size:20px;font-weight:500;line-height:30px}
  .t6-buttons{width:80px;height:30px}
  .t6-btn{width:30px;height:30px}
  .t6-btn .ic{font-size:10px;font-weight:700}
}

/* Contact (md-form layout9) */
.f9{padding:80px 0;background:#fff}
.f9-box{display:flex;gap:50px;padding:80px 0;border-top:1px solid rgba(218,218,218,.5);border-bottom:1px solid rgba(218,218,218,.5)}
.f9-left{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.f9 .mod-title{color:var(--title)}
.f9-agent{width:100%;display:flex;align-items:center;gap:20px}
.f9-photo{flex:none;width:320px;height:320px;min-width:320px;aspect-ratio:1;border-radius:50%;object-fit:cover}
.f9-detail{display:flex;flex-direction:column;justify-content:space-between;padding:20px 0}
.f9-name{margin-bottom:10px;font:400 24px/36px var(--head);color:var(--title);text-align:left}
.f9-position{margin-bottom:20px;font:400 16px/1.5 var(--body);color:var(--tip);opacity:.6}
.f9-contact{display:flex;align-items:center;justify-content:center;font:400 14px/1.5 var(--body);color:var(--title)}
.f9-contact+.f9-contact{margin-top:10px}
.f9-right{display:flex;flex-direction:column;justify-content:flex-end;width:45.5223880597%}
.f9-namebox{display:none}
@media (max-width:800px){
  .f9-box{flex-direction:column;gap:20px;padding:0 0 20px;border-top:0}
  .f9-left{flex:none;width:100%}
  .f9-agent{flex-direction:column;padding-top:20px;border-top:1px solid rgba(218,218,218,.5)}
  .f9-detail{padding:0;align-items:center}
  .f9-name{display:none}
  .f9-contact{text-align:center}
  .f9-right{width:100%}
}

/* Lofty-style lead forms (bordered inputs, label appears above the field once typed in) */
.lform-fields{display:flex;flex-wrap:wrap;gap:20px}
.lf{position:relative;display:block}
.lf--half{flex:1 0 auto;width:calc(50% - 20px)}
.lf--full{flex:1 0 auto;width:calc(100% - 20px)}
.lf input,.lf textarea{display:block;width:100%;height:50px;margin:0;padding:0 15px;border:1px solid rgba(218,218,218,.5);border-radius:0;background:transparent;box-shadow:none;color:var(--text);font:400 16px var(--body);outline:0;-webkit-appearance:none;appearance:none}
.lf textarea{height:100px;padding:10px 15px;line-height:1.25;resize:none}
.lf input::placeholder,.lf textarea::placeholder{color:var(--tip);opacity:1}
.lf input:focus,.lf textarea:focus{border-color:var(--red)}
.lf-label{position:absolute;left:10px;top:60%;z-index:-1;padding:0 5px 0 3px;background:#fff;color:var(--text);font:400 14px var(--body);opacity:0;transform:translateY(-50%);transition:.3s all ease;pointer-events:none}
.lf:focus-within .lf-label,.lf:has(input:not(:placeholder-shown)) .lf-label,.lf:has(textarea:not(:placeholder-shown)) .lf-label{top:0;z-index:1;opacity:1}
.lf--area .lf-label{top:25px}
.lform-submit{position:relative;display:block;width:100%;height:50px;margin-top:30px;padding:0 20px;border:0;background:var(--red);color:#fff;font:400 16px var(--bold);cursor:pointer}
.lform-submit:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
.lform-submit[disabled]{opacity:.4;cursor:not-allowed}
.lform-submit[disabled]:hover::after{display:none}
.lform--9 .consent{margin-top:30px}
@media (max-width:800px){
  .lform-fields{gap:10px}
  .lf--half{width:100%}
  .lf--area{width:100%}
  .lf--area textarea{height:112px}
  .lform-submit{margin-top:20px}
}


/* ===== Reviews page ===== */
/* Banner (md-banner layout1): fixed photo, 50% mask, left-aligned title */
.pb1-box{position:relative;display:flex;justify-content:center;align-items:center;padding:10px 0;color:#fff;background:#191919}
.pb1-pic{position:absolute;inset:0;overflow:hidden;background:center/cover no-repeat fixed}
.pb1-mask{position:absolute;inset:0;z-index:1;background:rgba(25,25,25,.5);pointer-events:none}
.pb1-content{position:relative;z-index:101;display:flex;flex-direction:column;justify-content:flex-start}
.pb1-title{margin-bottom:25px;font:400 24px/1.5 var(--head);color:#fff;text-align:left}
.pb1-sub{font:400 16px/1.5 var(--body);color:#fff;text-align:left}
@media (max-width:600px){.pb1-pic{background-attachment:scroll}.pb1-title{margin-bottom:15px;font-size:20px}.pb1-sub{font-size:14px}}

/* Reviews (md-testimonial layout2) */
.t2{padding:80px 0;background:#fff}
.t2-title{margin-bottom:40px;color:var(--title)}
.t2-content{display:flex;align-items:flex-start}
.t2-agent{position:sticky;top:90px;flex:none;width:330px;margin-right:50px}
.t2-photo{display:block;width:100%;height:330px;object-fit:cover}
.t2-info{padding-top:30px;text-align:left}
.t2-name{margin-bottom:40px;font:400 34px/50px var(--body);color:var(--title)}
.t2-share{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.t2-share-item{display:flex;justify-content:center;align-items:center;width:30px;height:30px;border:1px solid var(--text);border-radius:50%;color:var(--text)}
.t2-share-item .ic{font-size:12px}
.t2-share-item:hover{border-color:var(--title);background:var(--title);color:#fff}
.t2-msg p{margin-bottom:10px;font:400 16px/24px var(--body);color:var(--text)}
.t2-msg p:last-child{margin-bottom:0}
.t2-email{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.t2-main{flex:1;min-width:0}
.t2-tabs{display:flex;column-gap:30px;margin-bottom:20px}
.t2-tab{height:30px;padding:0 0 10px;border:0;background:none;color:var(--text);font:400 20px/20px var(--body);cursor:pointer}
.t2-tab.is-active{padding-bottom:7px;font-weight:500;border-bottom:3px solid var(--red)}
.t2-add{width:100%;height:300px;padding:20px;border:1px solid rgba(218,218,218,.5)}
.t2-review{position:relative;display:flex;flex-direction:column;width:100%;height:100%}
.t2-review-top{display:flex;flex:1;width:100%;padding-bottom:20px}
.t2-review-top textarea{width:100%;height:100%;padding:0;border:0;box-shadow:none;background:transparent;color:var(--title);font:400 16px/24px var(--body);resize:none;outline:0}
.t2-review-top textarea::placeholder{color:var(--tip);opacity:1}
.t2-review-bottom{display:flex;justify-content:space-between;align-items:flex-end;width:100%;height:50px}
.t2-rating{display:flex}
.t2-rating-title{font:500 20px/20px var(--body);color:var(--text)}
.t2-rating-stars{display:flex;margin-left:20px;line-height:20px}
.t2-star{padding:0;margin-right:10px;border:0;background:none;color:rgba(218,218,218,.5);line-height:20px;cursor:pointer}
.t2-star .ic{font-size:20px}
.t2-star.is-on{color:var(--title)}
.t2-send{width:149px;height:100%;border:0;background:var(--red);color:#fff;font:700 16px var(--bold);text-align:center;cursor:pointer}
.t2-err{position:absolute;left:0;bottom:-38px;font:400 12px var(--body);color:#f76363}
.t2-list{margin-top:50px}
.t2-list-title{margin-bottom:40px;font:400 24px/1.5 var(--head);color:var(--title);text-align:left}
.t2-item{margin-bottom:80px}
.t2-item:last-child{margin-bottom:0}
.t2-comment{font:500 24px/36px var(--body);color:var(--title);text-align:left}
.t2-bottom{display:flex;justify-content:space-between;align-items:center;column-gap:50px;margin-top:30px}
.t2-who{flex:1;font:500 16px/16px var(--body);color:var(--text);text-align:left}
.t2-stars{display:flex;align-items:center;height:20px}
.t2-stars .ic{margin-right:10px;font-size:20px;color:var(--title)}
.t2-stars .ic:last-child{margin-right:0}
.t2-refer-title{font:400 24px/1.5 var(--head);color:var(--title);text-align:left}
.t2-refer-sub{margin-top:12px;font:400 16px/24px var(--body);color:var(--text);text-align:left}
.t2-refer-form{margin-top:40px}
.t2-refer-form::after{content:"";display:table;clear:both}
.t2-refer-item{margin-bottom:20px}
.t2-refer-item input{padding:0 20px;color:var(--title);line-height:20px}
.t2-refer-msg{height:200px;margin-bottom:30px;border:1px solid rgba(218,218,218,.5)}
.t2-refer-msg textarea{height:170px;padding:15px 20px;border:0;color:var(--title);line-height:24px}
.t2-refer-form .lf-label{padding:0 10px;color:var(--tip);font-size:12px}
.t2-refer-btn{float:right;width:149px;height:50px}
.t2-refer-submit{width:100%;height:100%;border:0;background:var(--red);color:#fff;font:700 16px/1 var(--bold);text-align:center;cursor:pointer}
.t2-refer-submit[disabled]{opacity:.4;cursor:not-allowed}
.t2-refer-form .form-status{clear:both;padding-top:12px}
@media (max-width:800px){
  .t2-title{margin-bottom:20px}
  .t2-content{flex-direction:column}
  .t2-agent{position:static;order:1;width:100%;margin:30px 0 0}
  .t2-photo{height:345px}
  .t2-info{padding-top:20px}
  .t2-name{margin-bottom:30px}
  .t2-main{order:0;width:100%}
  .t2-tab{font-size:16px}
  .t2-add{padding:15px;margin-bottom:100px}
  .t2-review-bottom{position:relative;height:20px;align-items:center}
  .t2-send{position:absolute;top:55px;left:-15px;right:0;width:345px;height:50px}
  .t2-list{margin-top:0}
  .t2-list-title{margin-bottom:20px;font-size:20px}
  .t2-item{margin-bottom:30px}
  .t2-comment{font-size:18px;line-height:27px}
  .t2-bottom{flex-wrap:wrap;gap:20px;margin-top:20px}
  .t2-who{order:2}
  .t2-stars{order:1;width:100%}
  .t2-refer-sub{margin-top:10px;font-size:14px;line-height:21px}
  .t2-refer-form{margin-top:20px}
  .t2-refer-msg{margin-bottom:20px}
  .t2-refer-btn{float:none;width:100%}
}

/* Contact (md-form layout2) */
.f2{background:#f5f6fa}
.f2-box{display:flex}
.f2-agent{position:relative;flex:0 0 50%;width:50%}
.f2-agent img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.f2-agent::before{content:"";position:absolute;left:0;bottom:0;z-index:1;width:100%;height:42%;background:linear-gradient(180deg,rgba(25,25,25,0) 0%,rgba(25,25,25,.7) 100%);pointer-events:none}
.f2-detail{position:absolute;left:0;bottom:32px;z-index:2;width:100%;color:#fff;text-align:center}
.f2-name{margin-bottom:20px;font:400 20px/30px var(--head);color:#fff}
.f2-position{padding:0 15px;font:400 14px var(--body);opacity:.7}
.f2-phone{margin-top:6px;font:400 14px var(--body)}
.f2-right{flex:0 0 50%;width:50%;padding:60px 50px 70px 40px}
.f2-right .mod-title{margin-bottom:20px;color:var(--title)}
.lform--2 .lform-fields{gap:20px}
.lform--2 .lf input,.lform--2 .lf textarea{background:transparent}
.lform--2 .lf--area textarea{height:112px}
.lform--2 .lf-label{padding:0 10px;background:#f5f6fa;color:var(--text)}
.lform--2 .lform-fields{padding-top:10px;margin-bottom:3px}
.lform--2 .lform-submit{margin-top:15px;font-size:20px}
.lform--2 .consent{margin-top:30px;font-size:16px;line-height:24px;color:#a0a3af}
@media (max-width:600px){
  .f2-box{display:block}
  .f2-agent{width:100%;height:365px}
  .f2-agent img{position:absolute}
  .f2-detail{bottom:22px}
  .f2-right{width:100%;padding:20px 15px 0}
  .lform--2 .consent{font-size:12px;line-height:18px}
}

/* Review sign-off dialog */
.rv-modal{position:fixed;inset:0;z-index:1001;display:flex;justify-content:center;align-items:center;padding:15px;background:rgba(25,25,25,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.rv-box{position:relative;width:420px;max-width:100%;padding:40px 30px 30px;background:#fff;box-shadow:0 4px 10px 0 rgba(170,186,218,.3)}
.rv-close{position:absolute;top:12px;right:12px;padding:6px;border:0;background:none;color:#505050;cursor:pointer}
.rv-close .ic{font-size:14px}
.rv-title{font:400 24px/36px var(--head);color:var(--title)}
.rv-text{margin:8px 0 20px;font:400 14px/21px var(--body);color:var(--text)}
.rv-form .lf{margin-bottom:15px}
.rv-form .lform-submit{margin-top:10px}


/* ===== Buying page ===== */
.page-buy main{padding-top:0} /* Lofty's Buying page has no header placeholder: the first module sits under the bar */

/* Area tiles (md-featured-area layout8) */
.fa{padding:80px 0;background:#fff}
.fa-title{margin-bottom:40px;color:var(--title)}
.fa-grid{display:flex;flex-wrap:wrap;gap:20px}
.fa-grid.len1,.fa-grid.len2{justify-content:center}
.fa-item{position:relative;display:block;width:calc((100% - 40px) / 3);height:370px;overflow:hidden}
.fa-img{display:block;width:100%;height:100%;overflow:hidden}
.fa-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.fa-item:hover .fa-img img{transform:scale(1.1)}
.fa-mask{position:absolute;inset:0;z-index:10;background:rgba(25,25,25,.5)}
.fa-bottom{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px}
.fa-name{display:block;width:100%;font:400 24px/36px var(--body);color:#fff;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .3s ease}
.fa-item:hover .fa-name{padding-bottom:30px;border-bottom:1px solid rgba(218,218,218,.5)}
@media (max-width:800px){
  .fa-grid{flex-wrap:nowrap;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 15px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .fa-grid::-webkit-scrollbar{display:none}
  .fa-item{flex:0 0 335px;width:335px;height:265px;scroll-snap-align:start}
  .fa-item:hover .fa-name{padding-bottom:0;border-bottom:0}
}
@media (max-width:600px){.fa-title{margin-bottom:20px}.fa-bottom{padding:20px}.fa-name{line-height:30px}}

/* My Theo (md-cta layout2 with a tall photo band) */
.cta2{display:flex;flex-direction:column;min-height:640px;padding-bottom:80px;background:#fff}
.cta2-band{position:relative;flex:1;min-height:550px;background:center/cover no-repeat fixed}
.cta2-mask{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.cta2-card{position:relative;margin-top:-85px;padding:40px 100px;background:#fff;border-bottom:2px solid var(--red);box-shadow:0 10px 30px 0 rgba(25,25,25,.149);text-align:center}
.cta2-title{font:400 34px/51px var(--head);color:var(--title)}
.cta2-sub{padding-bottom:35px;font:400 16px/24px var(--head);color:var(--title)}
.cta2-btns{display:flex;justify-content:center;padding-bottom:10px}
.cta2-btn{position:relative;display:block;width:200px;max-width:100%;height:50px;border:0;background:var(--red);color:#fff;font:500 16px/50px var(--bold);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cta2-btn:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
@media (max-width:600px){.cta2-band{flex:none;height:150px;min-height:0;background-attachment:scroll}.cta2-card{margin-top:-20px;padding:35px 15px}.cta2-sub{padding-bottom:20px;font-size:12px}}

/* Affordability calculator (md-calculator affordability) */
.calc2{margin-bottom:50px;padding-top:10px;background:#fff}
.calc2-title{padding-bottom:12px;font:700 24px/36px var(--head);color:var(--title)}
.calc2-desc{margin-bottom:50px;font:700 15px/1.2 var(--body);color:var(--title)}
.calc2-body{display:flex;align-items:flex-start}
.calc2-form{flex:0 0 auto;width:22.14%}
.calc2-item{margin-bottom:16px}
.calc2-item label{display:block;margin-bottom:10px;font:400 13px var(--body);color:var(--text)}
.calc2-input{position:relative}
.calc2-pre,.calc2-suf{position:absolute;top:50%;z-index:1;font:400 14px var(--body);transform:translateY(-50%)}
.calc2-pre{left:10px;color:var(--title)}
.calc2-suf{right:10px;color:#515666}
.calc2-input input,.calc2-select{display:block;width:100%;height:36px;padding:0 10px;border:1px solid #dcdcdc;border-radius:2px;background:#fff;box-shadow:none;color:var(--title);font:400 14px/34px var(--body);outline:0;-webkit-appearance:none;appearance:none}
.calc2-input--pre input{padding-left:20px}
.calc2-select{font-size:13.3333px}
@media (max-width:1080px){.calc2-input input,.calc2-pre,.calc2-suf,.calc2-price-label{font-size:12px}}
.calc2-input--suf input{padding-right:22px}
.calc2-input--suf-lg input{padding-right:70px}
.calc2-input input::-webkit-outer-spin-button,.calc2-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc2-input input[type=number]{-moz-appearance:textfield}
.calc2-select{background:#fff url("/images/calc-select-arrow.png") 94% 50%/9px 5px no-repeat;cursor:pointer}
.calc2-submit-row{display:flex;justify-content:space-between;align-items:center}
.calc2-more{padding:0;border:0;background:none;color:var(--text);font:400 14px var(--body);cursor:pointer}
.calc2-more .ic{display:inline-block;font-size:12px}
.calc2-more[aria-expanded="true"] .ic{transform:rotate(180deg)}
.calc2-submit{position:relative;width:120px;height:36px;border:0;border-radius:2px;background:var(--red);color:#fff;font:400 14px var(--bold);cursor:pointer}
.calc2-submit:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
.calc2-result{flex:0 0 auto;width:44.44%;margin:0 20px}
.calc2-payment{margin-bottom:20px;background:#fafafa}
.calc2-afford{width:100%;padding:20px;border:1px solid #e4e4e4;border-radius:3px}
.calc2-price{margin-bottom:20px}
.calc2-price-label{font:400 14px var(--body);color:#000}
.calc2-price-value{font:400 16px var(--body);color:#464646}
.calc2-controller{display:flex;margin-bottom:10px}
.calc2-controller .ic{flex:0 0 auto;display:inline-block;font-size:36px;color:#adb4c4}
.calc2-slider{flex:1 1 auto;height:30px;margin:0 20px;cursor:pointer;touch-action:none;outline:0}
.calc2-runway{position:relative;height:6px;border-radius:10px;background:#ebecf1;transform:translateY(14px)}
.calc2-track{position:absolute;left:0;height:6px;border-radius:10px 0 0 10px;background:var(--red)}
.calc2-thumb{position:absolute;top:50%;z-index:1;width:20px;height:20px;border:2px solid #ededed;border-radius:50%;background:var(--red);box-shadow:0 1px 1px 0 rgba(0,0,0,.3);transform:translate(-50%,-50%);cursor:grab}
.calc2-slider:focus-visible .calc2-thumb{outline:2px solid var(--red);outline-offset:2px}
.calc2-slider.warning .calc2-track,.calc2-slider.warning .calc2-thumb{background:#fb0}
.calc2-slider.danger .calc2-track,.calc2-slider.danger .calc2-thumb{background:#f15151}
.calc2-debt{margin-bottom:20px;font:400 14px var(--body);color:#464646;text-align:center}
.calc2-ratio{display:inline-block;width:20px}
.calc2-search{position:relative;display:block;width:210px;height:30px;margin:auto;background:var(--red);color:#fff;font:400 13px/30px var(--body);text-align:center}
.calc2-search:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
.calc2-search.is-disabled{cursor:not-allowed}
.calc2-schedule{padding:20px;border:1px solid #e4e4e4;border-radius:3px;background:#fafafa}
.calc2-sched-title{margin-bottom:30px;font:400 16px var(--body);color:#464646}
.calc2-pie{display:flex;flex-direction:column;align-items:center;width:100%}
.calc2-donut{display:block;width:200px;height:200px}
.calc2-donut-total{fill:#191919;font:400 18px var(--body)}
.calc2-donut-month{fill:#bebebe;font:400 14px var(--body)}
.calc2-cats{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin-top:30px}
.calc2-cat{position:relative;display:flex;flex-wrap:wrap;flex:1 1 auto;max-width:fit-content;margin:0 10px 12px 0;padding-left:30px;word-break:break-word}
.calc2-mark{position:absolute;top:2px;left:10px;width:12px;height:12px}
.calc2-cat-title{flex:0 0 auto;margin-right:10px;font:400 14px var(--body);color:var(--title)}
.calc2-cat-price{font:400 14px var(--body);color:#464646;white-space:nowrap}
.calc2-empty{display:flex;flex-direction:column;justify-content:center;height:200px;text-align:center}
.calc2-empty-dollar{font:400 18px var(--body);color:#000}
.calc2-empty-month{font:400 14px var(--body);color:#bebebe}
.calc2-lead{flex:0 0 auto;width:calc(33.42% - 40px);max-height:460px;overflow:auto;padding:32px 25px 40px;background:var(--red)}
.calc2-lead-title{margin-bottom:32px;font:700 20px/1.2 var(--body);color:#fff;text-align:center}
.calc2-lead-form input[type=text],.calc2-lead-form input[type=email],.calc2-lead-form input[type=tel]{display:block;width:100%;height:36px;margin-bottom:20px;padding:0 11px;border:1px solid #dadada;border-radius:2px;background:#fff;box-shadow:none;color:var(--title);font:400 12px var(--body);outline:0}
.calc2-lead-form input::placeholder{color:#a8a8a8;font-size:13px;opacity:1}
.calc2-lead-submit{display:block;width:100%;height:40px;border:0;background:#0f3141;color:#fff;font:400 13.33px var(--bold);cursor:pointer}
.calc2-lead-submit[disabled]{opacity:.4;cursor:not-allowed}
.calc2-lead .consent{margin-top:30px;color:#fff}
.calc2-lead .consent-box{border-color:#fff;color:#fff}
.calc2-lead .consent-text a{color:inherit}
.calc2-lead .form-status{color:#fff}
@media (max-width:600px){
  .calc2-body{flex-direction:column}
  .calc2-form{width:100%;margin-bottom:20px}
  .calc2-result{width:100%;margin:0 0 20px}
  .calc2-lead{width:100%;max-height:none}
}

/* Mortgage News Daily rates widget */
.rates2{margin-bottom:60px}
.mnd-rates-widget{width:500px;max-width:100%;height:340px;font-size:12px}
.mnd-rates-widget .w-header,.mnd-rates-widget .w-footer{padding:4px 0;background:#336699;color:#fff;text-align:center;font:400 12px var(--body)}
.mnd-rates-widget a{color:#fff;text-decoration:none}
.mnd-rates-widget iframe{display:block;box-sizing:border-box;width:500px;max-width:100%;height:290px;border:solid #336699;border-width:0 1px}

/* Mortgage help (rich text block) */
.help2{margin-bottom:50px;padding:40px 0;background:#f1f1f1}
.help2 h2{margin-bottom:16px;font:700 24px var(--body);color:#23282b}
.help2-item{margin-bottom:16px}
.help2-item h3{height:18px;font:500 15px/18px "font-bold",serif;color:var(--title)}
.help2-item p{font:400 14px/20px var(--body);color:var(--title)}
@media (max-width:600px){.help2{padding:20px 0}}

/* FAQ (md-content layout6) */
.faq{padding:80px 0;background:#fff}
.faq--bold .faq-q-text,.faq--bold .faq-a{font-weight:700}
.faq-title{margin-bottom:40px;font:400 48px/72px var(--head);color:var(--title)}
.faq-item{padding:24px 0;border-top:1px solid #dadada}
.faq-q button{display:flex;justify-content:space-between;align-items:flex-start;gap:56px;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.faq-q-text{font:400 24px/1.2 var(--body);color:var(--title)}
.faq-arrow{flex:none;width:24px;height:24px;margin-top:2px;line-height:24px;text-align:center}
.faq-arrow .ic{margin:0;font-size:16px;color:var(--title)}
.faq-q button:hover .ic{color:var(--red)}
.faq-a{margin-top:24px;padding-right:80px;font:400 20px/1.5 var(--body);color:var(--title)}
@media (max-width:800px){
  .faq-title{margin-bottom:20px;font-size:30px;line-height:45px}
  .faq-item{padding:15px 0}
  .faq-q button{gap:24px}
  .faq-q-text{font-size:18px}
  .faq-arrow{width:16px;height:16px;line-height:16px}
  .faq-arrow .ic{font-size:12px}
  .faq-a{margin-top:15px;padding-right:40px;font-size:14px}
}

/* Off-market hero (md-hero layout1) */
.hero1-box{position:relative;display:flex;justify-content:center;align-items:center;min-height:800px;padding:0 0 50px;color:#fff}
.hero1-pic{position:absolute;inset:0;overflow:hidden;background:center/cover no-repeat}
.hero1-mask{position:absolute;inset:0;z-index:1;background:rgba(25,25,25,.4);pointer-events:none}
.hero1-text{position:relative;z-index:2;text-align:center}
.hero1-title{font:400 70px/105px var(--head);color:#fff}
.hero1-sub{padding-bottom:30px;font:400 20px/30px var(--body);color:#fff}
@media (max-width:800px){.hero1-box{min-height:560px}.hero1-title{font-size:48px;line-height:72px}}
@media (max-width:600px){.hero1-box{min-height:460px}.hero1-title{font-size:36px;line-height:54px}.hero1-sub{font-size:16px;line-height:24px}}

/* Off-market opportunities (md-cta layout9): image right, text left */
.cta9{display:flex;flex-direction:row-reverse;background:#fff}
.cta9-img{position:relative;width:50%;min-height:500px}
.cta9-img img{width:100%;height:100%;object-fit:cover;vertical-align:bottom}
.cta9-text{width:calc(var(--mw) / 2);max-width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:30px;padding:80px 50px 80px 0;margin-left:auto}
.cta9-titles{display:flex;flex-direction:column;gap:20px;width:100%}
.cta9-title{font:400 24px/36px var(--head);color:var(--title)}
.cta9-sub{font:500 16px/24px var(--body);color:var(--text)}
.cta9-btns{display:flex;justify-content:flex-start}
.cta9-btn{position:relative;display:block;min-width:150px;height:50px;padding:0 20px;border:1px solid var(--red);background:transparent;color:var(--red);font:400 16px/48px var(--bold);text-align:center}
.cta9-btn:hover::after{content:"";position:absolute;inset:0;background:rgba(25,25,25,.1)}
@media (max-width:1440px){.cta9-text{width:calc(50vw - 50px)}}
@media (max-width:1080px){.cta9-text{width:calc(50vw - 40px)}}
@media (max-width:840px){.cta9-text{width:calc(50vw - 30px)}}
@media (max-width:800px){.cta9-text{width:calc(50vw - 20px)}}
@media (max-width:600px){.cta9{display:block}.cta9-img{width:100%;height:260px;min-height:0}.cta9-text{width:100%;padding:20px 15px 40px;gap:15px}.cta9-titles{gap:10px}}

/* How it works (md-content layout3): three cards, staggered, sticky while scrolling */
.how3{position:relative;padding:80px 0;background:#fff}
.how3-title{position:sticky;top:100px;margin-bottom:40px;font:400 48px/72px var(--head);color:var(--title);text-align:left}
.how3-cards{display:flex;justify-content:center;align-items:flex-start;gap:40px}
.how3-card{position:sticky;top:210px;width:calc((100% - 80px) / 3)}
.how3-card:nth-child(2){margin-top:268px}
.how3-card:nth-child(3){margin-top:508px}
.how3-num{width:40px;height:40px;background:var(--title);color:#fff;font:400 14px/40px var(--body);text-align:center}
.how3-img{width:100%;aspect-ratio:7/6;overflow:hidden}
.how3-img img{width:100%;height:100%;object-fit:cover;vertical-align:middle;transition:transform .3s ease}
.how3-img img:hover{transform:scale(1.1)}
.how3-card-title{margin-top:20px;font:400 24px/36px var(--head);color:var(--title)}
.how3-card-text{margin-top:15px;font:400 16px/24px var(--body);color:var(--text)}
@media (max-width:800px){
  .how3-title{position:static;text-align:center;font-size:30px;line-height:45px}
  .how3-cards{display:block}
  .how3-card{position:static;width:100%;margin-top:0!important}
  .how3-card+.how3-card{margin-top:20px!important}
  .how3-card-text{margin-top:10px}
}

/* Why it matters: same half/half block as the About story, with a title */
.story-title{margin-bottom:28px;font:400 24px/36px var(--head);color:var(--title)}
.story-lead{font:500 16px/24px var(--body);color:var(--text)}

/* Off-market sales: About's coverflow with a subtitle */
.sold-desc{margin-top:12px;font:400 16px/24px var(--body);color:var(--text)}
.sold--sub .mod-title{margin-bottom:0}
.sold--sub .wrap{margin-bottom:40px}

/* Unlock off-market opportunities (md-form layout3) */
.f3{position:relative;padding:80px 0;background:#111 center/cover no-repeat}
.f3-mask{position:absolute;inset:0;background:rgba(0,0,0,.8)}
.f3-box{position:relative}
.f3-title{font:400 24px/36px var(--head);color:#fff}
.f3-inputs{display:flex;margin:0 -10px}
.f3-col{display:flex;flex-direction:column;flex:0 0 auto;width:calc(50% - 20px);margin:0 10px}
.f3-col input{display:block;width:100%;height:50px;margin-top:20px;padding:10px;border:1px solid rgba(218,218,218,.5);border-radius:0;background:transparent;box-shadow:none;color:#fff;font:400 14px var(--body);outline:0}
.f3-col--msg{margin-top:20px}
.f3-col textarea{width:100%;height:100%;min-height:150px;padding:10px;border:1px solid rgba(218,218,218,.5);border-radius:0;background:transparent;box-shadow:none;color:#fff;font:400 13.33px var(--body);resize:none;outline:0}
.f3-col input::placeholder,.f3-col textarea::placeholder{color:rgba(255,255,255,.5);opacity:1}
.f3-col input:focus,.f3-col textarea:focus{border-color:#fff}
.f3 .consent{margin-top:30px;color:rgba(255,255,255,.5)}
.f3 .consent-box{border-color:rgba(255,255,255,.5);color:rgba(255,255,255,.5)}
.f3-submit-row{margin-top:30px;text-align:right}
.f3-submit{min-width:200px;height:50px;padding:10px 20px;border:0;background:#fff;color:#1c1c1c;font:400 13.33px var(--bold);cursor:pointer}
.f3-submit[disabled]{opacity:.4;cursor:not-allowed}
.f3 .form-status{color:#fff}
@media (max-width:600px){
  .f3-inputs{display:block;margin:0}
  .f3-col{width:100%;margin:0}
  .f3-col textarea{height:150px}
  .f3 .consent{margin-top:20px}
  .f3-submit-row{margin-top:20px}
  .f3-submit{width:100%}
}

/* Networks (md-partner layout3): three logos split by rules */
.partners3{padding:80px 0;background:#fff}
.partners3-row{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;row-gap:60px}
.partners3-item{box-sizing:content-box;display:inline-flex;justify-content:center;align-items:center;width:300px;height:100px;padding:0 calc((100% - 900px - 2px) / 6);border-right:1px solid #dadada}
.partners3-item:nth-child(3n),.partners3-item:last-child{border-right:0}
.partners3-item img{width:100%;height:60px;object-fit:contain}
@media (max-width:1080px){.partners3-item{width:calc((100% - 180px - 2px) / 3);padding:0 30px}}
@media (max-width:800px){.partners3-row{align-items:flex-start;row-gap:20px}.partners3-item{width:100%;height:50px;padding:0 37px;border-right:0}}

/* Reviews (md-testimonial layout7): dark, 2.6 cards across, neighbours dimmed */
.t7{position:relative;padding:80px 0;background:#191919;color:#fff}
.t7-title{margin-bottom:40px;font:400 24px/36px var(--head);color:#fff}
.t7-wrap{position:relative}
.t7-viewport{overflow:hidden}
.t7-track{display:flex;align-items:center;width:100%;margin-left:calc((100px - 100%) * .2);transition:transform .5s ease}
.t7-slide{flex:0 0 auto;width:calc((100% - 80px) / 2.6);height:350px;margin-right:50px;display:flex;flex-direction:column;padding:30px;background:#191919;transition:opacity .5s ease}
.t7-slide.is-dim{opacity:.2}
.t7-who{display:flex;align-items:center;margin-bottom:20px}
.t7-avatar{display:flex;justify-content:center;align-items:center;flex:none;width:80px;height:80px;margin-right:20px;border:1px solid #fff;border-radius:50%}
.t7-avatar .ic{font-size:24px;color:#fff}
.t7-name{width:calc(100% - 100px);font:700 16px/24px var(--body);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t7-desc{flex:1;margin-bottom:24px;padding-right:10px;overflow-y:auto;font:400 18px/27px var(--body);color:#fff}
.t7-desc::-webkit-scrollbar{width:6px}
.t7-desc::-webkit-scrollbar-thumb{border-radius:6px;background:#d9d9d9}
.t7-stars{display:flex;align-items:center}
.t7-stars .ic{margin-right:5px;font-size:16px;color:#ff973b}
.t7-buttons{position:absolute;top:50%;left:50%;z-index:10;display:flex;justify-content:space-between;align-items:center;width:calc(100% + (100px - 100%) * .2 + 60px);transform:translate(calc(-50% + 18px),-50%);pointer-events:none}
.t7-btn{position:relative;display:flex;justify-content:center;align-items:center;width:50px;height:50px;border-radius:50%;background:var(--red);color:#fff;pointer-events:auto}
.t7-btn .ic{font-size:20px;line-height:1}
.t7-btn:hover::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(25,25,25,.1)}
@media (max-width:800px){
  .t7-title{margin-bottom:20px}
  .t7-track{margin-left:15px;align-items:flex-start}
  .t7-slide{width:330px}
  .t7-desc{font-size:16px;line-height:24px}
  .t7-buttons{display:none}
  .t7-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .t7-viewport::-webkit-scrollbar{display:none}
  .t7-slide{scroll-snap-align:start;padding:20px}
}

/* ===================== Lofty's mobile layout (800px and below) =====================
   Lofty switches to its mobile layout at 800px; some modules keep their desktop arrangement up to
   600px. Measured from the live site at 700px and at 390px with a phone browser. */
@media (max-width:800px){
  /* Header: menu icon right, slide-in drawer from the right (Lofty md-header progressive mobile) */
  .site-header .logo{left:30px;top:24px;z-index:3}
  .site-header .logo img{width:auto;height:22.5px}
  .nav-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;z-index:3;width:50px;height:100%;color:#282828}
  .nav-toggle .ic{font-size:18px}
  .nav-toggle .ic-close,.nav-open .nav-toggle .ic-menu{display:none}
  .nav-open .nav-toggle .ic-close{display:inline}
  .nav-mask{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:1;background:rgba(0,0,0,.6)}
  .nav-open .nav-mask{display:block}
  .nav-open{overflow:hidden}
  .site-nav{position:fixed;top:var(--header-h);bottom:0;right:-330px;z-index:2;display:block;width:310px;height:auto;padding:71px 0 20px;background:#fff;overflow-y:auto;transition:right .3s ease}
  .nav-open .site-nav{right:0}
  .menu{display:block;height:auto}
  .menu-item{display:block;margin:0}
  .menu-item>a{display:block;position:relative;height:auto;margin:0 20px;border-bottom:1px solid #ebebeb;font:400 14px/50px var(--body);color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .menu-item.has-sub>a{padding-right:56px}
  .menu-item>a .chev{position:absolute;right:0;top:50%;margin:0;font-size:15px;transform:translateY(-50%) rotate(180deg) scale(.5)}
  .menu-item.open>a .chev::before{display:inline-block;transform:rotate(180deg)}
  .sub{display:none;position:static;padding:0;background:none;box-shadow:none;opacity:1;visibility:visible;transition:none;white-space:normal}
  .menu-item.open .sub{display:block}
  .sub a{padding:0 20px;font:400 14px/40px var(--body);color:#333;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .account{position:absolute;top:20px;left:20px;right:20px;justify-content:center;font:400 14px/30px var(--body);text-transform:capitalize}
  .account .icon-account,.account .sep{display:none}
  .account a{display:flex;align-items:center;justify-content:center;width:80px;height:30px}
  .account a:first-of-type{background:#fff;border:1px solid #ccc;color:#505050}
  .account a:last-of-type{background:#2492fc;color:#fff}
  .account a:hover{color:inherit}

  .mod-title{font-size:20px;line-height:30px}

  /* Home hero: height follows the content (at least 260px), buttons stacked */
  .hero{display:flex;align-items:center;height:auto;min-height:260px;padding:10px 0}
  .hero-track{position:absolute;inset:0}
  .hero-content{position:relative;inset:auto;width:100%;padding:0 20px}
  .hero h1{margin-bottom:0;font-size:50.54px;line-height:50px}
  .hero-sub{margin:15px 0 0;padding-bottom:21px;font-size:17px;line-height:normal}
  .hero-actions{flex-direction:column;align-items:center;gap:0;padding-bottom:4px}
  .btn-hero{width:212px;height:32px;margin-top:15px;padding:0 10px;border-radius:2px;font-size:16px;line-height:28px}

  /* Off-market card */
  .om-cta{padding-bottom:40px}
  .om-band{height:124px}
  .om-card h2{font-size:20px;line-height:30px}
  .om-card p{font-size:12px;line-height:18px}
  .om-card{padding-bottom:40px}
  .om-card .btn{margin-bottom:10px}

  /* Listings: swipeable row, 1.2 cards in view */
  .listings{padding:40px 0}
  .listings .mod-title{margin-bottom:20px}
  .ls-viewport{height:auto;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ls-viewport::-webkit-scrollbar{display:none}
  .ls-track{align-items:stretch;transform:none!important;transition:none}
  .ls-slide,.ls-slide.is-lead{flex:0 0 calc((100% - 2px) / 1.2);margin-right:10px;padding:0;scroll-snap-align:start}
  .ls-card,.ls-slide.is-lead .ls-card{display:flex;flex-direction:column;height:100%;padding:16px;border:1px solid rgba(218,218,218,.5)}
  .ls-photo,.ls-slide.is-lead .ls-photo{height:224px}
  .ls-info,.ls-slide.is-lead .ls-info{position:static;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start;height:auto;padding:15px 0 0;background:none}
  .ls-slide.is-lead .ls-price{color:var(--ink)}
  .ls-meta,.ls-slide.is-lead .ls-meta{height:auto;margin-top:5px;font-size:14px;line-height:21px;color:var(--text)}
  .ls-addr,.ls-slide.is-lead .ls-addr{display:-webkit-box;height:auto;margin:5px 0 15px;font-size:14px;line-height:21px;white-space:normal;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ls-mlsbox{margin-top:auto}
  .ls-by{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ls-slide.is-lead .ls-by{color:var(--tip)}
  .ls-nav{position:static;justify-content:center;height:auto;margin-top:20px}
  .ls-arrows{display:none}

  /* Resources: stacked */
  .resources{margin-bottom:15px}
  .res-grid{display:block;width:100%;min-height:0;padding:0}
  .res{width:100%;flex-direction:column;justify-content:center;padding:40px 15px}
  .res-bg{display:none}

  /* App callout */
  .app-cta{padding:40px 0}
  .app-box{padding-top:0}
  .app-text{min-height:0;padding:40px 20px}
  .app-text h2{font-size:20px;line-height:30px}
  .app-text p{margin-top:10px;font-size:16px;line-height:24px}
  .app-text .btn{display:flex;width:100%;margin-top:20px}
  .app-img{position:static;width:100%;height:auto;aspect-ratio:1/1}

  /* Newsletter and blog */
  .newsletter,.blog{padding:40px 0}
  .nl-fields,.nl-fields input{min-width:0}
  .nl-box h2{font-size:24px;line-height:36px}
  .blog-grid{grid-template-columns:repeat(3,calc((100% - 33px) / 3));gap:0}
  .blog-card img{height:230px}
  .blog-card .t{margin:20px 0 15px;font-size:18px;line-height:27px}
  .blog-card .d{margin-top:0;font-size:15px;line-height:22.5px}

  /* About */
  .pbanner--about{margin-bottom:20px}
  .pbanner--about .pbanner-box{min-height:80px}
  .wwm{padding:40px 0}
  .wwm-title{font-size:20px;line-height:30px}
  .wwm-copy{padding-bottom:25.6px}
  .story{flex-direction:column-reverse;min-height:auto}
  .story-pic{width:100%}
  .story-text{width:calc(50vw - 20px);padding:20px 15px 40px}
  .sold{padding:40px 0}
  .sold .mod-title{margin-bottom:20px}
  .sold-stage,.sold-card{height:auto}
  .sold-stage{overflow:visible}
  .sold-track{display:flex;align-items:flex-start;padding-left:15px;scroll-padding-left:15px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sold-track::-webkit-scrollbar{display:none}
  .sold-slide{position:static;flex:0 0 330px;width:330px;margin-right:10px;transform:none!important;visibility:visible!important;z-index:auto!important;scroll-snap-align:start;transition:none}
  .sold-card{overflow:visible;color:var(--title)}
  .sold-card img{height:225px}
  .sold-card:hover img{transform:none}
  .sold-mask{bottom:auto;height:225px}
  .sold-slide .sold-info{position:static;display:flex;flex-direction:column;justify-content:flex-start;margin-top:10px;padding:0}
  .sold-top{flex-direction:column;align-items:stretch;gap:0}
  .sold-prices{order:1;align-self:flex-start;gap:10px}
  .sold-date{display:none}
  .sold-price{font-size:20px;line-height:30px}
  .sold-initial{opacity:1}
  .sold-where{order:2;display:flex;flex-direction:column}
  .sold-meta{order:1;margin:15px 0 5px}
  .sold-addr{order:2;margin:0;font:500 14px/20px var(--body)}
  .sold-bottom{margin-top:20px}
  .sold-by{color:var(--text);font-style:italic}
  .sold-buttons{display:none}
  .sold-more{margin-top:20px}
  .f9{padding:40px 0}
  .f9-namebox{display:block;text-align:center}
  .f9-mname{margin-bottom:10px;font:400 20px/30px var(--head);color:var(--title)}
  .f9-mposition{font:400 12px/normal var(--body);color:#000}
  .f9-detail .f9-position{display:none}

  /* Buying */
  .fa{padding:40px 0}
  .fa-grid{gap:10px;scroll-padding:0 15px}
  .fa-name{font-size:18px}
  .cta2{min-height:0;padding-bottom:40px}
  .cta2-band{flex:none;height:150px;min-height:0;background-attachment:scroll}
  .cta2-title{font-size:20px;line-height:30px}
  .cta2-sub{font-size:12px;line-height:18px}
  .calc2{margin-bottom:15px;padding-top:5px}
  .calc2-lead{max-height:none}
  .help2{padding:20px 0}
  .faq{padding:40px 0}
  .faq-title{font-size:20px;line-height:30px}
  .hero1-box{min-height:280px}
  .hero1-title{font-size:35px;line-height:52.5px}
  .hero1-sub{padding-bottom:27px;font-size:18px;line-height:27px}
  .cta9-title{font-size:20px;line-height:30px}
  .cta9-sub{font-size:14px;line-height:21px}
  .how3{padding:40px 0}
  .how3-title{font-size:20px;line-height:30px}
  .how3-num{font-size:12px}
  .how3-card-title{font-size:14px;line-height:21px}
  .how3-card-text{font-size:12px;line-height:18px}
  .story-title{margin-bottom:12px;font-size:20px;line-height:30px}
  .sold--sub .wrap{margin-bottom:20px}
  .sold--sub .mod-title{margin-bottom:0}
  .f3{padding:40px 0}
  .f3-title{font-size:20px;line-height:30px}
  .f3-col input{font-size:12px}
  .partners3{padding:40px 0}
  .t7{padding:40px 0}
  .t7-title{font-size:20px;line-height:30px}

  /* Footer */
  .site-footer{padding:40px 0}
  .f-logos{flex-wrap:wrap}
}

/* Tablet (601-800px): Lofty is in its mobile layout but these modules keep part of the desktop arrangement */
@media (min-width:601px) and (max-width:800px){
  .story-pic{aspect-ratio:720/520}
  .t2{padding:40px 0}
  .f2{padding-bottom:40px}
  .lform--2 .lf--half{width:calc(50% - 20px)} /* Reviews form keeps Name and Phone side by side until 600px */
}

/* ===================== Phones (600px and below) ===================== */
@media (max-width:600px){
  :root{--header-h:40px}
  main{padding-top:40px}
  .site-header .logo{left:15px;top:5px;display:flex;align-items:center;height:30px}

  .hero-sub{margin:8px 48px 0;padding-bottom:0}

  /* Home intro: photo on top, copy below; Lofty clamps the title to three lines */
  .intro{flex-direction:column;margin-bottom:20px}
  .intro-img{flex:none;height:280px}
  .intro-copy{flex:none;padding:30px 15px;font-size:14px;line-height:20.02px}
  .intro-title{height:60px;margin-bottom:20px;overflow:hidden;font-size:16px;line-height:1.25}
  .intro-title .kicker{font-size:.62em;line-height:inherit}
  .intro-copy p{margin-bottom:20px}
  .intro-copy .btn{margin-top:20px;height:40px;line-height:40px}

  .om-band{height:150px}
  .om-card{margin-top:-20px;padding:35px 15px}
  .om-card .btn{margin-top:20px}

  /* Testimonials: one card, arrows below */
  .t1-wrap{width:100%}
  .t1-slide{flex:0 0 calc(100% - 30px)}

  /* Newsletter: stacked */
  .newsletter{padding:40px 0}
  .nl-box{padding:20px}
  .nl-row{display:block}
  .nl-fields{flex-direction:column;row-gap:30px;padding:0}
  .nl-fields input{flex:none;width:100%}
  .nl-submit{display:block;width:100%;margin-top:30px;font-size:16px}

  /* Blog: one card per row */
  .blog{padding:40px 0}
  .blog .mod-title{margin-bottom:20px}
  .blog-grid{display:flex;flex-direction:column;gap:20px}
  .blog-more{margin-top:20px}

  .story-text{width:100%}

  .cta2-card{margin-top:-20px;padding:35px 15px}
  .cta2-sub{padding-bottom:20px}
  .calc2-title{font-size:20px;line-height:30px}
  .f3-col--msg{margin-top:20px;padding-bottom:4px}
  .f3 .consent{margin-top:30px}

  /* Reviews */
  .t2{padding:40px 0}
  .f2{padding-bottom:40px}
  .lform--2 .lform-fields{gap:0;padding-top:0;margin-bottom:0}
  .lform--2 .lf{margin:5px 0}
  .lform--2 .lf--area{margin:5px 0 7px}
  .lform--2 .lform-submit{margin-top:10px}

  /* Footer */
  .f-company,.f-name{font-size:18px;line-height:27px}
  .f-contact a{font-size:12px;line-height:18px}
  .f-disc{font-size:12px;line-height:18px}
  .f-bottom{flex-direction:column;gap:0;font-size:12px;line-height:18px}
}
/* Scroll-in animations: Lofty's keyframes and timing (1s delay, 1s ease-out unless the module sets a duration) */
:root{--animate-duration:1s;--animate-delay:1s;--animate-ease:ease-out}
.anim [data-anim]{opacity:0}
.anim-fade-in{animation:bb-fade-in var(--animate-duration) var(--animate-ease) var(--animate-delay)}
.anim-shift-right{animation:bb-shift-right var(--animate-duration) var(--animate-ease) var(--animate-delay) both}
.anim-appear-down{animation:bb-appear-down var(--animate-duration) var(--animate-ease) var(--animate-delay) both}
@keyframes bb-fade-in{from{opacity:0}to{opacity:1}}
@keyframes bb-shift-right{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes bb-appear-down{0%{clip-path:polygon(0% 100%,100% 100%,100% 100%,0% 100%);transform:translate3d(0,100%,0);opacity:0}99%{clip-path:polygon(0% 100%,100% 100%,100% 0%,0% 0%);transform:translate3d(0,0,0);opacity:1}100%{clip-path:none;transform:none;opacity:1}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.anim [data-anim]{opacity:1}}

/* Backgrounds that have a separate phone image in Lofty (--bg / --bg-m set on the element). Last in
   the file so the modules' background shorthands above don't reset the image. */
.has-mbg{background-image:var(--bg)}
@media (max-width:800px){.has-mbg{background-image:var(--bg-m,var(--bg))}}
