/* HanAnHua v163 — balanced, readable address form. Overrides v162 layout. */
.address-composer-section{min-width:0}
.address-composer-section .address-composer-intro{font-size:14px;line-height:1.6;color:#555044;margin:6px 0 12px}
.address-composer-map-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}
.address-composer-map-row .address-map-button{min-height:45px}
.address-composer-optional{font-size:12px;font-weight:700;color:#6f6858}
/* A 12-track layout gives every field a deliberate width and order. */
#address-parts-grid.address-parts-grid{
  width:100%;max-width:1120px;margin:0 auto;
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:row;gap:18px 16px;align-items:start;
  padding:20px 22px;background:#fffdf4;border:1.7px solid #d9cfae;border-radius:18px;
}
#address-parts-grid .address-part{display:flex;flex-direction:column;gap:7px;min-width:0;max-width:none;grid-column:auto;align-self:stretch}
#address-parts-grid .address-part--street{grid-column:span 8}
#address-parts-grid .address-part--house{grid-column:span 4}
#address-parts-grid .address-part--rt,#address-parts-grid .address-part--rw{grid-column:span 2}
#address-parts-grid .address-part--village{grid-column:span 8}
#address-parts-grid .address-part--district,#address-parts-grid .address-part--city{grid-column:span 6}
#address-parts-grid .address-part--province{grid-column:span 8}
#address-parts-grid .address-part--postal{grid-column:span 4}
#address-parts-grid .address-part label{font-size:14px;line-height:1.45;font-weight:850;color:#25221d;min-height:20px}
#address-parts-grid .address-part input{
  display:block;box-sizing:border-box;min-width:0;width:100%;height:51px;min-height:51px;
  padding:12px 13px;border:1.7px solid #a9a18c;border-radius:12px;
  font-family:inherit;font-size:16px;line-height:1.4;color:#151515;background:#fff;
  text-overflow:clip;box-shadow:none;
}
#address-parts-grid .address-part input::placeholder{font-size:14px;font-weight:500;color:#6f6a60;opacity:1}
#address-parts-grid .address-part input:focus{outline:2px solid #ffca35;outline-offset:1px;border-color:#181818;box-shadow:0 0 0 3px rgba(255,202,53,.23)}
#address-parts-grid .address-part--rt input,#address-parts-grid .address-part--rw input{max-width:100%}
.address-composer-section .address-live-card{max-width:1120px;margin:13px auto 0;padding:15px 18px}
.address-composer-section .address-guide-details{max-width:1120px;margin:12px auto 0}
/* Reflow from four proportional groups to more generous tablet widths. */
@media (min-width:601px) and (max-width:979px){
  #address-parts-grid.address-parts-grid{gap:16px 12px;padding:17px}
  #address-parts-grid .address-part--street{grid-column:span 7}
  #address-parts-grid .address-part--house{grid-column:span 5}
  #address-parts-grid .address-part--rt,#address-parts-grid .address-part--rw{grid-column:span 3}
  #address-parts-grid .address-part--village{grid-column:span 6}
  #address-parts-grid .address-part--province{grid-column:span 7}
  #address-parts-grid .address-part--postal{grid-column:span 5}
}
@media (max-width:600px){
  .address-composer-map-row{flex-direction:column;align-items:stretch;gap:8px}
  .address-composer-map-row .address-map-button{width:100%;text-align:center;justify-content:center}
  .address-composer-map-row .address-composer-optional{width:100%;font-size:12px;line-height:1.5}
  #address-parts-grid.address-parts-grid{gap:14px 12px;padding:15px 13px;border-radius:15px}
  #address-parts-grid .address-part--street,#address-parts-grid .address-part--house,
  #address-parts-grid .address-part--village,#address-parts-grid .address-part--district,
  #address-parts-grid .address-part--city{grid-column:1/-1}
  #address-parts-grid .address-part--rt,#address-parts-grid .address-part--rw{grid-column:span 6}
  #address-parts-grid .address-part--province{grid-column:span 7}
  #address-parts-grid .address-part--postal{grid-column:span 5}
  #address-parts-grid .address-part label{font-size:13.5px}
  #address-parts-grid .address-part input{font-size:16px;height:49px;min-height:49px;padding:11px 12px}
  #address-parts-grid .address-part input::placeholder{font-size:14px}
  .address-composer-section .address-live-card{padding:13px 14px}
}
@media (max-width:375px){
  #address-parts-grid.address-parts-grid{padding:13px 11px;gap:13px 10px}
  #address-parts-grid .address-part--province,#address-parts-grid .address-part--postal{grid-column:1/-1}
}

/* v177: make required address fields obvious, including after language changes. */
#address-parts-grid .address-part--required label::after {content:" *";color:#b42318;font-weight:900}
#address-parts-grid .address-part--required input[aria-invalid="true"],
#address-parts-grid .address-part--required.has-error input {border-color:#c81e1e;box-shadow:0 0 0 2px rgba(200,30,30,.12)}
#address-parts-grid .address-part--required input[aria-invalid="true"]:focus {outline-color:#c81e1e}
