/* RVC Housing × Schools — shared design tokens & chrome ("Modernist", RVC colors)
   Source of truth: design_handoff_rvc_site_redesign/README.md */
:root{
  --bg:#f3f2f2; --ink:#201e1d; --green:#1e6b3d; --green-hover:#14522c; --gold:#c5a44e; --error:#8a2f1d;
  --muted-60:rgba(32,30,29,.6); --muted-65:rgba(32,30,29,.65); --muted-70:rgba(32,30,29,.7); --muted-75:rgba(32,30,29,.75);
  --rule-strong:rgba(32,30,29,.4); --rule-hair:rgba(32,30,29,.25); --rule-row:rgba(32,30,29,.2);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Archivo',system-ui,sans-serif;font-size:15px;line-height:1.55}
a{color:var(--green);text-underline-offset:3px}
a:hover{color:var(--green-hover)}
/* Shared nav (injected by assets/nav.js) */
.site-nav{border-bottom:2px solid var(--rule-strong);background:var(--bg);font-family:'Archivo',system-ui,sans-serif}
.site-nav .bar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;gap:12px}
.site-nav .brand{font-weight:800;font-size:15px;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.site-nav .links{display:flex;gap:22px;font-size:13px;font-weight:600;align-items:center}
.site-nav .links a{text-decoration:none;color:var(--ink)}
.site-nav .links a.current{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--green);color:var(--green);font-weight:800}
.site-nav .act{background:var(--green);color:var(--bg) !important;font-weight:800;font-size:13px;padding:9px 26px 9px 12px;text-decoration:none}
.site-nav .menu-btn{display:none;font-family:'Archivo',sans-serif;cursor:pointer;background:transparent;border:1px solid var(--ink);color:var(--ink);font-weight:800;font-size:13px;padding:8px 14px}
.site-nav .mobile{display:none;flex-direction:column;border-top:1px solid var(--rule-hair);padding:6px 24px 14px}
.site-nav .mobile a{padding:11px 0;border-bottom:1px solid rgba(32,30,29,.15);font-size:15px;text-decoration:none;color:var(--ink);font-weight:600}
.site-nav .mobile a.current{color:var(--green);font-weight:800}
.site-nav .mobile .act{display:inline-flex;align-self:flex-start;border-bottom:none;font-size:14px;padding:11px 36px 11px 14px;margin-top:10px}
@media(max-width:760px){
  .sec-grid>*,.grid-label>*{min-width:0}
  img,svg{max-width:100%}

  .site-nav .links{display:none}
  .site-nav .menu-btn{display:block}
  .site-nav.open .mobile{display:flex}
}
/* Shared footer */
.site-foot{display:flex;justify-content:space-between;padding:16px 48px;font-size:12px;font-weight:600;color:var(--muted-60);flex-wrap:wrap;gap:8px}
.site-foot .independence-note{flex-basis:100%;font-weight:400}
@media(max-width:760px){.site-foot{padding:16px 24px}}

