/* Shared pieces for both proposals: builder logos, service-area map, membership checkout.
   Colors and fonts come from each page's own variables. */

/* builder logos */
.logos{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.logos li{background:#fff;border:var(--tile-border,1px solid rgba(20,44,92,.18));border-radius:var(--tile-radius,6px);height:112px;display:grid;place-items:center;padding:1rem}
.logos li.dark{background:var(--navy)}
.logos img{max-width:100%;max-height:78px;object-fit:contain}
.logos li.more{background:transparent;border-style:dashed;font-weight:600;text-align:center;line-height:1.3}

/* service areas: map + list */
.areamap{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(1.25rem,3vw,2.5rem);align-items:stretch;margin-top:2.25rem}
#map{position:relative;isolation:isolate;z-index:0;min-height:560px;background:#E9EEF2;border:var(--tile-border,1px solid rgba(20,44,92,.18));border-radius:var(--map-radius,6px);overflow:hidden;font-family:var(--body)}
#map.leaflet-container{background:#DCEAF5}
#map .state-label{font:600 .8rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);opacity:.45;text-align:center;white-space:nowrap}
#map .city-label{background:transparent;border:0;box-shadow:none;font:500 .78rem var(--body);padding:0}
#map .city-label::before{display:none}
#map .leaflet-tooltip{font:600 .8rem var(--body);color:var(--navy);border:0;box-shadow:0 2px 8px rgba(13,31,68,.25)}
#map .leaflet-popup-content{font:500 .95rem var(--body);color:var(--navy);margin:.6rem .9rem}
.arealist{max-height:560px;overflow-y:auto;padding-right:.75rem}
.arealist h3{font:600 1rem var(--body);letter-spacing:0;margin:1.5rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid rgba(20,44,92,.25)}
.arealist h3:first-child{margin-top:0}
.arealist ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.arealist button{font:inherit;font-size:.95rem;color:var(--navy);background:#fff;border:var(--chip-border,1px solid rgba(20,44,92,.25));border-radius:var(--chip-radius,4px);padding:.25rem .65rem;cursor:pointer}
.arealist button:hover,.arealist button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
@media (max-width:860px){.areamap{grid-template-columns:1fr}#map{min-height:380px}.arealist{max-height:none;padding-right:0}}

/* membership checkout */
dialog.co{border:var(--co-border,0);border-radius:var(--co-radius,8px);padding:0;width:min(580px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);color:var(--navy);font-family:var(--body);background:#fff;box-shadow:0 30px 80px rgba(13,31,68,.4)}
dialog.co::backdrop{background:rgba(13,31,68,.55)}
.co-head{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding:1.5rem 1.75rem 0}
.co-head h2{font-size:1.9rem}
.co-x{font:inherit;font-size:1.7rem;line-height:1;background:none;border:0;color:inherit;cursor:pointer;padding:.2rem .4rem}
.co-body{padding:1.25rem 1.75rem 1.75rem;display:grid;gap:1.1rem}
.co-body[hidden]{display:none}
.co-plans{border:0;margin:0;padding:0;display:grid;gap:.5rem}
.co-plans legend,.co-field span{font-weight:600;font-size:.9rem;margin-bottom:.35rem;display:block;padding:0}
.co-plan{display:grid;grid-template-columns:auto 1fr auto;gap:.2rem .75rem;align-items:center;border:var(--chip-border,1px solid rgba(20,44,92,.25));border-radius:var(--field-radius,6px);padding:.7rem .9rem;cursor:pointer}
.co-plan:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy);background:var(--co-pick,#F2F1ED)}
.co-plan b{font-weight:600}
.co-plan small{grid-column:2;font-size:.88rem;opacity:.85}
.co-plan .co-price{grid-column:3;grid-row:1 / span 2;font:var(--co-price-font,600 1.25rem var(--display))}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.co-field.wide{grid-column:1 / -1}
.co-field input{width:100%;font:inherit;color:inherit;padding:.65rem .8rem;border:var(--chip-border,1px solid rgba(20,44,92,.35));border-radius:var(--field-radius,6px);background:#fff}
.co-field input:focus{outline:3px solid var(--sky);outline-offset:1px}
.co-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid rgba(20,44,92,.2);padding-top:1rem}
.co-total strong{font:var(--co-price-font,600 1.5rem var(--display))}
.co-body .btn{justify-self:start;text-align:center}
.co-fine{font-size:.85rem;opacity:.8}
.co-demo{background:#FFF4D6;color:#5C4000;border-radius:6px;padding:.7rem .9rem;font-size:.9rem}
@media (max-width:520px){.co-grid{grid-template-columns:1fr}}

/* membership "More info" */
.info-link{font:inherit;font-weight:600;color:inherit;background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.plan .info-link,.plans tfoot .info-link{display:block;margin-top:.9rem}
.plan .info-link{align-self:center}
.co-info .co-total{border-top:0;padding-top:0;gap:1.5rem;align-items:start}
.co-info .co-total strong{white-space:nowrap}
.co-label{font-weight:600;font-size:.9rem;margin-bottom:.4rem}
.co-list{margin:0;padding-left:1.2rem;display:grid;gap:.4rem}
.co-up{background:var(--co-pick,#F2F1ED);border-radius:var(--field-radius,6px);padding:.8rem 1rem;font-size:.95rem}
