/* ============================================================
   Affordable Development — affordable-development.com
   Design system: Heart Aerospace (Refero style reference),
   applied literally, with AD brand colors in Heart's roles:
     Stratosphere -> AD Slate  #5A6473  (atmospheric surfaces)
     Jetstream    -> AD Red    #B02730  (outlined actions ONLY)
     Onyx         -> #0A0A0A   (text, borders, footer)
     Cloud        -> #FFFFFF   (canvas, inverse text)
   Rules from the reference: monumental display type; full-bleed
   bands with no max-width container; 40px left anchor; zero
   border-radius; no cards, no shadows, no filled buttons; type
   and photography do all the work.
   ============================================================ */

:root{
  --slate:#5A6473;
  --slate-deep:#39414C;
  --onyx:#0A0A0A;
  --cloud:#FFFFFF;
  --red:#B02730;
  --mist:#8B929C;          /* muted text on light */
  --mist-dark:#C7CCD3;     /* muted text on dark */
  --hairline:#E2E3E5;
  --pad:clamp(20px, 3vw, 40px);   /* Heart's 40px viewport anchor */
  --gap:70px;                      /* Heart's section gap */
  --display:'Inter Tight','Inter','Helvetica Neue',sans-serif;
  --body:'Inter','Helvetica Neue',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;border-radius:0;}
html{scroll-behavior:smooth;}
body{
  overflow-x:clip;
  background:var(--cloud);
  color:var(--onyx);
  font-family:var(--body);
  font-size:18px;
  line-height:1.3;
  letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--red);color:var(--cloud);}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* ── type scale (Heart tokens) ───────────────────────────── */
.display{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(40px, 10.5vw, 156px);
  line-height:1.0;
  letter-spacing:-0.02em;
}
.heading{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(32px, 3.6vw, 46px);
  line-height:1.0;
  letter-spacing:-0.02em;
}
.label{
  font-size:13px;font-weight:600;letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--red);
}
.muted{color:var(--mist);}

/* [CONFIRM] chip — facts pending Bennett's confirmation */
.confirm{
  display:inline-block;
  font-size:10px;font-weight:600;letter-spacing:.05em;
  padding:2px 7px;
  border:1px dashed #A98A2E;
  color:#7A621A;
  background:#F6F0DD;
  vertical-align:middle;
}

