:root{
  --primary:#263238; --secondary:#4E5D66; --accent:#EF7D22; --neutral:#5E6A71; --accent-ink:#263238;
  --bg:#F7F4EF; --surface:#FFFCF8; --surface-2:#EAE8E4; --ink:var(--primary); --muted:var(--neutral); --line:#D6D1C9;
  --accent-soft:#F5DECA; --dark:var(--primary); --dark-2:var(--secondary);
  --font-display:'Zodiak',Georgia,serif; --font-body:'Satoshi','Inter',system-ui,sans-serif;
  --text-xs:clamp(.875rem,.84rem + .12vw,.95rem); --text-sm:clamp(.9375rem,.9rem + .15vw,1.05rem);
  --text-base:clamp(1rem,.97rem + .15vw,1.0625rem); --text-lg:clamp(1.15rem,1.05rem + .4vw,1.35rem);
  --text-xl:clamp(1.6rem,1.3rem + 1.2vw,2.3rem); --text-2xl:clamp(2.1rem,1.5rem + 2.6vw,3.6rem);
  --text-hero:clamp(2.5rem,1.6rem + 4vw,4.8rem);
  --r:6px; --wrap:1180px; --pad:clamp(1.25rem,4vw,2.5rem); --section:clamp(4rem,9vw,7.5rem);
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.15;text-wrap:balance}
h1,h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em}
h3{font-size:var(--text-lg);font-weight:700}
p{margin:0 0 1em;max-width:68ch;text-wrap:pretty}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.section{padding:var(--section) 0}
.section--alt{background:var(--surface)}
.section--dark{background:var(--dark);color:#eeeae3}
.section--dark .eyebrow{color:var(--accent)}
.section--dark p{color:#cfc9bf}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--secondary);margin-bottom:.9rem;display:block}
.h-section{font-size:var(--text-xl);margin-bottom:1rem}
.lead{font-size:var(--text-lg);color:var(--muted);line-height:1.55}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}

/* Header */
.top-bar{background:var(--dark);color:#d8d2c7;font-size:var(--text-sm)}
.top-bar .wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-top:.7rem;padding-bottom:.7rem;flex-wrap:wrap}
.top-bar a{text-decoration:none}
.top-bar a:hover{color:#fff}
.top-bar .tb-left{display:flex;flex-direction:column;gap:.15rem;min-width:min(100%,26rem)}
.top-bar .tb-right{display:flex;gap:1.25rem;flex-wrap:wrap;padding-top:.15rem}
.top-bar .tb-right a{padding:.35rem 0}
/* Same phrase in the top bar and footer. Change the HTML text, not this rule. */
.brokerage-line{margin:0;font-size:1rem;line-height:1.35;font-weight:700}
.top-bar .brokerage-line,.footer .brokerage-line{color:#fff}
.tb-serve{color:#d8d2c7}
.header{position:sticky;top:0;z-index:50;background:rgba(247,244,239,.93);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.header.scrolled{border-color:var(--line);box-shadow:0 4px 18px rgba(30,25,15,.06)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand img{height:44px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-family:var(--font-display);font-weight:500;font-size:1.15rem;letter-spacing:.06em}
.brand-text span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;align-items:center;gap:.25rem}
.nav a{white-space:nowrap;text-decoration:none;font-size:var(--text-sm);font-weight:500;padding:.5rem .75rem;border-radius:var(--r);color:var(--ink);transition:background .2s}
.nav a:hover{background:var(--surface-2)}
.nav a[aria-current="page"]{color:var(--secondary);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;text-decoration:none;padding:.85rem 1.35rem;border-radius:var(--r);border:1.5px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;transition:transform .25s var(--ease),background .2s,color .2s}
.btn:hover{transform:translateY(-1px);background:#000}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:#fff}
.btn--light{background:#fff;color:var(--ink);border-color:#fff}
.btn--light:hover{background:var(--accent-soft)}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--outline-light:hover{background:#fff;color:var(--ink)}
.nav .btn,.nav a.btn[aria-current="page"]{padding:.6rem 1rem;margin-left:.5rem;color:#fff;white-space:nowrap}
.nav .btn:hover{background:#000}
.menu-btn{display:none;background:none;border:1.5px solid var(--line);border-radius:var(--r);padding:.5rem .7rem;cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:700}
@media (max-width:1280px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;inset:76px 0 auto 0;background:var(--bg);flex-direction:column;align-items:stretch;padding:1rem var(--pad) 1.5rem;border-bottom:1px solid var(--line);gap:.15rem;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.25s var(--ease);box-shadow:0 18px 30px rgba(0,0,0,.08)}
  .nav.open{transform:none;opacity:1;pointer-events:auto}
  .nav a{padding:.8rem .5rem;font-size:var(--text-base)}
  .nav .btn{margin:.6rem 0 0}
}
@media (max-width:520px){.brand-text span{display:none}.brand img{height:38px}}

/* Hero */
.hero{position:relative;min-height:min(88vh,780px);display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
/* Overlay removed so the hero photo stays bright and cheerful. Text contrast comes from the solid .hero-copy box. An ancestor ::after also made axe unable to measure that contrast. */
.hero::after{content:none;display:none;background:none}
.hero .wrap{position:relative;z-index:1;padding-bottom:clamp(3rem,8vw,6rem);padding-top:8rem;width:100%}
.hero-copy{position:relative;z-index:1;isolation:isolate;background:var(--dark);background-color:var(--dark);color:#fff;padding:1.6rem 1.8rem;max-width:46rem;border-radius:var(--r)}
.hero h1{font-size:var(--text-hero);max-width:15ch;margin-bottom:1.25rem}
.hero p{font-size:var(--text-lg);color:#e9e4da;max-width:56ch}
.hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}
.hero .eyebrow{color:#e2c999}

.page-hero{padding:clamp(3.5rem,8vw,6rem) 0 clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:var(--text-2xl);max-width:20ch;margin-bottom:1rem}
.page-hero .lead{max-width:60ch}
.page-hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.75rem}
.page-hero--img{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.page-hero--img img{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:860px){.page-hero--img{grid-template-columns:1fr}}
.couple-photo img{width:min(100%,42rem);height:auto;margin-inline:auto;border-radius:var(--r);object-fit:contain}

/* Paths */
.paths{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:2.5rem}
.path{background:var(--surface);padding:2rem 1.6rem 1.75rem;text-decoration:none;display:flex;flex-direction:column;gap:.6rem;transition:background .25s}
.path:hover{background:#fff}
.path .num{font-family:var(--font-display);font-size:1.6rem;color:var(--secondary)}
.path h3{font-size:var(--text-lg)}
.path p{font-size:var(--text-sm);color:var(--muted);margin:0;flex:1}
.path .go{font-size:var(--text-sm);font-weight:700;margin-top:.75rem;display:inline-flex;gap:.4rem;align-items:center}
.path:hover .go span{transform:translateX(4px)}
.path .go span{transition:transform .25s var(--ease)}
@media (max-width:980px){.paths{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.paths{grid-template-columns:1fr}}

/* Splits */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split--reverse > :first-child{order:2}
.split img{border-radius:var(--r);width:100%;object-fit:cover}
@media (max-width:860px){.split{grid-template-columns:1fr}.split--reverse > :first-child{order:0}}
.values{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 2rem;padding:0;list-style:none}
.values li{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);padding:.4rem .7rem;border-radius:999px;background:var(--surface)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:2rem 0;padding:1.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.1}
.stat span{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}

/* Reviews */
.reviews-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:2.5rem}
.rating{display:flex;align-items:center;gap:1rem}
.rating .big{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1}
.stars{color:var(--accent);letter-spacing:.1em;font-size:1.1rem}
.section--alt .stars,.review.light .stars{color:var(--secondary)}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.review{background:var(--dark-2);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:1.75rem;display:flex;flex-direction:column;gap:1rem}
.section--alt .review,.section .review.light{background:var(--surface);border-color:var(--line)}
.review blockquote{margin:0;font-size:var(--text-base);line-height:1.6}
.review cite{font-style:normal;font-size:var(--text-sm);font-weight:700;margin-top:auto}
.review cite span{display:block;font-weight:500;opacity:.7;font-size:var(--text-xs)}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}

.quote-band{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1.5rem;margin:2rem 0}
.quote-band blockquote{margin:0;font-family:var(--font-display);font-size:var(--text-lg);line-height:1.5}
.quote-band cite{display:block;margin-top:.75rem;font-style:normal;font-size:var(--text-sm);font-weight:700;color:var(--muted)}

/* Gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:240px 240px;gap:.75rem;margin-top:2.5rem}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:var(--r)}
.gallery img:first-child{grid-row:span 2}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}.gallery img{aspect-ratio:4/3;height:auto}.gallery img:first-child{grid-column:span 2;grid-row:auto}}

/* Steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;margin-top:2.5rem;padding:0;list-style:none}
.steps li{counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--font-display);font-size:1.5rem;color:var(--secondary);display:block;margin-bottom:.6rem}
.steps h3{margin-bottom:.5rem}
.steps p{font-size:var(--text-sm);color:var(--muted);margin:0}
.steps a{font-weight:700;color:var(--secondary)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:2rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.card h3{margin-bottom:.5rem}
.card p{font-size:var(--text-sm);color:var(--muted);margin:0 0 .75rem}
.card p:last-child{margin-bottom:0}
.card--feature{background:var(--dark);color:#eee;border-color:var(--dark)}
.card--feature p{color:#cfc9bf}
.tag{display:inline-block;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);margin-bottom:.6rem}
.card--feature .tag{color:var(--accent)}

/* FAQ */
.faq{margin-top:2rem;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.25rem 2.5rem 1.25rem 0;font-weight:700;font-size:var(--text-base);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--secondary);transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .ans{padding:0 0 1.5rem;color:var(--muted)}
.faq .ans ul,.faq .ans ol{margin:.25rem 0 1rem;padding-left:1.25rem}
.faq .ans li{margin-bottom:.3rem}
.two-col{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,5rem)}
@media (max-width:860px){.two-col{grid-template-columns:1fr}}
.sticky-side{position:sticky;top:110px;align-self:start}
@media (max-width:860px){.sticky-side{position:static}}

/* Notice */
.notice{background:var(--accent-soft);border-radius:var(--r);padding:1.1rem 1.4rem;font-size:var(--text-base);margin-top:1.5rem;max-width:70ch}
.notice p{margin:0 0 .75rem}
.notice p:last-child{margin:0}
.notice strong{display:block;margin-bottom:.2rem}

/* Bios */
.bio{display:grid;grid-template-columns:360px 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--line)}
.bio img{border-radius:var(--r);background:#fff;aspect-ratio:4/5;object-fit:cover;object-position:top;width:100%}
.bio h2{font-size:var(--text-xl);margin-bottom:.35rem}
.bio .role{font-size:var(--text-sm);color:var(--secondary);font-weight:700;margin-bottom:1.5rem;display:block}
.bio .after{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.4rem;margin-top:1.5rem}
.bio .after h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;color:var(--muted)}
.bio .after p{font-size:var(--text-sm);margin-bottom:.6rem}
.bio .after p:last-child{margin:0}
@media (max-width:860px){.bio{grid-template-columns:1fr}.bio img{max-width:360px}}

/* Lists */
.link-list{list-style:none;padding:0;margin:1rem 0 0}
.link-list li{border-bottom:1px solid var(--line)}
.link-list a,.link-list .row{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;text-decoration:none;font-size:var(--text-sm)}
.link-list a{align-items:center}
.link-list a:hover{color:var(--secondary)}
.link-list .ext-icon{flex:none}
.link-list .row span:last-child{color:var(--muted);text-align:right}
.section--dark .link-list li{border-color:rgba(255,255,255,.12)}

.agency{padding:1.25rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}
.agency h3{font-size:var(--text-base);margin-bottom:.25rem}
.agency p{font-size:var(--text-sm);color:var(--muted);margin:0}
@media (max-width:700px){.agency{grid-template-columns:1fr}}

/* Forms */
.form{display:grid;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.5rem,3vw,2.25rem)}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.form .row2{grid-template-columns:1fr}}
.form label{display:grid;gap:.35rem;font-size:var(--text-sm);font-weight:700}
.form input,.form select,.form textarea{font:inherit;font-weight:400;font-size:var(--text-base);padding:.75rem .85rem;border:1.5px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--primary)}
.form textarea{min-height:120px;resize:vertical}
.form .fine{font-size:var(--text-base);font-weight:400;color:var(--muted);margin:0}
.form .fine a{text-decoration:underline}
.form .ok{display:none;background:var(--accent-soft);padding:.8rem 1rem;border-radius:var(--r);font-size:var(--text-sm)}
.form.sent .ok{display:block}

.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-item{padding:1.1rem 0;border-bottom:1px solid var(--line)}
.contact-item span{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.contact-item a,.contact-item p{font-size:var(--text-lg);text-decoration:none;margin:0;font-weight:500}
.contact-item a:hover{color:var(--secondary)}
.map{border:0;width:100%;height:320px;border-radius:var(--r);margin-top:2rem;filter:grayscale(.3)}

/* CTA band */
.cta{background:var(--dark);color:#fff;padding:clamp(3.5rem,7vw,5.5rem) 0}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.cta h2{font-size:var(--text-xl);max-width:22ch}
.cta p{color:#cfc9bf;margin:.75rem 0 0}
.cta .actions{display:flex;gap:.75rem;flex-wrap:wrap}

/* Footer */
.footer{background:var(--dark);color:#b9b3a8;font-size:var(--text-sm);padding:4rem 0 2rem}
.footer .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem}
.footer h2{font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 1rem;line-height:1.3}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.footer a{text-decoration:none}
.footer a:hover{color:#fff}
.footer .logo{background:var(--bg);display:inline-block;padding:.6rem .8rem;border-radius:var(--r);margin-bottom:1.25rem}
.footer .logo img{height:44px;width:auto}
.footer .base{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.5rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;font-size:var(--text-sm)}
.footer .base-id{display:grid;gap:.35rem}
@media (max-width:860px){.footer .grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer .grid{grid-template-columns:1fr}}

.reveal{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}
.toc{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.75rem}
.toc a{font-size:var(--text-sm);font-weight:700;text-decoration:none;border:1px solid var(--line);background:var(--surface);padding:.45rem .85rem;border-radius:999px}
.toc a:hover{border-color:var(--ink)}
.cards--3{grid-template-columns:repeat(3,1fr)}@media (max-width:900px){.cards--3{grid-template-columns:1fr 1fr}}@media (max-width:560px){.cards--3{grid-template-columns:1fr}}

/* Assistance 4 Utah Seniors feature */
.a4us-logo{display:inline-block;margin:.5rem 0 1rem}
.a4us-logo img{width:min(320px,100%);height:auto;display:block}
.a4us-card{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius-lg,16px);padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(0,0,0,.06);transition:transform .2s ease,box-shadow .2s ease}
.a4us-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.08)}
.a4us-card img{width:100%;max-width:440px;height:auto}

/* Six-path grid on home */
.paths--6{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.paths--6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.paths--6{grid-template-columns:1fr}}

/* Rental listing */
.listing{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,3.5rem);margin-top:2rem;align-items:start}
.listing-body{display:flex;flex-direction:column;gap:1.5rem}
.listing-body > p{margin:0}
.listing-body .listing-facts,.listing-body .listing-dl{margin:0}
.listing-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.listing-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);display:block}
.listing-gallery img:first-child{grid-column:1/-1}
.listing-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.25rem 0;margin-bottom:1.25rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.listing-body .listing-facts{grid-template-columns:repeat(4,1fr)}
@media (max-width:700px){.listing-body .listing-facts{grid-template-columns:repeat(2,1fr)}}
.listing-facts strong{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,1.2rem + 1vw,2rem);font-weight:500;line-height:1.1}
.listing-facts span{font-size:var(--text-sm);color:var(--muted)}
.listing-dl{margin:1.5rem 0 0;display:grid;gap:0}
.listing-dl div{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.listing-dl dt{font-weight:700;font-size:var(--text-sm)}
.listing-dl dd{margin:0;font-size:var(--text-sm);color:var(--muted)}
@media (max-width:900px){.listing{grid-template-columns:1fr}}
@media (max-width:480px){.listing-dl div{grid-template-columns:1fr;gap:.2rem}}

/* Check list */
.checks{list-style:none;padding:0;margin:1rem 0 1.5rem;display:grid;gap:.55rem}
.checks li{position:relative;padding-left:1.6rem}
.checks li::before{content:"";position:absolute;left:0;top:.5em;width:.75rem;height:.4rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.8}

@media (min-width:1281px) and (max-width:1440px){.nav a{padding:.5rem .55rem}}

.listing .actions{display:flex;flex-wrap:wrap;gap:.75rem}
.apply-block{display:flex;flex-direction:column;align-items:stretch;gap:1.75rem;margin-top:clamp(2.75rem,6vw,4.5rem);margin-bottom:clamp(2rem,4vw,3rem);max-width:100%}
.apply-block h2{margin:0;font-size:var(--text-xl)}
.apply-actions{display:flex;flex-wrap:wrap;gap:1.15rem 1.25rem;width:100%;max-width:100%}
.apply-actions .btn{flex:1 1 15rem;min-width:min(100%,12.5rem);white-space:normal;text-align:center;line-height:1.3}
.apply-links{display:flex;flex-direction:column;gap:1.35rem;width:100%}
.apply-links p{margin:0;max-width:none}
.apply-residents{display:flex;flex-wrap:wrap;align-items:baseline;gap:.85rem 1.15rem}
.apply-dot{color:var(--muted)}
.listing-body .apply-block{margin-top:.75rem;margin-bottom:.25rem}
@media (max-width:700px){
  .apply-block{gap:1.5rem;margin-top:2.5rem}
  .apply-actions{flex-direction:column;align-items:stretch}
  .apply-actions .btn{width:100%;flex:1 1 auto;min-width:0}
  .apply-residents{flex-direction:column;align-items:flex-start;gap:1rem}
  .apply-dot{display:none}
}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form{position:relative}
.form .opt{font-weight:400;color:var(--muted)}
.form .err{display:none;background:#fdecea;color:#7a1c14;padding:.8rem 1rem;border-radius:var(--r);font-size:var(--text-sm)}
.form .err a{color:inherit;font-weight:700}
.form.failed .err{display:block}
.form.sent .btn{display:none}
.form [aria-invalid="true"]{border-color:#b3261e}
.pending{background:var(--accent-soft);border:2px solid var(--accent);border-radius:var(--r);padding:1rem 1.15rem;margin:0 0 1.5rem}
.pending-kicker{font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);font-size:var(--text-sm);margin:0 0 .4rem}
.pending p:last-child{margin:0}
.legal-prose h2{font-size:var(--text-xl);margin:2rem 0 .75rem}
.legal-prose ul,.legal-prose ol{margin:0 0 1em;padding-left:1.25rem;max-width:68ch}
.legal-prose li{margin:.35rem 0}
.next-steps{margin:0 0 1.5rem;padding-left:1.25rem;max-width:68ch}
.next-steps li{margin:.45rem 0}
.form label.check{display:flex;align-items:flex-start;gap:.75rem;font-weight:400;font-size:var(--text-base);line-height:1.45}
.form label.check input{width:1.25rem;height:1.25rem;margin-top:.2rem;flex:none}
.licenses{margin:.35rem 0 .75rem;font-size:1rem;line-height:1.4}
.footer .licenses{color:#fff;max-width:42ch}
.bio .licenses{color:var(--muted);font-weight:700}
.eho{display:inline-flex;align-items:center;gap:.4rem}
.eho-mark{width:1.35rem;height:1.35rem;flex:none}
.fair-housing{margin:1rem 0 0;max-width:78ch;font-size:var(--text-sm);color:#eeeae3}
.vendor-note{margin-top:.75rem}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Generated rental pages. Photos keep their own shape: no crop, no stretch. */
.unit-gallery{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:760px){.unit-gallery{grid-template-columns:1fr 1fr}}
.unit-gallery li:first-child{grid-column:1 / -1}
.unit-gallery a{display:block;background:var(--surface-2);border-radius:var(--r);line-height:0}
.unit-gallery img{width:100%;height:auto;max-width:100%;object-fit:contain;background:var(--surface-2);border-radius:var(--r)}
.listing-body h2,.prose h2{font-size:var(--text-xl);margin:1.6rem 0 .7rem}
.prose h3{margin:1.35rem 0 .4rem}
.prose ul,.prose ol{margin:0 0 1em;padding-left:1.25rem;max-width:68ch}
.prose li{margin:.35rem 0}
.prose a{color:var(--secondary);font-weight:700}
.prose a.btn{color:#fff}
.prose a.btn--ghost{color:var(--ink)}
.prose a.btn--ghost:hover,.prose a.btn:hover{color:#fff}
.prose a.btn--light,.prose a.btn--light:hover{color:var(--ink)}
.prose-fig{margin:1rem 0}
.prose-fig img{width:auto;max-width:min(280px,100%);height:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.form fieldset{border:0;margin:0;padding:0;display:grid;gap:.55rem}
.form legend{font-weight:700;font-size:var(--text-sm);padding:0}
.rent-list{display:grid;gap:1.75rem}
.rent-card{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:clamp(1.5rem,4vw,2.75rem);align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.rent-card-media{display:block;background:var(--surface-2);line-height:0}
.rent-card-media img{width:100%;height:auto;max-width:100%;object-fit:contain;background:var(--surface-2)}
.rent-card h2{font-size:var(--text-xl);margin:0;line-height:1.2}
.rent-card h2 a{text-decoration:none}
.rent-card > div{display:flex;flex-direction:column;justify-content:center;gap:1.25rem;padding:clamp(1.5rem,3vw,2.25rem)}
.rent-card p{margin:0;font-size:var(--text-lg)}
.rent-card .btn{align-self:flex-start;margin-top:.35rem}
.lightbox{border:0;padding:0;background:transparent;max-width:min(960px,calc(100vw - 2rem))}
.lightbox::backdrop{background:rgba(15,17,20,.88)}
.lightbox-frame{display:grid;gap:.75rem}
.lightbox img{width:100%;max-height:78vh;object-fit:contain;background:#111;border-radius:var(--r)}
.lightbox-count{margin:0;color:#fff;font-size:var(--text-sm)}
.lightbox-bar{display:flex;flex-wrap:wrap;gap:.5rem}
@media (max-width:700px){
  .rent-card{grid-template-columns:1fr}
  .rent-card > div{gap:1.5rem;padding:2rem 1.5rem 2.25rem}
  .unit-gallery{grid-template-columns:1fr}
}

/* nustart-theme */
/* Charcoal & Signature Orange. Orange is used for stripes and for any
   accent button or badge, which must use dark text (--accent-ink). It is not
   used as small text on light backgrounds because #EF7D22 fails WCAG AA there. */
.header{border-top:4px solid var(--accent)}
.brand img,.footer .logo img{height:48px;width:auto}
.footer .logo{background:transparent;padding:.15rem 0;border-radius:0}
.section--dark,.cta{border-top:4px solid var(--accent)}
.hero .eyebrow{color:#f4efe4}
.btn:hover,.nav .btn:hover{background:#000}
.btn--accent,.badge--accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn--accent:hover,.badge--accent:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(.96)}
.rent-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}
.rent-card{grid-template-columns:1fr}
@media (max-width:520px){.brand img,.footer .logo img{height:40px}}


/* Rental detail: cover photo beside the description, cropped, not stretched. */
.unit-intro{display:grid;gap:clamp(1.25rem,3vw,2.5rem);align-items:start}
.unit-cover{margin:0}
.unit-cover img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:var(--r)}
.unit-copy h1{font-size:var(--text-2xl);max-width:22ch;margin-bottom:1rem}
.unit-copy .listing-facts{margin-top:.25rem}
@media (min-width:768px){
  .unit-intro{grid-template-columns:minmax(0,11fr) minmax(0,9fr);align-items:start}
  .unit-cover{position:relative;height:auto;overflow:hidden}
  .unit-cover::before{content:"";display:block;padding-top:66.67%}
  .unit-cover img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
}

/* Note beside the PDF lease application link */
.pdf-app{display:flex;flex-direction:column;gap:.55rem;flex:1 1 15rem;min-width:min(100%,12.5rem)}
.pdf-app .btn{width:100%;flex:1 1 auto;min-width:0}
.pdf-app-note{margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--ink);max-width:38rem}
.pdf-app-note a{font-weight:700;color:var(--secondary)}
@media (max-width:700px){
  .pdf-app{width:100%;flex:1 1 auto;min-width:0}
}


/* Rental alerts callouts */
.alerts-cta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.25rem 2rem;
  flex-wrap:wrap;
  background:var(--surface);
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:var(--r);
  padding:clamp(1.35rem,3vw,2rem) clamp(1.35rem,3vw,2.25rem);
  margin:clamp(1.75rem,4vw,2.75rem) 0 0;
}
.alerts-cta h2{font-size:var(--text-xl);margin:0 0 .5rem;max-width:22ch;color:var(--ink)}
.alerts-cta p{margin:0;max-width:46ch;font-size:var(--text-lg);color:var(--ink)}
.alerts-cta-action{margin:0}
.alerts-cta .btn{flex:none}
.alerts-note{
  background:var(--surface);
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:var(--r);
  padding:1.15rem 1.35rem;
}
.alerts-note p{margin:0;font-size:var(--text-base);max-width:none;color:var(--ink)}
.alerts-note a{font-weight:700;color:var(--secondary);text-decoration:underline;text-underline-offset:.15em}
.listing-body .alerts-note{margin:0}
@media (max-width:700px){
  .alerts-cta{padding:1.35rem 1.25rem}
  .alerts-cta .btn{width:100%}
  .alerts-cta-action{width:100%}
}
@media (max-width:1280px){
  .nav{max-height:calc(100vh - 76px);overflow-y:auto}
}

/* Optional preference fields on the rental-alerts form */
.alerts-prefs-note{
  margin: .25rem 0 0;
  font-size: var(--text-base);
  font-weight: 400;
  color: var(--ink);
  max-width: 46ch;
  line-height: 1.5;
}
