/* Condo Eligibility — Harbor. Tokens and components are specified in ../design.md. */
:root{
  --paper:#FAF8F4;--sand:#F1ECE3;--white:#FFFFFF;--line:#DDD5C8;
  --ink:#0F1E2E;--text:#26323F;--muted:#5B6673;
  --navy:#16324F;--navy-deep:#0B2238;
  --brass:#B8924A;--brass-ink:#7E5E26;--brass-light:#D9B878;
  --ok:#2F6B4F;--ok-bg:#E7F0EA;--caution:#A24A2A;--caution-bg:#F7E9E3;
  --scrim:rgba(11,34,56,.72);--shadow:0 10px 30px rgba(11,34,56,.15);
  --serif:"Source Serif 4",Georgia,serif;--sans:Inter,"Helvetica Neue",Arial,sans-serif;
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;
  --r-ctl:6px;--r-card:10px;--r-frame:16px;
  --container:1200px;--gutter:32px;--measure:68ch;
  --ease:150ms ease-out;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--ink);margin:0;text-wrap:balance}
h1{font-size:48px;line-height:1.1}
h2{font-size:36px;line-height:1.15;margin-bottom:var(--s-5)}
h3{font-size:22px;line-height:1.25}
p{margin:0 0 var(--s-4)}
a{color:var(--navy);text-underline-offset:3px}
a:hover{color:var(--brass-ink)}
:focus-visible{outline:2px solid var(--brass-ink);outline-offset:3px}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);font:600 16px/1 var(--sans);padding:15px 22px;border-radius:var(--r-ctl);border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:background var(--ease),color var(--ease),border-color var(--ease)}
.btn--primary{background:var(--navy);color:var(--white)}
.btn--primary:hover{background:var(--navy-deep);color:var(--white)}
.btn--gold{background:var(--brass-light);color:var(--ink)}
.btn--gold:hover{background:var(--white);color:var(--ink)}
.btn--outline-light{border-color:var(--white);color:var(--white)}
.btn--outline-light:hover{background:var(--white);color:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}

/* small type */
.eyebrow{font:600 13px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);margin-bottom:var(--s-4)}
.eyebrow--light{color:var(--brass-light)}
.lede{font-size:20px;line-height:1.55;max-width:var(--measure);margin:var(--s-5) 0 0}
.lede--light{color:var(--white)}
.friction{font-size:15px;color:var(--muted);margin:var(--s-4) 0 0}
.friction--light{color:var(--sand)}
.caption{font-size:15px;color:var(--muted);max-width:var(--measure)}
.badge{display:inline-block;font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:999px}
.badge--demo{background:var(--brass-light);color:var(--ink)}
.badge--draft{background:var(--caution-bg);color:var(--caution)}
.badge--flat{background:var(--sand);color:var(--muted)}

/* utility bar + header */
.utility{background:var(--navy-deep);color:var(--sand);font-size:14px}
.utility__in{display:flex;justify-content:space-between;align-items:center;min-height:40px;gap:var(--s-4)}
.header{background:var(--white);border-bottom:1px solid var(--line)}
.header__in{display:flex;align-items:center;gap:var(--s-6);min-height:80px}
.brand{display:inline-flex;align-items:center;text-decoration:none;line-height:0;min-width:0}
.brand:hover{color:var(--ink)}
.logo{display:block;width:min(256px,calc(100vw - 156px));height:auto}
.footer .logo{width:min(320px,100%)}
.nav{display:flex;gap:8px;margin-left:auto;align-items:center}
.nav a,.menu__nav a:not(.btn){white-space:nowrap;font:600 13px/1 var(--sans);color:var(--navy);text-decoration:none;padding:8px 10px;border:1.5px solid var(--line);border-radius:var(--r-ctl);background:var(--white)}
.nav a:hover,.menu__nav a:not(.btn):hover{color:var(--navy);border-color:var(--navy);background:var(--sand)}
.nav a[aria-current="page"],.menu__nav a[aria-current="page"]{color:var(--white);background:var(--navy);border-color:var(--navy)}
.header__cta .btn{padding:12px 18px;font-size:15px;white-space:nowrap}
.header .container{max-width:1320px}
.menu{display:none;margin-left:auto;position:relative}
.menu summary{list-style:none;cursor:pointer;font:600 15px/1 var(--sans);color:var(--navy);padding:12px 16px;border:1.5px solid var(--line);border-radius:var(--r-ctl)}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{border-color:var(--navy)}
.menu__nav{position:absolute;right:0;top:calc(100% + 8px);z-index:10;display:grid;gap:var(--s-2);min-width:260px;padding:var(--s-5);background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}
.menu__nav .btn{margin-top:var(--s-3)}

