/* Catálogo de productos, globos y fotografías. */
.builder-page .choice-path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.builder-page .path-card { min-width: 0; }
.builder-page .path-card:focus-visible { outline: 3px solid #6cc6fb; outline-offset: 3px; }
.builder-page .path-card-products { background: #f1faff; }
.catalog-quick-links { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 22px; }
.catalog-quick-links a { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #efd8d2; border-radius: 999px; background: #fff; color: #3b3633; font-weight: 700; font-size: 13px; padding: 11px 16px; text-decoration: none; }
.catalog-quick-links a:hover { background: #ffe8ee; border-color: #ff5c7a; }
.catalog-quick-links a:focus-visible, .retail-category-card:focus-visible { outline: 3px solid #62bff5; outline-offset: 4px; }
.catalog-filter-panel { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; margin: 22px 0; }
.catalog-filter-panel .discovery-filterbar { flex: 1 1 340px; margin: 0; padding: 0; }
.catalog-budget-select { display: grid; gap: 6px; color: #6b5d59; font-size: 12px; font-weight: 700; min-width: 180px; }
.catalog-budget-select select { max-width: 100%; color: #2b2624; font: inherit; padding: 10px 12px; border: 1px solid #e9d5ce; border-radius: 12px; background: #fff; }
.catalog-photo-count { position: absolute; right: 10px; bottom: 10px; padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.94); color: #4e4340; font-size: 11px; font-weight: 700; }
.builder-page .offer-image { position: relative; }
.builder-page .offer-body > p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-sold-out .offer-image { opacity: .65; }
.catalog-sold-out button { opacity: .7; cursor: not-allowed; }
.catalog-stock-label { color: #8b5b26; font-weight: 700; font-size: 12px; margin: 0 0 12px; }
.catalog-detail-description { margin: 0 0 24px; color: #75655e; font-size: 14px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
#step3 > .section-title { align-items: flex-start; gap: 14px; }
#step3 > .section-title > div { min-width: 0; }
#step3 > .section-title > .btn { flex-shrink: 0; }
.catalog-purchase-info { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 0 0 18px; }
.catalog-purchase-info b { color: #cf345b; font-size: 24px; }
.catalog-purchase-info span { color: #7a6d65; font-size: 13px; }
.catalog-gallery { margin: 0 0 24px; width: 100%; max-width: 680px; }
.catalog-gallery-main { position: relative; display: grid; place-items: center; background: #fffaf7; border: 1px solid #f0ded5; border-radius: 18px; overflow: hidden; }
.catalog-gallery-main > img { display: block; width: 100%; height: clamp(240px, 38vw, 420px); object-fit: contain; }
.catalog-gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 42px; height: 42px; padding: 0 0 3px; background: rgba(255,255,255,.96); border: 1px solid #edd9d0; border-radius: 50%; color: #322b28; font-size: 29px; cursor: pointer; box-shadow: 0 2px 10px #2b1e1a0a; }
.catalog-gallery-arrow.previous { left: 10px; }
.catalog-gallery-arrow.next { right: 10px; }
.catalog-gallery-count { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); font-size: 12px; background: #ffffffef; padding: 5px 11px; border-radius: 999px; color: #51413b; }
.catalog-gallery-thumbnails { display: flex; flex-wrap: nowrap; gap: 9px; overflow-x: auto; padding: 12px 2px 4px; }
.catalog-gallery-thumbnails button { flex: 0 0 65px; width: 65px; height: 65px; padding: 3px; border: 2px solid #eadbd5; border-radius: 10px; background: #fff; cursor: pointer; }
.catalog-gallery-thumbnails button.active { border-color: #f14974; box-shadow: 0 0 0 1px #f149741c; }
.catalog-gallery-thumbnails img { width: 100%; height: 100%; object-fit: contain; border-radius: 6px; }
.catalog-gallery button:focus-visible { outline: 3px solid #6dc5fa; outline-offset: 2px; }
.retail-section { background: #fff4ed; }
.retail-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.retail-category-card { display: flex; flex-direction: column; color: #282424; text-decoration: none; border: 1px solid #eddcd4; border-radius: 24px; overflow: hidden; background: #fff; transition: transform .15s ease, box-shadow .15s ease; }
.retail-category-card:hover { transform: translateY(-3px); box-shadow: 0 9px 24px #7e465411; }
.retail-category-visual { position: relative; display: grid; place-items: center; aspect-ratio: 1.25; background: #fff1f5; overflow: hidden; }
.retail-category-card:nth-child(2) .retail-category-visual { background: #eaf7ff; }
.retail-category-card:nth-child(3) .retail-category-visual { background: #f5effe; }
.retail-category-card:nth-child(4) .retail-category-visual { background: #fff8db; }
.retail-category-visual > span { font-size: clamp(42px, 5vw, 70px); }
.retail-category-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: inherit; padding: 16px; }
.retail-category-copy { padding: 21px; }
.retail-category-copy h3 { margin: 0 0 7px; font-size: 24px; }
.retail-category-copy p { margin: 0 0 18px; color: #79665e; font-size: 13px; line-height: 1.5; }
.retail-category-link { display: flex; justify-content: space-between; color: #b62751; font-size: 12px; font-weight: 800; }
@media (max-width: 800px) {
  .retail-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
  .retail-category-copy { padding: 16px; }
  .retail-category-copy h3 { font-size: 22px; }
}
@media (max-width: 520px) {
  .builder-page .choice-path-grid { grid-template-columns: 1fr; }
  .catalog-filter-panel { gap: 14px; }
  .catalog-budget-select { width: 100%; }
  .catalog-quick-links { justify-content: flex-start; gap: 8px; }
  .catalog-quick-links a { padding: 10px 13px; font-size: 12px; }
  .catalog-purchase-info { align-items: flex-start; flex-direction: column; gap: 5px; }
  .retail-category-copy h3 { font-size: 20px; }
  .retail-category-copy p { min-height: 40px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .retail-category-card { transition: none; } }

.catalog-card-image { position: relative; }
.catalog-card-body > p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-purchase-link { display: inline-flex; margin-top: 10px; text-decoration: none; }
.catalog-unavailable { color: #8b5b26; font-size: 12px; font-weight: 700; }

/* UX Maracuyá 2026-10-24: regreso visible, fecha MX y archivos personalizados */
.builder-back-btn,.category-back-btn{min-height:46px;padding:11px 18px;font-weight:800;box-shadow:0 6px 16px rgba(213,49,91,.12)}
.occasion-landing-head .category-back-btn{white-space:nowrap}
.mx-date-control{display:flex;align-items:stretch;gap:8px}
.mx-date-control>input{flex:1;min-width:0}
.mx-date-picker{position:relative;display:grid;place-items:center;flex:0 0 48px;border:1px solid #e7d6d0;border-radius:12px;background:#fff;cursor:pointer;font-size:20px;overflow:hidden}
.mx-date-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.customer-upload-box{display:grid;gap:12px;padding:16px;border:1px dashed #e3c8c1;border-radius:16px;background:#fffaf8}
.customer-upload-action{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid #f05b79;border-radius:12px;background:#fff;color:#b62952;cursor:pointer}
.customer-upload-action input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.customer-upload-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.customer-upload-preview>div{position:relative;border:1px solid #eadad4;border-radius:12px;overflow:hidden;background:#fff}
.customer-upload-preview img{display:block;width:100%;height:110px;object-fit:cover}
.customer-upload-preview button{width:100%;border:0;border-top:1px solid #eee0db;background:#fff;padding:7px;color:#a52b4c;font-weight:700;cursor:pointer}
.product-choice .stock-note b{color:#b52852}
@media(max-width:620px){
  .occasion-landing-head{align-items:stretch!important}
  .occasion-landing-head .category-back-btn,.builder-back-btn{width:100%;justify-content:center}
  #step3>.section-title{flex-direction:column}
  #step3>.section-title>.builder-back-btn{order:-1}
}

/* Carrito persistente */
.cart-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#f7dce4;color:#9e2348;font-size:11px;font-weight:900;line-height:1}
.cart-header-btn.has-items,.global-cart-link.has-items,.catalog-cart-link.has-items{border-color:#ef9bb0;background:#fff7fa}
.cart-add-card-btn,.catalog-add-cart{margin-top:9px;width:100%;justify-content:center}
.cart-checkout-lines{display:grid;gap:7px;margin:12px 0}
.cart-checkout-lines span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;background:#fff}
.cart-checkout-lines button{border:0;background:transparent;color:#ad2850;font-weight:800;cursor:pointer}
.cart-checkout-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}
.catalog-cart-link{white-space:nowrap}
@media(max-width:720px){.cart-checkout-actions>*{flex:1 1 100%}.global-cart-link{font-size:12px;padding-inline:10px}}

/* Artículos adicionales escalables por categoría */
.addon-closed{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;border:1px dashed #decfc9;border-radius:15px;background:#fffaf8}
.addon-closed>span{font-size:12px;color:#7c6c67}
.addon-open-btn{font-weight:850}
.addon-selected{margin-bottom:14px;padding:14px;border:1px solid #d8e7df;border-radius:15px;background:#f7fcf9}
.addon-selected-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}
.addon-selected-head span{font-size:11px;color:#68766f}
.addon-selected-list{display:grid;gap:7px}
.addon-selected-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;background:#fff;border:1px solid #e3eee8;border-radius:10px;font-size:12px}
.addon-selected-item button{border:0;background:transparent;color:#ae3155;font-weight:800;cursor:pointer}
.addon-browser{padding:15px;border:1px solid #e3d7d2;border-radius:17px;background:#fff}
.addon-browser-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.addon-browser-top>div{display:grid;gap:3px}
.addon-browser-top b{font-size:15px}
.addon-browser-top span{font-size:11px;color:#7c6d68}
.addon-category-grid{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.addon-category-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #e3d5d0;background:#fff;border-radius:999px;padding:9px 12px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.addon-category-chip small{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f4ebe7;color:#75645e;font-size:10px}
.addon-category-chip.active{background:#344744;color:#fff;border-color:#344744}
.addon-category-chip.active small{background:rgba(255,255,255,.18);color:#fff}
.addon-category-prompt{padding:22px;text-align:center;border:1px dashed #e2d5cf;border-radius:13px;color:#796a65;font-size:12px;background:#fffaf8}
.addon-browser-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 10px}
.addon-browser-head>b{font-size:14px}
.addon-browser-head>span{font-size:11px;color:#80716c}
.addon-back-category{border:0;background:transparent;padding:0;color:#a83255;font-weight:850;cursor:pointer}
.addon-search{margin-bottom:12px}
.addon-search input{width:100%;box-sizing:border-box;border:1px solid #dfd2cd;border-radius:12px;padding:11px 13px;font:inherit}
@media(max-width:640px){
  .addon-browser-top{flex-direction:column}
  .addon-browser-top>.btn{width:100%}
  .addon-selected-item{align-items:flex-start}
}

/* Calendario Maracuyá: domingos cerrados */
.mx-date-control{position:relative}
.mx-date-picker{appearance:none;color:inherit}
.maracuya-calendar{position:absolute;z-index:80;top:calc(100% + 8px);right:0;width:min(330px,calc(100vw - 36px));box-sizing:border-box;padding:14px;border:1px solid #decfc9;border-radius:16px;background:#fff;box-shadow:0 18px 48px rgba(59,43,38,.18)}
.maracuya-calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:10px}
.maracuya-calendar-head strong{text-align:center;font-size:14px}
.maracuya-calendar-head button,.maracuya-calendar-foot button{border:0;background:#fff7f4;border-radius:9px;min-height:34px;font:inherit;font-weight:800;cursor:pointer}
.maracuya-calendar-weekdays,.maracuya-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.maracuya-calendar-weekdays{margin-bottom:4px;color:#756761;font-size:10px;font-weight:850;text-align:center}
.maracuya-calendar-weekdays span{padding:5px 0}
.maracuya-calendar-day{aspect-ratio:1;border:0;border-radius:9px;background:#fff;color:#2f2825;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.maracuya-calendar-day:hover:not(:disabled){background:#fff0f4;color:#ad2850}
.maracuya-calendar-day.selected{background:#ff5f7d;color:#fff}
.maracuya-calendar-day:disabled{cursor:not-allowed;color:#c8bdb8;background:#faf7f5}
.maracuya-calendar-day.sunday{color:#cfb7b0;background:#f7f2f0;text-decoration:line-through}
.maracuya-calendar-day.outside{background:transparent}
.maracuya-calendar-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #f0e5e1}
.maracuya-calendar-foot span{font-size:10px;color:#9a746d}
.maracuya-calendar-foot button{padding:7px 11px;color:#ad2850}
@media(max-width:620px){.maracuya-calendar{left:0;right:auto;width:min(330px,calc(100vw - 48px))}}

/* Contacto de checkout */
.checkout-contact-disclaimer{margin:15px 0;padding:14px 16px;border:1px solid #ead5a7;border-radius:14px;background:#fffaf0;color:#5d4a2d}
.checkout-contact-disclaimer b{display:block;margin-bottom:5px;font-size:13px}
.checkout-contact-disclaimer p{margin:0;font-size:11px;line-height:1.55}
.checkout-verified-email{padding:11px 13px;border:1px solid #cfe5d8;border-radius:12px;background:#f4fbf7;color:#286243;font-size:12px}
#customerPhone:invalid:not(:placeholder-shown),#recipientPhone:invalid:not(:placeholder-shown),#customerEmail:invalid:not(:placeholder-shown){border-color:#d84b68}

/* Carrito de regalos personalizados */
.builder-action-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.builder-action-group{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.personalized-cart-save.saved{border-color:#a7d7bd;background:#f3fbf6;color:#236b45}
.saved-cart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.saved-cart-card{display:grid;grid-template-columns:130px 1fr;border:1px solid #eadbd5;border-radius:18px;overflow:hidden;background:#fff}
.saved-cart-card.unavailable{opacity:.7}
.saved-cart-image{background:#fff8f5;min-height:150px}
.saved-cart-image img{display:block;width:100%;height:100%;min-height:150px;object-fit:contain;padding:10px;box-sizing:border-box}
.saved-cart-body{display:flex;flex-direction:column;gap:7px;padding:15px}
.saved-cart-meta{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#b22f55}
.saved-cart-body h3{margin:0;font-size:17px;line-height:1.25}
.saved-cart-body p{margin:0;color:#766760;font-size:11px;line-height:1.45}
.saved-cart-body>b{font-size:15px}
.saved-cart-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.saved-cart-actions .btn{min-height:39px}
.saved-cart-checkout{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:15px 16px;border:1px solid #d7e8df;border-radius:15px;background:#f6fcf8}
.saved-cart-checkout>div{display:grid;gap:3px}
.saved-cart-checkout span{font-size:11px;color:#66756d}
.cart-landing-head{align-items:center!important}
@media(max-width:760px){
  .saved-cart-grid{grid-template-columns:1fr}
  .saved-cart-card{grid-template-columns:100px 1fr}
  .saved-cart-image,.saved-cart-image img{min-height:120px}
  .saved-cart-checkout{align-items:stretch;flex-direction:column}
  .saved-cart-checkout .btn{width:100%}
}
@media(max-width:620px){
  .builder-action-row,.builder-action-group{width:100%}
  .builder-action-row>.btn,.builder-action-group>.btn{flex:1 1 100%;width:100%}
}

/* Acceso desde el checkout */
.checkout-account-hint a{color:#ad2850;font-weight:850;text-decoration:underline;text-underline-offset:2px}
.checkout-account-hint a:hover{color:#7f1737}
.checkout-account-hint a:focus-visible{outline:3px solid #ef9bb0;outline-offset:3px;border-radius:4px}
