/* Styles added for the static multi-site build (county index on the home page). Loaded last. */
.gp-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px 32px;text-align:left}
.gp-index-state h3{margin:0 0 8px;font-size:18px;color:var(--gp-navy,#031D59)}
.gp-index-state ul{list-style:none;margin:0;padding:0}
.gp-index-state li{margin:0 0 6px;font-size:15px;line-height:1.35}
.gp-index-state a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.gp-index-state a:hover{color:var(--gp-red,#E20414)}

/* Three-plan layout (the original theme block was built for four cards in a 2x2 grid). */
@media (min-width:1025px){
  .gp-local-plans .wrap_inner.gp-plans-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;max-width:1160px;margin-left:auto;margin-right:auto}
  .gp-local-plans .wrap_inner.gp-plans-3 > div{width:auto !important;max-width:none !important;float:none !important;margin:0 !important}
}

/* Four-stat row (the theme's stats grid assumes five). */
@media (min-width:1025px){ .gp-stats.gp-stats-4{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* --- Fixes already made on the live WordPress sites (Oct 15 2026), carried into the static build --- */
/* Contact links in the "Get in Touch" box are navy on white (the theme had white-on-white). */
body .location-info > a, body .location-info > a:visited, body .location-info > p a { color: #031d59 !important; text-decoration: underline; }
/* ...but the blue company box (phone, email, social icons) keeps its white links. */
body .location-info .company-info a { color: #fff !important; text-decoration: none; }
/* Header logo centred with the buttons on phones; sized like the main site. */
@media (max-width: 559px) {
  html body .site-header .title-area .site-title a { display: flex !important; align-items: center; height: 70px; }
  html body .gp-sync-logo-img { width: 142px !important; }
}
@media (max-width: 429px) { html body .gp-sync-logo-img { width: 128px !important; } }
@media (max-width: 379px) { html body .gp-sync-logo-img { width: 112px !important; } }
/* Hamburger is brand blue so it does not blend into the header. */
@media (max-width: 1024px) {
  html body .menu-toggle, html body .menu-toggle:hover, html body .menu-toggle:focus { background-color: #0540f5 !important; }
}
/* Plan cards: keep each card's button text on a single line. */
.gp-local-plans h3 .gp-plan-price { white-space: nowrap; }

/* Hero secondary CTA: a real outlined button instead of a bare text link. */
.gp-local-hero-ctas .gp-local-link-cta{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:59px;padding:0 28px;border:2px solid rgba(255,255,255,.9);border-radius:10px;font-size:16px;font-weight:600;line-height:1.2;opacity:1;background:transparent;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.gp-local-hero-ctas .gp-local-link-cta:hover{background:#fff;color:#031d59 !important;border-color:#fff;transform:none}
@media (max-width:480px){.gp-local-hero-ctas .gp-local-link-cta,.gp-local-hero-ctas .section-1-button{width:100%;box-sizing:border-box}}

/* Testimonials on phones: a full-width swipe row so the next card peeks in (the theme squeezed it into the padded text column). */
@media (max-width:767px){
  .reviews .gp-stream.gp-swipe{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:0}
}

/* ===== Data sections (Ad Competition Index, category pressure, permits, comparison, calculator, rules, provenance) ===== */
.gp-aci{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:32px;align-items:center;margin:8px 0 28px}
.gp-aci-card{background:var(--gp-navy,#031D59);color:#fff;border-radius:18px;padding:26px 26px 22px;box-shadow:var(--gp-shadow-lg,0 22px 48px rgba(3,29,89,.16))}
.gp-aci-label{margin:0 0 4px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#9fb4ff}
.gp-aci-score{margin:0 0 12px;line-height:1}
.gp-aci-score strong{font-size:64px;font-weight:800;color:#fff}
.gp-aci-score span{font-size:18px;margin-left:6px;color:#9fb4ff;font-weight:600}
.gp-aci-bar{position:relative;height:12px;border-radius:12px;background:rgba(255,255,255,.18);margin:0 0 14px}
.gp-aci-fill{position:absolute;left:0;top:0;bottom:0;border-radius:12px;background:linear-gradient(90deg,#4f7bff,#ff5b6b)}
.gp-aci-mid{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:#fff;opacity:.85}
.gp-aci-ranks{margin:0;font-size:14.5px;line-height:1.5;color:#e7edff}
.gp-aci-ranks a{color:#fff !important;text-decoration:underline}
.gp-aci-text p{margin:0 0 12px}
.gp-metrics{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.gp-metrics li{background:#fff;border-radius:14px;box-shadow:var(--gp-shadow,0 4px 18px rgba(3,29,89,.07));padding:16px 16px 14px;display:flex;flex-direction:column;gap:6px;border-top:4px solid var(--gp-blue,#0540F5)}
.gp-m-label{font-size:12.5px;line-height:1.35;color:#5a6474;font-weight:600;min-height:34px}
.gp-m-val{font-size:26px;line-height:1.1;font-weight:800;color:var(--gp-navy,#031D59)}
.gp-m-bar{display:block;height:6px;border-radius:6px;background:#E8ECF6;overflow:hidden}
.gp-m-bar i{display:block;height:100%;background:var(--gp-blue,#0540F5);border-radius:6px}
.gp-m-rel{font-size:12.5px;color:#4a4a4a;line-height:1.35}

.gp-press{background:#fff;border-radius:15px;box-shadow:var(--gp-shadow,0 4px 18px rgba(3,29,89,.07));overflow:hidden;margin:6px 0 4px}
.gp-press-head,.gp-press-row{display:grid;grid-template-columns:minmax(150px,1.5fr) 80px minmax(170px,2fr) 110px 100px;gap:14px;align-items:center;padding:12px 20px}
.gp-press-head{background:var(--gp-navy,#031D59);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em}
.gp-press-row{border-top:1px solid #EEF1F8;font-size:15px}
.gp-press-row.is-flag{background:#F5F8FF}
.gp-p-name{font-weight:600;color:var(--gp-navy,#031D59);line-height:1.3}
.gp-p-name em{display:block;font-style:normal;font-size:11.5px;font-weight:700;color:var(--gp-red,#E20414);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.gp-p-n,.gp-p-l{font-variant-numeric:tabular-nums;font-weight:700;color:var(--gp-blue,#0540F5)}
.gp-p-bar{display:flex;align-items:center;gap:10px}
.gp-p-track{position:relative;flex:1;height:10px;background:#E8ECF6;border-radius:10px}
.gp-p-track i{position:absolute;left:0;top:0;bottom:0;border-radius:10px;background:#9aa8c9}
.gp-p-track i.hi{background:var(--gp-blue,#0540F5)}
.gp-p-track u{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--gp-navy,#031D59);text-decoration:none}
.gp-p-bar b{min-width:42px;text-align:right;font-weight:800;color:var(--gp-navy,#031D59);font-variant-numeric:tabular-nums}
.gp-p-g{font-weight:700;font-variant-numeric:tabular-nums}
.gp-p-g.up{color:#0e7a3c}.gp-p-g.down{color:var(--gp-red,#E20414)}
@media (max-width:820px){
  .gp-press-head{display:none}
  .gp-press-row{grid-template-columns:1fr 1fr;gap:6px 14px;padding:14px 16px}
  .gp-press-row .gp-p-name{grid-column:1 / -1}
  .gp-press-row .gp-p-bar{grid-column:1 / -1}
  .gp-press-row .gp-p-n::before{content:"Locations: ";font-weight:500;color:#5a6474}
  .gp-press-row .gp-p-g::before{content:"2017-22: ";font-weight:500;color:#5a6474}
  .gp-press-row .gp-p-l::before{content:"20+ staff: ";font-weight:500;color:#5a6474}
}

.gp-permits{background:#fff;border-radius:15px;box-shadow:var(--gp-shadow,0 4px 18px rgba(3,29,89,.07));padding:24px 20px 14px;margin:6px 0 4px}
.gp-bars{display:flex;align-items:flex-end;gap:12px;height:230px}
.gp-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.gp-bar i{display:block;width:100%;max-width:62px;background:var(--gp-blue,#0540F5);border-radius:8px 8px 0 0}
.gp-bar-v{font-size:12.5px;font-weight:700;color:var(--gp-navy,#031D59);margin-bottom:4px;font-variant-numeric:tabular-nums}
.gp-bar-l{font-size:12px;color:#5a6474;margin-top:6px;text-align:center;line-height:1.25;min-height:30px}
.gp-bar--ytd i{background:#9aa8c9}
.gp-bar--ytd.gp-bar--now i{background:var(--gp-red,#E20414)}
.gp-bar-sep{width:1px;align-self:stretch;background:#DCE1EE;margin:0 4px}
@media (max-width:520px){.gp-bars{gap:6px;height:200px}.gp-bar-v{font-size:10.5px}.gp-bar-l{font-size:10.5px}}

.gp-compare tbody th a{color:var(--gp-blue,#0540F5);text-decoration:underline}
.gp-compare thead th,.gp-compare tbody td{text-align:right}
.gp-compare thead th:first-child,.gp-compare tbody th{text-align:left}
.gp-compare tbody td{font-weight:700}
.gp-compare tr.is-self th,.gp-compare tr.is-self td{background:#EAF0FF !important}
.gp-compare em{font-weight:500;font-style:normal;color:#5a6474;font-size:13px}
.gp-compare th,.gp-compare td{font-size:15px}
#aci-table thead th:nth-child(2),#aci-table tbody th{text-align:left}
#aci-table thead th:nth-child(3),#aci-table tbody td:nth-child(3){text-align:left}
.gp-aci-filter{margin:0 0 14px}.gp-aci-filter label{font-weight:600;color:var(--gp-navy,#031D59);font-size:14px}
.gp-aci-filter input{display:block;margin-top:6px;width:100%;max-width:360px;padding:12px 14px;border:1px solid #cfd6e6;border-radius:10px;font:inherit;font-size:16px}

.gp-calc{background:#fff;border-radius:16px;box-shadow:var(--gp-shadow,0 4px 18px rgba(3,29,89,.07));padding:24px;margin-top:8px}
.gp-calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.gp-calc label{display:block;font-size:13.5px;font-weight:600;color:var(--gp-navy,#031D59);line-height:1.35}
.gp-calc input,.gp-calc select{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:12px 14px;border:1px solid #cfd6e6;border-radius:10px;font:inherit;font-size:16px;color:#222;background:#fff}
.gp-calc input:focus,.gp-calc select:focus{outline:2px solid var(--gp-blue,#0540F5);outline-offset:1px}
.gp-calc-out{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.gp-calc-out>div{background:#F5F7FC;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.gp-calc-out span{font-size:13px;color:#5a6474;line-height:1.35}
.gp-calc-out strong{font-size:26px;font-weight:800;color:var(--gp-blue,#0540F5);line-height:1.1}
.gp-calc-out .wide{grid-column:1 / -1;background:#EAF0FF}
.gp-calc-out .wide span{font-size:15px;color:var(--gp-navy,#031D59);font-weight:600}
@media (max-width:640px){.gp-calc-grid,.gp-calc-out{grid-template-columns:1fr}.gp-calc{padding:18px}}

.gp-rules{display:grid;gap:14px;margin-top:6px}
.gp-rule{background:#fff;border:1px solid #E2E6EF;border-left:5px solid var(--gp-blue,#0540F5);border-radius:12px;padding:18px 20px}
.gp-rule h3{margin:0 0 8px;font-size:18px;color:var(--gp-navy,#031D59)}
.gp-rule p{margin:0 0 8px;font-size:15.5px;line-height:1.6}
.gp-rule-src{font-size:13.5px !important;color:#5a6474}
.gp-rule-src a{color:var(--gp-blue,#0540F5);text-decoration:underline}

.gp-prov-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.gp-prov-list li{display:grid;grid-template-columns:170px 1fr;gap:14px;font-size:15px;line-height:1.5;padding-top:10px;border-top:1px solid #DCE1EE}
.gp-prov-list strong{color:var(--gp-navy,#031D59)}
.gp-prov-list a{color:var(--gp-blue,#0540F5);text-decoration:underline}
@media (max-width:640px){.gp-prov-list li{grid-template-columns:1fr;gap:2px}}

@media (max-width:1024px){.gp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-aci{grid-template-columns:1fr}}
@media (max-width:430px){.gp-m-val{font-size:22px}.gp-aci-score strong{font-size:54px}}
.gp-compare tbody td{white-space:nowrap}
.gp-compare thead th{vertical-align:bottom;line-height:1.3}
.gp-compare tbody th{min-width:170px}
.gp-bar i{flex:none}

/* Hero buttons: the theme's .button margin-top pushed "Schedule a Consultation" 14px below "See Pricing". Same height, same baseline, centred. */
html body .gp-local-hero-ctas{align-items:center}
html body .gp-local-hero-ctas .button.section-1-button,html body .gp-local-hero-ctas a.section-1-button{margin:0 !important;min-height:59px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
html body .gp-local-hero-ctas .gp-local-link-cta{margin:0 !important}
.gp-table thead th:not(:first-child){text-align:right}

/* County directory on the home page: 400 links grouped by state, flowed into columns so it stays compact. */
.gp-index{display:block;column-width:210px;column-gap:32px}
.gp-index-state{break-inside:avoid;margin:0 0 22px}
.gp-index-state li{margin:0 0 5px;font-size:14.5px}

/* Service directory (industry sites): grouped topic links in place of the county index. */
.gp-dir{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 40px;text-align:left;max-width:1160px;margin:0 auto}
.gp-dir-group h3{margin:0 0 12px;font-size:19px;color:var(--gp-navy,#031D59);padding-bottom:8px;border-bottom:2px solid var(--gp-red,#E20414);display:inline-block}
.gp-dir-group ul{list-style:none;margin:0;padding:0}
.gp-dir-group li{margin:0 0 10px}
.gp-dir-group a{display:block;background:#fff;border-radius:12px;padding:13px 16px;box-shadow:0 2px 10px rgba(3,29,89,.08);text-decoration:none;color:inherit;border-left:4px solid var(--gp-blue,#0540F5);transition:transform .15s ease,box-shadow .15s ease}
.gp-dir-group a:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(3,29,89,.14)}
.gp-dir-group a strong{display:block;color:var(--gp-navy,#031D59);font-size:16.5px;line-height:1.25;margin-bottom:3px}
.gp-dir-group a span{display:block;font-size:14px;line-height:1.5;color:#4a5470}
@media (max-width:820px){.gp-dir{grid-template-columns:1fr}}

/* Text tables (industry sites): the default table is built for numbers (right-aligned, bold blue); this variant is for sentences. */
.gp-table--text thead th,.gp-table--text thead th:last-child,.gp-table--text thead th:not(:first-child){text-align:left}
.gp-table--text tbody th{vertical-align:top;width:24%;line-height:1.4}
.gp-table--text tbody td{text-align:left;color:var(--gp-ink,#2b3350);font-weight:400;font-variant-numeric:normal;vertical-align:top;line-height:1.55;font-size:15px}
.gp-table--text tbody td:first-of-type{color:var(--gp-navy,#031D59);font-weight:600}
/* Links inside cards are readable blue, like links in body copy. */
.gp-card p a{color:var(--gp-blue,#0540F5);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(5,64,245,.35)}
.gp-card p a:hover{color:var(--gp-red,#E20414);border-bottom-color:var(--gp-red,#E20414)}

/* Directory: the two core pages sit in a full-width "Start Here" row; the current page is marked. */
.gp-dir-group--primary{grid-column:1/-1}
.gp-dir-group--primary ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.gp-dir-group--primary li{margin:0}
.gp-dir-group--primary a{border-left-color:var(--gp-red,#E20414);padding:18px 20px}
.gp-dir-group--primary a strong{font-size:19px}
.gp-dir-group a.is-current{background:#eef2ff;box-shadow:inset 0 0 0 2px rgba(5,64,245,.25)}
.gp-dir-group a strong em{font-style:normal;font-weight:600;font-size:13px;color:var(--gp-blue,#0540F5)}
@media (max-width:820px){.gp-dir-group--primary ul{grid-template-columns:1fr}}

/* ---------- Mobile review fixes (Oct 16 2026), all three static sites ---------- */
/* Lists inside body copy get real bullets and numbers (the theme reset removed them). */
.gp-local .gp-prose ul,.gp-local .gp-prose ol{margin:0 0 1.2em;padding-left:1.35em}
.gp-local .gp-prose ul{list-style:disc}
.gp-local .gp-prose ol{list-style:decimal}
.gp-local .gp-prose ul > li{list-style-type:disc}
.gp-local .gp-prose ol > li{list-style-type:decimal}
.gp-local .gp-prose li{margin:0 0 .55em;line-height:1.65}
.gp-local .gp-prose li::marker{color:var(--gp-blue,#0540F5)}
/* Table headers never break in the middle of a word. */
.gp-table thead th,.gp-table tbody th,.gp-table tbody td{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media (max-width:600px){
  .gp-table thead th{padding:11px 10px;font-size:12.5px;line-height:1.25}
  .gp-table tbody th,.gp-table tbody td{padding:12px 10px}
  /* County and market directory: comfortable tap targets. */
  .gp-index-state li{margin:0}
  .gp-index-state a{display:block;padding:7px 0}
  .gp-index-state h3{margin-bottom:4px}
}
/* Text tables become stacked cards on phones (one card per row, each cell labeled by its column). */
@media (max-width:760px){
  .gp-table-wrap:has(.gp-table--text){box-shadow:none;background:transparent;overflow:visible}
  .gp-table--text,.gp-table--text tbody,.gp-table--text tr,.gp-table--text th,.gp-table--text td{display:block;width:100% !important;box-sizing:border-box}
  .gp-table--text thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .gp-table--text tbody tr,.gp-local--tint .gp-table--text tbody tr:nth-child(odd),.gp-local--tint .gp-table--text tbody tr:nth-child(even){background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(3,29,89,.09);margin:0 0 12px;padding:14px 16px 12px;border-left:4px solid var(--gp-blue,#0540F5)}
  .gp-table--text tbody th{padding:0 0 8px;font-size:17px;line-height:1.3;color:var(--gp-navy,#031D59)}
  .gp-table--text tbody td{padding:5px 0;font-size:15px;line-height:1.55;font-weight:400;color:var(--gp-ink,#2b3350);text-align:left}
  .gp-table--text tbody td:first-of-type{font-weight:600;color:var(--gp-navy,#031D59)}
  .gp-table--text tbody td::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gp-blue,#0540F5);margin-bottom:1px}
}