/* ── outlined actions — never filled (Heart rule) ────────── */
.btn{
  display:inline-block;
  font-size:18px;font-weight:400;letter-spacing:-0.01em;
  padding:13px 30px;
  border:1.5px solid var(--red);
  color:var(--onyx);
  background:transparent;
  cursor:pointer;
  white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.btn:hover{background:rgba(176,39,48,.07);}
.on-dark .btn, .btn.light{color:var(--cloud);}
.on-dark .btn:hover, .btn.light:hover{background:rgba(255,255,255,.1);}
a.tlink{
  border-bottom:1.5px solid var(--red);
  padding-bottom:1px;
}

/* ── header: transparent over hero, solid after scroll ───── */
header.site{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:0 var(--pad);
  transition:background .25s ease, border-color .25s ease;
  border-bottom:1px solid transparent;
}
.nav{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:76px;
}
.nav .mark img{height:38px;width:auto;transition:filter .25s ease;}
.nav-links{display:flex;align-items:center;gap:28px;}
.nav-links a.link{
  font-size:17px;font-weight:400;
  color:var(--cloud);
  transition:color .25s ease, opacity .2s ease;
}
.nav-links a.link:hover{opacity:.7;}
.nav-links a.link.active{border-bottom:1.5px solid var(--red);}
.nav-links .btn{padding:10px 22px;font-size:16px;}
.nav-phone{
  font-size:17px;font-weight:600;color:var(--cloud);
  white-space:nowrap;
  transition:color .25s ease;
}
/* over the hero: white logo via filter; scrolled: real logo on white */
header.site:not(.scrolled) .mark img{filter:brightness(0) invert(1);}
header.site:not(.scrolled) .btn{color:var(--cloud);border-color:var(--cloud);}
header.site.scrolled{
  background:var(--cloud);
  border-bottom-color:var(--onyx);
}
header.site.scrolled .nav-links a.link{color:var(--onyx);}
header.site.scrolled .nav-phone{color:var(--onyx);}
/* pages without a hero start with a solid header */
header.site.solid{background:var(--cloud);border-bottom-color:var(--onyx);}
header.site.solid .nav-links a.link{color:var(--onyx);}
header.site.solid .nav-phone{color:var(--onyx);}
header.site.solid .mark img{filter:none;}
header.site.solid .btn{color:var(--onyx);border-color:var(--red);}

/* mobile drawer */
.menu-btn{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  width:40px;height:40px;background:transparent;border:0;cursor:pointer;padding:8px;
}
.menu-btn span{display:block;height:2px;width:100%;background:var(--cloud);transition:transform .25s ease,opacity .25s ease, background .25s ease;}
header.site.scrolled .menu-btn span, header.site.solid .menu-btn span{background:var(--onyx);}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-btn.open span:nth-child(2){opacity:0;}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.drawer{display:none;}
.drawer.open{
  display:block;
  background:var(--cloud);
  border-bottom:1px solid var(--onyx);
  padding:6px var(--pad) 26px;
}
.drawer a.link{
  display:block;color:var(--onyx);
  font-size:19px;padding:14px 0;
  border-bottom:1px solid var(--hairline);
}
.drawer a.link.active{color:var(--red);}
.drawer .nav-phone{display:block;color:var(--onyx);padding:14px 0;border-bottom:1px solid var(--hairline);}
.drawer .btn{margin-top:20px;color:var(--onyx);}

/* ── hero: full-bleed media, monumental type bottom-left ─── */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:flex-end;
  color:var(--cloud);
  overflow:hidden;
  background:linear-gradient(180deg, var(--slate) 0%, var(--slate-deep) 100%);
}
.hero.short{min-height:72vh;}
.hero-media{position:absolute;inset:0;}
.hero-media img, .hero-media video{
  width:100%;height:100%;object-fit:cover;
}
/* Heart's signature gradient: Stratosphere fading over the image */
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--slate) 78%, transparent) 0%,
    color-mix(in srgb, var(--slate) 28%, transparent) 42%,
    rgba(12,15,19,.52) 100%);
}
.hero-inner{
  position:relative;z-index:2;
  width:100%;
  padding:160px var(--pad) 64px;
}
.hero h1{max-width:12ch;}
.hero .sub{
  margin-top:22px;
  max-width:34ch;
  font-size:19px;line-height:1.3;
  color:var(--cloud);
}
.hero .actions{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;}

/* ── bands (full-bleed sections) ─────────────────────────── */
.band{padding:var(--gap) var(--pad);}
.band.tight{padding-top:46px;padding-bottom:46px;}
.band.dark{background:var(--onyx);color:var(--cloud);}
.band.dark .muted{color:var(--mist-dark);}
.band.atmos{
  background:linear-gradient(180deg, var(--slate) 0%, color-mix(in srgb, var(--slate) 55%, var(--cloud)) 100%);
  color:var(--cloud);
}
.band .title{max-width:20ch;}
.band .lede{margin-top:20px;max-width:34em;font-size:18px;line-height:1.4;color:var(--mist);}
.band.dark .lede, .band.atmos .lede{color:var(--mist-dark);}
.rule{border:0;border-top:1px solid var(--onyx);}
.band.dark .rule, .band.atmos .rule{border-top-color:rgba(255,255,255,.4);}

/* credibility strip */
.cred{
  border-top:1px solid var(--onyx);
  border-bottom:1px solid var(--onyx);
  padding:18px var(--pad);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 26px;
}
.cred span{font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;}

