:root { --site-unit: min(1vw, 18px); color-scheme: dark; font-family: Inter, Arial, sans-serif; background: #000; color: #fff; scroll-behavior: smooth; scroll-padding-top: 24px; }
* { box-sizing: border-box; }
body { margin: 0; background: #000; cursor: default; -webkit-user-select: none; user-select: none; }
button, input, select, textarea { font: inherit; }
button { cursor: default; }
a { color: inherit; cursor: default; }
input, textarea { cursor: text; -webkit-user-select: text; user-select: text; }
.site { width: min(100%, 1800px); margin: 0 auto; }
.site-header { position: fixed; top: 0; left: 50%; width: min(100%, 1800px); transform: translateX(-50%); z-index: 20; padding: 14px 28px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; background: #000; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.site-header.is-hidden { transform: translate(-50%, -110%); pointer-events: none; }
.header-space { height: 68px; }
.brand, .main-nav a, .main-nav button { display: inline-block; font-size: 16px; line-height: 1.2; text-decoration: none; text-transform: uppercase; font-weight: 400; }
.brand { justify-self: start; white-space: nowrap; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.25vw, 42px); white-space: nowrap; }
.main-nav button { padding: 0; border: 0; background: none; color: inherit; }
.main-nav a:hover, .main-nav button:hover, .footer a:hover { color: #fff; }
.cart-button { justify-self: end; position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; }
.cart-button img { display: block; width: 24px; height: 24px; transform: scale(1.15); transition: transform .45s cubic-bezier(.2,.8,.2,1), filter .45s ease; }
.cart-button:hover img { transform: scale(1.25) rotate(-3deg); filter: brightness(1.18); }
.hero { position: relative; }
.hero-stage { position: relative; padding-top: 31px; }
.hero h1 { position: relative; margin: 0 28px; font-size: calc(var(--site-unit) * 18.6); font-weight: 700; letter-spacing: -.05em; line-height: 1; white-space: nowrap; text-align: center; }
.hero-word { position: relative; display: inline-block; }
.hero-region { position: absolute; top: 18px; right: 0; color: #999; font-size: clamp(11px, .9vw, 15px); font-weight: 500; letter-spacing: .18em; line-height: 1; }
.hero-image-wrap { position: relative; display: grid; gap: 0; width: calc(100% - 56px); margin: 12px auto 0; }
.hero-photo-card { position: relative; height: clamp(240px, 24vw, 360px); min-width: 0; margin: 0; overflow: hidden; border-radius: 0; background: #111; }
.hero-photo-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 57%; user-select: none; pointer-events: none; }
.hero-final-photo img { object-position: 50% 50%; }
.hero-photo-after { position: absolute; inset: 0; opacity: 0; animation: hero-before-after .9s steps(1, end) infinite; animation-play-state: paused; }
.hero-photo-card.is-shown.is-in-view.is-page-visible .hero-photo-after { animation-play-state: running; }
@keyframes hero-before-after { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
.hero-scroll .hero-stage { position: relative; height: var(--hero-stage-height); padding-top: var(--hero-content-top); isolation: isolate; }
.hero-scroll h1 { position: relative; z-index: 10; color: #fff; }
.hero-scroll .hero-image-wrap { z-index: 3; display: block; transform-origin: center top; will-change: transform; }
.hero-scroll .hero-photo-card { position: absolute; left: 0; right: 0; height: var(--hero-card-height); will-change: transform, opacity; }
@media (prefers-reduced-motion: reduce) { .hero-photo-after { animation: none; opacity: 1; } }
.services { margin: 0 auto; padding-top: clamp(96px, 10vw, 160px); width: min(100% - 88px, 1800px); scroll-margin-top: 110px; }
.services-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; margin-bottom: clamp(45px, 5vw, 80px); }
.services-header h2, .footer-location-title { margin: 0; font-size: clamp(80px, 10vw, 160px); font-weight: 700; line-height: .9; letter-spacing: -.065em; }
.services-header h2:focus { outline: none; }
.footer-location-title { margin-bottom: clamp(45px, 5vw, 80px); }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 60px 28px; }
.service-card { display: flex; flex-direction: column; min-width: 0; }
.service-image { position: relative; display: block; padding: 0; border: 0; background: #000; cursor: pointer; width: 100%; aspect-ratio: 1.14; overflow: hidden; }
.service-image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-heading { display: flex; flex-direction: column; align-items: flex-start; margin-top: 20px; padding-bottom: 28px; font-family: inherit; }
.service-heading h3 { color: #fff; margin: 0; font-size: clamp(32px, 2.69vw, 45px); font-weight: 700; line-height: 1.1; letter-spacing: -.045em; }
.service-quote-button { position: relative; display: block; width: 100%; min-height: 55px; margin-top: auto; padding: 15px 20px; border: 0; border-radius: 4px; background: #b3b3b3; color: #000; font-size: 20px; font-weight: 600; line-height: 1.25; text-align: center; transition: background .25s ease, transform .45s cubic-bezier(.16,1,.3,1); }
.service-quote-button, .contact-button, .dialog-submit, .showcase-more { transition: background .25s ease, transform .3s cubic-bezier(.16,1,.3,1); }
.service-quote-button:focus-visible { background: #fff; transform: translateY(-2px) scale(1.015); }
.contact-button:focus-visible, .dialog-submit:focus-visible, .showcase-more:focus-visible { background: #ededed; transform: translateY(-2px) scale(1.015); }
@media (hover: hover) and (pointer: fine) {
  .service-card:has(.service-image:hover, .service-quote-button:hover) .service-quote-button { position: relative; z-index: 1; background: #fff; transform: translateY(-2px) scale(1.015); }
  .contact-button:hover, .dialog-submit:hover, .showcase-more:hover { position: relative; z-index: 1; background: #ededed; transform: translateY(-2px) scale(1.015); }
}
.service-quote-button:active, .contact-button:active, .dialog-submit:active, .showcase-more:active { transform: scale(.98); }
.results-link-row { flex-shrink: 0; padding-bottom: 5px; scroll-margin-top: 110px; }
.results-link { display: inline-flex; align-items: center; gap: .35em; color: #b3b3b3; font-size: clamp(30px, 3.06vw, 47px); font-weight: 500; letter-spacing: -.04em; line-height: 1.2; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; transition: color .2s ease; }
.results-arrow { width: .85em; height: .85em; flex: none; }
.about { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 82vh; padding: 70px 43px; margin-top: clamp(88px, 10vw, 156px); scroll-margin-top: 80px; }
.section-rule { width: 100%; height: 1px; margin: clamp(48px, 5vw, 72px) 0 0; background: #303030; }
.about p { margin: 0 auto; max-width: 935px; color: #b3b3b3; text-align: center; font-size: 48px; font-weight: 700; line-height: 54px; letter-spacing: -2px; }
.hover-word { display: inline-block; transform-origin: center; transition: color .25s ease, transform .28s cubic-bezier(.16,1,.3,1); }
.hover-word.is-active { color: #fff; transform: scale(1.045); }
.location { margin-top: 107px; padding: 72px 24px 72px; scroll-margin-top: 140px; }
.footer { padding: 0 24px 96px; }
.footer-cta { display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.footer-cta h3 { margin: 0; font-size: 36px; line-height: 1.15; letter-spacing: -1.2px; }
.footer-service-area { min-width: 0; max-width: 510px; }
.footer-area-copy { max-width: 430px; margin: 16px 0 22px; color: #b3b3b3; font-size: 16px; line-height: 1.5; }
.footer-map-panel { display: grid; grid-template-columns: 164px minmax(0, 1fr); column-gap: 28px; row-gap: 10px; width: 612px; max-width: 100%; min-width: 0; flex: 0 1 612px; margin: 0; pointer-events: none; user-select: none; }
.footer-area-map { display: block; grid-column: 2; grid-row: 1; width: 100%; height: auto; }
.footer-map-key { display: flex; flex-direction: column; justify-content: center; grid-column: 1; grid-row: 1; gap: 20px; margin: 0; color: #fff; font-size: 17px; font-weight: 500; line-height: 1.4; }
.footer-map-key span { display: flex; align-items: center; gap: 12px; }
.zone-swatch { width: 12px; height: 12px; flex: none; border-radius: 2px; }
.zone-swatch-blue { background: #008cff; }
.zone-swatch-white { background: #fff; }
.footer-map-credit { grid-column: 2; margin: 0; color: #888; font-size: 9px; line-height: 1.4; }
.travel-checker { position: relative; margin-bottom: 22px; }
.travel-checker label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.travel-address-bar { display: flex; align-items: center; gap: 4px; min-height: 56px; padding: 4px; border: 1px solid #383838; border-radius: 12px; background: #111; }
.travel-address-bar:focus-within { border-color: #008cff; box-shadow: 0 0 0 2px #008cff30; }
.travel-address-hint { display: none; margin: 9px 0 0; color: #999; font-size: 11px; line-height: 1.4; }
.travel-checker:focus-within .travel-address-hint { display: block; }
.travel-suggestions { position: absolute; z-index: 5; left: 0; right: 0; top: 62px; padding: 5px; background: #161616; border: 1px solid #444; border-radius: 12px; box-shadow: 0 12px 30px #0008; }
.travel-suggestions[hidden], .travel-booking[hidden] { display: none; }
.travel-suggestions button { display: block; width: 100%; padding: 11px 12px; border: 0; border-radius: 8px; background: transparent; color: #fff; text-align: left; cursor: pointer; font: inherit; }
.travel-suggestions button:hover, .travel-suggestions button[aria-selected="true"] { background: #292929; }
.travel-suggestions strong, .travel-suggestions span { display: block; }
.travel-suggestions strong { font-size: 14px; font-weight: 500; }
.travel-suggestions span { margin-top: 4px; color: #aaa; font-size: 12px; }
.travel-address-field { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; padding: 0 12px; color: #999; }
.travel-address-bar svg { width: 18px; height: 18px; flex: none; }
.travel-address-bar input { min-width: 0; flex: 1; width: 100%; border: 0; outline: 0; padding: 10px 0; background: transparent; color: #fff; font: inherit; font-size: 15px; }
.travel-address-bar input::placeholder { color: #999; }
.travel-address-bar button { display: flex; align-items: center; gap: 8px; flex: none; min-height: 46px; padding: 0 12px; border: 0; border-radius: 8px; background: #252525; color: #fff; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.travel-address-bar button:hover:not(:disabled) { background: #333; color: #fff; }
.travel-address-bar button:disabled { cursor: wait; opacity: .6; }
.travel-address-bar button:focus-visible { outline: 2px solid #008cff; outline-offset: 2px; }
.travel-result { position: relative; margin: 0 0 20px; padding: 0; }
.travel-address-bar { position: relative; transition: background .35s ease, border-color .35s ease; }
.travel-address-bar [hidden], .travel-undo[hidden] { display: none !important; }
.travel-checker[data-state="celebrating"] .travel-address-bar,
.travel-checker[data-state="ready"] .travel-address-bar { background: #151515; border-color: #555; box-shadow: none; }
.travel-checker[data-state="estimated"] .travel-address-bar { border-color: #555; }
.travel-checker:is([data-state="celebrating"], [data-state="estimated"], [data-state="ready"]) .travel-address-field,
.travel-checker:is([data-state="celebrating"], [data-state="estimated"], [data-state="ready"]) button[type="submit"] { display: none; }
.travel-inline-status { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; gap: 10px; color: #fff; font-size: 16px; font-weight: 600; }
.travel-checker[data-state="estimated"] .travel-inline-status { color: #fff; }
.travel-address-bar .travel-book-button { width: 100%; justify-content: center; background: transparent; color: #fff; font-size: 16px; }
.travel-address-bar .travel-book-button:hover { background: #ffffff0a; }
.travel-success-icon { position: relative; display: grid; place-items: center; width: 22px; height: 22px; flex: none; border-radius: 50%; background: #008cff; color: #000; font-size: 13px; }
.travel-success-icon::after { content: ''; position: absolute; inset: -5px; border: 1px solid #008cff; border-radius: 50%; animation: travel-ring .6s ease-out both; }
.travel-spark { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #ddd; pointer-events: none; }
.travel-address-bar button { transition: transform .18s cubic-bezier(.2,.8,.2,1), background .2s ease; }
.travel-address-bar button:active { transform: scale(.96); }
.contact-button:active { transform: scale(.96); }
@keyframes travel-ring { from { opacity: .6; transform: scale(.7); } to { opacity: 0; transform: scale(1.5); } }
@media (prefers-reduced-motion: reduce) { .travel-success-icon::after { display: none; } .travel-address-bar button:active, .contact-button:active { transform: none; } }
.travel-undo { display: block; width: fit-content; margin: 9px auto 0; padding: 0; border: 0; background: transparent; color: #999; font: inherit; font-size: 11px; cursor: pointer; }
.travel-undo:hover { color: #fff; }
.travel-checker:is([data-state="celebrating"], [data-state="estimated"], [data-state="ready"]) .travel-address-hint { display: none; }
.travel-result strong { display: block; color: #fff; font-size: 17px; line-height: 1.3; letter-spacing: -.4px; }
.travel-result.is-free strong { color: #008cff; }
.travel-result p { margin: 7px 0 0; color: #b3b3b3; font-size: 13px; line-height: 1.5; }
.travel-result .travel-calculation, .travel-result .travel-matched-address { font-size: 11px; color: #999; }
.footer-service-area:has(.travel-checker:is([data-state="celebrating"], [data-state="estimated"], [data-state="ready"])) > .contact-button { display: none; }
.travel-address-choices { display: grid; gap: 8px; }
.travel-address-choices button { padding: 12px; margin-bottom: 8px; border: 1px solid #444; border-radius: 8px; background: #151515; color: #fff; font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.footer-service-area .contact-button { width: 152px; height: 48px; border-radius: 12px; font-size: 15px; }
.contact-button { width: 196px; height: 58px; flex: none; border: 0; border-radius: 14px; background: #f2f2f2; color: #111; font-size: 18px; font-weight: 700; }
.footer-columns { display: flex; justify-content: space-between; margin-top: 96px; }
.footer-nav, .footer-social { display: flex; flex-direction: column; }
.footer-nav { width: 300px; }
.footer-social { width: 220px; text-align: right; }
.footer-label { display: block; margin-bottom: 28px; color: #b3b3b3; font-size: 14px; line-height: 18px; }
.footer-columns a, .footer-columns .footer-social span:not(.footer-label) { font-size: 31px; font-weight: 700; line-height: 38px; letter-spacing: -1.24px; text-decoration: none; }
.main-nav a, .main-nav button, .footer-columns a { transition: color .2s ease; }
.main-nav a:hover, .main-nav button:hover, .footer-columns a:hover { color: #b3b3b3; }
.results-link:hover { color: #fff; }
.footer-social span { transform-origin: right center; }
.about p { transform-origin: center center; }
.service-image { border-radius: 0; transform-origin: center; transition: border-radius .45s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1); }
@media (hover: hover) and (pointer: fine) {
  .service-card:hover .service-image, .service-card:focus-within .service-image { border-radius: 12px; transform: scale(1.025); }
  .service-card:has(.service-image:hover, .service-quote-button:hover) .service-quote-button:active { transform: scale(.98); }
}
.quote-dialog { width: min(calc(100% - 32px), 480px); max-height: min(90vh, 800px); padding: 0; border: 1px solid #444; border-radius: 16px; background: #111; color: #fff; box-shadow: 0 30px 100px #0009; }
.quote-dialog::backdrop { background: #000b; backdrop-filter: blur(7px); }
.quote-form { display: flex; flex-direction: column; padding: 30px; }
.dialog-close { align-self: end; width: 32px; height: 32px; margin: -14px -12px -6px 0; border: 0; background: none; color: #fff; font-size: 30px; line-height: 1; transition: transform .3s ease; }
.dialog-close:hover { transform: scale(1.1); }
.dialog-eyebrow { margin: 0 0 10px; color: #8c8c8c; font-size: 11px; letter-spacing: .16em; }
.quote-form h2 { margin: 0; font-size: 32px; letter-spacing: -1px; }
.dialog-intro { margin: 10px 0 20px; color: #b3b3b3; font-size: 14px; line-height: 1.5; }
.quote-form label { margin: 12px 0 6px; font-size: 13px; }
.quote-form input, .quote-form select, .quote-form textarea { width: 100%; padding: 11px 12px; border: 1px solid #494949; border-radius: 6px; background: #1b1b1b; color: #fff; font-size: 14px; }
.quote-form textarea { resize: vertical; }
.dialog-submit { margin-top: 20px; padding: 12px; border: 0; border-radius: 6px; background: #008cff; color: #000; font-weight: 700; }
.dialog-status { min-height: 18px; margin: 8px 0 0; color: #b3b3b3; font-size: 12px; }
:focus-visible { outline: 2px solid #008cff; outline-offset: 3px; }
@media (min-width: 1100px) {
  .site-header { padding: 14px calc(var(--site-unit) * 7); }
  .brand, .main-nav a, .main-nav button { font-size: clamp(15px, calc(var(--site-unit) * 1.42), 22px); }
  .main-nav { gap: min(2.15vw, 38px); }
  .hero-stage { padding-top: calc(var(--site-unit) * 2.5); }
  .hero h1 { width: calc(var(--site-unit) * 86); min-height: calc(var(--site-unit) * 17.2); margin: 0 auto; font-size: calc(var(--site-unit) * 17); }
  .hero-image-wrap { width: calc(var(--site-unit) * 82); margin: 12px auto 0; }
  .about { padding: 0 calc(var(--site-unit) * 4.2); }
  .about p { max-width: calc(var(--site-unit) * 91.7); font-size: clamp(48px, calc(var(--site-unit) * 4.7), 72px); line-height: 1.125; }
  .location, .footer { padding-left: calc(var(--site-unit) * 2.35); padding-right: calc(var(--site-unit) * 2.35); }
  .footer-cta h3 { font-size: 40px; }
  .footer-columns a, .footer-columns .footer-social span:not(.footer-label) { font-size: clamp(31px, calc(var(--site-unit) * 3), 44px); line-height: 1.22; }
}
@media (min-width: 761px) and (max-width: 1099px) {
  .hero-region { top: 5px; }
}
@media (max-width: 1050px) {
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-card:last-child { grid-column: 1 / -1; justify-self: center; width: calc((100% - 28px) / 2); }
}
@media (max-width: 760px) {
  .header-space { height: 92px; }
  .site-header { padding: 10px 18px; grid-template-columns: 1fr auto; row-gap: 8px; }
  .brand { font-size: 14px; }
  .main-nav { grid-row: 2; grid-column: 1 / -1; justify-content: center; width: 100%; gap: clamp(10px, 3vw, 24px); padding: 0; }
  .main-nav a, .main-nav button { font-size: clamp(10px, 2.6vw, 12px); }
  .main-nav a:first-child { padding: 0; }
  .cart-button { grid-row: 1; grid-column: 2; width: 44px; height: 44px; }
  .hero-stage { padding-top: 36px; }
  .hero h1 { width: auto; min-height: 0; margin: 0 18px; font-size: calc(var(--site-unit) * 17.2); letter-spacing: -.065em; line-height: 1; }
  .hero-region { top: -7px; font-size: 11px; }
  .hero-image-wrap { width: calc(100% - 36px); margin: 12px auto 0; }
  .hero-photo-card { height: clamp(240px, 60vw, 360px); }
  .services { width: calc(100% - 36px); }
  .services-header { align-items: flex-start; flex-direction: column; gap: 24px; margin-bottom: 36px; }
  .services-header h2, .footer-location-title { font-size: clamp(60px, 13vw, 96px); }
  .footer-location-title { margin-bottom: 36px; }
  .results-link-row { padding-bottom: 0; }
  .service-grid { gap: 36px 18px; }
  .service-image { aspect-ratio: 1.12; }
  .service-heading { margin-top: 12px; padding-bottom: 18px; }
  .service-heading h3 { font-size: clamp(25px, 3.6vw, 30px); }
  .results-link { font-size: clamp(24px, 5vw, 30px); }
  .section-rule { width: 100%; margin-left: 0; margin-right: 0; }
  .about { min-height: 72vh; padding: 70px 18px; }
  .about p { font-size: clamp(27px, 6vw, 42px); line-height: 1.1; letter-spacing: -.05em; }
  .location { margin-top: 115px; padding: 50px 18px 70px; }
  .footer { padding: 0 18px 70px; }
  .footer-cta { align-items: flex-start; flex-direction: column; gap: 22px; }
  .footer-cta h3 { font-size: 30px; }
  .footer-map-panel { width: 100%; flex: none; grid-template-columns: 100px minmax(0, 1fr); column-gap: 16px; align-self: center; }
  .footer-map-key { font-size: 13px; gap: 16px; }
  .footer-service-area { width: 100%; }
  .travel-address-field { gap: 8px; padding: 0 8px; }
  .travel-address-bar input { font-size: 14px; }
  .travel-address-bar button { gap: 5px; padding: 0 10px; font-size: 12px; }
  .footer-map-key span { gap: 8px; }
  .zone-swatch { width: 10px; height: 10px; }
  .contact-button { width: 140px; height: 46px; font-size: 14px; }
  .footer-columns a, .footer-columns .footer-social span:not(.footer-label) { font-size: 24px; line-height: 31px; }
  .footer-nav { width: auto; }
  .footer-social { width: auto; }
}
@media (max-width: 680px) {
  .service-grid { grid-template-columns: 1fr; gap: 40px; }
  .service-card:last-child { grid-column: auto; width: 100%; }
}
@media (max-width: 480px) {
  .service-image { aspect-ratio: 1.15; }
  .service-heading h3 { font-size: 28px; }
  .footer-cta { align-items: flex-start; flex-direction: column; }
  .footer-columns a, .footer-columns .footer-social span:not(.footer-label) { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } .service-card .service-image, .service-card .service-quote-button, .service-quote-button:focus-visible, .contact-button:hover, .contact-button:focus-visible, .dialog-submit:hover, .dialog-submit:focus-visible, .showcase-more:hover, .showcase-more:focus-visible, .cart-button:hover img, .main-nav a:hover, .results-link:hover, .footer-cta h3:hover, .footer-columns a:hover, .footer-social span:hover, .footer-label:hover { transform: none !important; } }

/* Outlined capsule controls echo the showcase Skip button. */
.footer-area-copy { color: #999; font-size: 14px; margin-bottom: 24px; }
.travel-address-bar { min-height: 56px; padding: 0 20px; gap: 16px; border: 1px solid #444; border-radius: 999px; background: transparent; }
.travel-address-bar:focus-within { border-color: #aaa; box-shadow: none; }
.travel-address-field { padding: 0; }
.travel-address-field > svg { display: none; }
.travel-address-bar input { padding: 16px 0; font-size: 15px; }
.travel-address-bar button { padding: 0; border-radius: 999px; background: transparent; font-size: 14px; font-weight: 400; }
.travel-address-bar button:hover:not(:disabled) { background: transparent; color: #bbb; }
.travel-address-bar button[type="submit"] svg { transition: transform .25s cubic-bezier(.16,1,.3,1); }
.travel-address-bar button[type="submit"]:hover svg { transform: translateX(3px); }
.travel-checker:is([data-state="celebrating"], [data-state="estimated"], [data-state="ready"]) .travel-address-bar { background: #202020; border-color: transparent; }
.travel-inline-status { justify-content: center; font-size: 15px; font-weight: 500; }
.travel-address-bar .travel-book-button { justify-content: center; font-size: 15px; font-weight: 500; letter-spacing: 0; }
.travel-address-bar .travel-book-button:hover { background: transparent; }
.travel-checker[data-state="ready"] .travel-address-bar { background: #008cff; border-color: #008cff; }
.travel-checker[data-state="ready"] .travel-book-button,
.travel-checker[data-state="ready"] .travel-book-button:hover { color: #000; background: transparent; transform: none; transition: none; }
.travel-success-icon { width: 16px; height: 16px; background: transparent; color: #008cff; font-size: 16px; }
.travel-success-icon::after { display: none; }
.travel-success-icon svg { display: block; width: 18px; height: 18px; }
.travel-success-icon path { stroke-dasharray: 24; stroke-dashoffset: 0; animation: travel-check-draw .38s cubic-bezier(.16,1,.3,1) both; }
.travel-checker[data-state="ready"] .travel-address-bar { transition: transform .28s cubic-bezier(.16,1,.3,1); }
@media (hover: hover) and (pointer: fine) {
  .travel-checker[data-state="ready"] .travel-address-bar:has(.travel-book-button:hover) { transform: scale(1.02); }
}
.travel-checker[data-state="ready"] .travel-address-bar:has(.travel-book-button:active) { transform: scale(.98); }
.travel-checker[data-state="ready"] .travel-book-button:active { transform: none; }
@keyframes travel-check-draw { from { stroke-dashoffset: 24; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .travel-success-icon path { animation: none; } .travel-checker[data-state="ready"] .travel-address-bar:has(.travel-book-button:hover, .travel-book-button:active) { transform: none; } }
.travel-undo { margin: 8px auto 0; color: #999; font-size: 12px; min-height: 24px; }
.travel-checker .travel-address-hint { display: none; }
.travel-suggestions { border-radius: 18px; background: #080808; border-color: #333; box-shadow: none; }
.travel-suggestions button { border-radius: 12px; }
.footer-service-area .contact-button { width: auto; height: auto; min-height: 44px; padding: 0 22px; border: 1px solid #555; border-radius: 999px; background: transparent; color: #fff; font-size: 14px; font-weight: 500; letter-spacing: 0; text-decoration: none; }
.footer-service-area .contact-button:hover, .footer-service-area .contact-button:focus-visible { background: #ffffff08; border-color: #aaa; transform: translateY(-1px); }
@media (max-width: 760px) { .travel-address-bar { gap: 12px; padding: 0 18px; } .travel-address-bar input { font-size: 14px; } .travel-address-bar button { font-size: 13px; } }

/* Location keeps the service controls' dark capsules and blue feedback. */
.footer-service-area { width:100%; max-width:460px; }
.footer-cta h3 { font-size:clamp(30px,3vw,40px); font-weight:500; line-height:1.12; letter-spacing:-.055em; }
.footer-area-copy { margin:18px 0 26px; font-size:11px; line-height:1.5; letter-spacing:.015em; color:#888; }
.travel-checker label { position:static; display:block; width:auto; height:auto; padding:0; margin:0 0 10px; overflow:visible; clip-path:none; color:#999; font-size:13px; }
.travel-address-bar { min-height:58px; padding:5px 6px 5px 22px; gap:12px; border:1px solid transparent; border-radius:999px; background:#202020; transition:background .2s ease,border-color .2s ease,transform .22s cubic-bezier(.16,1,.3,1); }
.travel-checker .travel-address-bar:focus-within { border-color:#008cff; }
.travel-checker .travel-address-bar button[type="submit"] { min-height:46px; padding:0 18px; background:transparent; color:#f5f5f5; font-size:14px; font-weight:500; letter-spacing:-.025em; transition:background .2s ease,color .2s ease,transform .22s cubic-bezier(.16,1,.3,1); }
.travel-checker .travel-address-bar button[type="submit"]:focus-visible { background:#008cff; color:#000; outline-offset:3px; }
.travel-checker[aria-busy="true"] .travel-address-bar button[type="submit"] { background:#008cff; color:#000; opacity:1; }
.travel-checker[aria-busy="true"] button[type="submit"] svg { animation:travel-check-arrow 1s cubic-bezier(.16,1,.3,1) infinite; }
.travel-checker .travel-address-bar button[type="submit"]:active { transform:scale(.97); }
.travel-checker:is([data-state="celebrating"],[data-state="estimated"],[data-state="ready"]) > label { display:none; }
.footer-service-area > .contact-button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; margin-top:0; padding:0 22px; min-height:46px; border:0; border-radius:999px; background:#202020; font-size:14px; font-weight:500; color:#f5f5f5; transition:background .2s ease,color .2s ease,transform .22s cubic-bezier(.16,1,.3,1); }
.footer-service-area > .contact-button svg { width:18px; height:18px; transition:transform .22s cubic-bezier(.16,1,.3,1); }
.footer-service-area > .contact-button:focus-visible { background:#008cff; color:#000; transform:translateY(-2px); }
.footer-service-area > .contact-button:active { transform:scale(.97); }
@media (hover:hover) and (pointer:fine) {
  .travel-checker .travel-address-bar button[type="submit"]:hover:not(:disabled), .footer-service-area > .contact-button:hover { background:#008cff; color:#000; transform:translateY(-2px); }
  .footer-service-area > .contact-button:hover svg { transform:translateX(3px); }
  .travel-checker .travel-address-bar button[type="submit"]:active, .footer-service-area > .contact-button:active { transform:scale(.97); }
}
@keyframes travel-check-arrow { 0%,100% { opacity:1; transform:translateX(0); } 45% { opacity:0; transform:translateX(5px); } 46% { opacity:0; transform:translateX(-5px); } 80% { opacity:1; transform:translateX(0); } }
@media (prefers-reduced-motion:reduce) {
  .travel-checker[aria-busy="true"] button[type="submit"] svg { animation:none; }
  .travel-checker .travel-address-bar button[type="submit"], .footer-service-area > .contact-button, .footer-service-area > .contact-button svg { transform:none !important; transition:none; }
}

/* Both service maps share one calm overview and confirmation-driven camera. */
.footer-map-panel { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; column-gap:22px; width:min(100%,760px); flex:0 1 760px; pointer-events:auto; }
.footer-map-panel .cart-map-panel { grid-column:2; grid-row:1; width:100%; height:420px; min-height:0; margin:0; border:0; border-radius:12px; }
.footer-map-key { grid-column:1; grid-row:1; display:flex; flex-direction:column; justify-content:center; align-self:center; flex-wrap:nowrap; gap:22px; margin:0; color:#aaa; font-size:16px; font-weight:500; line-height:1.3; }
.footer-map-key span { gap:10px; white-space:nowrap; }
.footer-map-key .zone-swatch { width:11px; height:11px; border-radius:50%; }
.zone-swatch-gray { background:#747d83; }
.footer-map-credit { margin-top:8px; font-size:9px; }
.footer-map-credit a { color:inherit; text-decoration:none; }
.footer-map-credit a:hover { color:#ccc; }
.travel-checker .travel-address-bar button[type="submit"] { white-space:nowrap; }
.travel-checker .travel-address-bar button[type="submit"]:hover:not(:disabled),
.travel-checker .travel-address-bar button[type="submit"]:focus-visible,
.travel-checker[aria-busy="true"] .travel-address-bar button[type="submit"] { background:#333; color:#fff; transform:none; }
@media (max-width:1100px) {
  .footer-cta { flex-direction:column; align-items:flex-start; }
  .footer-map-panel { width:100%; max-width:800px; flex:none; align-self:center; }
}
@media (max-width:760px) {
  .footer-map-panel { grid-template-columns:110px minmax(0,1fr); column-gap:10px; }
  .footer-map-panel .cart-map-panel { height:340px; }
  .footer-map-key { font-size:14px; gap:18px; }
  .footer-map-key span { gap:8px; }
  .footer-map-key .zone-swatch { width:9px; height:9px; }
  .travel-checker .travel-address-bar { padding-left:16px; gap:6px; }
  .travel-checker .travel-address-bar button[type="submit"] { padding:0 12px; font-size:12px; }
}
@media (max-width:350px) {
  .footer-map-panel { grid-template-columns:90px minmax(0,1fr); column-gap:8px; }
  .footer-map-key { font-size:12px; }
  .footer-map-key span { white-space:normal; }
}

/* Address entry stays neutral, including the browser's filled-field treatment. */
.travel-checker .travel-address-bar:focus-within { border-color:#777; box-shadow:none; }
#travel-address::selection { background:#ffffff26; color:#fff; }
#travel-address:is(:autofill, :-webkit-autofill) { -webkit-box-shadow:0 0 0 1000px #202020 inset; box-shadow:0 0 0 1000px #202020 inset; -webkit-text-fill-color:#fff; caret-color:#fff; border-radius:0; }
.travel-suggestions { position:relative; top:auto; left:auto; right:auto; display:grid; gap:4px; margin-top:12px; padding:8px; border:1px solid #303030; border-radius:16px; background:#0d0d0d; max-height:260px; overflow:auto; animation:address-suggestions-in .16s ease-out backwards; }
.travel-suggestions button { padding:15px 18px; border-radius:10px; line-height:1.4; }
.travel-suggestions strong { font-size:15px; font-weight:500; }
.travel-suggestions span { margin-top:6px; font-size:13px; color:#999; }
.travel-suggestions button:hover, .travel-suggestions button[aria-selected="true"] { background:#222; }
.travel-address-status { margin:10px 2px 0; color:#aaa; font-size:12px; line-height:1.5; }
.travel-address-status[hidden], .travel-suggestions[hidden] { display:none; }
.travel-checker:focus-within .travel-address-hint { display:none; }

.privacy-note { max-width:900px; margin:0 auto; padding:36px 24px; color:#aaa; font-size:13px; line-height:1.6; }
.privacy-note h2 { color:#fff; font-size:20px; }
.privacy-note a { color:#fff; text-underline-offset:3px; }

/* Hide only the page scrollbar; forms and dialogs keep their scroll cues. */
html { scrollbar-width:none; }
html::-webkit-scrollbar { display:none; width:0; height:0; }
