:root { --black:#090909; --white:#fff; --red:#d71920; }
* { box-sizing:border-box; }
html, body { margin:0; height:100%; overflow:hidden; }
body { background:var(--white); color:var(--black); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
main { height:100vh; height:100svh; display:grid; grid-template-rows:88px minmax(0,1fr) 46px; overflow:hidden; }
.site-header { padding:14px 3vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--black); }
.logo { display:block; width:132px; font-size:0; }
.logo img { display:block; width:100%; height:auto; }
.location,.header-contact,footer { font-size:10px; text-transform:uppercase; letter-spacing:.13em; font-weight:700; }
.location { justify-self:center; }
.header-contact { justify-self:end; border-bottom:1px solid; padding-bottom:4px; }
.content { min-height:0; display:grid; grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr); }
.hero { min-height:0; padding:3.5vh 3vw 2.5vh; display:grid; grid-template-rows:auto 1fr auto; border-right:1px solid var(--black); }
.eyebrow,.section-label { margin:0; font-size:9px; text-transform:uppercase; letter-spacing:.16em; font-weight:700; }
.hero h1 { align-self:center; margin:0; font-size:clamp(58px,8.2vw,126px); line-height:.69; letter-spacing:-.085em; font-weight:800; text-transform:uppercase; }
.hero h1>span { font-size:.68em; line-height:.9; letter-spacing:-.07em; }
.hero h1 em { display:inline-block; color:var(--red); font-family:Georgia,serif; font-size:1.48em; line-height:.62; font-weight:400; text-transform:none; }
.intro { width:min(520px,75%); margin:0 0 0 auto; font-family:Georgia,serif; font-size:clamp(15px,1.25vw,20px); line-height:1.35; }
.ethos { min-height:0; padding:3.5vh 3vw; background:var(--red); color:var(--white); display:flex; flex-direction:column; }
.section-label { margin-bottom:auto; }
.ethos-copy { margin:0 0 2.5vh; font-family:Georgia,serif; font-size:clamp(19px,2.05vw,31px); line-height:1.2; letter-spacing:-.015em; }
.goal { margin:0; padding-top:2.5vh; border-top:1px solid var(--white); font-size:clamp(16px,1.45vw,22px); line-height:1.25; font-weight:800; letter-spacing:-.025em; }
footer { padding:0 3vw; display:flex; align-items:center; justify-content:space-between; background:var(--black); color:var(--white); }
footer p { margin:0; }
footer a { border-bottom:1px solid var(--red); padding-bottom:3px; }

@media (max-width:760px) {
  main { grid-template-rows:72px minmax(0,1fr) 40px; }
  .site-header { padding:10px 18px; grid-template-columns:1fr auto; }
  .logo { width:110px; }
  .location { display:none; }
  .header-contact { font-size:8px; letter-spacing:.07em; }
  .content { grid-template-columns:1fr; grid-template-rows:55% 45%; }
  .hero { padding:2.2vh 18px 1.8vh; border-right:0; border-bottom:1px solid var(--black); }
  .hero h1 { font-size:clamp(42px,15.2vw,72px); line-height:.7; }
  .intro { width:82%; font-size:clamp(12px,3.2vw,16px); line-height:1.28; }
  .ethos { padding:2.1vh 18px; }
  .ethos-copy { margin-bottom:1.4vh; font-size:clamp(14px,4.1vw,20px); line-height:1.18; }
  .goal { padding-top:1.4vh; font-size:clamp(13px,3.6vw,18px); }
  footer { padding:0 18px; font-size:8px; }
}

@media (max-height:680px) {
  main { grid-template-rows:68px minmax(0,1fr) 36px; }
  .logo { width:105px; }
  .hero,.ethos { padding-top:2vh; padding-bottom:1.5vh; }
  .hero h1 { font-size:min(8vw,90px); }
  .ethos-copy { font-size:clamp(16px,1.75vw,25px); margin-bottom:1.5vh; }
  .goal { padding-top:1.5vh; font-size:clamp(14px,1.2vw,18px); }
}

@media (max-width:760px) and (max-height:680px) {
  .content { grid-template-rows:53% 47%; }
  .hero h1 { font-size:clamp(36px,12vh,58px); }
  .intro { font-size:12px; }
  .ethos-copy { font-size:clamp(12px,3.5vw,16px); }
  .goal { font-size:clamp(11px,3.1vw,14px); }
}