/* stats: type is the content */
.stats{
  margin-top:46px;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:40px clamp(24px,3vw,56px);
}
.stat .num{
  font-family:var(--display);font-weight:600;
  font-size:clamp(56px, 6.5vw, 110px);
  line-height:1;letter-spacing:-0.02em;
}
.stat .num sup{font-size:.38em;letter-spacing:0;}
.stat p{margin-top:10px;font-size:15px;line-height:1.35;color:var(--mist);}

/* flat column grids — no cards, no borders (Heart rule) */
.grid3{
  margin-top:46px;
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:46px clamp(24px,3vw,56px);
}
.grid3 .num{display:block;font-size:13px;font-weight:600;color:var(--red);margin-bottom:12px;}
.grid3 h3{
  font-family:var(--display);font-weight:600;
  font-size:23px;letter-spacing:-0.02em;line-height:1.05;
  margin-bottom:10px;
}
.grid3 p{font-size:16px;line-height:1.4;color:var(--mist);}
.grid3 a.more{
  display:inline-block;margin-top:14px;
  font-size:16px;
  border-bottom:1.5px solid var(--red);
  padding-bottom:1px;
}

/* client roster — the partner-grid analog, monochrome type */
.roster{
  margin-top:46px;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:34px clamp(24px,3vw,56px);
}
.roster div{border-top:1px solid var(--onyx);padding-top:14px;}
.roster b{
  display:block;
  font-family:var(--display);font-weight:600;
  font-size:20px;letter-spacing:-0.015em;line-height:1.1;
}
.roster span{display:block;margin-top:6px;font-size:14px;color:var(--mist);}

/* ledger rows */
.ledger{margin-top:46px;border-top:1px solid var(--onyx);}
.ledger .row{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--hairline);
  font-family:var(--display);font-weight:600;
  font-size:clamp(19px,2.1vw,27px);letter-spacing:-0.015em;
}
.band.dark .ledger .row{border-bottom-color:rgba(255,255,255,.22);}
.ledger .row small{font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--mist);}
.band.dark .ledger .row small{color:var(--mist-dark);}

/* two-up editorial split */
.duo{
  margin-top:46px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:46px clamp(32px,5vw,96px);
  align-items:start;
}
.duo .heading{max-width:16ch;}
.duo p{margin-top:16px;color:var(--mist);line-height:1.4;max-width:36em;}
.band.dark .duo p{color:var(--mist-dark);}
.duo .actions{margin-top:26px;}

