/* H&A My Design — ADU Los Angeles landing page
   v20260901-1  |  mobile-first, 390px baseline */

/* ---------- tokens ---------- */
:root{
  --navy-900:#0C1B27;
  --navy-800:#102636;
  --navy-700:#16344A;
  --navy-600:#1E4460;
  --ink:#152532;
  --body:#4A5C68;
  --muted:#71838F;
  --line:#DFD8CB;
  --line-soft:#EAE4D9;
  --cream:#F6F2EA;
  --cream-2:#FBF9F4;
  --white:#fff;
  --gold:#C1913F;
  --gold-bright:#E2BD6E;
  --gold-soft:#F3E6CB;

  --shell:min(1140px,100% - 2.5rem);
  --shell-narrow:min(940px,100% - 2.5rem);
  --r:2px;
  --ease:cubic-bezier(.22,.61,.36,1);

  --f-display:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --f-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--f-body);font-size:1rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}

h1,h2,h3,.h{font-family:var(--f-display);font-weight:700;letter-spacing:-.03em;line-height:1.02;margin:0}
h1{font-size:clamp(2.35rem,9vw,4.6rem);letter-spacing:-.042em;line-height:.96}
h2{font-size:clamp(2rem,6.4vw,3.7rem);letter-spacing:-.038em;line-height:1.02}
h3{font-size:clamp(1.12rem,2.4vw,1.4rem);letter-spacing:-.022em;line-height:1.2}
p{margin:0}
figure,blockquote,ol,ul,dl{margin:0}

.shell{width:var(--shell);margin-inline:auto}
.section{padding:clamp(3.75rem,9vw,7.5rem) 0}
/* block, not flex: as flex, each text node became its own item and the
   label broke into ragged columns once it wrapped on a phone */
