/* Arreglos pedidos en "arreglos para la pagina de blop" (2026-10-12). Se carga después de app.css. */

/* Detalle de producto: lo marcado con hidden no se muestra (el recuadro "Elige una variación" y la fecha vacía salían en todos los productos). */
.product-detail-modal [hidden]{display:none!important}

/* Detalle de producto: si el contenido es más alto que la ventana, se puede bajar con scroll. */
.product-detail-modal:not(.is-service-detail) .product-detail-panel{grid-template-rows:minmax(0,1fr)}
.product-detail-modal:not(.is-service-detail) .product-detail-content{min-height:0;justify-content:safe center;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:700px){.product-detail-modal:not(.is-service-detail) .product-detail-panel{grid-template-rows:none}.product-detail-modal:not(.is-service-detail) .product-detail-content{overflow:visible}}

/* Tarjeta de producto en celular: título hasta 3 líneas y descripción corta en 2, sin montarse. */
@media(max-width:600px){
.store-product-card:not(.store-service-card) h3{display:-webkit-box!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0 0 3px!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.store-product-card:not(.store-service-card) h3+p{display:-webkit-box!important;height:auto!important;min-height:0!important;margin:0!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
}

/* Encabezado de la tienda en celular: total y carrito arriba, buscador a todo el ancho y filtros en una fila. */
@media(max-width:600px){
.store-modal-header{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
.store-modal-header-side{order:-1;justify-content:flex-end;width:100%!important;gap:8px}
.store-modal-header-side .store-modal-total{width:auto!important;min-width:0!important;max-width:none!important;margin-right:auto;flex-direction:row!important;align-items:baseline!important;gap:6px!important;overflow:visible!important}
.store-modal-header-side .store-modal-total strong{width:auto!important;max-width:none!important;overflow:visible!important;white-space:nowrap;text-overflow:clip!important;font-size:1.05rem}
.store-modal-header-catalog,.store-modal-tools{width:100%!important}
.store-modal-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.store-modal-tools .store-keyword-search{grid-column:1/-1}
.store-modal-tools select{width:100%;min-width:0}
.store-header-cart-button{flex:0 0 auto}
.store-header-cart-button span{display:none!important}
}

/* Bloques horarios de Montaje: selector de cantidad horizontal y botón Listo a la vista en celular. */
.service-slot-stepper{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;height:36px;border:1px solid #ddd3f6;border-radius:10px;background:#fff;overflow:hidden}
.service-slot-stepper button{display:grid;place-items:center;height:100%;padding:0;border:0;background:#f5f0ff;color:var(--primary);font-size:1.05rem;font-weight:900;cursor:pointer}
.service-slot-stepper button:disabled{opacity:.4;cursor:not-allowed}
.service-slot-options .service-slot-stepper input[type=number]{width:100%;min-width:0;height:100%;min-height:0;padding:0 2px;border:0;border-radius:0;background:transparent;text-align:center;font-weight:850;-moz-appearance:textfield}
.service-slot-stepper input::-webkit-outer-spin-button,.service-slot-stepper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}
.service-slot-options label{grid-template-columns:auto minmax(0,1fr) 104px!important}
@media(max-width:600px){
.service-slot-dialog{align-items:end;padding:0}
.service-slot-dialog>section{width:100%;max-height:92dvh;border-radius:18px 18px 0 0}
.service-slot-options{grid-template-columns:1fr;padding:12px}
.service-slot-options label{padding:9px 10px}
.service-slot-dialog footer{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
.service-slot-dialog footer .btn{width:100%}
}
body:has(.service-slot-dialog:not([hidden])) .whatsapp-float,
body:has(.service-slot-dialog:not([hidden])) .stage-progress,
body:has(.service-slot-dialog:not([hidden])) .menu-toggle,
body:has(.product-detail-modal:not([hidden])) .whatsapp-float{display:none!important}

/* Tienda: el título "Arriendos & Servicios" se oculta cuando el filtro no deja ningún servicio a la vista. */
.store-service-heading[hidden],.store-ai-heading[hidden]{display:none!important}

/* Invitación: aviso de respuesta registrada con las salidas (home, iniciar sesión, crear cuenta / mis eventos). */
.public-rsvp-done{position:fixed;inset:0;z-index:5200;display:grid;place-items:center;padding:18px}
.public-rsvp-done[hidden]{display:none}
.public-rsvp-done-backdrop{position:absolute;inset:0;background:rgba(15,10,32,.7);backdrop-filter:blur(4px)}
.public-rsvp-done>section{position:relative;display:grid;justify-items:center;gap:10px;width:min(460px,100%);padding:30px 24px 22px;border-radius:20px;background:linear-gradient(180deg,#fff,#faf7ff);box-shadow:0 30px 90px rgba(10,8,30,.4);text-align:center}
.public-rsvp-done h2{margin:4px 0 0;font-size:1.35rem;line-height:1.2}
.public-rsvp-done p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
.public-rsvp-done-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#16b978,#0f9e6a);color:#fff;font-size:1.9rem;box-shadow:0 12px 26px rgba(22,185,120,.3)}
.public-rsvp-done-icon.is-declined{background:linear-gradient(135deg,#923dff,#ef38a7);box-shadow:0 12px 26px rgba(146,61,255,.3);font-size:1.5rem}
.public-rsvp-done-main{width:100%;margin-top:6px}
.public-rsvp-done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:6px}
.public-rsvp-done-actions .btn{flex:1 1 130px}
.public-rsvp-done-stay{margin-top:2px;padding:6px;border:0;background:transparent;color:var(--primary);font-size:.8rem;font-weight:800;cursor:pointer}
body.public-rsvp-done-open{overflow:hidden}
body.public-rsvp-done-open .whatsapp-float{display:none!important}
@media(max-width:600px){.public-rsvp-done{align-items:end;padding:0}.public-rsvp-done>section{width:100%;border-radius:20px 20px 0 0;padding:26px 18px calc(18px + env(safe-area-inset-bottom))}.public-rsvp-done-actions{flex-direction:column}.public-rsvp-done-actions .btn{flex:none;width:100%}}

/* Paso 4: el botón VISTA PREVIA late suavemente hasta que se aprueba la invitación, para que nadie se lo salte. */
.invitation-final-button.is-attention{position:relative;font-size:1rem;letter-spacing:.02em;animation:blop-attention 1.8s ease-in-out infinite}
.invitation-final-button.is-attention:hover,.invitation-final-button.is-attention:focus-visible{animation-play-state:paused}
@keyframes blop-attention{0%,100%{transform:scale(1);box-shadow:0 10px 24px rgba(124,60,255,.22),0 0 0 0 rgba(239,56,167,.45)}50%{transform:scale(1.035);box-shadow:0 14px 30px rgba(124,60,255,.3),0 0 0 10px rgba(239,56,167,0)}}
@media(prefers-reduced-motion:reduce){.invitation-final-button.is-attention{animation:none}}

/* Perfil: cambiar clave y eliminar cuenta. */
.profile-security-card,.profile-delete-card{margin-top:18px}
.profile-security-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.profile-security-head>i{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#f0e9ff;color:var(--primary);font-size:1.15rem}
.profile-security-head h2{margin:2px 0 4px;font-size:1.15rem}
.profile-security-head p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}
.profile-security-card .btn{margin-top:12px}
.profile-delete-card{border-color:#ffd3dc}
.profile-delete-card .profile-security-head>i{background:#ffeef2;color:#d92e49}
.profile-delete-open,.profile-delete-submit{border:1px solid #f5b7c4!important;background:#fff4f6!important;color:#c2264c!important}
.profile-delete-submit{margin-top:12px;background:#d92e49!important;border-color:#d92e49!important;color:#fff!important}
.profile-delete-form[hidden],.profile-delete-open[hidden]{display:none!important}
.profile-delete-form>p{margin:0 0 10px;color:var(--dark2);font-size:.86rem}
.profile-delete-blockers{padding:12px 14px;border:1px solid #f7d58a;border-radius:12px;background:#fff9ea;color:#7a5200;font-size:.84rem}
.profile-delete-blockers ul{margin:6px 0 0;padding-left:18px}
.profile-delete-blockers li{margin:3px 0}

/* Stock: etiqueta "Agotado" / "Quedan N" sobre la foto, producto agotado sin botón de agregar y aviso breve. */
.store-product-media{position:relative}
.store-stock-badge{position:absolute;z-index:3;top:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.94);color:#8a5a00;font-size:.7rem;font-weight:900;box-shadow:0 4px 12px rgba(20,12,40,.16)}
.store-stock-badge.is-out{background:#2a2140;color:#fff}
.store-product-card.is-sold-out .store-product-media img{filter:grayscale(.85);opacity:.55}
.store-product-card.is-sold-out .quantity-control,.store-product-card.is-sold-out .store-variation-choice{opacity:.35;pointer-events:none}
.store-product-card.is-stock-full [data-quantity-plus]{opacity:.35;pointer-events:none}
.store-stock-notice{position:fixed;z-index:6000;left:50%;bottom:24px;max-width:min(420px,calc(100vw - 32px));padding:11px 16px;border-radius:12px;background:#2a2140;color:#fff;font-size:.84rem;font-weight:750;box-shadow:0 14px 34px rgba(10,8,30,.35);transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.store-stock-notice.is-visible{opacity:1;transform:translate(-50%,0)}

/* Pago: declaración de mayoría de edad cuando el carrito trae alcohol. */
.checkout-adult-check{display:flex;align-items:flex-start;gap:12px;margin:14px 0;padding:15px 16px;border:1px solid #f3c66b;border-radius:12px;background:#fff8e6}
.checkout-adult-check>i{flex:0 0 auto;color:#b37400;font-size:1.4rem}
.checkout-adult-check strong{display:block;margin:2px 0 4px;color:var(--dark2)}
.checkout-adult-check p{margin:0 0 8px;color:#6b5a33;font-size:.82rem;line-height:1.45}
.checkout-adult-check.is-done{border-color:#bfe8d3;background:#f1fff7}
.checkout-adult-check.is-done>i{color:#0f9e6a}
.checkout-adult-check.is-done p{margin:0;color:var(--muted)}
.checkout-adult-declaration{display:inline-flex;align-items:center;gap:9px;margin:2px 0 0;padding:9px 12px;border:1px solid #e9b949;border-radius:10px;background:#fff;font-weight:850;cursor:pointer}
.checkout-adult-declaration input{width:18px;height:18px;min-height:0;margin:0;accent-color:#7c3dff}

/* Tienda: declaración de mayoría de edad al elegir el primer producto con alcohol. */
.store-adult-dialog{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,16,40,.55)}
.store-adult-box{width:100%;max-width:420px;padding:22px 20px 18px;border:1px solid #f3c66b;border-radius:16px;background:#fff8e6;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.store-adult-box>i{display:block;margin-bottom:6px;color:#b37400;font-size:1.8rem}
.store-adult-box h3{margin:2px 0 8px;color:var(--dark2);font-size:1.15rem}
.store-adult-box p{margin:0 0 12px;color:#6b5a33;font-size:.86rem;line-height:1.45}
.store-adult-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;flex-wrap:wrap}
.store-adult-actions .btn[disabled]{opacity:.5;cursor:not-allowed}

/* Tienda: aviso cuando la búsqueda no está en la categoría elegida y se muestra toda la tienda. */
.store-search-widened{display:flex;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;border:1px solid #d7c7ff;border-radius:10px;background:#f7f3ff;color:#5d32ba;font-size:.82rem;font-weight:700;line-height:1.4}
.store-search-widened[hidden]{display:none!important}
.store-search-widened i{margin-top:1px}

/* Estudio IA: botón "Salir" visible arriba, en la oferta y en el pie. */
.ai-studio-close.ai-studio-exit{display:inline-flex;align-items:center;gap:6px;width:auto;height:38px;padding:0 14px;border-radius:999px;color:var(--dark2);font-weight:850;font-size:.82rem}
.ai-studio-close.ai-studio-exit:hover{border-color:#cdbbff;background:#f5f0ff;color:var(--primary)}
.ai-studio-exit-row{display:flex;justify-content:center;margin-top:14px}
.ai-studio-foot .ai-studio-foot-exit{margin-right:auto}
@media(max-width:600px){.ai-studio-close.ai-studio-exit{height:34px;padding:0 11px}.ai-studio-foot .ai-studio-foot-exit{flex:0 0 auto}}

/* Detalle de producto como página completa (2026-10-14, pedido del usuario): igual que el detalle de servicio, drops y experiencias.
   Computador: foto fija a la izquierda, datos a la derecha y un solo scroll. Celular (hasta 700 px): pantalla completa, sin la tienda asomando. */
@media(min-width:701px){
  .product-detail-modal:not(.is-service-detail):not([hidden]){display:block;overflow-y:auto;overscroll-behavior:contain;padding:0}
  .product-detail-modal .product-detail-backdrop{position:fixed;background:#fff;backdrop-filter:none}
  .product-detail-modal.is-service-detail{background:#fff}
  .product-detail-modal:not(.is-service-detail) .product-detail-panel{display:grid;grid-template-columns:minmax(390px,46%) minmax(0,54%);grid-template-rows:none;width:min(1180px,100%);min-height:100vh;max-height:none;margin:0 auto;border-radius:0;box-shadow:none;overflow:visible}
  .product-detail-modal:not(.is-service-detail) .product-detail-gallery{position:sticky;top:0;align-self:start;min-height:100vh;padding:34px}
  .product-detail-modal:not(.is-service-detail) .product-detail-image-wrap{width:min(500px,100%);max-height:calc(100vh - 100px)}
  .product-detail-modal:not(.is-service-detail) .product-detail-content{justify-content:flex-start;min-height:100vh;padding:54px 48px 72px;overflow:visible}
  .product-detail-modal:not(.is-service-detail) .product-detail-close{position:fixed;top:18px;right:max(22px,calc((100vw - 1180px)/2 + 18px))}
}
@media(min-width:601px) and (max-width:700px){
  .product-detail-modal{align-items:stretch}
  .product-detail-panel{height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none}
  .product-detail-close{position:absolute;top:12px;right:12px;bottom:auto}
}
