/* HanAnHua v162 — guided address entry with instant, normalized preview. */
.address-composer-section{min-width:0}
.address-composer-intro{font-size:14px;line-height:1.55;margin:7px 0 13px;color:#575141}
.address-composer-map-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 18px}
.address-composer-map-row .address-map-button{font-size:14px;min-height:45px}
.address-composer-optional{font-size:12px;font-weight:750;color:#736d5c}
.address-parts-grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:13px 15px;max-width:100%;padding:18px;background:#fffdf4;border:1.7px solid #d9cfae;border-radius:18px}
.address-part{display:flex;flex-direction:column;min-width:0;gap:6px}
.address-part-wide{grid-column:1/-1}
.address-part label{font-size:13px;font-weight:850;line-height:1.4;color:#24211a}
.address-part input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1.5px solid #ada993;border-radius:11px;background:#fff;font:inherit;font-size:15px;color:#151515;box-shadow:none}
.address-part input:focus{outline:2px solid #ffb509;outline-offset:1px;border-color:#191919}
.address-part input::placeholder{font-size:13px;color:#8b887f;opacity:1}
.address-part:nth-child(2){grid-column:1/2}
.address-part:nth-child(3),.address-part:nth-child(4){max-width:100%}
.address-live-card{background:#fff6d0;border:2px solid #efc54c;border-radius:15px;padding:14px 16px;margin-top:15px;min-width:0}
.address-live-kicker{display:block;font-size:11px;letter-spacing:.08em;font-weight:900;color:#94640d}
.address-live-card p{font-size:14px;line-height:1.65;margin:6px 0 0;overflow-wrap:anywhere;color:#1c1914}
.address-live-card p.is-empty{color:#736c5c;font-style:italic}
.address-guide-details{border-bottom:1px solid #e5dfcd;margin-top:12px;padding-bottom:5px;font-size:12.5px;line-height:1.65;color:#6d6555}
.address-guide-details summary{font-size:13px;color:#4b4a3e;font-weight:850;cursor:pointer;padding:9px 0}
.address-guide-details p{margin:5px 0 8px}
/* The combined value remains an accessible form control for the existing
   validation / CV / submission pipeline, but is not a second editable field. */
.address-composed-source{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;opacity:0!important;clip-path:inset(50%);overflow:hidden;pointer-events:none;min-height:0!important;max-height:1px!important}
@media(min-width:720px){.address-parts-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 94px 94px}.address-part-wide{grid-column:span 2}.address-part:nth-child(2){grid-column:auto}}
@media(max-width:560px){.address-parts-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:12px}.address-part-wide{grid-column:1/-1}.address-part:nth-child(2){grid-column:1/-1}.address-part input{font-size:16px;min-height:46px}.address-part label{font-size:12px}.address-part:nth-child(5),.address-part:nth-child(6),.address-part:nth-child(7),.address-part:nth-child(8){grid-column:1/-1}.address-composer-map-row{align-items:flex-start}.address-composer-optional{width:100%}}
@media(max-width:360px){.address-parts-grid{padding:10px;gap:10px}.address-composer-map-row .address-map-button{width:100%}}
