/* One continuous map canvas; the country card is a contextual overlay. */
.network-garden { position:relative; background:#f7f9f2; padding:clamp(5rem,8vw,8rem) 0; border-block:1px solid var(--line); scroll-margin-top:100px; }
.network-wrap { position:relative; z-index:3; }
.network-heading { text-align:center; margin:0 auto 3rem; }
.network-heading .eyebrow { font-size:.8125rem; letter-spacing:.14em; margin-bottom:1.2rem; }
.network-heading h2 { font-size:clamp(3rem,6vw,6rem); line-height:1.12; letter-spacing:-.045em; padding-bottom:.12em; }
.network-heading h2 em { color:var(--green); font-style:normal; }
.network-heading>p:last-child { font-size:1.125rem; line-height:1.6; color:var(--muted); margin-top:1rem; }
.network-toolbar { display:flex; align-items:center; gap:2rem; padding:1.25rem 0; border-block:1px solid #d5dfcd; }
.network-country-control { width:330px; max-width:100%; }
.network-country-label { display:block; font-size:.8125rem; color:var(--muted); margin-bottom:.3rem; }
.network-country { width:100%; min-height:48px; padding:.25rem 1.5rem .25rem 0; border:0; border-bottom:1px solid #8c9f81; border-radius:0; background:transparent; font-family:inherit; font-size:1.2rem; font-weight:500; line-height:1.4; color:var(--forest); text-overflow:ellipsis; }
.network-map-hint { color:var(--muted); font-size:.875rem; line-height:1.6; }
.network-reset { margin-left:auto; display:flex; align-items:center; gap:.7rem; min-height:48px; padding:.5rem 1rem; border:1px solid #bacbb0; border-radius:30px; color:var(--forest); background:transparent; font:inherit; font-size:.875rem; cursor:pointer; }
.network-reset[hidden], .network-popup[hidden], .network-map-key>span[hidden] { display:none; }
.network-canvas { position:relative; margin-top:1.5rem; background:radial-gradient(ellipse at 46% 40%,#f1f5e9,transparent 70%); }
.network-map { overflow:hidden; border-radius:4px; aspect-ratio:1.92; min-height:460px; }
.network-map svg { width:100%; height:100%; display:block; overflow:hidden; }
.network-map .map-country { fill:#dce6d1; stroke:#f7f9f2; stroke-width:1; cursor:pointer; transition:fill .18s; vector-effect:non-scaling-stroke; }
.network-map .map-country:hover { fill:#aac695; }
.network-map .map-country.has-distributor { fill:#789866; }
.network-map .map-country.seeking-partner { stroke:#538340; stroke-width:1; }
.network-map .map-country.is-selected { fill:var(--green); stroke:var(--forest); stroke-width:1.3; }
.network-map .map-country:focus { outline:none; }
.network-map .map-country:focus-visible { outline:none; stroke:#10391d; stroke-width:3; }
.network-map-label { position:absolute; left:1rem; bottom:1rem; display:flex; align-items:center; gap:1rem; pointer-events:none; color:var(--forest); font-size:.8125rem; }
.network-compass { display:grid; place-items:center; width:40px; height:40px; border:1px solid #b8c8ac; border-radius:50%; font-size:.75rem; letter-spacing:.1em; }
#network-map-country { max-width:32ch; background:#f7f9f2e6; padding:.4rem .6rem; border-radius:2px; }
.network-popup { position:absolute; z-index:2; top:1.5rem; right:1rem; width:min(370px,39%); max-height:calc(100% - 3rem); overflow-y:auto; overscroll-behavior:contain; padding:1.5rem; border:1px solid #d4dfca; border-top:3px solid var(--green); border-radius:4px 4px 36px 4px; background:#fff; box-shadow:0 14px 40px #1e401812; animation:network-card-in .25s ease-out; }
.network-popup-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.network-popup-top .eyebrow { font-size:.6875rem; letter-spacing:.12em; margin:0; }
.network-close { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; margin:-.5rem -.65rem -.25rem 0; border:0; background:transparent; border-radius:50%; color:var(--forest); font-size:1.6rem; cursor:pointer; }
.network-close:hover { background:#eef3e7; }
#network-popup-title { font-size:clamp(1.6rem,2.8vw,2.4rem); line-height:1.18; letter-spacing:-.035em; margin:.5rem 0 1rem; overflow-wrap:anywhere; }
.network-audiences { display:grid; grid-template-columns:1fr 1fr; gap:3px; padding:3px; border-radius:3px; background:#eff3e9; margin:0 0 1.3rem; }
.network-audiences button { min-height:48px; padding:.5rem .35rem; border:0; background:transparent; color:var(--forest); border-radius:2px; font:inherit; font-size:.8125rem; line-height:1.4; cursor:pointer; }
.network-audiences button[aria-pressed="true"] { background:var(--forest); color:white; }
.network-status { display:inline-block; font-size:.75rem; color:var(--green); padding:.3rem .5rem; background:#eff4e7; margin:0 0 .8rem; }
.network-status-open { background:var(--lime); color:var(--forest); }
.network-result h4 { font-size:1.5rem; letter-spacing:-.025em; line-height:1.2; margin:0 0 .8rem; }
.network-result-copy { font-size:.9375rem; line-height:1.6; color:var(--muted); margin:0 0 1.25rem; }
.network-result>.btn { display:flex; width:100%; justify-content:center; text-align:center; white-space:normal; min-height:48px; font-size:.875rem; padding:.85rem 1rem; }
.network-office { padding-top:1.1rem; margin-top:1.2rem; border-top:1px solid var(--line); }
.network-office-label { font-size:.875rem; font-weight:600; }
.network-office>p+p { font-size:.8125rem; color:var(--muted); margin-top:.3rem; }
.network-contact-links { display:flex; flex-wrap:wrap; column-gap:1rem; margin-top:.4rem; }
.network-contact-links .text-link { min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; overflow-wrap:anywhere; }
.network-distributor-card { padding:1rem 0; border-top:1px solid var(--line); }
.network-distributor-card h4 { font-size:1.15rem; margin:0; }
.network-distributor-location { font-size:.875rem; line-height:1.6; color:var(--muted); margin-top:.4rem; }
.network-partner-invite { display:block; background:none; border:0; padding:.75rem 0 0; margin-top:.4rem; color:var(--green); font:inherit; font-size:.875rem; line-height:1.5; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.network-map-footer { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.25rem 0 0; border-top:1px solid #d5dfcd; }
.network-map-caption { font-size:.8125rem; color:var(--muted); line-height:1.5; }
.network-map-key { display:flex; flex-wrap:wrap; gap:.75rem 1rem; font-size:.75rem; color:var(--muted); }
.network-map-key>span { display:flex; align-items:center; gap:.5rem; }
.network-map-key i { display:block; width:8px; height:8px; border-radius:50%; }
.key-selected { background:var(--green); }.key-listed { background:#789866; }.key-open { border:1.5px solid var(--green); }
.network-garden button:focus-visible,.network-country:focus-visible,.network-garden a:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.edge-branch.network-olive { left:-14px; top:85%; --branch-size:20vw; --stem-x:0%; --stem-y:5%; --branch-angle:-18deg; }
@keyframes network-card-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media(max-width:1100px) { .main-nav { gap:1.1rem; } }
@media(max-width:760px) { .network-garden { padding:4rem 0 6rem; }.network-heading { margin-bottom:2rem; }.network-heading h2 { font-size:clamp(2.8rem,10vw,4.5rem); }.network-heading>p:last-child { font-size:1rem; }.network-toolbar { flex-wrap:wrap; gap:.75rem; }.network-country-control { flex:1; min-width:180px; }.network-map-hint { display:none; }.network-reset { font-size:.75rem; padding:.5rem .7rem; }.network-map { min-height:0; aspect-ratio:1.3; }.network-map-label { top:0; bottom:auto; left:0; }.network-compass { display:none; }.network-popup { position:relative; top:auto; right:auto; width:100%; max-height:none; margin:0 0 1.5rem; padding:1.4rem; border-radius:4px 4px 28px 4px; }.network-canvas.is-exploring .network-map { aspect-ratio:1.4; }.network-map-footer { align-items:start; flex-direction:column; }.edge-branch.network-olive { --branch-size:30vw; top:auto; bottom:25px; } }
@media(prefers-reduced-motion:reduce) { .network-popup { animation:none; }.network-map .map-country { transition:none; } }
.motion-paused .network-popup { animation:none; }
@media print { .network-garden { padding:2rem 0; }.network-popup { position:static; width:100%; max-height:none; box-shadow:none; }.network-toolbar,.network-audiences,.network-close { display:none; } }
