/* ConstructionCurrent v3.1 launch polish — static, dense, industrial-intelligence UI */
:root{
  --cc-shell:#061923;
  --cc-deep:#081f2a;
  --cc-panel:#0c2b39;
  --cc-cyan:#73cce8;
  --cc-blue:#2d9fca;
  --cc-orange:#f29a38;
  --cc-paper:#f4f7f8;
  --cc-white:#ffffff;
  --cc-ink:#102732;
  --cc-muted:#667c88;
  --cc-rule:#d7e2e7;
  --cc-rule-dark:#284958;
  --cc-focus:#f4a343;
}

/* No-motion product contract. */
*,*::before,*::after{animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Render below-fold content lazily where supported. */
.pc-section,
.results-shell,
.town-grid,
.trade-grid,
.seo-hub-grid,
.local-seo-copy,
.quality-note,
main>section:not(:first-child){content-visibility:auto;contain-intrinsic-size:1px 700px}

/* Global type/rhythm. */
body{font-size:15.5px;letter-spacing:-.004em}
main{width:100%;max-width:1160px}
section{position:relative}
h1,h2,h3{font-feature-settings:"kern" 1,"liga" 1;text-wrap:balance}
p{max-width:76ch}
a,button,input,select{outline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cc-focus)!important;outline-offset:3px!important}
::selection{background:#c7edf8;color:#061923}

/* Header/navigation. */
.pc-nav{min-height:72px;height:auto;position:relative;z-index:100}
.pc-brand{display:flex;align-items:center;gap:11px;min-width:max-content}
.pc-wordmark,.pc-footer-wordmark{font-size:18px;letter-spacing:-.03em;font-weight:850}
.pc-wordmark>span,.pc-footer-wordmark>span{color:var(--cc-cyan)}
.pc-nav nav{align-items:center;gap:21px}
.pc-nav nav>a{position:relative;font-weight:680;color:#bfd1d9;line-height:1.2}
.pc-nav nav>a:not(.pc-nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:2px;background:var(--cc-orange)}
.pc-nav nav>a:hover,.pc-nav nav>a:focus-visible{color:#fff}
.pc-nav nav>a:hover::after,.pc-nav nav>a:focus-visible::after{right:0}
.pc-nav .pc-nav-cta{padding:10px 14px;font-weight:850;border:1px solid #f4aa54}
.menu-toggle{border-radius:2px!important}

/* Interior headers: tighter, clearer hierarchy. */
.pagehead,.compact-head{padding-top:42px;padding-bottom:42px!important;min-height:260px;display:flex;flex-direction:column;justify-content:center}
.pagehead h1,.compact-head h1{max-width:930px;font-size:clamp(38px,5vw,62px)!important;line-height:1.02;margin-bottom:16px}
.pagehead p,.compact-head p{max-width:790px;font-size:17px;line-height:1.62;margin-top:0}
.breadcrumbs{margin-bottom:20px!important;letter-spacing:.03em}
.trust-line{font-size:12px;letter-spacing:.025em}
.page-actions{margin-top:20px}

/* Shared section headings. */
.sectionhead,.pc-section-head{gap:34px;align-items:flex-end}
.sectionhead h2,.pc-section-head h2{font-size:clamp(28px,3.3vw,42px);line-height:1.08;letter-spacing:-.035em;margin:2px 0 0}
.section-subtitle,.sectionhead p,.pc-section-head p{color:var(--cc-muted);line-height:1.6}
.eyebrow{letter-spacing:.16em!important;font-size:11px!important}

/* Buttons and links. */
button,.button{font-weight:820;min-height:44px}
.button,.pc-nav-cta,.filter-actions button{box-shadow:none!important}
.button:not(.ghost):not(.secondary-light):not(.link-button),.filter-actions button{background:#0f719e}
.button:not(.ghost):hover,.filter-actions button:hover{background:#0b5f87}
.text-link,.pc-inline-link,.sectionhead>a{font-weight:800;text-underline-offset:4px}

/* Search/filter workspaces. */
.search-workspace{padding-top:28px!important;padding-bottom:32px!important}
.filters,.filters-enhanced,.project-filters{border-radius:3px!important;border:1px solid #cddbe1!important;background:#fff!important;box-shadow:0 12px 30px rgba(11,39,52,.055)!important;padding:18px!important}
.filters input,.filters select,.searchbar input{border-radius:2px!important;border-color:#c7d6dd!important;min-height:48px}
.filters input:focus,.filters select:focus,.searchbar input:focus{border-color:#399fc7!important;box-shadow:0 0 0 3px rgba(57,159,199,.13)}
.filter-actions{flex-wrap:wrap}
.filter-actions>a{padding:8px 2px}
.save-search-link{color:#0b6e9b!important}
.recent-searches a{border-radius:2px!important;background:#eef5f8!important;border-color:#d1e1e8!important}
.suggestions{border-radius:3px!important;box-shadow:0 18px 42px rgba(9,34,46,.18)!important}
.suggestion{min-height:60px}
.suggestion-type{border-radius:2px!important;background:#dff1f7!important;color:#0e6387!important}

/* Search results. */
.results-shell{padding-top:34px!important;padding-bottom:72px!important}
.result-tabs{border-bottom:1px solid var(--cc-rule);gap:0!important;margin-bottom:30px!important}
.result-tabs button{border-radius:0!important;background:transparent!important;color:#526a77!important;border-bottom:3px solid transparent;padding:12px 18px!important}
.result-tabs button.active{color:#0a2b39!important;border-bottom-color:var(--cc-orange);background:#fff!important}
.result-tabs button span{font-variant-numeric:tabular-nums}
.results-list{border-top:1px solid var(--cc-rule)!important;background:#fff}
.result-rich{padding:18px 17px!important;border-left:3px solid transparent}
.result-rich:hover,.result-rich:focus-visible{background:#f3f8fa;border-left-color:var(--cc-blue)}
.result-kind{color:#0f739d!important;letter-spacing:.12em!important;font-size:10px!important;font-weight:850!important}
.result-rich b{font-size:16px}
.result-open{color:#0c6d98!important;font-weight:850}
.helpful-empty{border:1px dashed #bdcfd7!important;background:#f8fbfc!important;border-radius:3px!important}

/* Generic public cards. */
.card,.interactive-card,.seo-hub-card,.town-card,.trade-card,.answer-grid article,.seo-answer-card,.quality-note{border-radius:3px!important;box-shadow:none!important}
.card,.interactive-card,.seo-hub-card{border-color:#d4e0e5!important}
.interactive-card,.seo-hub-card,.trade-card,.town-card{position:relative;overflow:hidden}
.interactive-card::before,.seo-hub-card::before,.trade-card::before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:#b8dbe8}
.interactive-card:hover::before,.seo-hub-card:hover::before,.trade-card:hover::before{background:var(--cc-orange)}
.card h3,.trade-card h3{line-height:1.25}
.tag,.status{border-radius:2px!important;letter-spacing:.04em}
.meta{font-size:13px;color:#617783}

/* Projects page. */
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.project-card{min-height:235px;padding:24px!important;background:#fff}
.project-card h3{font-size:21px;margin:18px 0 8px}
.project-card p{color:var(--cc-muted);margin:0}
.project-card .project-facts{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.project-card .project-facts span{background:#eef5f8;border:1px solid #d6e5eb;padding:6px 8px;font-size:12px;font-weight:750}
.results-summary{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:#607783}
.results-summary b{font-size:20px;color:#0b2b39}

/* Explore page: make towns visual anchors. */
.town-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2px!important;padding-top:48px!important;padding-bottom:70px!important}
.town-card{min-height:370px!important;padding:34px!important;color:#fff!important;background-size:cover!important;background-position:center!important;border:0!important;display:flex!important;flex-direction:column!important;justify-content:flex-end!important;text-decoration:none!important}
.town-grid .town-card:first-child{background-image:linear-gradient(180deg,rgba(4,19,27,.08),rgba(4,19,27,.92)),url('/static/parker-market.svg')!important}
.town-grid .town-card:last-child{background-image:linear-gradient(180deg,rgba(4,19,27,.08),rgba(4,19,27,.92)),url('/static/castle-rock-market.svg')!important}
.town-card .town-label{color:var(--cc-orange)!important;font-size:11px!important;letter-spacing:.15em;font-weight:850}
.town-card h2{font-size:36px;margin:7px 0}
.town-card p{color:#c9dbe2!important;max-width:52ch}
.town-card>span:last-child{font-weight:850;color:#96def2}
.quick-grid{gap:1px!important;background:#d2dfe5;border:1px solid #d2dfe5}
.quick-grid>a{border-radius:0!important;border:0!important;background:#fff!important;padding:20px!important;min-height:105px}
.quick-grid>a b{color:#0d2e3c;font-size:16px}.quick-grid>a span{color:#627b87}

/* Trade directory. */
.trade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.trade-card{background:#fff!important;border:1px solid #d2e0e5!important;padding:22px!important;min-height:285px;text-decoration:none!important;color:var(--cc-ink)!important}
.trade-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.trade-icon{width:36px!important;height:36px!important;border-radius:2px!important;background:#0b2b39!important;color:#8cd9ee!important;display:grid!important;place-items:center;font-weight:900}
.trade-count{font-size:11px;font-weight:800;color:#68808c;text-transform:uppercase;letter-spacing:.08em}
.trade-card h3{font-size:20px;margin:18px 0 8px}.trade-card p{color:#667d89;font-size:14px}
.trade-card-stats{display:flex;gap:16px;margin-top:auto;padding-top:16px;border-top:1px solid #e2e9ed;color:#617985;font-size:12px}
.trade-open{display:block;margin-top:16px;font-weight:850;color:#0b709c}
.trade-disclaimer,.quality-note{border-left:4px solid var(--cc-orange)!important;background:#fff8ea!important;color:#524326!important}

/* Project type directory. */
.seo-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.seo-hub-card{min-height:245px!important;padding:25px!important;background:#fff!important}
.seo-hub-card h2{font-size:22px;margin:18px 0 8px}
.seo-hub-card p{color:#667d89}
.seo-answer-card{background:#0a2a38!important;color:#eaf5f9!important;border:1px solid #1f4c60!important;position:relative;overflow:hidden}
.seo-answer-card::after{content:"";position:absolute;right:-70px;top:-50px;width:360px;height:240px;background:url('/static/geo-blueprint-grid.svg') center/cover no-repeat;opacity:.08;pointer-events:none}
.seo-answer-card h2{color:#fff!important}.seo-answer-card p{color:#bdd0d9!important}.seo-answer-card .eyebrow{color:var(--cc-orange)!important}

/* Jurisdiction dashboards. */
.town-activity-metrics{grid-template-columns:repeat(4,1fr)!important;margin-top:0!important;border-radius:0!important;border-bottom:1px solid #d8e3e8}
.town-activity-metrics>div{padding:24px!important;position:relative}
.town-activity-metrics>div::before{content:"";position:absolute;left:0;top:0;width:46px;height:3px;background:var(--cc-blue)}
.town-activity-metrics>div:last-child::before{background:var(--cc-orange)}
.town-activity-metrics b{font-size:28px!important;font-variant-numeric:tabular-nums}
.index-quality-note,.coverage-note{border-radius:3px!important}
.jump-strip{position:sticky;top:0;z-index:20;background:rgba(244,247,248,.97)!important;border-radius:0!important;border-top:1px solid #d8e3e8!important;border-bottom:1px solid #d8e3e8!important;box-shadow:none!important}
.jump-strip a{font-weight:750}
.seo-link-grid>a{min-height:95px}

/* Map/feed polish. */
.pc-map{background:#092331;min-height:520px}
.pc-map::before{content:"Loading map when needed";position:absolute;inset:0;display:grid;place-items:center;color:#83a8b7;font-size:12px;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}
.pc-map.leaflet-container::before{display:none}
.pc-map-load-failed::before{content:"Map temporarily unavailable — use the project list"}
.leaflet-container{font-family:inherit!important}
.pc-map-marker{background:transparent!important;border:0!important}.pc-marker-dot{display:block;width:15px;height:15px;background:var(--cc-orange);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pc-feed-item{min-height:92px}
.pc-feed-item:hover,.pc-feed-item:focus-visible{background:#f3f8fa!important}

/* Footer. */
.pc-footer{margin-top:72px!important;padding-top:58px!important;padding-bottom:28px!important}
.footer-grid{gap:72px!important}.footer-grid b{text-transform:uppercase;letter-spacing:.11em;font-size:11px;color:#8fd8ec}
.footer-grid a{padding:2px 0}.footer-brand p{color:#a8bcc6}.footer-brand small{color:#708995;line-height:1.55}
.footer-bottom{margin-top:38px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:#708995;font-size:12px}

/* Keep data-heavy pages usable on medium widths. */
@media(max-width:1000px){
  .trade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-grid,.seo-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .town-activity-metrics{grid-template-columns:repeat(2,1fr)!important}
  .pc-nav nav{gap:13px}
}

@media(max-width:800px){
  main{overflow:hidden}
  section{padding-left:18px!important;padding-right:18px!important}
  .pc-nav{padding:0 16px!important;min-height:66px}
  .menu-toggle{display:block!important;margin-left:auto}
  .pc-nav nav{position:absolute;top:66px;left:0;right:0;display:none!important;flex-direction:column;align-items:stretch;gap:0!important;background:#061923;border-top:1px solid #204353;border-bottom:1px solid #204353;padding:8px 16px 16px;box-shadow:0 18px 35px rgba(0,0,0,.25)}
  .pc-nav nav.open{display:flex!important}
  .pc-nav nav>a{padding:13px 6px;border-bottom:1px solid rgba(255,255,255,.06)}
  .pc-nav nav>a::after{display:none!important}
  .pc-nav .pc-nav-cta{margin-top:8px;text-align:center;border-bottom:1px solid #f4aa54!important}
  .pagehead,.compact-head{min-height:0;padding-top:34px!important;padding-bottom:34px!important}
  .pagehead h1,.compact-head h1{font-size:clamp(34px,10vw,46px)!important}
  .town-grid,.project-grid,.seo-hub-grid,.trade-grid{grid-template-columns:1fr!important}
  .town-card{min-height:330px!important}
  .filters,.filters-enhanced,.project-filters{grid-template-columns:1fr!important;padding:14px!important}
  .filter-toggle{display:inline-flex!important;margin-bottom:10px}
  .filters-enhanced:not(.filters-open){display:none!important}
  .sectionhead,.pc-section-head{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}
  .town-activity-metrics{grid-template-columns:1fr 1fr!important;margin-left:18px!important;margin-right:18px!important}
  .jump-strip{position:relative!important;top:auto!important;overflow-x:auto;white-space:nowrap;display:flex!important;flex-wrap:nowrap!important}
  .result-rich{align-items:flex-start!important}.result-rich>.right{min-width:120px}
  .footer-grid{grid-template-columns:1fr!important;gap:32px!important}.footer-bottom{flex-direction:column}
}

@media(max-width:520px){
  body{font-size:15px}
  .pc-wordmark{font-size:16px}
  .town-activity-metrics{grid-template-columns:1fr!important}
  .town-card{min-height:300px!important;padding:26px!important}.town-card h2{font-size:31px}
  .trade-card,.seo-hub-card,.project-card{min-height:0!important;padding:20px!important}
  .result-rich{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.result-rich>.right{text-align:left!important;min-width:0!important;align-items:flex-start!important}
  .result-tabs{overflow-x:auto}.result-tabs button{white-space:nowrap}
  .pc-map{min-height:400px}
}
