/* Basket Shipping UX — CP persistente y cotización contextual */
.basket-postcode-modal-open { overflow: hidden; }
.basket-postcode-modal { position:fixed; inset:0; z-index:100050; display:none; align-items:center; justify-content:center; padding:20px; }
.basket-postcode-modal.is-open { display:flex; }
.basket-postcode-modal__backdrop { position:absolute; inset:0; background:rgba(12,17,14,.46); backdrop-filter:blur(3px); }
.basket-postcode-modal__dialog { position:relative; width:min(100%, 470px); background:#fff; border-radius:20px; padding:30px; box-shadow:0 24px 80px rgba(0,0,0,.24); font-family:"IBM Plex Sans",sans-serif; }
.basket-postcode-modal__close { position:absolute; top:14px; right:16px; width:34px; height:34px; border:0; border-radius:50%; background:#f3f4f1; color:#1b211d; font-size:23px; line-height:1; cursor:pointer; }
.basket-postcode-modal__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:#eef4ee; color:#254d2c; margin-bottom:16px; }
.basket-postcode-modal__icon svg { width:26px; height:26px; }
.basket-postcode-modal h2 { margin:0 38px 8px 0; color:#121713; font-family:"Neue Haas Grotesk Display Pro","IBM Plex Sans",sans-serif; font-size:26px; line-height:1.08; }
.basket-postcode-modal p { margin:0 0 20px; color:#626a64; font-size:14px; line-height:1.5; }
.basket-postcode-form label { display:block; margin-bottom:7px; color:#303632; font-size:12px; font-weight:600; }
.basket-postcode-form__row { display:flex; gap:9px; }
.basket-postcode-form input { min-width:0; flex:1; height:48px; border:1px solid #d8ddd9; border-radius:10px; padding:0 14px; color:#171b18; background:#fff; font:600 16px/1 "IBM Plex Sans",sans-serif; outline:none; }
.basket-postcode-form input:focus { border-color:#263d2a; box-shadow:0 0 0 3px rgba(38,61,42,.09); }
.basket-postcode-form button[type="submit"] { height:48px; border:0; border-radius:10px; padding:0 18px; background:#17201b; color:#fff; font:600 14px/1 "IBM Plex Sans",sans-serif; cursor:pointer; white-space:nowrap; }
.basket-postcode-form button[disabled] { opacity:.65; cursor:wait; }
.basket-postcode-form__error { min-height:18px; padding-top:6px; color:#b42318; font-size:12px; }
.basket-postcode-modal__later { border:0; background:transparent; color:#777f79; padding:5px 0 0; font:500 13px/1.3 "IBM Plex Sans",sans-serif; text-decoration:underline; cursor:pointer; }

.basket-delivery-strip { border-bottom:1px solid #e5e8e5; background:#f5f7f4; color:#343a36; font-family:"IBM Plex Sans",sans-serif; }
.basket-delivery-strip__inner { width:min(100% - 32px, 1380px); min-height:38px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:7px; font-size:12px; }
.basket-delivery-strip svg { width:16px; height:16px; flex:0 0 16px; color:#2c5a33; }
.basket-delivery-strip button { border:0; background:transparent; padding:0; color:#1d4d27; font:600 12px/1 "IBM Plex Sans",sans-serif; text-decoration:underline; cursor:pointer; }

.basket-shipping-card { min-height:36px; }
.basket-shipping-card__loading, .basket-shipping-card__empty { display:flex; min-height:34px; align-items:center; color:#747c76; font:500 10.5px/1.25 "IBM Plex Sans",sans-serif; }
.basket-shipping-card__postcode { width:100%; min-height:34px; border:1px solid #dce4dd; border-radius:8px; background:#f7f9f7; color:#315338; padding:7px 9px; text-align:left; font:600 10.5px/1.25 "IBM Plex Sans",sans-serif; cursor:pointer; }
.basket-shipping-card__rate { min-height:40px; display:flex; align-items:center; gap:7px; padding:7px 8px; border-radius:9px; background:#f3f5f3; color:#28302a; }
.basket-shipping-card__rate--flex { background:#e2f5e4; color:#225c29; }
.basket-shipping-card__rate--flet { background:#edf4ee; color:#2d5433; }
.basket-shipping-card__rate--pickup { background:#f4f2eb; color:#584d2d; }
.basket-shipping-card__rate > svg { width:17px; height:17px; flex:0 0 17px; }
.basket-shipping-card__copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:1px; }
.basket-shipping-card__copy strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:600 10.5px/1.2 "IBM Plex Sans",sans-serif; }
.basket-shipping-card__copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:.78; font:500 9.5px/1.2 "IBM Plex Sans",sans-serif; }
.basket-shipping-card__more { flex:0 0 auto; font:600 9px/1 "IBM Plex Sans",sans-serif; opacity:.72; white-space:nowrap; }

.sp-delivery { margin:18px 0 10px; padding:16px; border:1px solid #e0e5e1; border-radius:14px; background:#f8faf8; font-family:"IBM Plex Sans",sans-serif; }
.sp-delivery__head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:12px; }
.sp-delivery__eyebrow { display:block; color:#778078; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.sp-delivery__title { display:block; margin-top:2px; color:#202621; font-size:15px; line-height:1.25; }
.sp-delivery__change { flex:0 0 auto; border:0; background:transparent; color:#24552d; padding:3px; font:600 12px/1.2 "IBM Plex Sans",sans-serif; text-decoration:underline; cursor:pointer; }
.sp-delivery__rates { display:grid; gap:7px; }
.sp-delivery__rates > p, .sp-delivery__loading { margin:0; color:#69716b; font-size:12px; line-height:1.4; }
.sp-delivery-rate { min-height:52px; display:flex; align-items:center; gap:10px; border:1px solid #e1e6e2; border-radius:10px; background:#fff; padding:9px 10px; }
.sp-delivery-rate--flex { border-color:#cce6cf; background:#f1faf2; }
.sp-delivery-rate--flet { border-color:#d8e5da; background:#f5f9f5; }
.sp-delivery-rate__icon { width:31px; height:31px; flex:0 0 31px; display:grid; place-items:center; border-radius:9px; background:#eef2ee; color:#315439; }
.sp-delivery-rate__icon svg { width:18px; height:18px; }
.sp-delivery-rate__copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
.sp-delivery-rate__copy strong { color:#252b26; font-size:12px; line-height:1.25; }
.sp-delivery-rate__copy small { color:#7a817b; font-size:10px; }
.sp-delivery-rate__price { flex:0 0 auto; color:#202621; font-size:12px; white-space:nowrap; }
.sp-delivery__empty { display:flex; flex-direction:column; gap:2px; padding:9px 0; color:#69716b; font-size:12px; }
.sp-delivery__empty strong { color:#3d443f; }

@media (max-width: 767px) {
  .basket-postcode-modal { padding:12px; align-items:flex-end; }
  .basket-postcode-modal__dialog { width:100%; border-radius:20px 20px 12px 12px; padding:24px 18px 20px; }
  .basket-postcode-modal h2 { font-size:23px; }
  .basket-postcode-form__row { flex-direction:column; }
  .basket-postcode-form button[type="submit"] { width:100%; }
  .basket-delivery-strip__inner { width:calc(100% - 22px); justify-content:flex-start; min-height:40px; font-size:11px; }
  .basket-delivery-strip__inner span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .sp-delivery { padding:13px; }
  .sp-delivery-rate { align-items:flex-start; }
  .sp-delivery-rate__price { align-self:center; }
}

/* v1.6.13 — jerarquía de envío en cards */
.basket-shipping-card__secondary { display:block; margin-top:3px; color:#315d38; font:600 9.5px/1.25 "IBM Plex Sans",sans-serif; white-space:normal; }
.basket-shipping-card__secondary--pickup { color:#777067; font-weight:500; }

/* v1.6.14 — cotizador único en single product */
.single-product .sp-info .product-shipping-calculator,
.single-product .sp-info .woocommerce-shipping-calculator,
.single-product .sp-info .shipping-calculator-form,
.single-product .sp-info [data-shipping-calculator],
.single-product .sp-info .wc-shipping-calculator { display:none !important; }
.sp-delivery__postcode-cta { width:100%; min-height:46px; border:1px solid #d7dfd8; border-radius:10px; background:#fff; color:#244c2b; font:600 13px/1.2 "IBM Plex Sans",sans-serif; cursor:pointer; }
.sp-delivery-rate__name { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.sp-delivery-rate__badge { display:inline-flex; align-items:center; min-height:20px; padding:2px 7px; border-radius:999px; background:#eef4ee; color:#31593a; font:700 9px/1 "IBM Plex Sans",sans-serif; white-space:nowrap; }
.sp-delivery-rate__badge--fast { background:#e6f4e7; color:#23602c; }
.sp-delivery-rate--zippin { border-color:#e0e5e1; background:#fff; }
.sp-delivery-rate--zippin_pickup { border-color:#ebe5d9; background:#fbfaf7; }
