/* v3 Editorial asymmetric | dials 8/5/4 | facility / PM cleaning */
@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,700;1,6..72,400&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap");

:root{
  --font:"Source Sans 3",system-ui,sans-serif;
  --display:"Newsreader",Georgia,serif;
  --radius:2px;
  --radius-sharp:0;
  --max:1080px;
}

.site-header{
  border-bottom:1px solid var(--color-line);
  background:var(--color-bg);
  position:sticky;
  top:0;
  z-index:40;
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem 0;
  min-height:60px;
}
.brand{
  display:flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--display);
  font-weight:400;
  letter-spacing:0;
  font-size:1.15rem;
}
.brand img{width:28px;height:28px;border-radius:var(--radius)}
.brand b{font-weight:700;color:var(--color-primary)}
.nav-links{
  display:none;
  gap:1.1rem;
  font-size:.88rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.nav-links a.is-active{border-bottom:2px solid var(--color-primary)}
.nav-toggle{
  width:40px;
  height:40px;
  border:1px solid var(--color-line);
  border-radius:var(--radius-sharp);
  display:grid;
  place-items:center;
  background:var(--color-surface);
}
.nav-toggle span{display:block;width:14px;height:2px;background:var(--color-ink);position:relative}
.nav-toggle span::before,.nav-toggle span::after{
  content:"";
  position:absolute;
  left:0;
  width:14px;
  height:2px;
  background:var(--color-ink);
}
.nav-toggle span::before{top:-5px}
.nav-toggle span::after{top:5px}
.nav-drawer{display:none;padding:.25rem 0 1rem}
.nav-drawer.is-open{display:grid}
.nav-drawer a{padding:.75rem 0;border-bottom:1px solid var(--color-line);font-weight:700}
@media(min-width:860px){
  .nav-links{display:flex}
  .nav-toggle{display:none}
  .nav-drawer{display:none!important}
}

.btn{
  border-radius:var(--radius);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:.85rem 1.1rem;
}

.hero{padding:3.5rem 0 0;border-bottom:1px solid var(--color-line)}
.hero-grid{display:grid;gap:0}
@media(min-width:920px){.hero-grid{grid-template-columns:1.25fr .75fr}}
.hero-copy{padding:0 0 2.5rem}
@media(min-width:920px){
  .hero-copy{padding:1rem 2rem 3rem 0;border-right:1px solid var(--color-line)}
}
.hero-kicker{
  display:inline-block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  border-left:3px solid var(--color-primary);
  padding-left:.65rem;
  margin-bottom:1.25rem;
  color:var(--color-muted);
}
.hero h1{
  font-family:var(--display);
  font-size:clamp(2.6rem,6vw,4.4rem);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:700;
  max-width:11ch;
  margin-bottom:1.25rem;
}
.hero .lead{font-size:1.05rem;color:var(--color-muted);max-width:34ch;margin-bottom:1.5rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.hero-visual{
  min-height:320px;
  background:var(--color-accent) center/cover no-repeat;
  background-image:url("../images/hero-v3.jpg");
  position:relative;
}
.hero-visual::after{
  content:attr(data-caption);
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:.85rem 1rem;
  background:color-mix(in srgb,var(--color-ink) 78%,transparent);
  color:var(--color-bg);
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
@media(min-width:920px){.hero-visual{min-height:100%}}

.section{padding:3.75rem 0;border-bottom:1px solid var(--color-line)}
.section h2{
  font-family:var(--display);
  font-size:clamp(1.8rem,3.5vw,2.6rem);
  letter-spacing:-.03em;
  font-weight:700;
  max-width:16ch;
  margin-bottom:1rem;
}
.section .sub{color:var(--color-muted);max-width:42ch;margin-bottom:1.75rem}

.ed-grid{display:grid;gap:0;border:1px solid var(--color-line);border-radius:var(--radius-sharp)}
@media(min-width:800px){.ed-grid{grid-template-columns:repeat(3,1fr)}}
.ed-grid article{
  padding:1.35rem;
  border-bottom:1px solid var(--color-line);
  background:var(--color-surface);
}
@media(min-width:800px){
  .ed-grid article{border-bottom:0;border-right:1px solid var(--color-line)}
  .ed-grid article:last-child{border-right:0}
}
.ed-grid .num{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--color-primary);
  margin-bottom:.75rem;
}
.ed-grid h3{
  font-family:var(--display);
  font-size:1.15rem;
  margin-bottom:.4rem;
}
.ed-grid p{color:var(--color-muted)}

.pull{
  font-family:var(--display);
  font-size:clamp(1.4rem,3vw,2rem);
  line-height:1.25;
  letter-spacing:-.02em;
  font-weight:700;
  max-width:24ch;
  margin:0 auto;
  text-align:center;
  padding:1rem 0;
}
.pull cite{
  display:block;
  margin-top:1rem;
  font-family:var(--font);
  font-style:normal;
  font-size:.8rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-muted);
}

.stack-list{display:grid;gap:0;padding:0;list-style:none}
.stack-list li{
  display:grid;
  gap:.35rem;
  padding:1.15rem 0;
  border-bottom:1px solid var(--color-line);
}
@media(min-width:700px){
  .stack-list li{grid-template-columns:180px 1fr;gap:1.5rem;align-items:baseline}
}
.stack-list strong{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.stack-list span{color:var(--color-muted)}

.cta-band{
  display:grid;
  gap:1rem;
  padding:2rem;
  border:1px solid var(--color-line);
  border-radius:var(--radius-sharp);
  background:var(--color-surface);
}
@media(min-width:760px){
  .cta-band{grid-template-columns:1fr auto;align-items:center}
}
.cta-band h2{font-family:var(--display)}

.page-hero{padding:2.75rem 0 1.5rem;border-bottom:1px solid var(--color-line)}
.page-hero h1{
  font-family:var(--display);
  font-size:clamp(2rem,4.5vw,3.2rem);
  letter-spacing:-.04em;
  max-width:14ch;
}
.crumbs{
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-muted);
  margin-bottom:1rem;
  display:flex;
  gap:.4rem;
}

.form{
  display:grid;
  gap:.9rem;
  max-width:540px;
  border:1px solid var(--color-line);
  border-radius:var(--radius-sharp);
  padding:1.25rem;
  background:var(--color-surface);
}
.form label{
  display:grid;
  gap:.3rem;
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.form input,.form textarea,.form select{
  padding:.8rem .9rem;
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  background:var(--color-bg);
}
.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--color-primary)}
.form-note{color:var(--color-muted);font-size:.85rem}
.form--scope{max-width:none;width:100%}

