:root{
  --ink:#0f1b2d;--ink-2:#44536a;--muted:#6b7a90;--line:#e3e8ef;--bg:#f7f9fc;--card:#fff;
  --brand:#d6283b;--brand-ink:#a81c2c;--accent:#0b6b5c;--wa:#1fa855;--feat:#fff4d6;--feat-ink:#7a5400;
  --r:14px;--shadow:0 1px 2px rgba(15,27,45,.06),0 4px 16px rgba(15,27,45,.05);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.55;
}
*{box-sizing:border-box}
body{margin:0}
a{color:var(--brand-ink);text-underline-offset:2px}
a:hover{color:var(--brand)}
h1,h2,h3{line-height:1.2;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4vw,2.5rem);margin:.2em 0 .4em}
h2{font-size:1.35rem;margin:2rem 0 .8rem}
h3{font-size:1.05rem;margin:.2rem 0}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.small{font-size:.875rem}.muted{color:var(--muted)}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
.ico{width:20px;height:20px;flex:none}

/* header */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.hdr{display:flex;align-items:center;gap:20px;min-height:64px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.15rem;color:var(--ink);text-decoration:none}
.logo-mark{background:var(--brand);color:#fff;border-radius:8px;padding:3px 7px;font-size:.95rem}
.nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.nav a{color:var(--ink-2);text-decoration:none;padding:8px 10px;border-radius:8px;font-size:.93rem;font-weight:500}
.nav a:hover,.nav a[aria-current]{background:var(--bg);color:var(--ink)}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font:inherit}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;padding:8px 20px 16px}
  .nav.open{display:flex}
}
.crumbs{font-size:.85rem;color:var(--muted);margin:18px 0 4px}
.crumbs a{color:var(--muted)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{color:#fff;filter:brightness(1.15)}
.btn-wa{background:var(--wa)}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{color:var(--ink);background:var(--bg)}

/* hero */
.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:center;padding:40px 0 16px}
.lead{font-size:1.08rem;color:var(--ink-2);max-width:68ch}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.checks{list-style:none;margin:0;padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.checks li{display:flex;gap:10px;align-items:center;padding:8px 0;font-weight:500}
.checks .ico{color:var(--accent)}
@media(max-width:800px){.hero{grid-template-columns:1fr}.page-head .cat-ico{display:none}}

/* cards */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.cat-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.cat-card:hover{transform:translateY(-2px);border-color:#c7d0dc;color:var(--ink)}
.cat-card .count{margin:.4rem 0 .2rem;color:var(--ink-2)}.cat-card .count b{color:var(--brand);font-size:1.2rem}
.cat-ico{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#fdecee;color:var(--brand);margin-bottom:8px}
.cat-ico.lg{width:56px;height:56px}.cat-ico.lg .ico{width:28px;height:28px}
.page-head{display:flex;gap:18px;align-items:flex-start;margin:8px 0 18px}

.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.partner{background:#fff;border:1px solid #f0dca6;border-radius:var(--r);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}
.partner p{margin:.2rem 0;color:var(--ink-2)}
.partner .btn{align-self:flex-start;margin-top:auto}
.partner.compact{margin:12px 0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 18px}
.partner.compact>p{flex:1 1 320px}
.partner.compact .btn{margin:0}
.partner-top{display:flex;gap:12px;align-items:center}
.avatar{width:48px;height:48px;border-radius:12px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;flex:none;overflow:hidden}
.avatar.lg{width:64px;height:64px;font-size:1.3rem}
.avatar img{width:100%;height:100%;object-fit:cover}
.badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:99px}
.badge-feat{background:var(--feat);color:var(--feat-ink)}
.callout{font-weight:600;color:var(--ink)!important}

/* CTA */
.cta{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;background:var(--ink);color:#fff;border-radius:var(--r);padding:22px 26px;margin:26px 0}
.cta h2{margin:0 0 4px;font-size:1.2rem;color:#fff}.cta p{margin:0;color:#c6d0de}

/* lists */
.link-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 20px}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:99px;text-decoration:none;color:var(--ink)}
.chips span{background:var(--bg);border-radius:99px;padding:0 7px;font-size:.8rem;color:var(--muted)}
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.area-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:4px 18px 12px}
.area-card h2{font-size:1.1rem}.area-card ul{padding-left:18px;margin:0}

/* directory table */
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%}
.dir th,.dir td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.93rem}
.dir th{background:#fafbfd;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.dir th button{all:unset;cursor:pointer}
.dir th button::after{content:" ↕";opacity:.4}
.dir th[aria-sort=ascending] button::after{content:" ↑";opacity:1}
.dir th[aria-sort=descending] button::after{content:" ↓";opacity:1}
.dir tbody tr:hover{background:#fafbfd}
.dir td:first-child a{font-weight:600;color:var(--ink);text-decoration:none}
.dir td:first-child a:hover{color:var(--brand)}
.wh{display:inline-block;font-size:.78rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin:1px 0;white-space:nowrap;font-variant-numeric:tabular-nums}
.wh b{color:var(--accent)}
.score{display:inline-block;font-weight:700;font-size:.85rem;padding:2px 9px;border-radius:99px;background:#e7f5f1;color:var(--accent)}
.score.s5{background:#f1f3f6;color:var(--ink-2)}
.score.s8{background:var(--accent);color:#fff}
@media(max-width:640px){
  .dir thead{display:none}
  .dir tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line)}
  .dir td{display:flex;gap:10px;border:0;padding:3px 0}
  .dir td::before{content:attr(data-label);flex:0 0 110px;color:var(--muted);font-size:.8rem}
  .dir td:first-child::before{display:none}
}
.filter{display:flex;gap:10px;align-items:center;margin:10px 0}
.filter input{flex:1;max-width:420px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit}

/* profile */
.profile-head{display:flex;gap:16px;align-items:center;margin:12px 0}
.profile-head h1{margin:.1em 0}
.profile-head .score{margin-left:auto;font-size:1rem;padding:6px 14px}
.facts dl{display:grid;grid-template-columns:200px 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin:0;overflow:hidden}
.facts dt,.facts dd{padding:11px 16px;border-bottom:1px solid var(--line);margin:0}
.facts dt{color:var(--muted);font-size:.9rem;background:#fafbfd}
@media(max-width:600px){.facts dl{grid-template-columns:1fr}.facts dt{border-bottom:0;padding-bottom:0;background:none}}
.svc{list-style:none;padding:0;columns:2 260px}
.svc li{display:flex;gap:8px;align-items:center;padding:4px 0;break-inside:avoid}
.svc .ico{color:var(--accent);width:18px;height:18px}
.note{background:var(--feat);border-radius:var(--r);padding:14px 18px;color:var(--feat-ink);margin:16px 0}

/* faq + prose */
.faq details{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:8px 0}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:.6rem 0 0;color:var(--ink-2)}
.prose{max-width:760px}
.prose table{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:12px 0}
.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.prose th{background:#fafbfd}
.byline{color:var(--muted);font-size:.9rem}
.guide-list article{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:4px 20px;margin:12px 0}
.guide-list h2{font-size:1.15rem}

/* form */
.form{display:grid;gap:12px;max-width:520px;margin:16px 0}
.form label{display:grid;gap:4px;font-weight:600;font-size:.9rem}
.form input,.form textarea{font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px}
.form-msg{padding:12px 16px;border-radius:10px;background:#e7f5f1;color:var(--accent)}

/* footer */
.site-footer{margin-top:64px;background:#fff;border-top:1px solid var(--line);padding:28px 0;color:var(--ink-2)}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}
.foot-links a{color:var(--ink);text-decoration:none;font-weight:500}
.wa-float{position:fixed;right:18px;bottom:18px;width:54px;height:54px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.2);z-index:30}
.wa-float .ico{width:26px;height:26px}
.wa-float:hover{color:#fff;transform:scale(1.05)}
.empty{background:#fff;border:1px dashed var(--line);border-radius:var(--r);padding:20px}

/* ===== v2: marketplace-style layout ===== */
:root{--brand:#d6283b;--ink:#13243a;--soft:#f3f6f9}
body{background:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.btn-sm{padding:8px 14px;font-size:.9rem}
.nav .nav-cta{background:var(--brand);color:#fff;margin-left:6px}
.nav .nav-cta:hover{background:var(--brand-ink);color:#fff}
.h2-lg{font-size:clamp(1.5rem,3vw,2rem);margin:3rem 0 1.2rem}
.ico.lg{width:34px;height:34px;color:var(--brand)}

/* hero */
.hero2{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center;padding:48px 0 24px}
.hero2 h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.03em;margin:0 0 .4em}
.hero2-art{width:100%;height:auto;border-radius:28px;box-shadow:0 20px 50px rgba(19,36,58,.15);aspect-ratio:1200/520;object-fit:cover}
.search{position:relative;display:flex;margin-top:22px;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:5px;max-width:520px;box-shadow:0 6px 20px rgba(19,36,58,.08)}
.search input{flex:1;border:0;outline:0;font:inherit;font-size:1.05rem;padding:10px 18px;background:transparent;min-width:0}
.search .btn{border-radius:999px;background:var(--brand)}
.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;list-style:none;margin:0;padding:6px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(19,36,58,.15);z-index:40;max-height:340px;overflow:auto}
.search-results a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none}
.search-results a:hover,.search-results a.active{background:var(--soft)}
.search-results small{color:var(--muted)}
@media(max-width:860px){.hero2{grid-template-columns:1fr;padding-top:28px}.hero2-art{order:-1;border-radius:20px}}

/* tabs */
.tabs-wrap{margin-top:28px}
.tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.tab{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 18px;min-width:96px;color:var(--ink-2);font-weight:600;font-size:.92rem;border-bottom:3px solid transparent;text-align:center}
.tab .ico{width:30px;height:30px}
.tab:hover{color:var(--ink)}
.tab[aria-selected=true]{color:var(--brand);border-color:var(--brand)}
.tab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.pill{display:inline-block;padding:9px 16px;border:1.5px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.93rem;background:#fff;transition:.15s}
.pill:hover{border-color:var(--ink);color:var(--ink);background:var(--soft)}
.panel-card{display:grid;grid-template-columns:1fr 1.3fr;background:var(--soft);border-radius:24px;overflow:hidden;align-items:center}
.panel-copy{padding:32px}
.panel-copy h3{font-size:1.5rem;margin-bottom:.5rem}
.panel-card img{width:100%;height:100%;object-fit:cover;min-height:260px}
@media(max-width:760px){.panel-card{grid-template-columns:1fr}.panel-card img{order:-1;min-height:180px;max-height:220px}}

/* project cards */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.proj{display:block;text-decoration:none;color:var(--ink)}
.proj img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;transition:transform .2s,box-shadow .2s}
.proj:hover img{transform:translateY(-3px);box-shadow:0 12px 28px rgba(19,36,58,.15)}
.proj h3{margin:.7rem 0 .1rem;font-size:1.1rem}
.proj p{margin:0}

/* stats */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;background:var(--ink);color:#fff;border-radius:24px;padding:30px;margin:3rem 0 0;text-align:center}
.stats b{display:block;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.02em}
.stats span{color:#b7c3d3;font-size:.9rem}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr);gap:20px}.stats div:last-child{grid-column:span 2}}

/* how it works */
.how{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:1rem}
.how img{width:100%;border-radius:24px}
.steps{list-style:none;counter-reset:s;padding:0;margin:0 0 24px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;column-gap:14px;margin-bottom:20px}
.steps li::before{content:counter(s);grid-row:span 2;width:40px;height:40px;border-radius:50%;background:#fdecee;color:var(--brand);display:grid;place-items:center;font-weight:800}
.steps b{font-size:1.1rem}.steps span{color:var(--ink-2)}
@media(max-width:760px){.how{grid-template-columns:1fr;gap:20px}}

/* trust */
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.trust-grid>div{background:var(--soft);border-radius:20px;padding:26px}
.trust-grid h3{margin:.6rem 0 .3rem;font-size:1.15rem}.trust-grid p{margin:0;color:var(--ink-2)}
@media(max-width:760px){.trust-grid{grid-template-columns:1fr}}

/* near you */
.near-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.near{position:relative;display:block;border-radius:16px;overflow:hidden;aspect-ratio:16/9;text-decoration:none}
.near img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.near:hover img{transform:scale(1.05)}
.near span{position:absolute;inset:auto 0 0 0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(10,20,35,.8));color:#fff;font-weight:700}
.near em{font-style:normal;font-weight:500;opacity:.8;margin-left:4px}

/* cta band */
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:4rem 0 0;padding:36px 40px;border-radius:28px;background:linear-gradient(120deg,#fdecee,#fff4d6)}
.cta-band h2{margin:0 0 .3rem;font-size:1.6rem}.cta-band p{margin:0;color:var(--ink-2)}

/* banner on trade pages */
.banner{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;background:var(--soft);border-radius:28px;overflow:hidden;margin:12px 0 24px}
.banner-text{padding:32px 0 32px 36px}
.banner h1{margin:.3em 0}
.banner img{width:100%;height:100%;object-fit:cover;min-height:280px}
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand);background:#fff;padding:5px 12px;border-radius:999px}
.eyebrow .ico{width:16px;height:16px}
@media(max-width:820px){.banner{grid-template-columns:1fr}.banner img{order:-1;min-height:160px;max-height:200px}.banner-text{padding:0 22px 24px}}

/* footer columns */
.site-footer{background:var(--ink);color:#c6d0de;border:0;padding:44px 0 24px}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.foot-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.foot-cols h4{color:#fff;margin:0 0 10px;font-size:.95rem}
.foot-cols>div>a{display:block;padding:4px 0;font-size:.93rem;color:#c6d0de}
.foot-brand .logo{color:#fff}
.foot-legal{border-top:1px solid #2b3d55;margin-top:28px;padding-top:18px}
.foot-legal a{text-decoration:underline}
@media(max-width:760px){.foot-cols{grid-template-columns:1fr 1fr}.foot-brand{grid-column:span 2}}
.hero2>*,.panel-card>*,.banner>*,.how>*,.tabs-wrap{min-width:0}
@media(max-width:860px){.hero2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.panel-card,.how{grid-template-columns:minmax(0,1fr)}}
@media(max-width:820px){.banner{grid-template-columns:minmax(0,1fr)}}

/* photos, captions, author box */
.hero2-art-wrap{margin:0}
.hero2-art-wrap figcaption, figure.hero-photo figcaption, figure.inline-photo figcaption, .banner figure figcaption, .how figure figcaption, .prose figcaption{
  font-size:.82rem;color:var(--muted);margin-top:8px;line-height:1.4
}
figure.hero-photo, figure.inline-photo, .prose figure, .banner figure, .how figure{margin:0 0 1rem}
figure.hero-photo img, figure.inline-photo img, .prose figure img, .banner figure img, .how figure img{
  width:100%;height:auto;border-radius:16px;display:block;object-fit:cover
}
.banner figure{min-height:0}
aside.authorbox, aside.note{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:24px 0
}
.byline{color:var(--muted);font-size:.95rem;margin-top:-.4rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;list-style:none;padding:0}
.cards li{margin:0}
.form{display:grid;gap:12px;max-width:520px;margin:20px 0}
.form label{display:grid;gap:4px;font-weight:600;font-size:.9rem}
.form input,.form textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.form .hp{position:absolute;left:-9999px}
.logo span:last-child{white-space:nowrap}
@media(max-width:600px){.logo span:last-child{font-size:.95rem}}
