.address-picker { position:relative; z-index:5; display:grid; gap:0; margin-top:8px; padding:0; max-height:360px; overflow:auto; border:1px solid #e8e8e8; border-radius:12px; background:#fff; color:#111; box-shadow:0 8px 20px #00000012; scrollbar-width:thin; scroll-margin-bottom:20px; }
.address-picker { animation:none; }
.address-picker[hidden] { display:none; }
.address-picker .address-picker-message { margin:0; padding:18px 16px; color:#555; font-size:14px; line-height:1.5; }
.address-picker button { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:14px; width:100%; min-height:68px; margin:0; padding:14px 16px; border:0; border-bottom:1px solid #f0f0f0; border-radius:0; background:#fff; color:#111; font:inherit; text-align:left; cursor:pointer; }
.address-picker button:last-child { border-bottom:0; }
.address-picker button:hover, .address-picker button[aria-selected="true"] { background:#f5f5f5; }
.address-picker .address-option-icon { display:grid; place-items:center; width:36px; height:36px; margin:0; border-radius:50%; background:#eee; color:#111; }
.address-picker .address-option-icon svg { display:block; width:18px; height:18px; }
.address-picker .address-option-copy { display:grid; gap:4px; margin:0; min-width:0; }
.address-picker .address-option-copy strong { display:block; color:#111; font-size:15px; font-weight:500; line-height:1.3; }
.address-picker .address-option-copy > span { display:block; margin:0; color:#555; font-size:13px; line-height:1.3; }

/* Use the same address entry treatment in Location and the quote menu. */
.location .travel-checker .travel-address-bar { min-height:54px; padding:0 12px 0 16px; gap:12px; border-radius:8px; background:#f3f3f3; transition:none; }
.location .travel-checker .travel-address-bar:focus-within { border-color:#888; }
.location .travel-checker[data-state="confirmed"] .travel-address-bar { min-height:var(--confirmed-desktop-height,54px); }
.location .travel-address-field { gap:12px; padding:0; color:#777; }
.location .travel-address-field > svg { display:block; width:19px; height:19px; }
.location .travel-address-bar input { min-height:54px; padding:14px 0; color:#111; font-size:16px; }
.location .travel-address-bar input::placeholder { color:#777; }
.location #travel-address::selection { background:#d5e8fa; color:#111; }
.location #travel-address:is(:autofill, :-webkit-autofill) { -webkit-box-shadow:0 0 0 1000px #f3f3f3 inset; box-shadow:0 0 0 1000px #f3f3f3 inset; -webkit-text-fill-color:#111; caret-color:#111; }
.location .travel-checker[data-state="confirmed"] .travel-inline-status { width:auto; min-height:0; flex:none; gap:6px; color:#111; font-size:12px; }
.location .travel-success-icon { width:20px; height:20px; border-radius:50%; background:#111; color:#fff; }
.location .travel-success-icon svg { width:15px; height:15px; }
.location .travel-success-icon path { animation:none; stroke-dasharray:none; }
.location .travel-checker .travel-book-button { display:block; width:100%; min-height:48px; margin-top:16px; padding:12px 20px; border:0; border-radius:8px; background:#111; color:#fff; font:inherit; font-size:15px; cursor:pointer; }
.location .travel-checker .travel-book-button[hidden] { display:none; }
.location .travel-checker .travel-book-button:hover { background:#222; }
.location .travel-checker .travel-result { margin:14px 0 0; }
.location .travel-result.is-free strong { color:#111; }
.location .travel-checker { margin-top:26px; }
.location .travel-checker .travel-inline-status { width:auto; min-height:0; flex:none; color:#555; font-size:12px; }
.location .travel-checker .travel-address-bar .travel-undo { width:auto; margin:0; min-height:36px; padding:0 12px; border-radius:5px; background:#e7e7e7; color:#111; font-size:12px; white-space:nowrap; }
.location .travel-checker .travel-address-bar .travel-undo:hover { background:#ddd; }
@media (max-width:760px) {
  .location .travel-checker .travel-address-bar { display:flex; gap:8px; padding:0 12px; }
  .location .travel-checker[data-state="confirmed"] .travel-address-bar { min-height:var(--confirmed-mobile-height,54px); }
  .location .travel-checker .travel-inline-status { position:absolute; top:100%; right:0; margin-top:4px; }
}

.location .travel-address-stack { position:relative; }
.location .travel-checker .travel-address-bar { position:relative; z-index:1; border-radius:8px 8px 0 0; }
.location .travel-unit-disclosure { border-top:1px solid #dedede; border-radius:0 0 8px 8px; background:#f3f3f3; }
.location .travel-unit-disclosure summary { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:0 16px; color:#333; font-size:13px; font-weight:500; list-style:none; cursor:pointer; }
.location .travel-unit-disclosure summary::-webkit-details-marker { display:none; }
.location .travel-unit-disclosure summary::after { content:''; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.location .travel-unit-disclosure[open] summary::after { transform:rotate(225deg) translateY(-2px); }
.location .travel-unit-disclosure[open] { padding-bottom:12px; }
.location .travel-unit-disclosure label { position:absolute; width:1px; height:1px; padding:0; margin:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.location .travel-unit-disclosure input { display:block; width:calc(100% - 32px); min-height:46px; margin:0 16px; padding:10px 12px; border:1px solid #d5d5d5; border-radius:5px; background:#fff; color:#111; font:inherit; font-size:14px; }
.location .travel-unit-disclosure input:focus-visible { outline:2px solid #111; outline-offset:2px; }
.location .travel-suggestions { position:relative; z-index:1; top:auto; right:auto; left:auto; max-height:min(300px,40vh); margin:0; border-radius:0 0 16px 16px; overscroll-behavior:contain; }
.location .location-access-choice { position:relative; display:flex; align-items:center; gap:12px; width:100%; max-width:460px; min-height:86px; margin:34px 0 0; padding:14px 90px 14px 18px; border:1px solid #d8d8d8; border-radius:12px; background:#fff; color:#111; cursor:pointer; }
.location-access-choice input { flex:none; width:24px; height:24px; margin:0; accent-color:#111; color-scheme:light; cursor:pointer; }
.location-access-choice strong { font-size:16px; font-weight:600; line-height:1.35; letter-spacing:-.02em; }
.location-access-choice small { position:absolute; top:12px; right:14px; color:#777; font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.06em; }
.location .location-access-choice:has(:checked) { border-color:#111; }
.location-access-choice:has(:focus-visible) { outline:2px solid #111; outline-offset:3px; }

/* The same Phosphor check marks access in Location and in the cart. */
.location .location-access-choice > input,
.quote-form .cart-address-phase .cart-utilities > input { position:absolute; width:1px; min-width:1px; height:1px; min-height:1px; margin:0; padding:0; opacity:0; clip-path:inset(50%); }
.location-access-choice .access-check,
.quote-form .cart-utilities .access-check { display:grid; place-items:center; flex:none; width:24px; height:24px; border:1.5px solid #777; border-radius:5px; background:#fff; color:#fff; }
.access-check svg { display:block; width:17px; height:17px; fill:currentColor; opacity:0; }
.location-access-choice:has(> input:checked) .access-check,
.quote-form .cart-utilities:has(> input:checked) .access-check { border-color:#111; background:#111; }
.location-access-choice:has(> input:checked) .access-check svg,
.quote-form .cart-utilities:has(> input:checked) .access-check svg { opacity:1; }
.location-access-choice:has(> input:focus-visible) .access-check,
.quote-form .cart-utilities:has(> input:focus-visible) .access-check { outline:2px solid #111; outline-offset:3px; }
@media(max-width:760px) {
  .location .travel-checker .travel-address-bar { border-radius:8px 8px 0 0; }
  .location .travel-suggestions { max-height:min(280px,35vh); }
  .location .location-access-choice { margin-top:16px; }
}
/* Loading feedback stays beside the field in document flow, never over the map. */
.location .travel-checker .travel-inline-status { position:static; width:100%; min-height:20px; margin:8px 0 0; justify-content:flex-start; font-size:12px; }
.location .travel-checker .travel-inline-status[hidden] { display:none; }
.location .travel-checker[aria-busy="true"] .travel-inline-status::before { content:''; width:12px; height:12px; border:1.5px solid #ccc; border-top-color:#111; border-radius:50%; animation:address-loading-spin .8s linear infinite; }
@keyframes address-loading-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .location .travel-checker[aria-busy="true"] .travel-inline-status::before { animation:none; } }

/* Address actions occupy their own row, below feedback on every viewport. */
.location .travel-checker .travel-confirm-button { display:inline-flex; align-items:center; justify-content:center; width:auto; min-height:44px; margin:12px 0 0; padding:0 18px; border:1px solid #ddd; border-radius:8px; background:#f3f3f3; color:#111; font:inherit; font-size:14px; font-weight:500; cursor:pointer; }
.location .travel-checker .travel-confirm-button[hidden] { display:none; }
.location .travel-checker .travel-confirm-button:hover { background:#e8e8e8; }
.location .travel-checker .travel-confirm-button:focus-visible { outline:2px solid #111; outline-offset:3px; }
.location .travel-checker .travel-result.is-error { padding:14px 16px; border:1px solid #e4e4e4; border-radius:8px; background:#fafafa; }
.location .travel-checker .travel-result.is-error strong { font-size:15px; font-weight:600; line-height:1.4; letter-spacing:0; }
.location .travel-checker .travel-result.is-error p { margin-top:6px; font-size:13px; line-height:1.5; color:#555; }
