*{box-sizing:border-box}
html{scroll-behavior:smooth}
:root{
  --bg:#ffffff;
  --text:#121212;
  --muted:#666;
  --line:#dedede;
  --soft:#f5f5f3;
  --green:#16823b;
  --red:#c72c2c;
  --black:#111;
}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}
.narrow{width:min(820px,calc(100% - 48px))}
.hero{
  min-height:86vh;
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--line);
}
.hero-inner{padding:90px 0}
.eyebrow{
  font-size:.78rem;
  letter-spacing:.16em;
  font-weight:800;
  margin-bottom:18px;
}
h1,h2,h3,h4,p{margin-top:0}
h1{
  font-size:clamp(3.1rem,7vw,7.2rem);
  line-height:.94;
  letter-spacing:-.055em;
  max-width:1050px;
  margin-bottom:30px;
}
h2{
  font-size:clamp(2.25rem,4.2vw,4.5rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin-bottom:34px;
}
h3{
  font-size:1.45rem;
  line-height:1.15;
  letter-spacing:-.02em;
}
p{font-size:1.04rem}
.lead{max-width:760px;font-size:1.22rem;color:#2e2e2e}
.cta{
  display:inline-block;
  margin-top:32px;
  font-weight:800;
  text-decoration:none;
  border-bottom:2px solid currentColor;
  padding-bottom:5px;
}
.section{padding:110px 0}
.alt{background:var(--soft)}
.dark-soft{background:#efefec}
.two-col{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:64px;
  align-items:start;
}
.panel{
  border:1px solid var(--line);
  padding:34px;
  background:#fafaf8;
}
.cards{display:grid;gap:22px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card,.path-card{
  border:1px solid var(--line);
  background:#fff;
  padding:32px;
}
.card h3,.path-card h3{font-size:1.8rem}
.red-title,.downside{color:var(--red)}
.downside{margin-top:24px}
.section-intro{max-width:850px;font-size:1.12rem}
.path-cards{margin-top:44px}
.path-card{display:flex;flex-direction:column;min-height:100%}
.path-label{font-size:.78rem;font-weight:800;letter-spacing:.05em;margin-bottom:22px}
.path-card.green{border-top:5px solid var(--green)}
.path-card.red{border-top:5px solid var(--red)}
.path-card.black{border-top:5px solid var(--black)}
.path-card dl{margin:20px 0 28px;border-top:1px solid var(--line)}
.path-card dl div{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
dt{font-weight:700}
dd{margin:0}
.text-link{font-weight:800;text-decoration:none;margin-top:auto}
.text-link:hover{text-decoration:underline}
.green-text{color:var(--green)}
.big-sub{font-size:2rem;margin-bottom:18px}
.requirements{
  margin:48px 0;
  border:1px solid var(--line);
  background:#fafaf8;
}
.requirements-title{font-weight:800;letter-spacing:.08em;font-size:.8rem;padding:20px 24px;border-bottom:1px solid var(--line)}
.req-row{
  display:grid;
  grid-template-columns:140px 1fr 1fr;
  gap:20px;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
}
.note{padding:18px 24px;margin:0;color:var(--muted);font-size:.9rem}
.steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.steps article{border-top:3px solid var(--black);padding-top:22px}
.steps h3{font-size:1.55rem}
.steps h4{font-size:1.25rem;margin:24px 0}
.wifi{font-size:2.2rem;margin-top:28px}
.center{text-align:center}
.journey{font-size:1.35rem;margin:30px 0}
footer{
  background:#111;
  color:#fff;
  padding:72px 0;
}
.footer-inner{
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:60px;
  align-items:end;
}
footer h2{font-size:2rem;margin-bottom:20px}
footer p{color:#d1d1d1}
.contact{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.contact span{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#999}
.contact a{font-size:1.05rem}
@media (max-width:900px){
  .hero{min-height:auto}
  .hero-inner{padding:72px 0}
  .section{padding:82px 0}
  .two-col,.cards.two,.cards.three,.steps,.footer-inner{grid-template-columns:1fr}
  .two-col{gap:30px}
  .cards.three{gap:18px}
  .path-card{min-height:auto}
}
@media (max-width:620px){
  .wrap,.narrow{width:min(100% - 28px,1180px)}
  h1{font-size:clamp(2.9rem,15vw,4.7rem)}
  h2{font-size:2.5rem}
  .section{padding:68px 0}
  .panel,.card,.path-card{padding:24px}
  .req-row{grid-template-columns:1fr;gap:6px}
  p{font-size:1rem}
  .lead{font-size:1.08rem}
}