/* Shared top signup CTA (injected by assets/nav.js, above the nav on every page) */
.cta-strip{background:var(--green);color:var(--bg);font-family:'Archivo',system-ui,sans-serif}
.cta-strip .cta-inner{max-width:1180px}
.cta-strip .cta-row{display:flex;align-items:center;gap:8px 22px;flex-wrap:wrap;padding:9px 24px;font-size:14px;font-weight:800;letter-spacing:-.01em}
.cta-strip .cta-h{font-weight:800}
.cta-strip a.cta-issue{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.cta-strip .cta-tag{background:var(--gold);color:var(--ink);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;margin-right:-12px}
.cta-strip .cta-toggle{font-family:inherit;font-weight:800;font-size:12.5px;color:var(--bg);background:transparent;border:1px solid rgba(243,242,242,.65);padding:6px 12px;cursor:pointer;white-space:nowrap;text-align:left}
.cta-strip .cta-toggle[aria-expanded="true"]{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.cta-strip .cta-form-wrap{display:flex;align-items:center;gap:10px 24px;flex-wrap:wrap;padding:2px 24px 14px}
.cta-strip .cta-form-wrap[hidden]{display:none}
.cta-strip .cta-sub{font-size:12.5px;font-weight:600;color:rgba(243,242,242,.82)}
.cta-strip .cta-sub a{color:var(--bg);text-underline-offset:3px}
.cta-strip .cta-form{display:flex;gap:8px;flex:0 0 auto}
.cta-strip .cta-email{font-family:inherit;font-size:16px;font-weight:600;color:var(--ink);background:#f3f2f2;border:none;padding:10px 12px;width:220px;max-width:52vw}
.cta-strip .cta-email::placeholder{color:rgba(32,30,29,.5)}
.cta-strip .cta-btn{font-family:inherit;font-weight:800;font-size:14px;color:var(--ink);background:var(--gold);border:none;padding:10px 22px;cursor:pointer;white-space:nowrap}
.cta-strip .cta-btn:disabled{opacity:.7;cursor:default}
.cta-strip .cta-consent{display:flex;align-items:flex-start;gap:8px;flex:1 1 100%;font-size:12px;font-weight:600;line-height:1.35;color:rgba(243,242,242,.9)}
.cta-strip .cta-consent input{margin:3px 0 0;accent-color:var(--gold)}
.cta-strip .cta-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.cta-strip .cta-msg{flex:1 1 100%;font-size:12.5px;font-weight:700;height:0;overflow:hidden}
.cta-strip .cta-msg.show{height:auto;margin-top:2px}
.cta-strip .cta-msg.ok{color:#eaf3ea}
.cta-strip .cta-msg.err{color:#ffd9d0}
.share-routes{border-top:2px solid var(--rule-strong);padding-top:34px;padding-bottom:34px}
.share-route-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:760px}
.share-route{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--rule-hair);padding:9px 10px;background:rgba(255,255,255,.25)}
.share-route code{font:600 11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.share-copy{flex:0 0 auto;font-family:inherit;font-size:12px;font-weight:800;background:transparent;border:1px solid var(--ink);color:var(--ink);padding:6px 8px;cursor:pointer;text-align:left}
.share-copy:hover{background:var(--ink);color:var(--bg)}
.share-status{min-height:1.5em;margin:10px 0 0;font-size:12.5px;font-weight:600;color:var(--muted-70)}
@media(max-width:760px){
  .cta-strip .cta-row{padding:9px 16px;gap:6px 14px}
  .cta-strip .cta-form-wrap{padding:2px 16px 12px;gap:10px}
  .cta-strip .cta-sub{flex:1 1 100%}
  .cta-strip .cta-form{flex:1 1 100%}
  .cta-strip .cta-email{flex:1 1 auto;width:auto;max-width:none}
  .share-route-list{grid-template-columns:1fr}
  .share-route{align-items:flex-start;flex-direction:column}
}
@media print{
  /* Sitewide print stylesheet. Before this existed, printing any page produced one
     enormously scaled sheet plus a black page where the green bands fell through. */
  html{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{size:letter;margin:0.55in 0.6in}
  body{background:#fff !important;color:#201e1d;font-size:10.5pt;line-height:1.45}

  /* Screen chrome that means nothing on paper */
  .cta-strip,.site-nav,#site-nav,.menu-btn,.mobile,.act,.onpage{display:none !important}

  /* Containers stop being viewport-width so the engine has no reason to scale */
  .px,.mx,.hero-pad{margin-left:0 !important;margin-right:0 !important;
    padding-left:0 !important;padding-right:0 !important;max-width:none !important}
  .sec-grid{display:block !important}
  .sec-label{position:static !important;margin-bottom:6px}

  /* Wide content scrolls on screen; on paper it must simply fit */
  .ab-wrap{overflow:visible !important}
  .ab-table{min-width:0 !important;font-size:9pt}
  svg{max-width:100% !important;height:auto}
  img{max-width:100% !important}

  /* Reversed bands print as ink on white rather than a solid black sheet */
  [style*="background:#1e6b3d"],[style*="background:#1e6b3d"] *{
    background:transparent !important;color:#201e1d !important}
  [style*="background:#1e6b3d"]{border-top:2px solid #201e1d;padding:18px 0 0 !important;margin-top:24px !important}
  [style*="background:#c5a44e"]{background:transparent !important;color:#201e1d !important;
    border:1px solid #201e1d;padding:2px 6px !important}
  /* Reversed call-to-action buttons keep their shape as outlined boxes */
  a[style*="background:#1e6b3d"],a[style*="background:#c5a44e"]{
    border:1px solid #201e1d !important;padding:8px 14px !important;text-decoration:none}

  /* Buttons and jump links are dead on paper */
  a[href^="#"]{text-decoration:none;color:inherit}
  .site-foot{border-top:1px solid rgba(32,30,29,.4);padding:10px 0;font-size:8.5pt}

  /* Keep tables, rows and headings from splitting badly */
  h1,h2,h3{page-break-after:avoid;break-after:avoid}
  table,tr,.num-strip,.entry{page-break-inside:avoid;break-inside:avoid}
  thead{display:table-header-group}
  p{orphans:3;widows:3}
}
