.manufacturing { background:var(--soft); border-bottom:1px solid var(--line); scroll-margin-top:20px; }
.manufacturing [hidden] { display:none !important; }
.manufacturing button,.manufacturing input,.manufacturing select { font:inherit; }
.manufacturing button { cursor:pointer; }
.manufacturing :focus-visible { outline:3px solid var(--brick); outline-offset:4px; }
.map-sr { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.map-toolbar { display:grid; grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)) auto; gap:14px; align-items:end; margin-bottom:20px; }
.map-toolbar label { display:grid; gap:8px; font-size:12px; font-weight:800; }
.map-toolbar input,.map-toolbar select { width:100%; min-width:0; height:48px; padding:10px 12px; border:1px solid #899ca4; border-radius:0; background:#fff; color:var(--ink); font-size:15px; }
.map-toolbar input::placeholder { color:#586d76; }
.map-clear { min-height:48px; border:0; background:transparent; color:var(--brick); text-decoration:underline; text-underline-offset:3px; font-size:13px !important; font-weight:800 !important; padding:10px; }
.map-frame { border:2px solid var(--navy); background:#fff; }
.map-topline { min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 20px; background:var(--navy); color:#fff; font-size:12px; }
.map-topline strong { font:800 12px/1.4 'Courier New',monospace; text-transform:uppercase; letter-spacing:.06em; }
.map-topline span { color:#e1e9eb; }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; }
.map-canvas { min-width:0; display:flex; flex-direction:column; border-right:1px solid var(--line); background:#f6f8f8; }
.map-stage { position:relative; width:100%; aspect-ratio:1000 / 640; overflow:hidden; isolation:isolate; touch-action:pan-y; }
.map-stage.is-zoomed { cursor:grab; touch-action:none; }
.map-stage.is-dragging { cursor:grabbing; }
.map-geography { display:block; width:100%; height:100%; user-select:none; }
.map-state { fill:#dce5e7; stroke:#fff; stroke-width:1.25; vector-effect:non-scaling-stroke; }
.map-state.has-plants { fill:#b7c9cd; }
.map-state.is-selected { fill:#e5c472; }
.map-points { position:absolute; inset:0; pointer-events:none; }
.map-pin { position:absolute; display:grid; place-items:center; transform:translate(-50%,-50%); width:44px; height:44px; border:0; background:transparent; padding:0; color:#fff; z-index:2; pointer-events:auto; }
.map-pin span { display:grid; place-items:center; width:23px; height:23px; border:2px solid #fff; border-radius:50%; background:var(--navy); font:800 10px/1 Arial,sans-serif; }
.map-pin[aria-pressed="true"] { z-index:4; }
.map-pin[aria-pressed="true"] span { width:29px; height:29px; background:var(--brick); outline:2px solid var(--brick); outline-offset:2px; }
.map-pin:hover,.map-pin:focus-visible { z-index:5; }
.map-pin:hover span { background:var(--brick); }
.map-pin.map-cluster span { width:40px; height:40px; border:2px solid #fff; outline:1px solid #99751e; color:var(--ink); background:var(--gold); font-size:11px; font-variant-numeric:tabular-nums; }
.map-cluster:hover span { background:var(--gold); }
.map-cluster.is-selected span { outline:3px solid var(--brick); outline-offset:2px; }
.map-pin::after { content:attr(data-label); position:absolute; bottom:42px; left:50%; transform:translateX(-50%); width:max-content; max-width:190px; padding:7px 10px; color:white; background:var(--navy); font:700 12px/1.3 Arial,sans-serif; pointer-events:none; opacity:0; }
.map-pin:hover::after,.map-pin:focus-visible::after { opacity:1; }
.map-pin.near-right::after { transform:translateX(-90%); }
.map-pin.near-left::after { transform:translateX(-10%); }
.map-controls { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:0 16px 16px; margin-top:auto; }
.map-controls button { min-width:44px; min-height:44px; border:1px solid #9baeb5; background:#fff; color:var(--ink); padding:8px 12px; font-weight:800; }
.map-controls button:hover:not(:disabled) { background:var(--navy); color:#fff; }
.map-controls button:disabled { opacity:.4; cursor:default; }
.map-controls span { font-size:12px; color:#445c67; margin-left:auto; }
.map-detail { padding:25px 23px; min-width:0; display:flex; flex-direction:column; align-items:start; }
.map-detail-top { display:flex; justify-content:space-between; align-items:center; width:100%; gap:10px; margin-bottom:25px; }
.map-detail-top .eyebrow { color:var(--brick); letter-spacing:.04em; }
.map-detail h3 { font:800 28px/1.08 Georgia,serif; letter-spacing:-.03em; margin:0 0 8px; overflow-wrap:anywhere; }
.map-detail-dot { color:var(--brick); font-size:24px; }
.map-detail-place { font-size:14px; line-height:1.5; margin:0 0 24px; color:#445c67; }
.map-makes { border-top:1px solid var(--line); padding-top:16px; width:100%; }
.map-makes span { font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.map-makes strong { display:block; margin-top:8px; font:800 23px/1.1 Georgia,serif; letter-spacing:-.02em; }
.map-description { font-size:14px; line-height:1.55; margin:15px 0 20px; }
.map-maker-link { color:var(--brick); font-weight:800; font-size:13px; text-underline-offset:4px; padding:10px 0; }
.map-sources { width:100%; border-top:1px solid var(--line); margin-top:17px; padding-top:8px; font-size:12px; line-height:1.55; }
.map-sources summary { cursor:pointer; padding:10px 0; font-weight:700; }
.map-sources p { margin:10px 0; }
.map-sources a { text-underline-offset:3px; }
.map-detail-step { display:flex; justify-content:space-between; width:100%; gap:8px; padding-top:24px; margin-top:auto; }
.map-detail-step button { border:1px solid #9baeb5; background:transparent; color:var(--ink); min-height:44px; padding:10px 12px; font-size:12px; font-weight:800; }
.map-detail-step button:hover:not(:disabled) { background:var(--soft); }
.map-detail-step button:disabled { opacity:.45; cursor:default; }
.map-footnote { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 18px; border-top:1px solid var(--line); font-size:11px; color:#445c67; }
.map-footnote a { text-underline-offset:3px; }
.map-list-heading { display:flex; justify-content:space-between; align-items:baseline; gap:15px; margin:28px 0 12px; }
.map-list-heading h3 { font:800 24px/1.1 Georgia,serif; margin:0; }
.map-list-heading a { color:var(--brick); font-size:13px; font-weight:800; text-underline-offset:3px; }
.map-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.map-list button { display:flex; align-items:center; gap:12px; text-align:left; width:100%; height:100%; min-height:92px; border:1px solid var(--line); background:#fff; color:var(--ink); padding:14px; }
.map-list button:hover { border-color:var(--navy); }
.map-list button[aria-pressed="true"] { border-color:var(--brick); box-shadow:inset 4px 0 var(--brick); }
.map-list-number { flex:none; width:28px; height:28px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:11px; font-weight:800; }
.map-list button[aria-pressed="true"] .map-list-number { background:var(--brick); border-color:var(--brick); color:#fff; }
.map-list strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.map-list small { display:block; margin-top:5px; color:#445c67; font-size:12px; line-height:1.35; }
.map-empty { padding:25px; border:1px solid var(--line); background:white; }
.map-empty strong { display:block; font:800 24px Georgia,serif; margin-bottom:10px; }
.map-empty p { font-size:14px; line-height:1.5; }
.map-directory-status { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px; font-size:13px; }
.map-directory-status p { margin:0; }
.map-pagination { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:20px 0; }
.map-pagination button { min-height:44px; padding:10px 14px; border:1px solid #899ca4; color:var(--ink); background:white; font-weight:700; font-size:13px; }
.map-pagination button:hover:not(:disabled) { color:white; background:var(--navy); }
.map-pagination button:disabled { opacity:.4; cursor:default; }
.map-pagination span { font-size:12px; text-align:center; }
.map-data-note { margin-top:24px; border-top:1px solid var(--line); padding-top:12px; color:#445c67; font-size:12px; line-height:1.6; }
.map-data-note summary { cursor:pointer; padding:10px 0; font-weight:700; }
.map-data-note p { max-width:850px; }
#map-loading { min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid var(--line); background:#fff; text-align:center; padding:25px; }
#map-loading a { font-size:13px; color:var(--brick); }
@media(min-width:1200px) { .map-pin span { width:25px; height:25px; } }
@media(max-width:1000px) { .map-layout { grid-template-columns:minmax(0,1fr) 290px; } .map-detail { padding:20px; } .map-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .map-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); } .map-search-label { grid-column:1/-1; } .map-clear { grid-column:1/-1; justify-self:end; min-height:30px; padding-block:4px; } }
@media(max-width:760px) { .map-layout { grid-template-columns:1fr; } .map-canvas { border-right:0; border-bottom:1px solid var(--line); } .map-detail-top { margin-bottom:15px; } .map-detail-step { padding-top:16px; } .map-detail-place { margin-bottom:15px; } .map-controls span { max-width:140px; text-align:right; } }
@media(max-width:450px) { .map-toolbar { gap:12px 8px; } .map-toolbar input,.map-toolbar select { font-size:16px; } .map-list { grid-template-columns:1fr; } .map-topline { padding:12px; align-items:start; } .map-topline span { max-width:100px; text-align:right; line-height:1.4; } .map-controls { padding:0 10px 12px; gap:5px; } .map-controls span { font-size:11px; max-width:90px; } .map-list-heading { align-items:start; } .map-list-heading a { max-width:125px; text-align:right; line-height:1.4; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
