/* Paquetes de Ocasiones: tarjeta en la grilla y ficha del paquete. */
.store-package-card{display:flex;flex-direction:column;gap:10px;border-color:#E4DAFF;background:linear-gradient(180deg,#fff 0%,#FBF9FF 100%)}
.store-package-media{position:relative;width:100%;aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:var(--soft);cursor:pointer}
.store-package-media>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.store-package-card:hover .store-package-media>img,.store-package-card:hover .store-package-mosaic img{transform:scale(1.03)}
.store-package-mosaic{display:grid;width:100%;height:100%;gap:2px;background:#fff}
.store-package-mosaic img{width:100%;height:100%;object-fit:cover;display:block;min-height:0;transition:transform .35s ease}
.store-package-mosaic.is-1{grid-template-columns:1fr}
.store-package-mosaic.is-2{grid-template-columns:1fr 1fr}
.store-package-mosaic.is-3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.store-package-mosaic.is-3 img:first-child{grid-row:span 2}
.store-package-mosaic.is-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.store-package-mosaic>i{display:grid;place-items:center;font-size:2.4rem;color:#B9A8F0}
.store-package-badge,.store-package-people{position:absolute;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:800;line-height:1}
.store-package-badge{top:9px;left:9px;background:var(--gradient);color:#fff;box-shadow:0 6px 16px rgba(124,60,255,.28)}
.store-package-people{left:9px;bottom:9px;background:rgba(255,255,255,.94);color:var(--text)}
.store-package-copy small{display:block;color:var(--primary);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.store-package-copy h3{margin:3px 0 4px;font-size:1rem;line-height:1.25}
.store-package-copy p{margin:0;color:var(--muted);font-size:.78rem}
.store-package-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.store-package-bottom strong{font-size:1.05rem}
.store-package-bottom .btn{min-height:36px;padding:7px 14px;font-size:.8rem;white-space:nowrap}

.package-detail-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:18px}
/* 2026-10-29: la dirección de entrega se pide encima del paquete abierto. */
body.product-detail-open .store-delivery-modal{z-index:5050!important}
/* 2026-10-29: "Cambiar la fecha" del paquete en una ventana encima, sin ir al paso 1. */
.package-date-modal{position:fixed;inset:0;z-index:5060;display:grid;place-items:center;padding:16px}
.package-date-modal[hidden]{display:none}
.package-date-backdrop{position:absolute;inset:0;background:rgba(13,9,34,.45)}
.package-date-panel{position:relative;width:min(420px,100%);padding:26px 22px 20px;border-radius:20px;background:#fff;box-shadow:0 30px 80px rgba(10,6,30,.3)}
.package-date-panel h3{margin:0 40px 8px 0;font-size:1.2rem}
.package-date-panel p{margin:0 0 14px;color:#5b5670;line-height:1.45}
.package-date-panel label{display:grid;gap:6px;font-weight:700}
.package-date-panel input[type=date]{min-height:46px;padding:0 12px;border:1px solid #DDD2FA;border-radius:12px;font:inherit}
.package-date-x{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #D8CCF5;border-radius:50%;background:#fff;color:var(--primary);cursor:pointer}
.package-date-error{margin:10px 0 0!important;color:#c0263d!important;font-weight:600}
.package-date-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.package-date-actions .btn{min-height:44px}
.package-detail-modal[hidden]{display:none}
.package-detail-backdrop{position:fixed;inset:0;background:rgba(10,8,28,.76);backdrop-filter:blur(5px)}
.package-detail-panel{position:relative;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);width:min(960px,100%);max-height:min(800px,92vh);border-radius:16px;background:#fff;box-shadow:0 34px 100px rgba(7,5,25,.38);overflow:hidden}
.package-detail-close{position:absolute;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.95);box-shadow:0 6px 18px rgba(13,13,31,.16);cursor:pointer;font-size:1rem}
.package-detail-photo{position:relative;min-height:100%;overflow:hidden;background:var(--soft)}
.package-detail-photo>img{width:100%;height:100%;object-fit:cover;display:block}
.package-detail-photo .store-package-mosaic,.store-package-media .store-package-mosaic{position:absolute;inset:0}
.package-detail-content{display:flex;flex-direction:column;gap:12px;max-height:min(800px,92vh);padding:28px 28px 24px;overflow-y:auto}
.package-detail-content .kicker{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.package-detail-content h2{margin:0;font-size:1.55rem;line-height:1.2;padding-right:30px}
.package-detail-description{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}
.package-detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.package-detail-summary>div{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#FBFAFF}
.package-detail-summary>div[hidden]{display:none}
.package-detail-summary span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.package-detail-summary strong{font-size:1.3rem}
.package-detail-add{width:100%;min-height:48px;font-size:.95rem}
.package-detail-added{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#EAFBF2;color:#0E7A47;font-size:.85rem;font-weight:700}
.package-detail-added[hidden]{display:none}
.package-detail-added span{flex:1}
.package-detail-added button{border:0;background:none;color:var(--primary);font-weight:800;text-decoration:underline;cursor:pointer}
.package-detail-note{margin:-4px 0 0;color:var(--muted);font-size:.74rem}
.package-detail-section h3{margin:6px 0 8px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.package-detail-section[hidden]{display:none}
.package-detail-items{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.package-detail-items li{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto 30px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.package-detail-items img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--soft)}
.package-detail-items b{color:var(--primary)}
.package-detail-items small{color:var(--muted)}
.package-line-name{display:grid;gap:2px;min-width:0}
.package-line-name em{font-style:normal;color:var(--muted);font-size:.74rem}
.package-line-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:#EAFBF2;color:#0E7A47;font-size:.66rem;font-style:normal;font-weight:800;vertical-align:middle}
.package-line-qty{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--line);border-radius:999px}
.package-line-qty button{display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:#F6F2FF;color:var(--primary);font-weight:900;cursor:pointer}
.package-line-qty b{min-width:24px;text-align:center;color:var(--text)}
.package-detail-items li>strong{font-size:.84rem;white-space:nowrap;text-align:right;min-width:64px}
.package-line-remove{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:50%;background:#FFF1F3;color:var(--danger);cursor:pointer}
.package-detail-empty{margin:8px 0 0;padding:10px 12px;border-radius:10px;background:#FFF7E8;color:#8A5A00;font-size:.8rem}
.package-detail-empty[hidden]{display:none}
.package-detail-edited{display:flex;align-items:center;gap:8px;margin:0;padding:8px 12px;border-radius:10px;background:#F6F2FF;color:var(--primary);font-size:.8rem;font-weight:700}
.package-detail-edited[hidden]{display:none}
.package-detail-edited span{flex:1}
.package-detail-edited button{border:0;background:none;color:var(--primary);font-weight:800;text-decoration:underline;cursor:pointer}
.package-detail-add:disabled{opacity:.5;cursor:not-allowed}
/* Sumar productos (2026-10-18): fila punteada lila al final de "Qué incluye" y panel con buscador y atajos. */
.package-add-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:10px;border:2px dashed #A98BFF;border-radius:12px;background:#F6F2FF;color:var(--primary);font:inherit;font-size:.92rem;font-weight:800;cursor:pointer}
.package-add-more:hover{background:#EEE6FF;border-color:var(--primary)}
.package-add-more i{font-size:1.1rem}
.package-add-more[hidden]{display:none}
.package-detail-search{display:grid;gap:10px;margin-top:10px;padding:14px;border:2px dashed #A98BFF;border-radius:14px;background:#F6F2FF}
.package-detail-search[hidden]{display:none}
.package-search-title{display:flex;align-items:center;gap:8px;margin:0;color:var(--primary);font-size:.92rem;font-weight:800}
.package-search-title i{font-size:1.15rem}
.package-detail-search .package-search-field{border-color:#D9CCFF}
.package-search-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.package-search-shortcuts[hidden]{display:none}
.package-search-shortcuts span{width:100%;color:var(--muted);font-size:.74rem;font-weight:700}
.package-search-shortcuts button{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 12px;border:1px solid #D9CCFF;border-radius:999px;background:#fff;color:var(--primary);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.package-search-shortcuts button:hover,.package-search-shortcuts button.is-active{border-color:var(--primary);background:var(--primary);color:#fff}
.package-detail-search .package-search-results{margin-top:0}
.package-detail-search .package-search-results:empty{display:none}
.package-detail-search .package-search-results article{background:#fff}
.package-search-field{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.package-search-field input{flex:1;min-width:0;min-height:42px;border:0;outline:0;background:transparent;font:inherit;font-size:.88rem}
.package-search-field i{color:var(--muted)}
.package-search-results{display:grid;gap:6px;margin-top:8px}
.package-search-results article{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:10px}
.package-search-results img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--soft)}
.package-search-results div{display:grid;gap:3px;min-width:0;font-size:.82rem}
.package-search-results b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}
.package-search-results span{color:var(--muted)}
.package-search-results select{max-width:100%;min-height:30px;padding:2px 6px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.76rem}
.package-search-results button{min-height:32px;padding:0 12px;border:1px solid #D9CCFF;border-radius:999px;background:#F6F2FF;color:var(--primary);font-weight:800;font-size:.78rem;cursor:pointer;white-space:nowrap}
.package-search-results button.is-added{border-color:#BDEBD2;background:#EAFBF2;color:#0E7A47}
.package-search-empty{margin:0;color:var(--muted);font-size:.8rem}
.package-detail-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.package-detail-pairs article{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px}
.package-detail-pairs img{width:52px;height:52px;border-radius:8px;object-fit:cover;background:var(--soft)}
.package-detail-pairs div{display:grid;gap:2px;min-width:0;font-size:.8rem}
.package-detail-pairs b{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:700}
.package-detail-pairs span{color:var(--muted)}
.package-detail-pairs button{grid-column:1/-1;min-height:32px;border:1px solid #D9CCFF;border-radius:999px;background:#F6F2FF;color:var(--primary);font-weight:800;font-size:.78rem;cursor:pointer}
.package-detail-pairs button.is-added{border-color:#BDEBD2;background:#EAFBF2;color:#0E7A47}

@media(max-width:760px){
  .package-detail-modal{align-items:end;padding:0}
  .package-detail-panel{grid-template-columns:1fr;width:100%;max-height:94dvh;border-radius:18px 18px 0 0;overflow-y:auto}
  .package-detail-photo{aspect-ratio:4/3;min-height:0}
  .package-detail-content{max-height:none;padding:20px 16px 24px;overflow:visible}
  .package-detail-content h2{font-size:1.3rem}
  .package-detail-pairs{grid-template-columns:1fr}
  .package-detail-items li{grid-template-columns:40px minmax(0,1fr) auto 30px;row-gap:6px}
  .package-detail-items li>strong{grid-column:2;grid-row:2;text-align:left}
  .package-line-qty{grid-column:3;grid-row:1/span 2}
  .package-line-remove{grid-column:4;grid-row:1/span 2}
  .package-detail-items img{grid-row:1/span 2}
  .store-product-card.store-package-card .store-package-bottom{flex-direction:column;align-items:stretch;gap:6px}
  .store-product-card.store-package-card .store-package-bottom .btn{width:100%}
}

/* Ficha de un producto abierta desde el paquete (2026-10-13): va encima del paquete y es solo para mirar. */
.product-detail-modal.is-from-package{z-index:5200}
.product-detail-modal.is-from-package [data-detail-quantity-control],
.product-detail-modal.is-from-package [data-detail-add],
.product-detail-modal.is-from-package [data-detail-variations]{display:none!important}
.package-detail-items [data-package-detail],.package-detail-pairs [data-package-detail],.package-search-results [data-package-detail]{cursor:pointer}
.package-line-title:hover,.package-detail-pairs b[data-package-detail]:hover,.package-search-results b[data-package-detail]:hover{color:var(--primary);text-decoration:underline}
.package-line-more{padding:0;border:0;background:none;color:var(--primary);font:inherit;font-weight:800;cursor:pointer;text-decoration:underline}

/* Carrito (2026-10-20, pedido del usuario): foto de cada producto, paquetes agrupados con su nombre, "Fuera del paquete"
   aparte y botón "Seguir comprando". Las filas se arman en refreshSelectedList (events/store.php). */
.selected-product-cell{display:flex;align-items:center;gap:10px;min-width:0}
.selected-product-cell>span{min-width:0}
.selected-product-thumb{flex:none;width:44px;height:44px;border-radius:10px;object-fit:cover;background:#F3EEFF;border:1px solid #ECE6F8}
.selected-product-thumb.is-empty{display:grid;place-items:center;color:#B9A9E6;font-size:1rem}
.store-selected-table tr.selected-group-row td{width:auto;padding:14px 8px 8px;border-bottom:0;background:transparent;text-align:left}
.selected-group-head{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#F4EDFF,#FFEFF7);border:1.5px solid #E2D3FF}
.selected-group-head img,.selected-group-icon{flex:none;width:46px;height:46px;border-radius:12px;object-fit:cover}
.selected-group-icon{display:grid;place-items:center;background:linear-gradient(135deg,#7C3CFF,#FF3FA4);color:#fff;font-size:1.2rem}
.selected-group-head>span:not(.selected-group-icon){display:grid;gap:1px;min-width:0;flex:1}
.selected-group-head small{color:#7C3CFF;font-size:.66rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.selected-group-head b{color:var(--dark2,#14112A);font-size:.95rem;font-weight:900;line-height:1.2}
.selected-group-head em{color:var(--muted);font-size:.74rem;font-style:normal}
.selected-group-head>strong{flex:none;color:#5B2BD1;font-size:.95rem}
.selected-group-row.is-loose .selected-group-head{background:#F8F7FC;border-color:#E6E2F0}
.selected-group-row.is-loose .selected-group-icon{background:#E9E4F5;color:#6B5BA8}
.selected-group-row.is-loose .selected-group-head small{color:#6B5BA8}
.store-selected-table tr.is-package-item td{background:#FCFAFF}
.store-selected-table tr.is-package-item td:first-child{box-shadow:inset 3px 0 0 #B79BFF}
.store-selected-add-more{width:calc(100% - 24px);margin:12px 12px 14px}
@media(max-width:600px){
  .store-selected-table tr.selected-group-row,
  body.store-cart-view-open .store-selected-table tr.selected-group-row{display:block;padding:4px 0 0;border:0;background:transparent;box-shadow:none}
  .store-selected-table tr.selected-group-row td,
  body.store-cart-view-open .store-selected-table tr.selected-group-row td{display:block;padding:0!important;text-align:left!important}
  .store-selected-table tr.selected-group-row td::before{display:none}
  body.store-cart-view-open .store-selected-table tr.is-package-item{border-color:#D8C6FF;background:#FCFAFF;box-shadow:inset 4px 0 0 #B79BFF,0 9px 24px rgba(45,27,88,.06)}
  .store-selected-table tr.is-package-item td:first-child{box-shadow:none}
  .selected-product-thumb{width:40px;height:40px}
}

/* Productos fuera de plazo en el carrito (2026-10-21, pedido del usuario): filas en rojo, franja "Quitar los N" y aviso al pagar. */
.selected-late-row td{padding:0 0 8px!important;border:0!important;background:none!important}
.selected-late-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;text-align:left;padding:11px 13px;border:1.5px solid #f3a3b2;border-radius:14px;background:#fff0f3;color:#9b1736}
.selected-late-banner>i{font-size:1.15rem;color:#d1254a}
.selected-late-banner>span{flex:1 1 180px;min-width:0}
.selected-late-banner b{display:block;font-size:.9rem;line-height:1.25}
.selected-late-banner small{display:block;color:#a8435b;font-size:.78rem}
.selected-late-banner button{flex:0 0 auto;padding:8px 14px;border:0;border-radius:999px;background:#d1254a;color:#fff;font-weight:800;font-size:.84rem;cursor:pointer}
.selected-late-banner button:hover{background:#b01b3d}
tr.is-late td{background:#fff6f8!important}
tr.is-late .selected-product-cell img{opacity:.55}
tr.is-late td[data-label="Total"] strong{color:#b4183d;text-decoration:line-through}
.selected-late-note{display:inline-flex;align-items:center;gap:4px;margin-top:2px;color:#d1254a!important;font-weight:800}
tr.is-late [data-selected-quantity-plus]:disabled{opacity:.35;cursor:not-allowed}
.late-cart-notice{position:fixed;inset:0;z-index:6000;display:grid;place-items:center;padding:16px}
.late-cart-notice-backdrop{position:absolute;inset:0;background:rgba(28,16,54,.55)}
.late-cart-notice-panel{position:relative;width:min(420px,100%);padding:24px 22px 18px;border-radius:22px;background:#fff;text-align:center;box-shadow:0 24px 60px rgba(40,20,90,.3)}
.late-cart-notice-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#ffe4ea;color:#d1254a;font-size:1.5rem}
.late-cart-notice-panel h2{margin:12px 0 6px;color:#1d1830;font-size:1.25rem;line-height:1.25}
.late-cart-notice-panel p{margin:0 0 16px;color:#5d5670;font-size:.9rem;line-height:1.45}
.late-cart-notice-actions{display:grid;gap:6px}
.late-cart-notice-actions .btn{justify-content:center;min-height:48px;border-radius:999px}
.late-cart-notice-actions .btn-ghost{min-height:40px;border:0;background:none;box-shadow:none;color:#5b21b6;font-weight:800}
/* 2026-10-29: precio por persona en grande (total chico abajo) y personas con flechitas al lado del número. */
.package-detail-summary{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.package-price-box strong{font-size:1.55rem;line-height:1.1}
.package-detail-summary .package-total-small{color:var(--muted);font-size:.8rem;font-weight:700}
.package-detail-summary .package-total-small:empty{display:none}
.package-people-box small{color:var(--muted);font-size:.8rem;font-weight:700}
.package-detail-summary .package-people-stepper{display:flex;align-items:center;gap:6px;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:0;text-transform:none}
.package-people-stepper strong{font-size:1.55rem;line-height:1.1}
.package-detail-summary .package-people-arrows{display:grid;gap:2px;letter-spacing:0;text-transform:none}
.package-people-arrows button{display:grid;place-items:center;width:28px;height:21px;padding:0;border:1px solid #D9D0FF;border-radius:6px;background:#fff;color:var(--primary);font-size:.7rem;line-height:1;cursor:pointer}
.package-people-arrows button:hover{background:#F6F2FF}
.package-people-arrows button:disabled{opacity:.4;cursor:not-allowed}
.package-detail-cta{display:grid;gap:10px}
/* 2026-10-29: el ticket pasó a botón redondo "Listo" (el fondo morado sale de app.css por el aria-label "Cerrar…"). */
.package-detail-content{position:relative}

.package-detail-content .kicker,.package-detail-content h2{padding-right:52px}
/* 2026-10-29 (pedido del usuario): en la tienda todas las X moradas de cerrar pasan a un botón redondo "Listo" (data-listo).
   El fondo morado sigue saliendo de app.css por el aria-label "Cerrar…". */
button[data-listo]{display:grid;place-items:center;flex:0 0 44px;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border-radius:50%!important;font-family:inherit;font-size:.78rem!important;font-weight:600!important;letter-spacing:0;line-height:1;cursor:pointer}
/* Encabezado de la tienda achicado al bajar en celular: el botón también se achica. */
.store-modal-panel.has-mnav.is-mmini:not(.is-mmini-open) .store-modal-close[data-listo]{flex-basis:36px;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;font-size:.66rem!important}
