
.page-hero{padding-top:clamp(20px,2.4vw,32px)}
.page-hero__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,6vw,96px); align-items:center}
@media (min-width:1301px){
  .page-hero > .wrap{max-width:none; padding-left:max(var(--pad),calc((100% - 1280px) / 2 + var(--pad))); padding-right:var(--pad)}
  .page-hero .page-hero__grid{grid-template-columns:minmax(0,527px) minmax(0,1fr); gap:40px}
}

.page-hero--bleed{}

.page-hero__copy{display:flex; flex-direction:column; gap:22px}
.page-hero__copy .lede{max-width:40ch}

.crumbs{display:none}

.page-hero--hub .page-hero__grid{grid-template-columns:minmax(510px,.95fr) minmax(0,1.05fr)}
.page-hero--hub .page-hero__copy .lede{max-width:44ch}
.page-hero--hub .page-hero__grid{align-items:start}

.doc{max-width:68ch; margin-inline:auto}
.doc .prose{max-width:none}
.doc-title{align-items:center; text-align:center; max-width:none}
.doc-title .lede{max-width:52ch}

.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,96px); align-items:center}
.split--top{align-items:start}
.split--narrow{grid-template-columns:.9fr 1.1fr}
.head{display:flex; flex-direction:column; gap:18px}
.prose{display:flex; flex-direction:column; gap:20px; max-width:64ch}
.prose h3{padding-top:8px}

.slot{
  border:1.5px dashed var(--purple); padding:20px 24px; color:var(--purple); font-weight:600;
  font-size:18px; line-height:1.6; background:rgba(91,33,216,.04);
}
.slot--short{padding:12px 16px}

.checks{list-style:none; margin:0; padding:0; border-top:1px solid var(--ink)}
.checks li{display:grid; grid-template-columns:28px 1fr; gap:14px; align-items:start; padding:18px 0; border-bottom:1px solid var(--line); font-size:18px}
.checks li::before{
  content:""; width:28px; height:28px; margin-top:4px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23066F68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;
}

.reasons{display:grid; grid-template-columns:repeat(3,1fr); column-gap:40px; row-gap:8px; border-top:1px solid var(--line); counter-reset:n}
.reasons > li{display:flex; flex-direction:column; gap:10px; padding:32px 0 16px; border-bottom:0; grid-template-columns:none}
.reasons > li::before{font-size:32px}
.reasons h3{font-size:24px}

.reasons--4{grid-template-columns:repeat(4,1fr)}
.rows > li{padding:36px 0}
.rows h2{font-size:clamp(26px,2.4vw,32px); line-height:1.2}
.rows p{max-width:64ch}
.team-card{border:1px solid var(--line); background:var(--card); padding:28px 32px; display:flex; flex-direction:column; gap:8px}
.h3{font-size:clamp(22px,2vw,26px); line-height:1.25; padding-top:8px}

.contact{display:grid; grid-template-columns:140px 1fr; row-gap:14px; column-gap:24px; margin:0}
.contact dt{font-family:Nunito,sans-serif; font-weight:800; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--teal-ink); padding-top:6px}
.contact dd{margin:0}
.map-credit{font-size:18px; color:var(--muted); padding-top:10px}
.map-credit a{color:var(--muted)}
.form{background:var(--card); border:1px solid var(--line); padding:clamp(24px,3vw,40px); display:flex; flex-direction:column; gap:22px}
.form__lead{font-size:18px; color:var(--ink-2)}
.form__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px}
.field{display:flex; flex-direction:column; gap:8px}
.field--wide{grid-column:1 / -1}
.field span{font-family:Nunito,sans-serif; font-weight:700; font-size:18px; color:var(--ink)}
.field input:not([type=radio]):not([type=checkbox]),.field textarea{
  font:inherit; font-size:18px; color:var(--ink); background:#fff;
  border:1.5px solid var(--field-line); border-radius:0; padding:14px 16px; min-height:56px;
  width:100%; min-width:0; box-sizing:border-box;
}
.field textarea{min-height:120px; resize:vertical}
.field input:not([type=radio]):not([type=checkbox]):focus,.field textarea:focus{outline:3px solid var(--purple); outline-offset:2px; border-color:var(--purple)}
.field input::placeholder{color:var(--muted)}
.field select{
  font:inherit; font-size:18px; color:var(--ink); background:#fff; border:1.5px solid var(--field-line); border-radius:0;
  padding:14px 44px 14px 16px; min-height:56px; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1B4D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:20px;
}
.field select:focus{outline:3px solid var(--purple); outline-offset:2px; border-color:var(--purple)}
.choice{border:0; padding:0; margin:0; gap:8px}
.choice legend{font-family:Nunito,sans-serif; font-weight:700; font-size:18px; color:var(--ink); padding:0 0 8px}
.choice label,.consent{display:flex; align-items:center; gap:12px; min-height:48px; font-size:18px; color:var(--ink-2); cursor:pointer}
.choice input,.consent input{width:24px; height:24px; min-height:0; padding:0; border:0; margin:0; accent-color:var(--navy); flex:none}
.choice input:focus-visible,.consent input:focus-visible{outline:3px solid var(--purple); outline-offset:3px}
.consent{flex-direction:row; align-items:flex-start}
.consent input{margin-top:12px}
.consent span{font-family:inherit; font-weight:400; font-size:18px; color:var(--ink-2)}
.hours dt{padding-top:0}
.hours{row-gap:10px}
.btn[type="submit"]{font:inherit; font-family:Nunito,sans-serif; font-weight:700; font-size:15px; letter-spacing:.08em; text-transform:uppercase}
.form__hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.form__status{font-size:18px; color:var(--ink); border-left:3px solid var(--teal-ink); padding:8px 16px; background:var(--band)}
.form__status[hidden]{display:none}
.form__status--error{border-left-color:var(--purple)}