/* home hero */
.hero{position:relative;min-height:640px;display:flex;align-items:center;overflow:hidden;background:var(--navy-deep)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,var(--scrim) 0%,var(--scrim) 42%,rgba(11,34,56,.15) 100%)}
.hero__in{position:relative;padding-top:var(--s-9);padding-bottom:var(--s-9);width:100%}
.display{font-size:60px;line-height:1.08;color:var(--white);max-width:15ch}

/* page hero */
.phero{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);min-height:460px}
.phero__text{display:flex;align-items:center;justify-content:flex-end}
.phero__inner{width:100%;max-width:calc(var(--container) / 2);padding:var(--s-8) var(--s-8) var(--s-8) var(--gutter)}
.phero h1{color:var(--white)}
.phero__img{position:relative;min-height:320px}
.phero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* trust strip */
.trust{background:var(--white);border-bottom:1px solid var(--line)}
.trust__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-6);padding-top:var(--s-7);padding-bottom:var(--s-7)}
.trust__item{border-top:3px solid var(--brass);padding-top:var(--s-4)}
.trust__t{font:600 19px/1.3 var(--serif);color:var(--ink);margin-bottom:var(--s-2)}
.trust__d{font-size:15px;color:var(--muted);margin:0}

/* sections */
.section{padding:var(--s-9) 0}
.section--paper{background:var(--paper)}
.section--sand{background:var(--sand)}
.section__in--narrow{max-width:var(--measure)}
.copy{max-width:var(--measure);font-size:18px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-8);align-items:center}
.split__img{margin:0;border-radius:var(--r-frame);overflow:hidden;box-shadow:var(--shadow)}
.split__img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.more a{font-weight:600;text-decoration:none}
.more a::after{content:" \2192"}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-4);margin:0 0 var(--s-4);padding:0;list-style:none}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5) var(--s-5) var(--s-4)}
.stat__v{display:block;font:700 40px/1.1 var(--serif);color:var(--navy);margin-bottom:var(--s-2)}
.stat__l{display:block;font-size:17px;line-height:1.45;color:var(--text)}

/* ranked */
.ranked{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s-4)}
@media (min-width:769px){.ranked--4{grid-template-columns:repeat(2,1fr)}}
.ranked li{display:grid;grid-template-columns:48px 1fr;gap:var(--s-4);background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5)}
.ranked__n{font:700 36px/1 var(--serif);color:var(--brass-ink)}
.ranked h3{margin-bottom:var(--s-2)}
.ranked p{margin:0;color:var(--muted)}

/* chain */
.chain{list-style:none;margin:var(--s-5) 0 var(--s-6);padding:var(--s-6);background:var(--navy);border-radius:var(--r-frame);display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-5)}
.chain li{position:relative;display:grid;gap:var(--s-3);align-content:start;color:var(--white);font-size:16px;line-height:1.4}
.chain__n{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:2px solid var(--brass);color:var(--brass-light);font:700 16px/1 var(--sans)}
.chain li:last-child .chain__n{background:var(--caution);border-color:var(--caution);color:var(--white)}

