/* Architecture section. Builds on v2.css tokens. */
.arch-page .section{max-width:1100px}
.arch-cta{display:inline-block;background:var(--acid);color:var(--navy) !important;font-weight:700;padding:.6rem 1rem;border-radius:999px;text-decoration:none}
.arch-cta:hover,.arch-cta:focus{background:var(--navy);color:var(--cream) !important}
.statline{flex-wrap:wrap}
.num{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;border-radius:999px;color:#fff;font-family:var(--head);font-weight:700;font-size:13px;flex-shrink:0}
.top12{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.top12 a{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:18px;background:var(--paper);border:1px solid var(--line);text-decoration:none;height:100%}
.top12 a:hover,.top12 a:focus{border-color:var(--navy);box-shadow:4px 4px 0 var(--acid)}
.top12 .num{grid-row:span 3}
.top12 strong{font-family:var(--head);font-size:20px;line-height:1.15;letter-spacing:-.02em}
.top12 span:not(.num){font-size:13px;line-height:1.5}
.top12 small{font-size:11px;color:var(--muted)}
.arch-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.arch-legend button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--navy);background:var(--paper);padding:7px 12px;font-size:12px;border-radius:999px;min-height:36px}
.arch-legend button span{width:12px;height:12px;border-radius:50%;display:inline-block}
.arch-legend button[aria-pressed=false]{opacity:.45;text-decoration:line-through;background:transparent}
.map-wrap{max-width:760px;margin:0 auto}
.arch-map{width:100%;height:auto;display:block}
.arch-map .land{fill:#ebe6d4}
.arch-map .sea{fill:#bcd5e6}
.arch-map .ring{fill:none;stroke:#07152f;stroke-opacity:.25;stroke-dasharray:3 4}
.arch-map .ring-edge{stroke-opacity:.7;stroke-dasharray:none;stroke-width:2}
.arch-map .ring-label{font:10px var(--body);fill:#526075}
.arch-map .town{font:600 11px var(--body);fill:#526075;text-anchor:middle;letter-spacing:.04em;paint-order:stroke;stroke:#ebe6d4;stroke-width:3px;stroke-linejoin:round}
.arch-map .center{fill:var(--acid);stroke:#07152f;stroke-width:2}
.arch-map .center-label{font:700 11px var(--body);fill:#07152f;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#ebe6d4;stroke-width:4px;stroke-linejoin:round}
.arch-map .dot circle{stroke:#fff;stroke-width:1.5}
.arch-map .dot text{font:700 9px var(--head);fill:#fff;text-anchor:middle;pointer-events:none}
.arch-map .dot:hover circle,.arch-map .dot:focus circle{stroke:var(--acid);stroke-width:3}
.arch-map [hidden]{display:none}
.band-head{font-size:24px;margin:34px 0 14px;display:flex;align-items:baseline;gap:10px}
.band-head span{font-size:13px;color:var(--muted);font-family:var(--body);letter-spacing:0}
.buildings{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.building{background:var(--paper);border:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:10px;scroll-margin-top:20px}
.building:target{outline:3px solid var(--acid);outline-offset:2px}
.building header{display:flex;gap:12px;align-items:flex-start}
.building h3{font-size:22px;letter-spacing:-.025em;line-height:1.15}
.building p{margin:0;font-size:14px}
.b-meta{font-size:12px !important;color:var(--muted);margin-top:4px !important}
.hook{font-family:var(--head);font-size:16px !important;font-weight:600;color:var(--blue)}
.status{display:inline-block;font:700 10px var(--body);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--red);color:var(--red);border-radius:999px;padding:2px 7px;vertical-align:middle}
.claims{margin:0;padding-left:18px;font-size:13px;display:grid;gap:6px;min-width:0}
.claims li,.b-meta,.trend p{overflow-wrap:anywhere;min-width:0}
.trend,.building{min-width:0}
.claims q{font-style:italic;color:#2d3a52}
.cite{font-size:12px;white-space:nowrap}
.label{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:999px;border:1px solid currentColor;vertical-align:middle}
.label-fact{color:var(--blue)}
.label-listing{color:var(--green)}
.label-reported{color:var(--red)}
.label-estimate{color:#9a7400}
.visit{font-size:12px !important;color:var(--muted);margin-top:auto !important}
.trends{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.trend{background:var(--paper);border-top:5px solid var(--blue);padding:20px;display:flex;flex-direction:column;gap:10px}
.trend:nth-child(3n+2){border-color:var(--red)}
.trend:nth-child(3n){border-color:var(--green)}
.trend h3{font-size:21px;line-height:1.15}
.trend p{margin:0;font-size:14px}
.stat{font-family:var(--head);font-size:30px !important;font-weight:600;letter-spacing:-.03em;line-height:1.05}
.next-up{background:var(--navy);color:var(--cream);padding:22px;margin:24px 0;max-width:760px}
.next-up .eyebrow{color:var(--acid);margin-bottom:8px}
.next-up a{color:var(--acid)}
.next-up q{color:#dfe6f2}
.timeline{list-style:none;margin:0;padding:0;display:grid}
.timeline li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.timeline time{font-family:var(--head);font-weight:700}
.es-figure{margin:20px 0;background:var(--paper);border:1px solid var(--line);padding:10px}
.es-figure svg{width:100%;height:auto;display:block}
.ask-list li{margin:10px 0}
@media(max-width:760px){
.top12{grid-template-columns:1fr}
.buildings,.trends{grid-template-columns:1fr}
.building{padding:16px}
.building h3{font-size:20px}
.timeline li{grid-template-columns:1fr;gap:4px}
.cite{white-space:normal}
}
.es-figure img { width: 100%; height: auto; display: block; border: 1px solid #d8d2bf; background: #fffdf6; }
.es-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.5rem; margin: 1rem 0; }
.es-decades { display: flex; align-items: flex-end; gap: 4px; height: 140px; margin: 1rem 0 .25rem; }
.es-bar { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; min-width: 0; }
.es-bar span { display: block; background: #1028dc; }
.es-bar small { font-size: 10px; text-align: center; margin-top: 2px; writing-mode: vertical-rl; transform: rotate(180deg); height: 3.2em; }
@media (max-width: 760px) { .es-grid { grid-template-columns: 1fr; } }
