@font-face{font-family:'Sora';font-weight:500;font-style:normal;src:url(/assets/fonts/Sora-500.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Sora';font-weight:600;font-style:normal;src:url(/assets/fonts/Sora-600.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Sora';font-weight:700;font-style:normal;src:url(/assets/fonts/Sora-700.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Sora';font-weight:800;font-style:normal;src:url(/assets/fonts/Sora-800.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Arimo';font-weight:400;font-style:normal;src:url(/assets/fonts/Arimo-400.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Arimo';font-weight:500;font-style:normal;src:url(/assets/fonts/Arimo-500.ttf) format('truetype');font-display:swap;}
@font-face{font-family:'Arimo';font-weight:700;font-style:normal;src:url(/assets/fonts/Arimo-700.ttf) format('truetype');font-display:swap;}

:root{
  --navy-deep:#071b33;
  --navy:#0d2c52;
  --blue:#1994ea;
  --blue-bright:#2fa8ff;
  --teal:#3fc7bf;
  --ink:#0c1729;
  --paper:#f3f6fa;
  --line:#dfe8f0;
  --grey-text:#51677e;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  font-family:'Arimo',-apple-system,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
h1,h2,h3,h4{font-family:'Sora','Arimo',sans-serif;margin:0 0 .5em 0;letter-spacing:-0.01em;text-wrap:balance;}
p{margin:0 0 1em 0;max-width:62ch;}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px;}
.chev{color:var(--blue-bright);font-weight:700;margin-right:6px;}

@media (prefers-reduced-motion: no-preference){
  .btn,.firm-card,.tier-card{transition:transform .15s ease, box-shadow .15s ease;}
  .firm-card:hover,.tier-card:hover{transform:translateY(-2px);}
}

/* the notch: a single geometric device echoing the logo's forward-chevron mark */
.notched{
  clip-path:polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
  border:1px solid var(--line);
  background:#fff;
}

/* header */
header.site-header{position:sticky;top:0;z-index:50;background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,0.08);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;}
.site-header img.logo{height:28px;}
.site-header nav.primary{display:flex;align-items:center;gap:28px;}
.site-header nav.primary a.navlink{color:#cfe3f5;font-size:15px;font-weight:500;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:4px 0;}

.btn{display:inline-flex;align-items:center;gap:6px;padding:12px 22px;border-radius:6px;font-weight:600;font-size:15px;border:none;cursor:pointer;font-family:'Arimo',sans-serif;}
.btn-primary{background:linear-gradient(135deg,var(--blue-bright),var(--blue));color:#fff;box-shadow:0 6px 20px rgba(25,148,234,0.35);}
.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--line);}
.btn-on-dark{background:rgba(255,255,255,0.08);color:#fff;border:1.5px solid rgba(255,255,255,0.25);}

/* hero (home only) */
.hero{position:relative;background:linear-gradient(160deg,var(--navy-deep),#071022 70%);color:#fff;overflow:hidden;padding:84px 0 70px;}
.hero .wrap{display:grid;grid-template-columns:1.05fr 0.95fr;gap:40px;align-items:center;}
.eyebrow{display:flex;align-items:center;font-size:13px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--teal);margin-bottom:20px;}
.hero h1{font-size:44px;font-weight:800;line-height:1.14;margin-bottom:16px;}
.hero h1 .accent{color:var(--teal);}
.hero p.sub{font-size:17.5px;color:#b9cbdd;max-width:480px;margin:0 0 30px;}
.search-panel{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.16);border-radius:10px;padding:16px;display:flex;gap:10px;max-width:520px;}
.search-panel select{flex:1;padding:13px 14px;border-radius:6px;border:none;font-size:15px;font-family:'Arimo',sans-serif;color:var(--ink);}
.hero-stats{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap;}
.hero-stats .stat b{display:block;font-family:'Sora',sans-serif;font-size:28px;color:#fff;font-variant-numeric:tabular-nums;}
.hero-stats .stat span{font-size:13px;color:#9db3c7;text-transform:uppercase;letter-spacing:0.05em;}
.network-diagram{width:100%;height:auto;max-width:460px;margin:0 auto;display:block;}
.node-label{font-family:'Arimo',sans-serif;font-size:13px;fill:#b9cbdd;}
.hub-label{font-family:'Sora',sans-serif;font-size:19px;font-weight:700;fill:#fff;}

/* page-header (inner pages) */
.page-header{background:linear-gradient(160deg,var(--navy-deep),#071022 70%);color:#fff;padding:56px 0;}
.page-header h1{font-size:34px;margin-bottom:8px;}
.page-header p.lede{color:#b9cbdd;font-size:16px;margin:0;max-width:60ch;}

/* generic section */
.section{padding:76px 0;}
.section-head{max-width:600px;margin:0 0 44px;}
.section-head .kicker{color:var(--blue);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;}
.section-head h2{font-size:30px;}
.section-head p{color:var(--grey-text);font-size:16px;margin:0;}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.step{padding:26px;}
.step .num{width:36px;height:36px;background:linear-gradient(135deg,var(--blue-bright),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:700;margin-bottom:16px;clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);}
.step h3{font-size:18px;margin-bottom:8px;}
.step p{color:var(--grey-text);font-size:14.5px;margin:0;}

/* firms grid (homepage sample + city listings) */
.firms-section{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.firms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.firm-card{display:flex;gap:16px;padding:20px;background:var(--paper);}
.firm-card-logo{width:60px;height:60px;flex:none;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.firm-card-logo img{max-width:78%;max-height:78%;object-fit:contain;}
.firm-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.firm-card h3{font-size:16px;margin:0;}
.city-tag{font-size:11px;font-weight:700;color:var(--blue);background:rgba(25,148,234,0.08);padding:3px 9px;white-space:nowrap;}
.firm-card p{font-size:13.5px;color:var(--grey-text);margin:0 0 8px 0;}
.text-link{font-size:13.5px;font-weight:700;color:var(--navy);}
.firms-cta{text-align:center;margin-top:36px;}

/* pricing */
.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.tier-card{padding:26px 22px;display:flex;flex-direction:column;position:relative;}
.tier-card.featured{border-color:var(--blue);box-shadow:0 12px 30px rgba(25,148,234,0.15);}
.tier-card.featured::before{content:'MOST POPULAR';position:absolute;top:14px;right:-2px;background:var(--blue);color:#fff;font-size:10px;font-weight:700;letter-spacing:0.05em;padding:4px 10px;}
.tier-name{font-family:'Sora',sans-serif;font-weight:700;font-size:18px;}
.tier-sub{color:var(--grey-text);font-size:13px;margin-bottom:14px;}
.tier-price{margin-bottom:18px;}
.tier-price .amt{font-family:'Sora',sans-serif;font-size:32px;font-weight:800;font-variant-numeric:tabular-nums;}
.tier-price .per{color:var(--grey-text);font-size:14px;}
.tier-feats{list-style:none;padding:0;margin:0 0 22px 0;flex:1;}
.tier-feats li{font-size:13.5px;color:var(--grey-text);padding:6px 0;border-top:1px solid var(--line);display:flex;align-items:flex-start;}
.tier-feats li:first-child{border-top:none;}
.tier-card .btn{text-align:center;justify-content:center;width:100%;}

/* cta band */
.cta-band{background:linear-gradient(120deg,var(--navy-deep),#0e335c);color:#fff;text-align:center;padding:64px 0;}
.cta-band h2{font-size:28px;margin-bottom:12px;}
.cta-band p{color:#b9cbdd;max-width:520px;margin:0 auto 26px;}

/* faq */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
.faq-item h3{font-size:17px;margin-bottom:8px;}
.faq-item p{color:var(--grey-text);font-size:15px;margin:0;max-width:none;}

/* forms (contact / join / update-request) */
.form-section{max-width:640px;}
.form-banner{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:14.5px;font-weight:600;}
.form-banner.success{background:rgba(63,199,191,0.12);color:#0d6e66;border:1px solid rgba(63,199,191,0.35);}
.form-banner.error{background:rgba(217,40,40,0.08);color:#9c1f1f;border:1px solid rgba(217,40,40,0.25);}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13.5px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:6px;font-family:'Arimo',sans-serif;font-size:15px;color:var(--ink);background:#fff;}
.field textarea{min-height:120px;resize:vertical;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-note{font-size:13px;color:var(--grey-text);margin-top:10px;}

/* firm profile page */
.firm-profile-head{display:flex;gap:24px;align-items:flex-start;margin-bottom:36px;flex-wrap:wrap;}
.firm-profile-logo{width:96px;height:96px;flex:none;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.firm-profile-logo img{max-width:78%;max-height:78%;object-fit:contain;}
.firm-profile-meta{display:flex;flex-direction:column;gap:6px;}
.firm-profile-meta a{color:var(--blue);font-weight:600;}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 28px;}
.tag-list li{font-size:13px;font-weight:600;color:var(--navy);background:var(--paper);border:1px solid var(--line);padding:5px 12px;}

/* city listing page */
.city-count{color:var(--grey-text);font-size:15px;}

/* footer */
footer.site-footer{background:var(--navy-deep);color:#9db3c7;padding:56px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px;}
.footer-grid h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:14px;}
.footer-grid a{display:block;font-size:14px;color:#9db3c7;margin-bottom:10px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:22px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

@media (max-width: 900px){
  .hero .wrap{grid-template-columns:1fr;}
  .network-diagram{max-width:340px;}
  .hero h1{font-size:32px;}
  .steps,.firms-grid,.pricing-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .site-header nav.primary{position:absolute;top:72px;left:0;right:0;background:var(--navy-deep);flex-direction:column;align-items:flex-start;padding:16px 24px;gap:16px;display:none;border-bottom:1px solid rgba(255,255,255,0.08);}
  .site-header nav.primary.open{display:flex;}
  .nav-toggle{display:block;}
  .search-panel{flex-direction:column;}
  .firm-profile-head{flex-direction:column;}
}