/* cards */
.cards{display:grid;gap:var(--s-5);margin:0 0 var(--s-5)}
.cards--1{grid-template-columns:1fr}
.cards--2{grid-template-columns:repeat(2,1fr)}
.cards--3{grid-template-columns:repeat(3,1fr)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.card{display:flex;flex-direction:column;gap:var(--s-3);background:var(--white);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:var(--r-card);padding:var(--s-6) var(--s-5);box-shadow:0 1px 2px rgba(11,34,56,.15);color:var(--text);text-decoration:none}
.card p{margin:0;color:var(--muted)}
.card--link{transition:box-shadow var(--ease),border-color var(--ease)}
.card--link:hover{box-shadow:var(--shadow);color:var(--text)}
.card__more{margin-top:auto;padding-top:var(--s-3);font-weight:600;color:var(--navy)}
.card__more::after{content:" \2192"}

/* lists */
.checklist,.crosslist{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.checklist li,.crosslist li{position:relative;padding-left:28px;font-size:16px;line-height:1.5}
.checklist li::before{content:"";position:absolute;left:4px;top:5px;width:6px;height:11px;border:solid var(--ok);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.crosslist li::before,.crosslist li::after{content:"";position:absolute;left:2px;top:11px;width:14px;height:2.5px;background:var(--caution);transform:rotate(45deg)}
.crosslist li::after{transform:rotate(-45deg)}
.checklist--lg{max-width:var(--measure);gap:var(--s-3);margin-bottom:var(--s-5)}
.checklist--lg li{font-size:18px}

/* steps */
.steps{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;gap:var(--s-5);counter-reset:none}
.steps--3{grid-template-columns:repeat(3,1fr)}
.steps--4{grid-template-columns:repeat(4,1fr)}
.steps--5{grid-template-columns:repeat(5,1fr)}
.steps li{position:relative;padding-top:var(--s-2)}
.steps__n{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--navy);color:var(--white);font:700 18px/1 var(--sans);margin-bottom:var(--s-4);position:relative;z-index:1}
.steps li:not(:last-child)::after{content:"";position:absolute;top:30px;left:52px;right:calc(-1 * var(--s-5) + 8px);height:2px;background:var(--line)}
.steps h3{margin-bottom:var(--s-2)}
.steps p{color:var(--muted);margin:0;font-size:16px}

/* callouts, pull, quote */
.callout{max-width:none;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:var(--r-card);padding:var(--s-5);margin:var(--s-5) 0}
.callout p{margin:0}
.callout__label{font:600 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-bottom:var(--s-2)!important}
.callout--warn{background:var(--caution-bg);border-color:var(--caution-bg);border-left-color:var(--caution)}
.callout--warn .callout__label{color:var(--caution)}
.pull{background:var(--navy);border-radius:var(--r-frame);padding:var(--s-7);margin:0 0 var(--s-5);border-left:6px solid var(--brass)}
.pull p{font:600 28px/1.35 var(--serif);color:var(--white);margin:0;max-width:40ch}
.quote{margin:0 0 var(--s-5);padding:0 0 0 var(--s-6);border-left:3px solid var(--brass)}
.quote blockquote{margin:0}
.quote p{font:600 26px/1.4 var(--serif);color:var(--ink);margin:0}
.quote figcaption{margin-top:var(--s-4);font:600 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-ink)}

/* fit, faq */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
.fit__panel{border-radius:var(--r-card);padding:var(--s-6)}
.fit__panel--yes{background:var(--ok-bg)}
.fit__panel--no{background:var(--caution-bg)}
.fit__label{font:600 20px/1.2 var(--serif);margin-bottom:var(--s-4)}
.fit__panel--yes .fit__label{color:var(--ok)}
.fit__panel--no .fit__label{color:var(--caution)}
.faq{display:grid;gap:var(--s-3);max-width:880px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-5);font:600 20px/1.3 var(--serif);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 26px/1 var(--sans);color:var(--brass-ink)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 var(--s-5) var(--s-5);margin:0;color:var(--muted)}

/* table, timeline, bars */
.tablewrap{overflow-x:auto;max-width:560px;margin-bottom:var(--s-4)}
.table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card)}
.table th,.table td{text-align:left;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}
.table th{font:600 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.table tr:last-child td{border-bottom:0}
.timeline{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.timeline li{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--line);border-radius:var(--r-card);padding:var(--s-5)}
.timeline li:last-child{border-top-color:var(--brass)}
.timeline__d{font:600 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-ink);margin-bottom:var(--s-2)}
.timeline h3{margin-bottom:var(--s-2)}
.timeline p:last-child{margin:0;color:var(--muted);font-size:16px}
.bars{margin:0 0 var(--s-5);background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-6);display:grid;gap:var(--s-4)}
.bars figcaption{font:600 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bars__row{display:grid;grid-template-columns:220px 1fr 160px;gap:var(--s-4);align-items:center}
.bars__row p{margin:0;font-size:16px}
.bars__track{height:22px;background:var(--sand);border-radius:var(--r-ctl);overflow:hidden}
.bars__fill{height:100%;background:var(--muted);border-radius:var(--r-ctl)}
.bars__fill--next{background:var(--navy)}
.bars__value{font-weight:600;color:var(--ink)}
.bars__note{margin:0;font:600 20px/1.3 var(--serif);color:var(--navy)}

/* team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.person{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.person__photo{aspect-ratio:4/3;display:grid;place-items:center;align-content:center;gap:var(--s-1);background:var(--sand)}
.person__photo--image{display:block;width:100%;object-fit:cover;object-position:center 25%}
.person__photo span{font:600 44px/1 var(--serif);color:var(--muted)}
.person__photo small{font:600 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.person__body{padding:var(--s-5);display:grid;gap:var(--s-2);justify-items:start}
.person__role{color:var(--muted);margin:0 0 var(--s-2)}

/* form */
.intake{display:grid;gap:var(--s-5);background:var(--white);border:1px solid var(--line);border-radius:var(--r-frame);padding:var(--s-7);box-shadow:var(--shadow);max-width:880px;margin:var(--s-6) 0 0}
.intake__choice{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6)}
.intake legend{font:600 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s-3)}
.intake .intake__choice label{display:flex;align-items:center;gap:var(--s-2);font-weight:500;color:var(--ink)}
.intake__fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s-4)}
.intake label{display:grid;gap:var(--s-2);font-size:15px;font-weight:500;color:var(--text)}
.intake input:not([type="radio"]),.intake select,.intake textarea{font:400 16px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px}
.intake input[type="radio"]{accent-color:var(--navy);width:18px;height:18px}
.intake .btn{justify-self:start}
.intake__status{margin:0;min-height:1.5em;font-weight:500;color:var(--navy)}

