/* Arbor Survey page styles: svc-planning.css */
/* ---------- Brand design system (Brand Guidelines v2.3) ---------- */
.narrow{max-width:760px;}
.bg-pale{background:var(--pale-green);}
/* ---------- Header / nav ---------- */
.pillar,section[id]{scroll-margin-top:84px;}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
/* ---------- Hero ---------- */
.crumb{font-size:.85rem;color:var(--light-green);margin:0 0 1.1rem;}
.crumb a{color:var(--light-green);}
.crumb a:hover{color:#fff;}
/* ---------- Lifecycle ribbon (static, this-service highlighted) ---------- */
.flow{margin-top:30px;}
.flow-rail{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
.flow-rail::before{content:"";position:absolute;left:6%;right:6%;top:27px;height:3px;background:var(--pale-green);z-index:0;}
.stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:6px 4px;text-align:center;color:var(--dark-green);cursor:default;}
.stage .dot{width:54px;height:54px;border-radius:50%;background:#fff;border:3px solid var(--light-green);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.15rem;color:var(--dark-green);}
.stage .slabel{font-size:.82rem;font-weight:600;line-height:1.25;color:var(--dark-green);}
.stage--on .dot{background:var(--dark-green);border-color:var(--dark-green);color:#fff;}
.stage--off .dot{background:#fff;border-color:var(--light-grey);color:var(--mid-grey);}
.stage--off .slabel{color:var(--mid-grey);}
.ribbon-cap{font-size:.92rem;color:var(--mid-grey);margin-top:16px;}
/* ---------- Stepper ---------- */
.steps{margin-top:34px;}
.step{position:relative;display:grid;grid-template-columns:60px 1fr;gap:24px;padding-bottom:30px;}
.step:not(:last-child)::before{content:"";position:absolute;left:28.5px;top:62px;bottom:-6px;width:3px;background:var(--pale-green);}
.snum{width:60px;height:60px;border-radius:50%;background:var(--dark-green);color:#fff;display:flex;align-items:center;
  justify-content:center;font-weight:700;font-size:1.3rem;z-index:1;}
.scard{background:#fff;border:1px solid var(--light-grey);border-radius:8px;border-left:5px solid var(--sage);padding:24px 26px;}
.scard .when{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dark-green);margin:0 0 .35rem;}
.scard h3{font-size:1.3rem;margin-bottom:.4em;}
.scard p{margin:0;}
.deliv{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.deliv .d{font-size:.76rem;font-weight:700;letter-spacing:.02em;background:var(--pale-tint);color:var(--dark-green);
  padding:6px 13px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-family:inherit;line-height:1.2;transition:background .12s ease,color .12s ease;}
.deliv .d:hover,.deliv .d:focus-visible,.deliv .d[aria-expanded="true"]{background:var(--dark-green);color:#fff;outline:none;}
.d-detail{margin:12px 0 0;font-size:.92rem;color:var(--near-black);}
.d-detail:empty{display:none;}
/* ---------- Callout band (Local Law) ---------- */
.callout{background:#fff;border:1px solid var(--light-grey);border-radius:10px;border-top:5px solid var(--terracotta);
  padding:30px 32px;box-shadow:0 2px 14px rgba(35,31,32,.05);}
.callout .eyebrow{color:var(--terracotta);}
/* ---------- Why / points ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px;}
.why{background:#fff;border:1px solid var(--light-grey);border-radius:6px;padding:24px;border-top:4px solid var(--sage);}
.why h3{margin-bottom:.35em;}
.why p{font-size:.96rem;color:var(--near-black);margin:0;}
/* ---------- Related ---------- */
.rel:hover,.rel:focus-visible{transform:translateY(-3px);box-shadow:0 10px 26px rgba(35,31,32,.10);border-color:var(--sage);color:inherit;outline:none;}
.rel p{font-size:.9rem;color:var(--near-black);margin:0 0 .8rem;flex:1;}
.rel .go{font-weight:700;color:var(--dark-green);font-size:.88rem;}
.rel:hover .go,.rel:focus-visible .go{color:var(--dark-green);}
/* ---------- Footer ---------- */
@media (max-width:880px){
  h1{font-size:2rem;}
  .why-grid,.related-grid{grid-template-columns:repeat(2,1fr);}
  .flow-rail{grid-template-columns:repeat(3,1fr);row-gap:22px;}
  .flow-rail::before{display:none;}
}
@media (max-width:560px){
  .step{grid-template-columns:1fr;gap:14px;}
  .step:not(:last-child)::before{display:none;}
  .snum{width:48px;height:48px;font-size:1.1rem;}
}
@media (max-width:480px){
  .why-grid,.related-grid{grid-template-columns:1fr;}
  .flow-rail{grid-template-columns: