/* Shared, local postcode search and restaurant selection. */
.postcode-search{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 16px;padding:24px 28px;background:#fff;border:1px solid #dce1d9;border-radius:14px;margin:0 0 24px;box-shadow:0 6px 20px #17271f04}
.postcode-field{flex:1 1 260px;max-width:380px}
.postcode-field>label{display:block;font-size:.875rem;font-weight:700;margin-bottom:8px;color:#243e34}
.postcode-input{display:flex;align-items:center;position:relative}
.postcode-input>svg{position:absolute;left:17px;width:20px;height:20px;color:#b7351e;pointer-events:none}
.postcode-input input{width:100%;min-width:0;min-height:56px;border:1px solid #b9c8be;border-radius:8px;background:#fafbf8;color:#15281f;font:400 1rem/1.4 Arial,sans-serif;padding:14px 16px 14px 48px;transition:border-color .18s,box-shadow .18s}
.postcode-input input::placeholder{color:#747f75;opacity:1}
.postcode-input input:focus{border-color:#205948;outline:3px solid #ffc344;outline-offset:2px}
.postcode-input input[aria-invalid=true]{border-color:#b22915;background:#fff7f4}
.postcode-submit{display:flex;justify-content:center;align-items:center;gap:24px;min-height:56px;padding:14px 24px;border:1px solid #173e31;border-radius:8px;background:#205948;color:#fff;font:700 1rem/1.4 Arial,sans-serif;transition:background .18s}
.postcode-submit:hover{background:#143f31}.postcode-submit:disabled{opacity:.6;cursor:wait}
.postcode-clear{min-height:48px;padding:10px 4px;border:0;background:none;font-size:.875rem;text-decoration:underline;text-underline-offset:4px;color:#40574a}
.postcode-help,.postcode-status,.postcode-error{flex-basis:100%;font-size:.875rem;line-height:1.5}
.postcode-help{color:#647266}.postcode-status{color:#205948;font-weight:700}.postcode-status:empty{display:none}
.postcode-error{color:#a12d16;padding:12px 14px;border-left:3px solid #b62e17;background:#fff2e9}
[data-postcode-clear][hidden],[data-postcode-error][hidden],[data-distance-results][hidden],[data-map-distance][hidden],.location-distance[hidden]{display:none!important}
.postcode-credit{display:block;font-size:.75rem;margin-top:8px;color:#637165}.postcode-credit a{text-decoration:underline;text-underline-offset:3px}
.location-map-section .map-layout{border-radius:16px;overflow:hidden;box-shadow:0 12px 38px #14241d0c;grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr)}
.location-map-section .map-canvas{height:auto;min-height:570px}
.location-map-section .ricksha-map{position:absolute;inset:0}
.location-map-section .map-details{padding:28px;background:#fff}
.restaurant-select{background:#f2f5ef;border:1px solid #dce5d8;border-radius:12px;padding:16px}
.map-details .restaurant-select>label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.875rem;font-weight:700;color:#213b2e;margin:0 0 10px}
.restaurant-select>label>span{font-size:.75rem;font-weight:400;color:#657160}
.restaurant-select-input{position:relative;display:flex;align-items:center;min-width:0}
.restaurant-select-input>svg{position:absolute;left:12px;width:19px;height:19px;color:#a7331c;pointer-events:none}
.location-map-section .map-select{appearance:none;-webkit-appearance:none;border:1px solid #b6c6b6;border-radius:8px;width:100%;min-height:56px;padding:15px 32px 15px 40px;background:#fff;color:#173b2b;font-size:1rem;line-height:1.4;font-weight:600;text-overflow:ellipsis;cursor:pointer;box-shadow:0 2px 4px #16301d05}
.select-chevron{position:absolute;right:14px;top:22px;width:8px;height:8px;transform:rotate(45deg);border-right:2px solid #305542;border-bottom:2px solid #305542;pointer-events:none}
.location-map-section .map-select:hover{border-color:#205948}.location-map-section .map-select:focus-visible{outline:3px solid #ffc344;outline-offset:2px}
.location-map-section .map-location{margin-top:22px}.location-map-section .map-location-photo{border-radius:10px;height:185px}
.map-distance{margin-bottom:16px;padding:10px 14px;border-radius:8px;background:#fff1ca;font-size:.875rem;line-height:1.5;font-weight:700;color:#634214}
.location-map-section .map-links .button{border-radius:8px}
.map-distance-results{margin-top:20px;border:1px solid #dce1d9;border-radius:12px;background:#fff;overflow:hidden}
.map-distance-results>summary{cursor:pointer;padding:18px 22px;color:#205948;font-weight:700;font-size:1rem;min-height:58px}
.map-distance-results>summary:focus-visible{outline:3px solid #ffc344;outline-offset:-4px}
.distance-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px 20px}
.distance-choice{position:relative;text-align:left;display:flex;flex-direction:column;gap:5px;min-width:0;padding:17px;border:1px solid #dce2d8;border-radius:9px;background:#fafbf8;color:#20372b;font-size:1rem;line-height:1.4}
.distance-choice>span:first-child{font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:#8e3a23;font-weight:700}
.distance-choice>strong{font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.distance-choice>span:last-child{font-size:.875rem;color:#546955}
.distance-choice:hover{background:#eef4e8;border-color:#94ae95}.distance-choice[aria-pressed=true]{border-color:#205948;box-shadow:inset 0 0 0 1px #205948;background:#eef4e8}
.locations-page .postcode-search{margin-bottom:22px;background:#f5f7f1}
.locations-page .location-toolbar{border:0;padding:0;gap:24px;margin-bottom:28px}.locations-page .location-toolbar label{display:block;flex:1;max-width:380px;font-size:.875rem;color:#33493c}
.locations-page .location-toolbar select{appearance:none;-webkit-appearance:none;display:block;margin-top:8px;min-height:56px;width:100%;border:1px solid #b9c8be;border-radius:8px;font-size:1rem;padding:14px 44px 14px 16px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23305542' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;min-width:0;cursor:pointer}
.locations-page .location-toolbar>p{font-size:.875rem;align-self:flex-end;padding-bottom:16px}
.locations-page .location-card{border-radius:14px;overflow:hidden;box-shadow:0 4px 18px #15231c06;transition:box-shadow .2s,border-color .2s}
.locations-page .location-card:hover{border-color:#a8b9a3;box-shadow:0 10px 24px #15231c0c}
.locations-page .location-card.is-nearest{border:2px solid #205948}
.location-distance{font-size:.875rem;line-height:1.5;color:#205948;font-weight:700;background:#edf4e8;padding:9px 12px;border-radius:7px;margin-bottom:16px}
.locations-page .location-copy h2{font-size:1.5rem}.locations-page .location-copy .address{font-size:1rem}
.locations-page .postcode-credit{margin-top:16px}
@media(max-width:1050px){.location-map-section .map-layout{grid-template-columns:minmax(0,1.1fr) minmax(320px,1fr)}.location-map-section .map-details{padding:20px}.distance-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.postcode-search{padding:20px;gap:12px}.postcode-field{max-width:none;flex-basis:100%}.postcode-submit{flex:1;gap:16px}.postcode-clear{font-size:.875rem}.location-map-section .map-layout{grid-template-columns:1fr}.location-map-section .map-canvas{height:360px;min-height:0}.location-map-section .map-details{padding:20px}.location-map-section .map-location-photo{height:200px}.distance-list{grid-template-columns:1fr}.restaurant-select{padding:14px}.locations-page .location-toolbar{gap:14px}.locations-page .location-toolbar label{max-width:none}.locations-page .location-toolbar>p{max-width:130px;white-space:normal;line-height:1.4}}
@media(max-width:390px){.postcode-clear{flex-basis:100%}.postcode-search{padding:16px}.location-map-section .map-details{padding:16px}.restaurant-select{padding:12px}.location-map-section .map-select{padding-left:12px}.restaurant-select-input>svg{display:none}.locations-page .location-toolbar{flex-wrap:wrap}.locations-page .location-toolbar>p{max-width:none;padding-bottom:0}}
