
:root {
  --ink: #111111;
  --cream: #f1f3f4;
  --paper: #ffffff;
  --accent: #36c5e5;
  --line: rgba(17, 17, 17, 0.16);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font:
    16px/1.6 Helvetica, Arial, sans-serif;
}
button,
input,
select,
textarea {
  font-family: Helvetica, Arial, sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-family: Manrope, sans-serif;
  line-height: 1.05;
  letter-spacing: -0.04em;
}
.nav {
  height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5vw;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  background: rgba(251, 250, 246, 0.92);
  backdrop-filter: blur(14px);
  z-index: 5;
}
.brand { display: flex; align-items: center; }
.brand img { display: block; width: 255px; max-width: 28vw; height: auto; }
.nav nav {
  display: flex;
  gap: 32px;
  font-size: 14px;
}
.nav nav a:hover {
  opacity: 0.55;
}
.nav .menu-nav { position: relative; margin-left: auto; margin-right: 32px; }
.nav-dropdown { position: relative; }
.nav-dropdown summary {
  min-width: 105px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid var(--line);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  list-style: none;
  background: rgba(255,255,255,.78);
}
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary span { transition: transform .2s ease; }
.nav-dropdown[open] summary span { transform: rotate(180deg); }
.nav-dropdown-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 240px;
  padding: 10px;
  display: grid;
  gap: 0;
  background: white;
  border: 1px solid var(--line);
  box-shadow: 0 18px 45px rgba(17,17,17,.14);
}
.nav-dropdown-panel a { padding: 11px 12px; border-bottom: 1px solid rgba(17,17,17,.09); }
.nav-dropdown-panel a:last-child { border-bottom: 0; }
.nav-dropdown-panel a:hover { background: var(--cream); opacity: 1 !important; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: var(--ink);
  font-weight: 600;
  padding: 15px 23px;
  border-radius: 2px;
  transition: 0.2s;
}
.button:hover {
  transform: translateY(-2px);
  filter: brightness(0.96);
}
.button.small {
  padding: 11px 17px;
  font-size: 14px;
}
.button.dark {
  background: var(--ink);
  color: white;
}
.button.light {
  background: white;
}
.hero {
  min-height: 680px;
  padding: 8vw 5vw 6vw;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.55fr);
  gap: 9vw;
  align-items: end;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.78) 58%, rgba(255, 255, 255, 0.42) 100%),
    var(--hero-img) center / cover no-repeat;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.17em;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 25px;
}
.hero h1 {
  font-size: clamp(52px, 7vw, 108px);
  max-width: 980px;
  margin-bottom: 30px;
}
.lead {
  font-size: clamp(18px, 2vw, 24px);
  max-width: 760px;
  color: #40534d;
}
.actions {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 38px;
}
.hero-enquiry-button {
  min-height: 58px;
  padding: 18px 28px;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 10px 25px rgba(17, 17, 17, .18);
}
.hero-enquiry-button:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 4px;
}
.text-link {
  font-weight: 600;
}
.text-link span {
  margin-left: 10px;
}
.hero-panel {
  background: var(--ink);
  color: white;
  padding: 35px;
}
.metric {
  display: flex;
  align-items: flex-end;
  gap: 18px;
}
.metric strong {
  font: 600 60px Manrope;
  letter-spacing: -0.06em;
  line-height: 0.9;
  color: var(--accent);
}
.metric span {
  max-width: 120px;
  line-height: 1.25;
}
.panel-line {
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
  margin: 28px 0;
}
.hero-panel > p {
  color: #c4d0cc;
}
.lender-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lender-tags span {
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 20px;
  padding: 6px 10px;
  font-size: 12px;
}
.intro,
.about {
  padding: 100px 5vw;
  display: grid;
  grid-template-columns: 1fr 2.1fr;
  gap: 8vw;
  border-top: 1px solid var(--line);
}
.about { grid-template-columns: 0.85fr 0.65fr 1fr; gap: 5vw; align-items: center; }
.profile-photo { width: min(100%, 397px); aspect-ratio: 2 / 3; margin: 0 auto; position: relative; }
.profile-photo::after { content: ""; position: absolute; right: -12px; bottom: -12px; width: 42%; height: 42%; background: var(--accent); z-index: 0; }
.profile-photo img { display: block; width: 100%; height: 100%; aspect-ratio: 2 / 3; object-fit: cover; object-position: center top; position: relative; z-index: 1; }
.career-logos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 30px;
}
.career-logo {
  height: 92px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
}
.career-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.intro h2,
.about h2,
.process h2,
.cta h2 {
  font-size: clamp(38px, 5vw, 70px);
  margin-bottom: 28px;
}
.intro div p {
  max-width: 700px;
  font-size: 20px;
  color: #53635e;
}
.feature {
  padding: 90px 5vw;
  display: grid;
  grid-template-columns: 80px 1.5fr minmax(260px, 0.55fr);
  gap: 5vw;
  border-top: 1px solid var(--line);
}
.development {
  background: var(--ink);
  color: white;
}
.owner {
  background: var(--cream);
}
.feature-number {
  font: 500 14px Helvetica, Arial, sans-serif;
  border: 1px solid currentColor;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
}
.feature h2 {
  font-size: clamp(42px, 5.5vw, 76px);
  max-width: 850px;
}
.feature-lead {
  font-size: 20px;
  max-width: 780px;
  color: #bfcac6;
}
.owner .feature-lead {
  color: #52615c;
}
.service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 60px 0 45px;
  border-top: 1px solid currentColor;
}
.service-grid article {
  padding: 28px 25px 28px 0;
  border-bottom: 1px solid currentColor;
  opacity: 0.88;
}
.service-grid article:nth-child(odd) {
  padding-right: 35px;
}
.service-grid article:nth-child(even) {
  padding-left: 35px;
  border-left: 1px solid currentColor;
}
.service-grid h3 {
  font-size: 21px;
  margin-bottom: 12px;
}
.service-grid p {
  opacity: 0.68;
  margin: 0;
}
.feature-aside {
  padding-top: 62px;
}
.feature-aside > p {
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 11px;
  opacity: 0.65;
  margin: 0 0 14px;
}
.feature-aside ul {
  padding: 0;
  margin: 0 0 50px;
  list-style: none;
}
.feature-aside li {
  padding: 10px 0;
  border-bottom: 1px solid currentColor;
}
.examples { padding: 110px 5vw; background: white; border-top: 1px solid var(--line); }
.examples-heading { display: grid; grid-template-columns: 0.7fr 1.4fr 1fr; gap: 5vw; align-items: end; margin-bottom: 55px; }
.examples-heading h2 { font-size: clamp(38px, 5vw, 70px); margin: 0; }
.examples-heading > p:last-child { color: #596460; margin: 0; }
.case-study { border: 1px solid var(--line); padding: 34px; }
.featured-case { display: grid; grid-template-columns: 0.55fr 0.7fr 1.5fr; gap: 5vw; background: var(--ink); color: white; border: 0; padding: 52px; }
.featured-case + .featured-case { margin-top: 22px; }
.light-case { background: var(--cream); color: var(--ink); border: 1px solid var(--line); }
.light-case .case-copy > p, .light-case .case-stat span { color: #596460; }
.light-case .case-copy dl div { border-color: var(--line); }
.light-case .case-copy dt { color: #68736f; }
.case-label { display: flex; flex-direction: column; gap: 8px; text-transform: uppercase; letter-spacing: 0.13em; font-size: 10px; }
.case-label span:last-child { color: var(--accent); }
.case-stat { display: flex; flex-direction: column; }
.case-stat strong { font: 600 clamp(54px, 6vw, 90px)/0.9 Manrope; letter-spacing: -0.07em; color: var(--accent); }
.case-stat span { margin-top: 16px; color: #bdc4c2; }
.case-copy h3 { font-size: 27px; margin-bottom: 18px; }
.case-copy > p { color: #c7cfcc; font-size: 18px; }
.case-copy dl { margin: 32px 0 0; }
.case-copy dl div { display: grid; grid-template-columns: 0.6fr 1.4fr; gap: 18px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,0.2); }
.case-copy dt { color: #9aa5a1; }
.case-copy dd { margin: 0; }
.aside-note {
  background: white;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.aside-note span {
  color: #52615c;
}
.process {
  padding: 110px 5vw;
}
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 65px;
  border-top: 1px solid var(--line);
}
.steps > div {
  padding: 28px 25px 0;
  border-right: 1px solid var(--line);
}
.steps > div:first-child {
  padding-left: 0;
}
.steps > div:last-child {
  border: 0;
}
.steps span {
  color: #73817c;
  font-size: 12px;
}
.steps h3 {
  font-size: 24px;
  margin: 24px 0 12px;
}
.steps p {
  color: #64716d;
}
.about {
  background: #e9f8fc;
}
.about h3 {
  font-size: 28px;
}
.about p {
  font-size: 18px;
  max-width: 700px;
}
.locations {
  padding: 110px 5vw;
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.6fr);
  gap: 8vw;
  border-top: 1px solid var(--line);
}
.locations h2 {
  max-width: 560px;
  margin: 0;
  font-size: clamp(38px, 5vw, 70px);
}
.location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.location-card {
  min-height: 270px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  background: var(--cream);
  transition: transform 0.2s, border-color 0.2s;
}
.location-card:hover {
  transform: translateY(-3px);
  border-color: var(--ink);
}
.location-state {
  margin-bottom: 36px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.location-card address {
  margin-bottom: 36px;
  font: normal 20px/1.5 Helvetica, Arial, sans-serif;
}
.location-link {
  margin-top: auto;
  font-size: 14px;
  font-weight: 600;
}
.location-link span { margin-left: 8px; }
.cta {
  text-align: center;
  padding: 120px 5vw;
  background: var(--accent);
}
.cta h2 {
  max-width: 850px;
  margin: 0 auto 25px;
}
.cta > p:not(.eyebrow) {
  max-width: 620px;
  margin: 0 auto 35px;
  font-size: 19px;
}
footer {
  padding: 50px 5vw;
  background: var(--accent);
  color: var(--ink);
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(230px, 1fr) minmax(180px, 0.8fr) minmax(130px, 0.6fr);
  gap: 35px;
  align-items: start;
  font-size: 14px;
}
footer p {
  margin: 0;
  color: var(--ink);
}
footer > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-items: flex-start;
}
footer > .footer-links {
  align-items: flex-end;
}
.footer-brand { padding: 0; width: max-content; }
.footer-brand img { width: 220px; max-width: 35vw; }
.shed-page { background: var(--paper); }
.shed-hero {
  min-height: 720px;
  padding: 9vw 5vw 6vw;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr);
  gap: 8vw;
  align-items: end;
  background: linear-gradient(90deg, rgba(17,17,17,.94) 0%, rgba(17,17,17,.86) 48%, rgba(17,17,17,.5) 100%), var(--hero-img) center / cover no-repeat;
  color: white;
}
.shed-hero h1 { font-size: clamp(68px, 10vw, 150px); margin: 0 0 18px; color: var(--accent); }
.shed-subhead { max-width: 780px; font: 600 clamp(26px, 3vw, 42px)/1.1 Manrope, sans-serif; letter-spacing: -.04em; margin-bottom: 24px; }
.shed-hero .lead { color: #d5ddda; }
.shed-hero .text-link { color: white; }
.shed-card { background: var(--accent); color: var(--ink); padding: 38px; }
.shed-card h2 { font-size: 34px; margin-bottom: 28px; }
.shed-card ul { list-style: none; padding: 0; margin: 0; }
.shed-card li { padding: 13px 0; border-top: 1px solid rgba(17,17,17,.3); }
.shed-intro { padding: 110px 5vw 70px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 8vw; align-items: end; }
.shed-intro h2, .shed-process h2, .shed-contact h2 { font-size: clamp(40px, 5.5vw, 76px); margin: 0; }
.shed-intro > p { font-size: 20px; color: #53635e; margin: 0; }
.shed-options { display: grid; grid-template-columns: repeat(4,1fr); padding: 0 5vw 110px; }
.shed-options article { border-top: 1px solid var(--line); border-right: 1px solid var(--line); padding: 30px 28px 25px; }
.shed-options article:first-child { padding-left: 0; }
.shed-options article:last-child { border-right: 0; }
.shed-options span { color: #73817c; font-size: 12px; }
.shed-options h3 { font-size: 27px; margin: 30px 0 14px; }
.shed-options p { color: #64716d; }
.shed-process { padding: 110px 5vw; background: var(--cream); display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.shed-process ol { list-style: none; padding: 0; margin: 0; }
.shed-process li { display: grid; grid-template-columns: .55fr 1.45fr; gap: 30px; padding: 21px 0; border-top: 1px solid var(--line); }
.shed-process li strong { font: 600 19px Manrope, sans-serif; }
.shed-process li span { color: #596763; }
.shed-contact { padding: 110px 5vw; background: var(--accent); display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: start; }
.shed-contact h2 { margin-bottom: 28px; }
.shed-contact-copy > p:not(.eyebrow) { max-width: 560px; font-size: 19px; }
.contact-phone { display: inline-block; margin-top: 22px; font-weight: 600; border-bottom: 1px solid var(--ink); }
.lead-form { background: white; padding: 38px; text-align: left; box-shadow: 14px 14px 0 rgba(17,17,17,.12); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.lead-form label { display: block; margin-bottom: 18px; font-size: 14px; font-weight: 600; }
.lead-form input:not([type="checkbox"]), .lead-form select, .lead-form textarea { width: 100%; min-height: 50px; margin-top: 7px; padding: 12px 13px; border: 1px solid rgba(17,17,17,.28); border-radius: 0; background: white; color: var(--ink); font: 16px/1.4 Helvetica, Arial, sans-serif; }
.lead-form textarea { resize: vertical; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { outline: 3px solid rgba(54,197,229,.4); border-color: var(--ink); }
.form-consent { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; }
.form-consent input { margin-top: 4px; }
.lead-form button { border: 0; cursor: pointer; font-size: 16px; }
.form-note { margin: 14px 0 0; color: #596460; font-size: 13px; }
.homes-page { background: var(--paper); }
.homes-hero {
  min-height: 760px;
  padding: 9vw 5vw 6vw;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 7vw;
  align-items: end;
  color: white;
  background: linear-gradient(90deg, rgba(17,17,17,.91) 0%, rgba(17,17,17,.76) 43%, rgba(17,17,17,.2) 100%), var(--homes-img) center / cover no-repeat;
}
.homes-hero-copy { max-width: 980px; }
.homes-hero h1 { max-width: 980px; margin-bottom: 28px; font-size: clamp(50px, 6.7vw, 104px); }
.homes-hero .lead { max-width: 760px; color: #e0e6e4; }
.homes-phone { font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.65); }
.homes-phone span { margin-left: 8px; }
.homes-hero-card { padding: 36px; background: rgba(17,17,17,.94); border-top: 5px solid var(--accent); }
.homes-hero-card h2 { margin-bottom: 18px; font-size: 36px; }
.homes-hero-card > p:not(.eyebrow) { color: #c9d2cf; }
.homes-hero-card ul { margin: 28px 0 0; padding: 0; list-style: none; }
.homes-hero-card li { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.22); }
.homes-intro { padding: 110px 5vw 70px; display: grid; grid-template-columns: 1.35fr 1fr; gap: 8vw; align-items: end; }
.homes-intro h2, .homes-process h2, .homes-contact h2 { margin: 0; font-size: clamp(40px, 5.4vw, 74px); }
.homes-intro > p { margin: 0; color: #53635e; font-size: 20px; }
.homes-solutions { padding: 0 5vw 110px; display: grid; grid-template-columns: repeat(4, 1fr); }
.homes-solutions article { padding: 30px 28px 25px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
.homes-solutions article:first-child { padding-left: 0; }
.homes-solutions article:last-child { border-right: 0; }
.homes-solutions span { color: #73817c; font-size: 12px; }
.homes-solutions h3 { margin: 30px 0 14px; font-size: 27px; }
.homes-solutions p { color: #64716d; }
.homes-portfolio { padding: 110px 5vw; display: grid; grid-template-columns: 1.15fr .85fr; gap: 9vw; color: white; background: var(--ink); }
.homes-portfolio h2 { max-width: 780px; margin-bottom: 28px; font-size: clamp(42px, 5.5vw, 76px); }
.homes-portfolio-copy > p:not(.eyebrow) { max-width: 720px; color: #c2cdca; font-size: 19px; }
.homes-principles > div { display: grid; grid-template-columns: .55fr 1.45fr; gap: 24px; padding: 23px 0; border-top: 1px solid rgba(255,255,255,.24); }
.homes-principles strong { font: 600 19px Manrope, sans-serif; color: var(--accent); }
.homes-principles span { color: #c2cdca; }
.homes-process { padding: 110px 5vw; display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; background: var(--cream); }
.homes-process ol { margin: 0; padding: 0; list-style: none; }
.homes-process li { display: grid; grid-template-columns: .55fr 1.45fr; gap: 30px; padding: 21px 0; border-top: 1px solid var(--line); }
.homes-process li strong { font: 600 19px Manrope, sans-serif; }
.homes-process li span { color: #596763; }
.homes-contact { padding: 120px 5vw; text-align: center; background: var(--accent); }
.homes-contact h2 { max-width: 940px; margin: 0 auto 26px; }
.homes-contact > p:not(.eyebrow) { max-width: 680px; margin: 0 auto 34px; font-size: 19px; }
.homes-contact .actions { justify-content: center; }
.homes-contact-phone { font-weight: 600; border-bottom: 1px solid var(--ink); }
.calc-page { background: var(--cream); }
.calc-heading {
  padding: 72px 5vw 48px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 8vw;
  align-items: end;
  background: var(--ink);
  color: white;
}
.calc-heading h1 { max-width: 860px; margin: 0; font-size: clamp(48px, 7vw, 96px); }
.calc-heading > p { max-width: 620px; margin: 0 0 8px; color: #c7cfcc; font-size: 19px; }
.calculator-shell { padding: 0 5vw 96px; background: var(--ink); }
.calc-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.25); }
.calc-tabs button {
  min-height: 82px;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  border: 0;
  border-right: 1px solid rgba(255,255,255,.22);
  background: transparent;
  color: #d0d7d5;
  text-align: left;
  font: 600 15px/1.35 Helvetica, Arial, sans-serif;
  cursor: pointer;
}
.calc-tabs button:last-child { border-right: 0; }
.calc-tabs button span { color: #7d8985; font-size: 11px; }
.calc-tabs button[aria-selected="true"] { background: var(--accent); color: var(--ink); }
.calc-tabs button[aria-selected="true"] span { color: var(--ink); }
.calc-tabs button:focus-visible { outline: 3px solid white; outline-offset: -3px; }
.calc-panel { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(320px, .7fr); background: white; }
.calc-panel[hidden] { display: none; }
.calc-form { padding: 52px; }
.calc-panel-heading { display: grid; grid-template-columns: 1fr 1.25fr; gap: 24px 55px; margin-bottom: 42px; }
.calc-panel-heading .eyebrow { grid-column: 1 / -1; margin: 0; }
.calc-panel-heading h2 { margin: 0; font-size: clamp(36px, 4vw, 58px); }
.calc-panel-heading > p:last-child { margin: 0; align-self: end; color: #5f6c68; font-size: 17px; }
.input-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.input-grid label { display: block; color: #26302d; font-size: 14px; font-weight: 600; }
.input-grid label > span:first-child { float: right; color: #6c7874; font-size: 12px; font-weight: 400; }
.input-wrap { min-height: 54px; margin-top: 8px; padding: 0 15px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(17,17,17,.28); background: white; font-size: 16px; font-weight: 500; }
.input-wrap:focus-within { border-color: var(--ink); outline: 3px solid rgba(54,197,229,.28); }
.input-wrap input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: 500 17px Helvetica, Arial, sans-serif; }
.input-wrap.suffix > span:last-child { color: #697571; white-space: nowrap; font-size: 13px; }
.input-grid select { width: 100%; min-height: 54px; margin-top: 8px; padding: 0 14px; border: 1px solid rgba(17,17,17,.28); border-radius: 0; background: white; color: var(--ink); font: 500 16px Helvetica, Arial, sans-serif; }
.input-grid select:focus { outline: 3px solid rgba(54,197,229,.28); border-color: var(--ink); }
.calc-result { padding: 52px 38px; display: flex; flex-direction: column; background: var(--accent); color: var(--ink); }
.result-label { margin-bottom: 14px; text-transform: uppercase; letter-spacing: .14em; font-size: 11px; font-weight: 600; }
.calc-result > strong { display: block; margin-bottom: 28px; font: 600 clamp(50px, 5vw, 76px)/1 Manrope, sans-serif; letter-spacing: -.06em; overflow-wrap: anywhere; }
.constraint-tag { align-self: flex-start; margin: -12px 0 28px; padding: 6px 10px; border: 1px solid rgba(17,17,17,.4); border-radius: 20px; font-size: 12px; font-weight: 600; }
.result-breakdown { margin-top: auto; border-top: 1px solid rgba(17,17,17,.35); }
.result-breakdown > div { padding: 14px 0; display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(17,17,17,.25); }
.result-breakdown span { font-size: 13px; }
.result-breakdown b { text-align: right; font-size: 14px; }
.result-warning { margin: 25px 0 0; padding: 17px; background: rgba(255,255,255,.65); font-size: 13px; line-height: 1.5; }
.result-warning.is-alert { background: var(--ink); color: white; }
.calc-disclaimer { padding: 100px 5vw; display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; background: white; }
.calc-disclaimer h2 { max-width: 720px; margin: 0; font-size: clamp(38px, 5vw, 68px); }
.calc-disclaimer > div:last-child > p { margin-bottom: 30px; color: #53615d; font-size: 18px; }
@media (max-width: 900px) {
  .nav nav:not(.menu-nav) {
    display: none;
  }
  .nav .menu-nav { display: block; }
  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .hero-panel {
    max-width: 500px;
  }
  .intro,
  .about {
    grid-template-columns: 1fr;
  }
  .profile-photo { max-width: 380px; }
  .career-logos { max-width: 620px; }
  .locations { grid-template-columns: 1fr; }
  .examples-heading, .featured-case { grid-template-columns: 1fr; }
  .featured-case { gap: 32px; }
  .feature {
    grid-template-columns: 55px 1fr;
  }
  .feature-aside {
    grid-column: 2;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
  }
  .steps > div {
    border-bottom: 1px solid var(--line);
    padding: 25px;
  }
  .steps > div:first-child {
    padding-left: 25px;
  }
  footer {
    grid-template-columns: 1fr 1fr;
  }
  footer > .footer-links {
    align-items: flex-start;
  }
  .shed-hero, .shed-intro, .shed-process, .shed-contact { grid-template-columns: 1fr; }
  .shed-card { max-width: 520px; }
  .shed-options { grid-template-columns: 1fr 1fr; }
  .shed-options article:nth-child(2) { border-right: 0; }
  .homes-hero, .homes-intro, .homes-portfolio, .homes-process, .calc-heading, .calc-disclaimer { grid-template-columns: 1fr; }
  .homes-hero-card { max-width: 540px; }
  .homes-solutions { grid-template-columns: 1fr 1fr; }
  .homes-solutions article:nth-child(2) { border-right: 0; }
  .calc-nav nav { display: none; }
  .calc-tabs { grid-template-columns: 1fr; }
  .calc-tabs button { min-height: 62px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .calc-panel { grid-template-columns: 1fr; }
  .calc-panel-heading { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .nav {
    height: 72px;
  }
  .nav .button {
    display: none;
  }
  .nav .menu-nav { margin: 0; }
  .nav-dropdown-panel { right: 0; width: min(260px, 88vw); }
  .brand img { width: 190px; max-width: 55vw; }
  .hero {
    padding-top: 90px;
    background:
      linear-gradient(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.82)),
      var(--hero-img) 58% center / cover no-repeat;
  }
  .hero h1 {
    font-size: 48px;
  }
  .actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .hero-enquiry-button { width: 100%; text-align: center; }
  .feature {
    padding: 70px 5vw;
    grid-template-columns: 1fr;
  }
  .feature-number {
    margin-bottom: 10px;
  }
  .examples { padding: 75px 5vw; }
  .featured-case { padding: 32px 24px; }
  .feature-main,
  .feature-aside {
    grid-column: 1;
  }
  .service-grid {
    grid-template-columns: 1fr;
  }
  .service-grid article,
  .service-grid article:nth-child(even),
  .service-grid article:nth-child(odd) {
    padding: 24px 0;
    border-left: 0;
  }
  .steps {
    grid-template-columns: 1fr;
  }
  .steps > div {
    border-right: 0;
  }
  .intro,
  .about,
  .locations,
  .process,
  .cta {
    padding: 75px 5vw;
  }
  .location-grid { grid-template-columns: 1fr; }
  .location-card { min-height: 230px; }
  .career-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  footer {
    grid-template-columns: 1fr;
  }
  .shed-hero { min-height: auto; padding-top: 95px; }
  .shed-hero h1 { font-size: 64px; }
  .shed-card { padding: 28px; }
  .shed-intro, .shed-process, .shed-contact { padding: 75px 5vw; }
  .shed-options { grid-template-columns: 1fr; padding-bottom: 75px; }
  .shed-options article, .shed-options article:first-child { padding: 26px 0; border-right: 0; }
  .shed-process li { grid-template-columns: 1fr; gap: 8px; }
  .lead-form { padding: 26px 20px; box-shadow: 8px 8px 0 rgba(17,17,17,.12); }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .homes-hero { min-height: auto; padding-top: 100px; background-position: 62% center; }
  .homes-hero h1 { font-size: 48px; }
  .homes-hero-card { padding: 27px; }
  .homes-intro, .homes-portfolio, .homes-process, .homes-contact { padding: 75px 5vw; }
  .homes-solutions { grid-template-columns: 1fr; padding-bottom: 75px; }
  .homes-solutions article, .homes-solutions article:first-child { padding: 26px 0; border-right: 0; }
  .homes-principles > div, .homes-process li { grid-template-columns: 1fr; gap: 8px; }
  .calc-heading { padding: 62px 5vw 38px; }
  .calc-heading h1 { font-size: 46px; }
  .calculator-shell { padding: 0 0 70px; }
  .calc-tabs { margin: 0 5vw; }
  .calc-form, .calc-result { padding: 34px 5vw; }
  .input-grid { grid-template-columns: 1fr; }
  .calc-panel-heading { gap: 16px; margin-bottom: 30px; }
  .calc-disclaimer { padding: 75px 5vw; }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .button {
    transition: none;
  }
}
.enquiry-page{color:#111;background:#f2f5f6;min-height:100vh;font:16px/1.5 Helvetica,Arial,sans-serif}.enquiry-page *{box-sizing:border-box}.enquiry-page a{color:inherit}.enquiry-header{background:#fff;border-bottom:1px solid #d8e1e4;justify-content:space-between;align-items:center;gap:20px;height:86px;padding:0 5vw;display:flex}.enquiry-header img{width:min(255px,42vw);height:auto;display:block}.enquiry-header>a:last-child{font-size:14px;font-weight:700;text-decoration:none}.enquiry-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:8vw;max-width:1240px;margin:auto;padding:70px 24px 90px;display:grid}.enquiry-intro{position:sticky;top:36px}.enquiry-page .eyebrow{text-transform:uppercase;letter-spacing:.17em;color:#277b90;margin:0 0 22px;font-size:12px;font-weight:700}.enquiry-intro h1{letter-spacing:-.045em;margin:0 0 28px;font:700 clamp(42px,5vw,70px)/1.04 Manrope,Helvetica,sans-serif}.enquiry-intro>p:not(.eyebrow){color:#39494e;max-width:480px;font-size:20px;line-height:1.45}.enquiry-aside{color:#4b5d61;border-top:3px solid #36c5e5;gap:12px;max-width:430px;margin-top:70px;padding-top:22px;display:grid}.enquiry-aside strong{color:#111}.enquiry-card{background:#fff;border:1px solid #dbe4e7;gap:22px;padding:38px;display:grid;box-shadow:0 18px 50px #1e3b4612}.form-heading{border-bottom:1px solid #dae4e7;align-items:baseline;gap:18px;padding-bottom:12px;display:flex}.form-heading.second{margin-top:12px}.form-heading span{letter-spacing:.1em;color:#477c89;white-space:nowrap;font-size:12px;font-weight:700}.form-heading h2,.success h2{letter-spacing:-.03em;margin:0;font:700 26px/1.2 Manrope,Helvetica,sans-serif}.type-choices{border:0;min-width:0;margin:0;padding:0}.type-choices legend{padding:0 0 12px;font-size:14px;font-weight:700}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.choice-grid label{cursor:pointer;border:1px solid #cbd8dc;align-items:center;gap:9px;padding:11px 12px;font-size:14px;line-height:1.3;display:flex}.choice-grid label.selected{background:#e8faff;border-color:#1687a2;box-shadow:inset 0 0 0 1px #1687a2}.choice-grid input{accent-color:#1687a2;margin:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.enquiry-card label:not(.consent):not(.choice-grid label){gap:7px;font-size:14px;font-weight:700;display:grid}.enquiry-card em{color:#a34732;font-style:normal}.enquiry-card input:not([type=radio]):not([type=checkbox]),.enquiry-card select,.enquiry-card textarea{color:#111;background:#fff;border:1px solid #b9c9ce;border-radius:0;width:100%;min-height:46px;padding:11px 12px;font:16px/1.4 Helvetica,Arial,sans-serif}.enquiry-card textarea{resize:vertical;min-height:100px}.enquiry-card :is(input,select,textarea,button):focus-visible{outline-offset:2px;outline:3px solid #36c5e5}.consent{color:#3c4e52;cursor:pointer;align-items:flex-start;gap:11px;font-size:14px;line-height:1.45;display:flex}.consent input{accent-color:#1687a2;flex:none;width:18px;height:18px;margin:2px 0 0}.bot-field{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.enquiry-card button,.enquiry-link{cursor:pointer;text-align:center;background:#111;border:0;padding:15px 24px;font:700 16px Helvetica,Arial,sans-serif;text-decoration:none;color:#fff!important}.enquiry-card button:disabled{opacity:.55;cursor:wait}.form-small{color:#57686c;margin:-10px 0 0;font-size:13px}.form-error{color:#842c27;background:#fff1ee;border-left:3px solid #b83e37;margin:0;padding:10px 12px}.success{align-content:start}.success p{margin:0}.enquiry-footer{color:#526368;border-top:1px solid #d8e1e4;justify-content:space-between;gap:20px;padding:30px 5vw;font-size:13px;display:flex}@media (max-width:800px){.enquiry-layout{grid-template-columns:1fr;gap:30px;padding:45px 18px 65px}.enquiry-intro{position:static}.enquiry-aside{margin-top:25px}.enquiry-card{padding:24px}}@media (max-width:540px){.enquiry-header{height:72px;padding:0 18px}.enquiry-header>a:last-child{font-size:12px}.form-grid,.choice-grid{grid-template-columns:1fr}.enquiry-footer{flex-direction:column}}

:root{--hero-img:url(../images/cre-asset-01.webp);--homes-img:url(../images/cre-asset-02.webp);color-scheme:light}
.nav{top:env(safe-area-inset-top,0px)}
[id]{scroll-margin-top:96px}
.view[hidden]{display:none!important}
.success{align-content:start;gap:16px}
.success textarea{width:100%;min-height:230px;padding:12px;border:1px solid #b9c9ce;border-radius:0;font:14px/1.5 Helvetica,Arial,sans-serif;color:#111;background:#fff}
.success .row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.enquiry-card button.secondary{background:#fff;color:#111!important;border:1px solid #111}
.success a{text-decoration:underline}
.jotform-host{display:block;padding:0;overflow:hidden;background:#fff}
.jotform-host iframe{display:block;width:100%;min-width:100%;height:1540px;border:0;background:#fff}
@media (max-width:800px){.jotform-host iframe{height:1700px}}


/* Multi-page SEO architecture */
.skip-link{position:absolute;left:-9999px;top:auto;z-index:100}.skip-link:focus{left:18px;top:18px;background:#111;color:#fff;padding:12px 16px}
.breadcrumb{max-width:1240px;margin:0 auto;padding:22px 5vw 0;color:#5b6865;font-size:13px}.breadcrumb a{text-decoration:underline}
.seo-hero{padding:86px 5vw 78px;background:var(--cream);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:8vw;align-items:end}.seo-hero h1{max-width:850px;font-size:clamp(46px,6vw,84px);margin-bottom:28px}.seo-hero .lead{max-width:720px;font-size:20px}.seo-hero-card{padding:32px;border-top:4px solid var(--accent);background:#fff}.seo-hero-card strong{display:block;margin-bottom:12px;font:600 23px/1.2 Manrope,sans-serif}.seo-hero-card p{margin:0;color:#53615e}
.service-links{padding:0 5vw 105px;background:var(--cream);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service-link{display:flex;min-height:260px;padding:30px;flex-direction:column;border:1px solid var(--line);background:#fff}.service-link span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#39798a}.service-link h3{margin:35px 0 15px;font-size:25px}.service-link p{color:#596460}.service-link b{margin-top:auto;font-size:14px}
.content-section{padding:95px 5vw}.content-section.alt{background:var(--cream)}.content-section>header{max-width:760px;margin-bottom:48px}.content-section h2{font-size:clamp(36px,4vw,58px)}.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.content-card{padding:30px;border:1px solid var(--line);background:#fff}.content-card h3{font-size:24px}.content-card p:last-child{margin-bottom:0;color:#596460}.content-list{max-width:850px}.content-list li{margin:0 0 14px;padding-left:8px}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.faq-grid details{padding:23px;border:1px solid var(--line);background:#fff}.faq-grid summary{cursor:pointer;font-weight:700}.faq-grid p{margin:15px 0 0;color:#53615e}.trust-strip{padding:30px 5vw;background:#111;color:#fff;display:flex;justify-content:center;gap:36px;flex-wrap:wrap;font-size:13px}.trust-strip span{padding-right:36px;border-right:1px solid #ffffff55}.trust-strip span:last-child{border:0;padding-right:0}.privacy-copy{max-width:900px;margin:0 auto;padding:80px 24px 110px}.privacy-copy h2{margin-top:48px;font-size:32px}.privacy-copy a{text-decoration:underline}.privacy-copy li{margin-bottom:10px}
footer .footer-links{display:flex;flex-direction:column;gap:7px}.footer-links a{text-decoration:underline;text-underline-offset:3px}
.jotform-host iframe{min-height:1540px}
@media(max-width:900px){.seo-hero{grid-template-columns:1fr}.service-links,.content-grid{grid-template-columns:1fr 1fr}.faq-grid{grid-template-columns:1fr}}
@media(max-width:620px){.seo-hero{padding:62px 5vw}.seo-hero h1{font-size:46px}.service-links,.content-grid{grid-template-columns:1fr}.trust-strip{justify-content:flex-start}.trust-strip span{width:100%;padding:0;border:0}}
