/* Shared ZIP-first entry, with each site's existing brand colors and controls. */
[hidden] {display:none !important}
.zip-hero {padding:42px 0 30px;background:#f4f7f4}
.zip-hero-heading {max-width:850px;margin:0 auto 26px;text-align:center}
.zip-hero-heading h1,.zip-hero-heading h2 {font-size:clamp(1.9rem,4vw,3rem);line-height:1.15;margin:10px 0 14px}
.zip-hero-heading p {margin:0;font-size:1.15rem}
.zip-choices {display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin:auto;align-items:start}
.zip-online,.zip-phone {background:#fff;border:1px solid #d6e1db;border-radius:18px;padding:30px}
.zip-online h2,.zip-phone h2 {font-size:1.5rem;margin:0 0 12px}
.zip-phone {text-align:center}
.zip-phone-number {display:inline-block;font-size:clamp(1.6rem,3vw,2rem);font-weight:750;margin:12px 0;text-decoration:underline}
.zip-entry label {display:block;font-weight:650;margin:12px 0 8px}
.zip-input-row {display:flex;gap:10px;align-items:stretch}
.zip-entry input,.zip-entry select {min-width:0;width:100%;border:1px solid #7a8b82;border-radius:7px;padding:13px;font:inherit;background:#fff;color:#142c23}
.zip-input-row input {flex:1;width:120px}
.zip-input-row button {white-space:nowrap;min-height:48px}
.zip-status {margin-top:10px;line-height:1.5}
.zip-entry button:disabled {opacity:.65;cursor:wait}
.zip-contact-heading h3 {font-size:1.3rem;margin:18px 0 8px}
.zip-change {background:none;border:0;text-decoration:underline;padding:8px 0;font:inherit;cursor:pointer;color:inherit}
.zip-reassurance {text-align:center;margin:22px 0 0}
.zip-repeat {padding:36px 0;background:#f4f7f4;text-align:center;border-top:1px solid #d6e1db}
.zip-repeat h2 {margin:0 0 10px;font-size:1.6rem}
.zip-repeat .zip-entry {max-width:480px;margin:auto;text-align:left}
#start-review {scroll-margin-top:130px}
.header,.site-header {position:sticky;top:0;z-index:40}
.nav {flex-wrap:wrap;gap:12px}
.rm-header-actions,.contact-header-actions {display:flex !important;align-items:center;gap:16px;margin-left:auto}
.rm-nav-phone,.contact-nav-phone {white-space:nowrap}
@media(max-width:760px) {
 .zip-hero {padding:24px 0}
 .zip-hero-heading {text-align:left;margin-bottom:20px}
 .zip-choices {grid-template-columns:minmax(0,1fr);gap:16px}
 .zip-online,.zip-phone {padding:22px}
 .zip-phone {order:2}
 .rm-header-actions,.contact-header-actions {width:100%;justify-content:space-between;gap:8px;padding:8px 0}
 .rm-header-actions .navcta,.contact-header-actions .btn {font-size:.85rem;padding:10px}
 .rm-nav-phone span,.contact-nav-phone span {display:none}
 .rm-nav-phone a,.contact-nav-phone a {font-size:.9rem}
 .navlinks,.nav-links {order:4}
 #start-review {scroll-margin-top:180px}
}
@media(max-width:360px) {.zip-input-row {flex-wrap:wrap}.zip-input-row button {width:100%}}

.zip-input-row .btn {width:auto}
@media(max-width:760px){.rm-header-actions,.contact-header-actions{flex-direction:row;flex-wrap:nowrap}.rm-header-actions .navcta,.contact-header-actions .btn{width:auto;flex:none}.zip-input-row .btn{width:auto}}
@media(max-width:360px){.zip-input-row .btn{width:100%}}

@media(max-width:760px){
 .topstrip{display:none}
 .header .nav,.site-header .nav{padding-top:10px;padding-bottom:10px;gap:8px}
 .zip-hero{padding:18px 0}
 .zip-hero-heading .eyebrow{display:none}
 .zip-hero-heading h1,.zip-hero-heading h2{font-size:1.65rem;margin:0 0 10px}
 .zip-hero-heading p{font-size:1rem;line-height:1.5}
 .zip-hero-heading{margin-bottom:16px}
 .zip-online{padding:18px}
 .zip-online h2{font-size:1.25rem}
 .zip-online>p{margin:8px 0;font-size:1rem}
 .rm-header-actions,.contact-header-actions{padding:0}
 .rm-header-actions .navcta{font-size:.8rem}
 .brand-words strong{font-size:18px}
 .brand-disclaimer{font-size:10px}
}

/* Desktop: phone left, ZIP right. Mobile retains ZIP before phone. */
@media(min-width:761px){.zip-phone{grid-column:1;grid-row:1}.zip-online{grid-column:2;grid-row:1}}

.zip-online > #zip-review-heading {display:block;width:100%;max-width:none;margin-left:0;margin-right:0;text-align:center}

.zip-panel-icon {display:block;width:40px;height:40px;margin:0 auto 16px;color:inherit}
@media(max-width:760px){.zip-panel-icon{width:32px;height:32px;margin-bottom:12px}}

/* Match desktop panel heights to the taller panel. */
@media(min-width:761px){.zip-choices{align-items:stretch}}

/* Header actions live outside the collapsible nav and need their own button styles. */
.rm-header-actions > .navcta,.contact-header-actions > .btn {
 display:inline-flex;align-items:center;justify-content:center;min-height:44px;
 padding:11px 18px;border-radius:100px;background:var(--forest,var(--brand));
 color:#fff;font-size:14px;font-weight:700;line-height:1.25;white-space:nowrap;
 text-decoration:none;box-shadow:none;width:auto;flex:none;
}
.rm-header-actions > .navcta:hover,.contact-header-actions > .btn:hover {filter:brightness(.94);text-decoration:none}
.rm-header-actions > .navcta:focus-visible,.contact-header-actions > .btn:focus-visible {outline:3px solid currentColor;outline-offset:3px}
@media(max-width:760px){.rm-header-actions > .navcta,.contact-header-actions > .btn{font-size:12px;padding:10px 12px}}

@media(max-width:360px){.rm-header-actions > .navcta,.contact-header-actions > .btn{font-size:11px;padding:10px}.rm-nav-phone a,.contact-nav-phone a{font-size:12px}.rm-header-actions,.contact-header-actions{gap:6px}}
