.product-shipping { margin: 2rem 0 3rem; }
.shipping-geo, .shipping-terms, .shipping-cities { padding: 1.75rem 2rem; border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: #fff; }
.shipping-geo { display: grid; grid-template-columns: 1fr 1.25fr; gap: 1.5rem 2rem; box-shadow: var(--shadow-sm); }
.shipping-eyebrow { display: block; margin-bottom: .5rem; color: var(--color-text-muted); font-size: .75rem; }
.product-shipping h2 { margin: 0 0 1rem; font-family: var(--font-body); font-size: 1.375rem; font-weight: 600; line-height: 1.4; }
.shipping-stock { display: flex; align-items: center; gap: .5rem; color: var(--color-primary-dark); font-size: .875rem; font-weight: 500; }
.shipping-stock > span { width: .5rem; height: .5rem; border-radius: 50%; background: var(--color-primary); flex-shrink: 0; }
.shipping-stock--unavailable { color: var(--color-text-muted); }
.shipping-stock--unavailable > span { background: var(--color-text-light); }
.shipping-geo__details { display: grid; grid-template-columns: .85fr 1.2fr; gap: 1.5rem; align-items: center; padding: 1.25rem; background: var(--color-primary-light); border-radius: var(--radius-lg); }
.shipping-geo__details span { display: block; margin-bottom: .375rem; color: var(--color-text-muted); font-size: .75rem; }
.shipping-geo__details strong { font-size: .9375rem; font-weight: 600; }
.shipping-geo__footer { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; border-top: 1px solid var(--color-border-light); padding-top: 1rem; }
.shipping-note { font-size: .8125rem; color: var(--color-text-muted); line-height: 1.7; }
.shipping-geo__footer > .shipping-note { flex: 1 1 420px; }
.shipping-city-change { min-height: 44px; border: 0; background: transparent; color: var(--color-primary-dark); font: inherit; font-size: .875rem; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.shipping-city-form { flex-basis: 100%; max-width: 500px; }
.shipping-city-form[hidden] { display: none; }
.shipping-city-form label { display: block; margin-bottom: .5rem; font-size: .875rem; }
.shipping-city-form__row { display: flex; gap: .5rem; }
.shipping-city-form input { min-width: 0; width: 100%; min-height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: .625rem .75rem; font: inherit; font-size: 1rem; }
.shipping-city-form button { min-height: 44px; border: 0; border-radius: var(--radius-md); padding: .625rem 1rem; background: var(--color-primary); color: #fff; font: inherit; font-size: .875rem; cursor: pointer; }
.shipping-city-error { color: #b91c1c; font-size: .8125rem; margin-top: .375rem; }
.shipping-terms, .shipping-cities { margin-top: 1.25rem; }
.shipping-terms__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.shipping-terms__card { border-radius: var(--radius-lg); background: var(--color-surface); padding: 1.25rem; }
.shipping-card-title { display: flex; align-items: center; gap: .75rem; margin-bottom: .875rem; }
.shipping-card-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; background: var(--color-primary-light); border-radius: var(--radius-md); color: var(--color-primary-dark); flex-shrink: 0; }
.shipping-card-title h3 { margin: 0; font: 600 1rem/1.4 var(--font-body); }
.shipping-terms__card ul { padding-left: 1.125rem; font-size: .875rem; line-height: 1.75; }
.shipping-terms__card li + li { margin-top: .625rem; }
.shipping-terms__card li::marker { color: var(--color-primary); }
.shipping-terms__link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem; min-height: 44px; font-size: .875rem; font-weight: 500; }
.shipping-note--availability { margin-top: 1rem; }
.shipping-cities__intro { margin-bottom: 1.25rem; font-size: .875rem; color: var(--color-text-muted); }
.shipping-cities__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1.25rem; }
.shipping-city { display: flex; flex-direction: column; align-items: flex-start; gap: .375rem; padding: 1rem; min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); color: var(--color-text); font: inherit; cursor: pointer; text-align: left; transition: border-color .15s, background .15s; }
.shipping-city > span { font-size: .875rem; font-weight: 500; overflow-wrap: anywhere; }
.shipping-city > strong { font-size: .8125rem; font-weight: 500; color: var(--color-text-muted); }
.shipping-city:hover, .shipping-city[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary-light); }
.product-shipping :focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }
@media (max-width: 760px) {
    .shipping-geo { grid-template-columns: 1fr; gap: 1.25rem; }
    .shipping-geo, .shipping-terms, .shipping-cities { padding: 1.25rem; }
    .shipping-terms__grid { grid-template-columns: 1fr; gap: 1rem; }
    .shipping-cities__grid { grid-template-columns: repeat(2, 1fr); }
    .product-shipping h2 { font-size: 1.25rem; }
}
@media (max-width: 420px) {
    .shipping-geo__details { grid-template-columns: 1fr; gap: 1rem; }
    .shipping-city-form__row { flex-direction: column; }
    .shipping-cities__grid { gap: .5rem; }
    .shipping-city { padding: .75rem; }
}