/* prose blocks (services / projects) */
.prose{max-width:46em;}
.prose h3{
  font-family:var(--display);font-weight:600;
  font-size:22px;letter-spacing:-0.015em;margin-top:1.5em;
}
.prose p{margin-top:1em;line-height:1.45;color:#333;}
.prose ul{margin:1em 0 0 1.15em;color:#333;}
.prose li{margin-top:.45em;line-height:1.4;}
.prose .credline{
  margin-top:1.4em;
  font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  color:var(--mist);
  border-left:2px solid var(--red);
  padding-left:14px;
}
.block{
  border-top:1px solid var(--onyx);
  padding-top:46px;margin-top:var(--gap);
  display:grid;grid-template-columns:minmax(0,1.25fr) 1fr;
  gap:40px clamp(32px,4vw,80px);
  align-items:start;
}
.block:first-of-type{margin-top:46px;}
.block figure{position:sticky;top:100px;}
.block figure img{width:100%;height:auto;}
.block figcaption{margin-top:10px;font-size:13px;color:var(--mist);}

/* services — spec-sheet accordion (native details/summary) */
.acc{border-top:1px solid var(--onyx);margin-top:46px;}
.acc details{border-bottom:1px solid var(--onyx);}
.acc summary{
  display:flex;align-items:baseline;gap:clamp(16px,2vw,26px);
  padding:30px 0;
  cursor:pointer;
  list-style:none;
}
.acc summary::-webkit-details-marker{display:none;}
.acc summary .n{font-size:15px;font-weight:600;color:var(--red);width:36px;flex:none;}
.acc summary h2{
  font-family:var(--display);font-weight:600;
  font-size:clamp(30px,3.8vw,52px);line-height:1;letter-spacing:-0.02em;
  flex:1;
  transition:opacity .15s ease;
}
.acc summary:hover h2{opacity:.6;}
.acc summary .pm{
  font-family:var(--display);font-weight:600;
  font-size:34px;line-height:1;color:var(--red);
}
.acc summary .pm::before{content:"+";}
.acc details[open] summary .pm::before{content:"\2212";}
.abody{
  display:grid;grid-template-columns:1.2fr 1fr;
  gap:24px clamp(32px,4vw,72px);
  padding:0 0 44px 62px;
}
.abody .prose p{font-size:17px;line-height:1.45;margin-top:0;}
.abody .prose p+p{margin-top:12px;}
.abody h4{
  font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;
  margin-bottom:4px;
}
.abody ul{list-style:none;}
.abody li{
  padding:11px 0;
  border-bottom:1px solid var(--hairline);
  font-size:16px;line-height:1.35;
}
@media (max-width: 900px){
  .abody{grid-template-columns:1fr;padding-left:0;}
}

/* forms */
form.std{display:grid;gap:18px;max-width:620px;margin-top:40px;}
.field label{
  display:block;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--body);font-size:17px;
  padding:14px 16px;
  border:1px solid var(--onyx);
  background:var(--cloud);color:var(--onyx);
  appearance:none;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:2px solid var(--red);outline-offset:-1px;
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
form.std .btn{justify-self:start;}

/* tables */
table.std{width:100%;border-collapse:collapse;margin-top:34px;max-width:720px;}
table.std th{
  font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  color:var(--mist);text-align:left;
  padding:12px 16px 12px 0;
  border-bottom:1px solid var(--onyx);
}
table.std td{padding:15px 16px 15px 0;border-bottom:1px solid var(--hairline);font-size:17px;}
table.std td:first-child{font-family:var(--display);font-weight:600;}

/* ── onyx footer (Heart terminal) ────────────────────────── */
footer.site{
  background:var(--onyx);color:var(--cloud);
  padding:64px var(--pad) 40px;
}
.foot-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:40px clamp(24px,3vw,64px);
}
.foot-brand img{height:44px;width:auto;filter:brightness(0) invert(1);}
.foot-brand .lockup{
  margin-top:14px;
  font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--mist-dark);
}
.foot-brand .lockup a{border-bottom:1px solid var(--red);}
.foot-grid h4{font-size:16px;font-weight:600;margin-bottom:14px;}
.foot-grid ul{list-style:none;}
.foot-grid li{margin-top:9px;font-size:15px;color:var(--mist-dark);}
.foot-grid a:hover{color:var(--cloud);}
.foot-legal{
  margin-top:52px;padding-top:20px;
  border-top:1px solid #2A2A2A;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;
  font-size:12px;letter-spacing:.03em;text-transform:uppercase;
  color:#8A8F96;
}
.foot-seo{margin-top:16px;font-size:12px;line-height:1.5;color:#5F646B;max-width:880px;}

/* ── responsive ──────────────────────────────────────────── */
@media (max-width: 1080px){
  .nav-phone{display:none;}
  .stats{grid-template-columns:1fr 1fr;}
  .roster{grid-template-columns:1fr 1fr;}
  .block{grid-template-columns:1fr;}
  .block figure{position:static;max-width:560px;}
}
@media (max-width: 760px){
  .nav-links a.link{display:none;}
  .nav-links .btn{display:none;}
  .menu-btn{display:flex;}
  .grid3{grid-template-columns:1fr;}
  .duo{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .hero-inner{padding-top:130px;}
}
@media (max-width: 480px){
  .stats{grid-template-columns:1fr;}
  .roster{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .hero-media video{display:none;}
}
