/* Map Measurer — shared styles for content, guide and trust pages.
   The interactive tool (index.html) keeps its own inline styling; this
   sheet styles every other page and the shared header/footer. */

:root{
  --ink:#0f1115;
  --ink-2:#3a414a;
  --muted:#5b6470;
  --faint:#9aa3ad;
  --green:#0e9f6e;
  --green-d:#0b7d57;
  --line:#eef0f2;
  --bg:#ffffff;
  --bg-soft:#f7f8f9;
  --maxw:760px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Sora,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;line-height:1.6;
}
::selection{background:var(--green);color:#fff}
img{max-width:100%;height:auto}

/* ---------- header ---------- */
.site-nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:13px 22px;
  background:rgba(255,255,255,.85);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--ink)}
.brand-name{font:800 17px Sora,sans-serif;letter-spacing:-.02em;color:var(--ink)}
.nav-links{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.nav-links a{
  text-decoration:none;color:var(--muted);font:600 14px Sora,sans-serif;
  padding:8px 11px;border-radius:9px;transition:background .15s,color .15s;
}
.nav-links a:hover{background:#f3f5f6;color:var(--ink)}
.nav-links a.cta{background:var(--green);color:#fff}
.nav-links a.cta:hover{background:var(--green-d);color:#fff}

/* ---------- layout ---------- */
.container{max-width:var(--maxw);margin:0 auto;padding:44px 22px 72px}
.container-wide{max-width:1080px;margin:0 auto;padding:44px 22px 72px}

.breadcrumb{font:500 13px Sora,sans-serif;color:var(--faint);margin:0 0 22px}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--green)}

.eyebrow{font:700 12.5px Sora,sans-serif;color:var(--green);text-transform:uppercase;letter-spacing:.09em;margin:0 0 12px}

/* ---------- prose ---------- */
.prose h1{font:800 clamp(28px,4.2vw,42px)/1.12 Sora,sans-serif;letter-spacing:-.03em;margin:0 0 14px;color:var(--ink);text-wrap:balance}
.prose .lede{font:400 clamp(16px,1.7vw,19px)/1.6 Sora,sans-serif;color:var(--muted);margin:0 0 30px}
.prose h2{font:700 clamp(21px,2.6vw,27px)/1.25 Sora,sans-serif;letter-spacing:-.02em;margin:42px 0 12px;color:var(--ink)}
.prose h3{font:700 18px Sora,sans-serif;letter-spacing:-.01em;margin:28px 0 8px;color:var(--ink)}
.prose p{font:400 16.5px/1.72 Sora,sans-serif;color:var(--ink-2);margin:0 0 16px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 16px}
.prose li{font:400 16.5px/1.7 Sora,sans-serif;color:var(--ink-2);margin-bottom:9px}
.prose a{color:var(--green-d);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.prose a:hover{color:var(--green)}
.prose strong{color:var(--ink);font-weight:700}
.prose code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.92em;background:#f1f3f5;padding:1px 6px;border-radius:6px;color:#3a414a}

.callout{background:var(--bg-soft);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:12px;padding:16px 20px;margin:22px 0}
.callout p{margin:0;font-size:15.5px;color:var(--ink-2)}

.note{font:500 14px Sora,sans-serif;color:var(--faint);font-style:italic}

.tool-cta{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;text-decoration:none;font:700 15px Sora,sans-serif;padding:13px 22px;border-radius:12px;margin:8px 0 4px;box-shadow:0 8px 18px -8px rgba(14,159,110,.55)}
.tool-cta:hover{background:var(--green-d)}

.byline{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font:500 14px Sora,sans-serif;color:var(--faint)}

/* ---------- step list ---------- */
.steps{counter-reset:step;list-style:none;padding:0;margin:0 0 16px}
.steps li{position:relative;padding-left:42px;margin-bottom:16px;font:400 16.5px/1.7 Sora,sans-serif;color:var(--ink-2)}
.steps li::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:8px;background:#eef7f2;color:var(--green-d);font:700 14px 'JetBrains Mono',monospace;display:flex;align-items:center;justify-content:center}

/* ---------- guide hub cards ---------- */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:8px}
.hub-card{display:block;text-decoration:none;background:#fff;border:1px solid #ecedef;border-radius:16px;padding:24px;transition:border-color .15s,box-shadow .15s,transform .15s}
.hub-card:hover{border-color:#d8eee3;box-shadow:0 14px 30px -18px rgba(15,17,21,.25);transform:translateY(-2px)}
.hub-card h3{font:700 18px Sora,sans-serif;color:var(--ink);margin:0 0 8px;letter-spacing:-.01em}
.hub-card p{font:400 14.5px/1.6 Sora,sans-serif;color:var(--muted);margin:0}
.hub-card .read{display:inline-block;margin-top:12px;font:700 13px Sora,sans-serif;color:var(--green-d)}

/* ---------- ad slot ---------- */
.ad-slot{display:none;max-width:var(--maxw);margin:34px auto 0;text-align:center;min-height:1px}
.ad-slot.is-live{display:block}
.ad-label{font:600 10px Sora,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#c3c9d0;margin-bottom:6px}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#fff;padding:48px 22px 38px;margin-top:40px}
.foot-inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.foot-brand{display:flex;align-items:center;gap:11px;font:700 15px Sora,sans-serif}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.foot-links a{color:#cbd0d6;text-decoration:none;font:600 13.5px Sora,sans-serif}
.foot-links a:hover{color:#fff}
.foot-legal{font:400 12.5px Sora,sans-serif;color:#8b929b;max-width:680px}
.foot-legal a{color:#cbd0d6;text-decoration:none}

/* ---------- consent banner ---------- */
#mm-consent{
  position:fixed;z-index:9000;left:14px;right:14px;bottom:14px;max-width:560px;
  margin:0 auto;background:var(--ink);color:#fff;border-radius:16px;
  box-shadow:0 18px 50px -16px rgba(15,17,21,.6);padding:18px 20px;
}
#mm-consent .cc-text{font:500 13.5px/1.55 Sora,sans-serif;color:#e7eaee}
#mm-consent .cc-text a{color:var(--green);text-decoration:none}
#mm-consent .cc-row{display:flex;gap:10px;margin-top:14px}
#mm-consent button{flex:1;padding:10px;border-radius:10px;font:600 13px Sora,sans-serif;cursor:pointer;border:1px solid #2a2f37}
#mm-consent .cc-decline{background:transparent;color:#cbd0d6}
#mm-consent .cc-accept{flex:1.3;border:none;background:var(--green);color:#fff}

@media (max-width:560px){
  .nav-links a{padding:7px 9px;font-size:13px}
}

/* ---------- measuring tool (homepage) ---------- */
.tool-stage{display:grid;grid-template-columns:1fr 332px;gap:18px;align-items:start}
.map-stage{position:relative;width:100%;height:74vh;min-height:520px;border-radius:24px;overflow:hidden;border:1px solid #e6e8eb;box-shadow:0 40px 80px -40px rgba(15,17,21,.32),0 2px 10px rgba(15,17,21,.05)}
.tool-panel{display:flex;flex-direction:column;gap:14px;max-height:74vh;overflow:auto}
.panel-card{background:#fff;border:1px solid #e9ebee;border-radius:17px;box-shadow:0 1px 2px rgba(15,17,21,.03);padding:16px 17px}
.rd-label{font:600 10.5px Sora,sans-serif;color:#9aa3ad;text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.rd-big{font:700 clamp(26px,3.6vw,31px)/1 'JetBrains Mono',monospace;color:#0f1115;letter-spacing:-.03em}
.rd-sub{font:600 15px 'JetBrains Mono',monospace;color:#3a414a}

.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:13px;border:1px solid #e6e8eb;background:#fff;color:#5b6470;font:600 12.5px Sora,sans-serif;cursor:pointer;transition:all .15s}
.seg-btn:hover{border-color:#cfe9dd;background:#f6faf8}
.seg-btn.active{border-color:#0e9f6e;background:#0e9f6e;color:#fff;box-shadow:0 8px 18px -8px rgba(14,159,110,.5)}

.pill-wrap{display:flex;background:#f1f3f5;border-radius:10px;padding:3px;gap:2px}
.pill{padding:6px 13px;border-radius:8px;border:none;background:transparent;color:#7a828c;font:600 11.5px 'JetBrains Mono',monospace;cursor:pointer;transition:all .15s}
.pill.active{background:#0f1115;color:#fff}

.base-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.base-label{font:600 10.5px Sora,sans-serif;color:#9aa3ad;text-transform:uppercase;letter-spacing:.07em;margin-right:auto}
.base-btn{border:1px solid #e6e8eb;background:#fff;color:#5b6470;font:600 11.5px Sora,sans-serif;padding:6px 10px;border-radius:8px;cursor:pointer;transition:all .15s}
.base-btn:hover{background:#f6f8f9}
.base-btn.active{background:#0f1115;color:#fff;border-color:#0f1115}

.panel-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.panel-actions button{padding:10px;border-radius:11px;border:1px solid #e6e8eb;background:#fff;color:#3a414a;font:600 12.5px Sora,sans-serif;cursor:pointer;transition:all .15s}
.panel-actions button:hover{background:#f6f8f9;border-color:#d8dde2}
.panel-actions .full{grid-column:1 / -1}

.tool-caption{text-align:center;font:500 13px Sora,sans-serif;color:#9aa3ad;margin:18px auto 0;max-width:820px}

#searchWrap{position:absolute;z-index:1200;top:14px;left:14px;width:min(380px,calc(100% - 28px))}
#coord{position:absolute;z-index:1100;left:14px;bottom:36px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border:1px solid #e9ebee;border-radius:9px;padding:6px 11px;font:500 11px 'JetBrains Mono',monospace;color:#5b6470}
#hint{position:absolute;z-index:1000;top:70px;left:50%;transform:translateX(-50%);align-items:center;gap:9px;background:#0f1115;color:#fff;padding:9px 16px;border-radius:999px;font:600 12.5px Sora,sans-serif;box-shadow:0 10px 24px -8px rgba(15,17,21,.5);white-space:nowrap;animation:fadeUp .3s ease}

@media (max-width:900px){
  .tool-stage{grid-template-columns:1fr}
  .map-stage{height:56vh;min-height:380px;border-radius:18px}
  .tool-panel{max-height:none;overflow:visible}
  #coord{display:none!important}
}

/* snap-to-roads toggle */
#snapRow{align-items:center;justify-content:space-between;gap:10px;margin-top:14px;user-select:none}
.switch{position:relative;width:42px;height:24px;border-radius:999px;border:none;background:#d8dde2;cursor:pointer;transition:background .15s;flex:none;padding:0}
.switch .knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,17,21,.2);transition:left .15s}
.switch.on{background:#0e9f6e}
.switch.on .knob{left:21px}

/* editable vertex handles + on-map labels + pace chips (tool) */
.mm-vertex{background:transparent;border:0;cursor:grab}
.mm-vertex:active{cursor:grabbing}
.mm-label{background:transparent;border:0}
.pace-chip{border:1px solid #e6e8eb;background:#fff;color:#5b6470;font:600 11.5px 'JetBrains Mono',monospace;padding:5px 9px;border-radius:8px;cursor:pointer;transition:all .15s}
.pace-chip:hover{background:#f6f8f9;border-color:#cfe9dd}

/* print: keep the map + readouts, drop the rest */
@media print {
  nav, .site-nav, #tools, #how, #understanding, #faq, .ad-slot, footer, .site-footer, .tool-caption,
  #searchWrap, #btnFull, #hint, #placeBar, .leaflet-control-container, .seg, #pathOps, #snapRow,
  #labelRow, #paceRow, #paceCard, .base-row, .panel-actions, #exportRow, #mm-consent { display:none !important; }
  .map-stage { height:60vh !important; box-shadow:none !important; }
  .tool-panel { max-height:none !important; overflow:visible !important; }
}

/* embeddable widget mode (?embed=1) */
body.embed nav, body.embed #tools, body.embed #how, body.embed #understanding, body.embed #faq,
body.embed .ad-slot, body.embed footer, body.embed .tool-caption { display:none !important; }
body.embed section:first-of-type { padding:12px !important; max-width:none !important; }
body.embed section:first-of-type > div:first-child { display:none !important; }
body.embed .map-stage { height:calc(100vh - 360px); min-height:320px }
