/* V6.4 functional pilot: keep the approved Travelhouse design. */
#route-map{position:relative;isolation:isolate;background:#e9eff0;min-height:360px;height:420px}
.google-route-canvas{width:100%;height:100%;min-height:360px}
.map-welcome{padding:44px 30px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;height:100%;background:linear-gradient(145deg,#e7eef1,#f7f5ef);color:#19384b}
.map-welcome>svg{width:32px;height:32px;margin-bottom:18px}.map-welcome h3{font-size:27px;line-height:1.2;margin:0 0 14px}.map-welcome p{font-size:14px;line-height:1.7;margin:0 0 22px}.map-welcome .btn{font-size:12px}
.map-route-note{position:absolute;top:10px;left:10px;max-width:70%;padding:5px 8px;margin:0;background:#fffef7ed;color:#32495a;font-size:10px;line-height:1.5;pointer-events:none;z-index:1}
.th-map-pin{display:flex;align-items:center;gap:6px;background:#fff;color:#143e59;border:1px solid #1d536e;border-radius:30px;padding:4px 11px 4px 4px;box-shadow:0 3px 12px #12283933;font-family:'Open Sans',sans-serif;white-space:nowrap}.th-map-pin b{display:grid;place-items:center;background:#143e59;color:white;border-radius:50%;width:25px;height:25px}.th-map-pin span{font-size:12px;font-weight:600}.th-map-pin.is-current{background:#143e59;color:#fff}.th-map-pin.is-current b{background:#fff;color:#143e59}.th-place-pin{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#bd7435;color:#fff;font-size:20px;border:2px solid #fff;box-shadow:0 2px 8px #0003}
.local-explore{padding:28px;margin-top:25px;background:#edf2f3;border:1px solid #dbe4e8;border-radius:4px}.local-explore h3{font-size:26px;margin:5px 0 12px;color:#153b51}.local-explore p{font-size:14px;line-height:1.7}.local-explore>.btn{margin-top:15px;gap:10px}.local-explore .btn svg{width:18px;height:18px}
.places-explorer{margin-top:24px;padding:20px;background:#fff;border:1px solid #cedce3;border-radius:5px;min-width:0;color:#163b50}.places-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.places-heading h4{font-size:20px;margin:0}.places-close{font-size:28px;width:42px;height:42px;border:1px solid #d1dce3;border-radius:50%;background:#fff;color:#173e54;cursor:pointer}.places-status{min-height:24px;font-size:13px!important;color:#426075}.places-label{display:block;font-size:13px;font-weight:600;margin-bottom:10px}.autocomplete-slot{width:100%;min-height:52px}.nearby-categories{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.nearby-categories button{padding:10px 14px;border:1px solid #b8cbd6;border-radius:30px;background:#f4f7f8;color:#123d57;font-size:12px;cursor:pointer;transition:background .18s,transform .18s}.nearby-categories button:hover{background:#dce9ee;transform:translateY(-2px)}.places-footnote{font-size:12px!important;color:#557084;margin-top:18px}.places-body>.text-link{font-size:12px;text-align:left;margin-top:12px;white-space:normal}
gmp-basic-place-autocomplete,gmp-place-search,gmp-place-details-compact{display:block;width:100%;max-width:100%;min-width:0;color-scheme:light}
.place-results:empty,.place-candidate:empty,.chosen-places:empty{display:none}.place-candidate{margin-top:16px;padding-top:15px;border-top:1px solid #dce4e9}.place-add-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px}.place-add-controls label{flex:1;font-size:12px;min-width:155px}.place-add-controls select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #b9cbd4;border-radius:3px;background:white;color:#183d52}.place-add-controls .btn{font-size:11px;padding:13px 16px}
.chosen-places{display:grid;gap:14px;margin-top:20px}.chosen-place{padding:12px;background:white;border:1px solid #c7d9df;border-left:3px solid #24546d;border-radius:4px}.chosen-place-controls{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid #edf1f3;margin-bottom:8px}.chosen-place-controls label{font-size:12px;display:flex;align-items:center;gap:8px}.chosen-place-controls select{padding:6px;border:1px solid #b9cbd4;background:white;color:#183d52}.chosen-place-controls button{display:inline-grid;place-items:center;width:36px;height:36px;background:#eff4f5;border:0;color:#183d52;border-radius:50%;font-size:21px;margin-left:6px;cursor:pointer}.chosen-place-controls svg{width:17px;height:17px}.review-place-cards{display:grid;gap:18px;margin-top:20px}.review-place-cards p{font-size:13px;font-weight:600}.places-review a{color:#165477;text-decoration:underline}
@media(max-width:780px){.map-column{order:-1;margin-bottom:25px}#route-map{height:330px;min-height:330px}.google-route-canvas{min-height:330px}.map-stop-summary{padding:20px}.map-welcome{padding:28px}.map-welcome h3{font-size:24px}.local-explore{padding:20px 15px}.places-explorer{padding:14px}.place-add-controls .btn{width:100%}.local-explore h3{font-size:24px}.map-route-note{font-size:9px;max-width:65%}}
@media(prefers-reduced-motion:reduce){.nearby-categories button{transition:none}.nearby-categories button:hover{transform:none}}

/* Numbered stop controls keep repeated locations selectable without obscuring the map. */
.th-map-pin.th-route-pin{padding:4px;gap:4px;white-space:normal}.th-route-stop{display:grid;place-items:center;min-width:32px;height:32px;border:1px solid #172d50;border-radius:50%;background:#fff;color:#172d50;font:700 13px "Open Sans",sans-serif;cursor:pointer}.th-route-stop[aria-pressed="true"]{background:#172d50;color:#fff}.th-route-stop:focus-visible{outline:3px solid #c78329;outline-offset:2px}.cp-inline-enquiry{scroll-margin-top:110px}.cp-inline-enquiry[hidden]{display:none}.journey-travel-notes{padding-block:28px}.journey-travel-notes h2{font-size:24px}.journey-travel-notes p{max-width:1000px;line-height:1.8}

.cp-request-layout aside li{gap:12px;align-items:flex-start}.cp-request-layout aside li span{white-space:nowrap;flex-shrink:0}

.cp-inline-enquiry .cp-dialog-progress{color:#526780}

/* Nearby cities share a selectable stack instead of covering one another. */
.th-map-pin.th-map-cities{display:flex;flex-direction:column;align-items:stretch;gap:4px;height:auto!important;padding:4px;border-radius:20px;background:#fff;color:#172d50;max-width:200px}
.th-map-cities .th-map-city{display:flex;align-items:center;gap:8px;height:36px;padding:3px 9px 3px 3px;border:0;border-radius:18px;background:#fff;color:#172d50;font:600 12px "Open Sans",sans-serif;cursor:pointer}
.th-map-cities .th-map-city b{width:28px;height:28px;min-width:28px;flex-basis:28px;line-height:28px;background:#172d50;color:#fff}
.th-map-cities .th-map-city span{line-height:28px;max-width:142px;overflow:hidden;text-overflow:ellipsis}
.th-map-cities .th-map-city[aria-pressed=true]{background:#172d50;color:#fff}
.th-map-cities .th-map-city[aria-pressed=true] b{background:#fff;color:#172d50}
.th-map-cities .th-map-city:focus-visible{outline:3px solid #b9823f;outline-offset:2px}

/* Native city controls opt into pointer hits inside non-clickable map overlays. */
.th-map-cities .th-map-city{pointer-events:auto}
/* Number-only pins have no label shell. Group spacing belongs between the circles. */
.th-map-pin.th-route-pin,
.th-map-pin.th-route-pin.is-current {
  width: max-content;
  height: auto;
  padding: 0;
  gap: 6px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.th-route-pin > button.th-route-stop {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
  box-shadow: 0 2px 5px #172d5033;
  pointer-events: auto;
}
