/* Readable supporting copy and flexible figures at narrow widths. */
@media(min-width:641px){
  .workspace{grid-template-columns:1.14fr .86fr}
  .market{grid-column:1;grid-row:1}
  .lookup{grid-column:2;grid-row:1}
}
.sample-tag,.trust,.popular button,.eyebrow,.conversion .eyebrow,.intro .eyebrow,.compare-status,.chart-top,.chart-labels,.sample,.disclaimer,.footer-bottom,footer{font-size:12px}
.comparison p,.national-compare,.conversion p:not(.eyebrow),.conversion-link,.popular,.field-help,.price-label>span{font-size:14px}
.sample-tag{letter-spacing:.25px}
.market .section-label{flex-wrap:wrap}
.median{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:6px;margin-bottom:8px}
.median strong{max-width:100%;overflow-wrap:anywhere}
.median span{flex:none;min-width:0;max-width:none;font-size:14px;font-weight:500;line-height:1.5}
.conversion{background:#27274f;border:0;border-radius:24px;padding:36px 40px;gap:40px;color:white}
.conversion .eyebrow{letter-spacing:1px;color:#e5f45a}
.conversion-copy{flex:1;min-width:0}
.trust-badge{display:inline-flex;align-items:center;gap:10px;max-width:100%;margin-bottom:18px;padding:10px 16px;background:#fff;border:1px solid #e2e4f5;border-radius:999px;color:#2d3966;font-size:12px;font-weight:750;letter-spacing:1.3px;text-transform:uppercase;line-height:1.5}
.trust-badge span{display:grid;place-items:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#2d3966;color:white;font-size:13px;letter-spacing:0}
.conversion h2{font-size:24px;line-height:1.3;margin:8px 0 10px;color:white}
.conversion p:not(.eyebrow){max-width:640px;font-size:16px;line-height:1.6;color:#d1d5ed}
.conversion-link{background:#e5f45a;border:0;border-radius:999px;color:#17172c;padding:18px 30px;font-size:16px;font-weight:750;text-align:center;white-space:nowrap}
.conversion-link:hover{background:#effb85}
.conversion-link span{margin-left:5px}
.conversion-link:focus-visible{outline-color:white}
.chart-top{flex-wrap:wrap}
.contribution-card{margin-top:24px;padding:22px;background:#f6f8eb;border:1px solid #e0e7bc;border-radius:16px}
.contribution-kicker{display:flex;align-items:center;gap:8px;color:#59682f;font-size:10px;font-weight:800;letter-spacing:1px}
.contribution-kicker span{font-size:20px}
.contribution-card h3{color:var(--navy);font-size:20px;line-height:1.45;letter-spacing:-.5px;margin:12px 0 8px}
.contribution-description{font-size:14px;line-height:1.7;color:#606951;margin:0}
.contribution-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.contribution-yes{border:0;background:var(--navy);color:white;padding:13px 16px;border-radius:9px;font-size:14px;font-weight:700;min-height:44px}
.contribution-yes:hover{background:#202c56}
.contribution-yes span{margin-left:10px}
.contribution-adjust,.contribution-cancel{border:0;background:none;padding:10px 0;color:var(--navy);font-size:14px;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.contribution-note{font-size:12px;line-height:1.6;color:#687151;margin:14px 0 0}
.contribution-preview{font-size:12px;line-height:1.6;color:#6c7080;margin:8px 0 0}
.contribution-error{font-size:14px;line-height:1.6;color:#923a2a}
.contribution-edit{margin-top:18px}
.contribution-edit label{display:block;margin-bottom:8px}
.contribution-edit-row{display:flex;gap:10px;flex-wrap:wrap}
.contribution-edit-row .price-wrap{flex:1;min-width:110px}
.contribution-edit-row input{height:46px}
#city-options li small{font-size:12px}
@media(max-width:640px){
  .intro .eyebrow{font-size:10px;letter-spacing:.8px}
  .median strong{font-size:54px;letter-spacing:-2.5px}
  .sample-tag{font-size:10px}
  .comparison p,.national-compare{font-size:14px}
  .conversion{padding:28px 24px;gap:24px}
  .conversion-copy{flex-basis:100%}
  .conversion-link{font-size:16px;padding:16px 22px}
  .nav-cta{font-size:12px;padding:10px}
  .product-name{font-size:11px}
  .conversion .eyebrow{font-size:10px}
  .trust{font-size:12px}
}
/* Small input text triggers automatic focus zoom on mobile Safari. Keep
   editable controls readable, including the dynamically added price editor.
   Leave the viewport scalable so visitors can still pinch to zoom. */
@media(max-width:800px),(hover:none) and (pointer:coarse){
  #city,input[type=number],select,textarea{font-size:16px}
  #city-options{overscroll-behavior:contain;touch-action:pan-y}
}
@media(max-width:360px){.product-name{display:none}.median strong{font-size:48px}.section-label h2{font-size:14px}}
