/* ZIP entry shares Doggyfide's approved colors and native form affordances. */
.zip-booking-page{max-width:900px;margin:auto;padding:32px 24px 80px;min-height:70vh}
.zip-booking-card{max-width:620px;margin:36px auto}
.zip-booking-card h1{font-size:clamp(40px,6vw,68px);line-height:1.08;letter-spacing:-.035em;margin:16px 0 24px}
.zip-booking-card p,.zip-booking-dialog p{font-size:16px;line-height:1.6}
.zip-check-form{margin:24px 0 0}.zip-check-form>label{display:block;font-weight:600;margin-bottom:8px}
.zip-check-row{display:flex;gap:10px;align-items:stretch}.zip-check-row input{flex:1;min-width:0}
.zip-check-row input,.zip-interest-form input:not([type=checkbox]){min-height:48px;padding:12px 14px;border:1px solid #989f9f;border-radius:10px;background:white;color:#173f41;font:inherit;box-sizing:border-box}
.zip-result{margin-top:16px;max-width:580px;color:#173f41;text-align:left;letter-spacing:normal}.zip-result[hidden],.zip-interest-form[hidden]{display:none!important}
.zip-result .is-error{color:#9d2420}.zip-check-status,.zip-save-status{font:500 15px/1.55 Inter,Arial,sans-serif;margin:12px 0}
.zip-interest-form{display:grid;gap:16px;padding:22px;background:#f7f7f4;border:1px solid #d8dfdc;border-radius:16px}
.zip-interest-form h3{font-size:24px;line-height:1.2;margin:0}.zip-interest-form p{margin:0;font-size:15px;line-height:1.5}
.zip-interest-form label{display:grid;gap:6px;font:500 15px/1.5 Inter,Arial,sans-serif}
.zip-interest-form .zip-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px}.zip-consent input{margin-top:4px;min-width:20px;width:20px;height:20px;accent-color:#196368}
.zip-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.zip-interest-form .button,.zip-check-form .button{min-height:48px;background:#ffb6a9;color:#173f41;cursor:pointer;white-space:nowrap}
.doggyfide-root dialog.zip-booking-dialog{box-sizing:border-box;position:fixed;margin:auto;width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:0;border-radius:20px;background:#fff;color:#173f41;overflow:auto;overscroll-behavior:contain}
.doggyfide-root dialog.zip-booking-dialog::backdrop{background:#102c2db3}.zip-dialog-toolbar{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.zip-dialog-toolbar h2{font-size:30px;line-height:1.2;margin:0}.zip-close{flex-shrink:0;width:44px;height:44px;border:0;border-radius:50%;font-size:30px;line-height:1;background:#edf6f4;color:#173f41;cursor:pointer}
.zip-booking-dialog :focus-visible,.zip-result :focus-visible,.zip-check-form :focus-visible{outline:3px solid #196368;outline-offset:3px}
.zip-form-note{font-size:14px!important;color:#455957}.zip-area-summary{max-width:760px}.zip-area-summary details{margin-top:32px;padding:24px 0;border-top:1px solid #d8dfdc}.zip-area-summary summary{cursor:pointer;font-size:20px}
@media(max-width:480px){.zip-check-row{flex-direction:column}.doggyfide-root dialog.zip-booking-dialog{padding:20px}.zip-dialog-toolbar h2{font-size:26px}.zip-interest-form{padding:18px}.zip-interest-form .button{white-space:normal}}

.doggyfide-root .site-header .nav-cta[data-booking-link]{display:inline-flex;white-space:nowrap}
/* Match the navigation's container breakpoint, including embedded previews. */
@container doggyfide (max-width:900px){
 .doggyfide-root .site-header{gap:8px;min-height:64px;padding:10px 12px 10px 20px;}
 .doggyfide-root .site-header .nav-cta[data-booking-link]{margin-left:auto;flex:none;min-height:44px;padding:10px 16px;font-size:14px;line-height:20px;}
 .doggyfide-root .site-header>.menu-button{margin-left:0;flex:none;}
 .doggyfide-root .site-header>.brand,.doggyfide-root .site-header>.brand img{width:110px;}
}
@container doggyfide (max-width:380px){
 .doggyfide-root .site-header{padding-left:16px;gap:6px;}
 .doggyfide-root .site-header>.brand,.doggyfide-root .site-header>.brand img{width:90px;}
 .doggyfide-root .site-header .nav-cta[data-booking-link]{padding-inline:12px;}
}

/* Keep confirmation and manual actions readable at each ZIP entry. */
.zip-booking-success[hidden]{display:none!important}
.zip-booking-success{padding:18px;background:#edf6f4;border:1px solid #b5d4cf;border-radius:14px}
.zip-booking-success p{margin:0 0 14px;font:500 16px/1.55 Inter,Arial,sans-serif}
.zip-success-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.zip-success-actions button{min-height:48px;cursor:pointer;font:600 15px/1.4 Inter,Arial,sans-serif}
.zip-success-actions .button{background:#ffb6a9;color:#173f41;white-space:normal}
.zip-change{border:1px solid #196368;border-radius:10px;background:white;color:#173f41;padding:12px 16px}
@media(max-width:480px){.zip-success-actions{align-items:stretch;flex-direction:column}}
/* Long labels remain reachable when visitors enlarge text. */
.zip-booking-result,.zip-booking-success,.zip-success-actions button{overflow-wrap:anywhere;min-width:0;max-width:100%}

/* Map popups retain the approved aqua/neutral palette and reachable dismissal. */
.doggyfide-root dialog.zip-booking-dialog{color:#0A0A0A}
.doggyfide-root dialog.zip-booking-dialog::backdrop{background:#0a0a0a99}
.zip-booking-dialog .zip-dialog-toolbar{position:sticky;top:0;z-index:2;background:#fff;padding-block:8px}
.zip-booking-dialog :is(.zip-result,.zip-check-row input,.zip-interest-form input:not([type=checkbox]),.zip-change,.zip-close,.button){color:#0A0A0A}
.zip-booking-dialog :is(.zip-interest-form,.zip-booking-success){background:#EAF7F8;border-color:#E3E8E8}
.zip-booking-dialog .zip-close{background:#EAF7F8}
.zip-booking-dialog .zip-change{border-color:#008DA5}
.zip-booking-dialog .zip-consent input{accent-color:#00AFC4}
.zip-booking-dialog :focus-visible{outline-color:#008DA5}

/* Result components must outrank inherited map input/paragraph rules in every entry. */
.doggyfide-root :is(.zip-result,#df-live-map .zip-result){display:grid;gap:24px;margin-top:20px;width:100%;max-width:580px;min-width:0;overflow-wrap:anywhere;color:#0A0A0A;font-family:Inter,Arial,sans-serif}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result)>:is(.zip-check-status,.zip-save-status){margin:0;font:400 16px/1.5 Inter,Arial,sans-serif;color:var(--zip-status-ink,#0A0A0A)}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result)>.zip-save-status:empty{display:none}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .is-error{color:#9d2420}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) :is(.zip-interest-form,.zip-booking-success){box-sizing:border-box;width:100%;min-width:0;margin:0;padding:24px;background:#EAF7F8;border-color:#E3E8E8;color:#0A0A0A}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form{display:grid;gap:20px}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form :is(h3,p){margin:0;color:#0A0A0A}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form h3{font:700 24px/1.25 Quicksand,Arial,sans-serif;letter-spacing:-.02em}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form p{font:400 15px/1.5 Inter,Arial,sans-serif}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form label{display:grid;gap:8px;min-width:0;margin:0;color:#0A0A0A;font:500 15px/1.5 Inter,Arial,sans-serif}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form input:not([type=checkbox]){box-sizing:border-box;display:block;flex:none;width:100%;min-width:0;min-height:48px;height:auto;margin:0;padding:12px 14px;color:#0A0A0A;background:#fff;border:1px solid #969FA1;border-radius:10px;font:400 16px/1.5 Inter,Arial,sans-serif}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-interest-form .zip-consent{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;min-height:44px;padding:4px 0;cursor:pointer;font-weight:400;font-size:14px}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-consent input[type=checkbox]{box-sizing:border-box;appearance:auto;flex:0 0 20px;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;max-height:20px;margin:1px 0 0;padding:0;border-radius:0;accent-color:#00AFC4;cursor:pointer}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) .zip-consent span{flex:1;min-width:0;line-height:1.5}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) :is(.button,.zip-change){min-width:0;max-width:100%;padding-inline:16px;color:#0A0A0A;white-space:normal;overflow-wrap:anywhere}
.doggyfide-root :is(.zip-result,#df-live-map .zip-result) :focus-visible{outline:3px solid #008DA5;outline-offset:3px}
@media(max-width:480px){.doggyfide-root :is(.zip-result,#df-live-map .zip-result) :is(.zip-interest-form,.zip-booking-success){padding:20px}}

/* The existing dark footer needs a light status above the pale result card. */
.doggyfide-root .footer .zip-result{--zip-status-ink:#FFFFFF}
.doggyfide-root .zip-consent a{text-decoration:underline;text-underline-offset:2px}

/* Service Areas: inline answer card under the hero ZIP field. */
.doggyfide-root .zip-result.is-inline{margin-top:16px}
.doggyfide-root .zip-result.is-inline .zip-check-status{font-size:1.25rem;font-weight:700;line-height:1.3;margin:0 0 10px}
.doggyfide-root .zip-result.is-in .zip-check-status::before{content:"✓";display:inline-grid;place-items:center;width:28px;height:28px;margin-right:10px;border-radius:50%;background:var(--teal,#00b8c4);color:#111b1d;font-size:.9rem;vertical-align:2px}
.doggyfide-root .zip-result.is-inline .zip-booking-success p{margin:0 0 14px}
.doggyfide-root .zip-result.is-inline .zip-success-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.doggyfide-root .zip-result.is-inline .zip-change{text-decoration:underline;text-underline-offset:3px;min-height:44px}
@media(prefers-reduced-motion:no-preference){.doggyfide-root .zip-result.is-inline:not([hidden]){animation:dfZipIn .35s ease-out}@keyframes dfZipIn{from{opacity:0;transform:translateY(6px)}}}
.doggyfide-root #area-checker .zip-result.is-inline>.zip-check-status{font-size:1.25rem;font-weight:700;line-height:1.3;text-align:left}
.doggyfide-root .zip-result.is-out .zip-interest-form label:has([name="zip"]){display:none}
.doggyfide-root .zip-result.is-inline .zip-success-actions{justify-content:flex-start}