.faqs{border-top:1px solid var(--ink)}
.faqs details{border-bottom:1px solid var(--line)}
.faqs summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:26px 0; font-family:Newsreader,serif; font-weight:500; font-size:24px; line-height:1.25; color:var(--ink);
}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{
  content:"+"; flex:none; width:48px; height:48px; border:1.5px solid var(--ink); border-radius:999px;
  display:flex; align-items:center; justify-content:center; font-family:Newsreader,serif; font-size:28px; line-height:1;
  transition:transform .2s ease;
}
.faqs details[open] summary::after{transform:rotate(45deg)}
.faqs details p{padding:0 0 26px; max-width:60ch; font-size:18px; line-height:1.6}

.cta-band{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,6vw,96px); align-items:center}

.cards{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.cards > li{background:var(--card); border:1px solid var(--line); padding:28px 32px 16px; display:flex; flex-direction:column; gap:12px}
.cards h3{font-size:24px; line-height:1.25}
.cards p{font-size:18px; line-height:1.6; flex:1}
.cards .link{align-self:flex-start}
.conditions{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); column-gap:40px; padding-top:40px}
.conditions > li{border-top:1px solid var(--line); padding:24px 0; display:flex; flex-direction:column; gap:8px}
.conditions h3{font-size:24px; line-height:1.25}
.conditions p{font-size:18px; line-height:1.6; max-width:60ch}

.bullets{list-style:none; margin:0; padding:0; border-top:1px solid var(--ink)}
.bullets li{display:grid; grid-template-columns:28px 1fr; gap:14px; align-items:start; padding:18px 0; border-bottom:1px solid var(--line); font-size:18px; line-height:1.6}
.bullets li::before{content:""; width:12px; height:12px; margin:12px 0 0 6px; background:var(--teal-ink)}
.bullets strong{font-weight:600; color:var(--ink)}

@media (max-width:1100px){ .reasons,.reasons--4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:900px){
  .page-hero__grid,.split,.split--narrow,.cta-band,.page-hero--hub .page-hero__grid{grid-template-columns:1fr}
  .cards,.conditions{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr; row-gap:4px}
  .contact dd{padding-bottom:10px}
}
@media (max-width:640px){
  .reasons,.reasons--4{grid-template-columns:1fr}
  .reasons > li{padding:22px 0; border-bottom:1px solid var(--line)}
  .form__grid{grid-template-columns:minmax(0,1fr)}
  .btn-row .btn{width:100%}
}

.chain{list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0 40px; counter-reset:n; border-top:1px solid var(--ink)}
.chain > li{counter-increment:n; position:relative; display:flex; flex-direction:column; gap:8px; padding:28px 0 8px}
.chain > li::before{content:counter(n,decimal-leading-zero); font-family:Newsreader,serif; font-size:40px; line-height:1; color:var(--teal-ink)}
.chain > li + li::after{content:""; position:absolute; left:-26px; top:42px; width:12px; height:12px; border-top:1.5px solid var(--line-2); border-right:1.5px solid var(--line-2); transform:rotate(45deg)}
.chain h3{font-size:24px}
.chain p{font-size:18px; line-height:1.6}
.rows h3{font-size:clamp(24px,2.2vw,28px); line-height:1.2}
@media (min-width:900px){
  .rows--split > li > div{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,var(--measure)); gap:clamp(24px,3vw,48px); align-items:start;
  }
  .rows--split > li > div > h3{margin:0}
  .rows--split > li > div > p{max-width:none}
}
.rows .eyebrow{padding-bottom:2px}
.causes{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 48px; border-top:1px solid var(--ink)}
.causes li{padding:18px 0; border-bottom:1px solid var(--line); font-size:18px; line-height:1.6}
.causes strong{color:var(--ink); font-weight:600}
.callout{border-left:3px solid var(--teal-ink); background:var(--card); padding:24px 28px; display:flex; flex-direction:column; gap:10px; max-width:64ch}
.callout h3{font-size:24px}
.callout p{font-size:18px; line-height:1.6}
.degrees{width:100%; border-collapse:collapse; border-top:1px solid var(--ink); font-size:18px; line-height:1.55; color:var(--ink-2)}
.degrees th,.degrees td{text-align:left; vertical-align:top; padding:18px 24px 18px 0; border-bottom:1px solid var(--line)}
.degrees thead th{font-family:Nunito,sans-serif; font-weight:800; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--teal-ink); padding-top:14px; padding-bottom:14px}
.degrees tbody th{font-family:Newsreader,serif; font-weight:500; font-size:24px; line-height:1.25; color:var(--ink); white-space:nowrap; width:1%}
.degrees td:nth-child(2){white-space:nowrap; color:var(--ink); font-weight:600}
.linklist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column}
.section--navy .todo{color:var(--teal)}

@media (max-width:1100px){
  .chain{grid-template-columns:repeat(2,1fr)}
  .chain > li:nth-child(odd)::after{display:none}
}
@media (max-width:640px){
  .chain,.causes{grid-template-columns:1fr}
  .chain > li{padding:20px 0; border-bottom:1px solid var(--line)}
  .chain > li + li::after{display:none}
  .degrees thead{display:none}
  .degrees tr{display:block; padding:16px 0; border-bottom:1px solid var(--line)}
  .degrees th,.degrees td{display:block; border:0; padding:2px 0; white-space:normal; width:auto}
  .degrees tbody th{padding-bottom:6px}
  .degrees td::before{content:attr(data-label) ": "; font-weight:600; color:var(--ink)}
  .degrees td:nth-child(2){font-weight:400}
  .degrees td:nth-child(2)::before{font-weight:600}
}