.scope-page{padding:2.5rem 0 3.5rem;border-bottom:1px solid var(--color-line)}
.scope-grid{display:grid;gap:2rem;align-items:start}
@media(min-width:900px){
  .scope-grid{grid-template-columns:1.05fr .95fr;gap:3rem}
}
.scope-copy h1{
  font-family:var(--display);
  font-size:clamp(2rem,4.5vw,3.2rem);
  letter-spacing:-.04em;
  max-width:13ch;
  margin:0 0 1rem;
  line-height:1.05;
}
.scope-lead{color:var(--color-muted);max-width:38ch;margin:0 0 1.75rem;font-size:1.05rem}
.scope-facts{
  display:grid;
  gap:0;
  margin-top:2rem;
  border:1px solid var(--color-line);
  border-radius:var(--radius-sharp);
}
@media(min-width:520px){.scope-facts{grid-template-columns:repeat(3,1fr)}}
.scope-facts > div{
  padding:1rem 1.1rem;
  border-bottom:1px solid var(--color-line);
  background:var(--color-surface);
}
@media(min-width:520px){
  .scope-facts > div{border-bottom:0;border-right:1px solid var(--color-line)}
  .scope-facts > div:last-child{border-right:0}
}
.scope-facts b{
  display:block;
  font-family:var(--display);
  font-size:1.15rem;
  margin-bottom:.25rem;
}
.scope-facts span{
  font-size:.78rem;
  color:var(--color-muted);
  letter-spacing:.04em;
  text-transform:uppercase;
}

.team{display:grid;gap:0;border-top:1px solid var(--color-line)}
@media(min-width:700px){.team{grid-template-columns:repeat(3,1fr)}}
.person{padding:1.25rem;border-bottom:1px solid var(--color-line)}
@media(min-width:700px){
  .person{border-right:1px solid var(--color-line)}
  .person:last-child{border-right:0}
}
.avatar{
  width:56px;
  height:56px;
  margin-bottom:.75rem;
  background:var(--color-primary);
  border-radius:var(--radius);
}
.person h3{font-family:var(--display);font-size:1.05rem;margin-bottom:.25rem}
.person p{color:var(--color-muted);font-size:.92rem}

.ba-grid{display:grid;gap:0;border:1px solid var(--color-line);border-radius:var(--radius-sharp)}
@media(min-width:700px){.ba-grid{grid-template-columns:1fr 1fr}}
.ba-card{border-bottom:1px solid var(--color-line);background:var(--color-surface)}
@media(min-width:700px){
  .ba-card{border-bottom:0;border-right:1px solid var(--color-line)}
  .ba-card:last-child{border-right:0}
}
.ba-visual{display:grid;grid-template-columns:1fr 1fr;min-height:160px}
.ba-visual .before{background:var(--color-accent)}
.ba-visual .after{background:var(--color-primary)}
.ba-visual span{
  align-self:end;
  padding:.75rem;
  color:#fff;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ba-card .body{padding:1rem}
.ba-card h3{font-family:var(--display);font-size:1.05rem;margin-bottom:.35rem}
.ba-card p{color:var(--color-muted)}

.faq details{border-bottom:1px solid var(--color-line);padding:1rem 0}
.faq summary{font-weight:700;cursor:pointer;font-size:1.05rem}
.faq p{color:var(--color-muted);margin-top:.5rem;max-width:60ch}

.site-footer{padding:2.5rem 0 2rem;color:var(--color-muted);font-size:.9rem}
.footer-grid{display:grid;gap:1.5rem}
@media(min-width:700px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr}}
.footer-bottom{
  margin-top:1.75rem;
  padding-top:1rem;
  border-top:1px solid var(--color-line);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:1rem;
}
.credit a{color:var(--color-ink);font-weight:700;border-bottom:1px solid var(--color-primary)}
