/* Shared styles for the geopartners.ai marketing pages (home, trade and answer pages, 404).
   Tokens on :root; one accent (amber) for actions. */

:root{
  --paper:#faf7f2;
  --paper-2:#ffffff;
  --paper-3:#f3eee6;
  --ink:#14312b;
  --ink-soft:#42584f;
  --ink-faint:#5c6e65;
  --rule:#ddd5c8;
  --rule-soft:#e8e1d6;
  --amber:#b8651b;
  --amber-ink:#a2570f;
  --amber-dark:#94500f;
  --amber-tint:#f6ece1;
  --bar:#d9d3ca;
  --bar-soft:#e4dfd7;
  --shadow:0 1px 2px rgba(20,49,43,.05), 0 8px 24px rgba(20,49,43,.06);
  --max:1080px;
  --font:"Instrument Sans","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.65;
  font-feature-settings:"kern" 1;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

a{color:var(--amber-ink);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration:underline;color:var(--amber-dark)}

:focus-visible{outline:2px solid var(--amber-ink);outline-offset:3px;border-radius:2px}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--ink);color:var(--paper);
  padding:12px 18px;border-radius:0 0 6px 0;z-index:50;font-weight:600;
}
.skip:focus{left:0}
.skip:hover{color:var(--paper);text-decoration:none}

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--rule-soft);
  background:var(--paper);
  position:sticky;top:0;z-index:20;
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;min-height:66px;
}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}
.brand:hover{text-decoration:none;color:var(--ink)}
.brand img{width:28px;height:28px;object-fit:contain;display:block}
.brand span{
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:14px;
}
.header-link{font-weight:600;font-size:15px}

/* ---------- type ---------- */
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.1}
h1{font-size:clamp(36px,6vw,60px);letter-spacing:-.033em;line-height:1.03;max-width:16ch}
h2{font-size:clamp(26px,3.4vw,36px);letter-spacing:-.025em}
h3{font-size:19px;letter-spacing:-.012em;line-height:1.3}
p{margin:0}

.lede{font-size:18px;line-height:1.6;color:var(--ink-soft);max-width:60ch}
.body{font-size:16px;color:var(--ink-soft);max-width:66ch}
.eyebrow{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--ink-faint);margin-bottom:14px;
}


/* ---------- sections ---------- */
section{padding:76px 0;border-top:1px solid var(--rule-soft)}
section:first-of-type{border-top:0}
.section-head{max-width:66ch;margin-bottom:40px}
.section-head h2{margin-bottom:16px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--amber-ink);color:#fff;
  font-family:inherit;font-size:16px;font-weight:600;
  padding:14px 26px;border:1px solid var(--amber-ink);border-radius:6px;
  cursor:pointer;transition:background .15s ease,border-color .15s ease;
}
.btn:hover{background:var(--amber-dark);border-color:var(--amber-dark);color:#fff;text-decoration:none}
.btn-quiet{
  font-size:16px;font-weight:500;color:var(--ink-soft);
  text-decoration:underline;text-underline-offset:4px;
  text-decoration-color:var(--rule);
}
.btn-quiet:hover{color:var(--ink);text-decoration-color:var(--ink-faint)}

/* ---------- hero ---------- */
.hero{padding:76px 0 84px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:56px;align-items:start}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}
.hero-copy .lede{margin-top:24px}

.example-label{
  font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:600;color:var(--ink-faint);margin-bottom:16px;
}
.cards{display:grid;grid-template-columns:1fr;gap:22px}

.card{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:10px;
  box-shadow:var(--shadow);
  padding:18px;
}
.card-caption{
  font-size:13.5px;line-height:1.5;color:var(--ink-faint);
  margin-top:12px;padding:0 4px;
}

.card-chrome{
  display:flex;align-items:center;gap:6px;
  padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--rule-soft);
}
.dot{width:7px;height:7px;border-radius:50%;background:var(--bar-soft)}
.card-chrome .tag{
  margin-left:auto;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:600;
}

.bubble-user{
  margin-left:auto;max-width:86%;
  background:var(--paper-3);border:1px solid var(--rule-soft);
  border-radius:12px 12px 4px 12px;
  padding:11px 14px;font-size:14.5px;line-height:1.45;color:var(--ink);
}
.bubble-bot{
  margin-top:14px;max-width:94%;
  border-radius:12px 12px 12px 4px;
  font-size:14.5px;line-height:1.45;color:var(--ink);
}
.bar{height:11px;border-radius:5px;background:var(--bar);display:block}
.bar-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:11px}
.bar-list li{display:flex;align-items:center;gap:10px}
.bar-num{
  font-size:12px;color:var(--ink-faint);font-weight:600;
  width:12px;flex:none;line-height:1;
}

