body:has([data-address-app]){background:var(--color-background)}
body:has([data-address-app]) .site-header,body:has([data-address-app]) .customer-nav,body:has([data-address-app]) .site-footer,body:has([data-address-app]) .mobile-dock{display:none}
body:has([data-address-app]) .app-shell{display:block;max-width:none;margin:0;padding:0}
body:has([data-address-app]) .mobile-delivery-address{display:none}
body:has([data-address-app]) #main{padding:0;max-width:none}
.address-app{position:fixed;inset:0;z-index:1100;display:grid;grid-template-rows:auto minmax(120px,1fr) auto;height:100vh;height:100dvh;background:var(--color-background);isolation:isolate}
.address-toolbar{position:relative;z-index:600;padding:max(16px,env(safe-area-inset-top)) 20px 10px;background:var(--color-background);border-bottom:1px solid var(--color-border)}
.address-title{display:flex;gap:14px;align-items:center;margin-bottom:15px}
.address-title span{font-size:12px;font-weight:600;color:var(--color-text-secondary)}
.address-title h1{font-size:23px;line-height:1.2;margin:3px 0 0;letter-spacing:-.6px}
.address-back{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--color-border);border-radius:50%;color:#701626;background:white}
.address-back svg,.address-search-box svg{width:21px;height:21px}
.address-search-wrap{position:relative}
.address-label{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
.address-search-box{display:flex;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:14px;background:white;padding-left:14px}
.address-search-box:focus-within{outline:2px solid var(--color-brand);outline-offset:2px}
.address-search-box input{min-width:0;width:100%;font-size:16px!important;line-height:24px;padding:14px 0;border:0!important;outline:0!important;box-shadow:none!important;background:transparent;color:#211B1C!important}
.address-search-box input::placeholder{color:#6E6262!important}.address-search-box svg{color:#6E6262}.address-app .address-result{color:#211B1C;background:#FFF}.address-app .address-result:focus,.address-app .address-result:hover{background:#F4E4E2}
#address-clear{font:24px var(--font-ui);width:44px;height:48px;flex-shrink:0;background:transparent;border:0;color:var(--color-text-secondary);cursor:pointer}
.address-status{font-size:12px;line-height:1.4;margin:9px 0 0;min-height:17px;color:var(--color-text-secondary)}
#address-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(42dvh,320px);overflow:auto;background:white;border:1px solid var(--color-border);border-radius:14px;box-shadow:0 8px 24px #211b1c18;z-index:1000}
.address-result{display:block;width:100%;border:0;border-bottom:1px solid var(--color-border);text-align:left;background:white;padding:16px;font:500 15px/1.4 var(--font-ui);cursor:pointer;color:var(--color-text)}
.address-result:last-child{border:0}.address-result:focus,.address-result:hover{background:var(--color-surface-muted)}
.address-map-wrap{position:relative;min-height:0;background:#efe9df}
#address-map{width:100%;height:100%;z-index:1}
.address-map-hint{position:absolute;top:15px;left:50%;transform:translateX(-50%);max-width:calc(100% - 110px);width:max-content;background:white;border-radius:20px;padding:8px 13px;font-size:11px;color:#6E6262;z-index:450;box-shadow:0 2px 10px #211b1c15;pointer-events:none}
.address-map-unavailable{position:absolute;inset:0;z-index:460;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--color-background)}
.address-map-unavailable[hidden],#address-results[hidden],.address-map-hint[hidden]{display:none}
.address-map-unavailable span{color:var(--color-brand);margin-bottom:10px}.address-map-unavailable span svg{width:36px;height:36px}.address-map-unavailable p{max-width:270px;font-size:14px;color:var(--color-text-secondary)}
.address-confirm-panel{z-index:500;padding:17px 20px max(12px,env(safe-area-inset-bottom));background:var(--color-background);border-top:1px solid var(--color-border)}
.address-chosen{display:flex;gap:12px;align-items:center}.address-chosen-icon{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;background:var(--color-surface-muted);color:var(--color-brand);border-radius:13px}.address-chosen-icon svg{width:23px;height:23px}.address-chosen small{display:block;font-size:11px;color:var(--color-text-secondary);margin-bottom:3px}.address-chosen strong{display:block;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.address-help{font-size:11px;line-height:1.45;color:var(--color-text-secondary);margin:11px 0 14px}
.address-confirm-panel .button{min-height:50px;background:var(--gradient-yellow);color:var(--color-text);border:0}.address-confirm-panel .button:disabled{opacity:.55;cursor:default}
.address-manual{display:block;width:100%;min-height:42px;border:0;background:transparent;color:var(--color-brand);font:600 12px var(--font-ui);cursor:pointer;margin-top:3px}
.address-pin{width:30px!important;height:38px!important;border:0!important;background:transparent!important}.address-pin span{display:block;width:28px;height:28px;border:3px solid white;border-radius:50% 50% 50% 0;background:var(--color-brand);transform:rotate(-45deg);box-shadow:0 2px 7px #211b1c40}.address-pin span:after{content:'';position:absolute;inset:7px;background:var(--color-yellow);border-radius:50%}
.address-app .leaflet-control-attribution{font-size:9px;max-width:100%;line-height:1.35;background:#ffffffeb;padding:3px 5px}.address-app .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;color:#701626}
@media(min-width:900px){.address-app{grid-template-columns:390px 1fr;grid-template-rows:1fr auto}.address-toolbar{grid-column:1;grid-row:1;border-right:1px solid var(--color-border);border-bottom:0;padding:28px}.address-title{margin-bottom:32px}.address-title h1{font-size:28px}.address-map-wrap{grid-column:2;grid-row:1 / 3}.address-confirm-panel{grid-column:1;grid-row:2;border-right:1px solid var(--color-border);border-top:0;padding:25px 28px}.address-map-hint{font-size:13px;top:25px}.address-status{font-size:13px}.address-help{font-size:12px}}
@media(max-height:600px) and (max-width:899px){.address-title{margin-bottom:7px}.address-toolbar{padding-top:8px}.address-title h1{font-size:19px}.address-confirm-panel{padding-top:9px}.address-help{display:none}.address-chosen{margin-bottom:8px}.address-manual{min-height:32px}}

/* Mobile: the map fills the actual portrait viewport; controls float above it. */
@media(max-width:899px){
 .address-app{display:block;background:#efe9df;color:#211B1C}
 .address-map-wrap{position:absolute;inset:0;z-index:0}
 .address-toolbar{position:absolute;left:12px;right:12px;top:max(12px,env(safe-area-inset-top));z-index:600;padding:14px;border:1px solid #ffffffa6;border-radius:22px;background:#fff7edc9;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 4px 20px #211b1c0d}
 .address-title{gap:10px;margin-bottom:12px}.address-title span{color:#6E6262}.address-title h1{font-size:22px;color:#211B1C}.address-back{width:44px;height:44px;background:#ffffff42;border-color:#ffffffb3}
 .address-search-box{background:#ffffff73;border-color:#ffffffa6;border-radius:13px}.address-search-box input{padding:11px 0}.address-status{color:#514145;font-size:11px;min-height:15px}.address-app #address-clear{color:#514145}
 #address-results{max-height:min(30dvh,270px);background:#fffdf8f5;backdrop-filter:blur(18px)}.address-app .address-result{background:transparent;min-height:48px}
 .address-confirm-panel{position:absolute;left:12px;right:12px;bottom:calc(24px + env(safe-area-inset-bottom));padding:15px;border:1px solid #ffffffa6;border-radius:22px;background:#fff7edcf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 3px 20px #211b1c0d;color:#211B1C}
 .address-chosen small,.address-help{color:#514145}.address-chosen-icon{background:#ffffff50;color:#701626}.address-chosen strong{font-size:14px}.address-help{font-size:10px;margin:8px 0 11px}.address-confirm-panel .button{background:#ffd43be6;color:#211B1C;min-height:48px;border-radius:14px}.address-manual{color:#701626;min-height:40px;margin:4px 0 0;background:#ffffff19;border-radius:12px}
 .address-map-hint{top:var(--map-top,190px);left:12px;transform:none;max-width:calc(100% - 80px);font-size:10px;background:#fff7edb8;backdrop-filter:blur(12px);box-shadow:none;padding:9px 12px;color:#514145}
 .address-app .leaflet-top.leaflet-right{top:var(--map-top,190px);right:12px}.address-app .leaflet-control-zoom{margin:0;border:1px solid #ffffffa6;border-radius:14px;overflow:hidden;box-shadow:0 3px 15px #211b1c15}.address-app .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;background:#fff7edb8;backdrop-filter:blur(14px);color:#701626;border-color:#ffffff80}
 .address-app .leaflet-control-attribution{position:fixed;bottom:max(2px,env(safe-area-inset-bottom));right:4px;margin:0;background:#fff7edc9;color:#514145;border-radius:5px;font-size:9px}.address-app .leaflet-control-attribution a{color:#514145}
 .address-pin span{background:#701626}.address-pin span:after{background:#FFD43B}
 .address-map-unavailable{padding:200px 30px 230px;background:#efe9df;color:#211B1C}.address-map-unavailable p{color:#514145}
}
@media(max-height:620px) and (max-width:899px){.address-toolbar{padding:10px}.address-title{margin-bottom:7px}.address-title h1{font-size:18px}.address-title span{font-size:10px}.address-title .address-back{width:38px;height:38px}.address-help{display:none}.address-confirm-panel{padding:11px}.address-confirm-panel .button{min-height:44px}.address-manual{min-height:36px}.address-chosen{margin-bottom:9px}.address-map-hint{display:none}.address-status{margin-top:6px}}
