.wedding-location{padding:54px 28px 55px;background:#f8f5ec;scroll-margin-top:20px;text-align:center}
.wedding-location h2{font:normal 26px/1.6 var(--serif);letter-spacing:3px;margin:0 0 11px}
.location-intro{font:12px/1.9 var(--serif);color:#7c846f;letter-spacing:1px;margin:0 0 27px}
.location-card{border:1px solid #bec4af;background:#fffdf6;text-align:left}
.location-map-window{position:relative;height:280px;overflow:hidden;background:#e8ece7;isolation:isolate}
.location-live-map{position:absolute;inset:0;width:100%;height:100%;background:#e8ece7;font-family:var(--sans);z-index:0}
.location-map-preview .location-live-map{pointer-events:none}
.location-pin{background:none;border:0;filter:drop-shadow(0 2px 3px #102b2390)}
.location-pin>span{position:absolute;left:2px;top:0;width:24px;height:24px;background:#cf5e44;border:2px solid #fffdf5;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.location-pin>span:after{content:"";position:absolute;left:6px;top:6px;width:8px;height:8px;background:#fffdf5;border-radius:50%}
.location-point-label.leaflet-tooltip{padding:5px 9px;border:1px solid #bcc5ae;background:#fffdf5;color:#314b39;font:12px/1.4 var(--sans);box-shadow:0 2px 8px #15291f30}
.location-live-map .leaflet-control-attribution{max-width:90%;font-size:8px;line-height:1.5}
.location-live-map .leaflet-control-attribution a{color:#3d563e}
.location-map-open{position:absolute;inset:0;z-index:2;border:0;padding:0;width:100%;background:transparent;color:#3d563e;cursor:pointer;font-family:inherit}
.location-map-caption{position:absolute;top:13px;left:13px;padding:7px 11px;border:1px solid #a6b393;background:#fffdf5f2;font:11px/1.5 var(--serif);letter-spacing:1px}
.location-map-expand{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:9px 15px;background:#fffdf7f5;border:1px solid #b8c2ac;border-radius:22px;font:12px/1.4 var(--sans);box-shadow:0 2px 10px #31483d12}
.location-map-loading{position:absolute;inset:0;z-index:1;display:grid;place-content:center;padding:40px;background:#e8ece7;color:#687b62;font:12px/1.8 var(--sans);text-align:center;pointer-events:none}
.location-map-loading[hidden]{display:none}
.location-map-credit{display:flex;justify-content:space-between;gap:10px;padding:6px 10px;border-bottom:1px solid #dfe1d2;font:9px/1.5 var(--sans);color:#818b78;background:#f1f2e9}
.location-map-credit a{color:inherit;text-decoration:none}
.location-card-body{padding:23px 21px 21px}
.location-card-label{margin:0 0 8px;font:9px/1.6 var(--sans);letter-spacing:2px;color:#96926f}
.location-card h3{font:normal 24px/1.5 var(--serif);letter-spacing:2px;color:#3d563e;margin:0 0 10px}
.location-address{font:12px/1.95 var(--serif);color:#6d7b62;letter-spacing:.5px;margin:0;overflow-wrap:anywhere}
.location-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:21px 0 0}
.location-primary,.location-secondary{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:11px 6px;border:1px solid #50664b;background:#3d563e;color:#fff9ee;font:12px/1.6 var(--sans);letter-spacing:.5px;text-align:center;cursor:pointer}
.location-secondary{background:transparent;color:#50664b}
.location-copy{display:block;margin:16px auto 0;padding:3px 10px;border:0;background:none;color:#6c7d61;text-decoration:underline;text-underline-offset:4px;font:11px/1.8 var(--sans);cursor:pointer}
.location-message{font:11px/1.8 var(--sans);color:#647a55;margin:13px 0 0}
.location-message:empty{display:none}
.location-copy-box{box-sizing:border-box;width:100%;margin-top:14px;min-height:70px;padding:9px;border:1px solid #b9c5a9;background:#fffdf6;color:#3d563e;font:13px/1.7 var(--sans);resize:none}
.location-copy-box[hidden]{display:none}
.location-note{font:11px/1.9 var(--serif);letter-spacing:.5px;color:#858a74;margin:23px 0 0}
.details .detail-line dd{overflow-wrap:anywhere}
.location-dialog{box-sizing:border-box;width:min(720px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:24px;border:1px solid #bcc5b1;background:#f8f5ec;color:#31483d;overflow:auto;overscroll-behavior:contain;box-shadow:0 16px 70px #15271f44}
.location-dialog::backdrop{background:#1d2d24a8;backdrop-filter:blur(3px)}
.location-dialog-fallback{position:fixed;inset:12px;z-index:20000;box-shadow:0 0 0 100vmax #1d2d24a8}
.location-dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.location-dialog .section-kicker{margin:0 0 7px;font-size:8px;letter-spacing:2px}
.location-dialog h2{font:normal 24px/1.5 var(--serif);letter-spacing:2px;margin:0}
.location-close{flex-shrink:0;width:38px;height:38px;display:grid;place-content:center;border:1px solid #bec8b2;background:#fffdf5;color:#50664b;font:26px/1 var(--sans);cursor:pointer}
.location-dialog-address{font:14px/1.9 var(--sans);margin:14px 0 19px;overflow-wrap:anywhere}
.location-map-detail{height:300px}
.location-route-options h3{font:normal 16px/1.6 var(--serif);letter-spacing:1px;margin:20px 0 4px}
.location-route-options>p{font:11px/1.8 var(--sans);color:#7d8974;margin:0 0 12px}
.location-provider-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.location-provider-list a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 4px;border:1px solid #bbc7af;background:#fffdf6;color:#3d563e;font:13px/1.4 var(--sans);text-decoration:none}
.location-provider-list a[aria-disabled=true]{opacity:.5;pointer-events:none}
.provider-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.provider-dot.tencent{background:#4f9d75}.provider-dot.amap{background:#4f8bbd}.provider-dot.baidu{background:#b97966}
.location-dialog-copy{display:block;width:100%;margin:13px 0 0;padding:11px;border:0;background:#e8ecdf;color:#52654a;font:12px/1.5 var(--sans);cursor:pointer}
.location-route-options .location-network-note{font-size:10px;margin:11px 0 0;color:#87907e}
.location-map-open:focus-visible,.location-primary:focus-visible,.location-secondary:focus-visible,.location-close:focus-visible,.location-provider-list a:focus-visible{outline:2px solid #587346;outline-offset:3px}
.poster-mode .wedding-location,.poster-mode .location-dialog{display:none!important}
@media(max-width:360px){.wedding-location{padding:45px 23px}.wedding-location h2{font-size:24px;letter-spacing:2px}.location-card-body{padding:20px 16px}.location-actions{gap:8px}.location-primary,.location-secondary{font-size:11px;letter-spacing:0}.location-card h3{font-size:22px}.location-dialog{padding:16px}.location-dialog h2{font-size:22px}.location-dialog-address{font-size:13px}.location-provider-list{gap:6px}.location-provider-list a{font-size:11px;gap:4px}.location-map-detail{height:270px}.location-map-caption{font-size:10px;top:10px;left:10px}}