.eyebrow{
  font-family:var(--f-display);font-size:.66rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
  margin:0 0 1.15rem;display:block;line-height:1.5;text-wrap:balance;
}
.eyebrow::before{
  content:"";display:inline-block;width:1.6rem;height:1px;background:currentColor;
  opacity:.7;vertical-align:middle;margin-right:.6rem;margin-bottom:.15em
}
.lede{font-size:clamp(1.02rem,2.1vw,1.18rem);line-height:1.72;color:var(--body);max-width:56ch}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--f-display);font-weight:700;font-size:.83rem;
  letter-spacing:.09em;text-transform:uppercase;text-decoration:none;
  padding:1.12rem 1.7rem;border:0;border-radius:var(--r);cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
  text-align:center;line-height:1.1;
}
.btn--gold{background:var(--gold);color:var(--navy-900)}
.btn--gold:hover{background:var(--gold-bright)}
.btn--navy{background:var(--navy-800);color:#fff}
.btn--navy:hover{background:var(--navy-600)}
.btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn--ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6)}
.btn--block{width:100%}
.btn:active{transform:translateY(1px)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{
  outline:2px solid var(--gold-bright);outline-offset:3px
}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;background:var(--navy-900);color:#fff;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{display:flex;flex-direction:column;gap:.18rem;text-decoration:none;line-height:1}
.brand__name{font-family:var(--f-display);font-weight:700;font-size:1.02rem;letter-spacing:.055em}
.brand__name b{color:var(--gold-bright);font-weight:700}
.brand__sub{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.nav__right{display:flex;align-items:center;gap:.6rem}
.nav__lic{display:none;font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}

/* jump nav — same-page anchors only, so paid traffic never leaves the page */
.nav__links{display:none;align-items:center;gap:1.5rem;margin-left:auto;margin-right:1.5rem}
.nav__links a{
  text-decoration:none;font-family:var(--f-display);font-size:.74rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.72);
  padding:.35rem 0;border-bottom:1px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease);white-space:nowrap
}
.nav__links a:hover{color:#fff;border-bottom-color:var(--gold)}
.nav__cta{display:none}
.nav__toggle{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  background:transparent;border:1px solid rgba(255,255,255,.28);color:#fff;
  padding:.6rem .7rem;border-radius:var(--r);cursor:pointer;
  font-family:var(--f-display);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase
}
.nav__toggle:hover{background:rgba(255,255,255,.08)}
.nav__toggle svg{display:block}
.nav__toggle .ico-x{display:none}
.nav__toggle[aria-expanded="true"] .ico-m{display:none}
.nav__toggle[aria-expanded="true"] .ico-x{display:block}
.nav__panel{
  display:none;background:var(--navy-800);border-top:1px solid rgba(255,255,255,.1);
  padding:.5rem 0 1rem
}
.nav__panel[data-open="true"]{display:block}
.nav__panel ul{list-style:none;margin:0;padding:0}
.nav__panel a{
  display:block;text-decoration:none;padding:.9rem .25rem;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-family:var(--f-display);font-size:.86rem;font-weight:600;letter-spacing:.05em;color:#DCE5EA
}
.nav__panel a:hover{color:var(--gold-bright)}
.nav__panel .btn{margin-top:1rem}
.nav__tel{
  display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
  border:1px solid rgba(226,189,110,.5);color:var(--gold-bright);
  padding:.6rem .85rem;border-radius:var(--r);
  font-family:var(--f-display);font-weight:700;font-size:.76rem;letter-spacing:.06em;white-space:nowrap;
  transition:background .25s var(--ease)
}
.nav__tel:hover{background:rgba(226,189,110,.12)}
.nav__tel svg{flex:none}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--navy-900);color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg picture{display:block;width:100%;height:100%}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:26% 46%}
/* Mobile: the hero is ~1050px tall because it holds the form, and no
   photograph survives that aspect ratio. So the image gets a clean band at
   the top behind the headline and fades into solid navy behind the form. */
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(10,22,32,.34) 0%,
    rgba(10,22,32,.30) 26%,
    rgba(10,22,32,.72) 42%,
    rgba(10,22,32,.97) 54%,
    rgba(10,22,32,1) 100%);
}
.hero__in{position:relative;z-index:1;padding:clamp(2.5rem,7vw,5rem) 0 clamp(2.5rem,6vw,4.5rem)}
.hero__grid{display:grid;gap:clamp(2rem,5vw,3.5rem)}
.hero h1{margin:0 0 1.35rem;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--gold-bright)}
.hero__sub{font-size:clamp(1.05rem,2.3vw,1.32rem);line-height:1.45;color:#fff;font-weight:600;max-width:26ch;letter-spacing:-.012em}
.hero__rule{width:3.2rem;height:2px;background:var(--gold);margin:1.6rem 0}
.hero__pts{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:.7rem}
.hero__pts li{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;color:#CFDCE3;line-height:1.5}
.hero__pts svg{flex:none;margin-top:.28rem;color:var(--gold-bright)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem}

.rating{display:flex;align-items:center;gap:.5rem .75rem;margin:0 0 1.15rem;flex-wrap:wrap}
.rating__g{
  display:inline-flex;align-items:center;gap:.4rem;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  padding:.3rem .6rem;border-radius:2px
}
.rating__g img{width:17px;height:17px;flex:none}
.rating__g b{font-family:var(--f-display);font-size:.95rem;font-weight:700;color:#fff;letter-spacing:-.01em}
.rating__stars{color:var(--gold-bright);letter-spacing:.06em;font-size:.72rem}
.rating__txt{font-size:.78rem;color:#BCCBD4;letter-spacing:.02em}
.rating__txt b{color:#fff;font-weight:600}

/* ---------- form ---------- */
.formcard{
  background:var(--white);color:var(--ink);border-radius:var(--r);
  box-shadow:0 30px 70px -20px rgba(6,17,26,.55);border-top:3px solid var(--gold);
  padding:clamp(1.4rem,4vw,2rem);
}
.formcard__head{margin-bottom:1.15rem}
.formcard__head h2{font-size:clamp(1.4rem,3.4vw,1.72rem);margin-bottom:.5rem}
.formcard__head p{font-size:.86rem;color:var(--muted);line-height:1.55}

.steps{display:flex;align-items:center;gap:.5rem;margin-bottom:1.15rem}
.steps__bar{flex:1;height:3px;background:var(--line-soft);border-radius:2px;overflow:hidden}
.steps__fill{display:block;height:100%;width:50%;background:var(--gold);transition:width .4s var(--ease)}
.steps__txt{font-family:var(--f-display);font-size:.66rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

.field{margin-bottom:.85rem}
.field label{display:block;font-family:var(--f-display);font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--navy-700);margin-bottom:.4rem}
.field input,.field select{
  width:100%;padding:.9rem .95rem;border:1px solid var(--line);border-radius:var(--r);
  background:var(--cream-2);font-size:1rem;transition:border-color .2s var(--ease),background .2s var(--ease)
}
.field select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2371838F' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .95rem center;padding-right:2.4rem}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold);background:#fff}
.field input::placeholder{color:#9DABB4}
/* ---- tappable choice chips (replaces the ADU-type dropdown) ---- */
.field__label{display:block;font-family:var(--f-display);font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--navy-700);margin-bottom:.4rem}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.field input.chip__in,.chip__in{position:absolute;opacity:0;width:1px;height:1px;min-width:0;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0 0 0 0)}
/* `.field label` (0,1,1) outranks `.chip` (0,1,0), so qualify it and reset
   the inherited uppercase/letter-spacing/block-display from that rule. */
.field label.chip,.chip{
  display:flex;flex-direction:column;gap:.12rem;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r);background:var(--cream-2);
  padding:.62rem .7rem;min-height:3.4rem;justify-content:center;
  text-transform:none;letter-spacing:normal;margin:0;font-size:1rem;
  transition:border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)
}
.chip b{
  display:block;font-family:var(--f-display);font-size:.83rem;font-weight:700;
  letter-spacing:-.012em;text-transform:none;color:var(--ink);line-height:1.15
}
.chip span{
  display:block;font-family:var(--f-body);font-size:.66rem;font-weight:400;
  letter-spacing:normal;text-transform:none;line-height:1.3;color:var(--muted)
}
.chip:hover{border-color:var(--gold);background:#fff}
.chip__in:checked + .chip{
  border-color:var(--navy-800);background:var(--navy-800);
  box-shadow:inset 0 0 0 1px var(--navy-800)
}
.chip__in:checked + .chip b{color:#fff}
.chip__in:checked + .chip span{color:var(--gold-bright)}
.chip__in:focus-visible + .chip{outline:2px solid var(--gold-bright);outline-offset:2px}
.field--err .chip{border-color:#D8A99C}

.field--err input,.field--err select{border-color:#B4462F;background:#FDF6F4}
.field__hint{display:block;font-size:.71rem;color:var(--muted);margin-top:.35rem;line-height:1.4}
.field--err .field__hint{display:none}
.field__err{display:none;font-size:.75rem;color:#B4462F;margin-top:.35rem;line-height:1.4}
.field--err .field__err{display:block}
.grid2{display:grid;gap:0}

.step[hidden]{display:none}
.formcard__foot{margin-top:.9rem;font-size:.72rem;color:var(--muted);line-height:1.55;text-align:center}
.formcard__foot a{color:var(--body)}
.backlink{background:none;border:0;padding:.5rem 0 0;font-size:.78rem;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.backlink:hover{color:var(--ink)}
.formnote{
  display:flex;gap:.6rem;align-items:flex-start;background:var(--cream);
  border-left:2px solid var(--gold);padding:.75rem .85rem;margin-bottom:1.05rem;
  font-size:.78rem;line-height:1.55;color:var(--body)
}
.formnote svg{flex:none;margin-top:.15rem;color:var(--gold)}

/* ---------- trust logo band ---------- */
.logos{background:var(--navy-900);padding:2rem 0 2.1rem;border-bottom:1px solid rgba(255,255,255,.09)}
.logos__in{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:1.75rem 3rem}
.logos__lbl{width:100%;text-align:center;font-family:var(--f-display);font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#7B909D;margin:0 0 .6rem}
.logos figure{display:flex;flex-direction:column;align-items:center;gap:.6rem;min-width:9rem}
.logos img{height:34px;width:auto;opacity:.95}
.logos figcaption{font-size:.72rem;letter-spacing:.04em;color:#A6B8C3;white-space:nowrap;text-align:center}
.logos figcaption b{color:var(--gold-bright);font-weight:600}
/* Google source mark on every quoted Google review */
.g-src{display:grid;grid-template-columns:16px 1fr;gap:.45rem;align-items:start}
.g-ic{width:16px;height:16px;flex:none;display:block;margin-top:.06em}

.logos__grow{display:flex;align-items:center;gap:.5rem;height:34px}
.logos__grow img{height:26px;width:26px;opacity:1}
.logos__grow b{font-family:var(--f-display);font-size:1.35rem;font-weight:600;letter-spacing:-.03em;color:#fff}
.logos__stars{color:var(--gold-bright);letter-spacing:.08em;font-size:.7rem}
.logos__award{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-width:9rem;padding-top:.15rem}
.logos__award b{font-family:var(--f-display);font-size:1.5rem;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--gold-bright)}
.logos__award span{font-size:.72rem;letter-spacing:.04em;color:#A6B8C3;text-align:center}

/* ---------- trust strip ---------- */
.trust{background:var(--white);border-bottom:1px solid var(--line-soft)}
.trust__grid{display:grid;grid-template-columns:1fr 1fr}
.trust__i{padding:1.35rem 1.1rem;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.trust__i:nth-child(2n){border-right:0}
.trust__i:nth-last-child(-n+2){border-bottom:0}
.trust__i b{display:block;font-family:var(--f-display);font-size:.95rem;font-weight:700;letter-spacing:-.015em;color:var(--navy-800);margin-bottom:.2rem}
.trust__i span{display:block;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);line-height:1.4}

/* ---------- dark section ---------- */
.dark{background:var(--navy-800);color:#fff}
.dark h2{color:#fff}
.dark .lede{color:#BCCBD4}
.dark .eyebrow{color:var(--gold-bright)}

.why__grid{display:grid;gap:clamp(2rem,5vw,3.25rem);align-items:center}
.why__fig img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.why__fig figcaption{margin-top:.7rem;font-size:.72rem;color:#8FA5B2;line-height:1.55}

.cards{display:grid;gap:1px;background:rgba(255,255,255,.11);margin-top:clamp(2.25rem,5vw,3.25rem)}
.card{background:var(--navy-800);padding:clamp(1.5rem,3.6vw,2.1rem)}
.card__n{font-family:var(--f-display);font-size:.68rem;font-weight:700;letter-spacing:.18em;color:var(--gold-bright);display:block;margin-bottom:1.6rem}
.card h3{margin-bottom:.6rem;color:#fff}
.card p{font-size:.9rem;line-height:1.65;color:#AFC0CA}

/* ---------- showroom (lead USP) ---------- */
.showroom{background:var(--cream-2)}
.showroom__grid{display:grid;gap:clamp(2rem,5vw,3.25rem);align-items:start}
.showroom__fig{position:relative;border-radius:var(--r);overflow:hidden;background:var(--navy-900)}
.showroom__fig img{width:100%;aspect-ratio:3/4;object-fit:cover}
.showroom__cap{background:var(--cream);border:1px solid var(--line-soft);border-top:0;padding:.7rem .95rem;font-size:.72rem;line-height:1.5;color:var(--muted)}
.showroom__stat{
  background:var(--navy-800);color:#fff;padding:1.5rem 1.35rem;border-top:3px solid var(--gold);
}
.showroom__stat b{display:block;font-family:var(--f-display);font-size:clamp(2rem,6vw,2.7rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--gold-bright)}
.showroom__stat span{display:block;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:#AFC0CA;margin-top:.45rem}
.quotes{display:grid;gap:1rem;margin:2rem 0}
.quote{background:#fff;border:1px solid var(--line-soft);border-left:2px solid var(--gold);padding:1.15rem 1.3rem}
.quote p{font-size:.95rem;line-height:1.7;color:var(--ink)}
.quote footer{margin-top:.8rem;font-size:.73rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.checks{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:.85rem}
.checks li{display:flex;gap:.75rem;align-items:flex-start;font-size:.95rem;line-height:1.6;color:var(--body)}
.checks svg{flex:none;margin-top:.3rem;color:var(--gold)}
.checks b{color:var(--ink);font-weight:600}

/* ---------- full-bleed collage strip ---------- */
.strip{background:var(--navy-900);padding:0;overflow:hidden}
.strip__lbl{
  display:flex;align-items:center;gap:.4rem .7rem;justify-content:center;flex-wrap:wrap;
  padding:1.1rem 1.25rem;font-family:var(--f-display);font-size:.64rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:#7B909D;text-align:center;
  border-bottom:1px solid rgba(255,255,255,.08)
}
.strip__lbl b{color:var(--gold-bright);font-weight:700}
.strip__row{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.strip__row::-webkit-scrollbar{display:none}
.strip__row figure{position:relative;flex:0 0 78%;scroll-snap-align:start;margin:0}
.strip__row img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.strip__row figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.5rem .85rem .7rem;
  background:linear-gradient(180deg,transparent,rgba(9,21,31,.88));color:#fff;
  font-family:var(--f-display);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase
}
.strip__row figcaption em{display:block;font-style:normal;font-weight:400;letter-spacing:.05em;color:rgba(255,255,255,.6);font-size:.62rem;margin-top:.15rem}
.strip__hint{padding:.7rem 1.25rem 1rem;text-align:center;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#61757F}

/* ---------- people trio ---------- */
.trio{display:grid;gap:2px;margin-top:1.75rem}
.trio figure{position:relative;margin:0;overflow:hidden;background:var(--navy-800)}
.trio img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.trio figcaption{padding:.7rem .85rem;font-size:.7rem;line-height:1.5;color:#8FA5B2;background:rgba(255,255,255,.04)}

/* ---------- financing ---------- */
.fin{background:var(--cream-2);border-top:1px solid var(--line-soft)}
.fin__grid{display:grid;gap:clamp(2rem,5vw,3.25rem);align-items:center}
.fin__box{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);padding:clamp(1.5rem,3.5vw,2.1rem)}
.fin__box h3{margin-bottom:1rem}
.fin__list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.fin__list li{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;line-height:1.6;color:var(--body)}
.fin__list svg{flex:none;margin-top:.28rem;color:var(--gold)}
.fin__list b{color:var(--ink);font-weight:600}
.fin__note{margin-top:1.35rem;padding-top:1rem;border-top:1px solid var(--line-soft);font-size:.75rem;line-height:1.6;color:var(--muted)}

/* ---------- video testimonials ---------- */
.vids{background:var(--cream)}
/* phones: swipe instead of stacking six 16:9 cards (saves ~1,500px of scroll) */
.vids__grid{
  display:flex;gap:.75rem;margin-top:clamp(2.25rem,5vw,3.25rem);
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:.25rem
}
.vids__grid::-webkit-scrollbar{display:none}
.vids__grid > .vid{flex:0 0 82%;scroll-snap-align:start}
.vids__hint{margin-top:.9rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vid{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.vid__btn{
  position:relative;display:block;width:100%;padding:0;border:0;background:var(--navy-900);
  cursor:pointer;aspect-ratio:16/9;overflow:hidden
}
.vid__btn img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),opacity .3s var(--ease)}
.vid__btn:hover img{transform:scale(1.04);opacity:.9}
.vid__play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none
}
.vid__play span{
  width:3.5rem;height:3.5rem;border-radius:50%;background:rgba(193,145,63,.94);
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(6,17,26,.45);
  transition:transform .3s var(--ease)
}
.vid__btn:hover .vid__play span{transform:scale(1.08)}
.vid__play svg{margin-left:3px;color:var(--navy-900)}
.vid__t{padding:1rem 1.1rem 1.15rem}
.vid__t b{display:block;font-family:var(--f-display);font-size:.98rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:.2rem}
.vid__t span{font-size:.75rem;color:var(--muted);letter-spacing:.03em}
.vid iframe{width:100%;aspect-ratio:16/9;border:0;display:block}

/* ---------- human band ---------- */
.human{background:var(--navy-900);color:#fff;padding:0}
.human__grid{display:grid;align-items:stretch}
.human__fig{position:relative;min-height:16rem}
.human__fig img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.human__t{padding:clamp(2.25rem,5vw,3.5rem) 0}
.human h2{color:#fff;margin-bottom:1.15rem}
.human__head{display:grid;gap:1.25rem}
.human p{color:#BCCBD4;line-height:1.72;max-width:58ch}
.human__head p + p{margin-top:1rem}
.human__cap{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.15);font-size:.74rem;color:#8FA5B2;line-height:1.6;max-width:58ch}

/* ---------- gallery ---------- */
.gallery{background:var(--white)}
/* ---- project case studies: one complete ADU each, exterior-led ---- */
.proj{margin-top:clamp(2.5rem,5vw,3.5rem)}
.proj + .proj{margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(2.5rem,5vw,3.5rem);border-top:1px solid var(--line)}
.proj__head{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:baseline;justify-content:space-between;margin-bottom:1.25rem}
.proj__n{font-family:var(--f-display);font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.proj__head h3{font-size:clamp(1.3rem,3vw,1.85rem);letter-spacing:-.03em}
.proj__head p{font-size:.86rem;color:var(--muted);max-width:52ch;flex-basis:100%}
.proj__grid{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}
.pic{position:relative;overflow:hidden;background:var(--line-soft);border-radius:var(--r)}
.pic img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.pic--lead{grid-column:1/-1}
.pic--lead img{aspect-ratio:16/9}
.proj__grid .pic:not(.pic--lead) img{aspect-ratio:4/3}
.pic:hover img{transform:scale(1.035)}
.pic figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.6rem .95rem .85rem;
  background:linear-gradient(180deg,transparent,rgba(9,21,31,.9));color:#fff;
  font-family:var(--f-display);font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase
}
.pic figcaption em{display:block;font-style:normal;font-weight:400;letter-spacing:.05em;color:rgba(255,255,255,.62);font-size:.66rem;margin-top:.2rem}

/* ---------- self-selection ---------- */
.uses{background:var(--cream)}
.uses__grid{display:grid;gap:1px;background:var(--line);margin-top:clamp(2.25rem,5vw,3.25rem);border:1px solid var(--line)}
.use{background:var(--cream-2);display:flex;flex-direction:column}
.use img{width:100%;aspect-ratio:3/2;object-fit:cover}
.use__t{padding:clamp(1.25rem,3vw,1.6rem)}
.use h3{margin-bottom:.5rem}
.use p{font-size:.89rem;line-height:1.65;color:var(--body)}

/* areas banner */
.areas__fig{margin-top:clamp(2rem,4vw,2.75rem)}
.areas__fig img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--r)}
.areas__fig figcaption{margin-top:.7rem;font-size:.72rem;color:var(--muted)}

/* ---------- reviews ---------- */
.reviews{background:var(--white)}
.reviews__grid{display:grid;gap:1rem;margin-top:clamp(2.25rem,5vw,3.25rem)}
.review{background:var(--cream-2);border:1px solid var(--line-soft);padding:clamp(1.35rem,3vw,1.7rem);display:flex;flex-direction:column}
.review__stars{color:var(--gold);letter-spacing:.14em;font-size:.88rem;margin-bottom:.85rem}
.review p{font-size:.93rem;line-height:1.72;color:var(--ink);flex:1}
.review footer{margin-top:auto;padding-top:.85rem;border-top:1px solid var(--line-soft);font-size:.76rem;color:var(--muted);line-height:1.5}
.review p{margin-bottom:1.15rem}
.review footer b{display:block;color:var(--ink);font-weight:600;font-size:.83rem;letter-spacing:.01em}

/* ---------- proof / permit ---------- */
.proof{background:var(--navy-900);color:#fff}
.proof__grid{display:grid;gap:clamp(2rem,5vw,3.25rem);align-items:center}
.proof__fig img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r)}
.proof__fig figcaption{margin-top:.75rem;font-size:.73rem;color:#8FA5B2;line-height:1.55}
.proof h2{margin-bottom:1.15rem}
.proof .lede{color:#BCCBD4;margin-bottom:1.75rem}
.facts{display:grid;gap:1px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.13)}
.fact{background:var(--navy-900);padding:1.1rem 1.15rem}
.fact b{display:block;font-family:var(--f-display);font-size:.9rem;letter-spacing:-.01em;color:var(--gold-bright);margin-bottom:.15rem}
.fact span{font-size:.75rem;color:#9CB0BC;line-height:1.5}

/* ---------- process ---------- */
.process{background:var(--cream-2)}
.process__grid{display:grid;gap:clamp(2rem,5vw,3.5rem)}
.steps__list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.pstep{background:var(--white);padding:1.25rem 1.3rem;display:flex;gap:1.05rem;align-items:flex-start}
.pstep b{font-family:var(--f-display);font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--gold);flex:none;padding-top:.2rem;width:1.6rem}
.pstep h3{font-size:1rem;margin-bottom:.25rem}
.pstep p{font-size:.85rem;line-height:1.6;color:var(--body)}
.pullstack{display:grid;gap:.75rem;align-self:start;position:sticky;top:88px}
.pullquote{background:var(--navy-800);color:#fff;padding:clamp(1.35rem,3.2vw,1.9rem);border-top:3px solid var(--gold)}
.pullquote--alt{background:var(--navy-900);border-top-color:var(--gold-bright)}
.pullquote p{font-family:var(--f-display);font-size:clamp(1.02rem,2.1vw,1.22rem);font-weight:600;letter-spacing:-.022em;line-height:1.34}
.pullquote footer{margin-top:1rem;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:#9CB0BC}

/* ---------- areas ---------- */
.areas{background:var(--white)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.tags span{border:1px solid var(--line);background:var(--cream-2);padding:.6rem .9rem;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--body);border-radius:var(--r)}

/* ---------- faq ---------- */
.faq{background:var(--cream)}
.faq__list{margin-top:clamp(2rem,4vw,2.75rem);border-top:1px solid var(--line);max-width:56rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:1.25rem 2.5rem 1.25rem 0;position:relative;
  font-family:var(--f-display);font-weight:600;font-size:1.02rem;letter-spacing:-.018em;line-height:1.35;color:var(--ink)
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:.35rem;top:1.55rem;width:.7rem;height:.7rem;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(45deg);transition:transform .3s var(--ease)
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq__a{padding:0 0 1.4rem;font-size:.94rem;line-height:1.72;color:var(--body);max-width:64ch}

/* ---------- final ---------- */
.final{background:var(--navy-900);color:#fff}
.final__grid{display:grid;gap:clamp(2.25rem,5vw,3.5rem);align-items:start}
.final h2{margin-bottom:1.15rem}
.final h2 em{font-style:normal;color:var(--gold-bright)}
.final .lede{color:#BCCBD4}
.final__tel{
  display:flex;flex-direction:column;gap:.3rem;margin-top:2rem;padding-top:1.75rem;
  border-top:1px solid rgba(255,255,255,.15);text-decoration:none
}
.final__tel span{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#8FA5B2}
.final__tel b{font-family:var(--f-display);font-size:clamp(1.5rem,4.5vw,2rem);font-weight:700;letter-spacing:-.03em;color:var(--gold-bright)}

/* ---------- footer ---------- */
.foot{background:#08131C;color:#7E93A0;padding:2.75rem 0 6rem;font-size:.8rem;line-height:1.7}
.foot__grid{display:grid;gap:1.75rem}
.foot b{color:#C6D3DA;font-weight:600;display:block;margin-bottom:.4rem;font-family:var(--f-display);letter-spacing:.02em}
.foot a{color:#9DB0BB}
.foot__legal{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.09);font-size:.72rem;color:#61757F;line-height:1.7}

/* ---------- sticky bar ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;gap:.5rem;padding:.55rem;
  background:rgba(12,27,39,.97);backdrop-filter:blur(8px);border-top:1px solid rgba(226,189,110,.25)
}
.sticky .btn{flex:1;padding:.95rem .5rem;font-size:.76rem;letter-spacing:.07em}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
}

/* ---------- breakpoints ---------- */
@media (min-width:600px){
  .grid2{grid-template-columns:1fr 1fr;gap:0 .8rem}
  .trust__grid{grid-template-columns:repeat(4,1fr)}
  .trust__i{border-bottom:0}
  .trust__i:nth-child(2n){border-right:1px solid var(--line-soft)}
  .trust__i:last-child{border-right:0}
  .cards{grid-template-columns:repeat(3,1fr)}
  .uses__grid{grid-template-columns:repeat(2,1fr)}
  .reviews__grid{grid-template-columns:repeat(2,1fr)}
  .vids__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;overflow:visible}
  .vids__grid > .vid{flex:none}
  .vids__hint{display:none}
  .facts{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:1fr 1fr}
  .sticky{padding:.6rem 1rem}
  .strip__row figure{flex:0 0 40%}
  .trio{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:880px){
  .nav__lic{display:block}
  .nav__links{display:flex}
  .nav__toggle{display:none}
  .nav__panel{display:none !important}
  .nav__cta{display:inline-flex}
  .hero__grid{grid-template-columns:1.05fr .82fr;align-items:center}
  .hero__bg img{object-position:56% 60%}
  .hero__bg::after{
    background:
      linear-gradient(96deg,rgba(10,22,32,.94) 0%,rgba(10,22,32,.84) 26%,rgba(10,22,32,.4) 48%,rgba(10,22,32,.1) 68%,rgba(10,22,32,.24) 100%),
      linear-gradient(180deg,rgba(10,22,32,.3) 0%,rgba(10,22,32,0) 22%,rgba(10,22,32,0) 68%,rgba(10,22,32,.5) 100%);
  }
  .hero__in{padding:clamp(3.5rem,6vw,5.5rem) 0 clamp(3.5rem,6vw,5rem)}
  .showroom__grid{grid-template-columns:.85fr 1.15fr}
  .proof__grid{grid-template-columns:1.05fr .95fr}
  .process__grid{grid-template-columns:1.35fr .65fr}
  .final__grid{grid-template-columns:1fr 1fr}
  .why__grid{grid-template-columns:1.05fr .95fr}
  .proj__grid{grid-template-columns:repeat(4,1fr);gap:.6rem}
  .pic--lead{grid-column:1/3;grid-row:1/3}
  .pic--lead img{aspect-ratio:auto;height:100%}
  .human__grid{grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3.5rem)}
  .fin__grid{grid-template-columns:1fr 1fr}
  .human__head{grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
  .ba__grid{grid-template-columns:.85fr 1.15fr}
  .human__t{padding:clamp(3rem,6vw,4.5rem) 0}
  .foot__grid{grid-template-columns:repeat(4,1fr)}
  .uses__grid{grid-template-columns:repeat(4,1fr)}
  .vids__grid{grid-template-columns:repeat(3,1fr)}
  .reviews__grid{grid-template-columns:repeat(4,1fr)}
  .foot{padding-bottom:2.75rem}
  .sticky{display:none}
  .strip__row figure{flex:0 0 20%}
  .strip__hint{display:none}
}
@media (min-width:1100px){
}

/* ============================================================
   MOBILE CONVERSION PASS  (<= 879px)
   ~70% of paid traffic. The job of the first screen is: confirm
   the category, show third-party proof, and put the first form
   interaction within reach without a scroll.
   ============================================================ */
@media (max-width:879px){

  /* Interleave the form into the copy. display:contents promotes the
     text column's children to grid items so they can be reordered.
     Paul, 19 October 2026: bullets up, form down, so the proof is read
     before the ask. The sticky bar carries the CTA until the form
     is scrolled to. */
  .hero__col{display:contents}
  .hero .eyebrow{order:1}
  .hero .rating{order:2}
  .hero h1{order:3}
  .hero__sub{order:4}
  .hero__pts{order:5}
  .hero .formcard{order:6}
  .hero__grid{gap:1.15rem}

  /* Reclaim fold height */
  .hero__in{padding:1.4rem 0 1.75rem}
  .hero__rule{display:none}
  .hero__cta{display:none}        /* the sticky bar carries both actions */
  .hero__sub{font-size:1.02rem;max-width:32ch}
  .hero__pts{margin:.4rem 0 .15rem;gap:.55rem}
  .hero__pts li{font-size:.88rem;line-height:1.4}

  /* Centered hero, phones only.
     Applies to: the hero's own eyebrow, rating, H1 and sub-headline, the
     bullet list as a block, and both form card headings.
     Deliberately NOT applied to: the individual bullet lines (each stays
     left-aligned inside the centered block, because a ragged left edge on
     a six-item list costs more in readability than symmetry gains), nor to
     form labels, inputs, hints or errors, nor to any body copy, review,
     FAQ or section text below the hero. */
  .hero .eyebrow,.hero h1,.hero__sub{text-align:center}
  .hero__sub{margin-inline:auto}
  .hero .rating{justify-content:center}

  /* display:contents makes each of these a grid item, so its own bottom
     margin stacks on top of the 1.15rem grid gap and every hero element
     was double-spaced. Zero the margins and let the gap do the spacing:
     worth about 44px of fold, which is the form card's description line. */
  .hero .eyebrow{margin:0 auto}
  .hero .rating{margin:0}
  .hero h1{margin:0}
  .hero__pts{width:fit-content;max-width:100%;margin-inline:auto}
  .formcard__head{text-align:center}
  .formcard__head .eyebrow{margin-inline:auto}
  .field label.chip{align-items:center;text-align:center}

  /* Trust line: two tight rows instead of three ragged ones */
  .rating{gap:.4rem .55rem;margin:0 0 .9rem}
  .rating__g{padding:.24rem .5rem}
  .rating__g b{font-size:.88rem}
  .rating__txt{font-size:.73rem;line-height:1.45}

  /* The tagline could not fit beside the phone and menu button */
  .brand__sub{display:none}
  .nav__in{min-height:58px}

  /* 44px minimum touch target (WCAG 2.5.5) — both were 37-41px */
  .nav__tel{min-height:44px;padding:.6rem .8rem}
  .nav__toggle{min-height:44px;min-width:44px}
  .brand{padding:.35rem 0}

  /* Badge row was ~280px of stacked logos — halve it */
  .logos{padding:1.5rem 0 1.6rem}
  .logos__in{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem .75rem}
  .logos figure,.logos__award{min-width:0}
  .logos__lbl{grid-column:1/-1;margin-bottom:.15rem}
  .logos__grow b{font-size:1.15rem}
  .logos figcaption,.logos__award span{font-size:.66rem;white-space:normal}
  .logos__award b{font-size:1.3rem}

  /* Form card: now that it sits below the bullets it has to pull the eye
     down to it rather than rely on being first. Thicker gold cap, a gold
     hairline ring around the whole card, and a deeper shadow to lift it
     off the navy. The heading is the anchor, so it is the largest thing
     in the card. */
  .formcard{
    padding:1.3rem 1.1rem 1.4rem;
    border-top-width:4px;
    box-shadow:0 0 0 1px rgba(193,145,63,.45), 0 26px 55px -14px rgba(6,17,26,.85);
    scroll-margin-top:72px;
  }
  .formcard__head{margin-bottom:.95rem}
  .formcard__head h2{font-size:1.5rem;line-height:1.18;letter-spacing:-.025em;margin-bottom:.45rem}
  .formcard__head p{font-size:.82rem}
  .chip{min-height:3.15rem;padding:.55rem .6rem}
  .chip b{font-size:.8rem}
  .chip span{font-size:.63rem}

  /* A bright interior (the remodeling kitchen) washes out the gold eyebrow
     and the rating line under the light top scrim that suits the ADU dusk
     photo. Pages opt in with .hero--bright; the ADU hero is unaffected. */
  .hero--bright .hero__bg img{object-position:30% 0}
  .hero--bright .hero__bg::after{
    background:linear-gradient(180deg,
      rgba(10,22,32,.78) 0%,
      rgba(10,22,32,.66) 26%,
      rgba(10,22,32,.82) 42%,
      rgba(10,22,32,.97) 54%,
      rgba(10,22,32,1) 100%);
  }

  /* Sticky bar sits above the iOS home indicator */
  .sticky{padding-bottom:calc(.55rem + env(safe-area-inset-bottom))}
}

@media (max-width:400px){
  .hero__pts li{font-size:.85rem}
  .sticky .btn{font-size:.7rem;letter-spacing:.05em}
}

/* ---------- before / after reveal (remodeling page) ---------- */
.ba{background:var(--cream-2)}
.ba__grid{display:grid;gap:clamp(2rem,5vw,3.25rem);align-items:center}
.ba__wrap{margin-top:0}
.ba__stage{
  position:relative;overflow:hidden;border-radius:var(--r);
  border:1px solid var(--line);background:var(--navy-900);
  aspect-ratio:3/2;user-select:none;touch-action:pan-y
}
.ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ba__clip{position:absolute;inset:0;width:50%;overflow:hidden;will-change:width}
.ba__clip .ba__img{width:auto;height:100%;max-width:none;aspect-ratio:3/2}
.ba__tag{
  position:absolute;top:.75rem;font-family:var(--f-display);font-size:.62rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;padding:.3rem .55rem;border-radius:2px;
  background:rgba(10,22,32,.82);color:#fff;pointer-events:none
}
.ba__tag--b{left:.75rem}
.ba__tag--a{right:.75rem;background:rgba(193,145,63,.95);color:var(--navy-900)}
.ba__handle{
  position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--gold);
  transform:translateX(-1px);pointer-events:none;display:flex;align-items:center;justify-content:center
}
.ba__handle svg{
  flex:none;width:34px;height:34px;padding:8px;border-radius:50%;
  background:var(--gold);color:var(--navy-900);box-shadow:0 4px 16px rgba(6,17,26,.45)
}
.ba__range{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;
  -webkit-appearance:none;appearance:none;background:transparent
}
.ba__range::-webkit-slider-thumb{-webkit-appearance:none;width:44px;height:100%;cursor:ew-resize}
.ba__range::-moz-range-thumb{width:44px;height:100%;border:0;background:transparent;cursor:ew-resize}
.ba__range:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