/* CTA band */
.ctaband{position:relative;overflow:hidden;background:var(--navy-deep)}
.ctaband__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ctaband__scrim{position:absolute;inset:0;background:var(--scrim)}
.ctaband__in{position:relative;padding-top:var(--s-9);padding-bottom:var(--s-9)}
.ctaband h2{color:var(--white);max-width:20ch;font-size:42px}
.ctaband p{color:var(--white);font-size:19px;max-width:var(--measure)}
.ctaband .friction{font-size:15px;color:var(--sand)}

/* footer */
.footer{background:var(--navy-deep);color:var(--sand);padding:var(--s-8) 0 var(--s-6);font-size:15px}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s-6)}
.footer__brand p{margin-top:var(--s-4);max-width:36ch}
.footer__h{font:600 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brass-light);margin-bottom:var(--s-3)}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.footer a{color:var(--white);text-decoration:none}
.footer a:hover{color:var(--brass-light);text-decoration:underline}
.footer__legal{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid rgba(217,184,120,.3);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3)}
.footer__legal p{margin:0}

/* responsive */
@media (max-width:1180px){
  .nav,.header__cta{display:none}
  .menu{display:block}
}
@media (max-width:1024px){
  .trust__grid{grid-template-columns:repeat(2,1fr)}
  .cards--3,.cards--4{grid-template-columns:repeat(2,1fr)}
  .steps--4,.steps--5{grid-template-columns:repeat(2,1fr)}
  .steps li::after{display:none}
  .team{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  :root{--gutter:20px}
  body{font-size:16px}
  h1{font-size:34px}
  h2{font-size:28px}
  h3{font-size:20px}
  .display{font-size:38px}
  .lede{font-size:18px}
  .utility__in span:first-child{display:none}
  .utility__in{justify-content:flex-end}
  .header__in{min-height:68px}
  .brand{font-size:19px}
  .hero{min-height:0}
  .hero__scrim{background:var(--scrim)}
  .hero__in{padding-top:var(--s-8);padding-bottom:var(--s-8)}
  .phero{grid-template-columns:1fr}
  .phero__img{order:-1;min-height:0;aspect-ratio:4/3}
  .phero__inner{max-width:none;padding:var(--s-7) var(--gutter)}
  .trust__grid{grid-template-columns:1fr;gap:var(--s-5);padding-top:var(--s-6);padding-bottom:var(--s-6)}
  .section{padding:var(--s-8) 0}
  .split{grid-template-columns:1fr;gap:var(--s-6)}
  .cards--2,.cards--3,.cards--4,.steps--3,.steps--4,.steps--5,.fit,.timeline,.team{grid-template-columns:1fr}
  .ranked{grid-template-columns:1fr}
  .chain{grid-template-columns:1fr;padding:var(--s-5)}
  .chain li{grid-template-columns:36px 1fr;align-items:center}
  .pull{padding:var(--s-6)}
  .pull p,.quote p{font-size:22px}
  .quote{padding-left:var(--s-5)}
  .bars__row{grid-template-columns:1fr}
  .intake{padding:var(--s-5)}
  .ctaband h2{font-size:30px}
  .footer__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