.searchfield{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--rule);border-radius:22px;
  padding:9px 16px;font-size:14.5px;color:var(--ink);
  background:var(--paper-2);
}
.searchfield .glass{
  width:12px;height:12px;border:1.5px solid var(--ink-faint);border-radius:50%;
  flex:none;position:relative;
}
.searchfield .glass::after{
  content:"";position:absolute;right:-4px;bottom:-3px;
  width:5px;height:1.5px;background:var(--ink-faint);
  transform:rotate(45deg);border-radius:1px;
}
.results{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:18px}
.results .bar-title{height:11px;border-radius:5px;background:var(--bar)}
.results .bar-url{height:8px;border-radius:4px;background:var(--bar-soft);margin-top:7px}

/* ---------- steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:34px}
.steps li{border-top:2px solid var(--ink);padding-top:16px}
.step-n{
  display:block;font-size:13px;font-weight:700;letter-spacing:.1em;
  color:var(--amber-ink);margin-bottom:10px;
}
.steps h3{margin-bottom:8px}
.steps p{font-size:15px;color:var(--ink-soft);line-height:1.55}

/* ---------- band ---------- */
.band{display:grid;grid-template-columns:1fr;gap:44px}
.band .claim{
  font-size:19px;font-weight:600;line-height:1.35;letter-spacing:-.015em;
  margin:14px 0 16px;max-width:30ch;
}
.band p.body + p.body{margin-top:12px}
.band h2{font-size:clamp(23px,2.6vw,28px)}

/* ---------- chips ---------- */
.chip-group + .chip-group{margin-top:34px}
.chip-label{
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;color:var(--ink-faint);margin-bottom:14px;
}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{
  border:1px solid var(--rule);border-radius:100px;
  padding:7px 16px;font-size:14.5px;color:var(--ink);background:var(--paper-2);
}
.chips.counties li{font-weight:600}

/* ---------- not-sold ---------- */
.notsold{background:var(--paper-3);border-top:1px solid var(--rule)}
.notsold dl{
  margin:0;display:grid;grid-template-columns:1fr;gap:0;
}
.notsold .item{padding:26px 0;border-top:1px solid var(--rule)}
.notsold dt{
  font-size:18px;font-weight:600;letter-spacing:-.012em;line-height:1.35;
  margin-bottom:8px;
}
.notsold dd{margin:0;font-size:15.5px;color:var(--ink-soft);line-height:1.6}
.notsold .closing{
  margin-top:34px;padding-top:26px;border-top:1px solid var(--rule);
  font-size:17px;color:var(--ink);max-width:62ch;line-height:1.55;
}

