/* A compact destination form, with checkout and customs costs visually separated. */
.destination-fields { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:12px; align-items:end; }
.destination-fields .field { margin:0; min-width:0; }
.destination-fields label { display:block; font-size:13px; font-weight:600; margin-bottom:7px; }
.destination-fields .input,.destination-fields .select { width:100%; min-width:0; height:44px; font-size:14px; }
#delivery-form > .btn { margin-top:12px; width:auto; padding:9px 16px; font-size:13px; }
#delivery-form #estimate { margin-top:18px; }
.delivery-quote { border:1px solid var(--line-soft,#dedfd9); border-radius:12px; overflow:hidden; background:#fff; }
.delivery-heading { display:flex; justify-content:space-between; gap:12px; padding:17px 18px 0; }
.delivery-eyebrow { font-size:13px; font-weight:650; }
.delivery-quantity { font-size:12px; color:var(--muted,#626963); }
.delivery-location { margin:4px 18px 0; font-size:12px; color:var(--muted,#626963); }
.delivery-service { display:flex; gap:10px; align-items:center; padding:16px 18px; }
.delivery-service-icon { display:grid; place-items:center; flex:0 0 32px; height:32px; background:#edf3ec; color:#244e38; border-radius:8px; font-size:20px; }
.delivery-service strong { display:block; font-size:13px; line-height:1.4; }
.delivery-service div > span { display:block; font-size:12px; margin-top:3px; color:var(--muted,#626963); }
.delivery-totals { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 16px; margin:0; padding:0 18px 16px; font-size:13px; line-height:1.5; }
.delivery-totals dt { color:#535b56; }
.delivery-totals dd { margin:0; text-align:right; font-family:var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.delivery-pay { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:17px 18px; background:#edf4ed; border-top:1px solid #dce6da; color:#193e30; }
.delivery-pay > span { font-size:14px; font-weight:650; }
.delivery-pay small { display:block; font-size:11px; font-weight:400; margin-top:4px; }
.delivery-pay > strong { font-family:var(--mono); font-size:22px; letter-spacing:-.02em; white-space:nowrap; }
.delivery-customs { margin-top:12px; padding:15px 18px; border:1px solid #e6dfcf; border-radius:10px; background:#fbf9f3; }
.delivery-customs-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.delivery-customs-heading strong { font-size:13px; }
.delivery-customs-heading span { font-size:10px; color:#706344; background:#eee9dc; border-radius:4px; padding:3px 6px; }
.delivery-customs .delivery-totals { padding:0; font-size:12px; gap:6px 12px; }
.delivery-customs .customs-total { border-top:1px solid #e6dfcf; padding-top:9px; margin-top:3px; font-weight:650; }
.delivery-customs > p { font-size:11px; line-height:1.6; color:#6c6657; margin:11px 0 0; }
.delivery-details { margin-top:13px; color:#616861; font-size:11px; line-height:1.7; }
.delivery-details summary { cursor:pointer; font-size:12px; }
.delivery-details p { margin:8px 0; }
.delivery-message { padding:16px; background:#f5f6f2; border-radius:10px; font-size:13px; line-height:1.6; }
.delivery-message p { margin:5px 0 0; }
@media(max-width:480px) { .destination-fields { gap:8px; } .delivery-heading,.delivery-service { padding-left:12px; padding-right:12px; } .delivery-totals { padding-left:12px; padding-right:12px; } .delivery-pay { padding:14px 12px; } .delivery-pay > strong { font-size:18px; } .delivery-customs { padding:13px 12px; } }
.destination-cart { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:12px; }
.destination-cart .field { margin:0; min-width:0; }
.destination-cart label { font-size:12px; }
.destination-cart .input,.destination-cart .select { min-width:0; width:100%; font-size:13px; }
.destination-cart .btn { grid-column:1 / -1; justify-self:start; }
#delivery-form .htmx-indicator { display:none; }
#delivery-form.htmx-request .htmx-indicator { display:block; margin-top:8px; font-size:12px; }
.delivery-service-icon svg { width:19px; height:19px; }
.cart-delivery-service { padding:12px 14px; border-radius:8px; background:#edf4ed; }
.cart-delivery-service strong { display:block; font-size:13px; }
.cart-delivery-service span { display:block; margin-top:4px; font-size:12px; color:#535b56; }
.delivery-alternatives { font-size:12px; }
.delivery-alternatives summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.delivery-alternatives .ship-options { margin-top:14px; }
/* HTMX marks the indicator itself as busy, including button-triggered requests. */
#delivery-form .htmx-indicator.htmx-request,
#delivery-form.htmx-request .htmx-indicator { display:inline-flex; align-items:center; gap:8px; margin-top:10px; color:#315640; opacity:1; }
#delivery-loading::before { content:""; width:13px; height:13px; flex:0 0 13px; border:2px solid #d9e5d8; border-top-color:#315640; border-radius:50%; animation:delivery-spin .8s linear infinite; }
#delivery-loading.htmx-request { animation:delivery-breathe 1.7s ease-in-out infinite; }
@keyframes delivery-spin { to { transform:rotate(360deg); } }
@keyframes delivery-breathe { 0%,100% { opacity:1; } 50% { opacity:.6; } }
@media(prefers-reduced-motion:reduce) { #delivery-loading.htmx-request,#delivery-loading::before { animation:none; } }
