/* New route controls only; existing calculator layout and styles are preserved. */
#em-calculator .em-address-search { position:relative; min-width:0; }
#em-calculator .em-address-suggestions { position:absolute; z-index:20; top:calc(100% + 4px); inset-inline:0; max-height:260px; overflow-y:auto; overscroll-behavior:contain; padding:4px; margin:0; list-style:none; border:1px solid var(--em-border,#dce7e5); border-radius:10px; background:#fff; box-shadow:0 8px 22px #133c3c20; color:var(--em-dark,#113a3d); }
#em-calculator .em-address-suggestions [role=option] { min-height:48px; padding:10px 12px; font-size:.85rem; line-height:1.5; overflow-wrap:anywhere; cursor:pointer; border-radius:6px; }
#em-calculator .em-address-suggestions [role=option]:hover, #em-calculator .em-address-suggestions [aria-selected=true] { color:#07545b; background:#e5f6f3; }
#em-calculator .em-address-search .em-help:empty { display:none; }
#em-calculator .em-route-panel { margin:-.25rem 0 1rem; min-width:0; }
#em-calculator .em-route-result { margin:0 0 .3rem; color:var(--em-teal,#087c83); font-size:.85rem; font-weight:750; line-height:1.6; overflow-wrap:anywhere; }
#em-calculator .em-route-panel .em-link { margin:.35rem 0; min-height:32px; }
#em-calculator .em-route-attribution, #em-calculator .em-route-privacy { display:block; color:#506967; font-size:.68rem; line-height:1.6; }
#em-calculator .em-route-attribution a { color:var(--em-teal,#087c83); text-decoration:underline; }
#em-calculator .em-route-privacy { margin-top:.2rem; }
@media(max-width:600px) { #em-calculator .em-route-panel .em-link { min-height:44px; } }

/* Google result attribution: official unchanged logo, visible with every prediction list. */
.em-address-popup {position:absolute;left:0;right:0;top:100%;z-index:30;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 6px 18px rgba(15,23,42,.16);overflow:hidden;}
.em-address-popup[hidden] {display:none;}
#em-calculator .em-address-popup .em-address-suggestions {position:static;border:0;border-radius:0;box-shadow:none;max-height:240px;margin:0;}
.em-google-attribution {display:inline-block;padding:10px 10px 5px;vertical-align:middle;line-height:1;}
.em-google-attribution img {height:18px;width:auto;max-width:none;display:block;}
.em-address-popup > .em-google-attribution {display:block;text-align:right;border-top:1px solid #e2e8f0;}
.em-address-popup > .em-google-attribution img {margin-left:auto;}
.em-address-popup > .em-google-attribution[hidden], .em-district-attribution[hidden] {display:none;}
.em-district-attribution {display:block;padding:8px 12px;font:500 .68rem/1.5 Arial,sans-serif;color:#506967;border-top:1px solid #e2e8f0;}
#em-calculator .em-address-suggestions .em-district-option {display:block;margin-top:2px;color:#506967;font-size:.68rem;line-height:1.4;}
.em-address-map-link {display:block;padding:8px 0;min-height:32px;color:#087c83;font-size:.72rem;line-height:1.5;text-decoration:underline;overflow-wrap:anywhere;}
.em-maps-actions {margin:-.4rem 0 1rem;}
.em-maps-actions small {display:block;color:#506967;font-size:.72rem;line-height:1.6;margin-top:4px;}
.em-maps-external {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 15px;border:1px solid #b5d7d2;border-radius:9px;background:#e9f7f3;color:#07545b;font:600 .8rem/1.5 Arial,sans-serif;text-decoration:none;box-sizing:border-box;}
.em-maps-external:focus-visible,.em-address-map-link:focus-visible {outline:3px solid #087c83;outline-offset:3px;}
.em-address-map-link[hidden],.em-maps-actions[hidden],.em-maps-external[hidden] {display:none;}
#em-route-map-dialog .em-maps-external {margin-top:12px;}
.em-quote-map-link {color:#087c83;text-decoration:underline;overflow-wrap:anywhere;}
@media(max-width:600px) {.em-address-map-link {min-height:44px;}.em-maps-external {display:flex;width:100%;}}
.em-route-privacy a {text-decoration:underline;}
.em-more-addresses {margin:0 0 16px;}
.em-more-addresses>small {display:block;margin-top:6px;}
.em-extra-stop {display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:12px;margin:12px 0;}
.em-remove-address {min-height:44px;margin-top:26px;border:1px solid #b5d7d2;border-radius:9px;background:#f5faf8;color:#07545b;font-size:24px;align-self:start;cursor:pointer;}
.em-remove-address:focus-visible {outline:3px solid #087c83;outline-offset:3px;}
.em-route-parts {margin-top:8px;}
.em-stop-order {display:flex;gap:6px;justify-content:flex-end;margin-bottom:4px;}
.em-stop-move {min-width:44px;min-height:44px;border:1px solid #b5d7d2;border-radius:9px;background:#f5faf8;color:#07545b;font-size:20px;cursor:pointer;}
.em-stop-move:disabled {opacity:.35;cursor:default;}
.em-stop-move:focus-visible {outline:3px solid #087c83;outline-offset:3px;}
#em-calculator .em-stop-details {margin:8px 0 18px;border:1px solid #d1e2dc;border-radius:10px;}
#em-calculator .em-stop-details>summary {padding:12px;min-height:44px;box-sizing:border-box;color:#07545b;cursor:pointer;font-size:.82rem;font-weight:700;}
#em-calculator .em-stop-grid {display:grid;grid-template-columns:1fr;gap:4px;padding:12px;}
#em-calculator .em-stop-grid select {width:100%;min-height:44px;padding:10px;border:1px solid #ccdcd7;border-radius:9px;background:#fff;color:#173e39;font:inherit;box-sizing:border-box;}
#em-calculator .em-stop-grid .em-location {min-width:0;}
#em-calculator .em-stop-grid .em-field {margin-bottom:10px;}
#em-calculator .em-stop-fee-note {margin:10px 0;}
#em-calculator .em-price-breakdown {margin:18px 0;border-block:1px solid #ffffff30;}
#em-calculator .em-price-breakdown>summary {padding:16px 0;min-height:44px;box-sizing:border-box;color:#d7f4e9;cursor:pointer;font-size:.9rem;font-weight:700;}
#em-calculator .em-price-breakdown>summary:focus-visible {outline:2px solid #c3f0d9;outline-offset:2px;}
#em-calculator .em-price-breakdown #calc-lines li {flex-wrap:wrap;}
#em-calculator .em-price-breakdown #calc-lines li>span {flex:1 1 160px;}
#em-calculator .em-price-breakdown #calc-lines b {flex:0 0 auto;}

#em-calculator .em-map-button {display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:6px 0 10px 14px;padding:9px 15px;border:1px solid #b5d7d2;border-radius:9px;background:#e9f7f3;color:#07545b;font:inherit;font-size:.8rem;font-weight:650;cursor:pointer;}
#em-calculator .em-map-button:disabled {opacity:.5;cursor:default;}
#em-calculator .em-map-button:focus-visible,#em-route-map-dialog button:focus-visible {outline:3px solid #087c83;outline-offset:3px;}
#em-route-map-dialog {width:min(640px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);box-sizing:border-box;margin:auto;padding:18px;border:1px solid #cee0dc;border-radius:16px;color:#153d3b;background:#fff;box-shadow:0 20px 70px #133c3c30;}
#em-route-map-dialog::backdrop {background:#143c3c38;}
#em-route-map-dialog .em-map-header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;}
#em-route-map-dialog h2 {font:700 1.1rem/1.4 var(--font-body,Arial,sans-serif);margin:0;}
#em-route-map-dialog .em-map-close {min-height:44px;padding:8px 14px;border:1px solid #c8dcd6;border-radius:9px;background:#f3faf7;color:#153d3b;font:600 .85rem/1.4 Arial,sans-serif;cursor:pointer;}
#em-route-map-dialog iframe {display:block;width:100%;height:320px;border:0;border-radius:9px;}
#em-route-map-dialog iframe[hidden],#em-route-map-dialog [role=status]:empty {display:none;}
#em-route-map-dialog p {font:400 .82rem/1.6 Arial,sans-serif;margin:10px 0 0;}
#em-route-map-dialog .em-map-distance {font-weight:700;color:#087c83;}
#em-route-map-dialog .em-map-note {color:#506967;font-size:.75rem;}
/* The map view uses Place IDs only; Places result text stays in the separate form view. */
body.em-route-map-open > :not(#em-route-map-dialog) {visibility:hidden;}
body.em-route-map-open {overflow:hidden;}
@media(max-width:600px) {#em-calculator .em-map-button {margin-left:0;display:flex;width:100%;}#em-route-map-dialog {padding:12px;}#em-route-map-dialog iframe {height:300px;}}

/* Keep the original contact buttons and motto beneath the live estimate. */
.em-mobile-price[hidden] {display:none;}
.mbar.em-mobile-price-bar {display:none;}
@media(max-width:760px), (max-width:900px) and (max-height:500px) {
  .mbar.em-mobile-price-bar,
  .mbar.em-mobile-price-bar.browser-ui-visible,
  .mbar.em-mobile-price-bar.browser-ui-collapsed {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(28px,auto) minmax(44px,auto) auto;
    column-gap:10px;row-gap:7px;align-items:center;padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));
    bottom:var(--em-mobile-price-bottom,0px);border-top:1px solid #d1e2dc;background:#fff;
  }
  .mbar.em-mobile-price-bar.browser-ui-visible {grid-template-rows:minmax(28px,auto) minmax(44px,auto);}
  .mbar.em-mobile-price-bar .em-mobile-price {grid-column:1 / -1;grid-row:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:28px;padding:0;color:#133c3c;line-height:1.2;}
  .em-mobile-price__label {font-size:11px;font-weight:650;color:#506967;}
  .em-mobile-price__total {display:block;font-size:clamp(19px,5.6vw,22px);font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.035em;overflow-wrap:anywhere;}
  .mbar.em-mobile-price-bar [data-testid="mbar-whatsapp"] {display:inline-flex;grid-column:1;grid-row:2;}
  .mbar.em-mobile-price-bar [data-testid="mbar-quote"] {grid-column:2;grid-row:2;}
  .mbar.em-mobile-price-bar .btn {height:auto;min-height:44px;max-height:none;min-width:0;padding:10px 8px;justify-content:center;font-size:13px;line-height:1.3;}
  .mbar.em-mobile-price-bar .mbar__motto {display:block;grid-column:1 / -1;grid-row:3;}
  .mbar.em-mobile-price-bar.browser-ui-visible .mbar__motto {display:none;}
  .mbar.em-mobile-price-bar a:focus-visible {outline:3px solid #087c83;outline-offset:3px;}
  #em-total-result,#em-contact {scroll-margin-top:92px;}
  #em-calculator :is(input,textarea,select) {scroll-margin-bottom:calc(var(--mbar-reserved-space,110px) + 16px);}
  body:has(.mnav.open) .mbar.em-mobile-price-bar,
  body:has(dialog[open]) .mbar.em-mobile-price-bar {visibility:hidden;pointer-events:none;}
}
@media print {.mbar.em-mobile-price-bar {display:none!important;}}