/* ---------- form ---------- */
.form-section{background:var(--ink);color:var(--paper);border-top:0}
.form-section h2{color:var(--paper)}
.form-section .lede{color:#c6d5ce}
.form-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
.form-card{
  background:var(--paper);border-radius:10px;padding:28px 24px;
  border:1px solid rgba(255,255,255,.08);
}
.field + .field{margin-top:18px}
.field label{
  display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:7px;
}
.field input{
  width:100%;font-family:inherit;font-size:16px;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--rule);border-radius:6px;
  padding:12px 14px;transition:border-color .15s ease;
}
.field input::placeholder{color:#707f78}
.field input:hover{border-color:var(--ink-faint)}
.field input:focus{border-color:var(--amber-ink);outline:2px solid var(--amber-ink);outline-offset:1px}
.form-card .btn{margin-top:24px;width:100%}
.under-btn{font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin-top:16px}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#b9cbc3;padding:0 0 56px}
.site-footer .wrap{
  border-top:1px solid rgba(255,255,255,.12);padding-top:28px;
  display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px;align-items:center;
}
.site-footer a{color:#e7d3bd}
.site-footer a:hover{color:#fff}
.site-footer .sep{color:rgba(255,255,255,.3)}

/* ---------- responsive ---------- */
@media (min-width:760px){
  .wrap{padding:0 32px}
  section{padding:92px 0}
  .hero{padding:88px 0 96px}
  .cards{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;gap:34px 30px}
  .band{grid-template-columns:1fr 1fr;gap:56px}
  .notsold dl{grid-template-columns:1fr 1fr;column-gap:44px}
  .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px}
}
@media (min-width:1000px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:56px;align-items:center}
  .steps{grid-template-columns:repeat(4,1fr);gap:30px}
  .cards{grid-template-columns:1fr}
  .hero h1{font-size:clamp(44px,4.6vw,60px)}
}

.hero-guard{font-size:14.5px;line-height:1.55;margin-top:18px;color:var(--ink-faint);max-width:52ch}
.site-header nav{display:flex;align-items:center;gap:22px}
.site-header nav a.quiet{color:var(--ink-soft);font-weight:500;font-size:15px}
.site-header nav a.quiet:hover{color:var(--ink)}
@media (max-width:640px){.site-header nav a.quiet{display:none}}
/* Five links since Pricing joined (24 Sep 2026): keep each on one line, and at tablet
   widths drop the report anchor and How search works (28 Sep 2026) so How it works,
   Pricing and the button fit without wrapping. */
.site-header nav a{white-space:nowrap}
@media (max-width:800px){.site-header nav a.quiet[href$="#report"],.site-header nav a.quiet[href="/learn"]{display:none}}

/* ---------- report card ---------- */
.report{background:var(--paper-2);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.report-top{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;align-items:baseline;padding:18px 22px;border-bottom:1px solid var(--rule)}
.report-top strong{font-size:17px;letter-spacing:-.01em}
.report-top span{font-size:13px;color:var(--ink-faint)}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:1fr;gap:6px 22px;padding:16px 22px;border-top:1px solid var(--rule-soft)}
.rows li:first-child{border-top:0}
.row-name{font-weight:600;font-size:15.5px;line-height:1.35}
.row-name small{display:block;font-weight:400;font-size:13.5px;color:var(--ink-faint);margin-top:2px}
.row-text{font-size:15px;color:var(--ink-soft);line-height:1.55}
.status{display:inline-block;justify-self:start;font-size:12px;font-weight:600;letter-spacing:.04em;border-radius:100px;padding:3px 10px;white-space:nowrap;border:1px solid}
.status.work{color:#8a3b12;background:#fbeee4;border-color:#efcdb4}
.status.good{color:#23573f;background:#e8f2ec;border-color:#c3dccd}
.status.unknown{color:#4f5a55;background:#eef0ee;border-color:#d6dbd8}
.report-foot{padding:16px 22px;background:var(--paper-3);border-top:1px solid var(--rule);font-size:14.5px;color:var(--ink-soft)}
@media (min-width:860px){.rows li{grid-template-columns:230px 104px 1fr;align-items:baseline}}

/* ---------- work ---------- */
.work{display:grid;grid-template-columns:1fr;gap:28px}
.work-col{background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:26px 24px}
.work-col h3{margin-bottom:14px}
.work-col ul{margin:0;padding:0;list-style:none;display:grid;gap:14px}
.work-col li{font-size:15px;color:var(--ink-soft);line-height:1.55;padding-left:18px;position:relative}
.work-col li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--amber-ink)}
.work-col li strong{color:var(--ink);font-weight:600}
.work-note{margin-top:28px}
@media (min-width:860px){.work{grid-template-columns:1fr 1fr}}

/* ---------- form states ---------- */
.field .opt{font-weight:400;color:var(--ink-faint)}
.field input[aria-invalid="true"]{border-color:#b3261e}
.form-status{margin-top:14px;font-size:14.5px;line-height:1.5;min-height:1em}
.form-status.is-error{color:#b3261e}
.form-done{background:var(--paper);border-radius:10px;padding:32px 26px;color:var(--ink)}
.form-done h3{margin-bottom:10px}
.form-done p{color:var(--ink-soft)}
.btn[disabled]{opacity:.7;cursor:progress}

.cats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:14px}
.cats li{background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:18px 20px}
.cats strong{display:block;font-size:16.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}
.cats span{font-size:14.5px;color:var(--ink-soft);line-height:1.5}
@media (min-width:760px){.cats{grid-template-columns:repeat(3,1fr)}}

/* ---------- trade and answer pages ---------- */
.doc{max-width:760px;padding-top:56px;padding-bottom:40px}
.doc .eyebrow a{color:var(--ink-faint)}
.doc h1{max-width:22ch;margin-bottom:18px}
.doc .lede{margin-bottom:8px}
.doc-short{background:var(--paper-2);border:1px solid var(--rule);border-left:3px solid var(--amber-ink);border-radius:0 10px 10px 0;padding:16px 20px;margin:28px 0 8px}
.doc-short p:last-child{font-size:17px;line-height:1.55;color:var(--ink)}
.doc-sec{padding:0;border:0;margin-top:40px;scroll-margin-top:90px}
.doc-sec h2{font-size:clamp(22px,2.6vw,27px);margin-bottom:12px}
.doc-sec p{font-size:16.5px;color:var(--ink-soft);line-height:1.65}
.doc-sec p+p{margin-top:12px}
.doc-list,.q-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.doc-list li{font-size:16px;color:var(--ink-soft);line-height:1.6;padding-left:18px;position:relative}
.doc-list li::before{content:"";position:absolute;left:0;top:.65em;width:7px;height:7px;border-radius:2px;background:var(--amber-ink)}
.doc-list li strong{color:var(--ink)}
.q-list li{background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:10px 14px;font-size:16px;color:var(--ink)}
.doc-cta{background:var(--ink);color:var(--paper);border-radius:12px;padding:28px 26px;margin-top:48px}
.doc-cta h2{color:var(--paper);font-size:24px;margin-bottom:10px}
.doc-cta p{color:#c6d5ce;font-size:16px;margin-bottom:18px}
.doc-related{margin-top:36px}
.doc-related ul,.doc-sources ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.doc-sources{margin-top:32px;border-top:1px solid var(--rule);padding-top:18px}
.doc-sources li{font-size:13.5px;color:var(--ink-faint);line-height:1.5}
.site-footer--links .foot-cols{display:grid;grid-template-columns:1fr;gap:24px;width:100%}
.site-footer--links .wrap{display:block}
.site-footer--links ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.site-footer--links li{font-size:14px}
.foot-h{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink-faint)}
.site-footer--links .foot-h{color:#9fb5ac}
.foot-line{margin-top:24px;font-size:13px}
@media (min-width:760px){.site-footer--links .foot-cols{grid-template-columns:repeat(3,1fr)}}
.doc-early{margin-top:18px;font-size:16px;color:var(--ink-soft)}
.doc-early a{font-weight:600}
.doc-founder{margin-top:36px;padding-top:18px;border-top:1px solid var(--rule);font-size:15px;color:var(--ink-soft);line-height:1.6}
.cat-link{display:block;color:inherit}
.cat-link:hover{text-decoration:none;color:inherit}
.cats li:has(.cat-link){padding:0}
.cats .cat-link{padding:18px 20px;border-radius:10px;transition:background .15s ease}
.cats .cat-link:hover{background:var(--amber-tint)}
.cats .cat-link strong::after{content:" \203A";color:var(--amber-ink)}
.founder-line{margin-top:14px;color:var(--ink)}

/* caption above its card, since the cards are examples with nothing to read */
.card-caption--top{margin:0 0 10px;padding:0 2px}

/* the whole category box is the hit area, so the hover tint fills it */
.cats li:has(.cat-link){display:flex}
.cats .cat-link{display:flex;flex-direction:column;justify-content:flex-start;width:100%;height:100%}

/* ---------- long-read pages: part dividers and side notes ---------- */
.doc-part{scroll-margin-top:90px;margin:56px 0 -8px;padding-top:18px;border-top:1px solid var(--rule);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink-faint)}
.doc-part+.doc-sec{margin-top:24px}
.doc-note{margin-top:16px;padding:14px 18px;background:var(--paper-2);border:1px solid var(--rule);border-left:3px solid var(--amber-ink);border-radius:0 10px 10px 0;font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.doc code{font-size:.92em;background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;padding:1px 5px}

/* ---------- contact lines (phone and email, 24 Sep 2026) ---------- */
.form-contact{margin-top:14px;font-size:16px;color:var(--ink-soft)}
.form-contact a{font-weight:600}
/* Inside the dark .doc-cta box: keep its light text, links in paper. */
.doc-cta .doc-cta-contact{margin:14px 0 0;font-size:15px}
.doc-cta .doc-cta-contact a{color:var(--paper);font-weight:600;text-decoration:underline}
.doc-meta{margin:8px 0 16px;font-size:14px;color:var(--ink-faint)}

/* ---------- the report's five tabs, and eight trade categories (28 Sep 2026) ---------- */
.report--after-steps{margin-top:44px}
.cats-note{margin-top:20px}
@media (min-width:1000px){
  .steps.five{grid-template-columns:repeat(5,1fr);gap:26px}
  .cats{grid-template-columns:repeat(4,1fr)}
}
/* The how-it-works page numbers its steps in the heading itself. */
.doc-step{display:block;font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--amber-ink);margin-bottom:6px}
